Ë
    Kêj°ˆ  ã                  ó4  — d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z
ddlZddlZddlZddlZddlZddlmZ ddlmZmZmZmZmZ ddlmZ ddlmZmZmZ ddlmZ dd	l m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& dd
l'm(Z(m)Z) ddl*m+Z+ ddl,m-Z-m.Z. ddl/m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8m9Z9 ddl:m;Z;m<Z< ddl=m>Z>m?Z? ddl@mAZAmBZB ddlCmDZDmEZEmFZFmGZG ddlHmIZImJZJmKZKmLZL ddlMmNZN  G d„ de%«      ZO ej                   eQ«      ZR e$deS«      ZTeUeTeSeVeSz  f   ZWd9d:d„ZXd;d„ZYd<d„ZZd=d„Z[d>d„Z\d?d„Z]	 	 	 	 d@d „Z^dAd!„Z_dBd"„Z`	 	 	 	 	 	 	 	 	 	 	 	 dCd#„ZadDd$„Zb G d%„ d&«      Zc G d'„ d(«      Zd G d)„ d*e3«      ZedEd+„Zf G d,„ d-e+«      Zg G d.„ d/«      ZhejÒ                  	 	 	 	 	 	 	 	 dFd0„«       ZjdGd1„ZkejÒ                  d2d3œ	 	 	 	 	 	 	 	 	 dHd4„«       Zld<d5„Zm	 	 	 	 	 dI	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dJd6„ZnejÒ                  dKd7„«       Zo	 	 	 	 	 dId2d3œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dLd8„Zpy)MzFSupport for installing and building the "wheel" binary package format.é    )ÚannotationsN)Úurlsafe_b64encode)ÚCallableÚ	GeneratorÚIterableÚIteratorÚSequence)ÚMessage)ÚchainÚfilterfalseÚstarmap)ÚPath)ÚIOÚAnyÚBinaryIOÚNewTypeÚProtocolÚcast)ÚZipFileÚZipInfo)ÚScriptMaker)ÚFileOperatorÚget_export_entry)Úcanonicalize_name)ÚBlockedImportErrorÚInstallationError)Úget_major_minor_version)ÚBaseDistributionÚFilesystemWheelÚget_wheel_distribution)ÚDIRECT_URL_METADATA_NAMEÚ	DirectUrl)ÚSCHEME_KEYSÚScheme)Úadjacent_tmp_fileÚreplace)ÚStreamWrapperÚ
ensure_dirÚ	hash_fileÚ	partition)Úcurrent_umaskÚis_within_directoryÚ2set_extracted_file_to_default_mode_plus_executableÚzip_item_is_executable)Úparse_wheelc                  óF   — e Zd ZU ded<   ded<   ded<   ed
d„«       Zdd„Zy	)ÚFileÚ
RecordPathÚsrc_record_pathÚstrÚ	dest_pathÚboolÚchangedc                 ó   — y ©N© ©Úselfs    úk/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.pyÚwrittenzFile.written=   s   € àó    c                 ó   — y r9   r:   r;   s    r=   Úsavez	File.saveA   s   € Ør?   N©Úreturnr6   ©rC   ÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__Úpropertyr>   rA   r:   r?   r=   r1   r1   8   s)   … ØÓØƒNØƒMàòó ðôr?   r1   r2   c                ó®   — t        | |«      \  }}dt        |j                  «       «      j                  d«      j	                  d«      z   }|t        |«      fS )z?Return (encoded_digest, length) for path using hashlib.sha256()zsha256=Úlatin1ú=)r)   r   ÚdigestÚdecodeÚrstripr4   )ÚpathÚ	blocksizeÚhÚlengthrN   s        r=   ÚrehashrU   K   sM   € ä˜$ 	Ó*�I€A€vØÔ*¨1¯8©8«:Ó6×=Ñ=¸hÓG×NÑNÈsÓSÑS€FØ”C˜“KÐ Ð r?   c                ó   — | dddœS )zPReturn keyword arguments to properly open a CSV file
    in the given mode.
    Ú úutf-8)ÚmodeÚnewlineÚencodingr:   )rY   s    r=   Úcsv_io_kwargsr\   R   s   € ð  R°WÑ=Ð=r?   c                ó0  — t         j                  j                  | «      sJ ‚t        | d«      5 }|j	                  «       }|j                  d«      s
	 ddd«       yt        j                  j                  t        j                  «       «      }d|z   t         j                  j                  d«      z   }|j                  «       }ddd«       t        | d«      5 }|j                  «       |j                  «       ddd«       y# 1 sw Y   ŒAxY w# 1 sw Y   yxY w)	zQReplace #!python with #!/path/to/python
    Return True if file was changed.
    Úrbs   #!pythonNFs   #!ÚasciiÚwbT)ÚosrQ   ÚisfileÚopenÚreadlineÚ
startswithÚsysÚ
executableÚencodeÚgetfilesystemencodingÚlinesepÚreadÚwrite)rQ   ÚscriptÚ	firstlineÚexenameÚrests        r=   Ú
fix_scriptrq   Y   sé   € ô
 �7‰7�>‰>˜$ÔÐÐä	ˆd�DÓ	ð ˜VØ—O‘OÓ%ˆ	Ø×#Ñ# KÔ0Ø÷ð ô —.‘.×'Ñ'¬×(AÑ(AÓ(CÓDˆØ˜G‘O¤b§j¡j×&7Ñ&7¸Ó&@Ñ@ˆ	Ø�{‰{‹}ˆ÷ô 
