§
    òyIfÈ<  ã                  óÞ  — d Z ddlmZ ddlZddlZddlZddlZddlZddlmZm	Z	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m!Z! ddl"m#Z#  e	d¬¦  «        Z$ e	d¬¦  «        Z% e	d¬¦  «        Z& e	d¬¦  «        Z'd„ Z(d„ Z)d„ Z*dZ+d„ Z,d„ Z- G d„ d¦  «        Z. G d„ d¦  «        Z/d „ Z0d!„ Z1d"„ Z2d#„ Z3d$„ Z4i Z5d%„ Z6d&„ Z7d'„ Z8d(„ Z9g d)¢Z:dS )*z%Periodically update bundled versions.é    )ÚannotationsN)ÚdatetimeÚ	timedeltaÚtimezone)Úgroupby)ÚPath)Úcopy2)ÚDEVNULLÚPopen)Údedent)ÚThread)ÚURLError)Úurlopen)ÚAppDataDiskFolder)ÚBUNDLE_SUPPORT)ÚWheel)ÚCREATE_NO_WINDOWé   )Úhoursé   )Údaysé   c                ó@  ‡‡— |rt          | |||‰|¦  «         t          j        t          j        ¬¦  «        Šˆfd„}t
                               ‰| |¦  «        }	|€œt          |	j        d„ ¬¦  «        D ]ƒ\  }
}t          |¦  «        }t          ˆfd„|D ¦   «         ¦  «        }|D ]Q}|�(t          |j        ¦  «        j        |j        k    r|c c S |                     ‰|¦  «        r ||¦  «        c c S ŒRŒ„n'|	j        D ]}|j        j        |k    r ||¦  «        c S Œ |S )N©Útzc                ót   •— t          ‰j        | j        z  ¦  «        }t          j        d|rdnd|¦  «         |S )Nzusing %supdated wheel %szperiodically Ú )r   ÚhouseÚfilenameÚloggingÚdebug)ÚverÚupdated_wheelÚapp_datas     €úZ/var/www/piapp/venv/lib/python3.11/site-packages/virtualenv/seed/wheels/periodic_update.pyÚ_update_wheelz&periodic_update.<locals>._update_wheel.   s?   ø€ Ý˜hœn¨s¬|Ñ;Ñ<Ô<ˆÝŒÐ0À]Ð2Z°/°/ÐXZÐ\iÑjÔjÐjØÐó    c                ó*   — | j         j        dd…         S )Nr   é   )ÚwheelÚversion_tuple)Úvs    r%   ú<lambda>z!periodic_update.<locals>.<lambda>5   s   € ¸a¼gÔ>SÐTUÐVWÐTWÔ>X€ r'   )Úkeyc              3  óF   •K  — | ]}|                      ‰¦  «        ¯|V — Œd S ©N)Úuse)Ú.0ÚversionÚnows     €r%   ú	<genexpr>z"periodic_update.<locals>.<genexpr>8   s8   øè è € Ð+cÐ+c¸ÐRY×R]ÒR]Ð^aÑRbÔRbÐ+c¨GÐ+cÐ+cÐ+cÐ+cÐ+cÐ+cr'   )Úhandle_auto_updater   r4   r   ÚutcÚ	UpdateLogÚfrom_app_datar   ÚversionsÚlistÚanyr   r   Únamer1   r*   r3   )ÚdistributionÚ
of_versionÚfor_py_versionr*   Úsearch_dirsr$   Údo_periodic_updateÚenvr&   Úu_logÚ_ÚgroupÚall_patchesÚignore_grace_period_minorr3   r4   s        `         @r%   Úperiodic_updaterI      s‹  øø€ ð ð \Ý˜<¨¸ÀÈXÐWZÑ[Ô[Ð[å
Œ,�(œ,Ð
'Ñ
'Ô
'€Cðð ð ð ð õ
 ×#Ò# H¨l¸NÑKÔK€EØÐÝ ¤Ð4XÐ4XÐYÑYÔYð 	2ð 	2‰HˆAˆuå˜u™+œ+ˆKÝ(+Ð+cÐ+cÐ+cÐ+cÀ;Ð+cÑ+cÔ+cÑ(cÔ(cÐ%Ø&ð 2ð 2�ØÐ$­¨gÔ.>Ñ)?Ô)?Ô)DÈÌ
Ò)RÐ)RØ �L�L�L�L�LØ—;’;˜sÐ$=Ñ>Ô>ð 2Ø(˜=¨Ñ1Ô1Ð1Ð1Ð1Ð1Ð1ð2ð2ð		2ð ”~ð 	.ð 	.ˆGØŒ}Ô$¨
Ò2Ð2Ø$�} WÑ-Ô-Ð-Ð-Ð-ð 3ð €Lr'   c           	     ól  — |                      | |¦  «        }t                               |                     ¦   «         ¦  «        }|j        rjd|_        t          j        t          j	        ¬¦  «        |_
        |                     |                     ¦   «         ¦  «         t          | ||||d|¬¦  «         d S d S )NTr   )ÚperiodicrC   )Úembed_update_logr8   Ú	from_dictÚreadÚneeds_updaterK   r   r4   r   r7   ÚstartedÚwriteÚto_dictÚtrigger_update)r>   r@   r*   rA   r$   rC   rL   rD   s           r%   r6   r6   F   s®   € Ø×0Ò0°¸~ÑNÔNÐÝ×ÒÐ 0× 5Ò 5Ñ 7Ô 7Ñ8Ô8€EØÔð kØˆŒÝ œ­¬Ð5Ñ5Ô5ˆŒØ×Ò˜uŸ}š}™œÑ/Ô/Ð/Ý�| ^°U¸KÈÐ\`ÐfiÐjÑjÔjÐjÐjÐjð	kð kr'   c                óD  ‡ — |                      ‰ j        |¦  «        }t          j        d‰ j        |j        ¦  «         t                               |                     ¦   «         ¦  «        }t          ˆ fd„|j
        D ¦   «         ¦  «        r"t          j        d‰ j        |j        ¦  «         d S t          ‰ j        t          j        t          j        ¬¦  «        d d¦  «        }|j
                             |¦  «         |                     |                     ¦   «         ¦  «         d S )Nzadding %s information to %sc              3  ó8   •K  — | ]}|j         ‰j        k    V — Œd S r0   )r   r=   )r2   r3   r*   s     €r%   r5   z*add_wheel_to_update_log.<locals>.<genexpr>T   s-   øè è € Ð
HÐ
H¨gˆ7Ô˜uœzÒ)Ð
HÐ
HÐ
HÐ
HÐ
HÐ
Hr'   z%s already present in %sr   Údownload)rL   r>   r    r!   r=   Úfiler8   rM   rN   r<   r:   ÚwarningÚ
NewVersionr   r4   r   r7   ÚappendrQ   rR   )r*   r@   r$   rL   rD   r3   s   `     r%   Úadd_wheel_to_update_logr[   P   sú   ø€ Ø×0Ò0°Ô1CÀ^ÑTÔTÐÝ„MÐ/°´Ð=MÔ=RÑSÔSÐSÝ×ÒÐ 0× 5Ò 5Ñ 7Ô 7Ñ8Ô8€EÝ
Ð
HÐ
HÐ
HÐ
H¸¼Ð
HÑ
HÔ
HÑHÔHð ÝŒÐ2°E´JÐ@PÔ@UÑVÔVÐVØˆå˜œ¥X¤\µX´\Ð%BÑ%BÔ%BÀDÈ*ÑUÔU€GØ	„N×Ò˜'Ñ"Ô"Ð"Ø×Ò˜5Ÿ=š=™?œ?Ñ+Ô+Ð+Ð+Ð+r'   z%Y-%m-%dT%H:%M:%S.%fZc                ó>   — | €d n|                       t          ¦  «        S r0   )ÚstrftimeÚDATETIME_FMT©Úvalues    r%   Údump_datetimera   `   s   € Ø�=ˆ4ˆ4 e§n¢nµ\Ñ&BÔ&BÐBr'   c                óz   — | €d n7t          j        | t          ¦  «                             t          j        ¬¦  «        S )N©Útzinfo)r   Ústrptimer^   Úreplacer   r7   r_   s    r%   Úload_datetimerg   d   s2   € Ø�=ˆ4ˆ4¥hÔ&7¸½|Ñ&LÔ&L×&TÒ&TÕ\dÔ\hÐ&TÑ&iÔ&iÐir'   c                  ód   — e Zd Zdd„Zed„ ¦   «         Zd„ Zdd„Zdd	„Zd
„ Z	d„ Z
ed„ ¦   «         ZdS )rY   ÚreturnÚNonec                ó>   — || _         || _        || _        || _        d S r0   ©r   Ú
found_dateÚrelease_dateÚsource)Úselfr   rm   rn   ro   s        r%   Ú__init__zNewVersion.__init__i   s#   € Ø ˆŒØ$ˆŒØ(ˆÔØˆŒˆˆr'   c                ó„   —  | |d         t          |d         ¦  «        t          |d         ¦  «        |d         ¬¦  «        S )Nr   rm   rn   ro   rl   )rg   ©ÚclsÚ
dictionarys     r%   rM   zNewVersion.from_dicto   sK   € àˆsØ 
Ô+Ý$ Z°Ô%=Ñ>Ô>Ý& z°.Ô'AÑBÔBØ˜hÔ'ð	
ñ 
ô 
ð 	
r'   c                ól   — | j         t          | j        ¦  «        t          | j        ¦  «        | j        dœS )N©r   rn   rm   ro   )r   ra   rn   rm   ro   ©rp   s    r%   rR   zNewVersion.to_dictx   s6   € àœÝ)¨$Ô*;Ñ<Ô<Ý'¨¬Ñ8Ô8Ø”kð	
ð 
ð 	
r'   Fc                ó    — | j         dk    rdS | j         dk    r5| j        |t          z
  k     s|r |s| j        p| j        }||z
  t          k    S dS dS )NÚmanualTrK   F)ro   rm   ÚGRACE_PERIOD_CIrn   ÚGRACE_PERIOD_MINOR)rp   r4   rH   Úignore_grace_period_ciÚcompare_froms        r%   r1   zNewVersion.use€   sk   € ØŒ;˜(Ò"Ð"Ø�4ØŒ;˜*Ò$Ð$¨$¬/¸CÅ/Ñ<QÒ*QÐ*QÐUkÐ*QØ,ð @Ø#Ô0ÐC°D´O�Ø˜\Ñ)Õ-?Ò?Ð?Ø�4Øˆur'   Ústrc           
     ó`   — | j         j        › d| j        › d| j        › d| j        › d| j        › d�
