§
    !phz ã                   ó  — 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/  e
j0        e1¦  «        Z2 ej3        d¦  «        Z4 ej3        d¦  «        Z5 ej3        d	¦  «        Z6 ej3        d
¦  «        Z7 ej3        d¦  «        Z8 ej3        d¦  «        Z9 ej3        d¦  «        Z: ej3        d¦  «        Z;d„ Z<d„ Z=d„ Z>d„ Z?d„ Z@dkd„ZAd„ ZBd„ ZCd„ ZDejE        d„ ¦   «         ZFejE        d„ ¦   «         ZGejE        dld„¦   «         ZH G d„ deI¦  «        ZJd„ ZK G d„ d eI¦  «        ZLd!„ ZM G d"„ d#eI¦  «        ZN ej3        d$ejO        ¦  «        ZPd%„ ZQdmd&„ZRdnd(„ZSd)„ ZTd*„ ZUd+„ ZVd,„ ZW ej3        d-ejX        ¦  «        ZY ej3        d.¦  «        ZZdmd/„Z[ ej3        d0¦  «        Z\d1„ Z]d2„ Z^d3„ Z_d4Z`d5„ Zad6„ Zb G d7„ d8eI¦  «        Zc G d9„ d:eI¦  «        Zd G d;„ d<eI¦  «        Zed=Zfdod>„Zgd?„ Zhd@Zi G dA„ dBeI¦  «        Zj ej3        dC¦  «        Zk ej3        dD¦  «        Zl ej3        dE¦  «        ZmdF„ ZdG„ Zner:ddHlmoZpmqZqmrZr  G dI„ dJe$js        ¦  «        Zs G dK„ dLep¦  «        Zo G dM„ dNeoe&¦  «        Zt G dO„ dPe%ju        ¦  «        Zuer G dQ„ dRe%jv        ¦  «        Zv G dS„ dTe%jw        ¦  «        ZwdU„ Zx G dV„ dWeI¦  «        Zy G dX„ dYey¦  «        Zz G dZ„ d[ey¦  «        Z{ G d\„ d]e'¦  «        Z| G d^„ d_eI¦  «        Z}d`„ Z~ G da„ dbeI¦  «        Zdc„ Z€dd„ Z�de„ Z‚dfdgdhdiœZƒdj„ Z„dS )pé    N)Údeque)Úiglobé   )ÚDistlibException)Ústring_typesÚ	text_typeÚshutilÚ	raw_inputÚStringIOÚcache_from_sourceÚurlopenÚurljoinÚhttplibÚ	xmlrpclibÚ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          úYC:\Users\Daniel\PycharmProjects\Portfolio_Website\.venv\Lib\site-packages\distlib/util.pyÚ
marker_varz parse_marker.<locals>.marker_var@   sÓ  € å×Ò˜YÑ'Ô'ˆØð 	/Ø—X’X‘Z”Z ”]ˆFØ! !§%¢%¡'¤' ( (Ô+ˆI‰IØð 	/ÝÐ7Ñ8Ô8Ð8à˜!”ˆAØ˜ˆ~ð HÝ!Ð":¸YÑ"FÑGÔGÐGØ—’˜q "Ñ%Ô%ˆBØ! ! " "œˆIØ�CˆEØð Aà˜Q”< 1Ò$ð 
4ØØ˜q”\ RÒ'ð 4Ø—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*   r8   r)   r7   r9   Úmarkerr0   s         €€r/   Úmarker_exprz!parse_marker.<locals>.marker_exprd   s   ø€ Øð 	˜ 1œ¨Ò,ð 	Ø &  y°°°¤}×';Ò';Ñ'=Ô'=Ñ >Ô >ÑˆF�IØ˜Œ|˜sÒ"ð NÝ!Ð"@À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Ð Ð r1   c                 óÊ   •—  ‰| ¦  «        \  }} | rOt                                | ¦  «        }|sn2| |                     ¦   «         d …         }  ‰| ¦  «        \  }} d||dœ}| °O|| fS )NÚandr6   )ÚANDr   r!   )r(   r8   r)   r9   r<   s       €r/   Ú
marker_andz parse_marker.<locals>.marker_andw   sˆ   ø€ Ø$˜ YÑ/Ô/‰ˆˆYØð 	8Ý—	’	˜)Ñ$Ô$ˆAØð ØØ! !§%¢%¡'¤' ( (Ô+ˆIØ(˜[¨Ñ3Ô3‰NˆC�Ø s°3Ð7Ð7ˆCð ð 	8ð �Iˆ~Ðr1   c                 óÊ   •—  ‰| ¦  «        \  }} | rOt                                | ¦  «        }|sn2| |                     ¦   «         d …         }  ‰| ¦  «        \  }} d||dœ}| °O|| fS )NÚorr6   )ÚORr   r!   )r(   r8   r)   r9   r@   s       €r/   r;   zparse_marker.<locals>.marker‚   sˆ   ø€ Ø#˜ IÑ.Ô.‰ˆˆYØð 	7Ý—’˜Ñ#Ô#ˆAØð ØØ! !§%¢%¡'¤' ( (Ô+ˆIØ'˜Z¨	Ñ2Ô2‰NˆC�Ø c°#Ð6Ð6ˆCð ð 	7ð �Iˆ~Ðr1   © )Úmarker_stringr;   r@   r<   r0   s    @@@@r/   Úparse_markerrF   6   sx   øøøø€ ð"!ð "!ð "!ðH!ð !ð !ð !ð !ð !ð&	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð ˆ6�-Ñ Ô Ð r1   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: %srK   r   úinvalid constraint: %s)Ú
COMPARE_OPr   r    r!   ÚVERSION_IDENTIFIERr"   r$   r'   )Úver_remainingr)   Úversionsr7   Úvs        r/   Úget_versionsz'parse_requirement.<locals>.get_versionsÄ   sV  € õ
 ×$Ò$ ]Ñ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ð "Ø!Ø(5°a°b°bÔ(9×(@Ò(@Ñ(BÔ(B˜ð  -ð "Ø!Ý&×,Ò,¨]Ñ;Ô;˜Ø ð XÝ"-Ð.FÈÑ.VÑ"WÔ"WÐWñ%Xð& $ð (Ø#'˜Ø Ð.Ð.r1   r3   r4   r5   rN   z~=ú;zinvalid requirement: %szunexpected trailing data: %sú ú, c                 ó   — g | ]}d |z  ‘ŒS )z%s %srD   )Ú.0Úcons     r/   ú
