
    fXfk                     .   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jO        eP          ZQ e deR          ZSe$eSeRe%eTeRf         f         ZUdLd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d0Z`d1eeReRf         deeR         fd2Za G d3 d4          Zb G d5 d6          Zc G d7 d8e1          Zdd9eRddfd:Ze G d; d<e+          Zf	 	 	 	 dMd?eRd@e(dAeRdBe=dCeXdDeXdEe!e:         dFeXddfdGZgejh        dHeRdedI         fdJ            Zi	 	 	 	 dMd?eRdAeRdBe=dHeRdCeXdDeXdEe!e:         dFeXddfdKZjdS )NzGSupport 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                   6    e Zd ZU ded<   eed<   eed<   ddZdS )	File
RecordPathsrc_record_path	dest_pathchangedreturnNc                     d S N selfs    _/var/www/html/Qu*py/bism/lib/python3.11/site-packages/pip/_internal/operations/install/wheel.pysavez	File.saveF   s    D    r9   N)__name__
__module____qualname____annotations__strboolr@   r<   rA   r?   r4   r4   A   sH         %%%%	 	 	 	 	 	rA   r4   r5      path	blocksizer9   c                     t          | |          \  }}dt          |                                                              d                              d          z   }|t          |          fS )z?Return (encoded_digest, length) for path using hashlib.sha256()zsha256=latin1=)r+   r   digestdecoderstriprG   )rJ   rK   hlengthrO   s        r?   rehashrT   P   s]    $	**IAv*188::66==hGGNNsSSSFCKK  rA   modec                     | dddS )zPReturn keyword arguments to properly open a CSV file
    in the given mode.
     utf-8)rU   newlineencodingr<   )rU   s    r?   csv_io_kwargsr[   W   s     RW===rA   c                 |   t           j                            |           sJ t          | d          5 }|                                }|                    d          s	 ddd           dS t          j                            t          j	                              }d|z   t           j
                            d          z   }|                                }ddd           n# 1 swxY w Y   t          | d          5 }|                    |           |                    |           ddd           n# 1 swxY w Y   dS )	zQReplace #!python with #!/path/to/python
    Return True if file was changed.
    rbs   #!pythonNFs   #!asciiwbT)osrJ   isfileopenreadline
startswithsys
executableencodegetfilesystemencodinglinesepreadwrite)rJ   script	firstlineexenamerests        r?   
fix_scriptrp   ^   s   
 7>>$	dD		 VOO%%	##K00 	        .''(A(C(CDDGObj&7&7&@&@@	{{}}               
dD		 VYT               4s*   +C*A)CC#&C#:+D11D58D5metadatac                 Z    |                      dd                                          dk    S )NzRoot-Is-PurelibrW   true)getlower)rq   s    r?   wheel_root_is_purelibrv   r   s(    <<)2..4466&@@rA   distc                     i }i }|                                  D ]7}|j        dk    r|j        ||j        <   |j        dk    r|j        ||j        <   8||fS )Nconsole_scriptsgui_scripts)iter_entry_pointsgroupvaluename)rw   ry   rz   entry_points       r?   get_entrypointsr   v   ss    OK--// > > 1110;0AOK,---//,7,=K()K''rA   scriptsc                    | sdS t          j        t                    }| D ][}t          j                            |          }t          j                            |          }||                             |           \d t          j        	                    dd          
                    t          j                  D                                 t          j                            t          j                            t          j                                       fd|                                D             }|sdS g }|                                D ]\  }}t#          |          }t%          |          dk    rd                    |d                   }	n<d	                    d
                    |dd                   dz   |d         z             }	|                    d                    |	|                     d}
t%          |          dk    r)|                    |
                    d                     n(|                    |
                    d                     t+          d t          j        	                    dd          
                    t          j                  D                       }|rd}|                    |           d                    |          S )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.
    Nc                     g | ]>}t           j                            |                              t           j                  ?S r<   )r`   rJ   normcaserQ   sep.0is     r?   
<listcomp>z5message_about_scripts_not_on_PATH.<locals>.<listcomp>   sH        	""26**  rA   PATHrW   c                 ^    i | ])\  }}t           j                            |          v&||*S r<   )r`   rJ   r   )r   
parent_dirr   not_warn_dirss      r?   
<dictcomp>z5message_about_scripts_not_on_PATH.<locals>.<dictcomp>   sD     % % %J7J''}<< 	G<<<rA      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   | ]}||d          dk    V  dS )r   ~Nr<   r   s     r?   	<genexpr>z4message_about_scripts_not_on_PATH.<locals>.<genexpr>   sC        Q	!     rA   ziNOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.
)collectionsdefaultdictsetr`   rJ   dirnamebasenameaddenvironrt   splitpathsepappendr   re   rf   itemssortedlenformatjoinany)r   grouped_by_dirdestfiler   script_namewarn_for	msg_linesdir_scriptssorted_scripts
start_textlast_line_fmtwarn_for_tildetilde_warning_msgr   s                @r?   !message_about_scripts_not_on_PATHr      s   
  t +6*A#*F*FN 4 4W__X..