ˆd�DÓ	ð ˜VØ�‰�YÔØ�‰�TÔ÷ð ÷ð ú÷ð ús   ®#D ÁA&D Ã#DÄ D	ÄDc                óH   — | j                  dd«      j                  «       dk(  S )NzRoot-Is-PurelibrW   Útrue)ÚgetÚlower)Úmetadatas    r=   Úwheel_root_is_purelibrw   m   s"   € Ø�<‰<Ð)¨2Ó.×4Ñ4Ó6¸&Ñ@Ð@r?   c                óà   — i }i }| j                  «       D ]T  }|j                  dk(  r|j                  ||j                  <   Œ,|j                  dk(  sŒ<|j                  ||j                  <   ŒV ||fS )NÚconsole_scriptsÚgui_scripts)Úiter_entry_pointsÚgroupÚvalueÚname)Údistry   rz   Úentry_points       r=   Úget_entrypointsr�   q   sz   € Ø€OØ€KØ×-Ñ-Ó/ò >ˆØ×ÑÐ 1Ò1Ø0;×0AÑ0AˆO˜K×,Ñ,Ò-Ø×Ñ -Ó/Ø,7×,=Ñ,=ˆK˜×(Ñ(Ò)ð	>ð
 ˜KÐ'Ð'r?   c                óò  — | syt        j                  t        «      }| D ]G  }t        |«      }|j                  j                  «       }|j                  }||   j                  |«       ŒI t        t        j                  «      j                  j                  «       }t        j                  j                  dd«      j                  t        j                  «      }|j                  «       D �� ci c]  \  }} ||k7  rt!        |«      |vr|| “Œ }}} |rM|D �	ch c]  }	t        |	«      j                  «       ’Œ }
}	|j                  «       D �� ci c]  \  }} ||
vr|| “Œ }}} |syg }|j                  «       D ]l  \  }}t#        |«      }t%        |«      dk(  r
d|d   › d�}n,dj'                  d	j)                  |dd
 «      dz   |d
   z   «      }|j+                  d|› d|› d�«       Œn d}t%        |«      dk(  r!|j+                  |j'                  d«      «       n |j+                  |j'                  d«      «       t-        d„ |D «       «      }|rd}|j+                  |«       dj)                  |«      S c c} }w c c}	w c c} }w )z�Determine if any scripts are not on PATH and format a warning.
    Returns a warning message if one or more scripts are not on PATH,
    otherwise None.
    NÚPATHrW   é   zscript r   z iszscripts {} areú, éÿÿÿÿz and zThe z installed in 'z' which is not on PATH.zeConsider adding {} to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.zthis directoryzthese directoriesc              3  ó2   K  — | ]  }|sŒ|d    dk(  –— Œ y­w)r   ú~Nr:   )Ú.0Úis     r=   ú	<genexpr>z4message_about_scripts_not_on_PATH.<locals>.<genexpr>¼   s   è ø€ Ò@¨ºa˜˜1™ �Ñ@ùs   ‚ŠziNOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.ú
)ÚcollectionsÚdefaultdictÚsetr   ÚparentÚresolver~   Úaddrf   rg   ra   Úenvironrt   ÚsplitÚpathsepÚitemsr4   ÚsortedÚlenÚformatÚjoinÚappendÚany)ÚscriptsÚgrouped_by_dirÚdestfiler5   Ú
parent_dirÚscript_nameÚexecutable_dirÚpath_entriesÚwarn_forrŠ   Únot_warn_dirsÚ	msg_linesÚdir_scriptsÚsorted_scriptsÚ
start_textÚlast_line_fmtÚwarn_for_tildeÚtilde_warning_msgs                     r=   Ú!message_about_scripts_not_on_PATHr­   |   s�  € ñ
 Øô ,7×+BÑ+BÄ3Ó+G€NØò 4ˆÜ˜“Nˆ	Ø×%Ñ%×-Ñ-Ó/ˆ
Ø—n‘nˆØ�zÑ"×&Ñ& {Õ3ð	4ô œ#Ÿ.™.Ó)×0Ñ0×8Ñ8Ó:€NÜ—:‘:—>‘> &¨"Ó-×3Ñ3´B·J±JÓ?€Lð
 $2×#7Ñ#7Ó#9÷&áˆJ˜Ø˜Ò'¬C°
«OÀ<Ñ,Oð 	�GÑð&€Hñ &ñ Ø4@ÖA¨qœ˜a›Ÿ™Õ*ÐAˆÐAð (0§~¡~Ó'7÷
á#�
˜GØ Ñ.ð ˜Ñð
ˆñ 
ñ
 Øð €IØ#+§>¡>Ó#3ò 
Ñˆ
�KÜ$*¨;Ó$7ˆÜˆ~Ó !Ò#Ø" >°!Ñ#4Ð"5°SÐ9‰Jà)×0Ñ0Ø—	‘	˜.¨¨"Ð-Ó.°Ñ8¸>È"Ñ;MÑMóˆJð 	×ÑØ�:�,˜o¨j¨\Ð9PÐQõ	
ð
ð	Cð ô ˆ9ƒ~˜ÒØ×Ñ˜×-Ñ-Ð.>Ó?Õ@à×Ñ˜×-Ñ-Ð.AÓBÔCô Ñ@¨lÔ@Ó@€NÙð=ð 	ð 	×ÑÐ*Ô+ð �9‰9�YÓÐùóg&ùò Bùó
s   Ã*I(Ä I.ÅI3c                ó&   — t        d„ | D «       «      S )aŸ  Normalize the given rows of a RECORD file.

    Items in each row are converted into str. Rows are then sorted to make
    the value more predictable for tests.

    Each row is a 3-tuple (path, hash, size) and corresponds to a record of
    a RECORD file (see PEP 376 and PEP 427 for details).  For the rows
    passed to this function, the size can be an integer as an int or string,
    or the empty string.
    c              3  ó@   K  — | ]  \  }}}||t        |«      f–— Œ y ­wr9   )r4   )r‰   Úrecord_pathÚhash_Úsizes       r=   r‹   z&_normalized_outrows.<locals>.<genexpr>Ý   s&   è ø€ ò Ù,D¨K¸Àˆ�eœS ›YÔ'ñùs   ‚)r—   )Úoutrowss    r=   Ú_normalized_outrowsr´   È   s   € ô* ñ ØHOôó ð r?   c                óB   — t         j                  j                  || «      S r9   )ra   rQ   rš   )r°   Úlib_dirs     r=   Ú_record_to_fs_pathr·   â   s   € Ü�7‰7�<‰<˜ Ó-Ð-r?   c                óp  — t         j                  j                  | «      d   j                  «       t         j                  j                  |«      d   j                  «       k(  r t         j                  j	                  | |«      } | j                  t         j                  j                  d«      } t        d| «      S )Nr   ú/r2   )ra   rQ   Ú
splitdriveru   Úrelpathr&   Úsepr   )rQ   r¶   s     r=   Ú_fs_to_record_pathr½   æ   s   € ô 
‡w�w×Ñ˜$Ó Ñ"×(Ñ(Ó*¬b¯g©g×.@Ñ.@ÀÓ.IÈ!Ñ.L×.RÑ.RÓ.TÒTÜ�w‰w�‰˜t WÓ-ˆà�<‰<œŸ™Ÿ™ SÓ)€DÜ�˜dÓ#Ð#r?   c                ó  — g }| D ]¢  }t        |«      dkD  rt        j                  d|«       t        d|d   «      }|j	                  ||«      }||v rt        t        ||«      «      \  }	}
n*t        |«      dkD  r|d   nd}	t        |«      dkD  r|d   nd}
|j                  ||	|
f«       Œ¤ |D ]0  }t        ||«      }t        |«      \  }	}
|j                  ||	|
f«       Œ2 ||j                  «       D �cg c]  }|ddf‘Œ	 c}z   S c c}w )z_
    :param installed: A map from archive RECORD path to installation RECORD
        path.
    é   z,RECORD line has more than three elements: %sr2   r   r„   rW   é   )
