Ë
    ”U.jÆo  ã                  óv  — 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 ddlmZ ddlmZmZmZ ddlmZmZ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, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z;m<Z< ddl=m>Z>m?Z? ddl@mAZAmBZBmCZCmDZD ddlEmFZFmGZGmHZHmIZI ddlJmKZK  G d„ de#«      ZL ejš                  eN«      ZO e"deP«      ZQeReQePe$eSePf   f   ZTd0d1d„ZUd2d„ZVd3d„ZWd4d„ZXd5d„ZYd6d„ZZ	 	 	 	 d7d„Z[d8d „Z\d9d!„Z]	 	 	 	 	 	 	 	 	 	 	 	 d:d"„Z^d;d#„Z_ G d$„ d%«      Z` G d&„ d'«      Za G d(„ d)e0«      Zbd<d*„Zc G d+„ d,e*«      Zd	 	 	 	 d=	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d>d-„ZeejÌ                  d?d.„«       Zg	 	 	 	 d=	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d@d/„Zhy)AzFSupport for installing and building the "wheel" binary package format.é    )ÚannotationsN)Úurlsafe_b64encode)Ú	GeneratorÚIterableÚIteratorÚSequence)ÚMessage)ÚchainÚfilterfalseÚstarmap)ÚIOÚAnyÚBinaryIOÚCallableÚNewTypeÚProtocolÚUnionÚcast)ÚZipFileÚZipInfo)ÚScriptMaker)Úget_export_entry)Úcanonicalize_name)Ú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                  ó4   — e Zd ZU ded<   ded<   ded<   d	d„Zy)