S )Nz
(filename=z), found_date=z, release_date=z	, source=ú))Ú	__class__Ú__name__r   rm   rn   ro   rx   s    r%   Ú__repr__zNewVersion.__repr__Š   sd   € àŒ~Ô&ð Gð G°$´-ð Gð GÈtÌð Gð GØ Ô-ðGð GØ8<¼ðGð Gð Gð	
r'   c                ó~   ‡ ‡— t          ‰ ¦  «        t          ‰¦  «        k    ot          ˆˆ fd„dD ¦   «         ¦  «        S )Nc              3  ó\   •K  — | ]&}t          ‰|¦  «        t          ‰|¦  «        k    V — Œ'd S r0   )Úgetattr)r2   ÚkÚotherrp   s     €€r%   r5   z$NewVersion.__eq__.<locals>.<genexpr>‘   sM   øè è € ð 1
ð 1
Ø67�G�D˜!ÑÔ¥¨¨qÑ 1Ô 1Ò1ð1
ð 1
ð 1
ð 1
ð 1
ð 1
r'   rw   )ÚtypeÚall©rp   r‰   s   ``r%   Ú__eq__zNewVersion.__eq__�   sY   øø€ Ý�D‰zŒz�T %™[œ[Ò(ð 
­Sð 1
ð 1
ð 1
ð 1
ð 1
Ø;oð1
ñ 1
ô 1
ñ .
ô .
ð 	
r'   c                ó   — | |k     S r0   © rŒ   s     r%   Ú__ne__zNewVersion.__ne__•   s   € Ø˜E’MÐ"Ð"r'   c                óD   — t          t          | j        ¦  «        ¦  «        S r0   )r   r   r   rx   s    r%   r*   zNewVersion.wheel˜   s   € å•T˜$œ-Ñ(Ô(Ñ)Ô)Ð)r'   N©ri   rj   )FF)ri   r   )rƒ   Ú
__module__Ú__qualname__rq   ÚclassmethodrM   rR   r1   r„   r�   r�   Úpropertyr*   r�   r'   r%   rY   rY   h   s³   € € € € € ðð ð ð ð ð
ð 
ñ „[ð
ð
ð 
ð 
ðð ð ð ð
ð 
ð 
ð 
ð
ð 
ð 
ð
#ð #ð #ð ð*ð *ñ „Xð*ð *ð *r'   rY   c                  ód   — e Zd Zd
d„Zed„ ¦   «         Zed„ ¦   «         Zd„ Zed„ ¦   «         Z	d„ Z
d	S )r8   ri   rj   c                ó>   — || _         || _        || _        || _        d S r0   )rP   Ú	completedr:   rK   )rp   rP   r™   r:   rK   s        r%   rq   zUpdateLog.__init__ž   s"   € ØˆŒØ"ˆŒØ ˆŒØ ˆŒˆˆr'   c           	     ó  — |€i } | t          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        d„ |                     dg ¦  «        D ¦   «         |                     d¦  «        ¦  «        S )NrP   r™   c                óB   — g | ]}t                                |¦  «        ‘ŒS r�   )rY   rM   ©r2   r,   s     r%   ú
<listcomp>z'UpdateLog.from_dict.<locals>.<listcomp>«   s&   € ÐMÐMÐM¨�Z×!Ò! !Ñ$Ô$ÐMÐMÐMr'   r:   rK   )rg   Úgetrs   s     r%   rM   zUpdateLog.from_dict¤   s}   € àÐØˆJØˆsÝ˜*Ÿ.š.¨Ñ3Ô3Ñ4Ô4Ý˜*Ÿ.š.¨Ñ5Ô5Ñ6Ô6ØMÐM¨j¯nªn¸ZÈÑ.LÔ.LÐMÑMÔMØ�NŠN˜:Ñ&Ô&ñ	
ô 
ð 	
r'   c                ó|   — |                      ||¦  «                             ¦   «         }|                      |¦  «        S r0   )rL   rN   rM   )rt   r$   r>   r@   Úraw_jsons        r%   r9   zUpdateLog.from_app_data¯   s5   € à×,Ò,¨\¸>ÑJÔJ×OÒOÑQÔQˆØ�}Š}˜XÑ&Ô&Ð&r'   c                ó€   — t          | j        ¦  «        t          | j        ¦  «        | j        d„ | j        D ¦   «         dœS )Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS r�   )rR   )r2   Úrs     r%   r�   z%UpdateLog.to_dict.<locals>.<listcomp>¹   s    € Ð<Ð<Ð<¨˜Ÿš™œÐ<Ð<Ð<r'   )rP   r™   rK   r:   )ra   rP   r™   rK   r:   rx   s    r%   rR   zUpdateLog.to_dict´   sC   € å$ T¤\Ñ2Ô2Ý& t¤~Ñ6Ô6ØœØ<Ð<¨d¬mÐ<Ñ<Ô<ð	
ð 
ð 	
r'   c                óÌ   — t          j        t          j        ¬¦  «        }| j        €|                      |¦  «        S || j        z
  t          k    rdS |                      |¦  «        S )Nr   F)r   r4   r   r7   r™   Ú_check_startÚUPDATE_PERIOD©rp   r4   s     r%   rO   zUpdateLog.needs_update¼   s]   € åŒl�hœlÐ+Ñ+Ô+ˆØŒ>Ð!Ø×$Ò$ SÑ)Ô)Ð)Ø�”Ñ¥=Ò0Ð0Ø�5Ø× Ò  Ñ%Ô%Ð%r'   c                ó:   — | j         d u p|| j         z
  t          k    S r0   )rP   ÚUPDATE_ABORTED_DELAYr§   s     r%   r¥   zUpdateLog._check_startÅ   s!   € ØŒ|˜tÐ#ÐP s¨T¬\Ñ'9Õ<PÒ'PÐPr'   Nr’   )rƒ   r“   r”   rq   r•   rM   r9   rR   r–   rO   r¥   r�   r'   r%   r8   r8   �   sœ   € € € € € ð!ð !ð !ð !ð ð