r˜   ÚloggerÚwarningr   ÚpoprU   r·   r›   r½   Úvalues)Úold_csv_rowsÚ	installedr7   Ú	generatedr¶   Úinstalled_rowsÚrowÚold_record_pathÚnew_record_pathrN   rT   ÚfrQ   Úinstalled_record_paths                 r=   Úget_csv_rows_for_installedrÎ   ð   s(  € ð -/€NØò 
AˆÜˆs‹8�aŠ<Ü�N‰NÐIÈ3ÔOÜ˜|¨S°©VÓ4ˆØ#Ÿ-™-¨¸ÓIˆØ˜gÑ%Ü#Ô$6°ÈÓ$PÓQ‰NˆF‘Fä" 3›x¨!š|�S˜’V°ˆFÜ" 3›x¨!š|�S˜’V°ˆFØ×Ñ˜°¸Ð?Õ@ð
Að ò 6ˆÜ! ! WÓ-ˆÜ ›‰ˆ�Ø×Ñ˜t V¨VÐ4Õ5ð6ð ØEN×EUÑEUÓEWöØ,AÐ	  BÒ'òñ ð ùò s   Ã2Dc                ó^  — | j                  «       } g }| j                  dd«      }|rÀdt        j                  vr|j	                  d|z   «       t        j                  j                  dd«      dk7  r(|j	                  dt        j                  d   › d|› �«       |j	                  dt        «       › d|› �«       | D �cg c]  }t        j                  d	|«      sŒ|‘Œ }}|D ]  }| |= Œ | j                  d
d«      }|rudt        j                  vr|j	                  d|z   «       |j	                  dt        «       › d|› �«       | D �cg c]  }t        j                  d|«      sŒ|‘Œ }}|D ]  }| |= Œ |j                  t        dj                  | j                  «       «      «       |S c c}w c c}w )zk
    Given the mapping from entrypoint name to callable, return the relevant
    console script specs.
    ÚpipNÚENSUREPIP_OPTIONSzpip = rW   Ú
altinstallr   z = zpip(\d+(\.\d+)?)?$Úeasy_installzeasy_install = zeasy_install-zeasy_install(-\d+\.\d+)?$ú{} = {})ÚcopyrÃ   ra   r“   r›   rt   rf   Úversion_infor   ÚreÚmatchÚextendr   r™   r–   )ÚconsoleÚscripts_to_generateÚ
pip_scriptÚkÚpip_epÚeasy_install_scriptÚeasy_install_eps          r=   Úget_console_script_specsrá     s°  € ð �l‰l‹n€GàÐðB —‘˜U DÓ)€JÙØ¤b§j¡jÑ0Ø×&Ñ& x°*Ñ'<Ô=ä�:‰:�>‰>Ð-¨rÓ2°lÒBØ×&Ñ&¨¬S×-=Ñ-=¸aÑ-@Ð,AÀÀZÀLÐ'QÔRà×"Ñ" SÔ)@Ó)BÐ(CÀ3ÀzÀlÐ#SÔTà$ÖK˜¬¯©Ð1FÈÕ(J’!ÐKˆÐKØò 	ˆAØ˜‘
ð	à!Ÿ+™+ n°dÓ;ÐÙØ¤b§j¡jÑ0Ø×&Ñ&Ð'8Ð;NÑ'NÔOà×"Ñ"ØÔ3Ó5Ð6°cÐ:MÐ9NÐOô	
ð
 ö
Ø¤"§(¡(Ð+GÈÕ"KŠAð
ˆð 
ð !ò 	ˆAØ˜‘
ð	ð ×Ñœw y×'7Ñ'7¸¿¹»ÓIÔJàÐùò+ Lùò
s   Â;F%ÃF%ÅF*Å F*c                  ó4   — e Zd Z	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zy)ÚZipBackedFilec                óJ   — || _         || _        || _        d| _        d| _        y ©NF)r3   r5   Ú	_zip_filer7   r>   )r<   r3   r5   Úzip_files       r=   Ú__init__zZipBackedFile.__init__\  s(   € ð  /ˆÔØ"ˆŒØ!ˆŒØˆŒØˆ�r?   c                óL   — | j                   j                  | j                  «      S r9   )ræ   Úgetinfor3   r;   s    r=   Ú_getinfozZipBackedFile._getinfoe  s   € Ø�~‰~×%Ñ% d×&:Ñ&:Ó;Ð;r?   c                ó2  — t         j                  j                  | j                  «      rt        j                  | j                  «       | j                  «       }t        | j                  d«      5 }d| _        |j                  dkD  rQ| j                  j                  |«      5 }t        |j                  d«      }t        j                  |||«       d d d «       d d d «       t        |«      rt        | j                  «       y y # 1 sw Y   Œ3xY w# 1 sw Y   Œ7xY w)Nr`   Tr   é   )ra   rQ   Úexistsr5   Úunlinkrë   rc   r>   Ú	file_sizeræ   ÚminÚshutilÚcopyfileobjr.   r-   )r<   ÚzipinfoÚdestrÌ   rR   s        r=   rA   zZipBackedFile.saveh  s×   € ô �7‰7�>‰>˜$Ÿ.™.Ô)Ü�I‰I�d—n‘nÔ%à—-‘-“/ˆô �$—.‘. $Ó'ð 	;¨4ØˆDŒLØ× Ñ  1Ò$Ø—^‘^×(Ñ(¨Ó1ð ;°QÜ # G×$5Ñ$5°{Ó C�IÜ×&Ñ& q¨$°	Ô:÷;÷	;ô " 'Ô*Ü>¸t¿~¹~ÕNð +÷	;ð ;ú÷	;ð 	;ús$   Á/2DÂ!.DÃDÄD
	ÄDÄDN)r3   r2   r5   r4   rç   r   rC   rE   )rC   r   rD   )rF   rG   rH   rè   rë   rA   r:   r?   r=   rã   rã   [  s2   „ ðØ)ðØ69ðØELðà	óó<ôOr?   rã   c                  ó.   — e Zd Zdd„Zedd„«       Zdd„Zy)Ú