<listcomp>z%parse_requirement.<locals>.<listcomp>  s   € Ð,OÐ,OÐ,O¸s¨W°s©]Ð,OÐ,OÐ,Or1   )ÚnameÚextrasÚconstraintsr;   ÚurlÚrequirement)ÚstripÚ
startswithr   r   r"   r    r!   Úfindr'   r$   Ú	NON_SPACEr   ÚschemeÚnetlocrO   rP   rF   r&   r   )Úreqr(   r)   Údistnamer]   Ú	mark_exprrR   ÚuriÚir.   ÚtrT   Ú_rS   Úrss                  r/   Úparse_requirementro   �   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ð 	DÝÐ6¸ÑBÑCÔCÐCØ�a˜�cŒNˆØ˜a !™e˜f˜fÔ%×,Ò,Ñ.Ô.ˆ	ØˆØð 
	Ý× Ò  Ñ#Ô#ˆAØð =Ý!Ð"7¸!Ñ";Ñ<Ô<Ð<Ø�MŠM˜!Ÿ(š(™*œ* Qœ-Ñ(Ô(Ð(Ø�!—%’%‘'”'�(�(”ˆAØð ØØ�Œt�sŠ{ð FÝ!Ð"@À1Ñ"DÑEÔEÐEØ�!�"�"”—’‘”ˆAð ð 
	ð ð 	ØˆFØñ G+Ø�QŒ<˜3Òð F	+à! ! " "œ×,Ò,Ñ.Ô.ˆ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ð RÝ%Ð&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Òð 	EÝÐ7¸)ÑCÑDÔDÐDØ˜a˜b˜b”M×(Ò(Ñ*Ô*ˆ	å+¨IÑ6Ô6Ñˆ	�9àð F�Y˜q”\ SÒ(ð FÝÐ8¸9ÑDÑEÔEÐEàð RØˆˆà ˜˜ $§)¢)Ð,OÐ,OÀhÐ,OÑ,OÔ,OÑ"PÔ"PÐ"PÐQˆÝ˜(¨6¸xÐPYÐ_bÐprÐsÑsÔsÐsr1   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Úseprb   Úlenr'   )Úrootru   s     r/   Úget_rel_pathz)get_resources_dests.<locals>.get_rel_path  sk   € à�|Š|�BœGœK¨Ñ-Ô-ˆØ�|Š|�BœGœK¨Ñ-Ô-ˆØ�Š˜tÑ$Ô$Ð$Ð$Ð$Ø•C˜‘I”I�J�JÔ×&Ò& sÑ+Ô+Ð+r1   Nrs   )rt   ru   r&   r   Úpopr#   rv   Úrstrip)Úresources_rootÚrulesry   ÚdestinationsÚbaseÚsuffixÚdestÚprefixÚabs_baseÚabs_globÚabs_pathÚresource_fileÚrel_pathÚrel_dests                 r/   Ú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�Øð LØ ×$Ò$ ]°DÑ9Ô9Ð9Ð9à+˜|¨H°hÑ?Ô?�HØ#Ÿ|š|­B¬G¬K¸Ñ=Ô=×DÒDÀSÑIÔI�HØ2:¸S±.À8Ñ2K�L Ñ/Ð/ðLð		Lð Ðr1   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    r/   Úin_venvr‘   &  s=   € Ý�s�MÑ"Ô"ð Gàˆˆõ ”�w¥s¨M½3¼:ÑFÔFÒFˆØ€Mr1   c                  óf   — t           j        } t          | t          ¦  «        st	          | ¦  «        } | S ©N)rŽ   Ú
executableÚ
isinstancer   r   r�   s    r/   Úget_executabler–   0  s/   € õ Œ^€FÝ�f�iÑ(Ô(ð "Ý˜&Ñ!Ô!ˆØ€Mr1   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          r/   ÚproceedrŸ   B  s~   € Ø€Að
=Ý�a‰LŒLˆØˆØð 	�Wð 	ØˆAØð 	=Ø�!”—
’
‘”ˆAØ�MÐ!ð ØØð =Ø  A |°VÐ#<Ñ<�ð
=ð €Hr1   c                 ó„   — t          |t          ¦  «        r|                     ¦   «         }i }|D ]}|| v r| |         ||<   Œ|S r“   )r•   r   Úsplit)ÚdÚkeysr*   Úkeys       r/   Úextract_by_keyr¥   R  sT   € Ý�$�Ñ%Ô%ð Ø�zŠz‰|Œ|ˆØ€FØð !ð !ˆØ�!ˆ8ð 	!Ø˜Cœ&ˆF�3‰KøØ€Mr1   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     r/   Úread_streamz!read_exports.<locals>.read_streamp  sD   € Ý�2�{Ñ#Ô#ð 	Ø�LŠL˜Ñ Ô Ð Ð Ð à�IŠI�fÑÔÐÐÐr1   )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ÚkrS   r.   Úentryr±   r¯   r¤   r\   Úvalues                  r/   Úread_exportsrÉ   \  s<  € Ý
Ô˜Ô˜aÒð 3à*•Ô! 'Ñ*Ô*¨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 [rW   rJ   )rŽ   r²   r³   Ú	getwriterr   r¼   r¸   Úadd_sectionÚvaluesr€   r‚   Úflagsr&   Úsetr\   Úwrite)rª   r°   r¯   rÆ   rS   rÇ   r.   s          r/   Úwrite_exportsrÒ   ‹  s  € Ý
Ô˜Ô˜aÒð 3à*•Ô! 'Ñ*Ô*¨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ÑÔÐÐÐr1   c               #   ó”   K  — t          j        ¦   «         } 	 | V — t          j        | ¦  «         d S # t          j        | ¦  «         w xY wr“   )ÚtempfileÚmkdtempr	   Úrmtree)Útds    r/   Ú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“   )rt   ÚgetcwdÚchdir)r¢   Úcwds     r/   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     r/   Ú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     r/   Ú__init__zcached_property.__init__½  s   € ØˆŒ	ˆ	ˆ	r1   Nc                 ó„   — |€| S |                       |¦  «        }t                               || j         j        |¦  «         |S r“   )ré   ÚobjectÚ__setattr__Ú__name__)rê   ÚobjÚclsrÈ   s       r/   Ú__get__zcached_property.__get__Â  s@   € Øð 	ØˆKØ—	’	˜#‘”ˆÝ×Ò˜3 ¤	Ô 2°EÑ:Ô:Ð:àˆr1   r“   )rï   Ú
__module__Ú__qualname__rë   rò   rD   r1   r/   rç   rç   »  s7   € € € € € ðð ð ð
ð ð ð ð ð r1   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.
    rs   r   zpath '%s' cannot be absoluteéÿÿÿÿzpath '%s' cannot end with '/')rt   rv   Ú
