+
    ª¬‚j#^  ã                  ó„  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RI	H
t
 ^ RIHtHt ^ RIHtHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHtHt ^ RIHtHtH t H!t! ^ RI"H#t#H$t$ ^ RI%H&t& ]! ]'4      t(R R lt)R R lt*]*R R l4       t+R R lt,R R lt-R R lt. ! R R4      t/ ! R R4      t0 ! R R 4      t1R# )!é    )ÚannotationsN)Ú	GeneratorÚIterable)Úcache_from_source)ÚAnyÚCallable)ÚLegacyDistutilsInstallÚUninstallMissingRecord)Úget_bin_prefixÚget_bin_user)ÚBaseDistribution)ÚWINDOWS)Úegg_link_path_from_location)Ú	getLoggerÚ
indent_log)ÚaskÚnormalize_pathÚrenamesÚrmtree)ÚAdjacentTempDirectoryÚTempDirectory)Úrunning_under_virtualenvc               ó(   € V ^8„  d   QhRRRRRRRR/# )é   Úbin_dirÚstrÚscript_nameÚis_guiÚboolÚreturnúGenerator[str, None, None]© )Úformats   "Ú\/Users/cheyod/AIGC/DSH/.venv/lib/python3.14/site-packages/pip/_internal/req/req_uninstall.pyÚ__annotate__r%      s,   € ÷ &ñ &Øð&Ø"ð&Ø,0ð&àñ&ó    c              #  ó¼   "  € \         P                  P                  W4      pVx € \        '       g   R# V R2x € V R2x € V'       d
   V R2x € R# V R2x € R# 5i)z…Create the fully qualified name of the files created by
{console,gui}_scripts for the given ``dist``.
Returns the list of file names
Nz.exez.exe.manifestz-script.pywz
-script.py)ÚosÚpathÚjoinr   )r   r   r   Úexe_names   &&& r$   Ú_script_namesr,      s]   é € ô �w‰w�|‰|˜GÓ1€HØ
‚Nß‹7ÙØˆJ�dÐ
ÒØˆJ�mÐ
$Ò$ßØ�
˜+Ð&Ô&à�
˜*Ð%Ô%ùs   ‚AAÁ
Ac               ó    € V ^8„  d   QhRRRR/# )r   Úfnz)Callable[..., Generator[Any, None, None]]r    r"   )r#   s   "r$   r%   r%   +   s   € ÷ ñ Ø1ðà.ñr&   c                óL   a € \         P                  ! S 4      R  V 3R ll4       pV# )c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úargsr   Úkwr    zGenerator[Any, None, None]r"   )r#   s   "r$   r%   Ú_unique.<locals>.__annotate__/   s"   € ÷ ñ �cð  ð Ð)Cñ r&   c               ?  ó|   <"  € \        4       pS! V / VB  F   pW29  g   K  VP                  V4       Vx € K"  	  R # 5i©N)ÚsetÚadd)r1   r2   ÚseenÚitemr.   s   *,  €r$   ÚuniqueÚ_unique.<locals>.unique.   s5   øé € ä›ˆÙ˜�O ”OˆDØÖØ—‘˜”Ø”
ó $ùs   ƒ<¡<)Ú	functoolsÚwraps)r.   r:   s   f r$   Ú_uniquer>   +   s'   ø€ ô ‡_‚_�RÓ÷ó ðð €Mr&   c               ó    € V ^8„  d   QhRRRR/# )r   Údistr   r    r!   r"   )r#   s   "r$   r%   r%   :   s   € ÷ ñ Ð/ð Ð4Nñ r&   c              #  óú  "  € V P                   pVf   Q R4       hV P                  4       pVf   \        V R7      hV F¹  p\        P                  P                  W4      pVx € VP                  R4      '       g   K?  \        P                  P                  V4      w  rVVRR p\        P                  P                  WWR,           4      pVx € \        P                  P                  WWR,           4      pVx € K»  	  R# 5i)a§  
Yield all the uninstallation paths for dist based on RECORD-without-.py[co]

Yield paths to all the files in RECORD. For each .py file in RECORD, add
the .pyc and .pyo in the same directory.

UninstallPathSet.add() takes care of the __pycache__ .py[co].

If RECORD is not found, raises an error,
with possible information from the INSTALLER file.