ScriptFilec                óŒ   — || _         | j                   j                  | _        | j                   j                  | _        d| _        y rå   )Ú_filer3   r5   r7   )r<   Úfiles     r=   rè   zScriptFile.__init__„  s3   € ØˆŒ
Ø#Ÿz™z×9Ñ9ˆÔØŸ™×-Ñ-ˆŒØˆ�r?   c                ó.   — | j                   j                  S r9   )rù   r>   r;   s    r=   r>   zScriptFile.writtenŠ  s   € à�z‰z×!Ñ!Ð!r?   c                ól   — | j                   j                  «        t        | j                  «      | _        y r9   )rù   rA   rq   r5   r7   r;   s    r=   rA   zScriptFile.saveŽ  s    € Ø�
‰
�‰ÔÜ! $§.¡.Ó1ˆ�r?   N)rú   r1   rC   rE   rB   rD   )rF   rG   rH   rè   rJ   r>   rA   r:   r?   r=   r÷   r÷   ƒ  s    „ óð ò"ó ð"ô2r?   r÷   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚMissingCallableSuffixc                ó,   •— t         ‰| �  d|› d�«       y )NzInvalid script entry point: z… - A callable suffix is required. See https://packaging.python.org/specifications/entry-points/#use-for-scripts for more information.)Úsuperrè   )r<   r€   Ú	__class__s     €r=   rè   zMissingCallableSuffix.__init__”  s!   ø€ Ü‰ÑØ*¨;¨-ð 8ð õ	
r?   )r€   r4   rC   rE   )rF   rG   rH   rè   Ú__classcell__©r  s   @r=   rþ   rþ   “  s   ø„ ÷
ñ 
r?   rþ   c                ó†  — t        | «      }|€y |j                  €t        t        |«      «      ‚t        j
                  j                  ||j                  «      }t        j
                  j                  |«      t        j
                  j                  |«      k(  }|st        ||«      st        d|j                  ›d|› d�«      ‚y )Nz Invalid script entry point name z?: the script would be installed outside the scripts directory (z).)r   Úsuffixrþ   r4   ra   rQ   rš   r~   Úabspathr,   r   )ÚspecificationÚscripts_dirÚentryrõ   Úresolves_to_scripts_dirs        r=   Ú_raise_for_invalid_entrypointr  �  sª   € Ü˜]Ó+€EØ€}Øà‡|�|ÐÜ#¤C¨£JÓ/Ð/ô
 �7‰7�<‰<˜ U§Z¡ZÓ0€DÜ Ÿg™gŸo™o¨dÓ3´r·w±w·±À{Ó7SÑSÐÙÔ&9¸+ÀtÔ&LÜØ.¨u¯z©z¨nð =AØALÀÈRðQó
ð 	
ð 'Mr?   c                  óR   ‡ — e Zd Z ej                  d«      Z	 d	 	 	 	 	 dˆ fd„Zˆ xZS )ÚPipScriptMakerzÁ        import sys
        from %(module)s import %(import_name)s
        if __name__ == '__main__':
            sys.argv[0] = sys.argv[0].removesuffix('.exe')
            sys.exit(%(func)s())
c                óP   •— t        || j                  «       t        ‰| �  ||«      S r9   )r  Ú
target_dirr   Úmake)r<   r  Úoptionsr  s      €r=   r  zPipScriptMaker.make¼  s$   ø€ ô 	& m°T·_±_ÔEÜ‰w‰|˜M¨7Ó3Ð3r?   r9   )r  r4   r  zdict[str, Any] | NonerC   ú	list[str])rF   rG   rH   ÚtextwrapÚdedentÚscript_templater  r  r  s   @r=   r  r  ±  sC   ø„ ð &�h—o‘oð 'ó €Oð DHð4Ø ð4Ø+@ð4à	÷4ñ 4r?   r  c                  ó    — e Zd ZdZdd„Zdd„Zy)Ú_WheelInstallRecordzGTrack files and metadata needed to recover an interrupted installation.c                óŠ   — || _         || _        i | _        g | _        t	        «       | _        d| j
                  _        d| _        y )NTF)Úinfo_dirr¶   rÆ   rÇ   r   Úscript_fileopÚrecordÚstarted)r<   r  r¶   s      r=   rè   z_WheelInstallRecord.__init__Æ  s=   € Ø ˆŒØˆŒØ79ˆŒØ$&ˆŒÜ)›^ˆÔØ$(ˆ×ÑÔ!Øˆ�r?   c                ó.  — | j                   j                  «       D �ch c],  }t        j                  j	                  | j
                  |«      ’Œ. }}|j                  | j                  «       |j                  | j                  j                  «       |S c c}w )zFReturn the files written so far, including partial copies and scripts.)
rÆ   rÄ   ra   rQ   rš   r¶   ÚupdaterÇ   r  Úfiles_written)r<   rQ   Úpathss      r=   Úwritten_pathsz!_WheelInstallRecord.written_pathsÏ  sh   € à>B¿n¹n×>SÑ>SÓ>UÖV°d”—‘—‘˜dŸl™l¨DÕ1ÐVˆÐVØ�‰�T—^‘^Ô$Ø�‰�T×'Ñ'×5Ñ5Ô6Øˆùò Ws   �1BN)r  r4   r¶   r4   rC   rE   )rC   zset[str])rF   rG   rH   Ú__doc__rè   r!  r:   r?   r=   r  r  Ã  s   „ ÙQóôr?   r  c              +  óˆ  K  — d}	 t        | fi |¤Ž5 }|j                  }|–— ddd«       t        j                  j                  |«       t	        |j                  | «       y# 1 sw Y   Œ@xY w# t
        $ rH |�Dt        j                  t        «      5  t        j                  |«       ddd«       ‚ # 1 sw Y   ‚ xY w‚ w xY w­w)z9Write metadata atomically with the requested permissions.N)
r%   r~   ra   Úchmodr&   ÚBaseExceptionÚ
contextlibÚsuppressÚFileNotFoundErrorrï   )rQ   Ú	file_modeÚkwargsÚtemporary_pathrÌ   s        r=   Ú_generate_filer,  ×  s®   è ø€ ð
 €NðÜ˜tÑ. vÑ.ð 	°!ØŸV™VˆNØŠG÷	ô 	�‰�—‘˜Ô#Ü�—‘˜Õ÷	ð 	ûô ò ØÐ%Ü×$Ñ$Ô%6Ó7ñ *Ü—	‘	˜.Ô)÷*à÷*àúˆð	üsJ   ‚C†A. ’A"£>A. Á!CÁ"A+Á'A. Á.$B?ÂB1Â(	B?Â1B:	Â6	B?Â?Cc                ó  — |j                   |j                  }}dt        «        z  }|j                  «       D �ch c]  }t	        ||«      ’Œ }}t
        j                  j                  ||«      }t        |«       t
        j                  j                  |d«      }t        ||«      5 }	|	j                  | j                  |› d�«      «       ddd«       |j                  t	        ||«      «       t        j                  t        «      5  t        j                   t
        j                  j                  |d«      «       ddd«       t
        j                  j                  |d«      }
