ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ abc@@sddlmZddlZddlZddlZddlmZmZmZddl m Z ddl m Z m Z mZmZmZddlmZejeZdefdYZd efd YZdS( i(tabsolute_importN(t uses_pycachetWINDOWStcache_from_source(tUninstallationError(trmtreetasktis_localtrenamestnormalize_path(t indent_logtUninstallPathSetcB@sbeZdZdZdZdZdZdZdZe dZ dZ d Z RS( sMA set of file paths to be removed in the uninstallation of a requirement.cC@s@t|_t|_i|_||_d|_g|_dS(N(tsettpathst_refusetpthtdisttNonetsave_dirt _moved_paths(tselfR((s9/usr/lib/python2.7/site-packages/pip/req/req_uninstall.pyt__init__s      cC@s t|S(ss Return True if the given path is one we are permitted to remove/modify, False otherwise. (R(Rtpath((s9/usr/lib/python2.7/site-packages/pip/req/req_uninstall.pyt _permittedscC@stjj|\}}tjjt|tjj|}tjj|sUdS|j|rw|jj |n|j j |tjj |ddkrt r|j t |ndS(Nis.py(tosRtsplittjoinR tnormcasetexistsRR taddRtsplitextRR(RRtheadttail((s9/usr/lib/python2.7/site-packages/pip/req/req_uninstall.pyR#s'"cC@skt|}|j|rW||jkr@t||j|trollback(RRttmp_pathR((s9/usr/lib/python2.7/site-packages/pip/req/req_uninstall.pyRE{s cC@s5|jdk r1t|jd|_g|_ndS(s?Remove temporary save dir: rollback will no longer be possible.N(RRRR(R((s9/usr/lib/python2.7/site-packages/pip/req/req_uninstall.pytcommits  ( t__name__t __module__t__doc__RRRR$R.R1RDR?RERG(((s9/usr/lib/python2.7/site-packages/pip/req/req_uninstall.pyR s      * R!cB@s,eZdZdZdZdZRS(cC@sGtjj|s%td|n||_t|_d|_dS(Ns.Cannot remove entries from nonexistent file %s( RRtisfileRtfileR tentriesRt _saved_lines(RR"((s9/usr/lib/python2.7/site-packages/pip/req/req_uninstall.pyRs   cC@sXtjj|}trDtjj|d rD|jdd}n|jj|dS(Nis\t/(RRRRR/treplaceRMR(RR#((s9/usr/lib/python2.7/site-packages/pip/req/req_uninstall.pyRscC@stjd|jt|jd}|j}||_WdQXtd|Drbd}nd}xS|jD]H}y.tjd||j||j dWqrt k rqrXqrWt|jd}|j |WdQXdS( NsRemoving pth entries from %s:trbcs@s|]}d|kVqdS(s N((t.0tline((s9/usr/lib/python2.7/site-packages/pip/req/req_uninstall.pys ss s sRemoving entry: %ssutf-8twb( R6R<RLtopent readlinesRNR(RMR?tencodet ValueErrort writelines(RtfhtlinestendlineR#((s9/usr/lib/python2.7/site-packages/pip/req/req_uninstall.pyR?s   cC@sh|jdkr&tjd|jtStjd|jt|jd}|j|jWdQXt S(Ns.Cannot roll back changes to %s, none were mades!Rolling %s back to previous stateRT( RNRR6RCRLRDR<RURYtTrue(RRZ((s9/usr/lib/python2.7/site-packages/pip/req/req_uninstall.pyREs (RHRIRRR?RE(((s9/usr/lib/python2.7/site-packages/pip/req/req_uninstall.pyR!s (t __future__RtloggingRR:t pip.compatRRRtpip.exceptionsRt pip.utilsRRRRR tpip.utils.loggingR t getLoggerRHR6tobjectR R!(((s9/usr/lib/python2.7/site-packages/pip/req/req_uninstall.pyts   (