ValueErrorr¡   ÚcurdirÚremoveru   r&   )ÚpathnameÚpathss     r/   Úconvert_pathrü   Ë  sÔ   € õ 
„v�‚}ð ØˆØð ØˆØ�„{�cÒð DÝÐ7¸(ÑBÑCÔCÐCØ�„|�sÒð EÝÐ8¸8ÑCÑDÔDÐDà�NŠN˜3ÑÔ€EÝ
Œ)�uÐ
ð  Ø�Š•R”YÑÔÐõ Œ)�uÐ
ð  àð ÝŒyÐÝŒ7Œ<˜ÐÐr1   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     r/   rë   zFileOperator.__init__è  s,   € ØˆŒÝ‘u”uˆŒØ×ÒÑÔÐÐÐr1   c                 ó`   — d| _         t          ¦   «         | _        t          ¦   «         | _        d S ©NF)ÚrecordrÐ   Úfiles_writtenÚdirs_created©rê   s    r/   r  zFileOperator._init_recordí  s'   € ØˆŒÝ ™UœUˆÔÝ™EœEˆÔÐÐr1   c                 óL   — | j         r| j                             |¦  «         d S d S r“   )r  r  Úadd)rê   ru   s     r/   Úrecord_as_writtenzFileOperator.record_as_writtenò  s3   € ØŒ;ð 	)ØÔ×"Ò" 4Ñ(Ô(Ð(Ð(Ð(ð	)ð 	)r1   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)rt   ru   Úexistsr   ÚabspathÚstatÚst_mtime)rê   ÚsourceÚtargets      r/   ÚnewerzFileOperator.newerö  sz   € õ Œw�~Š~˜fÑ%Ô%ð 	YÝ"Ð#=ÅÄÇÂÐPVÑ@WÔ@WÑ#WÑXÔXÐXÝŒw�~Š~˜fÑ%Ô%ð 	Ø�4åŒw�v‰ŒÔ'­"¬'°&©/¬/Ô*BÒBÐBr1   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_dirrt   ru   ÚdirnameÚloggerÚinfor   Úislinkr  Úisfiler÷   r	   Úcopyfiler  )rê   ÚinfileÚoutfileÚcheckÚmsgs        r/   Ú	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Ñ'Ô'Ð'Ð'Ð'r1   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)rt   ru   Úisdirr  r  r  r  r   Úopenr³   r	   Úcopyfileobjr¾   r  )rê   Úinstreamr  r%  Ú	outstreams        r/   Úcopy_streamzFileOperator.copy_stream  sè   € Ý”7—=’= Ñ)Ô)Ð)Ð)Ð)Ø�Š�œŸš¨Ñ0Ô0Ñ1Ô1Ð1Ý�ŠÐ-¨x¸ÑAÔAÐAØŒ|ð 	"Øð IÝ  ¨$Ñ/Ô/�	�	å"œ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  rt   ru   r  r   r  rù   r'  rÑ   r  )rê   ru   rÂ   Úfs       r/   Ú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ê   ru   rÂ   r%  s       r/   Úwrite_text_filezFileOperator.write_text_file2  s*   € Ø×Ò˜t T§[¢[°Ñ%:Ô%:Ñ;Ô;Ð;Ð;Ð;r1   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)	rt   r\   Ú_namer   r  r  r  Úst_modeÚchmod)rê   ÚbitsÚmaskÚfilesr-  Úmodes         r/   Úset_modezFileOperator.set_mode5  sÄ   € ÝŒ7�gÒð 		&¥"¤'¨VÒ"3ð 		&½¼ÀGÒ8Kð 		&ð ð &ð &�Ø”<ð &Ý—K’KÐ 5°qÑ9Ô9Ð9Ð9åœG A™JœJÔ.°Ñ5¸Ñ=�DÝ—K’KÐ ;¸QÀÑEÔEÐEÝ”H˜Q Ñ%Ô%Ð%Ð%ð		&ð 		&ð 		&ð 		&ð&ð &r1   c                 ó0   — |                       dd|¦  «        S )Nim  iÿ  )r<  )r.   r-  s     r/   ú<lambda>zFileOperator.<lambda>A  s   €  q§z¢z°%¸ÀÑ'CÔ'C€ r1   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)rt   ru   r  r  r  r
  r¡   r  r  r  r   Úmkdirr  r  )rê   ru   r¢   r-  s       r/   r  zFileOperator.ensure_dirC  së   € ÝŒw�Š˜tÑ$Ô$ˆØ�t”|Ð#ð 	,­B¬G¯NªN¸4Ñ,@Ô,@ð 	,ØŒL×Ò˜TÑ"Ô"Ð"Ý”7—=’= Ñ&Ô&‰DˆAˆqØ�OŠO˜AÑÔÐÝ�KŠK˜¨Ñ,Ñ-Ô-Ð-Ø”<ð Ý”˜‘”�ØŒ{ð ,ØÔ!×%Ò% dÑ+Ô+Ð+Ð+Ð+ð	,ð 	,ð 	,ð 	,ð,ð ,r1   c                 óê  — t          || ¦  «        }t                               d||¦  «         | j        s©|s|                      ||¦  «        r3|sd }n.|                     |¦  «        sJ ‚|t          |¦  «        d …         }i }|rEt          t          d¦  «        r0t          |t          j
        ¦  «        st          j
        j        }||d<   t          j        |||dfi |¤Ž |                      |¦  «         |S )NzByte-compiling %s to %sÚPycInvalidationModeÚinvalidation_modeT)r   r  r  r   r  rb   rw   r�   Ú
py_compiler•   rB  ÚCHECKED_HASHÚcompiler  )	rê   ru   ÚoptimizeÚforcer‚   Úhashed_invalidationÚdpathÚdiagpathÚcompile_kwargss	            r/   Úbyte_compilezFileOperator.byte_compileO  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Ø"ð J¥w­zÐ;PÑ'QÔ'Qð JÝ!Ð"5µzÔ7UÑVÔVð VÝ*4Ô*HÔ*UÐ'Ø6I�Ð2Ñ3ÝÔ˜t U¨H°dÐMÐM¸nÐMÐMÐMØ×Ò˜uÑ%Ô%Ð%Øˆr1   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)rt   ru   r  r&  r  r  Údebugr   r	   rÖ   r  r  rù   r  )rê   ru   r.   s      r/   Úensure_removedzFileOperator.ensure_removedb  sd  € ÝŒ7�>Š>˜$ÑÔñ 	8ÝŒw�}Š}˜TÑ"Ô"ð 8­2¬7¯>ª>¸$Ñ+?Ô+?ð 8Ý—’Ð<¸dÑCÔCÐCØ”|ð (Ý”M $Ñ'Ô'Ð'Ø”;ð 7Ø˜tÔ0Ð0ð 7ØÔ)×0Ò0°Ñ6Ô6Ð6Ð6Ð6ð7ð 7ð7ð 7õ ”7—>’> $Ñ'Ô'ð Ø�A�Aà�AÝ—’Ð-¨q°$Ñ7Ô7Ð7Ø”|ð $Ý”I˜d‘O”O�OØ”;ð 8Ø˜tÔ1Ð1ð 8ØÔ*×1Ò1°$Ñ7Ô7Ð7Ð7Ð7ð%	8ð 	8ð 8ð 8ð8ð 8r1   c                 óà   — d}|sit           j                             |¦  «        r t          j        |t           j        ¦  «        }n*t           j                             |¦  «        }||k    rn|}|¯i|S r  )rt   ru   r  ÚaccessÚW_OKr  )rê   ru   r*   Úparents       r/   Úis_writablezFileOperator.is_writablew  ss   € ØˆØð 	ÝŒw�~Š~˜dÑ#Ô#ð Ýœ 4­¬Ñ1Ô1�ØÝ”W—_’_ TÑ*Ô*ˆFØ˜Š~ð ØØˆDð ð 	ð ˆr1   c                 ó\   — | j         sJ ‚| j        | j        f}|                      ¦   «          |S )zV
        Commit recorded changes, turn off recording, return
        changes.
        )r  r  r  r  )rê   r*   s     r/   ÚcommitzFileOperator.commitƒ  s9   € ð
 Œ{ÐÐÐØÔ# TÔ%6Ð6ˆØ×ÒÑÔÐØˆr1   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  rt   ru   r  rù   Úsortedr  Úlistdirr&   Úrmdirr  )rê   r-  Údirsr¢   ÚflistÚsds         r/   Ú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Ý”˜‘”��Ø×ÒÑÔÐÐÐr1   ©F©Tr“   )FFNF)rï   ró   rô   rë   r  r  r  r   r+  r.  r1  r<  Úset_executable_moder  rM  rR  rW  rY  rd  rD   r1   r/   rþ   rþ   æ  s  € € € € € ðð ð ð ð
"ð "ð "ð
)ð )ð )ðCð Cð Cð&(ð (ð (ð (ð"(ð (ð (ð (ð%ð %ð %ð<ð <ð <ð
&ð 
&ð 
&ð DÐCÐð
,ð 
,ð 
,ðð ð ð ð&8ð 8ð 8ð*
ð 
ð 
ðð ð ðð ð ð ð r1   rþ   c                 ó
  — | t           j        v rt           j        |          }nt          | ¦  «        }|€|}nM|                     d¦  «        }t	          ||                     d¦  «        ¦  «        }|D ]}t	          ||¦  «        }Œ|S )Nú.r   )rŽ   ÚmodulesÚ
__import__r¡   r�   rz   )Úmodule_nameÚdotted_pathÚmodr*   r-   r�   s         r/   Úresolvero     sŒ   € Ø•c”kÐ!ð &ÝŒk˜+Ô&ˆˆå˜Ñ%Ô%ˆØð (Øˆˆà×!Ò! #Ñ&Ô&ˆÝ˜˜eŸiši¨™lœlÑ+Ô+ˆØð 	(ð 	(ˆAÝ˜V QÑ'Ô'ˆFˆFØ€Mr1   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        r/   rë   zExportEntry.__init__±  s"   € ØˆŒ	ØˆŒØˆŒØˆŒ
ˆ
ˆ
r1   c                 ó6   — t          | j        | j        ¦  «        S r“   )ro  r‚   r€   r  s    r/   rÈ   zExportEntry.value·  s   € å�t”{ D¤KÑ0Ô0Ð0r1   c           	      óH   — d| j         ›d| j        ›d| j        ›d| j        ›d�	S )Nz<ExportEntry r«   rË   rV   ú>rs  r  s    r/   Ú__repr__zExportEntry.__repr__»  s/   € € Ø04´	°	°	¸4¼;¸;¸;ÈÌÈÈÐUYÔU_ÐU_ÐU_Ð`Ð`r1   c                 ó¶   — t          |t          ¦  «        sd}n@| j        |j        k    o/| j        |j        k    o| j        |j        k    o| j        |j        k    }|S r  )r•   rq  r\   r‚   r€   rÏ   )rê   Úotherr*   s      r/   Ú__eq__zExportEntry.__eq__¾  sf   € Ý˜%¥Ñ-Ô-ð 	1ØˆFˆFà”i 5¤:Ò-ð 0°$´+ÀÄÒ2Mð 0ÐRVÔR]ÐafÔamÒRmð 0Ø”j E¤KÒ/ð àˆr1   N)
rï   ró   rô   rë   rç   rÈ   rw  rz  rí   Ú__hash__rD   r1   r/   rq  rq  ¯  sb   € € € € € ðð ð ð ð1ð 1ñ „_ð1ðað að aðð ð ð Œ€H€H€Hr1   rq  z·(?P<name>([^\[]\S*))
                      \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 )NrI   rJ   zInvalid specification '%s'r\   ÚcallablerË   r   r   rÏ   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS rD   ©ra   )rY   r-  s     r/   r[   z$get_export_entry.<locals>.<listcomp>ê  s    € Ð9Ð9Ð9 1�Q—W’W‘Y”YÐ9Ð9Ð9r1   rK   )ÚENTRY_REÚsearchr   Ú	groupdictÚcountr¡   rq  )
Úspecificationr)   r*   r¢   r\   ru   Úcolonsr‚   r€   rÏ   s
             r/   r¹   r¹   Ð  si  € Ý�Š˜Ñ&Ô&€AØð :ØˆØ�-Ðð 	; 3¨-Ð#7ð 	;Ý"ð $*Ø,9ñ$:ñ ;ô ;ð ;ð	;ð �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ˆØ€Mr1   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)rt   r\   Úenvironru   Ú
expandvarsÚ
expanduserr&  rT  rU  r  ÚwarningÚmakedirsÚOSErrorrÔ   rÕ   r&   )r€   r*   Úusables      r/   Úget_cache_baser’  ï  sB  € ð ð ØˆÝ	„w�$‚ð )˜>­R¬ZÐ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Tc                 ó  — t           j                             |rt           j                             | ¦  «        n| ¦  «        \  }}|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)rt   ru   Ú
splitdriver  r#   rv   )ru   Úuse_abspathr¢   r�   s       r/   Úpath_to_cache_dirr–    st   € õ Œ7×Ò°{ÐL�bœgŸošo¨dÑ3Ô3Ð3ÈÑMÔM�D€A€qØð "Ø�IŠI�c˜5Ñ!Ô!ˆØ	�	Š	•"”&˜$ÑÔ€AØˆq‰5�8ÑÐr1   c                 ó:   — |                       d¦  «        s| dz   S | S rr   )Úendswith)r.   s    r/   Úensure_slashr™  )  s"   € Ø�:Š:�c‰?Œ?ð Ø�3‰wˆØ€Hr1   c                 óÒ   — d x}}d| v r9|                       dd¦  «        \  }} d|vr|}n|                     dd¦  «        \  }}|rt          |¦  «        }|rt          |¦  «        }||| fS )NrL   r   rË   )Úrsplitr¡   r   )rf   ÚusernameÚpasswordr‚   s       r/   Úparse_credentialsrž  /  s’   € ØÐ€HˆxØ
ˆf€}ð 6ØŸš s¨AÑ.Ô.‰ˆ�Ø�fÐð 	6ØˆHˆHà!'§¢¨c°1Ñ!5Ô!5ÑˆH�hØð %Ý˜8Ñ$Ô$ˆØð %Ý˜8Ñ$Ô$ˆØ�X˜vÐ%Ð%r1   c                  óV   — t          j        d¦  «        } t          j        | ¦  «         | S )Né   )rt   Úumaskr�   s    r/   Úget_process_umaskr¢  >  s$   € ÝŒX�d‰^Œ^€FÝ„HˆVÑÔÐØ€Mr1   c                 ór   — d}d }t          | ¦  «        D ]\  }}t          |t          ¦  «        sd} nŒ|€J ‚|S )NTF)Ú	enumerater•   r   )Úseqr*   rk   r.   s       r/   Úis_string_sequencer¦  D  sY   € Ø€FØ€AÝ˜#‘”ð ð ‰ˆˆ1Ý˜!�\Ñ*Ô*ð 	ØˆFØˆEð	ð ÐÐÐØ€Mr1   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
    NrV   ú-r   z\br§   )r   r#   ÚPYTHON_VERSIONr�  rÄ   Ústartrw   Úrer   Úescaper!   ÚPROJECT_NAME_AND_VERSION)ÚfilenameÚproject_namer*   Úpyverr)   Úns         r/   Úsplit_filenamer²  T  s0  € ð €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Øð 3Ý$×*Ò*¨8Ñ4Ô4ˆØð 	3Ø—W’W˜Q‘Z”Z §¢¨¡¤¨UÐ2ˆFØ€Mr1   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‚  ra   r˜   )r�   r)   r¢   s      r/   Úparse_name_and_versionr¶  r  sj   € õ 	×Ò˜aÑ Ô €AØð MÝÐGÈ!ÑKÑLÔLÐLØ	�Š‰Œ€AØˆVŒ9�?Š?ÑÔ×"Ò"Ñ$Ô$ a¨¤hÐ.Ð.r1   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
  rb   r  rŽ  )Ú	requestedÚ	availabler*   ÚrÚunwanteds        r/   Ú
get_extrasr½  ‚  s&  € Ý‰UŒU€FÝ�I�O Ñ$Ô$€IÝ�I�O Ñ$Ô$€IØ
ˆiÐð Ø×Ò˜ÑÔÐØ�)ÑˆØð ð ˆØ�Š8ð 	Ø�JŠJ�q‰MŒMˆMˆMØ�\Š\˜#ÑÔð 		Ø˜˜˜”uˆHØ˜yÐ(ð BÝ—’Ð5¸Ñ@ÑAÔAÐAØ˜6Ð!ð (Ø—’˜hÑ'Ô'Ð'øà˜	Ð!ð ;Ý—’Ð5¸Ñ9Ñ:Ô:Ð:Ø�JŠJ�q‰MŒMˆMˆMØ€Mr1   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  Úgetrb   r  rQ  r³   r´   r¶   r·   rº   Ú	exception)r_   r*   ÚrespÚheadersÚctÚreaderÚes          r/   Ú_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   rs   z/project.json©Úupperr   Ú_external_data_base_urlrÆ  )r\   r_   r*   s      r/   Úget_project_datarË  ¶  sB   € Ø"& q¤'§-¢-¡/¤/ / /°4°4°4Ð
8€CÝ
Õ)¨3Ñ
/Ô
/€CÝ Ñ$Ô$€FØ€Mr1   c                 ó�   — | d                               ¦   «         ›d| ›d|›d�}t          t          |¦  «        }t          |¦  «        S )Nr   rs   z	/package-z.jsonrÈ  )r\   Úversionr_   s      r/   Úget_package_datarÎ  ½  sD   € Ø%)¨!¤W§]¢]¡_¤_ _ _°d°d°d¸G¸G¸GÐ
D€CÝ
Õ)¨3Ñ
/Ô
/€CÝ˜cÑ"Ô"Ð"r1   c                   ó&   — e Zd ZdZd„ Zd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)rt   ru   r&  r�  r  r6  r  rŽ  r  Únormpathr   )rê   r   s     r/   rë   zCache.__init__Ê  s†   € õ Œw�}Š}˜TÑ"Ô"ð 	ÝŒK˜ÑÔÐÝŒG�D‰MŒMÔ! DÑ(¨QÒ.ð 	DÝ�NŠNÐ<¸dÑCÔCÐCÝ”G—O’O¥B¤G×$4Ò$4°TÑ$:Ô$:Ñ;Ô;ˆŒ	ˆ	ˆ	r1   Tc                 ó$   — t          ||¬¦  «        S )zN
        Converts a resource prefix to a directory name in the cache.
        )r•  )r–  )rê   r‚   r•  s      r/   Úprefix_to_dirzCache.prefix_to_dirØ  s   € õ ! °[ÐAÑAÔAÐAr1   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.
        )rt   r_  r   ru   r&   r  r  rù   r&  r	   rÖ   rº   r$   )rê   Únot_removedÚfns      r/   Ú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-Nrf  )rï   ró   rô   Ú__doc__rë   rÕ  rÙ  rD   r1   r/   rÐ  rÐ  Ã  sT   € € € € € ðð ð<ð <ð <ðBð Bð Bð Bðð ð ð ð r1   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    r/   rë   zEventMixin.__init__ô  s   € ØˆÔÐÐr1   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         r/   r
  zEventMixin.add÷  sq   € ð Ô ˆØ˜Ðð 	*Ý  Ñ-Ô-ˆD�‰KˆKˆKà�e”ˆBØð *Ø—	’	˜*Ñ%Ô%Ð%Ð%Ð%à—’˜jÑ)Ô)Ð)Ð)Ð)r1   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       r/   rù   zEventMixin.remove  sK   € ð Ô ˆØ˜Ðð 	;ÝÐ1°EÑ9Ñ:Ô:Ð:ØˆUŒ×Ò˜:Ñ&Ô&Ð&Ð&Ð&r1   c                 óR   — t          | j                             |d¦  «        ¦  «        S )z�
        Return an iterator for the subscribers for an event.
        :param event: The event to return subscribers for.
        rD   )ÚiterrÞ  r¿  )rê   rá  s     r/   Úget_subscriberszEventMixin.get_subscribers  s%   € õ
 �DÔ%×)Ò)¨%°Ñ4Ô4Ñ5Ô5Ð5r1   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$   rQ  )rê   rá  ÚargsÚkwargsr*   râ  rÈ   s          r/   ÚpublishzEventMixin.publish  s¾   € ð ˆØ×.Ò.¨uÑ5Ô5ð 	!ð 	!ˆJðØ"˜
 5Ð:¨4Ð:Ð:Ð:°6Ð:Ð:��øÝð ð ð Ý× Ò Ð!EÑFÔFÐFØ���ðøøøð �MŠM˜%Ñ Ô Ð Ð Ý�ŠÐFÈÈtÐU[Ð]cÑdÔdÐdØˆs   ›(¨&AÁANrf  )	rï   ró   rô   rÚ  rë   r
  rù   rè  rì  rD   r1   r/   rÜ  rÜ  ï  sn   € € € € € ðð ðð ð ð*ð *ð *ð *ð(
'ð 
'ð 
'ð6ð 6ð 6ðð ð ð ð r1   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    r/   rë   zSequencer.__init__:  s   € ØˆŒØˆŒÝ‘e”eˆŒˆˆr1   c                 ó:   — | j                              |¦  «         d S r“   )rò  r
  )rê   Únodes     r/   Úadd_nodezSequencer.add_node?  s   € ØŒ�Š˜ÑÔÐÐÐr1   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 )NrD   )rò  rù   rÐ   rð  r¿  rñ  r]  r¸   )rê   rô  Úedgesr�   r.   rÆ   rS   s          r/   Úremove_nodezSequencer.remove_nodeB  s5  € Ø�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˜øð	'ð 	'ð'ð 'r1   c                 óþ   — ||k    sJ ‚| j                              |t          ¦   «         ¦  «                             |¦  «         | j                             |t          ¦   «         ¦  «                             |¦  «         d S r“   )rð  Ú
setdefaultrÐ   r
  rñ  )rê   ÚpredÚsuccs      r/   r
  zSequencer.addR  sl   € Ø�tŠ|ÐÐÐØŒ×Ò˜t¥S¡U¤UÑ+Ô+×/Ò/°Ñ5Ô5Ð5ØŒ×Ò˜t¥S¡U¤UÑ+Ô+×/Ò/°Ñ5Ô5Ð5Ð5Ð5r1   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        r/   rù   zSequencer.removeW  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     r/   Úis_stepzSequencer.is_stepd  s'   € Ø˜œÐ#ÐQ t¨t¬{Ð':ÐQ¸dÀdÄkÐ>QÐRr1   c                 ó  — |                       |¦  «        st          d|z  ¦  «        ‚g }g }t          ¦   «         }|                     |¦  «         |r¦|                     d¦  «        }||v r1||k    r*|                     |¦  «         |                     |¦  «         nZ|                     |¦  «         |                     |¦  «         | j                             |d¦  «        }| 	                    |¦  «         |°¦t          |¦  «        S )NzUnknown: %rr   rD   )r  r÷   rÐ   r$   rz   rù   r
  rð  r¿  ÚextendÚreversed)rê   Úfinalr*   ÚtodoÚseenr  rÿ  s          r/   Ú	get_stepszSequencer.get_stepsg  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Ñ"Ô"Ð"ð ð 	#õ  ˜ÑÔÐr1   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º   Úminrz   Útuple)rô  Ú
successorsÚ	successorÚconnected_componentÚ	componentÚgraphÚindexÚindex_counterÚlowlinksr*   ÚstackÚstrongconnects        €€€€€€€r/   r  z3Sequencer.strong_connections.<locals>.strongconnect‹  s…  ø€ à'¨Ô*ˆE�$‰KØ*¨1Ô-ˆH�T‰NØ˜!ÐÐÔ Ñ!ÐÐÑØ�LŠL˜ÑÔÐð Ø" 4œ[�
�
øÝð  ð  ð  Ø�
�
�
ð øøøà'ð Kð K�	Ø HÐ,ð Kà!�M )Ñ,Ô,Ð,Ý%(¨°$¬¸À)Ô9LÑ%MÔ%M�H˜T‘N�NØ %Ð'ð Kõ &)¨°$¬¸¸yÔ9IÑ%JÔ%J�H˜T‘Nøð ˜Œ~  t¤Ò,ð 
)Ø&(Ð#ðØ %§	¢	¡¤�IØ'×.Ò.¨yÑ9Ô9Ð9Ø  DÒ(ð Øð	õ
 "Ð"5Ñ6Ô6�	à—’˜iÑ(Ô(Ð(Ð(Ð(ð
)ð 
)s   ¾A ÁAÁA)rñ  )	rê   rô  r  r  r  r  r*   r  r  s	     @@@@@@@r/   Ústrong_connectionszSequencer.strong_connections€  s™   øøøøøøø€ ð ˜ˆØˆØˆØˆØˆà”ˆð!	)ð !	)ð !	)ð !	)ð !	)ð !	)ð !	)ð !	)ð !	)ð !	)ð !	)ðF ð 	$ð 	$ˆDØ˜8Ð#ð $Ø�˜dÑ#Ô#Ð#øàˆr1   c           	      ó  — dg}| j         D ]0}| j         |         }|D ]}|                     d|›d|›d�¦  «         ŒŒ1| j        D ]}|                     d|z  ¦  «         Œ|                     d¦  «         d                     |¦  «        S )Nzdigraph G {z  z -> rU   z  %s;Ú}ú
)rð  r$   rò  r&   )rê   r*   rü  rÿ  rû  rô  s         r/   ÚdotzSequencer.dot´  s¬   € à�ˆØ”Kð 	<ð 	<ˆDØ”K Ô%ˆEØð <ð <�Ø—’�¨t¨t¨t°T°T°TÐ:Ñ;Ô;Ð;Ð;ð<à”Kð 	*ð 	*ˆDØ�MŠM˜' D™.Ñ)Ô)Ð)Ð)Ø�Š�cÑÔÐØ�yŠy˜Ñ Ô Ð r1   Nre  )rï   ró   rô   rë   rõ  rø  r
  rù   r  r
  Úpropertyr  r  rD   r1   r/   rî  rî  8  s¿   € € € € € ðð ð ð
ð ð ð'ð 'ð 'ð 'ð 6ð 6ð 6ð
Hð Hð HðSð Sð Sð ð  ð  ð2 ð1ð 1ñ „Xð1ðf ð	!ð 	!ñ „Xð	!ð 	!ð 	!r1   rî  )ú.tar.gzú.tar.bz2ú.tarú.zipú.tgzú.tbzú.whlc                 óÚ  ‡‡— ˆˆ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¦  «        |	_        Œ<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   Údecodert   ru   r  r&   rb   rv   r÷   )ru   r�   Údest_dirÚplens     €€r/   Ú
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ÝÐ;¸aÑ?Ñ@Ô@Ð@ð	Að 	Ar1   )r#  r&  Úzip)r   r$  Útgzzr:gz)r!  r%  Útbzzr:bz2r"  Útarr»  zUnknown format for %rr   r§   r¨   c                 ó”   — 	 t          j        | |¦  «        S # t           j        $ r!}t          t	          |¦  «        ¦  «        ‚d}~ww xY w)z9Run tarfile.tar_filter, but raise the expected ValueErrorN)ÚtarfileÚ
tar_filterÚFilterErrorr÷   Ústr)Úmemberru   Úexcs      r/   Úextraction_filterz$unarchive.<locals>.extraction_filterû  sP   € ð+ÝÔ)¨&°$Ñ7Ô7Ð7øÝÔ&ð +ð +ð +Ý ¥ S¡¤Ñ*Ô*Ð*øøøøð+øøøs   ‚ —A¦AÁA)rt   ru   r  rw   r˜  r÷   r   Únamelistr2  r'  ÚgetnamesrŽ   r²   Ú
getmembersr•   r\   r   r)  r8  Ú
extractallr¾   )Úarchive_filenamer*  Úformatr  r,  Úarchiver;  Únamesr\   Útarinfor8  r+  s    `         @r/   Ú	unarchiverB  È  s~  øø€ ðAð Að Að Að Að Aõ Œw�Š˜xÑ(Ô(€HÝˆx‰=Œ=€DØ€GØð IØ×$Ò$Ð%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°wÑ#?Ô#?�G”Løð
	+ð 	+ð 	+ð %6ˆÔ!à×Ò˜8Ñ$Ô$Ð$ð ð 	Ø�MŠM‰OŒOˆOˆOˆOð	ð 	øˆ7ð 	Ø�MŠM‰OŒOˆOˆOð	øøøs   Â4DG Ç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ÚBytesIOrw   r   rt   Úwalkru   r&   rÑ   )Ú	directoryr*   ÚdlenÚzfrx   ra  r:  r\   ÚfullÚrelr�   s              r/   Úzip_dirrL    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      r/   rë   zProgress.__init__$  sF   € ØÐ1 ¨6Ò!1Ð1Ð1Ð1Ø$Ð$ˆŒ�4”8ØˆŒØˆŒØˆŒØˆŒ	ˆ	ˆ	r1   c                 óº   — | j         |k    sJ ‚| j        �|| j        k    sJ ‚|| _        t          j        ¦   «         }| j        €	|| _        d S || j        z
  | _        d S r“   )r  rX  rW  ÚtimerY  rZ  )rê   ÚcurvalÚnows      r/   ÚupdatezProgress.update,  sh   € ØŒx˜6Ò!Ð!Ð!Ð!ØŒxÐ5 6¨T¬XÒ#5Ð5Ð5Ð5ØˆŒÝŒi‰kŒkˆØŒ<ð 	.ØˆDŒLˆLˆLà ¤Ñ-ˆDŒLˆLˆLr1   c                 óP   — |dk    sJ ‚|                       | j        |z   ¦  «         d S )Nr   )rb  rW  )rê   Úincrs     r/   Ú	incrementzProgress.increment6  s0   € Ø�qŠyÐÐÐØ�Š�D”H˜t‘OÑ$Ô$Ð$Ð$Ð$r1   c                 ó:   — |                       | j        ¦  «         | S r“   )rb  r  r  s    r/   rª  zProgress.start:  s   € Ø�Š�D”HÑÔÐØˆr1   c                 óV   — | j         �|                      | j         ¦  «         d| _        d S ©NT)rX  rb  r[  r  s    r/   ÚstopzProgress.stop>  s+   € ØŒ8ð 	"Ø�KŠK˜œÑ!Ô!Ð!ØˆŒ	ˆ	ˆ	r1   c                 ó,   — | j         €| j        n| j         S r“   )rX  Úunknownr  s    r/   ÚmaximumzProgress.maximumC  s   € à#œxÐ=ˆtŒ|ˆ|°T´XÐ=r1   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 %%)r[  rX  rW  r  )rê   r*   rS   s      r/   Ú