ð 
ñ „[ð
ð ð'ð 'ñ „[ð'ð
ð 
ð 
ð ð&ð &ñ „Xð&ðQð Qð Qð Qð Qr'   r8   c           
     ó$  — |€d nt          |j        ¦  «        }t          j        dt	          d¦  «                             ¦   «                              | ||t          |¦  «        d„ |D ¦   «         |¦  «        g}|                     d¦  «        dk    }	|	rd nt          }
|
|
dœ}|	st          j	        dk    r
t          |d<   t          |fi |¤Ž}t          j        d	| |€d
n	d|j        › �||j        ¦  «         |	r|                     ¦   «          d S d|_        d S )Nz-czñ
        from virtualenv.report import setup_report, MAX_LEVEL
        from virtualenv.seed.wheels.periodic_update import do_update
        setup_report(MAX_LEVEL, show_pid=True)
        do_update({!r}, {!r}, {!r}, {!r}, {!r}, {!r})
        c                ó,   — g | ]}t          |¦  «        ‘ŒS r�   )r   ©r2   Úps     r%   r�   z"trigger_update.<locals>.<listcomp>×   s   € ÐIfÐIfÐIfÐUVÍ#ÈaÉ&Ì&ÐIfÐIfÐIfr'   Ú"_VIRTUALENV_PERIODIC_UPDATE_INLINEÚ1)ÚstdoutÚstderrÚwin32ÚcreationflagszWtriggered periodic upgrade of %s%s (for python %s) via background process having PID %dr   z==r   )r   ÚpathÚsysÚ
