§
    
Á³gÖ ã                   ó  — d dl Z d dlmZ d dlZd dl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n# e$ r dZY nw xY wd dlZd dlZd dlZd dlZd dlZ	 d dlZn# e$ r d dlZY nw xY wd dlZddl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,m-Z-m.Z.m/Z/m0Z0  e
j1        e2¦  «        Z3 ej4        d¦  «        Z5 ej4        d¦  «        Z6 ej4        d	¦  «        Z7 ej4        d
¦  «        Z8 ej4        d¦  «        Z9 ej4        d¦  «        Z: ej4        d¦  «        Z; ej4        d¦  «        Z<d„ Z=d„ Z>d„ Z?d„ Z@d„ ZAdkd„ZBd„ ZCd„ ZDd„ ZEejF        d„ ¦   «         ZGejF        d„ ¦   «         ZHejF        dld„¦   «         ZI G d„ deJ¦  «        ZKd„ ZL G d„ d eJ¦  «        ZMd!„ ZN G d"„ d#eJ¦  «        ZO ej4        d$ejP        ¦  «        ZQd%„ ZRdmd&„ZSd'„ ZTd(„ ZUd)„ ZVd*„ ZWd+„ ZX ej4        d,ejY        ¦  «        ZZ ej4        d-¦  «        Z[dmd.„Z\ ej4        d/¦  «        Z]d0„ Z^d1„ Z_d2„ Z`d3Zad4„ Zbd5„ Zc G d6„ d7eJ¦  «        Zd G d8„ d9eJ¦  «        Ze G d:„ d;eJ¦  «        Zfd<Zgdnd>„Zhd?„ Zid@Zj G dA„ dBeJ¦  «        Zk ej4        dC¦  «        Zl ej4        dD¦  «        Zm ej4        dE¦  «        ZndF„ ZdG„ Zoer:ddHlmpZqmrZrmsZs  G dI„ dJe$jt        ¦  «        Zt G dK„ dLeq¦  «        Zp G dM„ dNepe'¦  «        Zu G dO„ dPe%jv        ¦  «        Zver G dQ„ dRe%jw        ¦  «        Zw G dS„ dTe%jx        ¦  «        ZxdU„ Zy G dV„ dWeJ¦  «        Zz G dX„ dYez¦  «        Z{ G dZ„ d[ez¦  «        Z| G d\„ d]e(¦  «        Z} G d^„ d_eJ¦  «        Z~d`„ Z G da„ dbeJ¦  «        Z€dc„ Z�dd„ Z‚de„ ZƒdfdgdhdiœZ„dj„ Z…dS )oé    N)Údeque)Úiglobé   )ÚDistlibException)Ústring_typesÚ	text_typeÚshutilÚ	raw_inputÚStringIOÚcache_from_sourceÚurlopenÚurljoinÚhttplibÚ	xmlrpclibÚ	splittypeÚHTTPHandlerÚBaseConfiguratorÚvalid_identÚ	ContainerÚconfigparserÚURLErrorÚZipFileÚfsdecodeÚunquoteÚurlparsez^([\w\.-]+)\s*z^([\w\.*+-]+)\s*z^(<=?|>=?|={2,3}|[~!]=)\s*z*^((<=?)|(>=?)|={2,3}|[~!]=|in|not\s+in)\s*z^or\b\s*z	^and\b\s*z(\S+)\s*z(([\s\w\.{}()*+#:;,/?!~`@$%^&=|<>\[\]-]+)c                 óF   ‡‡‡‡— d„ Šˆˆfd„Šˆfd„Šˆfd„Š ‰| ¦  «        S )ae  
    Parse a marker string and return a dictionary containing a marker expression.

    The dictionary will contain keys "op", "lhs" and "rhs" for non-terminals in
    the expression grammar, or strings. A string contained in quotes is to be
    interpreted as a literal string, and a string not contained in quotes is a
    variable (such as os_name).
    c                 ó˜  — t                                | ¦  «        }|r8|                     ¦   «         d         }| |                     ¦   «         d …         } �ns| st	          d¦  «        ‚| d         }|dvrt	          d| z  ¦  «        ‚d                     |d¦  «        }| dd …         } |g}| r²| d         |k    rnÌ| d         |k    r |                     |¦  «         | dd …         } nwt                               | ¦  «        }|st	          d| z  ¦  «        ‚|                     |                     ¦   «         d         ¦  «         | |                     ¦   «         d …         } | °²d                     |¦  «        }t	          d|z  ¦  «        ‚|                     |¦  «         d                     |¦  «        }| dd …          	                    ¦   «         } || fS )	Nr   zunexpected end of inputz'"zinvalid expression: %sÚ r   zerror in string literal: %szunterminated string: %s)
Ú
IDENTIFIERÚmatchÚgroupsÚendÚSyntaxErrorÚreplaceÚappendÚSTRING_CHUNKÚjoinÚlstrip)Ú	remainingÚmÚresultÚqÚoqÚpartsÚss          úV/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pip/_vendor/distlib/util.pyÚ
marker_varz parse_marker.<locals>.marker_varA   sË  € å×Ò˜YÑ'Ô'ˆØð 	/Ø—X’X‘Z”Z ”]ˆFØ! !§%¢%¡'¤' ( (Ô+ˆI‰IØð 	/ÝÐ7Ñ8Ô8Ð8à˜!”ˆAØ˜ˆ~ˆ~Ý!Ð":¸YÑ"FÑGÔGÐGØ—’˜q "Ñ%Ô%ˆBØ! ! " "œˆIØ�CˆEØð Aà˜Q”< 1Ò$Ð$ØØ˜q”\ RÒ'Ð'Ø—L’L Ñ$Ô$Ð$Ø )¨!¨"¨"¤�I�Iå$×*Ò*¨9Ñ5Ô5�AØð UÝ)Ð*GÈ)Ñ*SÑTÔTÐTØ—L’L §¢¡¤¨A¤Ñ/Ô/Ð/Ø )¨!¯%ª%©'¬'¨(¨(Ô 3�Ið ð Að —G’G˜E‘N”N�Ý!Ð";¸aÑ"?Ñ@Ô@Ð@Ø�LŠL˜‰OŒOˆOØ—W’W˜U‘^”^ˆFØ! ! " "œ×,Ò,Ñ.Ô.ˆIØ�yÐ Ð ó    c                 óä  •— | ro| d         dk    rc ‰| dd …                               ¦   «         ¦  «        \  }} | d         dk    rt          d| z  ¦  «        ‚| dd …                               ¦   «         } n{ ‰| ¦  «        \  }} | rit                               | ¦  «        }|snL|                     ¦   «         d         }| |                     ¦   «         d …         }  ‰| ¦  «        \  }} |||dœ}| °i|}|| fS )Nr   ú(r   ú)úunterminated parenthesis: %s©ÚopÚlhsÚrhs)r(   r#   Ú	MARKER_OPr    r!   r"   )r)   r+   r9   r*   r8   r:   Úmarkerr1   s         €€r0   Úmarker_exprz!parse_marker.<locals>.marker_expre   s  ø€ Øð 	˜ 1œ¨Ò,Ð,Ø &  y°°°¤}×';Ò';Ñ'=Ô'=Ñ >Ô >ÑˆF�IØ˜Œ|˜sÒ"Ð"Ý!Ð"@À9Ñ"LÑMÔMÐMØ! ! " "œ×,Ò,Ñ.Ô.ˆIˆIà'˜Z¨	Ñ2Ô2‰NˆC�Øð 9Ý—O’O IÑ.Ô.�Øð ØØ—X’X‘Z”Z ”]�Ø% a§e¢e¡g¤g h hÔ/�	Ø!+ ¨IÑ!6Ô!6‘��YØ¨°CÐ8Ð8�ð ð 9ð ˆFØ�yÐ Ð r2   c                 óÊ   •—  ‰| ¦  «        \  }} | rOt                                | ¦  «        }|sn2| |                     ¦   «         d …         }  ‰| ¦  «        \  }} d||dœ}| °O|| fS )NÚandr7   )ÚANDr    r"   )r)   r9   r*   r:   r=   s       €r0   Ú
marker_andz parse_marker.<locals>.marker_andx   sˆ   ø€ Ø$˜ YÑ/Ô/‰ˆˆYØð 	8Ý—	’	˜)Ñ$Ô$ˆAØð ØØ! !§%¢%¡'¤' ( (Ô+ˆIØ(˜[¨Ñ3Ô3‰NˆC�Ø s°3Ð7Ð7ˆCð ð 	8ð �Iˆ~Ðr2   c                 óÊ   •—  ‰| ¦  «        \  }} | rOt                                | ¦  «        }|sn2| |                     ¦   «         d …         }  ‰| ¦  «        \  }} d||dœ}| °O|| fS )NÚorr7   )ÚORr    r"   )r)   r9   r*   r:   rA   s       €r0   r<   zparse_marker.<locals>.markerƒ   sˆ   ø€ Ø#˜ IÑ.Ô.‰ˆˆYØð 	7Ý—’˜Ñ#Ô#ˆAØð ØØ! !§%¢%¡'¤' ( (Ô+ˆIØ'˜Z¨	Ñ2Ô2‰NˆC�Ø c°#Ð6Ð6ˆCð ð 	7ð �Iˆ~Ðr2   © )Úmarker_stringr<   rA   r=   r1   s    @@@@r0   Úparse_markerrG   8   sx   øøøø€ ð"!ð "!ð "!ðH!ð !ð !ð !ð !ð !ð&	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð ˆ6�-Ñ Ô Ð r2   c                 óÖ  — |                       ¦   «         }|r|                     d¦  «        rdS t                               |¦  «        }|st	          d|z  ¦  «        ‚|                     ¦   «         d         }||                     ¦   «         d…         }dx}x}x}}|�r"|d         dk    �r|                     dd¦  «        }|dk     rt	          d|z  ¦  «        ‚|d|…         }	||dz   d…                              ¦   «         }g }|	r¶t                               |	¦  «        }|st	          d	|	z  ¦  «        ‚| 	                    |                     ¦   «         d         ¦  «         |	|                     ¦   «         d…         }	|	sn<|	d         d
k    rt	          d|	z  ¦  «        ‚|	dd…                              ¦   «         }	|	°¶|sd}|�rý|d         dk    rÃ|dd…                              ¦   «         }t                               |¦  «        }|st	          d|z  ¦  «        ‚|                     ¦   «         d         }t          |¦  «        }
|
j        r|
j        st	          d|z  ¦  «        ‚||                     ¦   «         d…                              ¦   «         }�n.d„ }|d         dk    r ||¦  «        \  }}�n|                     dd¦  «        }|dk     rt	          d|z  ¦  «        ‚|d|…         }	||dz   d…                              ¦   «         }t                               |	¦  «        r ||	¦  «        \  }}n�t                               |	¦  «        }|st	          d|	z  ¦  «        ‚|                     ¦   «         d         }|	|                     ¦   «         d…                              ¦   «         }	|	rt	          d|	z  ¦  «        ‚d|fg}|rL|d         dk    rt	          d|z  ¦  «        ‚|dd…                              ¦   «         }t!          |¦  «        \  }}|r|d         dk    rt	          d|z  ¦  «        ‚|s|}n$|›dd                     d„ |D ¦   «         ¦  «        ›�}t%          ||||||¬¦  «        S )zŠ
    Parse a requirement passed in as a string. Return a Container
    whose attributes contain the various parts of the requirement.
    ú#Nzname expected: %sr   ú[ú]r   zunterminated extra: %szmalformed extra: %sú,zcomma expected in extras: %sú@zinvalid URI: %szInvalid URL: %sc                 ót  — t                                | ¦  «        }d}|�rg }	 |                     ¦   «         d         }| |                     ¦   «         d…         } t                               | ¦  «        }|st          d| z  ¦  «        ‚|                     ¦   «         d         }|                     ||f¦  «         | |                     ¦   «         d…         } | r| d         dk    rnO| dd…                              ¦   «         } | sn0t                                | ¦  «        }|st          d| z  ¦  «        ‚�Œ|sd}|| fS )z|
                Return a list of operator, version tuples if any are
                specified, else None.
                NTr   zinvalid version: %srL   r   úinvalid constraint: %s)Ú