|j                  t	        |
|«      «       t        |
|fi t#        d«      ¤Ž5 }t%        j&                  t)        d|«      «      }|j+                  d	„ t-        |«      D «       «       ddd«       yc c}w # 1 sw Y   �ŒxY w# 1 sw Y   Œ¶xY w# 1 sw Y   yxY w)
zJWrite readable metadata and an uninstall record for files already written.é¶  ÚMETADATAz	/METADATANzentry_points.txtÚRECORDÚwúIO[str]c              3  ó&   K  — | ]	  }|d d f–— Œ y­w)rW   Nr:   )r‰   rQ   s     r=   r‹   z)_write_recovery_record.<locals>.<genexpr>  s   è ø€ ÒK¨D˜$  BœÑKùs   ‚)r  r¶   r+   r!  r½   ra   rQ   rš   r(   r,  rl   rk   r’   r&  r'  r(  rï   r\   ÚcsvÚwriterr   Ú	writerowsr—   )Ú	wheel_zipr  r  r¶   r)  rQ   Úrecovery_pathsÚdest_info_dirÚmetadata_pathÚmetadata_filer°   Úrecord_filer5  s                r=   Ú_write_recovery_recordr=  ë  s´  € àŸ™¨¯©ˆg€HØœ›Ð(Ñ(€Ið 7=×6JÑ6JÓ6LöØ.2Ô˜4 Õ)ð€Nð ô —G‘G—L‘L ¨(Ó3€MÜˆ}ÔÜ—G‘G—L‘L °
Ó;€MÜ	˜ yÓ	1ð D°]Ø×Ñ˜IŸN™N¨h¨Z°yÐ+AÓBÔC÷Dà×ÑÔ)¨-¸ÓAÔBô 
×	Ñ	Ô.Ó	/ñ CÜ
�	‰	”"—'‘'—,‘,˜}Ð.@ÓAÔB÷Cô —'‘'—,‘,˜}¨hÓ7€KØ×ÑÔ)¨+°wÓ?Ô@Ü	˜ YÑ	E´-ÀÓ2DÑ	Eð LÈÜ—‘œD ¨KÓ8Ó9ˆØ×ÑÑK´F¸>Ó4JÔKÔK÷Lð Lùò#÷Dñ Dú÷
Cð Cú÷
Lð Lús*   ¹GÂ%$G!Ä4G.ÆAG:Ç!G+Ç.G7Ç:HF©Úrollback_on_errorc             #  óÆ  K  — t        | |«      \  }}t        |«      r|j                  n|j                  }t	        ||«      }	 |–— y# t
        $ �r�}|j                  s‚ |�r	 |j                  «       D ]E  }	t        j                  t        «      5  t        j                  |	«       ddd«       Œ;# 1 sw Y   ŒDxY w t        j                  t        j                  j                  ||«      d¬«      D ]I  \  }
}}t        j                  t         «      5  t        j"                  |
«       ddd«       Œ?# 1 sw Y   ŒHxY w 	 ‚ # t         t
        f$ r}t        d|›d|› d|› �«      |‚d}~ww xY w	 t%        | |«       nM# t         t
        f$ r;}t        d|›dt        j                  j                  ||«      ›d|› d|› �«      |‚d}~ww xY wt        d	|›d
|› d|› �«      |‚d}~ww xY w­w)zKProvide the file journal and recover writes interrupted by blocked imports.NF)Útopdownz,Could not remove incomplete installation of ú: rŒ   z&Could not write recovery metadata for z at zInstallation of zD was interrupted and the package may be corrupt. Run 'pip uninstall z' to remove it. )r/   rw   ÚpurelibÚplatlibr  r   r  r!  r&  r'  r(  ra   rï   ÚwalkrQ   rš   ÚOSErrorÚrmdirr=  )r7  r~   Úschemer?  r  rv   r¶   r  ÚerrorrQ   Ú	directoryÚ_Úcleanup_errorÚrecovery_errors                 r=   Ú_record_wheel_installationrN    sõ  è ø€ ô
 % Y°Ó5Ñ€HˆhÜ 5°hÔ ?ˆf�nŠnÀVÇ^Á^€GÜ  ¨7Ó3€Fð'Ø‹øÜó %à�~Š~Øâð%Ø"×0Ñ0Ó2ò (�DÜ#×,Ñ,Ô->Ó?ñ (ÜŸ	™	 $œ÷(÷ (ñ (úð(ô
 (*§w¡wÜ—G‘G—L‘L ¨(Ó3¸Uô(ò ,‘O�I˜q !ô $×,Ñ,¬WÓ5ñ ,ÜŸ™ Ô+÷,÷ ,ñ ,úñ,ð øô Ô/Ð0ò %Ü(ØBÀ4À(È"Ø$�o R¨ wð0óð %ð%ûð%úð	"Ü" 9¨fÕ5øÜÔ+Ð,ò 	"Ü$Ø8¸¸ÀÜ—7‘7—<‘< ¨Ó2Ð5°R¸Ð7GÀrÈ%ÈðRóð "ð"ûð	"úô !Ø˜t˜hð '+Ø+/¨&Ð0@ÀÀðIó
ð ð	ûðE%üs¢   ‚?G!ÁA ÁG!Á
GÁGÁ",D=ÂB-Â$	D=Â-B6Â2AD=ÄD.Ä%	D=Ä.D7Ä3D=Ä<GÄ=E&ÅE!Å!E&Å&GÅ*E7Å6GÅ7GÆ6F<Æ<GÇGÇGÇG!c                óš   — 	 t        j                  | dd¬«      S # t        t        f$ r!}t        j                  d| |«       Y d}~yd}~ww xY w)zKSkip optional compilation when it requires a blocked or unavailable import.T)ÚforceÚquietz(Skipping bytecode compilation for %s: %sNF)Ú
compileallÚcompile_filer   ÚImportErrorrÁ   Údebug)rQ   rI  s     r=   Ú_compile_wheel_filerV  9  sE   € ðÜ×&Ñ& t°4¸tÔDÐDøÜ¤Ð,ò Ü�‰Ð?ÀÀuÔMÜûðús   ‚ šA
©AÁA
c	          
     óV  ‡‡;‡<‡=‡>‡?‡@— |	j                   |	j                  c}
Š@|	j                  Š?t        «       Š<|	j                  }	 d	 	 	 	 	 	 	 dˆ<ˆ?ˆ@fd„}d d„}d!ˆfd„Š;	 	 	 	 	 	 d"ˆ;fd„}	 	 	 	 	 	 d#ˆ;ˆfd„}d d„}t        t        t           |j                  «       «      }t        ||«      }t        ||«      \  }} ||‰@«      }t        ||«      }d d„}t        ||«      \  }} |||«      }t        ||«      }t        ||«      }t        t        ‰«      t        | «      «      }t!        |«      \  Š=Š>d$ˆ=ˆ>fd	„}t        ||«      }t        ||«      }t        t"        |«      }t        ||«      }d
|	_        t        «       }|D ]„  } t&        j(                  j+                  | j,                  «      }!|!|vrt/        |!«       |j1                  |!«       	 | j3                  «         || j8                  | j,                  | j:                  «       Œ† d%ˆ?ˆ@fd„}"d&d„}#|�rt=        j>                  tA        jB                  tD        jF                  «      «      5 }$tI        jJ                  «       5  tI        jL                  d«        |"«       D ]v  }%tO        |%«      }&|&sŒ |#|%«      }'t&        j(                  jQ                  |'«      sJ ‚t        d|'jS                  t&        j(                  jT                  d«      «      }( ||(|'«       Œx 	 ddd«       ddd«       tV        jY                  $j[                  «       «       t]        d|j^                  |	j`                  ¬«      })|�||)_1        d
|)_2        dh|)_3        d
|)_4        tk        ‰=«      }*t        tm        djn                  ‰>jq                  «       «      «      }+|)js                  |*«      },|ju                  |,«       |ju                  |)js                  |+dd
i«      «       |r"tw        |,«      }-|-�tV        jy                  |-«       dt{        «        z  }.t&        j(                  j}                  ‰@|
«      }/t&        j(                  j}                  |/d«      }0t        |0|.«      5 }1|1j�                  d«       ddd«       |jƒ                  |0«       |�xt&        j(                  j}                  |/t„        «      }2t        |2|.«      5 }3|3j�                  |j‡                  «       j‰                  d«      «       ddd«       |jƒ                  |2«       |rGt&        j(                  j}                  |/d«      }4t‹        |4d«      5  	 ddd«       |jƒ                  |4«       |j�                  d«      }5t        t�        j�                  |5j“                  «       «      «      }6t•        |6‰?j—                  «       ‰<|‰@¬«      }7t&        j(                  j}                  |/d«      }8t        |8|.fi t™        d«      ¤Ž5 }9t�        jš                  t        d|9«      «      }:|:j�                  tŸ        |7«      «       ddd«       y# t4        $ r, | j6                  r || j8                  | j,                  d
«       ‚ w xY w# 1 sw Y   �ŒkxY w# 1 sw Y   �ŒpxY w# 1 sw Y   �ŒxY w# 1 sw Y   �Œ—xY w# 1 sw Y   �Œ[xY w# 1 sw Y   yxY w)'a  Install a wheel.

    :param name: Name of the project to install
    :param wheel_zip: open ZipFile for wheel being installed
    :param scheme: Distutils scheme dictating the install directories
    :param pycompile: Whether to byte-compile installed Python files
    :param warn_script_location: Whether to check that scripts are installed
        into a directory on PATH
    :param script_executable: Python executable to use for console scripts
    :raises UnsupportedWheel:
        * when the directory holds an unpacked wheel with incompatible
          Wheel-Version
        * when the .dist-info dir does not match the wheel
    r2   c                óP   •— t        |‰«      }|‰| <   |r‰j                  |«       yy)z6Map archive RECORD paths to installation RECORD paths.N)r½   r’   )ÚsrcfilerŸ   ÚmodifiedÚnewpathr7   rÆ   r¶   s       €€€r=   Úrecord_installedz(_install_wheel.<locals>.record_installedg  s/   ø€ ô % X¨wÓ7ˆØ$ˆ	�'ÑÙØ�K‰K˜Õ ð r?   c                ó$   — | j                  d«      S )Nr¹   )Úendswith©rQ   s    r=   Úis_dir_pathz#_install_wheel.<locals>.is_dir_pathp  s   € Ø�}‰}˜SÓ!Ð!r?   c                óZ   •— t        | |«      sd}t        |j                  ‰|| «      «      ‚y )NzRThe wheel {!r} has a file {!r} trying to install outside the target directory {!r})r,   r   r™   )Údest_dir_pathÚtarget_pathÚmessageÚ
wheel_paths      €r=   Úassert_no_path_traversalz0_install_wheel.<locals>.assert_no_path_traversals  s;   ø€ Ü" =°+Ô>ð5ð ô $Ø—‘˜z¨;¸ÓFóð ð ?r?   c                ó   •‡ ‡— dˆˆˆ fd„}|S )Nc                ó®   •— t         j                  j                  | «      }t         j                  j                  ‰|«      } ‰‰|«       t	        | |‰«      S r9   )ra   rQ   Únormpathrš   rã   )r°   Únormed_pathr5   rf  rõ   rç   s      €€€r=   Úmake_root_scheme_filezM_install_wheel.<locals>.root_scheme_file_maker.<locals>.make_root_scheme_file€  sD   ø€ ÜŸ'™'×*Ñ*¨;Ó7ˆKÜŸ™Ÿ™ T¨;Ó7ˆIÙ$ T¨9Ô5Ü  ¨i¸ÓBÐBr?   ©r°   r2   rC   r1   r:   )rç   rõ   rk  rf  s   `` €r=   Úroot_scheme_file_makerz._install_wheel.<locals>.root_scheme_file_maker}  s   ú€ ÷	Cð %Ð$r?   c                óf   •‡ ‡— t         D �ci c]  }|t        ||«      “Œ c}Šdˆˆˆˆ fd„}|S c c}w )Nc           
     óÜ  •— t         j                  j                  | «      }	 |j                  t         j                  j                  d«      \  }}}	 ‰