https://packaging.python.org/specifications/recording-installed-packages/
Nznot installed©Údistributionú.pyú.pycú.pyoéýÿÿÿ)ÚlocationÚiter_declared_entriesr
   r(   r)   r*   ÚendswithÚsplit)r@   rH   ÚentriesÚentryr)   Údnr.   Úbases   &       r$   Úuninstallation_pathsrP   9   sÄ   é € ð �}‰}€HØÒÐ0 Ó0Ðà×(Ñ(Ó*€GØ‚Ü$°$Ô7Ð7ãˆÜ�w‰w�|‰|˜HÓ,ˆØŠ
Ø�=‰=˜×ÔÜ—W‘W—]‘] 4Ó(‰FˆBØ�c�r�7ˆDÜ—7‘7—<‘< ¨6¥MÓ2ˆDØŠJÜ—7‘7—<‘< ¨6¥MÓ2ˆDØŒJó ùs   ‚A4C;Á;B C;c               ó    € V ^8„  d   QhRRRR/# ©r   ÚpathsúIterable[str]r    zset[str]r"   )r#   s   "r$   r%   r%   [   s   € ÷ ñ �=ð  Xñ r&   c                ó0  aa€ \         P                  P                  o\        4       p\	        V \
        R7       FZ  o\        ;QJ d     VV3R lV 4       F  '       g   K   RM	  RM! VV3R lV 4       4      pV'       d   KI  VP                  S4       K\  	  V# )z¼Compact a path set to contain the minimal number of paths
necessary to contain all paths in the set. If /a/path/ and
/a/path/to/a/file.txt are both in the set, leave only the
shorter path.©Úkeyc              3  óÚ   <"  € T F`  pSP                  VP                  R 4      4      ;'       d4    S\        VP                  R 4      P                  S4      4      ,          S8H  x € Kb  	  R# 5i)Ú*N)Ú
startswithÚrstripÚlen)Ú.0Ú	shortpathr)   Úseps   & €€r$   Ú	<genexpr>Úcompact.<locals>.<genexpr>d   sh   øé € ð 
ñ )�	ð �O‰O˜I×,Ñ,¨SÓ1Ó2÷ Dð DØ”S˜×)Ñ)¨#Ó.×5Ñ5°cÓ:Ó;Õ<ÀÑCôDã(ùs
   ƒ+A+¯<A+TF)r(   r)   r_   r6   Úsortedr\   Úanyr7   )rS   Úshort_pathsÚshould_skipr)   r_   s   &  @@r$   Úcompactrf   [   su   ù€ ô �'‰'�+‰+€CÜ›E€KÜ�u¤#×&ˆß“cõ 
ñ )ó
—c—c’cõ 
ñ )ó
ó 
ˆ÷
 ‰{Ø�O‰O˜DÖ!ñ 'ð Ðr&   c               ó    € V ^8„  d   QhRRRR/# rR   r"   )r#   s   "r$   r%   r%   n   s   € ÷ Añ A˜}ð A°ñ Ar&   c                ó¢  a
aa€ V  Uu/ uF#  p\         P                  P                  V4      VbK%  	  pp\        V4      p\	        VP                  4        Uu0 uF)  p\         P                  P                  V4      ^ ,          kK+  	  up\        R7      p\        4       pR R loV Fú  o\        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d   KE  \        4       p\        4       p\         P                  ! S4       F@  w  o
r‰VP                  V
VV3R lV 4       4       VP                  V
VV3R lV	 4       4       KB  	  Wc,
          '       d   KÃ  VP                  V4       VP                  S\         P                  ,           4       Kü  	  \        \        VP                  V4      4      V,          # u upi u upi )	zŸReturns a set containing the paths that need to be renamed.

This set may include directories when the original sequence of paths
included every file on disk.
rV   c               ó    € V ^8„  d   QhRRRR/# )r   Úar   r    r"   )r#   s   "r$   r%   Ú)compress_for_rename.<locals>.__annotate__y   s   € ÷ 2ñ 2�cð 2˜cñ 2r&   c                 óx   € \         P                  P                  \         P                  P                  ! V !  4      # r5   )r(   r)   Únormcaser*   )rj   s   *r$   Ú	norm_joinÚ&compress_for_rename.<locals>.norm_joiny   s$   € Ü�w‰w×Ñ¤§¡§¢¨aÑ 0Ó1Ð1r&   c              3  ó€   <"  € T F3  p\         P                  P                  S4      P                  V4      x € K5  	  R # 5ir5   )r(   r)   rm   rZ   )r]   ÚwÚroots   & €r$   r`   Ú&compress_for_rename.<locals>.<genexpr>}   s.   øé € ÐG¹Y¸Œr�w‰w×Ñ Ó%×0Ñ0°×3Ð3»Yùs   ƒ;>TFc              3  ó8   <"  € T F  pS! SSV4      x € K  	  R # 5ir5   r"   )r]   ÚdÚdirnamern   rr   s   & €€€r$   r`   rs   „   s   øé € ÐLÁG¸q™y¨¨w¸×:Ð:ÃGùó   ƒc              3  ó8   <"  € T F  pS! SSV4      x € K  	  R # 5ir5   r"   )r]   Úfrv   rn   rr   s   & €€€r$   r`   rs   …   s   øé € ÐHÁ%¸Q™Y t¨W°a×8Ð8Ã%ùrw   )r(   r)   rm   r6   rb   ÚvaluesrK   r\   rc   ÚwalkÚupdateÚdifference_updater7   r_   ÚmapÚ__getitem__)rS   ÚpÚcase_mapÚ	remainingÚ	uncheckedÚ	wildcardsÚ	all_filesÚall_subdirsÚsubdirsÚfilesrv   rn   rr   s   &         @@@r$   Úcompress_for_renamer‰   n   sL  ú€ ñ 16Ó6±¨1”—‘× Ñ  Ó# QÒ&±€HÐ6Ü�H“€IÜ°X·_±_Ô5FÓGÑ5F°œŸ™Ÿ™ aÓ(¨×+Ð+Ñ5FÑGÌSÔQ€IÜ›%€Iõ2ó ˆß‹3ÔG¹YÓG�3�3Š3ÔG¹YÓG×GÒGáä!›eˆ	Ü #£ˆÜ')§w¢w¨t¦}Ñ#ˆG�WØ×ÑÖLÁGÓLÔLØ×ÑÖHÁ%ÓHÖHñ (5ð ×%Ö%Ø×'Ñ'¨	Ô2Ø�M‰M˜$¤§¡�-Ö(ñ ô" Œs�8×'Ñ'¨Ó3Ó4°yÕ@Ð@ùò3 7ùâGs   ˆ)GÁ/Gc               ó    € V ^8„  d   QhRRRR/# )r   rS   rT   r    ztuple[set[str], set[str]]r"   )r#   s   "r$   r%   r%   �   s   € ÷ ."ñ ." }ð ."Ð9Rñ ."r&   c                óÎ  € \        V 4      p\        4       p\        4       p\        4       pV Fy  pVP                  R4      '       d   K  VP                  R4      '       g   RV9   d/   VP                  \        P                  P                  V4      4       VP                  V4       K{  	  \        \        \        P                  P                  V4      4      p\        V4      pV FÂ  p\        P                  ! V4       F¥  w  r‰p
V
 F™  pVP                  R4      '       d   K  \        P                  P                  W‹4      p\        P                  P                  V4      '       g   Kb  \        P                  P                  V4      V9  g   Kˆ  VP                  V4       K›  	  K§  	  KÄ  	  YC Uu0 uF#  p\        P                  P                  VR4      kK%  	  up,          pW3# u upi )a[  Returns a tuple of 2 sets of which paths to display to user

The first set contains paths that would be deleted. Files of a package
are not added and the top-level directory of the package has a '*' added
at the end - to signify that all it's contents are removed.

The second set contains files that would have been skipped in the above
folders.
rE   z__init__.pyz
.dist-inforY   )r6   rJ   r7   r(   r)   rv   r~   rm   rf   r{   r*   Úisfile)rS   Úwill_removeÚ	will_skipÚfoldersrˆ   r)   Ú_normcased_filesÚfolderÚdirpathÚ_ÚdirfilesÚfnameÚfile_s   &            r$   Úcompress_for_output_listingr—   �   se  € ô �e“*€KÜ“€Iô ‹e€GÜ‹E€EÛˆØ�=‰=˜× Ò ÙØ�=‰=˜×'Ò'¨<¸4Ô+?Ø�K‰KœŸ™Ÿ™¨Ó-Ô.Ø�	‰	�$Žñ ô œ3œrŸw™w×/Ñ/°Ó7Ó8Ðä�gÓ€Gó ˆÜ$&§G¢G¨F¦OÑ ˆG˜Û!�Ø—>‘> &×)Ò)ÙäŸ™Ÿ™ WÓ4�ä—G‘G—N‘N 5×)Ô)ÜŸ™×(Ñ(¨Ó/Ð7GÖGð —M‘M %Ö(ó "ó %4ñ ð À7ÓKÁ7¸œ2Ÿ7™7Ÿ<™<¨°Ö4Á7ÑKÕK€KàÐ!Ð!ùò Ls   Æ-)G"c                  óx   € ] tR t^ÁtRtR R ltR R ltR R ltR R	 ltR
 R lt	R R lt
]R R l4       tRtR# )ÚStashedUninstallPathSetzSA set of file rename operations to stash files while
tentatively uninstalling them.c               ó   € V ^8„  d   QhRR/# ©r   r    ÚNoner"   )r#   s   "r$   r%   Ú$StashedUninstallPathSet.__annotate__Å   s   € ÷ 0ñ 0˜$ñ 0r&   c                	ó"   € / V n         . V n        R # r5   )Ú
_save_dirsÚ_moves©Úselfs   &r$   Ú__init__Ú StashedUninstallPathSet.__init__Å   s   € ð 57ˆŒð .0ˆŽr&   c               ó    € V ^8„  d   QhRRRR/# ©r   r)   r   r    r"   )r#   s   "r$   r%   r�   Í   s   € ÷ ñ ¨ð °ñ r&   c                óÂ   €  \        V4      pW P                  \        P
                  P                  V4      &   VP
                  #   \         d    \        RR7      p LPi ; i)z�Stashes a directory.

Directories are stashed adjacent to their original location if
possible, or else moved/copied into the user's temp dir.Ú	uninstall©Úkind)r   ÚOSErrorr   rŸ   r(   r)   rm   )r¢   r)   Úsave_dirs   && r$   Ú_get_directory_stashÚ,StashedUninstallPathSet._get_directory_stashÍ   sS   € ð	7Ü&;¸DÓ&AˆHð 3;�‰œŸ™×(Ñ(¨Ó.Ñ/à�}‰}Ðøô	 ô 	7Ü$¨+Ô6ŠHð	7ús   ‚A ÁAÁAc               ó    € V ^8„  d   QhRRRR/# r¦   r"   )r#   s   "r$   r%   r�   Û   s   € ÷ ñ  Cð ¨Cñ r&   c                óŒ  € \         P                  P                  V4      p\         P                  P                  V4      Rr2RpW#8w  d    V P                  V,          pM9\         P                  P                  V4      p\        RR7      pW@P                  V&   \         P                  P                  W4      pV'       dJ   V\         P                  P                  8w  d+   \         P                  P                  VP                  V4      # VP                  #   \
         d     Mi ; i\         P                  P                  T4      Tr2EK  )zrStashes a file.

