§ ]<ˆj-]ã óŽ—ddlZddlZddlZddlZddlmZddlmZmZm Z m Z m Z m Z m Z mZmZddlmZmZddlmZmZddlmZddlmZddlmZdd lmZmZdd lm Z m!Z!m"Z"m#Z#dd l$m%Z%m&Z&dd l'm(Z(ee)¦«Z*d e+de+de,de e+ddffd„Z-dede eddffdede eddfffd„Z.e.dede e+ddffd„¦«Z/de e+dee+fd„Z0de e+dee+fd„Z1de e+deee+ee+ffd„Z2Gd„d¦«Z3Gd„d¦«Z4Gd„d ¦«Z5dS)!éN)Úcache_from_source) ÚAnyÚCallableÚDictÚ GeneratorÚIterableÚListÚOptionalÚSetÚTuple)Ú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_virtualenvÚbin_dirÚ script_nameÚis_guiÚreturnc#ó¤K—tj ||¦«}|V—tsdS|›d�V—|›d�V—|r |›d�V—dS|›d�V—dS)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)rrrÚexe_names úq/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/pip/_internal/req/req_uninstall.pyÚ _script_namesr's›èè€õŒw�|Š|˜G [Ñ1Ô1€HØ €N€N€NÝ ðØˆØ Ð Ð Ð ÐÐÐØ Ð $Ð $Ð $Ð$Ð$Ð$Ø ð&ØÐ&Ð&Ð&Ð&Ð&Ð&Ð&Ð&àÐ%Ð%Ð%Ð%Ð%Ð%Ð%Ð%óÚfn.c 󎇗tj‰¦«dtdtdttddffˆfd„ ¦«}|S)NÚargsÚkwr c?óx•K—t¦«}‰|i|¤ŽD]}||vr| |¦«|V—Œ dS©N)ÚsetÚadd)r+r,ÚseenÚitemr)s €r&Úuniquez_unique..unique+sYøèè€å™œˆØ�B˜�O �O�Oð ð ˆDؘ4ÐÐØ—’˜‘”�Ø� � � øð ð r()Ú functoolsÚwrapsrr)r)r3s` r&Ú_uniquer6(s_ø€õ„_�RÑÔð•cð¥ð­µ3¸¸d°?Ô)CðððððñÔðð €Mr(Údistc#óìK—|j}|€ Jd¦«‚| ¦«}|€t|¬¦«‚|D]µ}tj ||¦«}|V—| d¦«rztj |¦«\}}|dd…}tj ||dz¦«}|V—tj ||dz¦«}|V—Œ¶dS)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_entriesrr"r#r$ÚendswithÚsplit)r7r?ÚentriesÚentryr#Údnr)Úbases r&Úuninstallation_pathsrG6sþèè€ðŒ}€HØ Ð Ð  Ñ Ô Ð à×(Ò(Ñ*Ô*€GØ€Ý$°$Ð7Ñ7Ô7Ð7àð ð ˆÝŒw�|Š|˜H eÑ,Ô,ˆØˆ ˆ ˆ Ø �=Š=˜Ñ Ô ð Ý”W—]’] 4Ñ(Ô(‰FˆB�Ø�c�r�c”7ˆDÝ”7—<’<  D¨6¡MÑ2Ô2ˆD؈JˆJˆJÝ”7—<’<  D¨6¡MÑ2Ô2ˆD؈JˆJˆJøð ð r(Úpathscóà‡‡—tjjŠt¦«}t |t ¬¦«D]5Št ˆˆfd„|D¦«¦«}|s| ‰¦«Œ6|S)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.©Úkeyc3óæ•K—|]k}‰ | d¦«¦«o>‰t| d¦« ‰¦«¦«‰kV—ŒldS)Ú*N)Ú startswithÚrstripÚlen)Ú.0Ú shortpathr#Úseps €€r&ú zcompact..asŠøèè€ð ð ðð �OŠO˜I×,Ò,¨SÑ1Ô1Ñ 2Ô 2ð DØ•S˜×)Ò)¨#Ñ.Ô.×5Ò5°cÑ:Ô:Ñ;Ô;Ô<ÀÒCð ð ð ð ð ð r()r"r#rSr/ÚsortedrPÚanyr0)rHÚ short_pathsÚ should_skipr#rSs @@r&ÚcompactrYXs“øø€õ Œ'Œ+€CÝ™EœE€KÝ�u¥#Ð&Ñ&Ô&ð"ð"ˆÝð ð ð ð ð ð)ð ñ ô ñ ô ˆ ð ð "Ø �OŠO˜DÑ !Ô !Ð !øØ Ðr(cóà‡ ‡ ‡ —d„|D¦«}t|¦«}td„| ¦«D¦«t¬¦«}t¦«}dtdtfd„Š |D]׊ t ˆ fd„|D¦«¦«rŒt¦«}t¦«}t j‰ ¦«D]L\Š }}| ˆ ˆ ˆ fd„|D¦«¦«| ˆ ˆ ˆ fd „|D¦«¦«ŒM||z s7|  |¦«|  ‰ t j z¦«ŒØtt|j |¦«¦«|zS) 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. cóN—i|]"}tj |¦«|“Œ#S©)r"r#Únormcase©rQÚps r&ú z'compress_for_rename..qs*€Ð6Ð6Ð6¨1•”× Ò  Ñ#Ô# QÐ6Ð6Ð6r(cóX—h|]'}tj |¦«d’Œ(S)r)r"r#rBr^s r&ú z&compress_for_rename..ss+€ÐGÐGÐG°�œŸ š  aÑ(Ô(¨Ô+ÐGÐGÐGr(rJÚar cób—tj tjj|ަ«Sr.)r"r#r]r$)rcs r&Ú norm_joinz&compress_for_rename..norm_joinvs!€ÝŒw×Ò¥¤¤ ¨aÐ 0Ñ1Ô1Ð1r(c3ó|•K—|]6}tj ‰¦« |¦«V—Œ7dSr.)r"r#r]rN)rQÚwÚroots €r&rTz&compress_for_rename..zsAøèè€ÐGÐG¸�rŒw×Ò Ñ%Ô%×0Ò0°Ñ3Ô3ÐGÐGÐGÐGÐGÐGr(c3ó2•K—|]}‰‰‰|¦«V—ŒdSr.r\)rQÚdÚdirnamererhs €€€r&rTz&compress_for_rename..�s1øèè€ÐLÐL¸q˜y˜y¨¨w¸Ñ:Ô:ÐLÐLÐLÐLÐLÐLr(c3ó2•K—|]}‰‰‰|¦«V—ŒdSr.r\)rQÚfrkrerhs €€€r&rTz&compress_for_rename..‚s1øèè€ÐHÐH¸Q˜Y˜Y t¨W°aÑ8Ô8ÐHÐHÐHÐHÐHÐHr()r/rUÚvaluesrPÚstrrVr"ÚwalkÚupdateÚdifference_updater0rSÚmapÚ __getitem__) rHÚcase_mapÚ remainingÚ uncheckedÚ wildcardsÚ all_filesÚ all_subdirsÚsubdirsÚfilesrkrerhs @@@r&Úcompress_for_renamer}ks£øøø€ð 7Ð6°Ð6Ñ6Ô6€HÝ�H‘ ” €IÝÐGÐG°X·_²_Ñ5FÔ5FÐGÑGÔGÍSÐQÑQÔQ€IÝ™%œ%€Ið2•cð2�cð2ð2ð2ð2ðð)ð)ˆÝ ÐGÐGÐGÐG¸YÐGÑGÔGÑ GÔ Gð à å!™eœeˆ Ý #¡¤ˆ Ý')¤w¨t¡}¤}ð Ið IÑ #ˆG�W˜eØ × Ò ÐLÐLÐLÐLÐLÐLÀGÐLÑLÔLÑ LÔ LÐ LØ × Ò ÐHÐHÐHÐHÐHÐHÀ%ÐHÑHÔHÑ HÔ HÐ HÐ Hð˜IÑ%ð )Ø × 'Ò '¨ Ñ 2Ô 2Ð 2Ø �MŠM˜$¥¤™-Ñ (Ô (Ð (øå �s�8Ô'¨Ñ3Ô3Ñ 4Ô 4°yÑ @Ð@r(cóf—t|¦«}t¦«}t¦«}t¦«}|D]x}| d¦«rŒ| d¦«sd|vr2| tj |¦«¦«| |¦«Œytt tjj|¦«¦«}t|¦«}|D]­}tj |¦«D]–\}} } | D]�} |  d¦«rŒtj  || ¦«} tj  | ¦«r6tj | ¦«|vr| | ¦«ŒŽŒ—Œ®|d„|D¦«z}||fS)asReturns 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. r=z __init__.pyz .dist-infocóN—h|]"}tj |d¦«’Œ#S)rM)r"r#r$)rQÚfolders r&rbz.compress_for_output_listing..¹s(€ÐKÐKÐK¸�2œ7Ÿ<š<¨°Ñ4Ô4ÐKÐKÐKr() r/rAr0r"r#rkrsr]rYrpr$Úisfile) rHÚ will_removeÚ will_skipÚfoldersr|r#Ú_normcased_filesr€ÚdirpathÚ_ÚdirfilesÚfnameÚfile_s r&Úcompress_for_output_listingr‹�s¬€õ�e‘*”*€KÝ‘”€Iõ‰eŒe€GÝ ‰EŒE€EØððˆØ �=Š=˜Ñ Ô ð Ø Ø �=Š=˜Ñ 'Ô 'ð /¨<¸4Ð+?Ð+?Ø �KŠK�œŸš¨Ñ-Ô-Ñ .Ô .Ð .Ø � Š �$‰Œˆˆå�3�rœwÔ/°Ñ7Ô7Ñ8Ô8Ðå�gÑÔ€Gðð )ð )ˆÝ$&¤G¨F¡O¤Oð )ð )Ñ ˆG�Q˜Ø!ð )ð )�Ø—>’> &Ñ)Ô)ðØåœŸ š  W¨eÑ4Ô4�å”G—N’N 5Ñ)Ô)ð)åœ×(Ò(¨Ñ/Ô/Ð7GÐGÐGð—M’M %Ñ(Ô(Ð(øð )ð )ðÐKÐKÀ7ÐKÑKÔKÑK€Kà ˜ Ð !Ð!r(cóv—eZdZdZd d„Zdedefd„Zdedefd„Zdedefd„Zd d „Z d d „Z e de fd „¦«Z dS) ÚStashedUninstallPathSetzWA set of file rename operations to stash files while tentatively uninstalling them.r Ncó"—i|_g|_dSr.)Ú _save_dirsÚ_moves©Úselfs r&Ú__init__z StashedUninstallPathSet.__init__Âs€ð57ˆŒð.0ˆŒ ˆ ˆ r(r#cóÀ— t|¦«}n #t$rtd¬¦«}YnwxYw||jtj |¦«<|jS)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ÚOSErrorrr�r"r#r])r’r#Úsave_dirs r&Ú_get_directory_stashz,StashedUninstallPathSet._get_directory_stashÊsi€ð  7Ý&;¸DÑ&AÔ&AˆHˆHøÝð 7ð 7ð 7Ý$¨+Ð6Ñ6Ô6ˆHˆHˆHð 7øøøà2:ˆŒ�œ×(Ò(¨Ñ.Ô.Ñ/àŒ}Ðs ‚’/®/cóV—tj |¦«}tj |¦«d}}d}||krF |j|}np#t $rYnwxYwtj |¦«|}}||k°Ftj |¦«}t d¬¦«}||j|<tj ||¦«}|r:|tjjkr%tj  |j|¦«S|jS)z‚Stashes 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#r]rkr�ÚKeyErrorrÚrelpathÚcurdirr$)r’r#ÚheadÚold_headr™r�s r&Ú_get_file_stashz'StashedUninstallPathSet._get_file_stashØs€õ Œw×Ò Ñ%Ô%ˆÝœŸš¨Ñ.Ô.°ˆhˆØˆà�hÒÐð Øœ?¨4Ô0�ØøÝð ð ð Ø�ð øøøåœWŸ_š_¨TÑ2Ô2°D�(ˆDð �hÒÐõ”7—?’? 4Ñ(Ô(ˆDÝ$¨+Ð6Ñ6Ô6ˆHØ$,ˆDŒO˜DÑ !å”'—/’/ $¨Ñ-Ô-ˆØ ð 8�w¥"¤'¤.Ò0Ð0Ý”7—<’< ¤ ¨wÑ7Ô7Ð 7ØŒ}ÐsÁ AÁ A%Á$A%có —tj |¦«otj |¦« }|r| |¦«}n| |¦«}|j ||f¦«|r3tj |¦«rtj|¦«t||¦«|S)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&ÚstashzStashedUninstallPathSet.stashós¼€õ”g—m’m DÑ)Ô)ÐFµ"´'·.².ÀÑ2FÔ2FÐ.Fˆ Ø ð 2Ø×0Ò0°Ñ6Ô6ˆHˆHà×+Ò+¨DÑ1Ô1ˆHà Œ ×Ò˜D (Ð+Ñ,Ô,Ð,Ø ð �2œ7Ÿ=š=¨Ñ2Ô2ð õ ŒH�XÑ Ô Ð Ý��hÑÔÐØˆr(có‚—|j ¦«D]}| ¦«Œg|_i|_dS)z0Commits the uninstall by removing stashed files.N)r�rnÚcleanupr�)r’r™s r&ÚcommitzStashedUninstallPathSet.commitsF€àœ×.Ò.Ñ0Ô0ð ð ˆHØ × Ò Ñ Ô Ð Ð ØˆŒ ؈Œˆˆr(cóx—|jD]}tjdg|¢RŽŒ|jD�]\}} t d||¦«tj |¦«stj |¦«rt j|¦«n.tj  |¦«rt|¦«t||¦«Œµ#t$r@}t  d|¦«t d|¦«Yd}~Œúd}~wwxYw| ¦«dS)z2Undoes the uninstall by moving stashed files back.zMoving to %s from %szReplacing %s from %szFailed to restore %sz Exception: %sN)r�ÚloggerÚinfoÚdebugr"r#r�r¤Úunlinkr£rrr˜Úerrorr¬)r’r_r¨r#Úexs r&Úrollbackz StashedUninstallPathSet.rollbacks?€à”ð 6ð 6ˆAÝ ŒKÐ0Ð 5°1Ð 5Ð 5Ð 5Ð 5Ð 5à"œkð 2ñ 2‰NˆH�dð 2Ý— ’ Ð3°X¸tÑDÔDÐDÝ”7—>’> (Ñ+Ô+ð%­r¬w¯~ª~¸hÑ/GÔ/Gð%Ý”I˜hÑ'Ô'Ð'Ð'Ý”W—]’] 8Ñ,Ô,ð%ݘ8Ñ$Ô$Ð$ݘ˜hÑ'Ô'Ð'Ð'øÝð 2ð 2ð 2Ý— ’ Ð3°XÑ>Ô>Ð>Ý— ’ ˜_¨bÑ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1øøøøð 2øøøð � Š ‰ Œ ˆ ˆ ˆ s«B-Cà D#Ã#6DÄD#có*—t|j¦«Sr.)Úboolr�r‘s r&Ú can_rollbackz$StashedUninstallPathSet.can_rollback"s€å�D”KÑ Ô Ð r(©r N)Ú__name__Ú __module__Ú __qualname__Ú__doc__r“roršr¡r©r¬r´Úpropertyr¶r·r\r(r&r�r�¾s瀀€€€ð&ð&ð0ð0ð0ð0ð ¨ð °ð ð ð ð ð Cð¨Cððððð6˜#ð #ððððð*ðððððððð&ð!˜dð!ð!ð!ñ„Xð!ð!ð!r(r�có¬—eZdZdZdeddfd„Zdedefd„Zdeddfd„Z d ed eddfd „Z dd ededdfd„Z dedefd„Z dd„Z dd„Zededdfd„¦«ZdS)ÚUninstallPathSetzMA set of file paths to be removed in the uninstallation of a requirement.r7r NcóЗt¦«|_t¦«|_i|_||_t ¦«|_tjt¦«|_ dSr.) r/Ú_pathsÚ_refuseÚ_pthÚ_distr�Ú _moved_pathsr4Ú lru_cacherÚ_normalize_path_cached)r’r7s r&r“zUninstallPathSet.__init__+sO€Ý #¡¤ˆŒ Ý!$¡¤ˆŒ Ø46ˆŒ ؈Œ Ý3Ñ5Ô5ˆÔõ'0Ô&9½.Ñ&IÔ&IˆÔ#Ð#Ð#r(r#có†—t¦«sdS| | tj¦«¦«S)zs Return True if the given path is one we are permitted to remove/modify, False otherwise. T)rrNrÇÚsysÚprefix)r’r#s r&Ú _permittedzUninstallPathSet._permitted6s9€õ(Ñ)Ô)ð Ø�4Ø�Š˜t×:Ò:½3¼:ÑFÔFÑGÔGÐGr(cóZ—tj |¦«\}}tj | |¦«tj |¦«¦«}tj |¦«sdS| |¦«r|j  |¦«n|j   |¦«tj  |¦«ddkr$|  t|¦«¦«dSdS)Nér;) r"r#rBr$rÇr]ÚexistsrËrÁr0rÂÚsplitextr)r’r#rŸÚtails r&r0zUninstallPathSet.addAsö€Ý”W—]’] 4Ñ(Ô(‰ ˆˆdõŒw�|Š|˜D×7Ò7¸Ñ=Ô=½r¼w×?OÒ?OÐPTÑ?UÔ?UÑVÔVˆåŒw�~Š~˜dÑ#Ô#ð Ø ˆFØ �?Š?˜4Ñ Ô ð #Ø ŒK�OŠO˜DÑ !Ô !Ð !Ð !à ŒL× Ò ˜TÑ "Ô "Ð "õ Œ7× Ò ˜DÑ !Ô ! !Ô $¨Ò -Ð -Ø �HŠHÕ& tÑ,Ô,Ñ -Ô -Ð -Ð -Ð -ð .Ð -r(Úpth_filerDcó—| |¦«}| |¦«rB||jvrt|¦«|j|<|j| |¦«dS|j |¦«dSr.)rÇrËrÃÚUninstallPthEntriesr0rÂ)r’rÑrDs r&Úadd_pthzUninstallPathSet.add_pthTs‡€Ø×.Ò.¨xÑ8Ô8ˆØ �?Š?˜8Ñ $Ô $ð 'ؘtœyÐ(Ð(Ý&9¸(Ñ&CÔ&C�” ˜(Ñ#Ø ŒI�hÔ × #Ò # EÑ *Ô *Ð *Ð *Ð *à ŒL× Ò ˜XÑ &Ô &Ð &Ð &Ð &r(FÚ auto_confirmÚverbosecó´—|js't d|jj¦«dS|jj›d|jj›�}t d|¦«t ¦«5|s| |¦«rµ|j}t|j¦«}tt|¦«¦«D]2}|  |¦«t  d|¦«Œ3|j ¦«D]}| ¦«Œt d|¦«ddd¦«dS#1swxYwYdS)z\Remove paths in ``self._paths`` with confirmation (unless ``auto_confirm`` is True).z7Can't uninstall '%s'. No files were found to uninstall.Nú-zUninstalling %s:zRemoving file or directory %szSuccessfully uninstalled %s)rÁr®r¯rÄÚraw_nameÚ raw_versionrÚ_allowed_to_proceedrÅr}rUrYr©rÖrÃrnÚremove)r’rÕrÖÚdist_name_versionÚmovedÚ for_renamer#Úpths r&rÜzUninstallPathSet.remove]s¯€ðŒ{ð Ý �KŠKØIØ” Ô#ñ ô ð ð ˆFà#œzÔ2ÐMÐM°T´ZÔ5KÐMÐMÐÝ� Š Ð&Ð(9Ñ:Ô:Ð:å ‰\Œ\ð Nð NØð N˜t×7Ò7¸Ñ@Ô@ð NØÔ)�å0°´Ñ=Ô=� å"¥7¨:Ñ#6Ô#6Ñ7Ô7ðJðJ�DØ—K’K Ñ%Ô%Ð%Ý—N’NÐ#BÀDÑIÔIÐIÐIàœ9×+Ò+Ñ-Ô-ð!ð!�CØ—J’J‘L”L�L�Lå— ’ Ð9Ð;LÑMÔMÐMð Nð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nð Nð NsÁ3C E Å EÅEcór—dtdttddfd„}|st|j¦«\}}n"t |j¦«}t ¦«}|d|¦«|d|¦«|d|j¦«|r|d t |j¦«¦«td d ¦«d kS) z@Display which files would be deleted and prompt for confirmationÚmsgrHr Ncó—|sdSt |¦«t¦«5tt |¦«¦«D]}t |¦«Œ ddd¦«dS#1swxYwYdSr.)r®r¯rrUrY)rârHr#s r&Ú_displayz6UninstallPathSet._allowed_to_proceed.._display}sÆ€Øð Ø�å �KŠK˜Ñ Ô Ð Ý‘”ð &ð &Ý"¥7¨5¡>¤>Ñ2Ô2ð&ð&�DÝ—K’K Ñ%Ô%Ð%Ð%ð&ð &ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s­:A5Á5A9Á<A9z Would remove:z+Would not remove (might be manually added):z%Would not remove (outside of prefix):zWill actually move:zProceed (Y/n)? )ÚyÚnÚræ)rorr‹rÁr/rÂr}r)r’rÖrär‚rƒs r&rÛz$UninstallPathSet._allowed_to_proceedzsà€ð &�#ð &¥h­s¤mð &¸ð &ð &ð &ð &ðð Ý%@ÀÄÑ%MÔ%MÑ "ˆK˜˜õ˜dœkÑ*Ô*ˆKÝ™œˆIàˆ� +Ñ.Ô.Ð.؈Ð>À ÑJÔJÐJ؈Ð8¸$¼,ÑGÔGÐGØ ð NØ ˆHÐ*Õ,?ÀÄ Ñ,LÔ,LÑ MÔ MÐ MåÐ$ nÑ5Ô5¸Ò<Ð.¼s.€ð( ð( ð( àØð( Ø ð( ð( ð( r(ÚstdlibÚ platstdlibzz.UninstallPathSet.from_dist..ês8ø€ð&ð&ð&àØð&ð jÐ0Ð0ðà0Ð0Ð0r(r;r=r>r9rÍzeasy-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.batr7rr c3óÖK—| ¦«D]Q}|jdkrt||jd¦«Ed{V—†Œ*|jdkrt||jd¦«Ed{V—†ŒRdS)NÚconsole_scriptsFÚ gui_scriptsT)Úiter_entry_pointsÚgroupr'Úname)r7rÚ entry_points r&Úiter_scripts_to_removez:UninstallPathSet.from_dist..iter_scripts_to_remove2s èè€ð $×5Ò5Ñ7Ô7ð Nð N� ØÔ$Ð(9Ò9Ð9Ý,¨W°kÔ6FÈÑNÔNÐNÐNÐNÐNÐNÐNÐNÐNØ Ô&¨-Ò7Ð7Ý,¨W°kÔ6FÈÑMÔMÐMÐMÐMÐMÐMÐMÐMøð  Nð Nr()2r?Ú info_locationr®r¯Úcanonical_namerÚlocalrÉrÊÚ sysconfigÚget_pathrrÙÚ"installed_with_setuptools_egg_infor"r#rÎrAÚsetuptools_filenamer0r@r$Úis_fileÚ read_textÚ splitlinesÚFileNotFoundErrorÚinstalled_by_distutilsr Úinstalled_as_eggrBrkrÔÚinstalled_with_dist_inforGÚopenr]ÚreadlineÚstriprÇÚsamefiler°Ú in_usersiterrÚiter_distutils_script_namesrÚNotADirectoryErrorrror)Úclsr7Ú dist_locationrûÚnormalized_dist_locationÚpaths_to_removeÚdevelop_egg_linkÚsetuptools_flat_installationÚinstalled_filesÚinstalled_fileÚnamespace_packagesÚ top_level_pkgr#Úeasy_install_eggÚeasy_install_pthÚfhÚ link_pointerÚnormalized_link_pointerrÚscriptrúÚsrðs @r&Ú from_distzUninstallPathSet.from_dist§sø€àœ ˆ ØÔ*ˆ Ø Ð Ý �KŠKØ?ØÔ#ñ ô ð ð�3�t‘9”9Ð å#1°-Ñ#@Ô#@Ð ØŒzð Ý �KŠKØCØÔ#Ø(Ý” ñ  ô ð ð �3�t‘9”9Ð à #ð( ð( åÔ(¨Ñ2Ô2µIÔ4FÀ|Ñ4TÔ4TÐUð( ñ( ô( ð ð õ �KŠKØNØÔ#Ø(ñ ô ð ð �3�t‘9”9Ð à˜#˜d™)œ)ˆÝ6°t´}ÑEÔEÐð Ô 3ð SØ TÐ)ð Så”—’˜}Ñ-Ô-ð Sð "×*Ò*¨dÔ.FÐ+QÐ+QÐ+QÑRÔRÐRð %ð (ñH ØÐ(Ø×#Ò# MÑ2Ô2Ð2Ø"×8Ò8Ñ:Ô:ˆOØÐ*Ø&5ðUðU�NØ#×'Ò'­¬¯ ª °]ÀNÑ(SÔ(SÑTÔTÐTÐTñUð —’˜oÑ.Ô.ð 7ðOØ)-¯ªÐ8PÑ)QÔ)QÐ&ð"4×!>Ò!>ÈÐ!>Ñ!NÔ!N�J�Jøõ)ð$ð$ð$Ø!#�J�J�Jð$øøøð&ð&ð&ð&à!Ÿ^š^¨OÑ<Ô<×GÒGÑIÔIð&ñ&ô&ð 7ð 7�Mõ œ7Ÿ<š<¨ °}ÑEÔE�DØ#×'Ò'¨Ñ-Ô-Ð-Ø#×'Ò'¨4¨ ¨ ¨ Ñ5Ô5Ð5Ø#×'Ò'¨4¨ ¨ ¨ Ñ6Ô6Ð6Ø#×'Ò'¨4¨ ¨ ¨ Ñ6Ô6Ð6Ð6ùà Ô (ð, Ý(°dÐ;Ñ;Ô;Ð ;à Ô "ð) ð × Ò   Ñ .Ô .Ð .Ý!œwŸ}š}¨]Ñ;Ô;¸AÔ>Ð Ý!œwŸ|š|Ý”—’  Ñ.Ô.Ø"ñ ô Ð ð × #Ò #Ð$4°dÐ=MÑ6MÑ NÔ NÐ NÑ Nà Ô *ð Ý,¨TÑ2Ô2ð *ð *�Ø×#Ò# DÑ)Ô)Ð)Ð)ñ *ðñ õÐ&Ñ'Ô'ð ¨2Ý!œw×/Ò/°· ² ± ´ ×0CÒ0CÑ0EÔ0EÑFÔF� Ø*9×*PÒ*PØ ñ+ô+Ð'ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ”7×#Ò#Ø'Ð)Añôð ð ðNÐ,ðNðN°<ðNðNØ)-¬ðNðNØ=JðNðNðNñ ô ðð × Ò Ð 0Ñ 1Ô 1Ð 1Ý!œwŸ|š|Ý”—’Ð 0Ñ1Ô1Ð3Eñ ô Ð ð × #Ò #Ð$4°mÑ DÔ DÐ DÐ Dõ �LŠLØ;ØØñ ô ð ð Ô ð 'Ý"‘n”nˆGˆGå$Ñ&Ô&ˆGð Ø×:Ò:Ñ<Ô<ð Pð P�Ø×#Ò#¥B¤G§L¢L°¸&Ñ$AÔ$AÑBÔBÐBÝðPØ#×'Ò'­¬¯ ª °WÀ¸o¸o¸oÑ(NÔ(NÑOÔOÐOøð Pøõ"Õ#5Ð6ð ð ð Ø ˆDð øøøð NÝ"ð Nåð Nõ•s˜D $�Ô 'ð Nð Nð Nð Nð(Ð'¨¨gÑ6Ô6ð #ð #ˆAØ × Ò  Ñ "Ô "Ð "Ð "àÐs8ÇG=Ç= H È H Î6APÐPÐ"PÔ BVÖV(Ö'V()FFr¸)r¹rºr»r¼rr“ror¶rËr0rÔrÜrÛr´r¬Ú classmethodr!r\r(r&r¿r¿'sr€€€€€ððð JÐ-ð J°$ð Jð Jð Jð Jð H˜sð H tð Hð Hð Hð Hð.˜ð. ð.ð.ð.ð.ð&' ð'¨Cð'°Dð'ð'ð'ð'ðNðN 4ðN¸$ðNÈ4ðNðNðNðNð:=¨4ð=°Dð=ð=ð=ð=ð8 ð ð ð ð#ð#ð#ð#ððWÐ-ðWÐ2DðWðWðWñ„[ðWðWðWr(r¿cóB—eZdZdeddfd„Zdeddfd„Zd d„Zdefd„ZdS) rÓrÑr NcóH—||_t¦«|_d|_dSr.)Úfiler/rCÚ _saved_lines)r’rÑs r&r“zUninstallPthEntries.__init__Cs"€ØˆŒ Ý!$¡¤ˆŒ Ø37ˆÔÐÐr(rDcóü—tj |¦«}tr;tj |¦«ds| dd¦«}|j |¦«dS)Nrú\ú/)r"r#r]rÚ splitdriveÚreplacerCr0)r’rDs r&r0zUninstallPthEntries.addHsl€Ý”× Ò  Ñ'Ô'ˆõ ð -�2œ7×-Ò-¨eÑ4Ô4°QÔ7ð -Ø—M’M $¨Ñ,Ô,ˆEØ Œ ×Ò˜ÑÔÐÐÐr(cóˆ—t d|j¦«tj |j¦«s"t d|j¦«dSt|jd¦«5}| ¦«}||_ ddd¦«n #1swxYwYtd„|D¦«¦«rd}nd}|rO|d  |  d¦«¦«s!|d|  d¦«z|d<|j D]Y} t d |¦«| ||z  d¦«¦«ŒJ#t$rYŒVwxYwt|jd ¦«5}| |¦«ddd¦«dS#1swxYwYdS) NzRemoving pth entries from %s:z.Cannot remove entries from nonexistent file %sÚrbc3óK—|]}d|vV—Œ dS)s Nr\)rQÚlines r&rTz-UninstallPthEntries.remove..bs&èè€Ð1Ð1 4ˆw˜$ˆÐ1Ð1Ð1Ð1Ð1Ð1r(z ú éÿÿÿÿzutf-8zRemoving entry: %sÚwb)r®rÖr%r"r#r�Úwarningr Ú readlinesr&rVrAÚencoderCrÜÚ ValueErrorÚ writelines)r’rÚlinesÚendlinerDs r&rÜzUninstallPthEntries.removeWs7€Ý�ŠÐ6¸¼ ÑBÔBÐBõŒw�~Š~˜dœiÑ(Ô(ð Ý �NŠNÐKÈTÌYÑ WÔ WÐ WØ ˆFÝ �$”)˜TÑ "Ô "ð & bà—L’L‘N”NˆEØ %ˆDÔ ð &ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &õ Ð1Ð1¨5Ð1Ñ1Ô1Ñ 1Ô 1ð ØˆGˆGàˆGà ð <˜˜rœ×+Ò+¨G¯NªN¸7Ñ,CÔ,CÑDÔDð <ؘbœ  G§N¢N°7Ñ$;Ô$;Ñ;ˆE�"‰IØ”\ð ð ˆEð Ý—’Ð3°UÑ;Ô;Ð;Ø— ’ ˜e g™o×5Ò5°gÑ>Ô>Ñ?Ô?Ð?Ð?øÝð ð ð Ø�ð øøøå �$”)˜TÑ "Ô "ð ! bØ �MŠM˜%Ñ Ô Ð ð !ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s7Á<B$Â$B(Â+B(Ä(AE/Å/ E<Å;E<ÆF7Æ7F;Æ>F;có&—|j€"t d|j¦«dSt d|j¦«t |jd¦«5}| |j¦«ddd¦«n #1swxYwYdS)Nz.Cannot roll back changes to %s, none were madeFz!Rolling %s back to previous stater2T)r&r®r²r%r°r r7)r’rs r&r´zUninstallPthEntries.rollbackrs¼€Ø Ô Ð $Ý �LŠLÐIÈ4Ì9Ñ UÔ UÐ UØ�5Ý� Š Ð8¸$¼)ÑDÔDÐDÝ �$”)˜TÑ "Ô "ð - bØ �MŠM˜$Ô+Ñ ,Ô ,Ð ,ð -ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -àˆtsÁBÂB  B r¸) r¹rºr»ror“r0rÜr¶r´r\r(r&rÓrÓBs‡€€€€€ð8 ð8¨ð8ð8ð8ð8ð  ˜ð   ð  ð  ð  ð  ð!ð!ð!ð!ð6˜$ððððððr(rÓ)6r4r"rÉrþÚimportlib.utilrÚtypingrrrrrr r r r Úpip._internal.exceptionsr rÚpip._internal.locationsrrÚpip._internal.metadatarÚpip._internal.utils.compatrÚpip._internal.utils.egg_linkrÚpip._internal.utils.loggingrrÚpip._internal.utils.miscrrrrÚpip._internal.utils.temp_dirrrÚpip._internal.utils.virtualenvrr¹r®ror¶r'r6rGrYr}r‹r�r¿rÓr\r(r&úrFsNðØÐÐÐØ € € € Ø € € € ØÐÐÐØ,Ð,Ð,Ð,Ð,Ð,ØWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWàSÐSÐSÐSÐSÐSÐSÐSØ@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ø3Ð3Ð3Ð3Ð3Ð3Ø.Ð.Ð.Ð.Ð.Ð.ØDÐDÐDÐDÐDÐDØ=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ØIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIØMÐMÐMÐMÐMÐMÐMÐMØCÐCÐCÐCÐCÐCà ˆ�8Ñ Ô €ð&Ø ð&Ø"ð&Ø,0ð&àˆs�D˜$ˆÔð&ð&ð&ð&ð& Ø��i  T¨4 Ô0Ð0Ô1ð à ˆc�9˜S $¨˜_Ô-Ð-Ô.ð ð ð ð ð ðÐ/ð°I¸cÀ4ȸoÔ4Nðððñ „ððB�8˜C”=ð S¨¤Xððððð&A˜x¨œ}ðA°°S´ðAðAðAðAðD." x°¤}ð."¸¸sÀ3¼xÈÈSÌÐ?QÔ9Rð."ð."ð."ð."ðbf!ðf!ðf!ðf!ðf!ñf!ôf!ðf!ðRXðXðXðXðXñXôXðXðv7ð7ð7ð7ð7ñ7ô7ð7ð7ð7r(