ÚFileÚ
RecordPathÚsrc_record_pathÚstrÚ	dest_pathÚboolÚchangedc                 ó   — y ©N© ©Úselfs    úhC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\pip/_internal/operations/install/wheel.pyÚsavez	File.save>   s   € Øó    N©ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r<   r8   r=   r;   r/   r/   9   s   … ØÓØƒNØƒMôr=   r/   r0   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Úrstripr2   )ÚpathÚ	blocksizeÚhÚlengthrH   s        r;   ÚrehashrO   H   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Úencodingr8   )rS   s    r;   Úcsv_io_kwargsrV   O   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)ÚosrK   ÚisfileÚopenÚreadlineÚ
startswithÚsysÚ
executableÚencodeÚgetfilesystemencodingÚlinesepÚreadÚwrite)rK   ÚscriptÚ	firstlineÚexenameÚrests        r;   Ú
fix_scriptrk   V   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-PurelibrQ   Útrue)ÚgetÚlower)Úmetadatas    r;   Úwheel_root_is_purelibrq   j   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)Údistrs   rt   Úentry_points       r;   Úget_entrypointsr{   n   su   € Ø€OØ€KØ×-Ñ-Ö/ˆØ×ÑÐ 1Ò1Ø0;×0AÑ0AˆO˜K×,Ñ,Ò-Ø×Ñ -Ó/Ø,7×,=Ñ,=ˆK˜×(Ñ(Ò)ð	 0ð
 ˜KÐ'Ð'r=   c           	     ó‚  — | syt        j                  t        «      }| D ]T  }t        j                  j                  |«      }t        j                  j                  |«      }||   j                  |«       ŒV t        j                  j                  dd«      j                  t        j                  «      D �cg c][  }t        j                  j                  t        j                  j                  |«      «      j                  t        j                  «      ‘Œ] }}|j!                  t        j                  j                  t        j                  j                  t        j                  j                  t"        j$                  «      «      «      «       |j'                  «       D �� ci c]F  \  }} t        j                  j                  t        j                  j                  |«      «      |vr|| “ŒH }}} |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«      «       t1        d„ t        j                  j                  dd«      j                  t        j                  «      D «       «      }|rd}|j!                  |«       dj/                  |«      S 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ÚPATHrQ   é   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   Ú~Nr8   )Ú.0Úis     r;   Ú	<genexpr>z4message_about_scripts_not_on_PATH.<locals>.<genexpr>³   s   è ø€ ð ÙI˜ÊQˆˆ!‰��ÑIùs   ‚ŠziNOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.Ú
)ÚcollectionsÚdefaultdictÚsetr[   rK   ÚdirnameÚbasenameÚaddÚenvironrn   ÚsplitÚpathsepÚnormcaseÚnormpathrJ   ÚsepÚappendr`   ra   ÚitemsÚsortedÚlenÚformatÚjoinÚany)ÚscriptsÚgrouped_by_dirÚdestfileÚ
parent_dirÚscript_namer„   Únot_warn_dirsÚwarn_forÚ	msg_linesÚdir_scriptsÚsorted_scriptsÚ
start_textÚlast_line_fmtÚwarn_for_tildeÚtilde_warning_msgs                  r;   Ú!message_about_scripts_not_on_PATHr¨   y   sÎ  € ñ
 Øô +6×*AÑ*AÄ#Ó*F€NÛˆÜ—W‘W—_‘_ XÓ.ˆ
Ü—g‘g×&Ñ& xÓ0ˆØ�zÑ"×&Ñ& {Õ3ð ô —‘—‘ ¨Ó+×1Ñ1´"·*±*Ô=óá=ˆAô 	�‰×ÑœŸ™×)Ñ)¨!Ó,Ó-×4Ñ4´R·V±VÕ<Ø=ð ð ð ×ÑÜ
�‰×ÑœŸ™×)Ñ)¬"¯'©'¯/©/¼#¿.¹.Ó*IÓJÓKôð
 $2×#7Ñ#7Ô#9ô%á#9ÑˆJ˜Ü�7‰7×ÑœBŸG™G×,Ñ,¨ZÓ8Ó9ÀÑNð 	�GÑØ#9ð ñ %ñ
 Øð €IØ#+§>¡>Ö#3Ñˆ
�KÜ$*¨;Ó$7ˆÜˆ~Ó !Ò#Ø" >°!Ñ#4Ð"5°SÐ9‰Jà)×0Ñ0Ø—	‘	˜.¨¨"Ð-Ó.°Ñ8¸>È"Ñ;MÑMóˆJð 	×ÑØ�:�,˜o¨j¨\Ð9PÐQõ	
ð $4ð	Cð ô ˆ9ƒ~˜ÒØ×Ñ˜×-Ñ-Ð.>Ó?Õ@à×Ñ˜×-Ñ-Ð.AÓBÔCô ñ ÜŸZ™ZŸ^™^¨F°BÓ7×=Ñ=¼b¿j¹jÔIóó €Nñ ð=ð 	ð 	×ÑÐ*Ô+ð �9‰9�YÓÐùòkùó%s   Â5A L6Æ AL;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r7   )r2   )rƒ   Úrecord_pathÚhash_Úsizes       r;   r…   z&_normalized_outrows.<locals>.<genexpr>Ö   s&   è ø€ ð ÙHOÑ,D¨K¸Àˆ�eœS ›YÔ'Éùs   ‚)r•   )Úoutrowss    r;   Ú_normalized_outrowsr¯   Á   s   € ô* ñ ÙHOóó ð r=   c                óB   — t         j                  j                  || «      S r7   )r[   rK   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   Ú/r0   )r[   rK   Ú
splitdrivero   Úrelpathr$   r’   r   )rK   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: %sr0   r   r~   rQ   é   )
r–   ÚloggerÚwarningr   ÚpoprO   r²   r“   r·   Úvalues)Úold_csv_rowsÚ	installedr5   Ú	generatedr±   Úinstalled_rowsÚrowÚold_record_pathÚnew_record_pathrH   rN   ÚfrK   Úinstalled_record_paths                 r;   Úget_csv_rows_for_installedrÈ   é   s"  € ð -/€NÛˆÜˆ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Ø×Ñ˜°¸Ð?Õ@ð ó ˆÜ! ! WÓ-ˆÜ ›‰ˆ�Ø×Ñ˜t V¨VÐ4Õ5ð ð ØEN×EUÑEUÔEWóÙEWÐ,AÐ	  BÒ'ÐEWññ ð ùò 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 = rQ   Ú
altinstallr   z = zpip(\d+(\.\d+)?)?$Úeasy_installzeasy_install = zeasy_install-zeasy_install(-\d+\.\d+)?$ú{} = {})Úcopyr½   r[   r�   r“   rn   r`   Ú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™W˜¬¯©Ð1FÈÕ(J’!˜WˆÐKÛˆAØ˜‘
ð à!Ÿ+™+ n°dÓ;ÐÙØ¤b§j¡jÑ0Ø×&Ñ&Ð'8Ð;NÑ'NÔOà×"Ñ"ØÔ3Ó5Ð6°cÐ:MÐ9NÐOô	
ñ
 ó
Ù�!¤"§(¡(Ð+GÈÕ"KŠA�wð 	ð 
ó !ˆ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                ó<   — || _         || _        || _        d| _        y ©NF)r1   r3   Ú	_zip_filer5   )r:   r1   r3   Úzip_files       r;   Ú__init__zZipBackedFile.__init__U  s!   € ð  /ˆÔØ"ˆŒØ!ˆŒØˆ�r=   c                óL   — | j                   j                  | j                  «      S r7   )rà   Úgetinfor1   r9   s    r;   Ú_getinfozZipBackedFile._getinfo]  s   € Ø�~‰~×%Ñ% d×&:Ñ&:Ó;Ð;r=   c                ó$  — t         j                  j                  | j                  «      rt        j                  | j                  «       | j                  «       }t        | j                  d«      5 }|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)NrZ   r   é   )r[   rK   Úexistsr3   Úunlinkrå   r]   Ú	file_sizerà   ÚminÚshutilÚcopyfileobjr,   r+   )r:   ÚzipinfoÚdestrÆ   rL   s        r;   r<   zZipBackedFile.save`  sÂ   € ô �7‰7�>‰>˜$Ÿ.™.Ô)Ü�I‰I�d—n‘nÔ%à—-‘-“/ˆô �$—.‘. $Ô'¨4Ø× Ñ  1Ò$Ø—^‘^×(Ñ(¨Ô1°QÜ # G×$5Ñ$5°{Ó C�IÜ×&Ñ& q¨$°	Ô:÷ 2÷ (ô " 'Ô*Ü>¸t¿~¹~ÕNð +÷	 2Ð1ú÷ (Ð'ús$   Á/+DÂ.C:ÃDÃ:D	Ã?DÄDN)r1   r0   r3   r2   rá   r   r?   r@   )r?   r   r>   )rA   rB   rC   râ   rå   r<   r8   r=   r;   rÝ   rÝ   T  s2   „ ðØ)ðØ69ðØELðà	óó<ôOr=   rÝ   c                  ó   — e Zd Zdd„Zdd„Zy)Ú
ScriptFilec                óŒ   — || _         | j                   j                  | _        | j                   j                  | _        d| _        y rß   )Ú_filer1   r3   r5   )r:   Úfiles     r;   râ   zScriptFile.__init__{  s3   € ØˆŒ
Ø#Ÿz™z×9Ñ9ˆÔØŸ™×-Ñ-ˆŒØˆ�r=   c                ól   — | j                   j                  «        t        | j                  «      | _        y r7   )ró   r<   rk   r3   r5   r9   s    r;   r<   zScriptFile.save�  s    € Ø�
‰
�‰ÔÜ! $§.¡.Ó1ˆ�r=   N)rô   r/   r?   r@   r>   )rA   rB   rC   râ   r<   r8   r=   r;   rñ   rñ   z  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:   rz   Ú	__class__s     €r;   râ   zMissingCallableSuffix.__init__‡  s!   ø€ Ü‰ÑØ*¨;¨-ð 8ð õ	
r=   )rz   r2   r?   r@   )rA   rB   rC   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÷   r2   r[   rK   r˜   rx   Ú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 r7   )r  Ú
target_dirrù   Úmake)r:   r   Úoptionsrú   s      €r;   r	  zPipScriptMaker.make±  s$   ø€ ô 	& m°T·_±_ÔEÜ‰w‰|˜M¨7Ó3Ð3r=   r7   )r   r2   r
  zdict[str, Any] | Noner?   ú	list[str])rA   rB   rC   ÚtextwrapÚdedentÚscript_templater	  rû   rü   s   @r;   r  r  ¤  sC   ø„ ð &�h—o‘oð	ó€Oð DHð4Ø ð4Ø+@ð4à	÷4ñ 4r=   r  c           
     óÒ  ‡‡:‡;‡<‡=‡>‡?‡@— t        || «      \  }}	t        |	«      r|j                  Š@n|j                  Š@i Š?t	        «       Š;g }
	 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        ||«      }t	        «       }|D ]ƒ  }t$        j&                  j)                  |j*                  «      } | |vrt-        | «       |j/                  | «       |j1                  «         ||j2                  |j*                  |j4                  «       Œ… d&ˆ?ˆ@fd