If no root has been provided, one will be created for the directory
in the user's temp directory.Nr¨   r©   )
r(   r)   rm   rv   rŸ   ÚKeyErrorr   ÚrelpathÚcurdirr*   )r¢   r)   ÚheadÚold_headr¬   r²   s   &&    r$   Ú_get_file_stashÚ'StashedUninstallPathSet._get_file_stashÛ   sæ   € ô
 �w‰w×Ñ Ó%ˆÜŸ™Ÿ™¨Ó.°ˆhØˆàÔðØŸ?™?¨4Õ0�Øô —7‘7—?‘? 4Ó(ˆDÜ$¨+Ô6ˆHØ$,�O‰O˜DÑ!ä—'‘'—/‘/ $Ó-ˆß�w¤"§'¡'§.¡.Ô0Ü—7‘7—<‘< §¡¨wÓ7Ð7Ø�}‰}Ðøô ô ÙðúäŸW™WŸ_™_¨TÓ2°D“(s   Á	D ÄD ÄD c               ó    € V ^8„  d   QhRRRR/# r¦   r"   )r#   s   "r$   r%   r�   ö   s   € ÷ ñ ˜#ð  #ñ r&   c                óÆ  € \         P                  P                  V4      ;'       d%    \         P                  P                  V4      '       * pV'       d   V P	                  V4      pMV P                  V4      pV P                  P                  W34       V'       d<   \         P                  P                  V4      '       d   \         P                  ! V4       \        W4       V# )z}Stashes the directory or file and returns its new location.