|   }t         j                  j                  ||«      } ‰	||«       t        | |‰«      S # t
        $ r d‰› d| ›d�}t        |«      ‚w xY w# t        $ r5 dj                  t        ‰
«      «      }d‰› d|› d| ›d|› d	�	}t        |«      ‚w xY w)
NrÀ   zUnexpected file in rB  zG. .data directory contents should be named like: '<scheme key>/<path>'.r…   zUnknown scheme key used in z (for file zW). .data directory contents should be in subdirectories named with a valid scheme key (ú))ra   rQ   ri  r”   r¼   Ú
ValueErrorr   ÚKeyErrorrš   r—   rã   )r°   rj  rK  Ú
scheme_keyÚdest_subpathrd  Úscheme_pathÚvalid_scheme_keysr5   rf  Úscheme_pathsre  rç   s            €€€€r=   Úmake_data_scheme_filezM_install_wheel.<locals>.data_scheme_file_maker.<locals>.make_data_scheme_file�  s  ø€ ÜŸ'™'×*Ñ*¨;Ó7ˆKð1Ø.9×.?Ñ.?ÄÇÁÇÁÈQÓ.OÑ+��:˜|ð
1Ø*¨:Ñ6�ô Ÿ™Ÿ™ [°,Ó?ˆIÙ$ [°)Ô<Ü  ¨i¸ÓBÐBøô+ ò 1à)¨*¨°R¸°ð GMð Mð ô (¨Ó0Ð0ð1ûô ò 1Ø$(§I¡I¬f°\Ó.BÓ$CÐ!à1°*°¸RÀ
¸|ð L!Ø!, ð 0à-Ð.¨að1ð ô (¨Ó0Ð0ð1ús   ¢.B ÁB- ÂB*Â->C+rl  )r#   Úgetattr)rç   rH  Úkeyrx  rw  rf  re  s   `   @€€r=   Údata_scheme_file_makerz._install_wheel.<locals>.data_scheme_file_makerˆ  s<   ú€ ô >IÖI°c˜œW V¨SÓ1Ñ1ÒIˆ÷	Cð 	Cð6 %Ð$ùò; Js   Œ.c                óJ   — | j                  dd«      d   j                  d«      S )Nr¹   r„   r   ú.data)r”   r^  r_  s    r=   Úis_data_scheme_pathz+_install_wheel.<locals>.is_data_scheme_pathª  s#   € Ø�z‰z˜#˜qÓ! !Ñ$×-Ñ-¨gÓ6Ð6r?   c                ó‚   — | j                  dd«      }t        |«      dkD  xr |d   j                  d«      xr |d   dk(  S )Nr¹   rÀ   r   r}  r„   r�   )r”   r˜   r^  )rQ   Úpartss     r=   Úis_script_scheme_pathz-_install_wheel.<locals>.is_script_scheme_path´  sB   € Ø—
‘
˜3 Ó"ˆÜ�5‹z˜A‰~ÒV %¨¡(×"3Ñ"3°GÓ"<ÒVÀÀqÁÈYÑAVÐVr?   c                óP  •— | j                   }t        j                  j                  |«      }|j	                  «       j                  d«      r|d d }nL|j	                  «       j                  d«      r|d d }n'|j	                  «       j                  d«      r|d d }n|}|‰v xs |‰v S )Nz.exeéüÿÿÿz
-script.pyiöÿÿÿz.pya)r5   ra   rQ   Úbasenameru   r^  )rú   rQ   r~   Ú	matchnamerÚ   Úguis       €€r=   Úis_entrypoint_wrapperz-_install_wheel.<locals>.is_entrypoint_wrapperÇ  s™   ø€ ð �~‰~ˆÜ�w‰w×Ñ Ó%ˆØ�:‰:‹<× Ñ  Ô(Ø˜S˜b˜	‰IØ�Z‰Z‹\×"Ñ" <Ô0Ø˜T˜c˜
‰IØ�Z‰Z‹\×"Ñ" 6Ô*Ø˜S˜b˜	‰IàˆIà˜GÐ#Ò7 y°CÐ'7Ð7r?   Tc               3  ó  •K  — t        t        ‰j                  «       «      «      D ]X  } t        j                  j                  ‰| «      }t        j                  j                  |«      sŒC|j                  d«      sŒU|–— ŒZ y ­w)Nz.py)r—   r�   rÄ   ra   rQ   rš   rb   r^  )Úinstalled_pathÚfull_installed_pathrÆ   r¶   s     €€r=   Úpyc_source_file_pathsz-_install_wheel.<locals>.pyc_source_file_pathsó  sk   øè ø€ ô
 %¤S¨×)9Ñ)9Ó);Ó%<Ó=ò 	&ˆNÜ"$§'¡'§,¡,¨w¸Ó"GÐÜ—7‘7—>‘>Ð"5Ô6ØØ&×/Ñ/°Ô6ØØ%Ó%ñ	&ùs   ƒA?Bc                ó@   — t         j                  j                  | «      S )z8Return the path the pyc file would have been written to.)Ú	importlibÚutilÚcache_from_sourcer_  s    r=   Úpyc_output_pathz'_install_wheel.<locals>.pyc_output_path   s   € ä�~‰~×/Ñ/°Ó5Ð5r?   Úignorer¹   N)ÚfileoprW   rÔ   r†  r.  Ú	INSTALLERs   pip