„}!d'd„}"|�r"t7        j8                  t;        j<                  t>        j@                  «      «      5 }#tC        jD                  «       5  tC        jF                  d«        |!«       D ]ƒ  }$tI        jJ                  |$dd¬«      }%|%sŒ |"|$«      }&t$        j&                  jM                  |&«      sJ ‚t        d|&jO                  t$        j&                  jP                  d«      «      }' ||'|&«       Œ… 	 ddd«       ddd«       tR        jU                  #jW                  «       «       tY        d|jZ                  «      }(d|(_.        dh|(_/        d|(_0        tc        ‰<«      })t        te        djf                  ‰>ji                  «       «      «      }*|(jk                  |)«      }+|
jm                  |+«       |
jm                  |(jk                  |*ddi«      «       |r"to        |+«      },|,�tR        jq                  |,«       dts        «        z  Š=t6        jt                  d(ˆ=fd„«       }-t$        j&                  jw                  ‰@|«      }.t$        j&                  jw                  |.d«      }/ |-|/«      5 }0|0jy                  d«       ddd«       |
j{                  |/«       |�tt$        j&                  jw                  |.t|        «      }1 |-|1«      5 }2|2jy                  |j                  «       j�                  d«      «       ddd«       |
j{                  |1«       |rGt$        j&                  jw                  |.d«      }3tƒ        |3d«      5  	 ddd«       |
j{                  |3«       |j…                  d«      }4t        t‡        jˆ                  |4j‹                  «       «      «      }5t�        |5‰?‰;|
‰@¬«      }6t$        j&                  jw                  |.d«      }7 |-|7fi t�        d«      ¤Ž5 }8t‡        j�                  t        d|8«      «      }9|9j“                  t•        |6«      «       ddd«       y# 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   �ŒMx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 req_description: String used in place of the requirement, for
        logging
    :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
    :raises UnsupportedWheel:
        * when the directory holds an unpacked wheel with incompatible
          Wheel-Version
        * when the .dist-info dir does not match the wheel
    r0   c                óP   •— t        |‰«      }|‰| <   |r‰j                  |«       yy)z6Map archive RECORD paths to installation RECORD paths.N)r·   rŒ   )Úsrcfilerœ   ÚmodifiedÚnewpathr5   rÀ   r±   s       €€€r;   Úrecord_installedz(_install_wheel.<locals>.record_installedà  s/   ø€ ô % X¨wÓ7ˆØ$ˆ	�'ÑÙØ�K‰K˜Õ ð r=   c                ó$   — | j                  d«      S )Nr´   )Úendswith©rK   s    r;   Úis_dir_pathz#_install_wheel.<locals>.is_dir_pathé  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_traversalì  s;   ø€ Ü" =°+Ô>ð5ð ô $Ø—‘˜z¨;¸ÓFóð ð ?r=   c                ó   •‡ ‡— dˆˆˆ fd„}|S )Nc                ó®   •— t         j                  j                  | «      }t         j                  j                  ‰|«      } ‰‰|«       t	        | |‰«      S r7   )r[   rK   r‘   r˜   rÝ   )r«   Únormed_pathr3   r  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«   r0   r?   r/   r8   )rá   rï   r"  r  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 z: 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 (Ú))r[   rK   r‘   rŽ   r’   Ú
ValueErrorr   ÚKeyErrorr˜   r•   rÝ   )r«   r!  Ú_Ú
scheme_keyÚdest_subpathr  Úscheme_pathÚvalid_scheme_keysr3   r  Úscheme_pathsr  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+r#  )r!   Úgetattr)rá   ÚschemeÚkeyr0  r/  r  r  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   r6  r~   rš   )rŽ   r–   r  )rK   Ú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)r3   r[   rK   r‹   ro   r  )rô   rK   rx   Ú	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=   c               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¾   r[   rK   r˜   r\   r  )Úinstalled_pathÚfull_installed_pathrÀ   r±   s     €€r;   Úpyc_source_file_pathsz-_install_wheel.<locals>.pyc_source_file_pathsc  sf   øè ø€ ô
 %¤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_pathp  s   € ä�~‰~×/Ñ/°Ó5Ð5r=   ÚignoreT)ÚforceÚquietr´   NrQ   rÎ   r>  i¶  c              ;  óÄ   •K  — t        | fi |¤Ž5 }|–— d d d «       t        j                  j                  ‰«       t	        |j                  | «       y # 1 sw Y   Œ@xY w­wr7   )r#   r[   Úchmodrx   r$   )rK   ÚkwargsrÆ   Úgenerated_file_modes      €r;   Ú_generate_filez&_install_wheel.<locals>._generate_file§  sI   øè ø€ ä˜tÑ. vÒ.°!ØŠG÷ /ä