Handle symlinks as files to avoid modifying the symlink targets.
)
r(   r)   ÚisdirÚislinkr­   r¶   r    ÚappendÚrmdirr   )r¢   r)   Úpath_is_dirÚnew_paths   &&  r$   ÚstashÚStashedUninstallPathSet.stashö   s–   € ô —g‘g—m‘m DÓ)×FÐF´"·'±'·.±.ÀÓ2FÔ.FˆßØ×0Ñ0°Ó6‰Hà×+Ñ+¨DÓ1ˆHà�‰×Ñ˜DÐ+Ô,ßœ2Ÿ7™7Ÿ=™=¨×2Ò2ô �HŠH�XÔÜ�ÔØˆr&   c               ó   € V ^8„  d   QhRR/# r›   r"   )r#   s   "r$   r%   r�     s   € ÷ ñ ˜ñ r&   c                ó„   € V P                   P                  4        F  pVP                  4        K  	  . V n        / V n         R# )z0Commits the uninstall by removing stashed files.N)rŸ   rz   Úcleanupr    )r¢   r¬   s   & r$   ÚcommitÚStashedUninstallPathSet.commit  s3   € àŸ™×.Ñ.Ö0ˆHØ×ÑÖñ 1àˆŒØˆŽr&   c               ó   € V ^8„  d   QhRR/# r›   r"   )r#   s   "r$   r%   r�     s   € ÷ ñ ˜$ñ r&   c                ó˜  € V P                    F  p\        P                  ! R.VO5!   K  	  V P                    F¸  w  r# \        P                  RW#4       \        P
                  P                  V4      '       g&   \        P
                  P                  V4      '       d   \        P                  ! V4       M0\        P
                  P                  V4      '       d   \        V4       \        W24       Kº  	  V P                  4        R#   \         d9   p\        P                  RT4       \        P                  RT4        Rp?EK  Rp?ii ; i)z2Undoes the uninstall by moving stashed files back.zMoving to %s
 from %szReplacing %s from %szFailed to restore %szException: %sN)r    ÚloggerÚinfoÚdebugr(   r)   rŒ   r»   Úunlinkrº   r   r   r«   ÚerrorrÅ   )r¢   r€   r¿   r)   Úexs   &    r$   ÚrollbackÚ StashedUninstallPathSet.rollback  sÙ   € à—”ˆAÜ�KŠKÐ0Ð5°1Ö5ñ ð #Ÿkœk‰NˆHð	2Ü—‘Ð3°XÔDÜ—7‘7—>‘> (×+Ò+¬r¯w©w¯~©~¸h×/GÒ/GÜ—I’I˜hÕ'Ü—W‘W—]‘] 8×,Ò,Ü˜8Ô$Ü˜Ö'ñ *ð 	�‰Žøô	 ô 2Ü—‘Ð3°XÔ>Ü—‘˜_¨b×1Ó1ûð2ús$   ¾ADÂ;DÃDÄE	Ä,EÅE	c               ó   € V ^8„  d   QhRR/# ©r   r    r   r"   )r#   s   "r$   r%   r�   &  s   € ÷ !ñ !˜dñ !r&   c                	ó,   € \        V P                  4      # r5   )r   r    r¡   s   &r$   Úcan_rollbackÚ$StashedUninstallPathSet.can_rollback%  s   € ä�D—K‘KÓ Ð r&   )r    rŸ   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r£   r­   r¶   rÀ   rÅ   rÏ   ÚpropertyrÔ   Ú__static_attributes__r"   r&   r$   r™   r™   Á   s9   † ñ&õ0õõõ6õ*õð& ô!ó ô!r&   r™   c                  ó”   € ] tR tRtRtR R ltR R ltR R ltR	 R
 ltRR R llt	R R lt
R R ltR R lt]R R l4       tRtR# )ÚUninstallPathSeti*  zIA set of file paths to be removed in the uninstallation of a
requirement.c               ó    € V ^8„  d   QhRRRR/# )r   r@   r   r    rœ   r"   )r#   s   "r$   r%   ÚUninstallPathSet.__annotate__.  s   € ÷ 	Jñ 	JÐ-ð 	J°$ñ 	Jr&   c                	ó¸   € \        4       V n        \        4       V n        / V n        Wn        \        4       V n        \        P                  ! \        4      V n
        R # r5   )r6   Ú_pathsÚ_refuseÚ_pthÚ_distr™   Ú_moved_pathsr<   Ú	lru_cacher   Ú_normalize_path_cached)r¢   r@   s   &&r$   r£   ÚUninstallPathSet.__init__.  s@   € Ü #£ˆŒÜ!$£ˆŒØ46ˆŒ	ØŒ
Ü3Ó5ˆÔô '0×&9Ò&9¼.Ó&IˆÖ#r&   c               ó    € V ^8„  d   QhRRRR/# )r   r)   r   r    r   r"   )r#   s   "r$   r%   rà   9  s   € ÷ 	Hñ 	H˜sð 	H tñ 	Hr&   c                ó‚   € \        4       '       g   R# VP                  V P                  \        P                  4      4      # )z[
Return True if the given path is one we are permitted to
remove/modify, False otherwise.