g&&x00z"&&{3333 ++11"*==  M ))"'//#.*I*IJJKKK% % % %#1#7#7#9#9% % %H
  t I#+>>#3#3 
 

K$*;$7$7~!##'..~a/@AAJJ)00		."-..8>";MM J 	<CCJ 	
 	
 	
 	
	C  9~~--.>??@@@@--.ABBCCC   Z^^FB77==bjII    N  ,= 	 	*+++ 99YrA   outrowsc                 4    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   B   K   | ]\  }}}||t          |          fV  d S r;   )rG   )r   record_pathhash_sizes       r?   r   z&_normalized_outrows.<locals>.<genexpr>   sF        ,DKeSYY'     rA   )r   )r   s    r?   _normalized_outrowsr      s2    *   HO     rA   r   lib_dirc                 B    t           j                            ||           S r;   )r`   rJ   r   )r   r   s     r?   _record_to_fs_pathr      s    7<<---rA   c                    t           j                            |           d                                         t           j                            |          d                                         k    r t           j                            | |          } |                     t           j        j        d          } t          d|           S )Nr   /r5   )r`   rJ   
splitdriveru   relpathr(   r   r   )rJ   r   s     r?   _fs_to_record_pathr      s     
w$"((**bg.@.@.I.I!.L.R.R.T.TTTwtW--<<S))Dd###rA   old_csv_rows	installedr8   	generatedc                    g }| D ]}t          |          dk    rt                              d|           t          d|d                   }|                    ||          }||v r!t          t          ||                    \  }	}
n:t          |          dk    r|d         nd}	t          |          dk    r|d         nd}
|                    ||	|
f           |D ]<}t          ||          }t          |          \  }	}
|                    ||	|
f           =|	                                D ]}|                    |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   rW      )
r   loggerwarningr   poprT   r   r   r   values)r   r   r8   r   r   installed_rowsrowold_record_pathnew_record_pathrO   rS   frJ   installed_record_paths                 r?   get_csv_rows_for_installedr      sm    -/N 
A 
As88a<<NNI3OOO|SV44#--IIg%%#$6$P$PQQNFFF"3xx!||SVVF"3xx!||SVVF?@@@@ 6 6!!W--tVV45555!*!1!1!3!3 ? ?4b"=>>>>rA   consolec                 `   |                                  } g }|                     dd          }|rdt          j        vr|                    d|z              t          j                            dd          dk    r9|                    d                    t          j        d         |                     |                    dt                       d	|            d
 | D             }|D ]}| |= |                     dd          }|rodt          j        vr|                    d|z              |                    d                    t                      |                     d | D             }|D ]}| |= |
                    t          dj        |                                                      |S )zk
    Given the mapping from entrypoint name to callable, return the relevant
    console script specs.
    pipNENSUREPIP_OPTIONSzpip = rW   
altinstallz
pip{} = {}r   z = c                 <    g | ]}t          j        d |          |S )zpip(\d+(\.\d+)?)?$rematchr   ks     r?   r   z,get_console_script_specs.<locals>.<listcomp>H  s*    KKK1F(J(JK!KKKrA   easy_installzeasy_install = zeasy_install-{} = {}c                 <    g | ]}t          j        d |          |S )zeasy_install(-\d+\.\d+)?$r   r   s     r?   r   z,get_console_script_specs.<locals>.<listcomp>V  s:     
 
 
"(+G"K"K

 
 