percentagezProgress.percentageG  sS   € àŒ9ð 	"ØˆFˆFØŒXð 	"ØˆFˆFà˜œ D¤HÑ,Ñ-°´¸D¼HÑ1DÑEˆAØ ‘\ˆFØˆr1   c                 ó”   — |dk    r| j         �| j        | j        k    rd}n't          j        dt          j        |¦  «        ¦  «        }|S )Nr   z??:??:??z%H:%M:%S)rX  rW  r  r_  ÚstrftimeÚgmtime)rê   Údurationr*   s      r/   Úformat_durationzProgress.format_durationR  sS   € Ø˜ŠMð 	F˜tœxð 	F°4´8¸t¼xÒ3Gð 	FØˆFˆFõ ”] :­t¬{¸8Ñ/DÔ/DÑEÔEˆFØˆr1   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: )r[  rZ  rX  rW  r  Úfloatrs  )rê   r‚   rl   s      r/   ÚETAzProgress.ETA[  s³   € àŒ9ð 	+ØˆFØ”ˆAˆAð ˆFØŒxð +Ø��Ø” Ò"ð + t¤x°4´8Ò';ð +Ø��õ ˜$œ( T¤XÑ-Ñ.Ô.�Ø�T”X ¤Ñ(Ñ(�Ø˜‘U˜dœlÑ*�Ø!˜6˜6 4×#7Ò#7¸Ñ#:Ô#:Ð#:Ð;Ð;r1   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)rZ  rW  r  ÚUNITS)rê   r*   Úunits      r/   ÚspeedzProgress.speedn  sh   € àŒ<˜1Òð 	:ØˆFˆFà”h ¤Ñ)¨T¬\Ñ9ˆFÝð 	ð 	ˆDØ˜Š}ð Ø�Ø�fÑˆFˆFØ˜V T˜NÑ*Ð*r1   N)r   rU  )rï   ró   rô   rk  rë   rb  re  rª  ri  r  rl  rn  rs  rw  r{  rD   r1   r/   rS  rS  !  sä   € € € € € Ø€Gðð ð ð ð.ð .ð .ð%ð %ð %ðð ð ðð ð ð
 ð>ð >ñ „Xð>ð ðð ñ „Xððð ð ð ð<ð <ñ „Xð<ð$ ð	+ð 	+ñ „Xð	+ð 	+ð 	+r1   rS  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     r/   r   r   „  sj   € å×#Ò# IÑ.Ô.ð *ØKˆÝ˜˜y™Ñ)Ô)Ð)Ý×!Ò! )Ñ,Ô,ð *ØFˆÝ˜˜y™Ñ)Ô)Ð)Ý�)ÑÔÐr1   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§   rK   r   z**ri  r¸  rs   ú\)Ú	RICH_GLOBr¡   rw   r  r&   Ú	std_iglobr'   rt   rF  ru   rÓ  )r€  Úrich_path_globr‚   rÐ   r€   Úitemru   ÚradicalÚdirr:  rØ  s              r/   r  r  �  sÈ  è è € Ý—_’_ Y°Ñ2Ô2€NÝ
ˆ>ÑÔ˜QÒð Ý�>Ñ"Ô" aÒ'Ð7Ð7¨Ñ7Ô7Ð7Ø,Ñˆ��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ððð r1   )Ú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_        t          | dd ¦  «        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Ú	cert_file)ÚcafileÚHAS_SNIÚserver_hostnamezHost verified: %s)rà   Úcreate_connectionÚhostÚportÚtimeoutr�   ÚsockÚ_tunnelÚsslÚ
SSLContextÚPROTOCOL_SSLv23r�   Úoptionsr�  Úload_cert_chainr‘  Úkey_fileÚca_certsÚCERT_REQUIREDÚverify_modeÚload_verify_locationsÚwrap_socketÚcheck_domainrŠ  Úgetpeercertr  rQ  r‹  ÚshutdownÚ	SHUT_RDWRr¾   )rê   r™  Úcontextrë  s       r/   Ú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�”Ý�t˜[¨$Ñ/Ô/ð 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«  rD   r1   r/   r�  r�  ²  s-   € € € € € ØˆØˆð	ð 	ð 	ð 	ð 	r1   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      r/   rë   zHTTPSHandler.__init__Õ  s(   € ÝÔ% dÑ+Ô+Ð+Ø$ˆDŒMØ ,ˆDÔÐÐr1   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       r/   Ú_conn_makerzHTTPSHandler._conn_makerÚ  s9   € õ % dÐ5¨fÐ5Ð5ˆFØŒ}ð 8Ø"&¤-�”Ø&*Ô&7�Ô#ØˆMr1   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   r5  Úreasonr‹  r–  )rê   rg   rÅ  s      r/   Ú
https_openzHTTPSHandler.https_openê  s{   € ðØ—|’| DÔ$4°cÑ:Ô:Ð:øÝð ð ð Ø.µ#°a´h±-´-Ð?ð Ý*ð ,4Ø69´hñ,?ñ @ô @ð @ð øøøøðøøøs   ‚ �
A§.AÁANrf  )rï   ró   rô   rë   r°  r´  rD   r1   r/   r‰  r‰  Ó  sF   € € € € € ð	-ð 	-ð 	-ð 	-ð
	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r1   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ê   rg   s     r/   Ú	http_openzHTTPSOnlyHandler.http_openÿ  s!   € Ýð ,Ø.1ñ2ñ 3ô 3ð 3r1   N)rï   ró   rô   r¸  rD   r1   r/   r¶  r¶  ý  s#   € € € € € ð	3ð 	3ð 	3ð 	3ð 	3r1   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      r/   rë   zTransport.__init__	  s(   € ØˆŒÝÔ×$Ò$ T¨<Ñ8Ô8Ð8Ð8Ð8r1   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        r/   Úmake_connectionzTransport.make_connection  sh   € Ø×(Ò(¨Ñ.Ô.‰ˆˆ2ˆtØÔð 	? 4¨4Ô+;¸AÔ+>Ò#>ð 	?Ø"$ˆDÔØ#¥WÔ%;¸AÑ%>Ô%>Ð>ˆDÔØÔ Ô"Ð"r1   N©r   ©rï   ró   rô   rë   rÆ  rD   r1   r/   rº  rº    s7   € € € € € ð9ð 9ð 9ð 9ð#ð #ð #ð #ð #r1   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      r/   rë   zSafeTransport.__init__  s(   € Ø"ˆDŒLÝÔ#×,Ò,¨T°<Ñ@Ô@Ð@Ð@Ð@r1   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        r/   rÆ  zSafeTransport.make_connection  s�   € Ø ×.Ò.¨tÑ4Ô4‰MˆAˆr�6Øð Ø�Ø $¤ˆF�9ÑØÔ#ð T t¨tÔ/?ÀÔ/BÒ'Bð TØ&(�Ô#Ø#'­Ô)@ÀÀDÐ)SÐ)SÈFÐ)SÐ)SÐ#S�Ô ØÔ# AÔ&Ð&r1   NrÇ  rÈ  rD   r1   r/   rÊ  rÊ    s;   € € € € € ð	Að 	Að 	Að 	Að	'ð 	'ð 	'ð 	'ð 	'r1   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)
rz   r˜  r   r¿  rÊ  rº  rÑ  r   rÎ  rë   )rê   rj   rë  r˜  re   r½  Útclsrl   s           r/   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Ð;Ð;Ð;Ð;Ð;r1   N)rï   ró   rô   rë   rD   r1   r/   rÎ  rÎ  (  s#   € € € € € ð<ð <ð <ð <ð <r1   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      r/   Ú	_csv_openrÖ  A  sP   € Ý
Ô˜Ô˜QÒð %Ø�‰ˆˆàˆˆyÑð %ˆˆzÑÝ��DÐ#Ð#˜FÐ#Ð#Ð#r1   c                   ó\   — e Zd Z ed¦  «         ed¦  «         ed¦  «        dœZd„ Zd„ ZdS )ÚCSVBaserK   ú"r  )Ú	delimiterÚ	quotecharÚlineterminatorc                 ó   — | S r“   rD   r  s    r/   Ú	__enter__zCSVBase.__enter__S  ó   € Øˆr1   c                 ó8   — | j                              ¦   «          d S r“   )r°   r¾   )rê   rŠ  s     r/   Ú__exit__zCSVBase.__exit__V  s   € ØŒ×ÒÑÔÐÐÐr1   N)rï   ró   rô   r5  ÚdefaultsrÞ  rá  rD   r1   r/   rØ  rØ  L  s_   € € € € € à�S˜‘X”XØ�S˜‘X”XØ˜#˜d™)œ)ðð €Hðð ð ðð ð ð ð r1   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¨   ru   r»  )	rŽ   r²   r³   r´   r°   rÖ  ÚcsvrÄ  râ  )rê   rë  r°   s      r/   rë   zCSVReader.__init__\  s‡   € Ø�vÐð 	9Ø˜HÔ%ˆFÝÔ Ô" aÒ'ð ;à2�Ô)¨'Ñ2Ô2°6Ñ:Ô:�Ø ˆDŒKˆKå# F¨6¤N°CÑ8Ô8ˆDŒKÝ”j ¤Ð>Ð>°´Ð>Ð>ˆŒˆˆr1   c                 ó   — | S r“   rD   r  s    r/   Ú__iter__zCSVReader.__iter__g  rß  r1   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*   rk   r†  s       r/   rë  zCSVReader.nextj  sn   € Ý�d”kÑ"Ô"ˆÝÔ˜AÔ Ò"ð 	5Ý$ VÑ,Ô,ð 5ð 5‘��4Ý! $­	Ñ2Ô2ð 5Ø $§¢¨GÑ 4Ô 4�F˜1‘IøØˆr1   N)rï   ró   rô   rë   rè  rë  Ú__next__rD   r1   r/   rä  rä  Z  sB   € € € € € ð	?ð 	?ð 	?ðð ð ðð ð ð €H€H€Hr1   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      r/   rë   zCSVWriter.__init__w  s4   € Ý  CÑ(Ô(ˆŒÝ”j ¤Ð>Ð>°´Ð>Ð>ˆŒˆˆr1   c                 óö   — t           j        d         dk     rHg }|D ]A}t          |t          ¦  «        r|                     d¦  «        }|                     |¦  «         ŒB|}| j                             |¦  «         d S rê  )rŽ   r²   r•   r   r0  r$   rð  Úwriterow)rê   Úrowr»  r†  s       r/   rò  zCSVWriter.writerow{  s€   € ÝÔ˜AÔ Ò"ð 	ØˆAØð ð �Ý˜d¥IÑ.Ô.ð 0ØŸ;š; wÑ/Ô/�DØ—’˜‘”��ØˆCØŒ×Ò˜SÑ!Ô!Ð!Ð!Ð!r1   N)rï   ró   rô   rë   rò  rD   r1   r/   rî  rî  u  s2   € € € € € ð?ð ?ð ?ð"ð "ð "ð "ð "r1   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ë   rt   rÚ   r   )rê   Úconfigr   Ú	__class__s      €r/   rë   zConfigurator.__init__�  s7   ø€ Ý�l˜DÑ!Ô!×*Ò*¨6Ñ2Ô2Ð2ØÐ'�BœI™KœKˆŒ	ˆ	ˆ	r1   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 rD   rD   )rY   rk   Úconverts     €r/   r[   zBConfigurator.configure_custom.<locals>.convert.<locals>.<listcomp>˜  s!   ø€ Ð!8Ð!8Ð!8° ' '¨!¡*¤*Ð!8Ð!8Ð!8r1   ú())r•   r]  r  ÚtypeÚdictÚconfigure_customrÿ  )Úor*   rÆ   rÿ  rê   s      €€r/   rÿ  z.Configurator.configure_custom.<locals>.convert–  s¾   ø€ Ý˜!�d¥E˜]Ñ+Ô+ð 
)Ø �˜a™œÐ!8Ð!8Ð!8Ð!8°aÐ!8Ñ!8Ô!8Ñ9Ô9��Ý˜A�tÑ$Ô$ð )Ø˜1�9ð 2Ø!×2Ò2°1Ñ5Ô5�F�Fà�FØð 2ð 2˜Ø$+ G¨A¨a¬D¡M¤M˜˜q™	˜	ð2ð Ÿš a™œ�ØˆMr1   r   ri  z[]rD   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS rD   rD   )rY   r  rÿ  s     €r/   r[   z1Configurator.configure_custom.<locals>.<listcomp>«  s!   ø€ Ð3Ð3Ð3¨˜'˜' !™*œ*Ð3Ð3Ð3r1   c                 óT   •— g | ]$}t          |¦  «        ¯| ‰‰|         ¦  «        f‘Œ%S rD   )r   )rY   rÆ   rú  rÿ  s     €€r/   r[   z1Configurator.configure_custom.<locals>.<listcomp>¬  s7   ø€ ÐKÐKÐK¨Q½KÈ¹N¼NÐK�!�W�W˜V AœYÑ'Ô'Ð(ÐKÐKÐKr1   )rz   r}  ro  r  r  r¸   Úsetattr)rê   rú  rž   Úpropsrê  r¸   rë  r*   r±  rS   rÿ  s   ``        @r/   r  zConfigurator.configure_custom”  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¡:¤:Ñ.Ô.Ð.Ð.Øˆr1   c                 ó�   — | j         |         }t          |t          ¦  «        r#d|v r|                      |¦  «        x| j         |<   }|S )Nr   )rú  r•   r  r  )rê   r¤   r*   s      r/   Ú__getitem__zConfigurator.__getitem__´  sQ   € Ø”˜SÔ!ˆÝ�f�dÑ#Ô#ð 	F¨°¨ð 	FØ(,×(=Ò(=¸fÑ(EÔ(EÐEˆDŒK˜Ñ˜vØˆr1   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)	rt   ru   Úisabsr&   r   r³   r'  r¶   r·   )rê   rÈ   r-  r*   s       r/   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   @r/   rõ  rõ  ‹  sŠ   ø€ € € € € à�tÐ,Ô=Ñ>Ô>ÐØ+Ð�UÑð(ð (ð (ð (ð (ð (ðð ð ð@ð ð ðð ð ð ð ð ð r1   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      r/   rë   zSubprocessMixin.__init__È  s   € ØˆŒØ ˆŒˆˆr1   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.
        TNri  r¨   )	r  r  ÚreadlinerŽ   ÚstderrrÑ   r)  Úflushr¾   )rê   r°   rª  r  r  r.   s         r/   rÄ  zSubprocessMixin.readerÌ  s½   € ð
 ”=ˆØ”,ˆð	#Ø—’Ñ!Ô!ˆAØð ØØð #Ø�˜˜GÑ$Ô$Ð$Ð$àð 8Ý”J×$Ò$ SÑ)Ô)Ð)Ð)å”J×$Ò$ Q§X¢X¨gÑ%6Ô%6Ñ7Ô7Ð7Ý”