COMPARE_OPr    r!   r"   ÚVERSION_IDENTIFIERr#   r%   r(   )Úver_remainingr*   Úversionsr8   Úvs        r0   Úget_versionsz'parse_requirement.<locals>.get_versionsÅ   sT  € õ
 ×$Ò$ ]Ñ3Ô3�Ø�Øñ (Ø!�HðXØŸXšX™ZœZ¨œ]˜Ø(5°a·e²e±g´g°h°hÔ(?˜Ý.×4Ò4°]ÑCÔC˜Ø ð UÝ"-Ð.CÀmÑ.SÑ"TÔ"TÐTØŸHšH™JœJ qœM˜Ø Ÿš¨¨Q¨Ñ0Ô0Ð0Ø(5°a·e²e±g´g°h°hÔ(?˜Ø,ð "°¸aÔ0@ÀCÒ0GÐ0GØ!Ø(5°a°b°bÔ(9×(@Ò(@Ñ(BÔ(B˜ð  -ð "Ø!Ý&×,Ò,¨]Ñ;Ô;˜Ø ð XÝ"-Ð.FÈÑ.VÑ"WÔ"WÐWñ%Xð& $ð (Ø#'˜Ø Ð.Ð.r2   r4   r5   r6   rO   z~=ú;zinvalid requirement: %szunexpected trailing data: %sú ú, c                 ó   — g | ]}d |z  ‘ŒS )z%s %srE   )Ú.0Úcons     r0   ú
<listcomp>z%parse_requirement.<locals>.<listcomp>	  s   € Ð,OÐ,OÐ,O¸s¨W°s©]Ð,OÐ,OÐ,Or2   )ÚnameÚextrasÚconstraintsr<   ÚurlÚrequirement)ÚstripÚ
startswithr   r    r#   r!   r"   Úfindr(   r%   Ú	NON_SPACEr   ÚschemeÚnetlocrP   rQ   rG   r'   r   )Úreqr)   r*   Údistnamer^   Ú	mark_exprrS   ÚuriÚir/   ÚtrU   Ú_rT   Úrss                  r0   Úparse_requirementrp   ‘   sË  € ð
 —	’	‘”€IØð ˜	×,Ò,¨SÑ1Ô1ð ØˆtÝ×Ò˜Ñ#Ô#€AØð ;ÝÐ-°	Ñ9Ñ:Ô:Ð:Ø�xŠx‰zŒz˜!Œ}€HØ˜!Ÿ%š%™'œ'˜(˜(Ô#€IØ*.Ð.€FÐ.ˆYÐ.˜ CØñ �Y˜q”\ SÒ(Ñ(Ø�NŠN˜3 Ñ"Ô"ˆØˆqŠ5ˆ5ÝÐ6¸ÑBÑCÔCÐCØ�a˜�cŒNˆØ˜a !™e˜f˜fÔ%×,Ò,Ñ.Ô.ˆ	ØˆØð 
	Ý× Ò  Ñ#Ô#ˆAØð =Ý!Ð"7¸!Ñ";Ñ<Ô<Ð<Ø�MŠM˜!Ÿ(š(™*œ* Qœ-Ñ(Ô(Ð(Ø�!—%’%‘'”'�(�(”ˆAØð ØØ�Œt�sŠ{ˆ{Ý!Ð"@À1Ñ"DÑEÔEÐEØ�!�"�"”—’‘”ˆAð ð 
	ð ð 	ØˆFØñ G+Ø�QŒ<˜3ÒÐà! ! " "œ×,Ò,Ñ.Ô.ˆIÝ—’ 	Ñ*Ô*ˆAØð AÝ!Ð"3°iÑ"?Ñ@Ô@Ð@Ø—(’(‘*”*˜Q”-ˆCÝ˜‘”ˆAð
 ”Hð ; ¤ð ;Ý!Ð"3°cÑ"9Ñ:Ô:Ð:Ø! !§%¢%¡'¤' ( (Ô+×2Ò2Ñ4Ô4ˆI‰Ið/ð /ð /ð@ ˜Œ|˜sÒ"Ð"Ø&2 l°9Ñ&=Ô&=Ñ#�˜)™)à—N’N 3¨Ñ*Ô*�Ø�q’5�5Ý%Ð&DÀyÑ&PÑQÔQÐQØ˜a ˜c”N�Ø% a¨!¡e f fÔ-×4Ò4Ñ6Ô6�	õ ×#Ò# AÑ&Ô&ð 
+Ø". ,¨q¡/¤/‘K�H˜a˜aå*×0Ò0°Ñ3Ô3�AØð HÝ)Ð*BÀQÑ*FÑGÔGÐGØŸš™
œ
 1œ�AØ˜!Ÿ%š%™'œ'˜(˜(œ×*Ò*Ñ,Ô,�AØð HÝ)Ð*BÀQÑ*FÑGÔGÐGØ!% q 	˜{�Hàð 7Ø�QŒ<˜3ÒÐÝÐ7¸)ÑCÑDÔDÐDØ˜a˜b˜b”M×(Ò(Ñ*Ô*ˆ	å+¨IÑ6Ô6Ñˆ	�9àð F�Y˜q”\ SÒ(Ð(ÝÐ8¸9ÑDÑEÔEÐEàð RØˆˆà ˜˜ $§)¢)Ð,OÐ,OÀhÐ,OÑ,OÔ,OÑ"PÔ"PÐ"PÐQˆÝ˜(¨6¸xØ%¨3¸Bð@ñ @ô @ð @r2   c                 óÒ  — d„ }i }|D ]Þ\  }}}t           j                             | |¦  «        }t          |¦  «        D ]¨}t           j                             ||¦  «        }	t          |	¦  «        D ]v}
 || |
¦  «        }|€|                     |d¦  «         Œ' |||
¦  «        }|                     t           j        j        d¦  «                             d¦  «        }|dz   |z   ||<   ŒwŒ©Œß|S )z%Find destinations for resources filesc                 ó  — |                       t          j        j        d¦  «        } |                      t          j        j        d¦  «        }|                     | ¦  «        sJ ‚|t          | ¦  «        d …                              d¦  «        S ©Nú/)r$   ÚosÚpathÚseprc   Úlenr(   )Úrootrv   s     r0   Úget_rel_pathz)get_resources_dests.<locals>.get_rel_path  sk   € à�|Š|�BœGœK¨Ñ-Ô-ˆØ�|Š|�BœGœK¨Ñ-Ô-ˆØ�Š˜tÑ$Ô$Ð$Ð$Ð$Ø•C˜‘I”I�J�JÔ×&Ò& sÑ+Ô+Ð+r2   Nrt   )ru   rv   r'   r   Úpopr$   rw   Úrstrip)Úresources_rootÚrulesrz   ÚdestinationsÚbaseÚsuffixÚdestÚprefixÚabs_baseÚabs_globÚabs_pathÚresource_fileÚrel_pathÚrel_dests                 r0   Úget_resources_destsrŠ     s  € ð,ð ,ð ,ð €LØ#ð Lð LÑˆˆf�dÝ”—’˜n¨dÑ3Ô3ˆÝ˜f™œð 		Lð 		LˆHÝ”w—|’| H¨fÑ5Ô5ˆHÝ! (™OœOð Lð L�Ø , ¨^¸XÑ FÔ F�Ø�<Ø ×$Ò$ ]°DÑ9Ô9Ð9Ð9à+˜|¨H°hÑ?Ô?�HØ#Ÿ|š|­B¬G¬K¸Ñ=Ô=×DÒDÀSÑIÔI�HØ2:¸S±.À8Ñ2K�L Ñ/Ð/ðLð		Lð Ðr2   c                  ó’   — t          t          d¦  «        rd} n.t          j        t          t          dt          j        ¦  «        k    } | S )NÚreal_prefixTÚbase_prefix)ÚhasattrÚsysrƒ   Úgetattr©r+   s    r0   Úin_venvr’   (  s=   € Ý�s�MÑ"Ô"ð Gàˆˆõ ”�w¥s¨M½3¼:ÑFÔFÒFˆØ€Mr2   c                  óf   — t           j        } t          | t          ¦  «        st	          | ¦  «        } | S ©N)r�   Ú
executableÚ
isinstancer   r   r‘   s    r0   Úget_executabler—   2  s/   € õ Œ^€FÝ�f�iÑ(Ô(ð "Ý˜&Ñ!Ô!ˆØ€Mr2   c                 ó’   — | }	 t          |¦  «        }| }|s|r|}|r)|d                              ¦   «         }||v rn|rd||| fz  }ŒC|S )NTr   z	%c: %s
%s)r
   Úlower)ÚpromptÚallowed_charsÚerror_promptÚdefaultÚpr/   Úcs          r0   Úproceedr    D  s|   € Ø€Að
=Ý�a‰LŒLˆØˆØð 	�Wð 	ØˆAØð 	=Ø�!”—
’
‘”ˆAØ�MÐ!Ð!ØØð =Ø  A |°VÐ#<Ñ<�ð
=ð €Hr2   c                 ó„   — t          |t          ¦  «        r|                     ¦   «         }i }|D ]}|| v r| |         ||<   Œ|S r”   )r–   r   Úsplit)ÚdÚkeysr+   Úkeys       r0   Úextract_by_keyr¦   T  sQ   € Ý�$�Ñ%Ô%ð Ø�zŠz‰|Œ|ˆØ€FØð !ð !ˆØ�!ˆ8ˆ8Ø˜Cœ&ˆF�3‰KøØ€Mr2   c                 ó¦  — t           j        d         dk    r t          j        d¦  «        | ¦  «        } |                      ¦   «         }t          |¦  «        } 	 t          j        | ¦  «        }|d         d         d         }|                     ¦   «         D ]>\  }}|                     ¦   «         D ]$\  }}|›d|›�}t          |¦  «        }	|	€J ‚|	||<   Œ%Œ?|S # t          $ r |                      dd¦  «         Y nw xY wd„ }
t          j        ¦   «         }	  |
|| ¦  «         nX# t          j        $ rF |                      ¦   «          t!          j        |¦  «        }t          |¦  «        }  |
|| ¦  «         Y nw xY wi }|                     ¦   «         D ]C}i x||<   }|                     |¦  «        D ]$\  }}|›d|›�}t          |¦  «        }	|	€J ‚|	||<   Œ%ŒD|S )	Nr   é   úutf-8Ú
extensionszpython.exportsÚexportsú = c                 ó~   — t          | d¦  «        r|                      |¦  «         d S |                      |¦  «         d S )NÚ	read_file)rŽ   r®   Úreadfp)ÚcpÚstreams     r0   Úread_streamz!read_exports.<locals>.read_streamq  sD   € Ý�2�{Ñ#Ô#ð 	Ø�LŠL˜Ñ Ô Ð Ð Ð à�IŠI�fÑÔÐÐÐr2   )r�   Úversion_infoÚcodecsÚ	getreaderÚreadr   ÚjsonÚloadÚitemsÚget_export_entryÚ	ExceptionÚseekr   ÚConfigParserÚMissingSectionHeaderErrorÚcloseÚtextwrapÚdedentÚsections)r±   ÚdataÚjdatar+   ÚgroupÚentriesÚkrT   r/   Úentryr²   r°   r¥   r]   Úvalues                  r0   Úread_exportsrÊ   ]  s:  € Ý
Ô˜Ô˜aÒÐà*•Ô! 'Ñ*Ô*¨6Ñ2Ô2ˆà�;Š;‰=Œ=€DÝ�d‰^Œ^€FðÝ”	˜&Ñ!Ô!ˆØ�|Ô$Ð%5Ô6°yÔAˆØ$Ÿlšl™nœnð 	#ð 	#‰NˆE�7ØŸš™œð #ð #‘��1Ø!"   A AÐ&�Ý(¨Ñ+Ô+�ØÐ(Ð(Ð(Ø"�˜‘
�
ð	#ð
 ˆøÝð ð ð Ø�Š�A�qÑÔÐÐÐðøøøðð ð õ 
Ô	"Ñ	$Ô	$€Bð Øˆ�B˜ÑÔÐÐøÝÔ1ð  ð  ð  Ø�Š‰ŒˆÝŒ˜tÑ$Ô$ˆÝ˜$‘”ˆØˆ�B˜ÑÔÐÐÐð	 øøøð €FØ�{Š{‰}Œ}ð "ð "ˆØ "Ð"ˆˆs‰�gØŸ8š8 C™=œ=ð 	"ð 	"‰KˆD�%Ø!˜T˜T 5 5Ð)ˆAÝ$ QÑ'Ô'ˆEØÐ$Ð$Ð$à!ˆG�D‰MˆMð	"ð €Ms&   ÁA<C Ã C8Ã7C8ÄD ÄAE4Å3E4c                 ó  — t           j        d         dk    r t          j        d¦  «        |¦  «        }t	          j        ¦   «         }|                      ¦   «         D ]”\  }}|                     |¦  «         |                     ¦   «         D ]e}|j	        €|j
        }n|j
        ›d|j	        ›�}|j        r |›dd                     |j        ¦  «        ›d�}|                     ||j        |¦  «         ŒfŒ•|                     |¦  «         d S )Nr   r¨   r©   ú:z [rX   rK   )r�   r³   r´   Ú	getwriterr   r½   r¹   Úadd_sectionÚvaluesr�   rƒ   Úflagsr'   Úsetr]   Úwrite)r«   r±   r°   rÇ   rT   rÈ   r/   s          r0   Úwrite_exportsrÓ   Œ  s  € Ý
Ô˜Ô˜aÒÐà*•Ô! 'Ñ*Ô*¨6Ñ2Ô2ˆÝ	Ô	"Ñ	$Ô	$€BØ—’‘”ð 
%ð 
%‰ˆˆ1à
�Š�qÑÔÐØ—X’X‘Z”Zð 	%ð 	%ˆEØŒ|Ð#Ø”L��à$œ|˜|˜|¨U¬\¨\Ð:�ØŒ{ð <Ø!"   D§I¢I¨e¬kÑ$:Ô$:Ð$:Ð$:Ð;�Ø�FŠF�1�e”j !Ñ$Ô$Ð$Ð$ð	%ð ‡H‚HˆVÑÔÐÐÐr2   c               #   ó”   K  — t          j        ¦   «         } 	 | V — t          j        | ¦  «         d S # t          j        | ¦  «         w xY wr”   )ÚtempfileÚmkdtempr	   Úrmtree)Útds    r0   ÚtempdirrÙ   Ÿ  sN   è è € å	Ô	Ñ	Ô	€BðØˆˆˆåŒ�bÑÔÐÐÐø�Œ�bÑÔÐÐøøøs	   —1 ±Ac              #   ó¼   K  — t          j        ¦   «         }	 t          j        | ¦  «         d V — t          j        |¦  «         d S # t          j        |¦  «         w xY wr”   )ru   ÚgetcwdÚchdir)r£   Úcwds     r0   rÜ   rÜ   §  sO   è è € å
Œ)‰+Œ+€CðÝ
Œ�‰ŒˆØˆˆˆå
Œ�‰Œˆˆˆø�Œ�‰Œˆˆøøøó   —A ÁAé   c              #   ó¼   K  — t          j        ¦   «         }	 t          j        | ¦  «         d V — t          j        |¦  «         d S # t          j        |¦  «         w xY wr”   )ÚsocketÚgetdefaulttimeoutÚsetdefaulttimeout)ÚsecondsÚctos     r0   Úsocket_timeoutræ   ±  sa   è è € å
Ô
"Ñ
$Ô
$€Cð&ÝÔ  Ñ)Ô)Ð)ØˆˆˆåÔ  Ñ%Ô%Ð%Ð%Ð%ø�Ô  Ñ%Ô%Ð%Ð%øøørÞ   c                   ó   — e Zd Zd„ Zdd„ZdS )Úcached_propertyc                 ó   — || _         d S r”   )Úfunc)Úselfrê   s     r0   Ú__init__zcached_property.__init__¼  s   € ØˆŒ	ˆ	ˆ	r2   Nc                 ó„   — |€| S |                       |¦  «        }t                               || j         j        |¦  «         |S r”   )rê   ÚobjectÚ__setattr__Ú__name__)rë   ÚobjÚclsrÉ   s       r0   Ú__get__zcached_property.__get__Á  s=   € Øˆ;ØˆKØ—	’	˜#‘”ˆÝ×Ò˜3 ¤	Ô 2°EÑ:Ô:Ð:àˆr2   r”   )rð   Ú
__module__Ú__qualname__rì   ró   rE   r2   r0   rè   rè   »  s7   € € € € € ðð ð ð
ð ð ð ð ð r2   rè   c                 óˆ  — t           j        dk    r| S | s| S | d         dk    rt          d| z  ¦  «        ‚| d         dk    rt          d| z  ¦  «        ‚|                      d¦  «        }t           j        |v r-|                     t           j        ¦  «         t           j        |v °-|st           j        S t          j        j        |Ž S )aÐ  Return 'pathname' as a name that will work on the native filesystem.

    The path is split on '/' and put back together again using the current
    directory separator.  Needed because filenames in the setup script are
    always supplied in Unix style, and have to be converted to the local
    convention before we can actually use them in the filesystem.  Raises
    ValueError on non-Unix-ish systems if 'pathname' either starts or
    ends with a slash.
    rt   r   zpath '%s' cannot be absoluteéÿÿÿÿzpath '%s' cannot end with '/')ru   rw   Ú