rA   {} = {})copyr   r`   r   r   rt   r   re   version_infor   extendr   r   )r   scripts_to_generate
pip_scriptpip_epr   easy_install_scripteasy_install_eps          r?   get_console_script_specsr     s    llnnGF UD))J bj00&&x*'<===:>>-r22lBB&&##C$4Q$7DD   	""#S)@)B)B#S#Sz#S#STTTKKWKKK 	 	A

!++nd;; bj00&&'8;N'NOOO"""))'))+> 	
 	
 	

 

 
 
 ! 	 	A

 wy'7IIJJJrA   c                   :    e Zd ZdedededdfdZdefdZd	dZ	dS )
ZipBackedFiler6   r7   zip_filer9   Nc                 >    || _         || _        || _        d| _        d S NF)r6   r7   	_zip_filer8   )r>   r6   r7   r   s       r?   __init__zZipBackedFile.__init__c  s%      /"!rA   c                 @    | j                             | j                  S r;   )r   getinfor6   r=   s    r?   _getinfozZipBackedFile._getinfok  s    ~%%d&:;;;rA   c                 @   t           j                            | j                  }t	          |           t           j                            | j                  rt          j        | j                   |                                 }| j        	                    |          5 }t          | j        d          5 }t          j        ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          |          rt          | j                   d S d S )Nr_   )r`   rJ   r   r7   r*   existsunlinkr   r   rb   shutilcopyfileobjr0   r/   )r>   r   zipinfor   dests        r?   r@   zZipBackedFile.saven  st    W__T^44
: 7>>$.)) 	&Idn%%%--//^  )) 	,Qdnd++ ,t"1d+++, , , , , , , , , , , , , , ,	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, "'** 	O>t~NNNNN	O 	Os6   C.5CC.C	C.C	C..C25C2rB   )
rC   rD   rE   r5   rG   r   r   r   r   r@   r<   rA   r?   r   r   b  s}        )69EL	   <' < < < <O O O O O OrA   r   c                       e Zd ZddZddZdS )	
ScriptFilefiler4   r9   Nc                 f    || _         | j         j        | _        | j         j        | _        d| _        d S r   )_filer6   r7   r8   )r>   r   s     r?   r   zScriptFile.__init__  s-    
#z9-rA   c                 j    | j                                          t          | j                  | _        d S r;   )r   r@   rp   r7   r8   r=   s    r?   r@   zScriptFile.save  s)    
!$.11rA   )r   r4   r9   NrB   )rC   rD   rE   r   r@   r<   rA   r?   r   r     s<           2 2 2 2 2 2rA   r   c                   (     e Zd Zdeddf fdZ xZS )MissingCallableSuffixr   r9   Nc                 p    t                                          d                    |                     d S )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+..		
 	
 	
 	
 	
rA   )rC   rD   rE   rG   r   __classcell__r  s   @r?   r  r    sK        
C 
D 
 
 
 
 
 
 
 
 
 
rA   r  specificationc                 r    t          |           }|#|j        t          t          |                    d S d S r;   )r   suffixr  rG   )r  entrys     r?   _raise_for_invalid_entrypointr    s>    ]++EU\1#CJJ/// 11rA   c                   X     e Zd Z	 ddedeeeef                  dee         f fdZ xZ	S )PipScriptMakerNr  optionsr9   c                 f    t          |           t                                          ||          S r;   )r  r  make)r>   r  r  r  s      r?   r  zPipScriptMaker.make  s+     	&m444ww||M7333rA   r;   )
rC   rD   rE   rG   r   r   r
   r   r  r  r  s   @r?   r  r    sn        FJ4 4 4+3DcN+C4	c4 4 4 4 4 4 4 4 4 4rA   r  TFr~   	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
                   |                                          }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 ]2}|                                  ||j        |j        |j                   3dt6          t          ddf         f=>fd}dt          dt          fd} |r#t9                      5 }!t;          j                    5  t;          j        d            |            D ]}"tA          j!        |"dd          }#|#rk | |"          }$tD          j#        $                    |$          sJ t          d|$%                    tD          j#        j&        d                    }% ||%|$           	 ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   tN          (                    |!)                                           tU          d|j+                  }&d|&_,        dh|&_-        d|&_.        t_          :          }'ta          tc          dj2        <3                                                    }(|&4                    |'          })|