�‰�—‘Ð,Ô-Ü�—‘˜Õ÷ /Ð.üs   ƒA �A•?A ÁAÁA Ú	INSTALLERs   pip
rR   Ú	REQUESTEDrZ   ÚRECORD)rÀ   r5   rÁ   r±   ÚwzIO[str])F)r  r0   rœ   r2   r  r4   r?   r@   )rK   r0   r?   r4   )r  r2   r  r2   r?   r@   )rá   r   rï   r2   r?   úCallable[[RecordPath], File])rá   r   r2  r"   r?   rU  )rô   r/   r?   r4   )r?   zGenerator[str, None, None])rK   r2   r?   r2   )rK   r2   rN  r   r?   zGenerator[BinaryIO, None, None])Kr-   rq   ÚpurelibÚplatlibr‰   r   Úlistr0   Únamelistr   r(   Úmapr
   r   r   r   r{   rñ   r[   rK   rŠ   r3   r&   rŒ   r<   r1   r5   Ú
contextlibÚredirect_stdoutr%   Úfrom_streamr`   ÚstdoutÚwarningsÚcatch_warningsÚfilterwarningsÚ
compileallÚcompile_filerè   r$   r’   r»   ÚdebugÚgetvaluer  rš   ÚclobberÚvariantsÚset_moderÛ   r   r—   r”   Úmake_multiplerÓ   r¨   r¼   r)   Úcontextmanagerr˜   rf   r“   r   Úto_jsonrb   r]   Ú	read_textÚcsvÚreaderÚ
splitlinesrÈ   rV   ÚwriterÚ	writerowsr¯   )Arx   Ú	wheel_zipr  r2  Ú	pycompileÚwarn_script_locationÚ
direct_urlÚ	requestedÚinfo_dirrp   rÁ   r  r  r$  r4  r7  ÚpathsÚ
file_pathsÚroot_scheme_pathsÚdata_scheme_pathsr"  Úfilesr:  Úother_scheme_pathsÚscript_scheme_pathsr0  Úother_scheme_filesÚdistributionr?  Úscript_scheme_filesÚexisting_parentsrô   r�   rC  rH  r^  rK   ÚsuccessÚpyc_pathÚpyc_record_pathÚmakerrÕ   Úgui_scripts_to_generateÚgenerated_console_scriptsÚmsgrP  Údest_info_dirÚinstaller_pathÚinstaller_fileÚdirect_url_pathÚdirect_url_fileÚrequested_pathÚrecord_textÚrecord_rowsÚrowsr«   Úrecord_filerp  r  r5   rÔ   rO  r>  rÀ   r±   sA     `                                                       @@@@@@@r;   Ú_install_wheelr”  ¸  s¼  ÿ€ ô2 % Y°Ó5Ñ€Hˆhä˜XÔ&Ø—.‘.‰à—.‘.ˆð /1€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ä“uÐÛˆô —W‘W—_‘_ T§^¡^Ó4ˆ
ØÐ-Ñ-Ü�zÔ"Ø× Ñ  Ô,Ø�	‰	ŒÙ˜×-Ñ-¨t¯~©~¸t¿|¹|ÕLð ö&ó6ò
 Ü×'Ñ'Ü×%Ñ%¤c§j¡jÓ1ô
àÜ×(Ñ(Õ*Ü×'Ñ'¨Ô1Ù1Ö3�DÜ(×5Ñ5°dÀ$ÈdÔS�GÚÙ#2°4Ó#8˜Ü!Ÿw™wŸ~™~¨hÔ7Ð7Ð7Ü*.Ø(¨(×*:Ñ*:¼2¿7¹7¿;¹;ÈÓ*Ló+˜ñ )¨¸(ÕCñ 4÷ +÷
ô 	�‰�V—_‘_Ó&Ô'ä˜4 §¡Ó0€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Ô,°Ø×!Ñ! *×"4Ñ"4Ó"6×"=Ñ"=¸gÓ"FÔG÷ -à×Ñ˜Ô)ñ ÜŸ™Ÿ™ m°[ÓAˆÜ�. $Õ'Ø÷ (à×Ñ˜Ô(à×(Ñ(¨Ó2€KÜ”s—z‘z +×"8Ñ"8Ó":Ó;Ó<€Kä%ØØØØØô€Dô —'‘'—,‘,˜}¨hÓ7€Ká	˜Ñ	:¤}°SÓ'9Ò	:¸kô —‘œD ¨KÓ8Ó9ˆØ×ÑÔ,¨TÓ2Ô3÷	 
;Ð	:÷s +Ñ*ú÷
ñ 
ú÷x 
(Ñ	'ú÷ -Ñ,ú÷ (Ñ'ú÷$ 
;Ð	:ús[   ÉX)É:XÊA(XÌX)Ñ0X6Ó	/YÔ?Y×:YØX&	Ø!X)Ø)X3Ø6Y ÙYÙYÙY&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Úer  s      r;   Úreq_error_contextr™  Ù  sE   è ø€ ð0ÜøÜò 0Ø˜oÐ.¨b°·±¸±°Ð<ˆÜ Ó(¨aÐ/ûð0üs   ‚;„	 ˆ;‰	8’!3³8¸;c                ó®   — t        |d¬«      5 }t        |«      5  t        | |||||||¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)NT)Ú
allowZip64)rx   rr  r  r2  rs  rt  ru  rv  )r   r™  r”  )	rx   r  r2  r—  rs  rt  ru  rv  Úzs	            r;   Úinstall_wheelr�  â  sU   € ô 
�¨Õ	-°Ü˜Õ/ÜØØØ%ØØ#Ø%9Ø%Ø#õ	÷ 0÷ 
.Ð	-ß/Ð/ú÷ 
.Ð	-ús   ŽAš?®A¿A	ÁAÁA)rç   )rK   r2   rL   Úintr?   ztuple[str, str])rS   r2   r?   zdict[str, Any])rK   r2   r?   r4   )rp   r	   r?   r4   )ry   r   r?   z%tuple[dict[str, str], dict[str, str]])rš   zSequence[str]r?   z
str | None)r®   zIterable[InstalledCSVRow]r?   zlist[tuple[str, str, str]])r«   r0   r±   r2   r?   r2   )rK   r2   r±   r2   r?   r0   )r¿   zlist[list[str]]rÀ   zdict[RecordPath, RecordPath]r5   zset[RecordPath]rÁ   r  r±   r2   r?   zlist[InstalledCSVRow])rÔ   zdict[str, str]r?   r  )r   r2   r  r2   r?   r@   )TTNF)rx   r2   rr  r   r  r2   r2  r"   rs  r4   rt  r4   ru  úDirectUrl | Nonerv  r4   r?   r@   )r—  r2   r?   zGenerator[None, None, None])rx   r2   r  r2   r2  r"   r—  r2   rs  r4   rt  r4   ru  rŸ  rv  r4   r?   r@   )iÚ__doc__Ú
__future__r   r‡   rb  r[  rm  rE  ÚloggingÚos.pathr[   rÑ   rì   r`   r  r_  Úbase64r   Úcollections.abcr   r   r   r   Úemail.messager	   Ú	itertoolsr
   r   r   Útypingr   r   r   r   r   r   r   r   Úzipfiler   r   Úpip._vendor.distlib.scriptsr   Úpip._vendor.distlib.utilr   Úpip._vendor.packaging.utilsr   Úpip._internal.exceptionsr   Ú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-   r/   Ú	getLoggerrA   r»   r2   r0   Útuplerž  ÚInstalledCSVRowrO   rV   rk   rq   r{   r¨   r¯   r²   r·   rÈ   rÛ   rÝ   rñ   r÷   r  r  r”  rj  r™  r�  r8   r=   r;   Ú<module>r¹     s…  ðÙ Lå "ã Û Û Û 
Û Û Û Û 	Û Û 
Û Û Ý $ß CÓ CÝ !ß 1Ñ 1÷	÷ 	ó 	÷ %å 3Ý 5Ý 9å 6Ý ;÷ñ ÷
 Pß ;ß Eß TÓ T÷ó õ 2ôˆ8ô ð 
ˆ×	Ñ	˜8Ó	$€á�\ 3Ó'€
Ø˜
 C¨¨s°C¨x©Ð8Ñ9€ô!ó>óó(Aó(óE ðPØ&ðàóó4.ó$ðØ!ðà+ðð ðð ð	ð
 ðð óó@H÷V#Oñ #O÷L	2ñ 	2ô
Ð-ô 
ó
ô(4�[ô 4ð2 Ø!%Ø#'Øð^4Ø
ð^4àð^4ð ð^4ð ð	^4ð
 ð^4ð ð^4ð !ð^4ð ð^4ð 
ó^4ðB	 ×Ñò0ó ð0ð Ø!%Ø#'ØðØ
ðàðð ðð ð	ð
 ðð ðð !ðð ðð 
ôr=   