× Ò Ñ"Ô"Ð"ð	#ð 	�Š‰Œˆˆˆr1   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         r/   Úrun_commandzSubprocessMixin.run_commandá  sé   € ÝÔ˜SÐ[­¬ÅÄÐ[Ð[ÐTZÐ[Ð[ˆÝÔ T¤[¸¼À(Ð7KÐLÑLÔLˆØ
�Š‰
Œ
ˆ
ÝÔ T¤[¸¼À(Ð7KÐLÑLÔLˆØ
�Š‰
Œ
ˆ
Ø	�Š‰ŒˆØ
�Š‰	Œ	ˆ	Ø
�Š‰	Œ	ˆ	ØŒ=ð 	(Ø�MŠM˜' 6Ñ*Ô*Ð*Ð*ØŒ\ð 	(ÝŒJ×Ò˜YÑ'Ô'Ð'Øˆr1   )FN)rï   ró   rô   rÚ  rë   rÄ  r$  rD   r1   r/   r  r  Ã  sP   € € € € € ðð ð!ð !ð !ð !ðð ð ð*ð ð ð ð r1   r  c                 óR   — t          j        dd| ¦  «                             ¦   «         S )z,Normalize a python package name a la PEP 503z[-_.]+r¨  )r«  Úsubr˜   )r\   s    r/   Únormalize_namer'  ñ  s$   € õ Œ6�(˜C Ñ&Ô&×,Ò,Ñ.Ô.Ð.r1   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)rt   ru   r&   r�  r®  r_   )rê   rØ  r_   s      r/   rë   zPyPIRCFile.__init__  sB   € Øð 	BÝ”—’�bœg×0Ò0°Ñ5Ô5°yÑAÔAˆBØˆŒØˆŒˆˆr1   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  )rY   Úservers     r/   r[   z#PyPIRCFile.read.<locals>.<listcomp>  s8   € ÐkÐkÐk¨vÐV\×VbÒVbÑVdÔVdÐhjÒVjÐk˜FŸLšL™NœNÐkÐkÐkr1   r  r*  r/  rœ  Ú
repositoryÚrealm)r�  Nzserver-loginr�  )rœ  r�  r0  r/  r1  )rt   ru   r  r®  r_   ÚDEFAULT_REPOSITORYr   ÚRawConfigParserrµ   rÁ   r¿  r¡   ÚDEFAULT_REALMÚ
has_option)
rê   r*   r0  rú  rÁ   Úindex_serversÚ_serversr/  r¤   rœ   s
             r/   rµ   zPyPIRCFile.read  sM  € ØˆåŒ7�>Š>˜$œ-Ñ(Ô(ñ /	ØœÐ< TÔ%<ˆJå!Ô1Ñ3Ô3ˆFØ�KŠK˜œÑ&Ô&Ð&Ø—’Ñ(Ô(ˆHØ˜hÐ&ð )à &§
¢
¨;¸Ñ HÔ H�ØkÐk¸×9LÒ9LÈTÑ9RÔ9RÐkÑkÔk�Ø˜r’>ð (à Ð)ð ,Ø$* 8˜ùà"*ð (ð (˜Ø"*¨FÐ!3˜Ø-3¯ZªZ¸À
Ñ-KÔ-K˜˜zÑ*ð /;¸DÔ<SÐ-TÐW^Ð`dÔ`rÐVsØ-?ð-Að 6ð 6™L˜C à%×0Ò0°¸Ñ=Ô=ð 6Ø.4¯jªj¸ÀÑ.EÔ.E  s¡ à.5  s¡ ð
 # fÒ,ð (°ÀÔ@WÐY_Ð?`Ð1`ð (Ø37Ô3J˜F <Ñ0Ð0Ø$ XÔ.°*Ò<ð (ÀÈÔAUÐYcÒAcð (Ø%'˜Føð%(ð&   8Ð+ð à'�Ø×$Ò$ V¨\Ñ:Ô:ð 9Ø!'§¢¨F°LÑ!AÔ!A�J�Jà!%Ô!8�Jà &§
¢
¨6°:Ñ >Ô >Ø &§
¢
¨6°:Ñ >Ô >Ø",Ø$Ø!Ô/ðð �ð ˆr1   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   r3  r®  rµ   Úhas_sectionrÍ   rÐ   r'  rÑ   )rê   rœ  r�  rú  rØ  r-  s         r/   rb  zPyPIRCFile.updateB  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ô   r2  r4  rë   rµ   rb  rD   r1   r/   r)  r)    sR   € € € € € à:ÐØ€Mðð ð ð ð3ð 3ð 3ðj
ð 
ð 
ð 
ð 
r1   r)  c                 óP   — t          | j        ¬¦  «                             ¦   «         S )zG
    Read the PyPI access configuration as supported by distutils.
    )r_   )r)  r_   rµ   ©r  s    r/   Ú_load_pypircr=  O  s#   € õ ˜%œ)Ð$Ñ$Ô$×)Ò)Ñ+Ô+Ð+r1   c                 ó^   — t          ¦   «                              | j        | j        ¦  «         d S r“   )r)  rb  rœ  r�  r<  s    r/   Ú_store_pypircr?  V  s&   € Ý�L„L×Ò˜œ¨¬Ñ7Ô7Ð7Ð7Ð7r1   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|                     ¦   «         }n\| dd …         d#k    rNddl}		 dd$lm}
 n# t,          $ r ddl}