ValueErrorr¢   ÚcurdirÚremoverv   r'   )ÚpathnameÚpathss     r0   Úconvert_pathrý   É  sÇ   € õ 
„v�‚}€}ØˆØð ØˆØ�„{�cÒÐÝÐ7¸(ÑBÑCÔCÐCØ�„|�sÒÐÝÐ8¸8ÑCÑDÔDÐDà�NŠN˜3ÑÔ€EÝ
Œ)�uÐ
Ð
Ø�Š•R”YÑÔÐõ Œ)�uÐ
Ð
àð ÝŒyÐÝŒ7Œ<˜ÐÐr2   c                   óv   — e Zd Zdd„Zd„ Zd„ Zd„ Zdd„Zdd	„Zd
„ Z	d„ Z
d„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ ZdS )ÚFileOperatorFc                 ób   — || _         t          ¦   «         | _        |                      ¦   «          d S r”   )Údry_runrÑ   ÚensuredÚ_init_record)rë   r  s     r0   rì   zFileOperator.__init__å  s,   € ØˆŒÝ‘u”uˆŒØ×ÒÑÔÐÐÐr2   c                 ó`   — d| _         t          ¦   «         | _        t          ¦   «         | _        d S ©NF)ÚrecordrÑ   Úfiles_writtenÚdirs_created©rë   s    r0   r  zFileOperator._init_recordê  s'   € ØˆŒÝ ™UœUˆÔÝ™EœEˆÔÐÐr2   c                 óL   — | j         r| j                             |¦  «         d S d S r”   )r  r  Úadd)rë   rv   s     r0   Úrecord_as_writtenzFileOperator.record_as_writtenï  s3   € ØŒ;ð 	)ØÔ×"Ò" 4Ñ(Ô(Ð(Ð(Ð(ð	)ð 	)r2   c                 óH  — t           j                             |¦  «        s/t          dt           j                             |¦  «        z  ¦  «        ‚t           j                             |¦  «        sdS t          j        |¦  «        j        t          j        |¦  «        j        k    S )aÎ  Tell if the target is newer than the source.

        Returns true if 'source' exists and is more recently modified than
        'target', or if 'source' exists and 'target' doesn't.

        Returns false if both exist and 'target' is the same age or younger
        than 'source'. Raise PackagingFileError if 'source' does not exist.

        Note that this test is not very accurate: files created in the same
        second will have the same "age".
        zfile '%r' does not existT)ru   rv   Úexistsr   ÚabspathÚstatÚst_mtime)rë   ÚsourceÚtargets      r0   ÚnewerzFileOperator.neweró  s�   € õ Œw�~Š~˜fÑ%Ô%ð 	<Ý"Ð#=Ý#%¤7§?¢?°6Ñ#:Ô#:ñ$;ñ <ô <ð <åŒw�~Š~˜fÑ%Ô%ð 	Ø�4åŒw�v‰ŒÔ'­"¬'°&©/¬/Ô*BÒBÐBr2   Tc                 ó  — |                       t          j                             |¦  «        ¦  «         t                               d||¦  «         | j        s•d}|rht          j                             |¦  «        rd|z  }nCt          j                             |¦  «        r$t          j         	                    |¦  «        sd|z  }|rt          |dz   ¦  «        ‚t          j        ||¦  «         |                      |¦  «         dS )z8Copy a file respecting dry-run and force flags.
        zCopying %s to %sNz%s is a symlinkz%s is a non-regular filez which would be overwritten)Ú
ensure_dirru   rv   ÚdirnameÚloggerÚinfor  Úislinkr  Úisfilerø   r	   Úcopyfiler  )rë   ÚinfileÚoutfileÚcheckÚmsgs        r0   Ú	copy_filezFileOperator.copy_file  sò   € ð 	�Š�œŸš¨Ñ0Ô0Ñ1Ô1Ð1Ý�ŠÐ&¨°Ñ8Ô8Ð8ØŒ|ð 		-ØˆCØð ?Ý”7—>’> 'Ñ*Ô*ð ?Ø+¨gÑ5�C�CÝ”W—^’^ GÑ,Ô,ð ?µR´W·^²^ÀGÑ5LÔ5Lð ?Ø4°wÑ>�CØð FÝ  Ð'DÑ!DÑEÔEÐEÝŒO˜F GÑ,Ô,Ð,Ø×Ò˜wÑ'Ô'Ð'Ð'Ð'r2   Nc                 óø  — t           j                             |¦  «        rJ ‚|                      t           j                             |¦  «        ¦  «         t
                               d||¦  «         | j        sn|€t          |d¦  «        }nt          j        |d|¬¦  «        }	 t          j        ||¦  «         |                     ¦   «          n# |                     ¦   «          w xY w|                      |¦  «         d S )NzCopying stream %s to %sÚwbÚw©Úencoding)ru   rv   Úisdirr  r  r  r  r  Úopenr´   r	   Úcopyfileobjr¿   r  )rë   Úinstreamr  r&  Ú	outstreams        r0   Úcopy_streamzFileOperator.copy_stream  så   € Ý”7—=’= Ñ)Ô)Ð)Ð)Ð)Ø�Š�œŸš¨Ñ0Ô0Ñ1Ô1Ð1Ý�ŠÐ-¨x¸ÑAÔAÐAØŒ|ð 	"ØÐÝ  ¨$Ñ/Ô/�	�	å"œK¨°¸xÐHÑHÔH�	ð"ÝÔ" 8¨YÑ7Ô7Ð7à—’Ñ!Ô!Ð!Ð!ø�	—’Ñ!Ô!Ð!Ð!øøøØ×Ò˜wÑ'Ô'Ð'Ð'Ð's   Â"C ÃC"c                 ó‚  — |                       t          j                             |¦  «        ¦  «         | j        spt          j                             |¦  «        rt          j        |¦  «         t          |d¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |  	                    |¦  «         d S )Nr#  )
r  ru   rv   r  r  r  rú   r(  rÒ   r  )rë   rv   rÃ   Úfs       r0   Úwrite_binary_filezFileOperator.write_binary_file'  sÚ   € Ø�Š�œŸš¨Ñ-Ô-Ñ.Ô.Ð.ØŒ|ð 	ÝŒw�~Š~˜dÑ#Ô#ð  Ý”	˜$‘”�Ý�d˜DÑ!Ô!ð  QØ—’˜‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à×Ò˜tÑ$Ô$Ð$Ð$Ð$s   Á=BÂB#Â&B#c                 óX   — |                       ||                     |¦  «        ¦  «         d S r”   )r/  Úencode)rë   rv   rÃ   r&  s       r0   Úwrite_text_filezFileOperator.write_text_file0  s*   € Ø×Ò˜t T§[¢[°Ñ%:Ô%:Ñ;Ô;Ð;Ð;Ð;r2   c                 ó^  — t           j        dk    s t           j        dk    rˆt           j        dk    rz|D ]y}| j        rt                               d|¦  «         Œ%t          j        |¦  «        j        |z  |z  }t                               d||¦  «         t          j        ||¦  «         Œvd S d S d S )NÚposixÚjavazchanging mode of %szchanging mode of %s to %o)	ru   r]   Ú_namer  r  r  r  Úst_modeÚchmod)rë   ÚbitsÚmaskÚfilesr.  Úmodes         r0   Úset_modezFileOperator.set_mode3  s¸   € ÝŒ7�gÒÐ¥"¤'¨VÒ"3Ð"3½¼ÀGÒ8KÐ8Kð ð &ð &�Ø”<ð &Ý—K’KÐ 5°qÑ9Ô9Ð9Ð9åœG A™JœJÔ.°Ñ5¸Ñ=�DÝ—K’KÐ ;¸QÀÑEÔEÐEÝ”H˜Q Ñ%Ô%Ð%Ð%ð #4Ð"3Ð8KÐ8Kð&ð &r2   c                 ó0   — |                       dd|¦  «        S )Nim  iÿ  )r=  )r/   r.  s     r0   ú<lambda>zFileOperator.<lambda>?  s   €  q§z¢z°%¸ÀÑ'CÔ'C€ r2   c                 óô  — t           j                             |¦  «        }|| j        vrËt           j                             |¦  «        s®| j                             |¦  «         t           j                             |¦  «        \  }}|                      |¦  «         t           	                    d|z  ¦  «         | j
        st          j        |¦  «         | j        r | j                             |¦  «         d S d S d S d S )NzCreating %s)ru   rv   r  r  r  r  r¢   r  r  r  r  Úmkdirr  r  )rë   rv   r£   r.  s       r0   r  zFileOperator.ensure_dirA  sá   € ÝŒw�Š˜tÑ$Ô$ˆØ�t”|Ð#Ð#­B¬G¯NªN¸4Ñ,@Ô,@Ð#ØŒL×Ò˜TÑ"Ô"Ð"Ý”7—=’= Ñ&Ô&‰DˆAˆqØ�OŠO˜AÑÔÐÝ�KŠK˜¨Ñ,Ñ-Ô-Ð-Ø”<ð Ý”˜‘”�ØŒ{ð ,ØÔ!×%Ò% dÑ+Ô+Ð+Ð+Ð+ð $Ð#Ð#Ð#ð,ð ,r2   c                 ó²  — t          || ¦  «        }t                               d||¦  «         | j        s�|s|                      ||¦  «        r3|sd }n.|                     |¦  «        sJ ‚|t          |¦  «        d …         }i }|r)t          t          d¦  «        rt          j	        j
        |d<   t          j        |||dfi |¤Ž |                      |¦  «         |S )NzByte-compiling %s to %sÚPycInvalidationModeÚinvalidation_modeT)r   r  r  r  r  rc   rx   rŽ   Ú
py_compilerC  ÚCHECKED_HASHÚcompiler  )	rë   rv   ÚoptimizeÚforcerƒ   Úhashed_invalidationÚdpathÚdiagpathÚcompile_kwargss	            r0   Úbyte_compilezFileOperator.byte_compileM  s÷   € Ý! $¨H¨Ñ5Ô5ˆÝ�ŠÐ-¨t°UÑ;Ô;Ð;ØŒ|ð 
	NØð 2˜Ÿ
š
 4¨Ñ/Ô/ð 2Øð 2Ø#�H�HàŸ?š?¨6Ñ2Ô2Ð2Ð2Ð2Ø#¥C¨¡K¤K L LÔ1�HØˆNØ"ð b¥w­zÐ;PÑ'QÔ'Qð bÝ6@Ô6TÔ6a�Ð2Ñ3ÝÔ˜t U¨H°dÐMÐM¸nÐMÐMÐMØ×Ò˜uÑ%Ô%Ð%Øˆr2   c                 ó¤  — t           j                             |¦  «        �r+t           j                             |¦  «        r…t           j                             |¦  «        sft
                               d|¦  «         | j        st          j	        |¦  «         | j
        r%|| j        v r| j                             |¦  «         d S d S d S t           j                             |¦  «        rd}nd}t
                               d||¦  «         | j        st          j        |¦  «         | j
        r'|| j        v r | j                             |¦  «         d S d S d S d S )NzRemoving directory tree at %sÚlinkÚfilezRemoving %s %s)ru   rv   r  r'  r  r  Údebugr  r	   r×   r  r  rú   r  )rë   rv   r/   s      r0   Úensure_removedzFileOperator.ensure_removed^  sX  € ÝŒ7�>Š>˜$ÑÔñ 	8ÝŒw�}Š}˜TÑ"Ô"ð 8­2¬7¯>ª>¸$Ñ+?Ô+?ð 8Ý—’Ð<¸dÑCÔCÐCØ”|ð (Ý”M $Ñ'Ô'Ð'Ø”;ð 7Ø˜tÔ0Ð0Ð0ØÔ)×0Ò0°Ñ6Ô6Ð6Ð6Ð6ð7ð 7Ø0Ð0õ ”7—>’> $Ñ'Ô'ð Ø�A�Aà�AÝ—’Ð-¨q°$Ñ7Ô7Ð7Ø”|ð $Ý”I˜d‘O”O�OØ”;ð 8Ø˜tÔ1Ð1Ð1ØÔ*×1Ò1°$Ñ7Ô7Ð7Ð7Ð7ð%	8ð 	8ð 8ð 8Ø1Ð1r2   c                 óà   — d}|sit           j                             |¦  «        r t          j        |t           j        ¦  «        }n*t           j                             |¦  «        }||k    rn|}|¯i|S r  )ru   rv   r  ÚaccessÚW_OKr  )rë   rv   r+   Úparents       r0   Úis_writablezFileOperator.is_writables  sp   € ØˆØð 	ÝŒw�~Š~˜dÑ#Ô#ð Ýœ 4­¬Ñ1Ô1�ØÝ”W—_’_ TÑ*Ô*ˆFØ˜Š~ˆ~ØØˆDð ð 	ð ˆr2   c                 ó\   — | j         sJ ‚| j        | j        f}|                      ¦   «          |S )zV
        Commit recorded changes, turn off recording, return
        changes.
        )r  r  r  r  )rë   r+   s     r0   ÚcommitzFileOperator.commit  s9   € ð
 Œ{ÐÐÐØÔ# TÔ%6Ð6ˆØ×ÒÑÔÐØˆr2   c                 óà  — | j         sÒt          | j        ¦  «        D ]5}t          j                             |¦  «        rt          j        |¦  «         Œ6t          | j        d¬¦  «        }|D ]o}t          j	        |¦  «        }|rC|dgk    sJ ‚t          j         
                    ||d         ¦  «        }t          j        |¦  «         t          j        |¦  «         Œp|                      ¦   «          d S )NT)ÚreverseÚ__pycache__r   )r  Úlistr  ru   rv   r  rú   Úsortedr  Úlistdirr'   Úrmdirr  )rë   r.  Údirsr£   ÚflistÚsds         r0   ÚrollbackzFileOperator.rollback‰  så   € ØŒ|ð 	Ý˜$Ô,Ñ-Ô-ð !ð !�Ý”7—>’> !Ñ$Ô$ð !Ý”I˜a‘L”L�Løõ ˜$Ô+°TÐ:Ñ:Ô:ˆDØð ð �Ýœ
 1™œ�Øð !Ø  ] OÒ3Ð3Ð3Ð3ÝœŸš a¨¨q¬Ñ2Ô2�BÝ”H˜R‘L”L�LÝ”˜‘”��Ø×ÒÑÔÐÐÐr2   ©F©Tr”   )FFNF)rð   rô   rõ   rì   r  r  r  r!  r,  r/  r2  r=  Úset_executable_moder  rN  rS  rX  rZ  re  rE   r2   r0   rÿ   rÿ   ä  s  € € € € € ðð ð ð ð
"ð "ð "ð
)ð )ð )ðCð Cð Cð((ð (ð (ð (ð"(ð (ð (ð (ð%ð %ð %ð<ð <ð <ð
&ð 
&ð 
&ð DÐCÐð
,ð 
,ð 
,ðð ð ð ð"8ð 8ð 8ð*
ð 
ð 
ðð ð ðð ð ð ð r2   rÿ   c                 ó
  — | t           j        v rt           j        |          }nt          | ¦  «        }|€|}nM|                     d¦  «        }t	          ||                     d¦  «        ¦  «        }|D ]}t	          ||¦  «        }Œ|S )Nú.r   )r�   ÚmodulesÚ
__import__r¢   r�   r{   )Úmodule_nameÚdotted_pathÚmodr+   r.   rž   s         r0   Úresolverp  ›  sˆ   € Ø•c”kÐ!Ð!ÝŒk˜+Ô&ˆˆå˜Ñ%Ô%ˆØÐØˆˆà×!Ò! #Ñ&Ô&ˆÝ˜˜eŸiši¨™lœlÑ+Ô+ˆØð 	(ð 	(ˆAÝ˜V QÑ'Ô'ˆFˆFØ€Mr2   c                   óD   — e Zd Zd„ Zed„ ¦   «         Zd„ Zd„ Zej	        Z	dS )ÚExportEntryc                 ó>   — || _         || _        || _        || _        d S r”   ©r]   rƒ   r�   rÐ   )rë   r]   rƒ   r�   rÐ   s        r0   rì   zExportEntry.__init__«  s"   € ØˆŒ	ØˆŒØˆŒØˆŒ
ˆ
ˆ
r2   c                 ó6   — t          | j        | j        ¦  «        S r”   )rp  rƒ   r�   r	  s    r0   rÉ   zExportEntry.value±  s   € å�t”{ D¤KÑ0Ô0Ð0r2   c           	      óH   — d| j         ›d| j        ›d| j        ›d| j        ›d�	S )Nz<ExportEntry r¬   rÌ   rW   ú>rt  r	  s    r0   Ú__repr__zExportEntry.__repr__µ  s2   € € Ø04´	°	°	¸4¼;¸;¸;Ø04´°°¸T¼Z¸Z¸ZðIð 	Ir2   c                 ó¶   — t          |t          ¦  «        sd}n@| j        |j        k    o/| j        |j        k    o| j        |j        k    o| j        |j        k    }|S r  )r–   rr  r]   rƒ   r�   rÐ   )rë   Úotherr+   s      r0   Ú__eq__zExportEntry.__eq__¹  sh   € Ý˜%¥Ñ-Ô-ð 	1ØˆFˆFà”i 5¤:Ò-ð 0Ø”k U¤\Ò1ð0à”k U¤\Ò1ð0ð ”j E¤KÒ/ð ð ˆr2   N)
rð   rô   rõ   rì   rè   rÉ   rx  r{  rî   Ú__hash__rE   r2   r0   rr  rr  ª  sb   € € € € € ðð ð ð ð1ð 1ñ „_ð1ðIð Ið Iðð ð ð Œ€H€H€Hr2   rr  z¸(?P<name>(\w|[-.+])+)
                      \s*=\s*(?P<callable>(\w+)([:\.]\w+)*)
                      \s*(\[\s*(?P<flags>[\w-]+(=\w+)?(,\s*\w+(=\w+)?)*)\s*\])?
                      c                 ó  — t                                | ¦  «        }|sd }d| v sd| v rt          d| z  ¦  «        ‚nÌ|                     ¦   «         }|d         }|d         }|                     d¦  «        }|dk    r|d }}n0|dk    rt          d| z  ¦  «        ‚|                     d¦  «        \  }}|d	         }	|	€d| v sd| v rt          d| z  ¦  «        ‚g }	nd
„ |	                     d¦  «        D ¦   «         }	t          ||||	¦  «        }|S )NrJ   rK   zInvalid specification '%s'r]   ÚcallablerÌ   r   r   rÐ   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS rE   ©rb   )rZ   r.  s     r0   r\   z$get_export_entry.<locals>.<listcomp>å  s    € Ð9Ð9Ð9 1�Q—W’W‘Y”YÐ9Ð9Ð9r2   rL   )ÚENTRY_REÚsearchr   Ú	groupdictÚcountr¢   rr  )
Úspecificationr*   r+   r£   r]   rv   Úcolonsrƒ   r�   rÐ   s
             r0   rº   rº   Ë  sX  € Ý�Š˜Ñ&Ô&€AØð :ØˆØ�-ÐÐ 3¨-Ð#7Ð#7Ý"ð $*Ø,9ñ$:ñ ;ô ;ð ;ð $8ð �KŠK‰MŒMˆØ�ŒyˆØ�Œ}ˆØ—’˜C‘”ˆØ�QŠ;ˆ;Ø! 4�FˆFˆFà˜Š{ˆ{Ý&ð (.Ø0=ñ(>ñ ?ô ?ð ?à!ŸZšZ¨™_œ_‰NˆF�FØ�'”
ˆØˆ=Ø�mÐ#Ð# s¨mÐ';Ð';Ý&ð (.Ø0=ñ(>ñ ?ô ?ð ?àˆEˆEà9Ð9¨¯ª°CÑ(8Ô(8Ð9Ñ9Ô9ˆEÝ˜T 6¨6°5Ñ9Ô9ˆØ€Mr2   c                 óª  — | €d} t           j        dk    r.dt           j        v r t           j                             d¦  «        }nt           j                             d¦  «        }t           j                             |¦  «        r=t          j        |t           j        ¦  «        }|st           
                    d|¦  «         nG	 t          j        |¦  «         d}n/# t          $ r" t           
                    d	|d¬
¦  «         d}Y nw xY w|s.t          j        ¦   «         }t           
                    d|¦  «         t           j                             || ¦  «        S )a¦  
    Return the default base location for distlib caches. If the directory does
    not exist, it is created. Use the suffix provided for the base directory,
    and default to '.distlib' if it isn't provided.

    On Windows, if LOCALAPPDATA is defined in the environment, then it is
    assumed to be a directory, and will be the parent directory of the result.
    On POSIX, and on Windows if LOCALAPPDATA is not defined, the user's home
    directory - using os.expanduser('~') - will be the parent directory of
    the result.

    The result is just the directory '.distlib' in the parent directory as
    determined above, or with the name specified with ``suffix``.
    Nz.distlibÚntÚLOCALAPPDATAz$localappdataú~z(Directory exists but is not writable: %sTzUnable to create %s)Úexc_infoFz#Default location unusable, using %s)ru   r]   Úenvironrv   Ú
expandvarsÚ
expanduserr'  rU  rV  r  ÚwarningÚmakedirsÚOSErrorrÕ   rÖ   r'   )r�   r+   Úusables      r0   Úget_cache_baser“  ê  s:  € ð €~ØˆÝ	„w�$‚€˜>­R¬ZÐ7Ð7Ý”×#Ò# OÑ4Ô4ˆˆõ ”×#Ò# CÑ(Ô(ˆõ 
„w‡}‚}�VÑÔð 
Ý”˜6¥2¤7Ñ+Ô+ˆØð 	OÝ�NŠNÐEÀvÑNÔNÐNøð	ÝŒK˜ÑÔÐØˆFˆFøÝð 	ð 	ð 	Ý�NŠNÐ0°&À4ˆNÑHÔHÐHØˆFˆFˆFð	øøøð ð FÝÔ!Ñ#Ô#ˆÝ�ŠÐ<¸fÑEÔEÐEÝŒ7�<Š<˜ Ñ'Ô'Ð's   Â?C Ã)DÄDc                 ó   — t           j                             t           j                             | ¦  «        ¦  «        \  }}|r|                     dd¦  «        }|                     t           j        d¦  «        }||z   dz   S )a  
    Convert an absolute path to a directory name for use in a cache.

    The algorithm used is:

    #. On Windows, any ``':'`` in the drive is replaced with ``'---'``.
    #. Any occurrence of ``os.sep`` is replaced with ``'--'``.
    #. ``'.cache'`` is appended.
    rÌ   z---z--z.cache)ru   rv   Ú
splitdriver  r$   rw   )rv   r£   rž   s      r0   Úpath_to_cache_dirr–    sj   € õ Œ7×Ò�bœgŸošo¨dÑ3Ô3Ñ4Ô4�D€A€qØð "Ø�IŠI�c˜5Ñ!Ô!ˆØ	�	Š	•"”&˜$ÑÔ€AØˆq‰5�8ÑÐr2   c                 ó:   — |                       d¦  «        s| dz   S | S rs   )Úendswith)r/   s    r0   Úensure_slashr™  $  s"   € Ø�:Š:�c‰?Œ?ð Ø�3‰wˆØ€Hr2   c                 óÒ   — d x}}d| v r9|                       dd¦  «        \  }} d|vr|}n|                     dd¦  «        \  }}|rt          |¦  «        }|rt          |¦  «        }||| fS )NrM   r   rÌ   )Úrsplitr¢   r   )rg   ÚusernameÚpasswordrƒ   s       r0   Úparse_credentialsrž  *  s�   € ØÐ€HˆxØ
ˆf€}€}ØŸš s¨AÑ.Ô.‰ˆ�Ø�fÐÐØˆHˆHà!'§¢¨c°1Ñ!5Ô!5ÑˆH�hØð %Ý˜8Ñ$Ô$ˆØð %Ý˜8Ñ$Ô$ˆØ�X˜vÐ%Ð%r2   c                  óV   — t          j        d¦  «        } t          j        | ¦  «         | S )Né   )ru   Úumaskr‘   s    r0   Úget_process_umaskr¢  9  s$   € ÝŒX�d‰^Œ^€FÝ„HˆVÑÔÐØ€Mr2   c                 ór   — d}d }t          | ¦  «        D ]\  }}t          |t          ¦  «        sd} nŒ|€J ‚|S )NTF)Ú	enumerater–   r   )Úseqr+   rl   r/   s       r0   Úis_string_sequencer¦  >  sV   € Ø€FØ€AÝ˜#‘”ð ð ‰ˆˆ1Ý˜!�\Ñ*Ô*ð 	ØˆFØˆEð	ð ˆ=ˆ=ˆ=Ø€Mr2   z3([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-([a-z0-9_.+-]+)z-py(\d\.?\d?)c                 óz  — d}d}t          | ¦  «                             dd¦  «        } t                               | ¦  «        }|r1|                     d¦  «        }| d|                     ¦   «         …         } |r{t          | ¦  «        t          |¦  «        dz   k    rXt          j        t          j	        |¦  «        dz   | ¦  «        }|r,| 
                    ¦   «         }| d|…         | |dz   d…         |f}|€Gt                               | ¦  «        }|r+|                     d¦  «        |                     d¦  «        |f}|S )zw
    Extract name, version, python version from a filename (no extension)

    Return name, version, pyver or None
    NrW   ú-r   z\br¨   )r   r$   ÚPYTHON_VERSIONr‚  rÅ   Ústartrx   Úrer    Úescaper"   ÚPROJECT_NAME_AND_VERSION)ÚfilenameÚproject_namer+   Úpyverr*   Úns         r0   Úsplit_filenamer²  M  s+  € ð €FØ€EÝ�xÑ Ô ×(Ò(¨¨cÑ2Ô2€HÝ×Ò˜hÑ'Ô'€AØð (Ø—’˜‘
”
ˆØ˜J˜QŸWšW™YœY˜JÔ'ˆØð ;�˜H™œ­¨LÑ(9Ô(9¸AÑ(=Ò=Ð=ÝŒH•R”Y˜|Ñ,Ô,¨uÑ4°hÑ?Ô?ˆØð 	;Ø—’‘”ˆAØ˜b˜q˜b”\ 8¨A°©E¨F¨FÔ#3°UÐ:ˆFØ€~Ý$×*Ò*¨8Ñ4Ô4ˆØð 	3Ø—W’W˜Q‘Z”Z §¢¨¡¤¨UÐ2ˆFØ€Mr2   z-(?P<name>[\w .-]+)\s*\(\s*(?P<ver>[^\s)]+)\)$c                 óî   — t                                | ¦  «        }|st          d| z  ¦  «        ‚|                     ¦   «         }|d                              ¦   «                              ¦   «         |d         fS )zÇ
    A utility method used to get name and version from a string.

    From e.g. a Provides-Dist value.

    :param p: A value in a form 'foo (1.0)'
    :return: The name and version as a tuple.
    z$Ill-formed name/version string: '%s'r]   Úver)ÚNAME_VERSION_REr    r   rƒ  rb   r™   )rž   r*   r£   s      r0   Úparse_name_and_versionr¶  i  sj   € õ 	×Ò˜aÑ Ô €AØð MÝÐGÈ!ÑKÑLÔLÐLØ	�Š‰Œ€AØˆVŒ9�?Š?ÑÔ×"Ò"Ñ$Ô$ a¨¤hÐ.Ð.r2   c                 ó  — t          ¦   «         }t          | pg ¦  «        } t          |pg ¦  «        }d| v r|                      d¦  «         ||z  }| D ]®}|dk    r|                     |¦  «         Œ|                     d¦  «        rE|dd …         }||vrt                               d|z  ¦  «         ||v r|                     |¦  «         Œx||vrt                               d|z  ¦  «         |                     |¦  «         Œ¯|S )NÚ*r¨  r   zundeclared extra: %s)rÑ   rú   r  rc   r  r�  )Ú	requestedÚ	availabler+   ÚrÚunwanteds        r0   Ú
get_extrasr½  x  s  € Ý‰UŒU€FÝ�I�O Ñ$Ô$€IÝ�I�O Ñ$Ô$€IØ
ˆiÐÐØ×Ò˜ÑÔÐØ�)ÑˆØð ð ˆØ�Š8ˆ8Ø�JŠJ�q‰MŒMˆMˆMØ�\Š\˜#ÑÔð 		Ø˜˜˜”uˆHØ˜yÐ(Ð(Ý—’Ð5¸Ñ@ÑAÔAÐAØ˜6Ð!Ð!Ø—’˜hÑ'Ô'Ð'øà˜	Ð!Ð!Ý—’Ð5¸Ñ9Ñ:Ô:Ð:Ø�JŠJ�q‰MŒMˆMˆMØ€Mr2   c                 ó¨  — i }	 t          | ¦  «        }|                     ¦   «         }|                     d¦  «        }|                     d¦  «        st                               d|¦  «         n1 t          j        d¦  «        |¦  «        }t          j	        |¦  «        }n3# t          $ r&}t                               d| |¦  «         Y d }~nd }~ww xY w|S )NzContent-Typezapplication/jsonz(Unexpected response for JSON request: %sr©   z&Failed to get external data for %s: %s)r   r  Úgetrc   r  rR  r´   rµ   r·   r¸   r»   Ú	exception)r`   r+   ÚrespÚheadersÚctÚreaderÚes          r0   Ú_get_external_datarÆ  ‘  sá   € Ø€FðKõ �s‰|Œ|ˆØ—)’)‘+”+ˆØ�[Š[˜Ñ(Ô(ˆØ�}Š}Ð/Ñ0Ô0ð 	'Ý�LŠLÐCÀRÑHÔHÐHÐHà.•VÔ% gÑ.Ô.¨tÑ4Ô4ˆFõ ”Y˜vÑ&Ô&ˆFøøÝð Kð Kð KÝ×ÒÐAÀ3ÈÑJÔJÐJÐJÐJÐJÐJÐJøøøøðKøøøà€Ms   „BB Â
CÂ)C
Ã
Cz'https://www.red-dove.com/pypi/projects/c                 óŽ   — | d                               ¦   «         ›d| ›d�}t          t          |¦  «        }t          |¦  «        }|S )Nr   rt   z/project.json©Úupperr   Ú_external_data_base_urlrÆ  )r]   r`   r+   s      r0   Úget_project_datarË  §  sB   € Ø"& q¤'§-¢-¡/¤/ / /°4°4°4Ð
8€CÝ
Õ)¨3Ñ
/Ô
/€CÝ Ñ$Ô$€FØ€Mr2   c                 ó�   — | d                               ¦   «         ›d| ›d|›d�}t          t          |¦  «        }t          |¦  «        S )Nr   rt   z	/package-z.jsonrÈ  )r]   Úversionr`   s      r0   Úget_package_datarÎ  ­  sD   € Ø%)¨!¤W§]¢]¡_¤_ _ _°d°d°d¸G¸G¸GÐ
D€CÝ
Õ)¨3Ñ
/Ô
/€CÝ˜cÑ"Ô"Ð"r2   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚCachezæ
    A class implementing a cache for resources that need to live in the file system
    e.g. shared libraries. This class was moved from resources to here because it
    could be used by other modules, e.g. the wheel module.
    c                 ód  — t           j                             |¦  «        st          j        |¦  «         t          j        |¦  «        j        dz  dk    rt                               d|¦  «         t           j                             t           j         	                    |¦  «        ¦  «        | _
        dS )zu
        Initialise an instance.

        :param base: The base directory where the cache should be located.
        é?   r   zDirectory '%s' is not privateN)ru   rv   r'  r�  r  r7  r  r�  r  Únormpathr€   )rë   r€   s     r0   rì   zCache.__init__º  sƒ   € õ Œw�}Š}˜TÑ"Ô"ð 	ÝŒK˜ÑÔÐÝŒG�D‰MŒMÔ! DÑ(¨QÒ.Ð.Ý�NŠNÐ<¸dÑCÔCÐCÝ”G—O’O¥B¤G×$4Ò$4°TÑ$:Ô$:Ñ;Ô;ˆŒ	ˆ	ˆ	r2   c                 ó    — t          |¦  «        S )zN
        Converts a resource prefix to a directory name in the cache.
        )r–  )rë   rƒ   s     r0   Úprefix_to_dirzCache.prefix_to_dirÈ  s   € õ ! Ñ(Ô(Ð(r2   c                 óä  — g }t          j        | j        ¦  «        D ]Ó}t           j                             | j        |¦  «        }	 t           j                             |¦  «        st           j                             |¦  «        rt          j        |¦  «         n3t           j                             |¦  «        rt          j
        |¦  «         Œ¯# t          $ r |                     |¦  «         Y ŒÐw xY w|S )z"
        Clear the cache.
        )ru   r`  r€   rv   r'   r  r  rú   r'  r	   r×   r»   r%   )rë   Únot_removedÚfns      r0   ÚclearzCache.clearÎ  sÜ   € ð ˆÝ”*˜TœYÑ'Ô'ð 	'ð 	'ˆBÝ”—’˜dœi¨Ñ,Ô,ˆBð'Ý”7—>’> "Ñ%Ô%ð &­¬¯ª¸Ñ);Ô);ð &Ý”I˜b‘M”M�M�MÝ”W—]’] 2Ñ&Ô&ð &Ý”M "Ñ%Ô%Ð%øøÝð 'ð 'ð 'Ø×"Ò" 2Ñ&Ô&Ð&Ð&Ð&ð'øøøàÐs   ÁBCÃC-Ã,C-N)rð   rô   rõ   Ú__doc__rì   rÕ  rÙ  rE   r2   r0   rÐ  rÐ  ³  sK   € € € € € ðð ð<ð <ð <ð)ð )ð )ðð ð ð ð r2   rÐ  c                   ó2   — e Zd ZdZd„ Zd	d„Zd„ Zd„ Zd„ ZdS )