5                    |)           |
5                    |&4                    |(d di                     |r+tm          |)          }*|*tN          7                    |*           d!tq                       z  ;tr          j:        dt          d"tv          dt6          tx          ddf         f;fd#            }+tD          j#        =                    >|          },tD          j#        =                    |,d$          }- |+|-          5 }.|.>                    d%           ddd           n# 1 swxY w Y   |
?                    |-           |tD          j#        =                    |,t                    }/ |+|/          5 }0|0>                    |A                                B                    d&                     ddd           n# 1 swxY w Y   |
?                    |/           |r^tD          j#        =                    |,d'          }1t          |1d(          5  	 ddd           n# 1 swxY w Y   |
?                    |1           |D                    d)          }2ta          t          jF        |2G                                                    }3t          |3=9|
>*          }4tD          j#        =                    |,d)          }5 |+|5fi t          d+          5 }6t          jJ        t          d,|6                    }7|7K                    t          |4                     ddd           dS # 1 swxY w Y   dS ).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
    Fsrcfiler   modifiedr9   Nc                 d    t          |          }|| <   |r                    |           dS dS )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  sH     %Xw77$	' 	!KK     	! 	!rA   rJ   c                 ,    |                      d          S )Nr   )endswithrJ   s    r?   is_dir_pathz#_install_wheel.<locals>.is_dir_path  s    }}S!!!rA   dest_dir_pathtarget_pathc                 t    t          | |          s&d}t          |                    ||                     d S )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  sP    "=+>> 	5  $z;FF  	 	rA   r   r   r4   c                 .     dt           ddf fd}|S )Nr   r9   r4   c                     t           j                            |           }t           j                            |          } |           t	          | |          S r;   )r`   rJ   normpathr   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  sR    '**;77KT;77I$$T9555 iBBBrA   )r5   )r   r   r+  r&  s   `` r?   root_scheme_file_makerz._install_wheel.<locals>.root_scheme_file_maker  sM    	Cz 	Cf 	C 	C 	C 	C 	C 	C 	C 	C %$rA   r  c                 X     fdt           D             dt          ddf fd}|S )Nc                 2    i | ]}|t          |          S r<   )getattr)r   keyr  s     r?   r   zB_install_wheel.<locals>.data_scheme_file_maker.<locals>.<dictcomp>  s%    IIIcWVS11IIIrA   r   r9   r4   c                 :   t           j                            |           }	 |                    t           j        j        d          \  }}}n3# t
          $ r& d                    |           }t          |          w xY w	 
|         }nW# t          $ rJ d	                    t          
                    }d                    || |          }t          |          w xY wt           j        	                    ||          } 	||           t          | |          S )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`   rJ   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  s6   '**;77K1.9.?.?Q.O.O+:|| 1 1 1D&[11  (0001	1*:6 1 1 1$(IIf\.B.B$C$C!4 &Z>OPP	 
 (0001 [,??I$$[)<<< iBBBs   )A 0A< B	 	AC)r%   r5   )r   r  r:  r9  r&  r  s   `` @r?   data_scheme_file_makerz._install_wheel.<locals>.data_scheme_file_maker  sp     JIII[III	Cz 	Cf 	C 	C 	C 	C 	C 	C 	C 	C 	C4 %$rA   c                 `    |                      dd          d                             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66rA   c                     |                      dd          }t          |          dk    o&|d                             d          o|d         dk    S )Nr   r   r   r=  r   r   )r   r   r  )rJ   partss     r?   is_script_scheme_pathz-_install_wheel.<locals>.is_script_scheme_path"  sJ    

3""5zzA~V%("3"3G"<"<VqYAVVrA   r   c                    | j         }t          j                            |          }|                                                    d          r|d d         }nf|                                                    d          r|d d         }n4|                                                    d          r|d d         }n|}|v p|v S )Nz.exez
-script.pyiz.pya)r7   r`   rJ   r   ru   r  )r   rJ   r~   	matchnamer   guis       r?   is_entrypoint_wrapperz-_install_wheel.<locals>.is_entrypoint_wrapper5  s     ~w%%::<<  (( 	SbS	IIZZ\\""<00 	TcT
IIZZ\\""6** 	SbS	IIIG#7yC'77rA   c               3   "  K   t          t                                                              D ]\} t          j                            |           }t          j                            |          sB|                    d          sX|V  ]d S )Nz.py)r   r   r   r`   rJ   r   ra   r  )installed_pathfull_installed_pathr   r   s     r?   pyc_source_file_pathsz-_install_wheel.<locals>.pyc_source_file_pathsP  s      
 %S)9)9););%<%<== 	& 	&N"$',,w"G"G7>>"566 &//66 %%%%%	& 	&rA   c                 @    t           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55rA   ignoreT)forcequietr5   r   rW   r   rE  i  kwargsc              ;      K   t          | fi |5 }|V  d d d            n# 1 swxY w Y   t          j        |j                   t	          |j        |            d S r;   )r'   r`   chmodr~   r(   )rJ   rS  r   generated_file_modes      r?   _generate_filez&_install_wheel.<locals>._generate_file  s      t..v.. 	!GGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
