
    *,hSk                        d 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 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mZ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l0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6m7Z7 ddl8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z?m@Z@ ddlAmBZBmCZCmDZDmEZE ddlFmGZGmHZHmIZImJZJ ddlKmLZL erddlmMZM  G d deM      ZN ej                  eP      ZQ e deR      ZSe$eSeRe%eTeRf   f   ZUdIdeRdeTde$eReRf   fdZVdeRdeeRef   fdZWdeRdeXfdZYdedeXfd ZZd!e5de$eeReRf   eeReRf   f   fd"Z[d#e"eR   de!eR   fd$Z\d%eeU   dee$eReReRf      fd&Z]d'eSd(eRdeRfd)Z^deRd(eRdeSfd*Z_d+eeeR      d,eeSeSf   d-e#eS   d.eeR   d(eRdeeU   fd/Z`d0eeReRf   deeR   fd1Za G d2 d3      Zb G d4 d5      Zc G d6 d7e1      Zdd8eRddfd9Ze G d: d;e+      Zf	 	 	 	 dJd<eRd=e(d>eRd?e=d@eXdAeXdBe!e:   dCeXddfdDZgej                  dEeRdedF   fdG       Zi	 	 	 	 dJd<eRd>eRd?e=dEeRd@eXdAeXdBe!e:   dCeXddfdHZjy)KzGSupport for installing and building the "wheel" binary package format.
    N)urlsafe_b64encode)Message)chainfilterfalsestarmap)IOTYPE_CHECKINGAnyBinaryIOCallableDict	GeneratorIterableIteratorListNewTypeOptionalSequenceSetTuple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)captured_stdout
ensure_dir	hash_file	partition)current_umaskis_within_directory2set_extracted_file_to_default_mode_plus_executablezip_item_is_executable)parse_wheel)Protocolc                   4    e Zd ZU ded<   eed<   eed<   ddZy)File
RecordPathsrc_record_path	dest_pathchangedNc                      y N selfs    h/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.pysavez	File.saveF   s        returnN)__name__
__module____qualname____annotations__strboolr?   r;   r@   r>   r4   r4   A   s    %%	r@   r4   r5   path	blocksizerB   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rstriprG   )rI   rJ   hlengthrN   s        r>   rehashrS   P   sM    $	*IAv*188:6==hGNNsSSFCK  r@   modec                     | dddS )zPReturn keyword arguments to properly open a CSV file
    in the given mode.
     utf-8)rT   newlineencodingr;   )rT   s    r>   csv_io_kwargsrZ   W   s     RW==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)osrI   isfileopenreadline
startswithsys
executableencodegetfilesystemencodinglinesepreadwrite)rI   script	firstlineexenamerests        r>   
fix_scriptro   ^   s    
 77>>$	dD	 VOO%	##K0  ..''(A(A(CDGObjj&7&7&@@	{{} 
dD	 VYT   s   #D A&D #D D	Dmetadatac                 H    | j                  dd      j                         dk(  S )NzRoot-Is-PurelibrV   true)getlower)rp   s    r>   wheel_root_is_purelibru   r   s"    <<)2.446&@@r@   distc                     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)rv   rx   ry   entry_points       r>   get_entrypointsr   v   sz    OK--/ > 110;0A0AOK,,--/,7,=,=K(()	>
 K''r@   scriptsc           	         | 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 ]  \  }}	t)        |	      }
t+        |
      dk(  rdj-                  |
d         }n,dj-                  dj/                  |
dd	       d
z   |
d	   z         }|j!                  dj-                  ||              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 )zDetermine 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PATHrV      zscript {} isr   zscripts {} are, z and z.The {} installed in '{}' 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      Q!s   ziNOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.
)collectionsdefaultdictsetr_   rI   dirnamebasenameaddenvironrs   splitpathsepnormcasenormpathrP   sepappendrd   re   itemssortedlenformatjoinany)r   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      s   
  +6*A*A#*FN 4WW__X.
gg&&x0z"&&{34 +11"**= 	))!,-44RVV<M  
))"''//#..*IJK
 $2#7#7#9%J77BGG,,Z89N 	G%H %
  I#+>>#3 