executabler   ÚstripÚformatrž   r
   Úplatformr   r   r    Úinfor3   ÚpidÚcommunicateÚ
returncode)r>   r@   r*   rA   r$   rC   rK   Ú
wheel_pathÚcmdr!   ÚpipeÚkwargsÚprocesss                r%   rS   rS   É   sB  € Ø˜��­C°´
©O¬O€JåŒØÝðñ	
ô 	
÷ 
Š‰Œß	Š�˜n¨j½#¸h¹-¼-ÐIfÐIfÐZeÐIfÑIfÔIfÐhpÑ	qÔ	qð€Cð �GŠGÐ8Ñ9Ô9¸SÒ@€EØÐ%ˆ4ˆ4�g€DØ¨Ð-Ð-€FØð 3•S”\ WÒ,Ð,Ý"2ˆˆÑÝ�CÐ"Ð"˜6Ð"Ð"€GÝ„LØaØØˆmˆˆÐ!5 e¤mÐ!5Ð!5ØØŒñô ð ð ð Ø×ÒÑÔÐÐÐð ˆÔÐÐr'   c                óœ   — d }	 t          || ||||¦  «        }t          j        d| ||¦  «         n# t          j        d| ||¦  «         w xY w|S )Nzdone %s %s with %s)Ú_run_do_updater    r!   )r>   r@   Úembed_filenamer$   rA   rK   r:   s          r%   Ú	do_updaterÆ   í   sb   € Ø€HðTÝ! (¨L¸.È.ÐZbÐdoÑpÔpˆåŒÐ*¨L¸.È(ÑSÔSÐSÐSø�ŒÐ*¨L¸.È(ÑSÔSÐSÐSøøøØ€Os	   „0 °A	c           	     ó¢  ‡— ddl m} |€d nt          |¦  «        }|€d nt          |¦  «        j        }t          | t          ¦  «        rt          | ¦  «        n| } d„ |D ¦   «         }| j        }	|  	                    ||¦  «        }
t                               |
                     ¦   «         ¦  «        }t          j        t          j        ¬¦  «        }g g }}|j        D ]6}|j        dv r|                     |¦  «         Œ!|                     |¦  «         Œ7|rd}nd}|r||d         _        |�H|	|j        z  }|                     ¦   «         s*t-          t          |¦  «        t          |	¦  «        ¦  «         d d g t/          ¦   «         f\  }}}Š|�|                     |d¬	¦  «        �s4t          j        t          j        ¬¦  «        }|                     ||€d nd