T)r   rZ   rè   ÚsysÚprefix)r¢   r)   s   &&r$   Ú
_permittedÚUninstallPathSet._permitted9  s.   € ô (×)Ò)ÙØ�‰˜t×:Ñ:¼3¿:¹:ÓFÓGÐGr&   c               ó    € V ^8„  d   QhRRRR/# )r   r)   r   r    rœ   r"   )r#   s   "r$   r%   rà   D  s   € ÷ .ñ .˜ð . ñ .r&   c                	óX  € \         P                  P                  V4      w  r#\         P                  P                  V P	                  V4      \         P                  P                  V4      4      p\         P                  P                  V4      '       g   R # V P                  V4      '       d   V P                  P                  V4       MV P                  P                  V4       \         P                  P                  V4      ^,          R8X  d   V P                  \        V4      4       R # R # )NrD   )r(   r)   rK   r*   rè   rm   Úexistsrî   râ   r7   rã   Úsplitextr   )r¢   r)   r´   Útails   &&  r$   r7   ÚUninstallPathSet.addD  sÃ   € Ü—W‘W—]‘] 4Ó(‰
ˆô �w‰w�|‰|˜D×7Ñ7¸Ó=¼r¿w¹w×?OÑ?OÐPTÓ?UÓVˆä�w‰w�~‰~˜d×#Ò#ÙØ�?‰?˜4× Ò Ø�K‰K�O‰O˜DÕ!à�L‰L×Ñ˜TÔ"ô �7‰7×Ñ˜DÓ! !Õ$¨Ô-Ø�H‰HÔ& tÓ,Ö-ñ .r&   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úpth_filer   rM   r    rœ   r"   )r#   s   "r$   r%   rà   W  s!   € ÷ 'ñ ' ð '¨Cð '°Dñ 'r&   c                	ó$  € V P                  V4      pV P                  V4      '       dM   WP                  9  d   \        V4      V P                  V&   V P                  V,          P	                  V4       R # V P
                  P	                  V4       R # r5   )rè   rî   rä   ÚUninstallPthEntriesr7   rã   )r¢   r÷   rM   s   &&&r$   Úadd_pthÚUninstallPathSet.add_pthW  sg   € Ø×.Ñ.¨xÓ8ˆØ�?‰?˜8×$Ò$ØŸy™yÔ(Ü&9¸(Ó&C�—	‘	˜(Ñ#Ø�I‰I�hÕ×#Ñ# EÖ*à�L‰L×Ñ˜XÖ&r&   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úauto_confirmr   Úverboser    rœ   r"   )r#   s   "r$   r%   rà   `  s&   € ÷ Nñ N 4ð N¸$ð NÈ4ñ Nr&   c                óü  € V P                   '       g-   \        P                  RV P                  P                  4       R# V P                  P                   RV P                  P
                   2p\        P                  RV4       \        4       ;_uu_ 4        V'       g   V P                  V4      '       d«   V P                  p\        V P                   4      p\        \        V4      4       F*  pVP                  V4       \        P                  RV4       K,  	  V P                  P                  4        F  pVP!                  4        K  	  \        P                  RV4       RRR4       R#   + '       g   i     R# ; i)zTRemove paths in ``self._paths`` with confirmation (unless