Ú
EventMixinz1
    A very simple publish/subscribe system.
    c                 ó   — i | _         d S r”   )Ú_subscribersr	  s    r0   rì   zEventMixin.__init__ã  s   € ØˆÔÐÐr2   Tc                 ó²   — | j         }||vrt          |g¦  «        ||<   dS ||         }|r|                     |¦  «         dS |                     |¦  «         dS )a`  
        Add a subscriber for an event.

        :param event: The name of an event.
        :param subscriber: The subscriber to be added (and called when the
                           event is published).
        :param append: Whether to append or prepend the subscriber to an
                       existing subscriber list for the event.
        N)rÞ  r   r%   Ú
appendleft)rë   ÚeventÚ
subscriberr%   ÚsubsÚsqs         r0   r  zEventMixin.addæ  so   € ð Ô ˆØ˜ÐÐÝ  Ñ-Ô-ˆD�‰KˆKˆKà�e”ˆBØð *Ø—	’	˜*Ñ%Ô%Ð%Ð%Ð%à—’˜jÑ)Ô)Ð)Ð)Ð)r2   c                 óv   — | j         }||vrt          d|z  ¦  «        ‚||                              |¦  «         dS )z™
        Remove a subscriber for an event.

        :param event: The name of an event.
        :param subscriber: The subscriber to be removed.
        zNo subscribers: %rN)rÞ  rø   rú   )rë   rá  râ  rã  s       r0   rú   zEventMixin.removeú  sI   € ð Ô ˆØ˜ÐÐÝÐ1°EÑ9Ñ:Ô:Ð:ØˆUŒ×Ò˜:Ñ&Ô&Ð&Ð&Ð&r2   c                 óR   — t          | j                             |d¦  «        ¦  «        S )z�
        Return an iterator for the subscribers for an event.
        :param event: The event to return subscribers for.
        rE   )ÚiterrÞ  r¿  )rë   rá  s     r0   Úget_subscriberszEventMixin.get_subscribers  s%   € õ
 �DÔ%×)Ò)¨%°Ñ4Ô4Ñ5Ô5Ð5r2   c                 ó  — g }|                       |¦  «        D ]Q}	  ||g|¢R i |¤Ž}n,# t          $ r t                               d¦  «         d}Y nw xY w|                     |¦  «         ŒRt                               d||||¦  «         |S )a^  
        Publish a event and return a list of values returned by its
        subscribers.

        :param event: The event to publish.
        :param args: The positional arguments to pass to the event's
                     subscribers.
        :param kwargs: The keyword arguments to pass to the event's
                       subscribers.
        z"Exception during event publicationNz/publish %s: args = %s, kwargs = %s, result = %s)rè  r»   r  rÀ  r%   rR  )rë   rá  ÚargsÚkwargsr+   râ  rÉ   s          r0   ÚpublishzEventMixin.publish  sÃ   € ð ˆØ×.Ò.¨uÑ5Ô5ð 	!ð 	!ˆJðØ"˜
 5Ð:¨4Ð:Ð:Ð:°6Ð:Ð:��øÝð ð ð Ý× Ò Ð!EÑFÔFÐFØ���ðøøøð �MŠM˜%Ñ Ô Ð Ð Ý�ŠÐFØ˜D &¨&ñ	2ô 	2ð 	2àˆs   ›(¨&AÁANrg  )	rð   rô   rõ   rÚ  rì   r  rú   rè  rì  rE   r2   r0   rÜ  rÜ  ß  sn   € € € € € ðð ðð ð ð*ð *ð *ð *ð(
'ð 
'ð 
'ð6ð 6ð 6ðð ð ð ð r2   rÜ  c                   óf   — e Zd Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Z	e
d	„ ¦   «         Ze
d
„ ¦   «         ZdS )Ú	Sequencerc                 óH   — i | _         i | _        t          ¦   «         | _        d S r”   )Ú_predsÚ_succsrÑ   Ú_nodesr	  s    r0   rì   zSequencer.__init__(  s   € ØˆŒØˆŒÝ‘e”eˆŒˆˆr2   c                 ó:   — | j                              |¦  «         d S r”   )rò  r  )rë   Únodes     r0   Úadd_nodezSequencer.add_node-  s   € ØŒ�Š˜ÑÔÐÐÐr2   Fc                 ó0  — || j         v r| j                              |¦  «         |rît          | j                             |d¦  «        ¦  «        D ]}|                      ||¦  «         Œt          | j                             |d¦  «        ¦  «        D ]}|                      ||¦  «         Œt          | j                             ¦   «         ¦  «        D ]\  }}|s| j        |= Œt          | j                             ¦   «         ¦  «        D ]\  }}|s| j        |= Œd S d S )NrE   )rò  rú   rÑ   rð  r¿  rñ  r^  r¹   )rë   rô  Úedgesrž   r/   rÇ   rT   s          r0   Úremove_nodezSequencer.remove_node0  s3  € Ø�4”;ÐÐØŒK×Ò˜tÑ$Ô$Ð$Øð 	'Ý˜œŸš¨¨rÑ2Ô2Ñ3Ô3ð %ð %�Ø—’˜A˜tÑ$Ô$Ð$Ð$Ý˜œŸš¨¨rÑ2Ô2Ñ3Ô3ð %ð %�Ø—’˜D !Ñ$Ô$Ð$Ð$å˜Tœ[×.Ò.Ñ0Ô0Ñ1Ô1ð 'ð '‘��1Øð 'Øœ A˜øÝ˜Tœ[×.Ò.Ñ0Ô0Ñ1Ô1ð 'ð '‘��1Øð 'Øœ A˜øð	'ð 	'ð'ð 'r2   c                 óþ   — ||k    sJ ‚| j                              |t          ¦   «         ¦  «                             |¦  «         | j                             |t          ¦   «         ¦  «                             |¦  «         d S r”   )rð  Ú
setdefaultrÑ   r  rñ  )rë   ÚpredÚsuccs      r0   r  zSequencer.add@  si   € Ø�tŠ|ˆ|ˆ|ˆ|ØŒ×Ò˜t¥S¡U¤UÑ+Ô+×/Ò/°Ñ5Ô5Ð5ØŒ×Ò˜t¥S¡U¤UÑ+Ô+×/Ò/°Ñ5Ô5Ð5Ð5Ð5r2   c                 ó(  — ||k    sJ ‚	 | j         |         }| j        |         }n # t          $ r t          d|z  ¦  «        ‚w xY w	 |                     |¦  «         |                     |¦  «         d S # t          $ r t          |›d|›�¦  «        ‚w xY w)Nz%r not a successor of anythingz not a successor of )rð  rñ  ÚKeyErrorrø   rú   )rë   rû  rü  ÚpredsÚsuccss        r0   rú   zSequencer.removeE  sÊ   € Ø�tŠ|ˆ|ˆ|ˆ|ð	FØ”K Ô%ˆEØ”K Ô%ˆEˆEøÝð 	Fð 	Fð 	FÝÐ=ÀÑDÑEÔEÐEð	Føøøð	HØ�LŠL˜ÑÔÐØ�LŠL˜ÑÔÐÐÐøÝð 	Hð 	Hð 	HÝ¸4¸4¸4ÀÀÐFÑGÔGÐGð	Høøøs   Š% ¥AÁ*A2 Á2Bc                 ó8   — || j         v p|| j        v p|| j        v S r”   )rð  rñ  rò  )rë   Ústeps     r0   Úis_stepzSequencer.is_stepR  s.   € Ø˜œÐ#ð $ t¨t¬{Ð':ð $Ø˜œÐ#ð	%r2   c                 ó  — |                       |¦  «        st          d|z  ¦  «        ‚g }g }t          ¦   «         }|                     |¦  «         |r¦|                     d¦  «        }||v r1||k    r*|                     |¦  «         |                     |¦  «         nZ|                     |¦  «         |                     |¦  «         | j                             |d¦  «        }| 	                    |¦  «         |°¦t          |¦  «        S )NzUnknown: %rr   rE   )r  rø   rÑ   r%   r{   rú   r  rð  r¿  ÚextendÚreversed)rë   Úfinalr+   ÚtodoÚseenr  rÿ  s          r0   Ú	get_stepszSequencer.get_stepsV  s   € Ø�|Š|˜EÑ"Ô"ð 	4Ý˜]¨UÑ2Ñ3Ô3Ð3ØˆØˆÝ‰uŒuˆØ�Š�EÑÔÐØð 	#Ø—8’8˜A‘;”;ˆDØ�tˆ|ˆ|ð ˜5’=�=Ø—M’M $Ñ'Ô'Ð'Ø—M’M $Ñ'Ô'Ð'øà—’˜‘”�Ø—’˜dÑ#Ô#Ð#ØœŸš¨¨bÑ1Ô1�Ø—’˜EÑ"Ô"Ð"ð ð 	#õ  ˜ÑÔÐr2   c                 óv   ‡‡‡‡‡‡‡— dgŠg Ši Ši Šg Š| j         Šˆˆˆˆˆˆˆfd„Š‰D ]}|‰vr ‰|¦  «         Œ‰S )Nr   c                 ó<  •— ‰d         ‰| <   ‰d         ‰| <   ‰dxx         dz  cc<   ‰
                      | ¦  «         	 ‰|          }n# t          $ r g }Y nw xY w|D ]T}|‰vr+ ‰|¦  «         t          ‰|          ‰|         ¦  «        ‰| <   Œ1|‰
v rt          ‰|          ‰|         ¦  «        ‰| <   ŒU‰|          ‰|          k    rZg }	 ‰
                     ¦   «         }|                      |¦  «         || k    rnŒ1t	          |¦  «        }‰	                      |¦  «         d S d S ©Nr   r   )r%   r»   Úminr{   Útuple)rô  Ú
successorsÚ	successorÚconnected_componentÚ	componentÚgraphÚindexÚindex_counterÚlowlinksr+   ÚstackÚstrongconnects        €€€€€€€r0   r  z3Sequencer.strong_connections.<locals>.strongconnectz  sx  ø€ à'¨Ô*ˆE�$‰KØ*¨1Ô-ˆH�T‰NØ˜!ÐÐÔ Ñ!ÐÐÑØ�LŠL˜ÑÔÐð Ø" 4œ[�
�
øÝð  ð  ð  Ø�
�
�
ð øøøà'ð Jð J�	Ø HÐ,Ð,à!�M )Ñ,Ô,Ð,Ý%(¨°$¬¸ÀÔ8KÑ%LÔ%L�H˜T‘N�NØ %Ð'Ð'õ &)¨°$¬¸¸iÔ8HÑ%IÔ%I�H˜T‘Nøð ˜Œ~  t¤Ò,Ð,Ø&(Ð#ð0Ø %§	¢	¡¤�IØ'×.Ò.¨yÑ9Ô9Ð9Ø  DÒ(Ð(¨%ð0õ "Ð"5Ñ6Ô6�	à—’˜iÑ(Ô(Ð(Ð(Ð(ð -Ð,s   ¾A ÁAÁA)rñ  )	rë   rô  r  r  r  r  r+   r  r  s	     @@@@@@@r0   Ústrong_connectionszSequencer.strong_connectionso  s—   øøøøøøø€ ð ˜ˆØˆØˆØˆØˆà”ˆð 	)ð  	)ð  	)ð  	)ð  	)ð  	)ð  	)ð  	)ð  	)ð  	)ð  	)ðD ð 	$ð 	$ˆDØ˜8Ð#Ð#Ø�˜dÑ#Ô#Ð#øàˆr2   c           	      ó  — dg}| j         D ]0}| j         |         }|D ]}|                     d|›d|›d�¦  «         ŒŒ1| j        D ]}|                     d|z  ¦  «         Œ|                     d¦  «         d                     |¦  «        S )Nzdigraph G {z  z -> rV   z  %s;Ú}ú
)rð  r%   rò  r'   )rë   r+   rü  rÿ  rû  rô  s         r0   ÚdotzSequencer.dot¢  s¬   € à�ˆØ”Kð 	<ð 	<ˆDØ”K Ô%ˆEØð <ð <�Ø—’�¨t¨t¨t°T°T°TÐ:Ñ;Ô;Ð;Ð;ð<à”Kð 	*ð 	*ˆDØ�MŠM˜' D™.Ñ)Ô)Ð)Ð)Ø�Š�cÑÔÐØ�yŠy˜Ñ Ô Ð r2   Nrf  )rð   rô   rõ   rì   rõ  rø  r  rú   r  r
  Úpropertyr  r  rE   r2   r0   rî  rî  '  s¼   € € € € € ðð ð ð
ð ð ð'ð 'ð 'ð 'ð 6ð 6ð 6ð
Hð Hð Hð%ð %ð %ð ð  ð  ð2 ð0ð 0ñ „Xð0ðd ð	!ð 	!ñ „Xð	!ð 	!ð 	!r2   rî  )ú.tar.gzú.tar.bz2ú.tarú.zipú.tgzú.tbzú.whlTc                 óÆ  ‡‡
— ˆˆ
fd„}t           j                             ‰¦  «        Št          ‰¦  «        Š
d }|€x|                      d¦  «        rd}n`|                      d¦  «        rd}d}nF|                      d¦  «        rd}d	}n,|                      d
¦  «        rd}d}nt          d| z  ¦  «        ‚	 |dk    r7t          | d¦  «        }|r$|                     ¦   «         }|D ]} ||¦  «         Œn;t          j	        | |¦  «        }|r$| 
                    ¦   «         }|D ]} ||¦  «         Œ|dk    rft          j        d         dk     rP|                     ¦   «         D ];}	t          |	j        t           ¦  «        s|	j                             d¦  «        |	_        Œ<|                     ‰¦  «         |r|                     ¦   «          d S d S # |r|                     ¦   «          w w xY w)Nc                 óP  •— t          | t          ¦  «        s|                      d¦  «        } t          j                             t          j                             ‰| ¦  «        ¦  «        }|                     ‰¦  «        r|‰         t          j        k    rt          d|z  ¦  «        ‚d S )Nr©   zpath outside destination: %r)