Y nw xY w|	                     |
                     ¦   «         | ||¦  «        \  } }}| ›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_PLATFORMr3  Úunamers   r   rV   rm   r¨  Né   ÚlinuxÚsunosr   Ú5Úsolarisz%d.%sr§   é   Ú32bitÚ64bit)iÿÿÿl   ÿÿÿÿ z.%sÚaix)Úaix_platformé   Úcygwinz[\d.]+Údarwin)Ú	sysconfig)rt   r\   rŽ   rÍ  r˜   Úplatformr‹  r�   rE  r#   ÚintÚmaxsizeÚ_aix_supportrO  r«  rF  ÚASCIIr   rÄ   Ú_osx_supportr-  rS  ÚImportErrorÚget_platform_osxÚget_config_vars)Úosnamer–  ÚreleaserÍ  ÚmachineÚbitnessrO  Úrel_rer)   rY  rS  s              r/   Úget_host_platformrb  `  sö  € õ( 
„w�$‚ð Ø•c”k×'Ò'Ñ)Ô)Ð)ð 	Ø�;Ø•c”k×'Ò'Ñ)Ô)Ð)ð 	Ø�;Ø�œ×)Ò)Ñ+Ô+Ð+ð 	Ø�;ÝŒ|Ðð ¥"¤*Ð,ð 3ÝŒ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Òð xð !˜&˜& ' 'Ð*Ð*à	���Œ�wÒ	ð xØ�1Œ:˜Òð 	4ØˆFØ¥ W¨Q¤Z¡¤°1Ñ!4°g¸a¸b¸b´kÐ BÑBˆGð $+ÀÐIÐIˆGØ�u˜w¥s¤{Ô3Ñ3Ñ3ˆGøà	���Œ�uÒ	ð xØ-Ð-Ð-Ð-Ð-Ð-Øˆ|‰~Œ~ÐØ	���Œ�xÒ	ð xØˆÝ”˜I¥r¤xÑ0Ô0ˆØ�LŠL˜Ñ!Ô!ˆØð 	 Ø—g’g‘i”iˆGøØ	���Œ�xÒ	ð xØÐÐÐð	Ø+Ð+Ð+Ð+Ð+Ð+Ð+øÝð 	ð 	ð 	ØÐÐÐÐÐð	øøøà#/×#@Ò#@À×AZÒAZÑA\ÔA\Ð^dÐfmÐovÑ#wÔ#wÑ ˆ�˜à˜˜   ¨'¨'Ð2Ð2s   È?I ÉIÉIÚwin32rB  rC  )Ú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)rt   r\   rb  r‹  r¿  Ú_TARGET_TO_PLAT)Úcross_compilation_targets    r/   Úget_platformrk  º  sV   € Ý	„w�$‚ð #Ý Ñ"Ô"Ð"Ý!œzŸ~š~Ð.BÑCÔCÐØ¥Ð6ð #Ý Ñ"Ô"Ð"ÝÐ3Ô4Ð4r1   r:  )rÞ   r“   rf  rh  )…r³   Úcollectionsr   Ú
contextlibræ  Úglobr   r„  rD  r¶   Úloggingrt   rD  r«  rà   r›  rZ  r  rŽ   r2  rÔ   r¿   r  Údummy_threadingr_  r   r   Úcompatr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú	getLoggerrï   r  rF  r   rP   rO   r:   rC   r?   rd   r%   rF   ro   r‰   r‘   r–   rŸ   r¥   rÉ   rÒ   ÚcontextmanagerrØ   rÛ   rå   rí   rç   rü   rþ   ro  rq  ÚVERBOSEr€  r¹   r’  r–  r™  rž  r¢  r¦  ÚIr­  r©  r²  rµ  r¶  r½  rÆ  rÊ  rË  rÎ  rÐ  rÜ  rî  ÚARCHIVE_EXTENSIONSrB  rL  ry  rS  rƒ  r}  r~  r  r‰  r®  rŠ  r‹  r�  r¶  rº  rÊ  rÎ  rÖ  rØ  rä  rî  rõ  r  r'  r)  r=  r?  rb  ri  rk  rD   r1   r/   ú<module>rw     sÍ	  ðð
 €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø 