K$*;$7~!#'..~a/@AJ)00		."-.8>";MMJ 	<CCJ	

 	C  9~--.>?@--.ABC  ZZ^^FB7==bjjI N = 	 	*+ 99Yo%s   5A M
 AMoutrowsc                 &    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r:   )rG   )r   record_pathhash_sizes       r>   r   z&_normalized_outrows.<locals>.<genexpr>   s&      ,DKeSY's   )r   )r   s    r>   _normalized_outrowsr      s    *  HO  r@   r   lib_dirc                 B    t         j                  j                  ||       S r:   )r_   rI   r   )r   r   s     r>   _record_to_fs_pathr      s    77<<--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   /r5   )r_   rI   
splitdrivert   relpathr(   r   r   )rI   r   s     r>   _fs_to_record_pathr      s     
ww$"((*bgg.@.@.I!.L.R.R.TTwwtW-<<S)Dd##r@   old_csv_rows	installedr8   	generatedc                    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 ]  }|j                  |ddf        |S )z_
    :param installed: A map from archive RECORD path to installation RECORD
        path.
       z,RECORD line has more than three elements: %sr5   r   r   rV      )
r   loggerwarningr   poprS   r   r   r   values)r   r   r8   r   r   installed_rowsrowold_record_pathnew_record_pathrN   rR   frI   installed_record_paths                 r>   get_csv_rows_for_installedr      s'    -/N 
As8a<NNI3O|SV4#--Ig%#$6$PQNFF"3x!|SVF"3x!|SVF?@
A  6!!W-tVV456 "+!1!1!3 ?4b"=>?r@   consolec                    | j                         } g }| j                  dd      }|rdt        j                  vr|j	                  d|z          t        j                  j                  dd      dk7  r2|j	                  dj                  t        j                  d   |             |j	                  dt                d	|        | D cg c]  }t        j                  d
|      s| }}|D ]  }| |=  | j                  dd      }|rdt        j                  vr|j	                  d|z          |j	                  dj                  t               |             | 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 = rV   
altinstallz
pip{} = {}r   z = zpip(\d+(\.\d+)?)?$easy_installzeasy_install = zeasy_install-{} = {}zeasy_install(-\d+\.\d+)?${} = {})copyr   r_   r   r   rs   r   rd   version_infor   rematchextendr   r   )r   scripts_to_generate
pip_scriptkpip_epeasy_install_scripteasy_install_eps          r>   get_console_script_specsr     s    llnGF UD)Jbjj0&&x*'<=::>>-r2lB&&##C$4$4Q$7D 	""S)@)B(C3zl#ST$K1F(J!KK 	A
	!++nd;bjj0&&'8;N'NO"""))')+>	
 
"((+G"KA
 
 ! 	A
	 wy'7'7IJ/ L
s   F9!F9F>4F>c                   8    e Zd ZdedededdfdZdefdZd	dZ	y)
ZipBackedFiler6   r7   zip_filerB   Nc                 <    || _         || _        || _        d| _        y NF)r6   r7   	_zip_filer8   )r=   r6   r7   r   s       r>   __init__zZipBackedFile.__init__e  s!      /"!r@   c                 L    | j                   j                  | j                        S r:   )r   getinfor6   r<   s    r>   _getinfozZipBackedFile._getinfom  s    ~~%%d&:&:;;r@   c                 @   t         j                  j                  | j                        }t	        |       t         j                  j                  | j                        rt        j                  | j                         | j                         }| j                  j                  |      5 }t        | j                  d      5 }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^   )r_   rI   r   r7   r*   existsunlinkr   r   ra   shutilcopyfileobjr0   r/   )r=   r   zipinfor   dests        r>   r?   zZipBackedFile.savep  s     WW__T^^4
: 77>>$..)IIdnn%--/^^  ) 	,Qdnnd+ ,t""1d+,	, "'*>t~~N +, ,	, 	,s$   (D?DDD	DDrA   )
rC   rD   rE   r5   rG   r   r   r   r   r?   r;   r@   r>   r   r   d  s9    )69EL	<' <Or@   r   c                       e Zd ZddZddZy)
ScriptFileNc                     || _         | j                   j                  | _        | j                   j                  | _        d| _        y r   )_filer6   r7   r8   )r=   files     r>   r   zScriptFile.__init__  s3    
#zz99--r@   c                 l    | j                   j                          t        | j                        | _        y r:   )r   r?   ro   r7   r8   r<   s    r>   r?   zScriptFile.save  s     

!$..1r@   )r   r4   rB   NrA   )rC   rD   rE   r   r?   r;   r@   r>   r   r     s    2r@   r   c                   (     e Zd Zdeddf fdZ xZS )MissingCallableSuffixr~   rB   Nc                 B    t         |   dj                  |             y )NzInvalid script entry point: {} - A callable suffix is required. Cf https://packaging.python.org/specifications/entry-points/#use-for-scripts for more information.)superr   r   )r=   r~   	__class__s     r>   r   zMissingCallableSuffix.__init__  s!     "6+.		
r@   )rC   rD   rE   rG   r   __classcell__r   s   @r>   r   r     s    
C 
D 
 
r@   r   specificationc                 `    t        |       }|!|j                  t        t        |            y y r:   )r   suffixr   rG   )r   entrys     r>   _raise_for_invalid_entrypointr    s2    ]+EU\\1#CJ// 2r@   c                   F     e Zd Z	 ddedeeeef      dee   f fdZ xZ	S )PipScriptMakerr   optionsrB   c                 :    t        |       t        | 	  ||      S r:   )r  r   make)r=   r   r  r   s      r>   r  zPipScriptMaker.make  s     	&m4w|M733r@   r:   )
rC   rD   rE   rG   r   r   r
   r   r  r   r   s   @r>   r  r    s9    FJ4 4+3DcN+C4	c4 4r@   r  r}   	wheel_zip
wheel_pathscheme	pycompilewarn_script_location
direct_url	requestedc           
      (  89:;<=> t        ||       \  }}	t        |	      r|j                  >n|j                  >i =t	               9g }
	 d,dt
        dt        dt        ddf9=>fd}dt
        dt        fd}d	t        d
t        ddffd8dt        dt        dt        t
        gdf   f8fd}dt        dt        dt        t
        gdf   f8fd}dt
        dt        fd}t        t        t
           |j                               }t        ||      }t        ||      \  }} ||>      }t!        ||      }dt
        dt        fd}t        ||      \  }} |||      }t!        ||      }t#        ||      }t%        t'              t)        |             }t+        |      \  :<dddt        f:<fd}t!        ||      }t        ||      }t!        t,        |      }t#        ||      }|D ]:  }|j/                           ||j0                  |j2                  |j4                         < dt6        t        ddf   f=>fd}dt        dt        fd} |rt9               5 }!t;        j<                         5  t;        j>                  d        |       D ]  }"tA        jB                  |"dd      }#|#s | |"      }$tD        jF                  jI                  |$      sJ t        d|$jK                  tD        jF                  jL                  d            }% ||%|$        	 ddd       ddd       tN        jQ                  !jS                                tU        d|jV                        }&d|&_,        dh|&_-        d|&_.        t_        :      }'ta        tc        djd                  <jg                                     }(|&ji                  |'      })|
jk                  |)       |
jk                  |&ji                  |(ddi             |r"tm        |)      }*|*tN        jo                  |*       d tq                z  ;tr        jt                  dt        d!tv        dt6        tx        ddf   f;fd"       }+tD        jF                  j{                  >|      },tD        jF                  j{                  |,d#      }- |+|-      5 }.|.j}                  d$       ddd       |
j                  |-       |ttD        jF                  j{                  |,t              }/ |+|/      5 }0|0j}                  |j                         j                  d%             ddd       |
j                  |/       |rGtD        jF                  j{                  |,d&      }1t        |1d'      5  	 ddd       |
j                  |1       |j                  d(      }2ta        t        j                  |2j                                     }3t        |3=9|
>)      }4tD        jF                  j{                  |,d(      }5 |+|5fi t        d*      5 }6t        j                  t        d+|6            }7|7j                  t        |4             ddd       y# 1 sw Y   9x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
    srcfiler   modifiedrB   Nc                 P    t        |      }|| <   |rj                  |       yy)z6Map archive RECORD paths to installation RECORD paths.N)r   r   )r  r   r  newpathr8   r   r   s       r>   record_installedz(_install_wheel.<locals>.record_installed  s/     %Xw7$	'KK  r@   rI   c                 $    | j                  d      S )Nr   )endswithrI   s    r>   is_dir_pathz#_install_wheel.<locals>.is_dir_path  s    }}S!!r@   dest_dir_pathtarget_pathc                 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   )r  r  messager	  s      r>   assert_no_path_traversalz0_install_wheel.<locals>.assert_no_path_traversal  s;    "=+>5  $z;F  ?r@   r   r   r4   c                 ,     dt         ddf fd}|S )Nr   rB   r4   c                     t         j                  j                  |       }t         j                  j                  |      } |       t	        | |      S r:   )r_   rI   r   r   r   )r   normed_pathr7   r  r   r   s      r>   make_root_scheme_filezM_install_wheel.<locals>.root_scheme_file_maker.<locals>.make_root_scheme_file  sD    ''**;7KT;7I$T95 iBBr@   )r5   )r   r   r!  r  s   `` r>   root_scheme_file_makerz._install_wheel.<locals>.root_scheme_file_maker  s!    	Cz 	Cf 	C %$r@   r
  c                 v     t         D ci c]  }|t        ||       c}dt        ddf fd}|S c c}w )Nr   rB   r4   c                    t         j                  j                  |       }	 |j                  t         j                  j                  d      \  }}}	 
|   }t         j                  j                  ||      } 	||       t        | |      S # t
        $ r dj                  |       }t        |      w xY w# t        $ r: dj                  t        
            }dj                  || |      }t        |      w xY w)Nr   zbUnexpected file in {}: {!r}. .data directory contents should be named like: '<scheme key>/<path>'.r   zUnknown scheme key used in {}: {} (for file {!r}). .data directory contents should be in subdirectories named with a valid scheme key ({}))r_   rI   r   r   r   
ValueErrorr   r   KeyErrorr   r   r   )r   r   _
scheme_keydest_subpathr  scheme_pathvalid_scheme_keysr7   r  scheme_pathsr	  r   s            r>   make_data_scheme_filezM_install_wheel.<locals>.data_scheme_file_maker.<locals>.make_data_scheme_file  s    ''**;7K1.9.?.?Q.O+:|	1*:6 [,?I$[)< iBB)  1D&[1  (001  1$(IIf\.B$C!4 &Z>OP	 
 (001s   .B B6 'B36AC9)r%   getattrr5   )r   r
  keyr-  r,  r  r	  s   `   @r>   data_scheme_file_makerz._install_wheel.<locals>.data_scheme_file_maker  sL     >IIcWVS11I	Cz 	Cf 	C 	C4 %$9 Js   6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#    zz#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   r2  r   r   )r   r   r  )rI   partss     r>   is_script_scheme_pathz-_install_wheel.<locals>.is_script_scheme_path$  sB    

3"5zA~V%("3"3G"<VqYAVVr@   r   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.exez
-script.pyiz.pya)r7   r_   rI   r   rt   r  )r   rI   r}   	matchnamer   guis       r>   is_entrypoint_wrapperz-_install_wheel.<locals>.is_entrypoint_wrapper7  s     ~~ww%::<  (Sb	IZZ\""<0Tc
IZZ\""6*Sb	IIG#7yC'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_   rI   r   r`   r  )installed_pathfull_installed_pathr   r   s     r>   pyc_source_file_pathsz-_install_wheel.<locals>.pyc_source_file_pathsR  sk     
 %S)9)9);%<= 	&N"$'',,w"G77>>"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@   ignoreT)forcequietr5   r   rV   r   r:  i  kwargsc              ;      K   t        | fi |5 }| d d d        t        j                  j                         t	        |j                  |        y # 1 sw Y   @xY wwr:   )r'   r_   chmodr}   r(   )rI   rH  r   generated_file_modes      r>   _generate_filez&_install_wheel.<locals>._generate_file  sP     t.v. 	!G	
,-	 	s   A A?A AA 	INSTALLERs   pip
rW   	REQUESTEDr^   RECORD)r   r8   r   r   wzIO[str])F)Mr1   ru   purelibplatlibr   r5   rG   rH   r   r   r&   r   r   namelistr   r,   mapr   r"   r!   r   r   r   r?   r6   r7   r8   r   r)   warningscatch_warningsfilterwarnings
compileallcompile_filer_   rI   r   r(   r   r   debuggetvaluer  r   clobbervariantsset_moder   listr   r   r   make_multipler   r   r   r-   
contextlibcontextmanagerr
   r   r   rj   r   r#   to_jsonrf   ra   	read_textcsvreader
splitlinesr   rZ   writer	writerowsr   )?r}   r  r	  r
  r  r  r  r  info_dirrp   r   r  r  r"  r0  r3  paths
file_pathsroot_scheme_pathsdata_scheme_pathsr!  filesr6  other_scheme_pathsscript_scheme_pathsr-  other_scheme_filesdistributionr;  script_scheme_filesr   r?  rD  stdoutrI   successpyc_pathpyc_record_pathmakerr   gui_scripts_to_generategenerated_console_scriptsmsgrL  dest_info_dirinstaller_pathinstaller_filedirect_url_pathdirect_url_filerequested_pathrecord_textrecord_rowsrowsr   record_filerh  r  r8   r   rK  r:  r   r   s?     `                                                     @@@@@@@r>   _install_wheelr    sK   2 %Y5HhX&.... /1I"uGI >C!!'*!6:!	!"* " " # $ 	%	%!$	%	:,&	'	%%%#)%	:,&	'%B7* 7 7 j!9#5#5#78E[%0J+45H*+U((29gF 57HIEWJ W4 W /80/++ 39fE24FG%+,E *
#$L #<0LGS8F 8t 8  +.2+ &&;=PQj*=>%,-E M		--t~~t||LM&9S$_#= &6c 6c 6
  	D&((* 
D''113 DD(55d$dSG#24#8!ww~~h77*.((*:*:277;;*L+ )(CD
D	D 	V__&'40E EM
 TEN
 EN 37;"79+;+;SYY[#IJ % 3 34G H./U(()@5$-PQ/0IJ?NN3=?"22S C Ihd>R4S   GGLL(3M WW\\-=N		' '>X&'^$ '',,}6NOO, 	H!!*"4"4"6"="=g"FG	H) m[A.$' 		(((2Kszz+"8"8":;<K%D '',,}h7K		:}S'9	: 4k DK89,T23	4 4s
D 
D	D 	Dt' '	H 	H	 	$4 4s[   Y,:Y'A(YYY!4/Y.*Y;:ZY	YY!Y+.Y8;ZZreq_description)NNNc              #      K   	 d  y # t         $ r0}dj                  | |j                  d         }t        |      |d }~ww xY ww)NzFor req: {}. {}r   )r   r   args)r  er  s      r>   req_error_contextr    sD     0 0#**?AFF1IF(a/0s"   A	 A	A+=AA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)r}   r  r	  r
  r  r  r  r  )r   r  r  )	r}   r	  r
  r  r  r  r  r  zs	            r>   install_wheelr    sg     
	- / 
	%#%9%#	
	 
	 
	 s   A?AA	AA)i   )TTNF)k__doc__r   rX  ra  re  rA  loggingos.pathr_   r   r   rd   rU  base64r   email.messager   	itertoolsr   r   r   typingr   r	   r
   r   r   r   r   r   r   r   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/   r0   pip._internal.utils.wheelr1   r2   r4   	getLoggerrC   r   rG   r5   intInstalledCSVRowrS   rZ   rH   ro   ru   r   r   r   r   r   r   r   r   r   r   r  r  r  rb  r  r  r;   r@   r>   <module>r     s      
    	  
  $ ! 1 1    & % 3 5 9 6 ; 
 P ; E V V  2x  
		8	$\3'

CsCx89! ! !5c? !> >S#X >S T (AG A A(* (uT#s(^T#s(^5S/T (G x} G # G To&	%S#
4.J . . .$S $3 $: $tCy/J
*+ _ Cy	
  
/@Nd38n Nc Nb%O %OP	2 	2
- 
0 0 04[ 4 !%&*S4
S4S4 S4 	S4
 S4 S4 #S4 S4 
S4l 0s 0y9I/J 0 0 !%&*
  	
   #  
r@   