r–   r   Údecoderu   rv   r  r'   rc   rw   rø   )rv   rž   Údest_dirÚplens     €€r0   Ú
check_pathzunarchive.<locals>.check_path·  sŠ   ø€ Ý˜$¥	Ñ*Ô*ð 	(Ø—;’;˜wÑ'Ô'ˆDÝŒG�OŠO�BœGŸLšL¨°4Ñ8Ô8Ñ9Ô9ˆØ�|Š|˜HÑ%Ô%ð 	A¨¨4¬µB´FÒ):Ð):ÝÐ;¸aÑ?Ñ@Ô@Ð@ð *;Ð):r2   )r#  r&  Úzip)r   r$  Útgzzr:gz)r!  r%  Útbzzr:bz2r"  Útarr»  zUnknown format for %rr   r¨   r©   )ru   rv   r  rx   r˜  rø   r   ÚnamelistÚtarfiler(  Úgetnamesr�   r³   Ú
getmembersr–   r]   r   r)  Ú
extractallr¿   )Úarchive_filenamer*  Úformatr  r,  Úarchiver<  Únamesr]   Útarinfor+  s    `        @r0   Ú	unarchiver;  µ  sW  øø€ ðAð Að Að Að Að Aõ Œw�Š˜xÑ(Ô(€HÝˆx‰=Œ=€DØ€GØ€~Ø×$Ò$Ð%5Ñ6Ô6ð 	IØˆFˆFØ×&Ò&Ð':Ñ;Ô;ð 
	IØˆFØˆDˆDØ×&Ò&Ð';Ñ<Ô<ð 	IØˆFØˆDˆDØ×&Ò& vÑ.Ô.ð 	IØˆFØˆDˆDåÐ4Ð7GÑGÑHÔHÐHðØ�UŠ?ˆ?ÝÐ.°Ñ4Ô4ˆGØð %Ø×(Ò(Ñ*Ô*�Ø!ð %ð %�DØ�J˜tÑ$Ô$Ð$Ð$øå”lÐ#3°TÑ:Ô:ˆGØð %Ø×(Ò(Ñ*Ô*�Ø!ð %ð %�DØ�J˜tÑ$Ô$Ð$Ð$Ø�UŠ?ˆ?�sÔ/°Ô2°QÒ6Ð6ð
 #×-Ò-Ñ/Ô/ð @ð @�Ý! '¤,µ	Ñ:Ô:ð @Ø#*¤<×#6Ò#6°wÑ#?Ô#?�G”LøØ×Ò˜8Ñ$Ô$Ð$ð ð 	Ø�MŠM‰OŒOˆOˆOˆOð	ð 	øˆ7ð 	Ø�MŠM‰OŒOˆOˆOð	øøøs   Â4C9G ÇG c                 óœ  — t          j        ¦   «         }t          | ¦  «        }t          |d¦  «        5 }t	          j        | ¦  «        D ]k\  }}}|D ]b}t          j                             ||¦  «        }||d…         }	t          j                             |	|¦  «        }
|                     ||
¦  «         ŒcŒl	 ddd¦  «         n# 1 swxY w Y   |S )z*zip a directory tree into a BytesIO objectr$  N)	ÚioÚBytesIOrx   r   ru   Úwalkrv   r'   rÒ   )Ú	directoryr+   ÚdlenÚzfry   rb  r;  r]   ÚfullÚrelr‚   s              r0   Úzip_dirrE  ë  s  € åŒZ‰\Œ\€FÝˆy‰>Œ>€DÝ	�˜Ñ	Ô	ð % Ý!#¤¨Ñ!3Ô!3ð 	%ð 	%ÑˆD�$˜Øð %ð %�Ý”w—|’| D¨$Ñ/Ô/�Ø˜4˜5˜5”k�Ý”w—|’| C¨Ñ.Ô.�Ø—’˜˜tÑ$Ô$Ð$Ð$ð	%ð	%ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð €Ms   ³BCÃCÃC)r   ÚKÚMÚGÚTÚPc                   ó�   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Ze	d	„ ¦   «         Z
e	d
„ ¦   «         Zd„ Ze	d„ ¦   «         Ze	d„ ¦   «         ZdS )ÚProgressÚUNKNOWNr   éd   c                 ón   — |�||k    sJ ‚|x| _         | _        || _        d | _        d| _        d| _        d S )Nr   F)r  ÚcurÚmaxÚstartedÚelapsedÚdone)rë   ÚminvalÚmaxvals      r0   rì   zProgress.__init__  sE   € Øˆ~ ¨6Ò!1Ð!1Ð!1Ð!1Ø$Ð$ˆŒ�4”8ØˆŒØˆŒØˆŒØˆŒ	ˆ	ˆ	r2   c                 óº   — | j         |k    sJ ‚| j        �|| j        k    sJ ‚|| _        t          j        ¦   «         }| j        €	|| _        d S || j        z
  | _        d S r”   )r  rQ  rP  ÚtimerR  rS  )rë   ÚcurvalÚnows      r0   ÚupdatezProgress.update
  sf   € ØŒx˜6Ò!Ð!Ð!Ð!ØŒxÐ 6¨T¬XÒ#5Ð#5Ð#5Ð#5ØˆŒÝŒi‰kŒkˆØŒ<ÐØˆDŒLˆLˆLà ¤Ñ-ˆDŒLˆLˆLr2   c                 óP   — |dk    sJ ‚|                       | j        |z   ¦  «         d S )Nr   )r[  rP  )rë   Úincrs     r0   Ú	incrementzProgress.increment  s-   € Ø�qŠyˆyˆyˆyØ�Š�D”H˜t‘OÑ$Ô$Ð$Ð$Ð$r2   c                 ó:   — |                       | j        ¦  «         | S r”   )r[  r  r	  s    r0   rª  zProgress.start  s   € Ø�Š�D”HÑÔÐØˆr2   c                 óV   — | j         �|                      | j         ¦  «         d| _        d S ©NT)rQ  r[  rT  r	  s    r0   ÚstopzProgress.stop  s)   € ØŒ8ÐØ�KŠK˜œÑ!Ô!Ð!ØˆŒ	ˆ	ˆ	r2   c                 ó,   — | j         €| j        n| j         S r”   )rQ  Úunknownr	  s    r0   ÚmaximumzProgress.maximum!  s   € à#œxÐ/ˆtŒ|ˆ|°T´XÐ=r2   c                 ó|   — | j         rd}n1| j        €d}n'd| j        | j        z
  z  | j        | j        z
  z  }d|z  }|S )Nz100 %z ?? %g      Y@z%3d %%)rT  rQ  rP  r  )rë   r+   rT   s      r0   Ú
percentagezProgress.percentage%  sQ   € àŒ9ð 	"ØˆFˆFØŒXÐØˆFˆFà˜œ D¤HÑ,Ñ-°´¸D¼HÑ1DÑEˆAØ ‘\ˆFØˆr2   c                 ó”   — |dk    r| j         �| j        | j        k    rd}n't          j        dt          j        |¦  «        ¦  «        }|S )Nr   z??:??:??z%H:%M:%S)rQ  rP  r  rX  ÚstrftimeÚgmtime)rë   Údurationr+   s      r0   Úformat_durationzProgress.format_duration0  sI   € Ø˜ŠMˆM˜tœxÐ/°4´8¸t¼xÒ3GÐ3GØˆFˆFõ ”] :­t¬{¸8Ñ/DÔ/DÑEÔEˆFØˆr2   c                 ó"  — | j         r
d}| j        }ned}| j        €d}nY| j        dk    s| j        | j        k    rd}n;t          | j        | j        z
  ¦  «        }|| j        | j        z
  z  }|dz
  | j        z  }|›d|                      |¦  «        ›�S )NÚDonezETA r÷   r   r   z: )rT  rS  rQ  rP  r  Úfloatrl  )rë   rƒ   rm   s      r0   ÚETAzProgress.ETA9  s­   € àŒ9ð 	+ØˆFØ”ˆAˆAð ˆFØŒxÐØ��Ø” Ò"Ð" t¤x°4´8Ò';Ð';Ø��õ ˜$œ( T¤XÑ-Ñ.Ô.�Ø�T”X ¤Ñ(Ñ(�Ø˜‘U˜dœlÑ*�Ø!˜6˜6 4×#7Ò#7¸Ñ#:Ô#:Ð#:Ð;Ð;r2   c                 óˆ   — | j         dk    rd}n| j        | j        z
  | j         z  }t          D ]}|dk     r n|dz  }Œd||fz  S )Nr   g        iè  g     @�@z%d %sB/s)rS  rP  r  ÚUNITS)rë   r+   Úunits      r0   ÚspeedzProgress.speedL  sc   € àŒ<˜1ÒÐØˆFˆFà”h ¤Ñ)¨T¬\Ñ9ˆFÝð 	ð 	ˆDØ˜Š}ˆ}Ø�Ø�fÑˆFˆFØ˜V T˜NÑ*Ð*r2   N)r   rN  )rð   rô   rõ   rd  rì   r[  r^  rª  rb  r  re  rg  rl  rp  rt  rE   r2   r0   rL  rL  ÿ  sä   € € € € € Ø€Gðð ð ð ð.ð .ð .ð%ð %ð %ðð ð ðð ð ð
 ð>ð >ñ „Xð>ð ðð ñ „Xððð ð ð ð<ð <ñ „Xð<ð$ ð	+ð 	+ñ „Xð	+ð 	+ð 	+r2   rL  z\{([^}]*)\}z[^/\\,{]\*\*|\*\*[^/\\,}]z^[^{]*\}|\{[^}]*$c                 óØ   — t                                | ¦  «        rd}t          || z  ¦  «        ‚t                               | ¦  «        rd}t          || z  ¦  «        ‚t	          | ¦  «        S )zAExtended globbing function that supports ** and {opt1,opt2,opt3}.z7invalid glob %r: recursive glob "**" must be used alonez2invalid glob %r: mismatching set marker '{' or '}')Ú_CHECK_RECURSIVE_GLOBr‚  rø   Ú_CHECK_MISMATCH_SETÚ_iglob)Ú	path_globr   s     r0   r   r   a  sj   € å×#Ò# IÑ.Ô.ð *ØKˆÝ˜˜y™Ñ)Ô)Ð)Ý×!Ò! )Ñ,Ô,ð *ØFˆÝ˜˜y™Ñ)Ô)Ð)Ý�)ÑÔÐr2   c              #   óô  K  — t                                | d¦  «        }t          |¦  «        dk    rit          |¦  «        dk    s
J |¦   «         ‚|\  }}}|                     d¦  «        D ].}t          d                     |||f¦  «        ¦  «        D ]}|V — ŒŒ/d S d| vrt          | ¦  «        D ]}|V — Œd S |                      dd¦  «        \  }}|dk    rd}|dk    rd}n*|                     d¦  «        }|                     d	¦  «        }t          j        |¦  «        D ]Y\  }}}	t          j	         
                    |¦  «        }t          t          j	                             ||¦  «        ¦  «        D ]}
|
V — ŒŒZd S )
Nr   r¨   rL   r   z**rj  r¸  rt   ú\)Ú	RICH_GLOBr¢   rx   rx  r'   Ú	std_iglobr(   ru   r?  rv   rÓ  )ry  Úrich_path_globrƒ   rÑ   r�   Úitemrv   ÚradicalÚdirr;  rØ  s              r0   rx  rx  l  s¾  è è € Ý—_’_ Y°Ñ2Ô2€NÝ
ˆ>ÑÔ˜QÒÐÝ�>Ñ"Ô" aÒ'Ð'Ð'¨Ñ'Ô'Ð'Ø,Ñˆ��VØ—I’I˜c‘N”Nð 	ð 	ˆDÝ˜rŸwšw¨°°fÐ'=Ñ>Ô>Ñ?Ô?ð ð �Ø�
�
�
�
ðð	ð 	ð �yÐ Ð Ý! )Ñ,Ô,ð ð �Ø�
�
�
�
ðð ð (Ÿošo¨d°AÑ6Ô6‰OˆF�GØ˜Š|ˆ|Ø�Ø˜"Š}ˆ}Ø��ð "Ÿ.š.¨Ñ-Ô-�Ø!Ÿ.š.¨Ñ.Ô.�Ý$&¤G¨F¡O¤Oð ð Ñ ��c˜5Ý”w×'Ò'¨Ñ-Ô-�Ý ¥¤§¢¨d°GÑ!<Ô!<Ñ=Ô=ð ð �BØ�H�H�H�Hððð r2   )ÚHTTPSHandlerÚmatch_hostnameÚCertificateErrorc                   ó   — e Zd ZdZdZd„ ZdS )ÚHTTPSConnectionNTc                 ó¸  — t          j        | j        | j        f| j        ¦  «        }t          | dd¦  «        r|| _        |                      ¦   «          t          j	        t          j
        ¦  «        }t          t          d¦  «        r|xj        t          j        z  c_        | j        r |                     | j        | j        ¦  «         i }| j        rLt          j        |_        |                     | j        ¬¦  «         t          t          dd¦  «        r
| j        |d<    |j        |fi |¤Ž| _        | j        r¢| j        r�	 t/          | j                             ¦   «         | j        ¦  «         t2                               d| j        ¦  «         d S # t6          $ r? | j                             t           j        ¦  «         | j                             ¦   «          ‚ w xY wd S d S )NÚ_tunnel_hostFÚOP_NO_SSLv2)ÚcafileÚHAS_SNIÚserver_hostnamezHost verified: %s)rá   Úcreate_connectionÚhostÚportÚtimeoutr�   ÚsockÚ_tunnelÚsslÚ
SSLContextÚPROTOCOL_SSLv23rŽ   Úoptionsr‰  Ú	cert_fileÚload_cert_chainÚkey_fileÚca_certsÚCERT_REQUIREDÚverify_modeÚload_verify_locationsÚwrap_socketÚcheck_domainrƒ  Úgetpeercertr  rR  r„  ÚshutdownÚ	SHUT_RDWRr¿   )rë   r‘  Úcontextrë  s       r0   ÚconnectzHTTPSConnection.connect•  sÅ  € ÝÔ+¨T¬Y¸¼	Ð,BÀDÄLÑQÔQˆDÝ�t˜^¨UÑ3Ô3ð Ø �”	Ø—’‘”�å”n¥SÔ%8Ñ9Ô9ˆGÝ•s˜MÑ*Ô*ð 3Ø�”¥3¤?Ñ2�”ØŒ~ð GØ×'Ò'¨¬¸¼ÑFÔFÐFØˆFØŒ}ð :Ý&)Ô&7�Ô#Ø×-Ò-°T´]Ð-ÑCÔCÐCÝ�3 	¨5Ñ1Ô1ð :Ø04´	�FÐ,Ñ-à+˜Ô+¨DÐ;Ð;°FÐ;Ð;ˆDŒIØŒ}ð  Ô!2ð ðÝ" 4¤9×#8Ò#8Ñ#:Ô#:¸D¼IÑFÔFÐFÝ—L’LÐ!4°d´iÑ@Ô@Ð@Ð@Ð@øÝ'ð ð ð Ø”I×&Ò&¥vÔ'7Ñ8Ô8Ð8Ø”I—O’OÑ%Ô%Ð%Øðøøøð	ð ð ð s   Ä>AF ÆA	G)rð   rô   rõ   rš  rŸ  r¤  rE   r2   r0   r†  r†  �  s-   € € € € € ØˆØˆð	ð 	ð 	ð 	ð 	r2   r†  c                   ó"   — e Zd Zdd„Zd„ Zd„ ZdS )r‚  Tc                 óJ   — t          j        | ¦  «         || _        || _        d S r”   )ÚBaseHTTPSHandlerrì   rš  rŸ  )rë   rš  rŸ  s      r0   rì   zHTTPSHandler.__init__²  s(   € ÝÔ% dÑ+Ô+Ð+Ø$ˆDŒMØ ,ˆDÔÐÐr2   c                 ó\   — t          |i |¤Ž}| j        r| j        |_        | j        |_        |S )a  
            This is called to create a connection instance. Normally you'd
            pass a connection class to do_open, but it doesn't actually check for
            a class, and just expects a callable. As long as we behave just as a
            constructor would have, we should be OK. If it ever changes so that
            we *must* pass a class, we'll create an UnsafeHTTPSConnection class
            which just sets check_domain to False in the class definition, and
            choose which one to pass to do_open.
            )r†  rš  rŸ  )rë   rê  rë  r+   s       r0   Ú_conn_makerzHTTPSHandler._conn_maker·  s9   € õ % dÐ5¨fÐ5Ð5ˆFØŒ}ð 8Ø"&¤-�”Ø&*Ô&7�Ô#ØˆMr2   c                 óº   — 	 |                       | j        |¦  «        S # t          $ r3}dt          |j        ¦  «        v rt          d|j        z  ¦  «        ‚‚ d }~ww xY w)Nzcertificate verify failedz*Unable to verify server certificate for %s)Údo_openr©  r   ÚstrÚreasonr„  rŽ  )rë   rh   rÅ  s      r0   Ú
https_openzHTTPSHandler.https_openÇ  sy   € ðØ—|’| DÔ$4°cÑ:Ô:Ð:øÝð ð ð Ø.µ#°a´h±-´-Ð?Ð?Ý*ð ,4Ø69´hñ,?ñ @ô @ð @ð øøøøðøøøs   ‚ �
A§.AÁANrg  )rð   rô   rõ   rì   r©  r®  rE   r2   r0   r‚  r‚  ±  sF   € € € € € ð	-ð 	-ð 	-ð 	-ð
	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r2   r‚  c                   ó   — e Zd Zd„ ZdS )ÚHTTPSOnlyHandlerc                 ó&   — t          d|z  ¦  «        ‚)NzAUnexpected HTTP request on what should be a secure connection: %s)r   )rë   rh   s     r0   Ú	http_openzHTTPSOnlyHandler.http_openÛ  s!   € Ýð ,Ø.1ñ2ñ 3ô 3ð 3r2   N)rð   rô   rõ   r²  rE   r2   r0   r°  r°  Ú  s#   € € € € € ð	3ð 	3ð 	3ð 	3ð 	3r2   r°  c                   ó   — e Zd Zdd„Zd„ ZdS )Ú	Transportr   c                 óT   — || _         t          j                             | |¦  «         d S r”   )r�  r   r´  rì   ©rë   r�  Úuse_datetimes      r0   rì   zTransport.__init__ã  s(   € ØˆŒÝÔ×$Ò$ T¨<Ñ8Ô8Ð8Ð8Ð8r2   c                 óÂ   — |                       |¦  «        \  }}}| j        r|| j        d         k    r"|| _        |t          j        |¦  «        f| _        | j        d         S r  )Úget_host_infoÚ_connectionÚ_extra_headersr   ÚHTTPConnection)rë   rŽ  ÚhÚehÚx509s        r0   Úmake_connectionzTransport.make_connectionç  sf   € Ø×(Ò(¨Ñ.Ô.‰ˆˆ2ˆtØÔð 	? 4¨4Ô+;¸AÔ+>Ò#>Ð#>Ø"$ˆDÔØ#¥WÔ%;¸AÑ%>Ô%>Ð>ˆDÔØÔ Ô"Ð"r2   N©r   ©rð   rô   rõ   rì   rÀ  rE   r2   r0   r´  r´  â  s7   € € € € € ð9ð 9ð 9ð 9ð#ð #ð #ð #ð #r2   r´  c                   ó   — e Zd Zdd„Zd„ ZdS )ÚSafeTransportr   c                 óT   — || _         t          j                             | |¦  «         d S r”   )r�  r   rÄ  rì   r¶  s      r0   rì   zSafeTransport.__init__ð  s(   € Ø"ˆDŒLÝÔ#×,Ò,¨T°<Ñ@Ô@Ð@Ð@Ð@r2   c                 óÜ   — |                       |¦  «        \  }}}|si }| j        |d<   | j        r|| j        d         k    r!|| _        |t	          j        |d fi |¤Žf| _        | j        d         S )Nr�  r   r   )r¹  r�  rº  r»  r   r†  )rë   rŽ  r½  r¾  rë  s        r0   rÀ  zSafeTransport.make_connectionô  sš   € Ø ×.Ò.¨tÑ4Ô4‰MˆAˆr�6Øð Ø�Ø $¤ˆF�9ÑØÔ#ð K t¨tÔ/?ÀÔ/BÒ'BÐ'BØ&(�Ô#Ø#'­Ô)@ÀÀDð *Kð *KØCIð*Kð *Kð $K�Ô àÔ# AÔ&Ð&r2   NrÁ  rÂ  rE   r2   r0   rÄ  rÄ  ï  s;   € € € € € ð	Að 	Að 	Að 	Að		'ð 		'ð 		'ð 		'ð 		'r2   rÄ  c                   ó   — e Zd Zd„ ZdS )ÚServerProxyc                 ó&  — |                      dd ¦  «        x| _        }|�Yt          |¦  «        d         }|                     dd¦  «        }|dk    rt          }nt
          } |||¬¦  «        x|d<   }|| _        t          j        j	        | |fi |¤Ž d S )Nr�  r   r·  Úhttps)r·  Ú	transport)
r{   r�  r   r¿  rÄ  r´  rË  r   rÈ  rì   )rë   rk   rë  r�  rf   r·  Útclsrm   s           r0   rì   zServerProxy.__init__  s§   € Ø!'§¢¨I°tÑ!<Ô!<Ð<ˆŒ�wð Ðå˜c‘]”] 1Ô%ˆFØ!Ÿ:š: n°aÑ8Ô8ˆLØ˜Ò Ð Ý$��å �Ø&* d¨7ÀÐ&NÑ&NÔ&NÐNˆF�;Ñ !ØˆDŒNÝÔÔ& t¨SÐ;Ð;°FÐ;Ð;Ð;Ð;Ð;r2   N)rð   rô   rõ   rì   rE   r2   r0   rÈ  rÈ     s#   € € € € € ð<ð <ð <ð <ð <r2   rÈ  c                 ój   — t           j        d         dk     r|dz  }n
d|d<   d|d<   t          | |fi |¤ŽS )Nr   r¨   Úbr   Únewliner©   r&  )r�   r³   r(  )rØ  r<  rë  s      r0   Ú	_csv_openrÐ    sN   € Ý
Ô˜Ô˜QÒÐØ�‰ˆˆàˆˆyÑð %ˆˆzÑÝ��DÐ#Ð#˜FÐ#Ð#Ð#r2   c                   ó\   — e Zd Z ed¦  «         ed¦  «         ed¦  «        dœZd„ Zd„ ZdS )ÚCSVBaserL   ú"r  )Ú	delimiterÚ	quotecharÚlineterminatorc                 ó   — | S r”   rE   r	  s    r0   Ú	__enter__zCSVBase.__enter__(  ó   € Øˆr2   c                 ó8   — | j                              ¦   «          d S r”   )r±   r¿   )rë   r‹  s     r0   Ú__exit__zCSVBase.__exit__+  s   € ØŒ×ÒÑÔÐÐÐr2   N)rð   rô   rõ   r¬  ÚdefaultsrØ  rÛ  rE   r2   r0   rÒ  rÒ  !  s_   € € € € € à�S˜‘X”XØ�S˜‘X”XØ˜#˜d™)œ)ðð €Hðð ð ðð ð ð ð r2   rÒ  c                   ó$   — e Zd Zd„ Zd„ Zd„ ZeZdS )Ú	CSVReaderc                 ó  — d|v rC|d         }t           j        d         dk    r t          j        d¦  «        |¦  «        }|| _        nt          |d         d¦  «        | _        t          j        | j        fi | j        ¤Ž| _        d S )Nr±   r   r¨   r©   rv   r»  )	r�   r³   r´   rµ   r±   rÐ  ÚcsvrÄ  rÜ  )rë   rë  r±   s      r0   rì   zCSVReader.__init__0  sƒ   € Ø�vÐÐØ˜HÔ%ˆFÝÔ Ô" aÒ'Ð'à2�Ô)¨'Ñ2Ô2°6Ñ:Ô:�Ø ˆDŒKˆKå# F¨6¤N°CÑ8Ô8ˆDŒKÝ”j ¤Ð>Ð>°´Ð>Ð>ˆŒˆˆr2   c                 ó   — | S r”   rE   r	  s    r0   Ú__iter__zCSVReader.__iter__;  rÙ  r2   c                 óÞ   — t          | j        ¦  «        }t          j        d         dk     rBt	          |¦  «        D ]2\  }}t          |t          ¦  «        s|                     d¦  «        ||<   Œ3|S ©Nr   r¨   r©   )ÚnextrÄ  r�   r³   r¤  r–   r   r)  )rë   r+   rl   r  s       r0   rå  zCSVReader.next>  sl   € Ý�d”kÑ"Ô"ˆÝÔ˜AÔ Ò"Ð"Ý$ VÑ,Ô,ð 5ð 5‘��4Ý! $­	Ñ2Ô2ð 5Ø $§¢¨GÑ 4Ô 4�F˜1‘IøØˆr2   N)rð   rô   rõ   rì   râ  rå  Ú__next__rE   r2   r0   rÞ  rÞ  /  sB   € € € € € ð	?ð 	?ð 	?ðð ð ðð ð ð €H€H€Hr2   rÞ  c                   ó   — e Zd Zd„ Zd„ ZdS )Ú	CSVWriterc                 ór   — t          |d¦  «        | _        t          j        | j        fi | j        ¤Ž| _        d S )Nr$  )rÐ  r±   rà  ÚwriterrÜ  )rë   rØ  rë  s      r0   rì   zCSVWriter.__init__I  s4   € Ý  CÑ(Ô(ˆŒÝ”j ¤Ð>Ð>°´Ð>Ð>ˆŒˆˆr2   c                 óö   — t           j        d         dk     rHg }|D ]A}t          |t          ¦  «        r|                     d¦  «        }|                     |¦  «         ŒB|}| j                             |¦  «         d S rä  )r�   r³   r–   r   r1  r%   rê  Úwriterow)rë   Úrowr»  r  s       r0   rì  zCSVWriter.writerowM  s~   € ÝÔ˜AÔ Ò"Ð"ØˆAØð ð �Ý˜d¥IÑ.Ô.ð 0ØŸ;š; wÑ/Ô/�DØ—’˜‘”��ØˆCØŒ×Ò˜SÑ!Ô!Ð!Ð!Ð!r2   N)rð   rô   rõ   rì   rì  rE   r2   r0   rè  rè  H  s2   € € € € € ð?ð ?ð ?ð"ð "ð "ð "ð "r2   rè  c                   ó\   ‡ — e Zd Z eej        ¦  «        Zded<   dˆ fd„	Zd„ Zd„ Zd„ Z	ˆ xZ
S )	ÚConfiguratorÚinc_convertÚincNc                 óŒ   •— t          t          | ¦  «                             |¦  «         |pt          j        ¦   «         | _        d S r”   )Úsuperrï  rì   ru   rÛ   r€   )rë   Úconfigr€   Ú	__class__s      €r0   rì   zConfigurator.__init__`  s7   ø€ Ý�l˜DÑ!Ô!×*Ò*¨6Ñ2Ô2Ð2ØÐ'�BœI™KœKˆŒ	ˆ	ˆ	r2   c                 óÔ  ‡ ‡‡
— ˆ
ˆ fd„Š
‰                      d¦  «        }t          |¦  «        s‰                      |¦  «        }‰                      dd ¦  «        }‰                      dd¦  «        }|rt          ˆ
fd„|D ¦   «         ¦  «        }ˆˆ
fd„‰D ¦   «         }t	          |¦  «        } ||i |¤Ž}|r4|                     ¦   «         D ]\  }}	t          || ‰
|	¦  «        ¦  «         Œ |S )Nc                 óJ  •— t          | t          t          f¦  «        r% t          | ¦  «        ˆfd„| D ¦   «         ¦  «        }n`t          | t          ¦  «        r6d| v r‰                     | ¦  «        }n1i }| D ]} ‰| |         ¦  «        ||<   Œn‰                     | ¦  «        }|S )Nc                 ó&   •— g | ]} ‰|¦  «        ‘ŒS rE   rE   )rZ   rl   Úconverts     €r0   r\   zBConfigurator.configure_custom.<locals>.convert.<locals>.<listcomp>g  s!   ø€ Ð!8Ð!8Ð!8° ' '¨!¡*¤*Ð!8Ð!8Ð!8r2   ú())r–   r^  r  ÚtypeÚdictÚconfigure_customrù  )Úor+   rÇ   rù  rë   s      €€r0   rù  z.Configurator.configure_custom.<locals>.converte  s»   ø€ Ý˜!�d¥E˜]Ñ+Ô+ð 
)Ø �˜a™œÐ!8Ð!8Ð!8Ð!8°aÐ!8Ñ!8Ô!8Ñ9Ô9��Ý˜A�tÑ$Ô$ð )Ø˜1�9�9Ø!×2Ò2°1Ñ5Ô5�F�Fà�FØð 2ð 2˜Ø$+ G¨A¨a¬D¡M¤M˜˜q™	˜	ð2ð Ÿš a™œ�ØˆMr2   rú  rj  z[]rE   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS rE   rE   )rZ   rþ  rù  s     €r0   r\   z1Configurator.configure_custom.<locals>.<listcomp>z  s!   ø€ Ð3Ð3Ð3¨˜'˜' !™*œ*Ð3Ð3Ð3r2   c                 óT   •— g | ]$}t          |¦  «        ¯| ‰‰|         ¦  «        f‘Œ%S rE   )r   )rZ   rÇ   rô  rù  s     €€r0   r\   z1Configurator.configure_custom.<locals>.<listcomp>{  s7   ø€ ÐKÐKÐK¨Q½KÈ¹N¼NÐK�!�W�W˜V AœYÑ'Ô'Ð(ÐKÐKÐKr2   )r{   r~  rp  r  rü  r¹   Úsetattr)rë   rô  rŸ   Úpropsrê  r¹   rë  r+   r±  rT   rù  s   ``        @r0   rý  zConfigurator.configure_customd  s#  øøø€ ð	ð 	ð 	ð 	ð 	ð 	ð �JŠJ�tÑÔˆÝ˜‰{Œ{ð 	 Ø—’˜Q‘”ˆAØ—
’
˜3 Ñ%Ô%ˆà�zŠz˜$ Ñ#Ô#ˆØð 	5ÝÐ3Ð3Ð3Ð3¨dÐ3Ñ3Ô3Ñ4Ô4ˆDØKÐKÐKÐKÐK°&ÐKÑKÔKˆÝ�e‘”ˆØ��DÐ#˜FÐ#Ð#ˆØð 	/ØŸš™œð /ð /‘��1Ý˜  7 7¨1¡:¤:Ñ.Ô.Ð.Ð.Øˆr2   c                 ó�   — | j         |         }t          |t          ¦  «        r#d|v r|                      |¦  «        x| j         |<   }|S )Nrú  )rô  r–   rü  rý  )rë   r¥   r+   s      r0   Ú__getitem__zConfigurator.__getitem__ƒ  sM   € Ø”˜SÔ!ˆÝ�f�dÑ#Ô#ð 	F¨°¨¨Ø(,×(=Ò(=¸fÑ(EÔ(EÐEˆDŒK˜Ñ˜vØˆr2   c                 ó  — t           j                             |¦  «        s%t           j                             | j        |¦  «        }t          j        |dd¬¦  «        5 }t          j        |¦  «        }ddd¦  «         n# 1 swxY w Y   |S )z*Default converter for the inc:// protocol.r»  r©   r%  N)	ru   rv   Úisabsr'   r€   r´   r(  r·   r¸   )rë   rÉ   r.  r+   s       r0   rð  zConfigurator.inc_convert‰  sª   € åŒw�}Š}˜UÑ#Ô#ð 	3Ý”G—L’L ¤¨EÑ2Ô2ˆEÝŒ[˜ ¨gÐ6Ñ6Ô6ð 	"¸!Ý”Y˜q‘\”\ˆFð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"àˆs   ÁA=Á=BÂBr”   )rð   rô   rõ   rü  r   Úvalue_convertersrì   rý  r  rð  Ú__classcell__)rõ  s   @r0   rï  rï  [  s‰   ø€ € € € € à�tÐ,Ô=Ñ>Ô>ÐØ+Ð�UÑð(ð (ð (ð (ð (ð (ðð ð ð>ð ð ðð ð ð ð ð ð r2   rï  c                   ó&   — e Zd ZdZdd„Zd„ Zd„ ZdS )ÚSubprocessMixinzC
    Mixin for running subprocesses and capturing their output
    FNc                 ó"   — || _         || _        d S r”   )ÚverboseÚprogress)rë   r  r  s      r0   rì   zSubprocessMixin.__init__–  s   € ØˆŒØ ˆŒˆˆr2   c                 ó~  — | j         }| j        }	 |                     ¦   «         }|sn‚|� |||¦  «         nr|s t          j                             d¦  «         n2t          j                             |                     d¦  «        ¦  «         t          j                             ¦   «          Œ™|                     ¦   «          dS )z¨
        Read lines from a subprocess' output stream and either pass to a progress
        callable (if specified) or write progress information to sys.stderr.
        TNrj  r©   )	r  r  Úreadliner�   ÚstderrrÒ   r)  Úflushr¿   )rë   r±   r£  r  r  r/   s         r0   rÄ  zSubprocessMixin.readerš  s»   € ð
 ”=ˆØ”,ˆð	#Ø—’Ñ!Ô!ˆAØð ØØÐ#Ø�˜˜GÑ$Ô$Ð$Ð$àð 8Ý”J×$Ò$ SÑ)Ô)Ð)Ð)å”J×$Ò$ Q§X¢X¨gÑ%6Ô%6Ñ7Ô7Ð7Ý”
× Ò Ñ"Ô"Ð"ð	#ð 	�Š‰Œˆˆˆr2   c                 ó0  — t          j        |ft           j        t           j        dœ|¤Ž}t          j        | j        |j        df¬¦  «        }|                     ¦   «          t          j        | j        |j        df¬¦  «        }|                     ¦   «          | 	                    ¦   «          | 
                    ¦   «          | 
                    ¦   «          | j        �|                      dd¦  «         n&| j        rt          j                             d¦  «         |S )N)Ústdoutr  r  )r  rê  r  zdone.Úmainzdone.
)Ú
subprocessÚPopenÚPIPEÚ	threadingÚThreadrÄ  r  rª  r  Úwaitr'   r  r  r�   rÒ   )rë   Úcmdrë  rž   Út1Út2s         r0   Úrun_commandzSubprocessMixin.run_command¯  sò   € ÝÔ˜Sð ?­¬Ý$.¤Oð?ð ?Ø7=ð?ð ?ˆåÔ T¤[¸¼À(Ð7KÐLÑLÔLˆØ
�Š‰
Œ
ˆ
ÝÔ T¤[¸¼À(Ð7KÐLÑLÔLˆØ
�Š‰
Œ
ˆ
Ø	�Š‰ŒˆØ
�Š‰	Œ	ˆ	Ø
�Š‰	Œ	ˆ	ØŒ=Ð$Ø�MŠM˜' 6Ñ*Ô*Ð*Ð*ØŒ\ð 	(ÝŒJ×Ò˜YÑ'Ô'Ð'Øˆr2   )FN)rð   rô   rõ   rÚ  rì   rÄ  r  rE   r2   r0   r
  r
  ’  sP   € € € € € ðð ð!ð !ð !ð !ðð ð ð*ð ð ð ð r2   r
  c                 óR   — t          j        dd| ¦  «                             ¦   «         S )z,Normalize a python package name a la PEP 503z[-_.]+r¨  )r«  Úsubr™   )r]   s    r0   Únormalize_namer!  À  s$   € õ Œ6�(˜C Ñ&Ô&×,Ò,Ñ.Ô.Ð.r2   c                   ó*   — e Zd ZdZdZdd„Zd„ Zd„ ZdS )Ú
PyPIRCFilezhttps://upload.pypi.org/legacy/ÚpypiNc                 ó    — |€=t           j                             t           j                             d¦  «        d¦  «        }|| _        || _        d S )NrŠ  z.pypirc)ru   rv   r'   rŽ  r®  r`   )rë   rØ  r`   s      r0   rì   zPyPIRCFile.__init__Ô  s>   € Øˆ:Ý”—’�bœg×0Ò0°Ñ5Ô5°yÑAÔAˆBØˆŒØˆŒˆˆr2   c                 ó®  — i }t           j                             | j        ¦  «        �r­| j        p| j        }t          j        ¦   «         }|                     | j        ¦  «         | 	                    ¦   «         }d|v rë| 
                    dd¦  «        }d„ |                     d¦  «        D ¦   «         }|g k    r	d|v rdg}�n|D ]£}d|i}| 
                    |d¦  «        |d<   d| j        fd	| j        fd
fD ]:\  }}	|                     ||¦  «        r| 
                    ||¦  «        ||<   Œ5|	||<   Œ;|dk    r|| j        dfv r| j        |d<   Œ‰|d         |k    r|d         |k    ri }Œ¤nod|v rkd}|                     |d¦  «        r| 
                    |d¦  «        }n| j        }| 
                    |d¦  «        | 
                    |d¦  «        ||| j        dœ}|S )NÚ	distutilszindex-serversc                 óf   — g | ].}|                      ¦   «         d k    ¯|                      ¦   «         ‘Œ/S )r   r€  )rZ   Úservers     r0   r\   z#PyPIRCFile.read.<locals>.<listcomp>æ  s<   € ð 5ð 5ð 5¨và%Ÿ|š|™~œ~°Ò3Ð3ð #ŸLšL™NœNà3Ð3Ð3r2   r  r$  r)  rœ  Ú
repositoryÚrealm)r�  Nzserver-loginr�  )rœ  r�  r*  r)  r+  )ru   rv   r  r®  r`   ÚDEFAULT_REPOSITORYr   ÚRawConfigParserr¶   rÂ   r¿  r¢   ÚDEFAULT_REALMÚ
has_option)
rë   r+   r*  rô  rÂ   Úindex_serversÚ_serversr)  r¥   r�   s
             r0   r¶   zPyPIRCFile.readÚ  sJ  € ØˆåŒ7�>Š>˜$œ-Ñ(Ô(ñ 4	ØœÐ< TÔ%<ˆJå!Ô1Ñ3Ô3ˆFØ�KŠK˜œÑ&Ô&Ð&Ø—’Ñ(Ô(ˆHØ˜hÐ&Ð&à &§
¢
¨;¸Ñ HÔ H�ð5ð 5Ø)×/Ò/°Ñ5Ô5ð5ñ 5ô 5�ð ˜r’>�>à Ð)Ð)Ø$* 8˜ùà"*ð (ð (˜Ø"*¨FÐ!3˜Ø-3¯ZªZ¸À
Ñ-KÔ-K˜˜zÑ*ð /;¸DÔ<SÐ-TØ.5°tÔ7IÐ-JØ-?ð-Að 6ð 6™L˜C ð  &×0Ò0°¸Ñ=Ô=ð 6Ø.4¯jªj¸ÀÑ.EÔ.E  s¡ à.5  s¡ ð
 # fÒ,Ð,Ø&¨4Ô+BÀFÐ*KÐKÐKØ37Ô3J˜F <Ñ0Ð0Ø$ XÔ.°*Ò<Ð<Ø$ \Ô2°jÒ@Ð@Ø%'˜Føð+(ð,   8Ð+Ð+à'�Ø×$Ò$ V¨\Ñ:Ô:ð 9Ø!'§¢¨F°LÑ!AÔ!A�J�Jà!%Ô!8�Jà &§
¢
¨6°:Ñ >Ô >Ø &§
¢
¨6°:Ñ >Ô >Ø",Ø$Ø!Ô/ðð �ð ˆr2   c                 ó�  — t          j        ¦   «         }| j        }|                     |¦  «         |                     d¦  «        s|                     d¦  «         |                     dd|¦  «         |                     dd|¦  «         t          |d¦  «        5 }|                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr$  rœ  r�  r$  )	r   r-  r®  r¶   Úhas_sectionrÎ   rÑ   r(  rÒ   )rë   rœ  r�  rô  rØ  r.  s         r0   r[  zPyPIRCFile.update  sú   € åÔ-Ñ/Ô/ˆØŒ]ˆØ�Š�B‰ŒˆØ×!Ò! &Ñ)Ô)ð 	'Ø×Ò˜vÑ&Ô&Ð&Ø�
Š
�6˜: xÑ0Ô0Ð0Ø�
Š
�6˜: xÑ0Ô0Ð0Ý�"�c‰]Œ]ð 	˜aØ�LŠL˜‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÂB;Â;B?ÃB?©NN)rð   rô   rõ   r,  r.  rì   r¶   r[  rE   r2   r0   r#  r#  Ï  sR   € € € € € à:ÐØ€Mðð ð ð ð8ð 8ð 8ðt
ð 
ð 
ð 
ð 
r2   r#  c                 óP   — t          | j        ¬¦  «                             ¦   «         S )zG
    Read the PyPI access configuration as supported by distutils.
    )r`   )r#  r`   r¶   ©r  s    r0   Ú_load_pypircr7     s#   € õ ˜%œ)Ð$Ñ$Ô$×)Ò)Ñ+Ô+Ð+r2   c                 ó^   — t          ¦   «                              | j        | j        ¦  «         d S r”   )r#  r[  rœ  r�  r6  s    r0   Ú_store_pypircr9  &  s&   € Ý�L„L×Ò˜œ¨¬Ñ7Ô7Ð7Ð7Ð7r2   c                  óþ  — t           j        dk    rrdt          j                             ¦   «         v rdS dt          j                             ¦   «         v rdS dt          j                             ¦   «         v rdS t          j        S dt           j        v rt           j        d         S t           j        d	k    st          t           d