rX   Ú	REQUESTEDr`   r0  )rÆ   r7   rÇ   r¶   r1  r2  )F)rY  r2   rŸ   r4   rZ  r6   rC   rE   )rQ   r2   rC   r6   )rb  r4   rc  r4   rC   rE   )rç   r   rõ   r4   rC   úCallable[[RecordPath], File])rç   r   rH  r$   rC   r•  )rú   r1   rC   r6   )rC   zGenerator[str, None, None])rQ   r4   rC   r4   )Pr  r¶   rÆ   r�   rÇ   r   Úlistr2   Únamelistr   r*   Úmapr   r    r   r   r�   r÷   r  ra   rQ   Údirnamer5   r(   r’   rA   r   r>   r3   r7   r&  Úredirect_stdoutr'   Úfrom_streamrf   ÚstdoutÚwarningsÚcatch_warningsÚfilterwarningsrV  rî   r&   r¼   rÁ   rU  Úgetvaluer  r�   r  rg   ÚclobberÚvariantsÚset_moderá   r   r™   r–   Úmake_multiplerÙ   r­   rÂ   r+   rš   r,  rl   r›   r!   Úto_jsonrh   rc   Ú	read_textr4  ÚreaderÚ
splitlinesrÎ   rÕ   r\   r5  r6  r´   )Ar~   r7  re  rH  Ú	pycompileÚwarn_script_locationÚ
direct_urlÚ	requestedÚscript_executabler  r  rÇ   r\  r`  rm  r{  r~  r   Ú
file_pathsÚroot_scheme_pathsÚdata_scheme_pathsrk  Úfilesr�  Úother_scheme_pathsÚscript_scheme_pathsrx  Úother_scheme_filesÚdistributionr‡  Úscript_scheme_filesÚexisting_parentsrú   r    r‹  r�  rœ  rQ   ÚsuccessÚpyc_pathÚpyc_record_pathÚmakerrÛ   Úgui_scripts_to_generateÚgenerated_console_scriptsÚmsgÚgenerated_file_moder9  Úinstaller_pathÚinstaller_fileÚdirect_url_pathÚdirect_url_fileÚrequested_pathÚrecord_textÚrecord_rowsÚrowsr°   r<  r5  rf  r7   rÚ   r†  rÆ   r¶   sA     `                                                        @@@@@@r=   Ú_install_wheelrÈ  B  sE  þ€ ð6 Ÿ™¨¯©Ð€Hˆgð × Ñ €IÜ"›u€GØ× Ñ €Ið >Cð!Øð!Ø'*ð!Ø6:ð!à	÷!ó"õð	%Øð	%Ø!$ð	%à	%õ	%ð %Øð %Ø#)ð %à	%ö %óD7ô ””jÑ! 9×#5Ñ#5Ó#7Ó8€EÜ˜[¨%Ó0€JÜ+4Ð5HÈ*Ó+UÑ(ÐÐ(á2°9¸gÓFÐÜÐ 5Ð7HÓI€EóWô /8ØÐ0ó/Ñ+ÐÐ+ñ 3°9¸fÓEÐÜÐ2Ð4FÓGÐÜ�%Ð+Ó,€Eô *Ü˜
Ó#Ü˜$Óó€Lô # <Ó0�L€GˆSö8ô  +.ØÐ2ó+Ðô &Ð&;Ð=PÓQÐÜœjÐ*=Ó>ÐÜ�%Ð,Ó-€Eð €F„NÜ“uÐØò Mˆô —W‘W—_‘_ T§^¡^Ó4ˆ
ØÐ-Ñ-Ü�zÔ"Ø× Ñ  Ô,ð	Ø�I‰IŒKñ 	˜×-Ñ-¨t¯~©~¸t¿|¹|ÕLð!Mö$&ó6ò
 Ü×'Ñ'Ü×%Ñ%¤c§j¡jÓ1ó
ð 	DàÜ×(Ñ(Ó*ñ 
DÜ×'Ñ'¨Ô1Ù1Ó3ò D�DÜ1°$Ó7�GÚÙ#2°4Ó#8˜Ü!Ÿw™wŸ~™~¨hÔ7Ð7Ð7Ü*.Ø(¨(×*:Ñ*:¼2¿7¹7¿;¹;ÈÓ*Ló+˜ñ )¨¸(ÕCñD÷
D÷	Dô 	�‰�V—_‘_Ó&Ô'ô ˜4 §¡¸×8LÑ8LÔM€Eð
 Ð$Ø,ˆÔð €E„Mð
 �T€E„Nð
 €E„Nô 3°7Ó;Ðä"¤7¨9×+;Ñ+;¸S¿Y¹Y»[Ó#IÓJÐà %× 3Ñ 3Ð4GÓ HÐØ×ÑÐ.Ô/à×Ñ�U×(Ñ(Ð)@À5È$À-ÓPÔQáÜ/Ð0IÓJˆØˆ?Ü�N‰N˜3Ôà¤=£?Ð"2Ñ2ÐÜ—G‘G—L‘L ¨(Ó3€Mô —W‘W—\‘\ -°Ó=€NÜ	˜Ð(;Ó	<ð 'ÀØ×Ñ˜XÔ&÷'à×Ñ�^Ô$ð ÐÜŸ'™'Ÿ,™, }Ô6NÓOˆÜ˜OÐ-@ÓAð 	HÀ_Ø×!Ñ! *×"4Ñ"4Ó"6×"=Ñ"=¸gÓ"FÔG÷	Hà×Ñ˜Ô)ñ ÜŸ™Ÿ™ m°[ÓAˆÜ�. $Ó'ñ 	Ø÷	à×Ñ˜Ô(à×(Ñ(¨Ó2€KÜ”s—z‘z +×"8Ñ"8Ó":Ó;Ó<€Kô &ØØ—.‘.Ó"ØØØô€Dô —'‘'—,‘,˜}¨hÓ7€Kä	ØÐ(ñ
Ü,9¸#Ó,>ñ
ð 4à	ô —‘œD ¨KÓ8Ó9ˆØ×ÑÔ,¨TÓ2Ô3÷4ð 4øôm "ò 	Ø�|Š|Ù  ×!5Ñ!5°t·~±~ÀtÔLØð	ú÷:
Dñ 
Dú÷	Dñ 	Dú÷v'ñ 'ú÷	Hñ 	Hú÷	ñ 	ú÷&4ð 4úsg   ÇX&É	Y+É-YÊA(YË5Y+Ñ$Y8Ó/ZÔ7Z×#:ZØ&5YÙY(	Ù#Y+Ù+Y5Ù8ZÚZÚZÚZ(c              #  óz   K  — 	 d –— y # t         $ r&}d| › d|j                  d   › �}t        |«      |‚d }~ww xY w­w)Nz	For req: z. r   )r   Úargs)Úreq_descriptionÚerd  s      r=   Úreq_error_contextrÍ  k  sE   è ø€ ð0ÜøÜò 0Ø˜oÐ.¨b°·±¸±°Ð<ˆÜ Ó(¨aÐ/ûð0üs   ‚;„	 ˆ;‰	8’!3³8¸;c	               óú   — t        |d¬«      5 }
t        |«      5  t        |
| ||	¬«      5 }t        | |
||||||||¬«
       d d d «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)NT)Ú
allowZip64r>  )
r~   r7  re  rH  r©  rª  r«  r¬  r­  r  )r   rÍ  rN  rÈ  )r~   re  rH  rË  r©  rª  r«  r¬  r­  r?  Úzr  s               r=   Úinstall_wheelrÑ  t  s™   € ô 
�¨Ô	-ð °ä˜oÓ.ñ	ä&Ø�4˜Ð3Dôð	ð äØØØ%ØØ#Ø%9Ø%Ø#Ø"3Øõ÷	÷ 	÷ð ÷	ð 	ú÷ 	ð 	ú÷ð ús9   ŽA1šA%ªAÁ A%ÁA1ÁA"ÁA%Á%A.	Á*A1Á1A:)rí   )rQ   r4   rR   ÚintrC   ztuple[str, str])rY   r4   rC   zdict[str, Any])rQ   r4   rC   r6   )rv   r
   rC   r6   )r   r   rC   z%tuple[dict[str, str], dict[str, str]])r�   zSequence[str]rC   ú
str | None)r³   zIterable[InstalledCSVRow]rC   zlist[tuple[str, str, str]])r°   r2   r¶   r4   rC   r4   )rQ   r4   r¶   r4   rC   r2   )rÅ   zlist[list[str]]rÆ   zdict[RecordPath, RecordPath]r7   zset[RecordPath]rÇ   r  r¶   r4   rC   zlist[InstalledCSVRow])rÚ   zdict[str, str]rC   r  )r  r4   r  r4   rC   rE   )rQ   r4   r)  rÒ  r*  r   rC   zGenerator[BinaryIO, None, None])r7  r   r  r  rC   rE   )
r7  r   r~   r4   rH  r$   r?  r6   rC   z*Generator[_WheelInstallRecord, None, None])TTNFN)r~   r4   r7  r   re  r4   rH  r$   r©  r6   rª  r6   r«  úDirectUrl | Noner¬  r6   r­  rÓ  r  r  rC   rE   )rË  r4   rC   zGenerator[None, None, None])r~   r4   re  r4   rH  r$   rË  r4   r©  r6   rª  r6   r«  rÔ  r¬  r6   r­  rÓ  r?  r6   rC   rE   )qr"  Ú
__future__r   r�   rR  r&  r4  r�  ÚloggingÚos.pathra   r×   rò   rf   r  r�  Úbase64r   Úcollections.abcr   r   r   r   r	   Úemail.messager
   Ú	itertoolsr   r   r   Úpathlibr   Útypingr   r   r   r   r   r   Úzipfiler   r   Úpip._vendor.distlib.scriptsr   Úpip._vendor.distlib.utilr   r   Úpip._vendor.packaging.utilsr   Úpip._internal.exceptionsr   r   Úpip._internal.locationsr   Úpip._internal.metadatar   r   r    Úpip._internal.models.direct_urlr!   r"   Úpip._internal.models.schemer#   r$   Úpip._internal.utils.filesystemr%   r&   Úpip._internal.utils.miscr'   r(   r)   r*   Úpip._internal.utils.unpackingr+   r,   r-   r.   Úpip._internal.utils.wheelr/   r1   Ú	getLoggerrF   rÁ   r4   r2   ÚtuplerÒ  ÚInstalledCSVRowrU   r\   rq   rw   r�   r­   r´   r·   r½   rÎ   rá   rã   r÷   rþ   r  r  r  Úcontextmanagerr,  r=  rN  rV  rÈ  rÍ  rÑ  r:   r?   r=   ú<module>rï     sN  ðÙ Lå "ã Û Û Û 
Û Û Û Û 	Û Û 
Û Û Ý $ß MÕ MÝ !ß 1Ñ 1Ý ÷÷ ÷ %å 3ß CÝ 9ç JÝ ;÷ñ ÷
 Pß ;ß Eß TÓ T÷ó õ 2ô
ˆ8ô 
ð 
ˆ×	Ñ	˜8Ó	$€á�\ 3Ó'€
Ø˜
 C¨¨s©Ð2Ñ3€ô!ó>óó(Aó(óI ðXØ&ðàóó4.ó$ðØ!ðà+ðð ðð ð	ð
 ðð óó@H÷V%Oñ %O÷P2ñ 2ô 
Ð-ô 
ó
ô(4�[ô 4÷$ñ ð( ×ÑðØ
ðØðØ),ðà$òó ðó&Lð6 ×ÑàPUñ/Øð/Ø!ð/Ø+1ð/ØIMð/à/ò/ó ð/ódð Ø!%Ø#'ØØ$(ðf4Ø
ðf4àðf4ð ðf4ð ð	f4ð
 ðf4ð ðf4ð !ðf4ð ðf4ð "ðf4ð  ðf4ð 
óf4ðR	 ×Ñò0ó ð0ð Ø!%Ø#'ØØ$(ðð $ñØ
ðàðð ðð ð	ð
 ðð ðð !ðð ðð "ðð ðð 
ôr?   