|› �||| |	t4          j        ¬¦  «        }|�|r|d         j        |j        k    rnÍt;          |j        ¦  «        }t?          |j        j        |||¬¦  «        }tA          j!        d|t          j        t          j        ¬¦  «        |z
  ¦  «         |                     |¦  «         ‰ "                    |j        ¦  «         |j#        }|j$        }|�||j        k    rn|�®|                     |d¬	¦  «        �¯4||_%        |j%        s||_&        ˆfd„|D ¦   «         }||z   |z   |_        t          j        t          j        ¬¦  «        |_'        |
 (                    | )                    ¦   «         ¦  «         |S )Nr   )Úacquirec                óZ   — g | ](}t          |t          ¦  «        rt          |¦  «        n|‘Œ)S r�   )Ú
isinstancer   r   r¬   s     r%   r�   z"_run_do_update.<locals>.<listcomp>  s1   € ÐMÐMÐM¸A�j¨­CÑ0Ô0Ð7•4˜‘7”7�7°aÐMÐMÐMr'   r   >   rz   rK   rK   rz   T)r}   ú<)r>   Úversion_specr@   rA   r$   Ú	to_folderrC   rw   zdetected %s in %sc                ó&   •— g | ]}|j         ‰v¯|‘ŒS r�   )r   )r2   r3   Ú	filenamess     €r%   r�   z"_run_do_update.<locals>.<listcomp>7  s'   ø€ ÐaÐaÐa '¸wÔ?OÐW`Ð?`Ð?`�gÐ?`Ð?`Ð?`r'   )*Úvirtualenv.seed.wheelsrÈ   r   r   r+   rÊ   r   r   r   rL   r8   rM   rN   r   r4   r   r7   r:   ro   rZ   r=   Úexistsr	   Úsetr1   Údownload_wheelÚosÚenvironr   Úrelease_date_for_wheel_pathr´   rY   r    rº   Úaddr*   r3   rK   rP   r™   rQ   rR   )r$   r>   rÅ   r@   rK   rA   rÈ   Úwheel_filenameÚembed_versionÚ
wheelhouserL   rD   r4   Úupdate_versionsÚother_versionsr3   ro   ÚdestÚlastÚlast_versionr:   Údownload_timern   Ú
last_wheelrÏ   s                           @r%   rÄ   rÄ   ö   so  ø€ ð /Ð.Ð.Ð.Ð.Ð.à+Ð3�T�T½¸nÑ9MÔ9M€NØ*Ð2�D�D½¸nÑ8MÔ8MÔ8[€MÝ.8¸Å3Ñ.GÔ.GÐUÕ  Ñ*Ô*Ð*ÈX€HØMÐMÀÐMÑMÔM€KØ”€JØ×0Ò0°¸~ÑNÔNÐÝ×ÒÐ 0× 5Ò 5Ñ 7Ô 7Ñ8Ô8€EÝ
Œ,�(œ,Ð
'Ñ
'Ô
'€Cà&(¨"�^€OØ”>ð +ð +ˆØŒ>Ð3Ð3Ð3Ø×"Ò" 7Ñ+Ô+Ð+Ð+à×!Ò! 'Ñ*Ô*Ð*Ð*àð /Øˆˆàˆàð 	/Ø(.ˆO˜AÔÔ%àÐ!Ø˜NÔ/Ñ/ˆØ�{Š{‰}Œ}ð 	8Ý•#�nÑ%Ô%¥s¨:¡¤Ñ7Ô7Ð7Ø.2°D¸"½c¹e¼eÐ.CÑ+€Dˆ,˜ )Ø
ˆ,˜dŸhšh sÀ4˜hÑHÔH‰,Ý œ­¬Ð5Ñ5Ô5ˆØ×%Ò%Ø%Ø!-Ð!5˜˜Ð;M¸|Ð;MÐ;MØ)Ø#ØØ Ý”
ð &ñ 
ô 
ˆð ˆ<˜Oˆ<°ÀÔ0BÔ0KÈtÌyÒ0XÐ0XØÝ2°4´9Ñ=Ô=ˆÝ 4¤9¤>ÀÐYfÐouÐvÑvÔvˆÝŒÐ(¨$µ´ÅÄÐ0MÑ0MÔ0MÐP]Ñ0]Ñ^Ô^Ð^Ø�Š˜ÑÔÐØ�Š�d”mÑ$Ô$Ð$Ø”Zˆ
Ø!Ô)ˆØÐ$¨¸*Ô:RÒ)RÐ)RØð+ ‰,˜dŸhšh sÀ4˜hÑHÔH‰,ð, €E„NØŒ>ð ØˆŒàaÐaÐaÐa¨^ÐaÑaÔa€NØ Ñ/°.Ñ@€E„NÝ”l¥h¤lÐ3Ñ3Ô3€E„OØ×Ò˜5Ÿ=š=™?œ?Ñ+Ô+Ð+Ø€Or'   c                óP  — t          | ¦  «        }t          |j        ¦  «        }|�€	 |d         |j                 d         d         }t	          j        |d¦  «                             t          j        ¬¦  «        S # t          $ r }t          j        d||¦  «         Y d }~nd }~ww xY wd S )NÚreleasesr   Úupload_timez%Y-%m-%dT%H:%M:%Src   z)could not load release date %s because %r)r   Ú"_pypi_get_distribution_info_cachedr>   r3   r   re   rf   r   r7   Ú	Exceptionr    Úerror)rÝ   r*   Úcontenträ   Ú	exceptions        r%   rÖ   rÖ   >  s¼   € Ý�$‰KŒK€Eõ 1°Ô1CÑDÔD€GØÐð	[Ø! *Ô-¨e¬mÔ<¸QÔ?ÀÔNˆKÝÔ$ [Ð2EÑFÔF×NÒNÕV^ÔVbÐNÑcÔcÐcøÝð 	[ð 	[ð 	[ÝŒMÐEÀwÐPYÑZÔZÐZÐZÐZÐZÐZÐZøøøøð	[øøøàˆ4s   §AA9 Á9
B#ÂBÂB#c               #  ó<   K  — d V — t          j        ¦   «         V — d S r0   )ÚsslÚ_create_unverified_contextr�   r'   r%   Ú_request_contextrí   L  s*   è è € Ø
€J€J€Jå
Ô
(Ñ
*Ô
*Ð*Ð*Ð*Ð*Ð*r'   c                ó\   — | t           vrt          | ¦  «        t           | <   t           |          S r0   )Ú_PYPI_CACHEÚ_pypi_get_distribution_info)r>   s    r%   rå   rå   U  s*   € Ø�;Ð&Ð&Ý$?ÀÑ$MÔ$M��LÑ!Ý�|Ô$Ð$r'   c                ón  — d d| › d�}}	 t          ¦   «         D ]n}	 t          ||¬¦  «        5 }t          j        |¦  «        }d d d ¦  «         n# 1 swxY w Y    n-# t          $ r }t          j        d||¦  «         Y d }~Œgd }~ww xY wn-# t          $ r }t          j        d||¦  «         Y d }~nd }~ww xY w|S )Nzhttps://pypi.org/pypi/z/json)Úcontextzfailed to access %s because %r)rí   r   ÚjsonÚloadr   r    rç   ræ   )r>   rè   Úurlrò   Úfile_handlerré   s         r%   rð   rð   [  sG  € ØÐE°,ÐEÐEÐEˆS€Gð	HÝ'Ñ)Ô)ð 	Pð 	PˆGðPÝ˜S¨'Ð2Ñ2Ô2ð 6°lÝ"œi¨Ñ5Ô5�Gð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6à�øÝð Pð Pð PÝ”Ð>ÀÀYÑOÔOÐOÐOÐOÐOÐOÐOøøøøðPøøøøøåð Hð Hð HÝŒÐ6¸¸YÑGÔGÐGÐGÐGÐGÐGÐGøøøøðHøøøà€Nsc   ŠB ›A¬AÁAÁA	ÁAÁA	ÁAÁB Á
BÁ$A?Á:B Á?BÂB Â
B2ÂB-Â-B2c           	     óþ   — g }t          j        ¦   «         D ]M\  }}|D ]E}t          t          | |||f¬¦  «        }|                     ¦   «          |                     |¦  «         ŒFŒN|D ]}|                     ¦   «          Œd S )N)ÚtargetÚargs)r   Úitemsr   Ú_run_manual_upgradeÚstartrZ   Újoin)r$   rC   Úthreadsr@   Údistribution_to_packager>   Úthreads          r%   Úmanual_upgrader  j  s£   € Ø€Gå3AÔ3GÑ3IÔ3Ið #ð #Ñ/ˆÐ/à3ð 	#ð 	#ˆLÝÕ#6¸hÈÐVdÐfiÐ=jÐkÑkÔkˆFØ�LŠL‰NŒNˆNØ�NŠN˜6Ñ"Ô"Ð"Ð"ð	#ð
 ð ð ˆØ�Š‰Œˆˆðð r'   c           	     óÔ  — t          j        t          j        ¬¦  «        }ddlm}  ||d |g | d|¬¦  «        }t          j        d|||€dn|j        ¦  «         t          |||j
        | g d¬¦  «        }||t          j        t          j        ¬¦  «        |z
  g}|r2|                     d	                     d