¦  «        st          j        S t          j        ¦   «         \  } }}}}|                      ¦   «          	                    dd¦  «        } | 	                    dd¦  «         	                    dd¦  «        }| dd…         dk    r| ›d|›�S | dd…         dk    rQ|d         dk    rDd} dt          |d         ¦  «        dz
  |dd…         fz  }dddœ}|d|t          j                 z  z  }nÂ| dd…         dk    rddlm}  |¦   «         S | dd …         d!k    rMd!} t          j        d"t          j        ¦  «        }|                     |¦  «        }|r|                     ¦   «         }nI| dd …         d#k    r;ddl}	ddl}
|	                     |
j                             ¦   «         | ||¦  «        \  } }}| ›d|›d|›�S )$aú  Return a string that identifies the current platform.  This is used mainly to
    distinguish platform-specific build directories and platform-specific built
    distributions.  Typically includes the OS name and version and the
    architecture (as supplied by 'os.uname()'), although the exact information
    included depends on the OS; eg. on Linux, the kernel version isn't
    particularly important.

    Examples of returned values:
       linux-i586
       linux-alpha (?)
       solaris-2.6-sun4u

    Windows will return one of:
       win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc)
       win32 (all others - specifically, sys.platform is returned)

    For other non-POSIX platforms, currently just returns 'sys.platform'.

    rˆ  Úamd64ú	win-amd64z(arm)ú	win-arm32z(arm64)z	win-arm64Ú_PYTHON_HOST_PLATFORMr4  Úunamert   r   rW   rn   r¨  Né   ÚlinuxÚsunosr   Ú5Úsolarisz%d.%sr¨   é   Ú32bitÚ64bit)iÿÿÿl   ÿÿÿÿ z.%sÚaix)Úaix_platformé   Úcygwinz[\d.]+Údarwin)ru   r]   r�   rÍ  r™   ÚplatformrŒ  rŽ   r?  r$   ÚintÚmaxsizeÚ_aix_supportrI  r«  rG  ÚASCIIr    rÅ   Ú_osx_supportÚdistutils.sysconfigÚget_platform_osxÚ	sysconfigÚget_config_vars)ÚosnamerŽ  ÚreleaserÍ  ÚmachineÚbitnessrI  Úrel_rer*   rR  r'  s              r0   Úget_host_platformr\  .  s¥  € õ( 