€
€
€
Ø #Ð #Ð #Ð #Ð #Ð #Ø 	€	€	€	Ø €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø 	€	€	€	Ø €€€ðØ€J€J€J€JøØð ð ð Ø
€C€C€Cðøøøà Ð Ð Ð Ø 
€
€
€
Ø €€€Ø €€€Ø €€€ð(ØÐÐÐÐøØð (ð (ð (Ø'Ð'Ð'Ð'Ð'Ð'ð(øøøà €€€à Ð Ð Ð Ð Ð ð2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 
ˆÔ	˜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€ðW!ð W!ð W!ðtytð ytð ytðxð ð ð4ð ð ðð ð ð$ð ð ð ð ð ð ð,ð ,ð ,ð^ð ð ð& Ôðð ñ Ôðð Ôðð ñ Ôðð Ôð&ð &ð &ñ Ôð&ðð ð ð ð �fñ ô ð ð  ð  ð  ð6wð wð wð wð w�6ñ wô wð wðtð ð ðð ð ð ð �&ñ ô ð ð4 ˆ2Œ:ðð œ:ñ	'ô '€ðð ð ð>&(ð &(ð &(ð &(ðRð ð ð ð"ð ð ð&ð &ð &ðð ð ðð ð ð &˜2œ:ð '8Ø9;¼ñ?ô ?Ð à�”Ð,Ñ-Ô-€ðð ð ð ð4 �"”*ð 9ñ :ô :€ð/ð /ð /ð ð ð ð8ð ð ð* DÐ ðð ð ð#ð #ð #ð)ð )ð )ð )ð )ˆFñ )ô )ð )ðXCð Cð Cð Cð C�ñ Cô Cð CðRF!ð F!ð F!ð F!ð F!�ñ F!ô F!ð F!ðZ UÐ ðAð Að Að AðHð ð ð$ 	&€ðW+ð W+ð W+ð W+ð W+ˆvñ W+ô W+ð W+ð| ˆBŒJ�~Ñ&Ô&€	Ø"˜œ
Ð#?Ñ@Ô@Ð Ø �b”jÐ!5Ñ6Ô6Ð ðð ð ðð ð ð8 ð V3Ø\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\ðð ð ð ð ˜'Ô1ñ ô ð ðBð ð ð ð Ð'ñ ô ð ðT3ð 3ð 3ð 3ð 3˜<¨ñ 3ô 3ð 3ð#ð #ð #ð #ð #�	Ô#ñ #ô #ð #ð ð 'ð'ð 'ð 'ð 'ð '˜	Ô/ñ 'ô 'ð 'ð"<ð <ð <ð <ð <�)Ô'ñ <ô <ð <ð2$ð $ð $ðð ð ð ð ˆfñ ô ð ðð ð ð ð �ñ ô ð ð6"ð "ð "ð "ð "�ñ "ô "ð "ð,5ð 5ð 5ð 5ð 5Ð#ñ 5ô 5ð 5ðp+ð +ð +ð +ð +�fñ +ô +ð +ð\/ð /ð /ð"Jð Jð Jð Jð J�ñ Jô Jð JðZ,ð ,ð ,ð8ð 8ð 8ðP3ð P3ð P3ðh ØØðð €ð5ð 5ð 5ð 5ð 5s!   ¶; »AÁAÁA" Á"	A.Á-A.