„ |D ¦   «         ¦  «        ¦  «         |rdnd}	d|	› �}
t          j        |
g|¢R Ž  d S )Nr   r   )Úfrom_bundleF)r>   r3   r@   rA   r$   rB   rC   z(upgrade %s for python %s with current %sr   )r>   r@   rÅ   r$   rA   rK   ú
c              3  ó    K  — | ]	}d |› �V — Œ
dS )ú	Nr�   rœ   s     r%   r5   z&_run_manual_upgrade.<locals>.<genexpr>š  s(   è è € Ð9Ð9¨1˜h 1˜h˜hÐ9Ð9Ð9Ð9Ð9Ð9r'   znew entries found:
%szno new versions foundz upgraded %s for python %s in %s )r   r4   r   r7   Úbundler  r    rX   r=   rÆ   r´   rZ   rý   )r$   r>   r@   rC   rü   r  Úcurrentr:   rù   Ú
ver_updateÚmsgs              r%   rû   rû   x  sB  € ÝŒL�HœLÐ)Ñ)Ô)€EØ#Ð#Ð#Ð#Ð#Ð#àˆkØ!ØØ%ØØØ Øðñ ô €Gõ „OØ2ØØØˆoˆˆ 7¤<ñ	ô ð õ Ø!Ø%Ø”|ØØØðñ ô €Hð 	ØÝŒ�œÐ%Ñ%Ô%¨Ñ-ð€Dð
 ð ;Ø�Š�D—I’IÐ9Ð9°Ð9Ñ9Ô9Ñ9Ô9Ñ:Ô:Ð:Ø-5ÐRÐ)Ð)Ð;R€JØ