„w�$‚€Ø•c”k×'Ò'Ñ)Ô)Ð)Ð)Ø�;Ø•c”k×'Ò'Ñ)Ô)Ð)Ð)Ø�;Ø�œ×)Ò)Ñ+Ô+Ð+Ð+Ø�;ÝŒ|Ðð ¥"¤*Ð,Ð,ÝŒzÐ1Ô2Ð2å	„w�'ÒÐ¥­¨WÑ!5Ô!5Ðõ Œ|Ðõ 13´±
´
Ñ-€VˆT�7˜G Wð �\Š\‰^Œ^×#Ò# C¨Ñ,Ô,€FØ�oŠo˜c 3Ñ'Ô'×/Ò/°°SÑ9Ô9€Gàˆbˆqˆb„z�WÒÐð "˜6˜6 7 7Ð+Ð+à	���Œ�wÒ	Ð	Ø�1Œ:˜ÒÐØˆFØ¥ W¨Q¤Z¡¤°1Ñ!4°g¸a¸b¸b´kÐ BÑBˆGð #*¸wÐGÐGˆGØ�u˜w¥s¤{Ô3Ñ3Ñ3ˆGøà	���Œ�uÒ	Ð	Ø-Ð-Ð-Ð-Ð-Ð-Øˆ|‰~Œ~ÐØ	���Œ�xÒ	Ð	ØˆÝ”˜Y­¬Ñ1Ô1ˆØ�LŠL˜Ñ!Ô!ˆØð 	 Ø—g’g‘i”iˆGøØ	���Œ�xÒ	Ð	Ø0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ø#/×#@Ò#@Ø(1Ô(;×(KÒ(KÑ(MÔ(MØ(.°¸ñ$Bô $BÑ ˆ�˜ð  ˜˜   ¨'¨'Ð2Ð2r2   Úwin32r<  r=  )Úx86Úx64Úarmc                  óÄ   — t           j        dk    rt          ¦   «         S t           j                             d¦  «        } | t
          vrt          ¦   «         S t
          |          S )Nrˆ  ÚVSCMD_ARG_TGT_ARCH)ru   r]   r\  rŒ  r¿  Ú_TARGET_TO_PLAT)Úcross_compilation_targets    r0   Úget_platformre  †  sQ   € Ý	„w�$‚€Ý Ñ"Ô"Ð"Ý!œzŸ~š~Ð.BÑCÔCÐØ¥Ð6Ð6Ý Ñ"Ô"Ð"ÝÐ3Ô4Ð4r2   r4  )rß   r”   ra  )†r´   Úcollectionsr   Ú