``auto_confirm`` is True).z7Can't uninstall '%s'. No files were found to uninstall.NÚ-zUninstalling %s:zRemoving file or directory %szSuccessfully uninstalled %s)râ   rÉ   rÊ   rå   Úraw_nameÚraw_versionr   Ú_allowed_to_proceedræ   r‰   rb   rf   rÀ   rþ   rä   rz   Úremove)r¢   rý   rþ   Údist_name_versionÚmovedÚ
for_renamer)   Úpths   &&&     r$   r  ÚUninstallPathSet.remove`  s  € ð �{�{ˆ{Ü�K‰KØIØ—
‘
×#Ñ#ôñ à#Ÿz™z×2Ñ2Ð3°1°T·Z±Z×5KÑ5KÐ4LÐMÐÜ�‰Ð&Ð(9Ô:ä�\�\ß˜t×7Ñ7¸×@Ò@Ø×)Ñ)�ä0°·±Ó=�
ä"¤7¨:Ó#6Ö7�DØ—K‘K Ô%Ü—N‘NÐ#BÀDÖIñ 8ð  Ÿ9™9×+Ñ+Ö-�CØ—J‘J–Lñ .ô —‘Ð9Ð;LÔM÷ �\�\Š\ús   ÂE*Â6B*E*Å*E;	c               ó    € V ^8„  d   QhRRRR/# )r   rþ   r   r    r"   )r#   s   "r$   r%   rà   }  s   € ÷ =ñ =¨4ð =°Dñ =r&   c                ó<  € R R lpV'       g   \        V P                  4      w  r4M\        V P                  4      p\        4       pV! RV4       V! RV4       V! RV P                  4       V'       d   V! R\	        V P                  4      4       \        RR	4      R8g  # )
z@Display which files would be deleted and prompt for confirmationc               ó$   € V ^8„  d   QhRRRRRR/# )r   Úmsgr   rS   rT   r    rœ   r"   )r#   s   "r$   r%   Ú:UninstallPathSet._allowed_to_proceed.<locals>.__annotate__€  s!   € ÷ 	&ñ 	&˜#ð 	& mð 	&¸ñ 	&r&   c                ó  € V'       g   R # \         P                  V 4       \        4       ;_uu_ 4        \        \	        V4      4       F  p\         P                  V4       K  	  R R R 4       R #   + '       g   i     R # ; ir5   )rÉ   rÊ   r   rb   rf   )r  rS   r)   s   && r$   Ú_displayÚ6UninstallPathSet._allowed_to_proceed.<locals>._display€  sF   € ßÙä�K‰K˜ÔÜ—•Ü"¤7¨5£>Ö2�DÜ—K‘K Ö%ñ 3÷ ——’ús   ²1A-Á-A>	zWould remove:z+Would not remove (might be manually added):z%Would not remove (outside of prefix):zWill actually move:zProceed (Y/n)? Ún)Úyr  Ú )r—   râ   r6   rã   r‰   r   )r¢   rþ   r  r�   rŽ   s   &&   r$   r  Ú$UninstallPathSet._allowed_to_proceed}  s…   € õ	&÷ Ü%@ÀÇÁÓ%MÑ"ˆK˜ô ˜dŸk™kÓ*ˆKÜ›ˆIá� +Ô.ÙÐ>À	ÔJÙÐ8¸$¿,¹,ÔGßÙÐ*Ô,?ÀÇÁÓ,LÔMäÐ$ nÓ5¸Ñ<Ð<r&   c               ó   € V ^8„  d   QhRR/# r›   r"   )r#   s   "r$   r%   rà   ™  s   € ÷ ñ ˜$ñ r&   c                ó€  € V P                   P                  '       g-   \        P                  RV P                  P
                  4       R# \        P                  RV P                  P
                  4       V P                   P                  4        V P                  P                  4        F  pVP                  4        K  	  R# )z1Rollback the changes previously made by remove().z'Can't roll back %s; was not uninstalledNzRolling back uninstall of %s)
ræ   rÔ   rÉ   rÍ   rå   r  rÊ   rÏ   rä   rz   )r¢   r  s   & r$   rÏ   ÚUninstallPathSet.rollback™  s€   € à× Ñ ×-×-Ð-Ü�L‰LØ9Ø—
‘
×#Ñ#ôñ Ü�‰Ð2°D·J±J×4GÑ4GÔHØ×Ñ×"Ñ"Ô$Ø—9‘9×#Ñ#Ö%ˆCØ�L‰LŽNó &r&   c               ó   € V ^8„  d   QhRR/# r›   r"   )r#   s   "r$   r%   rà   ¦  s   € ÷ #ñ #˜ñ #r&   c                ó:   € V P                   P                  4        R# )z?Remove temporary save dir: rollback will no longer be possible.N)ræ   rÅ   r¡   s   &r$   rÅ   ÚUninstallPathSet.commit¦  s   € à×Ñ× Ñ Ö"r&   c               ó    € V ^8„  d   QhRRRR/# )r   r@   r   r    rÞ   r"   )r#   s   "r$   r%   rà   «  s    € ÷ Zñ ZÐ-ð ZÐ2Bñ Zr&   c           
     	óh  € VP                   pVP                  pVf)   \        P                  RVP                  4       V ! V4      # \        V4      pVP                  '       g9   \        P                  RVP                  V\        P                  4       V ! V4      # T\        P                  ! R4      \        P                  ! R4      0 Uu0 uF  pV'       g   K  VkK  	  up9   d*   \        P                  RVP                  V4       V ! V4      # V ! V4      p\        VP                  4      pVP                  ;'       dW    VR J;'       dK    \        P                  P!                  V4      ;'       d$    VP#                  VP$                   R24      '       * pV'       EdT   Ve   VP'                  V4       VP)                  4       p	V	e:   V	 F1  p
VP'                  \        P                  P+                  W*4      4       K3  	  EMVP-                  R4      '       dÙ    VP/                  R4      pVP1                  R	R
7      pVP/                  R4      P1                  4        Uu. uF  pV'       g   K  W\9  g   K  VNK  	  up Fo  p\        P                  P+                  W-4      pVP'                  V4       VP'                  V R24       VP'                  V R24       VP'                  V R24       Kq  	  EM#VP4                  '       d   \7        VR7      hVP8                  '       d�   VP'                  V4       \        P                  P;                  V4      ^,          p\        P                  P+                  \        P                  P=                  V4      R4      pVP?                  VRV,           4       EMdVP@                  '       d&   \C        V4       F  pVP'                  V4       K  	  EM-V'       Ed   \E        V4      ;_uu_ 4       p\        P                  PG                  VPI                  4       PK                  4       4      pVPM                  V4      pR R R 4       \        P                  PO                  XV4      '       g   Q RV RX RVP                   RV R2	4       hVP'                  V4       \        P                  P+                  \        P                  P=                  V4      R4      pVP?                  VV4       M\        PQ                  RVV4       VPR                  '       d   \U        4       pM
\W        4       p VPY                  4        Fr  pVP'                  \        P                  P+                  VV4      4       \Z        '       g   K@  VP'                  \        P                  P+                  VV R24      4       Kt  	  R R lpV! VV4       F  pVP'                  V4       K  	  V# u upi   \2         d    . p ELÅi ; iu upi   + '       g   i     ELÂ; i  \2        \\        3 d     Lni ; i)Nz-Not uninstalling %s since it is not installedz1Not uninstalling %s at %s, outside environment %sÚstdlibÚ
platstdlibz<Not uninstalling %s at %s, as it is in the standard library.z	.egg-infoztop_level.txtznamespace_packages.txtF)ÚkeependsrD   rE   rF   rB   zeasy-install.pthz./z	Egg-link z (to z') does not match installed location of z (at Ú)z)Not sure how to uninstall: %s - Check: %sz.batc               ó$   € V ^8„  d   QhRRRRRR/# )r   r@   r   r   r   r    r!   r"   )r#   s   "r$   r%   Ú0UninstallPathSet.from_dist.<locals>.__annotate__8  s+   € ÷ 	Nñ 	NØ"ð	Nàð	Nð (ñ	Nr&   c              3  ó  "  € V P                  4        Fe  pVP                  R 8X  d!   \        WP                  R4       Rj  x€L
  K4  VP                  R8X  g   KG  \        WP                  R4       Rj  x€L
  Kg  	  R#  L= L5i)Úconsole_scriptsFNÚgui_scriptsT)Úiter_entry_pointsÚgroupr,   Úname)r@   r   Úentry_points   && r$   Úiter_scripts_to_removeÚ:UninstallPathSet.from_dist.<locals>.iter_scripts_to_remove8  si   é € ð  $×5Ñ5Ö7�Ø×$Ñ$Ð(9Ô9Ü,¨W×6FÑ6FÈÓN×NÒNØ ×&Ñ&¨-Ö7Ü,¨W×6FÑ6FÈÓM×MÒMó	  8áNáMùs)   ‚>BÁ A>ÁBÁBÁ3B Á4BÂ B)/rH   Úinfo_locationrÉ   rÊ   Úcanonical_namer   Úlocalrì   rí   Ú	sysconfigÚget_pathr   r  Ú"installed_with_setuptools_egg_infor(   r)   rò   rJ   Úsetuptools_filenamer7   rI   r*   Úis_fileÚ	read_textÚ
splitlinesÚFileNotFoundErrorÚinstalled_by_distutilsr	   Úinstalled_as_eggrK   rv   rú   Úinstalled_with_dist_inforP   Úopenrm   ÚreadlineÚstriprè   ÚsamefilerË   Úin_usersiter   r   Úiter_distutils_script_namesr   ÚNotADirectoryError)Úclsr@   Údist_locationr-  Únormalized_dist_locationr€   Úpaths_to_removeÚdevelop_egg_linkÚsetuptools_flat_installationÚinstalled_filesÚinstalled_fileÚnamespace_packagesÚ
namespacesÚtop_level_pkgr)   Úeasy_install_eggÚeasy_install_pthÚfhÚlink_pointerÚnormalized_link_pointerr   Úscriptr+  Úss   &&                      r$   Ú	from_distÚUninstallPathSet.from_distª  sd  € àŸ™ˆØ×*Ñ*ˆØÒ Ü�K‰KØ?Ø×#Ñ#ôñ �t“9Ðä#1°-Ó#@Ð Ø�z�zˆzÜ�K‰KØCØ×#Ñ#Ø(Ü—
‘
ô	ñ �t“9Ðà#ä×(Ò(¨Ó2´I×4FÒ4FÀ|Ó4TÑUó(
áU�Ü÷ ˆAÙUñ(
ô 
ô
 �K‰KØNØ×#Ñ#Ø(ôñ
 �t“9Ðá˜d›)ˆÜ6°t·}±}ÓEÐð ×3Ñ3÷ Sð SØ TÐ)÷Sð Sä—‘—‘˜}Ó-÷Sð Sð
 "×*Ñ*¨d×.FÑ.FÐ-GÀyÐ+QÓRÔRð 	%÷ (Ð'ØÒ(Ø×#Ñ# MÔ2Ø"×8Ñ8Ó:ˆOØÒ*Û&5�NØ#×'Ñ'¬¯©¯©°]Ó(SÖTó '6ð
 —‘˜o×.Ò.ðOØ)-¯©Ð8PÓ)QÐ&ð "4×!>Ñ!>ÈÐ!>Ó!N�Jð "Ÿ^™^¨OÓ<×GÑGÔIó&áI˜Üô àÑ0÷ �AÙIô&�Mô
 Ÿ7™7Ÿ<™<¨ÓE�DØ#×'Ñ'¨Ô-Ø#×'Ñ'¨4¨&°¨Ô5Ø#×'Ñ'¨4¨&°¨Ô6Ø#×'Ñ'¨4¨&°¨Ö6ñ&ùð ×(×(Ð(Ü(°dÔ;Ð;à×"×"Ð"ð ×ÑÐ 8Ô9Ü!Ÿw™wŸ}™}Ð-EÓFÀqÕIÐÜ!Ÿw™wŸ|™|Ü—‘—‘Ð 8Ó9Ø"ó Ðð ×#Ñ#Ð$4°dÐ=MÕ6MÖNà×*×*Ð*Ü,¨TÖ2�Ø×#Ñ# DÖ)ó 3÷ Ðô Ð&×'Ô'¨2Ü!Ÿw™w×/Ñ/°·±³×0CÑ0CÓ0EÓF�Ø*9×*PÑ*PØ ó+Ð'÷ (ô
 —7‘7×#Ñ#Ø'Ð)A÷ò ð ð Ð,Ð-¨U°<°.ð A)Ø)-¯©¨°u¸]¸OÈ1ðNóð ð ×ÑÐ 0Ô1Ü!Ÿw™wŸ|™|Ü—‘—‘Ð 0Ó1Ð3Eó Ðð ×#Ñ#Ð$4°mÕDô �L‰LØ;ØØôð ××ÐÜ"“n‰Gä$Ó&ˆGð	Ø×:Ñ:Ö<�Ø×#Ñ#¤B§G¡G§L¡L°¸&Ó$AÔBß•7Ø#×'Ñ'¬¯©¯©°WÀÀÈ¸oÓ(NÖOñ =õ	Nñ (¨¨gÖ6ˆAØ×Ñ Ö"ñ 7ð ÐùòM(
øôT )ô $Ø!#“Jð$üò&÷H (×'Ð'ûôF "Ô#5Ð6ô 	Ùð	úsV   Ã	
W+ÃW+ÈW0 É
XÉ+XÉ3XÐAX	Ô<AX Ö6X ×0XØ XØ	X	ØX1Ø0X1)rå   ræ   rè   râ   rä   rã   N)FF)rÖ   r×   rØ   rÙ   rÚ   r£   rî   r7   rú   r  r  rÏ   rÅ   ÚclassmethodrT  rÜ   r"   r&   r$   rÞ   rÞ   *  sH   † ñõ	Jõ	Hõ.õ&'÷Nõ:=õ8õ#ð ôZó ôZr&   rÞ   c                  óF   € ] tR tRtR R ltR R ltR R ltR R	 ltR
tR# )rù   iH  c               ó    € V ^8„  d   QhRRRR/# )r   r÷   r   r    rœ   r"   )r#   s   "r$   r%   Ú UninstallPthEntries.__annotate__I  s   € ÷ 5ñ 5 ð 5¨ñ 5r&   c                	ó>   € Wn         \        4       V n        R V n        R # r5   )Úfiler6   rL   Ú_saved_lines)r¢   r÷   s   &&r$   r£   ÚUninstallPthEntries.__init__I  s   € ØŒ	Ü!$£ˆŒØ04ˆÖr&   c               ó    € V ^8„  d   QhRRRR/# )r   rM   r   r    rœ   r"   )r#   s   "r$   r%   rY  N  s   € ÷  ñ  ˜ð   ñ  r&   c                	ó  € \         P                  P                  V4      p\        '       d?   \         P                  P	                  V4      ^ ,          '       g   VP                  RR4      pV P                  P                  V4       R# )r   Ú\Ú/N)r(   r)   rm   r   Ú
splitdriveÚreplacerL   r7   )r¢   rM   s   &&r$   r7   ÚUninstallPthEntries.addN  sX   € Ü—‘× Ñ  Ó'ˆ÷ ‹7œ2Ÿ7™7×-Ñ-¨eÓ4°Q×7Ô7Ø—M‘M $¨Ó,ˆEØ�‰×Ñ˜Ör&   c               ó   € V ^8„  d   QhRR/# r›   r"   )r#   s   "r$   r%   rY  ]  s   € ÷ !ñ !˜ñ !r&   c                	ó  € \         P                  R V P                  4       \        P                  P                  V P                  4      '       g#   \         P                  RV P                  4       R# \        V P                  R4      ;_uu_ 4       pVP                  4       pW n	        RRR4       \        ;QJ d    R X 4       F  '       g   K   RM	  RM! R X 4       4      '       d   RpMRpV'       dP   VR,          P                  VP                  R	4      4      '       g#   VR,          VP                  R	4      ,           VR&   V P                   F@  p \         P                  R
V4       VP                  WC,           P                  R	4      4       KB  	  \        V P                  R4      ;_uu_ 4       pVP!                  V4       RRR4       R#   + '       g   i     EL1; i  \         d     K   i ; i  + '       g   i     R# ; i)zRemoving pth entries from %s:z.Cannot remove entries from nonexistent file %sNÚrbc              3  ó,   "  € T F
  pR V9   x € K  	  R# 5i)s   
Nr"   )r]   Úlines   & r$   r`   Ú-UninstallPthEntries.remove.<locals>.<genexpr>h  s   é € Ð1©5 4ˆw˜$Ž«5ùs   ‚TFz
Ú
zutf-8zRemoving entry: %sÚwbéÿÿÿÿ)rÉ   rþ   r[  r(   r)   rŒ   Úwarningr;  Ú	readlinesr\  rc   rJ   ÚencoderL   r  Ú
ValueErrorÚ
writelines)r¢   rO  ÚlinesÚendlinerM   s   &    r$   r  ÚUninstallPthEntries.remove]  sb  € Ü�‰Ð6¸¿	¹	ÔBô �w‰w�~‰~˜dŸi™i×(Ò(Ü�N‰NÐKÈTÏYÉYÔWÙÜ�$—)‘)˜T×"Ô" bà—L‘L“NˆEØ %Ô÷ #÷ ‹3Ñ1©5Ó1�3�3Š3Ñ1©5Ó1×1Ò1Ø‰GàˆGç˜˜r�×+Ñ+¨G¯N©N¸7Ó,C×DÒDØ˜b�	 G§N¡N°7Ó$;Õ;ˆE�"‰IØ—\”\ˆEðÜ—‘Ð3°UÔ;Ø—‘˜e�o×5Ñ5°gÓ>Ö?ñ "ô �$—)‘)˜T×"Ô" bØ�M‰M˜%Ô ÷ #Ñ"÷# #×"Ð"ûô ô Úðúç"×"Ð"ús*   ÂGÅ<G#Æ3G5ÇG 	Ç#G2Ç1G2Ç5H	c               ó   € V ^8„  d   QhRR/# rÒ   r"   )r#   s   "r$   r%   rY  x  s   € ÷ ñ ˜$ñ r&   c                	óR  € V P                   f#   \        P                  RV P                  4       R# \        P	                  RV P                  4       \        V P                  R4      ;_uu_ 4       pVP                  V P                   4       R R R 4       R#   + '       g   i     R# ; i)Nz.Cannot roll back changes to %s, none were madeFz!Rolling %s back to previous staterl  T)r\  rÉ   rÍ   r[  rË   r;  rr  )r¢   rO  s   & r$   rÏ   ÚUninstallPthEntries.rollbackx  sp   € Ø×ÑÒ$Ü�L‰LÐIÈ4Ï9É9ÔUÙÜ�‰Ð8¸$¿)¹)ÔDÜ�$—)‘)˜T×"Ô" bØ�M‰M˜$×+Ñ+Ô,÷ #á÷ #Ö"áús   Á/BÂB&	)r\  rL   r[  N)	rÖ   r×   rØ   rÙ   r£   r7   r  rÏ   rÜ   r"   r&   r$   rù   rù   H  s   † õ5õ
 õ!÷6ñ r&   rù   )2Ú
__future__r   r<   r(   rì   r0  Úcollections.abcr   r   Úimportlib.utilr   Útypingr   r   Úpip._internal.exceptionsr	   r
   Úpip._internal.locationsr   r   Úpip._internal.metadatar   Úpip._internal.utils.compatr   Úpip._internal.utils.egg_linkr   Úpip._internal.utils.loggingr   r   Úpip._internal.utils.miscr   r   r   r   Úpip._internal.utils.temp_dirr   r   Úpip._internal.utils.virtualenvr   rÖ   rÉ   r,   r>   rP   rf   r‰   r—   r™   rÞ   rù   r"   r&   r$   Ú<module>r†     sš   ðÝ "ã Û 	Û 
Û ß /Ý ,ß  ç Sß @Ý 3Ý .Ý Dß =ß IÓ Iß MÝ Cá	�8Ó	€õ&õ&ð 	ôó 	ðõBõ&AõD."÷bf!ñ f!÷R[ñ [÷|7ó 7r&   