9¨ZÐ
9Ð
9€CÝ„O�CÐ˜$ÐÐÐÐÐÐr'   )
rY   r8   r[   rÆ   ra   rg   r  rI   rÖ   rS   );Ú__doc__Ú
__future__r   ró   r    rÔ   rë   rµ   r   r   r   Ú	itertoolsr   Úpathlibr   Úshutilr	   Ú
subprocessr
   r   Útextwrapr   Ú	threadingr   Úurllib.errorr   Úurllib.requestr   Úvirtualenv.app_datar   Úvirtualenv.seed.wheels.embedr   Úvirtualenv.seed.wheels.utilr   Úvirtualenv.util.subprocessr   r{   r|   r¦   r©   rI   r6   r[   r^   ra   rg   rY   r8   rS   rÆ   rÄ   rÖ   rí   rï   rå   rð   r  rû   Ú__all__r�   r'   r%   ú<module>r     sï  ðØ +Ð +à "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø 
€
€
€
Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø -Ð -Ð -Ð -Ð -Ð -Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7à�) !Ð$Ñ$Ô$€Ø�Y BÐ'Ñ'Ô'Ð Ø�	˜rÐ"Ñ"Ô"€Ø �y qÐ)Ñ)Ô)Ð ð$ð $ð $ðNkð kð kð
,ð 
,ð 
,ð '€ðCð Cð Cðjð jð jð2*ð 2*ð 2*ð 2*ð 2*ñ 2*ô 2*ð 2*ðj)Qð )Qð )Qð )Qð )Qñ )Qô )Qð )QðX!ð !ð !ðHð ð ðEð Eð EðPð ð ð+ð +ð +ð €ð%ð %ð %ðð ð ðð ð ð% ð % ð % ðPð ð €€€r'   