contextlibrà  Úglobr   r}  r=  r·   Úloggingru   rE  r«  rá   r“  ÚImportErrorr  r�   r2  rÕ   rÀ   r  Údummy_threadingrX  r   r   Úcompatr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú	getLoggerrð   r  rG  r   rQ   rP   r;   rD   r@   re   r&   rG   rp   rŠ   r’   r—   r    r¦   rÊ   rÓ   ÚcontextmanagerrÙ   rÜ   ræ   rî   rè   rý   rÿ   rp  rr  ÚVERBOSEr�  rº   r“  r–  r™  rž  r¢  r¦  ÚIr­  r©  r²  rµ  r¶  r½  rÆ  rÊ  rË  rÎ  rÐ  rÜ  rî  ÚARCHIVE_EXTENSIONSr;  rE  rr  rL  r|  rv  rw  rx  r‚  r§  rƒ  r„  r†  r°  r´  rÄ  rÈ  rÐ  rÒ  rÞ  rè  rï  r
  r!  r#  r7  r9  r\  rc  re  rE   r2   r0   ú<module>rr     sá	  ðð
 €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø 
€
€
€
Ø #Ð #Ð #Ð #Ð #Ð #Ø 	€	€	€	Ø €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø 	€	€	€	Ø €€€ðØ€J€J€J€JøØð ð ð Ø
€C€C€Cðøøøà Ð Ð Ð Ø 
€
€
€
Ø €€€Ø €€€Ø €€€ð(ØÐÐÐÐøØð (ð (ð (Ø'Ð'Ð'Ð'Ð'Ð'ð(øøøà €€€à Ð Ð Ð Ð Ð ð(ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð 
ˆÔ	˜8Ñ	$Ô	$€ð ˆRŒZÐ)Ñ*Ô*€
Ø�R”ZÐ 3Ñ4Ô4Ð ØˆRŒZÐ5Ñ6Ô6€
ØˆBŒJÐDÑEÔE€	Ø€R„Z�ÑÔ€Ø€b„j�ÑÔ€ØˆBŒJ�{Ñ#Ô#€	ØˆrŒzÐEÑFÔF€ðV!ð V!ð V!ðrz@ð z@ð z@ðzð ð ð4ð ð ðð ð ð$ð ð ð ð ð ð ð,ð ,ð ,ð^ð ð ð& Ôðð ñ Ôðð Ôðð ñ Ôðð Ôð&ð &ð &ñ Ôð&ðð ð ð ð �fñ ô ð ð ð  ð  ð6uð uð uð uð u�6ñ uô uð uðnð ð ðð ð ð ð �&ñ ô ð ð8 ˆ2Œ:ð ð œ:ñ'ô '€ð
ð ð ð>&(ð &(ð &(ð &(ðRð ð ð"ð ð ð&ð &ð &ðð ð ð
ð ð ð &˜2œ:ð '8Ø9;¼ñ?ô ?Ð à�”Ð,Ñ-Ô-€ðð ð ð ð2 �"”*ð 9ñ :ô :€ð/ð /ð /ðð ð ð2ð ð ð( DÐ ðð ð ð#ð #ð #ð)ð )ð )ð )ð )ˆFñ )ô )ð )ðXCð Cð Cð Cð C�ñ Cô Cð CðPE!ð E!ð E!ð E!ð E!�ñ E!ô E!ð E!ðV.Ð ð3ð 3ð 3ð 3ðlð ð ð" 	$€ðW+ð W+ð W+ð W+ð W+ˆvñ W+ô W+ð W+ðz ˆBŒJ�~Ñ&Ô&€	Ø"˜œ
Ð#?Ñ@Ô@Ð Ø �b”jÐ!5Ñ6Ô6Ð ðð ð ðð ð ð6 ð V3ð+ð +ð +ð +ð +ð +ð +ð +ð +ð +ðð ð ð ð ˜'Ô1ñ ô ð ðBð ð ð ð Ð'ñ ô ð ðR3ð 3ð 3ð 3ð 3˜<¨ñ 3ô 3ð 3ð
#ð 
#ð 
#ð 
#ð 
#�	Ô#ñ 
#ô 
#ð 
#ð ð 'ð'ð 'ð 'ð 'ð '˜	Ô/ñ 'ô 'ð 'ð"<ð <ð <ð <ð <�)Ô'ñ <ô <ð <ð,$ð $ð $ðð ð ð ð ˆfñ ô ð ðð ð ð ð �ñ ô ð ð2"ð "ð "ð "ð "�ñ "ô "ð "ð&4ð 4ð 4ð 4ð 4Ð#ñ 4ô 4ð 4ðn+ð +ð +ð +ð +�fñ +ô +ð +ð\/ð /ð /ðOð Oð Oð Oð O�ñ Oô Oð Oðb,ð ,ð ,ð8ð 8ð 8ðN3ð N3ð N3ðd ØØðð €ð5ð 5ð 5ð 5ð 5s!   ¶; »AÁAÁA" Á"	A.Á-A.