,---s   "&&	INSTALLERs   pip
rX   	REQUESTEDr_   RECORD)r   r8   r   r   wzIO[str])F)Mr1   rv   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`   rJ   r   r(   r   r   debuggetvaluer  r   clobbervariantsset_moder   listr   r   r   make_multipler   r   r   r-   
contextlibcontextmanagerr
   r   r   rk   r   r#   to_jsonrg   rb   	read_textcsvreader
splitlinesr   r[   writer	writerowsr   )?r~   r  r  r  r  r  r  r  info_dirrq   r   r  r!  r,  r;  r>  paths
file_pathsroot_scheme_pathsdata_scheme_pathsr+  filesrA  other_scheme_pathsscript_scheme_pathsr:  other_scheme_filesdistributionrF  script_scheme_filesr   rJ  rO  stdoutrJ   successpyc_pathpyc_record_pathmakerr   gui_scripts_to_generategenerated_console_scriptsmsgrW  dest_info_dirinstaller_pathinstaller_filedirect_url_pathdirect_url_filerequested_pathrecord_textrecord_rowsrowsr   record_filers  r&  r8   r   rV  rE  r   r   s?     `                                                     @@@@@@@r?   _install_wheelr    s/
   2 %Y55HhX&& !.. /1I"uuGI >C! !!'*!6:!	! ! ! ! ! ! ! !"* " " " " " # $      	%	%!$	%	:,&	'	% 	% 	% 	% 	% 	%%%#)%	:,&	'% % % % % % %B7* 7 7 7 7 7 j!9#5#5#7#788E[%00J+45H*+U+U((229gFF 57HIIEWJ W4 W W W W /80/ /++ 329fEE24FGG%+,,E *
##$ L #<00LGS8F 8t 8 8 8 8 8 8 8  +.2+ + &&;=PQQj*=>>%,--E M M		-t~t|LLLL&9S$_#= & & & & & & &6c 6c 6 6 6 6
  ( 	D&(** 
D 
D'1111133 D DD(5d$dSSSG D#2?4#8#8!w~~h77777*.((*:*:27;*L*L+ + )((CCCD
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	V__&&'''400E EM
 TEN
 EN 37;;"79+;SYY[[#I#IJJ % 3 34G H H.///U(()@5$-PPQQQ  /0IJJ?NN3=??"22S C Ihd>R4S       GLL(33M W\\-==N		'	' '>X&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '^$$$ ',,}6NOO^O,, 	H!!*"4"4"6"6"="=g"F"FGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H)))  )m[AA.$'' 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	(((((22Ksz+"8"8":":;;<<K%  D ',,}h77K		:	:}S'9'9	:	: 4k DK8899,T22333	4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   NB&N<NN	NN	NN#&N#V  VV;XX X+Y99Y= Y=+A]==^^req_description)NNNc              #      K   	 d V  d S # t           $ r6}d                    | |j        d                   }t          |          |d }~ww xY w)NzFor req: {}. {}r   )r   r   args)r  er%  s      r?   req_error_contextr    sb      0 0 0 0#**?AF1IFF((a/0s   
 
A
1AA
c                     t          |d          5 }t          |          5  t          | |||||||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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    s
    
	-	-	- // 
	 
	%#%9%#	 	 	 	
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	                 s3   AAAA
	
AA
	AA"%A")rI   )TTNF)k__doc__r   rc  rl  rp  rL  loggingos.pathr`   r   r   re   r`  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InstalledCSVRowrT   r[   rH   rp   rv   r   r   r   r   r   r   r   r   r   r  r  r  r  rm  r  r  r<   rA   r?   <module>r     s                



       				  



  $ $ $ $ $ $ ! ! ! ! ! ! 1 1 1 1 1 1 1 1 1 1                                     & % $ $ $ $ $ $ $ 3 3 3 3 3 3 5 5 5 5 5 5 9 9 9 9 9 9 6 6 6 6 6 6 ; ; ; ; ; ;         
 P O O O O O O O ; ; ; ; ; ; ; ; E E E E E E E E V V V V V V V V V V V V            2 1 1 1 1 1 	    x    
	8	$	$W\3''

CsCx89! ! ! !5c? ! ! ! !> >S#X > > > >S T    (AG A A A A A(* (uT#s(^T#s(^5S/T ( ( ( (E x} E # E  E  E  E Po&	%S#
   4.J . . . . . .$S $3 $: $ $ $ $tCy/J
*+ _ Cy	
  
/   @Nd38n Nc N N N Nb%O %O %O %O %O %O %O %OP	2 	2 	2 	2 	2 	2 	2 	2
 
 
 
 
- 
 
 
0 0 0 0 0 04 4 4 4 4[ 4 4 4 !%&*S4 S4
S4S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 0 0 !%&* 
  	
   #  
     rA   