Ë
    
_ßd8  ã                   ó€  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlmZ d dlmZ ej                  j!                  d«      rd dlmc mc mc mZ nej&                  e j.                     Z	 eZeZg d¢Zdd„Zej>                  dd„«       Z ej>                  d„ «       Z!ej>                  d	„ «       Z"ej>                  d
„ «       Z# G d„ de$«      Z% G d„ d«      Z&ej>                  d„ «       Z'd„ Z(ej>                  d„ «       Z)ej>                  d„ «       Z*h d£Z+d„ Z,d„ Z-d„ Z. G d„ d«      Z/ e0e d«      re jb                  gZ2ng Z2 G d„ de/«      Z3 ejh                  ejj                  djm                  «       D � cg c]  }  e7e| d «      ‘Œ c} «      Z8 G d„ de«      Z9y# e$ r dZY �Œ3w xY wc c} w ) é    N)ÚDistutilsError)Úworking_setÚjava)ÚAbstractSandboxÚDirectorySandboxÚSandboxViolationÚ	run_setupc                 ó¦   — d}t        | |«      5 }|j                  «       }ddd«       |€|}t        | d«      }t        |||«       y# 1 sw Y   Œ(xY w)z.
    Python 3 implementation of execfile.
    ÚrbNÚexec)ÚopenÚreadÚcompiler   )ÚfilenameÚglobalsÚlocalsÚmodeÚstreamÚscriptÚcodes          ú4/usr/lib/python3/dist-packages/setuptools/sandbox.pyÚ	_execfiler   $   sY   € ð €DÜ	ˆh˜Ó	ð  Ø—‘“ˆ÷à€~ØˆÜ�6˜8 VÓ,€DÜˆˆw˜Õ÷ð ús   �AÁAc              #   ó¼   K  — t         j                  d d  }| �| t         j                  d d  	 |–— |t         j                  d d  y # |t         j                  d d  w xY w­w©N)ÚsysÚargv)ÚreplÚsaveds     r   Ú	save_argvr   1   sJ   è ø€ ä�H‰H‘QˆK€EØÐØŒ�‰‘ˆðØŠàŒ�‰‘‰ø�eŒ�‰‘‰üs   ‚)A¬A °AÁAÁAc               #   ó’   K  — t         j                  d d  } 	 | –— | t         j                  d d  y # | t         j                  d d  w xY w­wr   )r   Úpath©r   s    r   Ú	save_pathr#   <   s7   è ø€ ä�H‰H‘QˆK€EðØŠàŒ�‰‘‰ø�eŒ�‰‘‰üs   ‚A—/ ›A¯AÁAc              #   ó°   K  — t        j                  | d¬«       t        j                  }| t        _        	 d–— |t        _        y# |t        _        w xY w­w)zL
    Monkey-patch tempfile.tempdir with replacement, ensuring it exists
    T)Úexist_okN)ÚosÚmakedirsÚtempfileÚtempdir)Úreplacementr   s     r   Úoverride_tempr+   E   sA   è ø€ ô
 ‡K�K� dÕ+ä×Ñ€Eà"„HÔð!Ûà ŒÕø˜5ŒÕüs   ‚3A¶A ºAÁAÁAc              #   óÆ   K  — t        j                  «       }t        j                  | «       	 |–— t        j                  |«       y # t        j                  |«       w xY w­wr   )r&   ÚgetcwdÚchdir)Útargetr   s     r   Úpushdr0   V   s=   è ø€ ä�I‰I‹K€EÜ‡H�HˆVÔðØŠä
�‰��øŒ�‰��üs   ‚*A!­A ±A!ÁAÁA!c                   ó    — e Zd ZdZed„ «       Zy)ÚUnpickleableExceptionzP
    An exception representing another Exception that could not be pickled.
    c           	      óÄ   — 	 t        j                  | «      t        j                  |«      fS # t        $ r* ddlm} |j                  | |t        |«      «      «      cY S w xY w)z‰
        Always return a dumped (pickled) type and exc. If exc can't be pickled,
        wrap it in UnpickleableException first.
        r   )r2   )ÚpickleÚdumpsÚ	ExceptionÚsetuptools.sandboxr2   ÚdumpÚrepr)ÚtypeÚexcÚclss      r   r8   zUnpickleableException.dumpe   sO   € ð	1Ü—<‘< Ó%¤v§|¡|°CÓ'8Ð8Ð8øÜò 	1åGà—8‘8˜C¡¤T¨#£Y£Ó0Ò0ð		1ús   ‚), ¬0AÁAN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr8   © ó    r   r2   r2   `   s   „ ñð ñ1ó ñ1rC   r2   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚExceptionSaverz^
    A Context Manager that will save an exception, serialized, and restore it
    later.
    c                 ó   — | S r   rB   ©Úselfs    r   Ú	__enter__zExceptionSaver.__enter__z   s   € ØˆrC   c                 óN   — |sy t         j                  ||«      | _        || _        y©NT)r2   r8   Ú_savedÚ_tb)rH   r:   r;   Útbs       r   Ú__exit__zExceptionSaver.__exit__}   s*   € ÙØô ,×0Ñ0°°sÓ;ˆŒØˆŒð rC   c                 ó¢   — dt        | «      vryt        t        j                  | j                  «      \  }}|j                  | j                  «      ‚)z"restore and re-raise any exceptionrL   N)ÚvarsÚmapr4   ÚloadsrL   Úwith_tracebackrM   )rH   r:   r;   s      r   ÚresumezExceptionSaver.resumeˆ   s@   € ð œ4 ›:Ñ%ØäœŸ™ d§k¡kÓ2‰	ˆˆcØ× Ñ  §¡Ó*Ð*rC   N)r=   r>   r?   r@   rI   rO   rU   rB   rC   r   rE   rE   t   s   „ ñò
ò	ó+rC   rE   c               #   ó6  ‡K  — t         j                  j                  «       Št        «       5 } ‰–— ddd«       t         j                  j	                  ‰«       ˆfd„t         j                  D «       }t        |«        j                  «        y# 1 sw Y   Œ]xY w­w)z 
    Context in which imported modules are saved.

    Translates exceptions internal to the context into the equivalent exception
    outside the context.
    Nc              3   óL   •K  — | ]  }|‰vr|j                  d «      s|–— Œ y­w)z
encodings.N©Ú
startswith)Ú.0Úmod_namer   s     €r   ú	<genexpr>zsave_modules.<locals>.<genexpr>    s/   øè ø€ ò àØ˜5Ñ à×#Ñ# LÔ1ô	 	ñùs   ƒ!$)r   ÚmodulesÚcopyrE   ÚupdateÚ_clear_modulesrU   )Ú	saved_excÚdel_modulesr   s     @r   Úsave_modulesrc   ’   sy   øè ø€ ô �K‰K×ÑÓ€EÜ	Ó	ð ˜YØŠ÷ô ‡K�K×Ñ�uÔóäŸ™ô€Kô �;Ôà×ÑÕ÷ð üs   ƒ)B¬B±ABÂBÂBc                 óF   — t        | «      D ]  }t        j                  |= Œ y r   )Úlistr   r]   )Úmodule_namesr[   s     r   r`   r`   ¬   s"   € Ü˜Ó&ò "ˆÜ�K‰K˜Ñ!ñ"rC   c               #   óœ   K  — t        j                  «       } 	 | –— t        j                  | «       y # t        j                  | «       w xY w­wr   )Úpkg_resourcesÚ__getstate__Ú__setstate__r"   s    r   Úsave_pkg_resources_staterk   ±   s:   è ø€ ä×&Ñ&Ó(€Eð*ØŠä×"Ñ" 5Õ)øŒ×"Ñ" 5Õ)üs   ‚A˜2 œA²A	Á	Ac              #   óö  K  — t         j                  j                  | d«      }t        «       5  t	        «       5  t        «       5  t        «        t        «       5  t        |«      5  t        | «      5  t        d«       d –— d d d «       d d d «       d d d «       d d d «       d d d «       d d d «       y # 1 sw Y   Œ2xY w# 1 sw Y   Œ6xY w# 1 sw Y   Œ:xY w# 1 sw Y   Œ>xY w# 1 sw Y   ŒBxY w# 1 sw Y   y xY w­w)NÚtempÚ
setuptools)r&   r!   Újoinrk   rc   r#   Úhide_setuptoolsr   r+   r0   Ú
__import__)Ú	setup_dirÚtemp_dirs     r   Úsetup_contextrt   º   sÒ   è ø€ ä�w‰w�|‰|˜I vÓ.€HÜ	!Ó	#ñ 	"Ü‹^ñ 	"Ü“ñ "ÜÔ!Ü“[ñ "Ü& xÓ0ñ "Ü" 9Ó-ñ "ä& |Ô4Û!÷"÷"÷"÷"÷	"÷	"ð 	"÷"ð "ú÷"ð "ú÷"ð "ú÷"ð "ú÷	"ð 	"ú÷	"ð 	"üs“   ‚+C9­C-¸C!ÁCÁC		Á$B=Á0B1Â B=ÂC		ÂCÂC!Â C-Â(	C9Â1B:Â6B=Â=CÃC		Ã	CÃCÃCÃC!Ã!C*	Ã&C-Ã-C6Ã2C9>   ÚCythonÚ	distutilsrn   rh   Ú_distutils_hackc                 ó<   — | j                  dd«      d   }|t        v S )aH  
    >>> _needs_hiding('setuptools')
    True
    >>> _needs_hiding('pkg_resources')
    True
    >>> _needs_hiding('setuptools_plugin')
    False
    >>> _needs_hiding('setuptools.__init__')
    True
    >>> _needs_hiding('distutils')
    True
    >>> _needs_hiding('os')
    False
    >>> _needs_hiding('Cython')
    True
    ú.é   r   )ÚsplitÚ_MODULES_TO_HIDE)r[   Úbase_modules     r   Ú_needs_hidingr~   Ò   s%   € ð" —.‘.  aÓ(¨Ñ+€KØÔ*Ð*Ð*rC   c                  óº   — t         j                  j                  dd«      } | �| j                  «        t	        t
        t         j                  «      }t        |«       y)a%  
    Remove references to setuptools' modules from sys.modules to allow the
    invocation to import the most appropriate setuptools. This technique is
    necessary to avoid issues such as #315 where setuptools upgrading itself
    would fail to find a function declared in the metadata.
    rw   N)r   r]   ÚgetÚ_remove_shimÚfilterr~   r`   )rw   r]   s     r   rp   rp   ç   sC   € ô —k‘k—o‘oÐ&7¸Ó>€OØÐ"Ø×$Ñ$Ô&ä”]¤C§K¡KÓ0€GÜ�7ÕrC   c                 ó|  — t         j                  j                  t         j                  j                  | «      «      }t	        |«      5  	 | gt        |«      z   t        j                  dd t        j                  j                  d|«       t        j                  «        t        j                  j                  d„ «       t        |«      5  t        | d¬«      }t        | |«       ddd«       ddd«       y# 1 sw Y   ŒxY w# t         $ r&}|j"                  r|j"                  d   r‚ Y d}~Œ?d}~ww xY w# 1 sw Y   yxY w)z8Run a distutils setup script, sandboxed in its directoryNr   c                 ó"   — | j                  «       S r   )Úactivate)Údists    r   ú<lambda>zrun_setup.<locals>.<lambda>ÿ   s   € °d·m±m³o€ rC   Ú__main__)Ú__file__r=   )r&   r!   ÚabspathÚdirnamert   re   r   r   Úinsertr   Ú__init__Ú	callbacksÚappendr   Údictr   Ú
SystemExitÚargs)Úsetup_scriptr’   rr   ÚnsÚvs        r   r	   r	   ö   sì   € ä—‘—‘¤§¡§¡°Ó =Ó>€IÜ	�yÓ	!ñ ð	Ø'˜.¬4°«:Ñ5ŒC�H‰H‘QˆKÜ�H‰H�O‰O˜A˜yÔ)ä× Ñ Ô"Ü×!Ñ!×(Ñ(Ñ)EÔFä! )Ó,ñ ,Ü <¸*ÔE�Ü˜,¨Ô+÷,÷ð ÷,ð ,ûô ò 	Ø�vŠv˜!Ÿ&™& š)Øÿøð	ú÷ð úsI   ÁD2Á
A?D Ã	C4Ã#D Ã4C=	Ã9D Ä 	D/Ä	D*Ä%D2Ä*D/Ä/D2Ä2D;c                   ó”  — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	D ]  Z eee«      sŒ e
e«       e«       e<   Œ dd„Zer	 ede«      Z ede«      ZdD ]  Z eee«      sŒ ee«       e«       e<   Œ d„ ZdD ]  Z eee«      sŒ ee«       e«       e<   Œ d„ ZdD ]  Z eee«      sŒ ee«       e«       e<   Œ d„ Zd„ Zd„ Zd„ Zy
)r   zDWrap 'os' module and 'open()' builtin for virtualizing setup scriptsFc                 óŒ   — t        t        «      D �cg c]!  }|j                  d«      st        | |«      r|‘Œ# c}| _        y c c}w )NÚ_)ÚdirÚ_osrY   ÚhasattrÚ_attrs)rH   Únames     r   r�   zAbstractSandbox.__init__  s<   € ô œC›ö
àØ—?‘? 3Ô'¬G°D¸$Ô,?ò ò
ˆ�ùò 
s   ’&Ac           	      ó\   — | j                   D ]  }t        t        |t        ||«      «       Œ y r   )rœ   Úsetattrr&   Úgetattr)rH   Úsourcer�   s      r   Ú_copyzAbstractSandbox._copy  s(   € Ø—K‘Kò 	5ˆDÜ”B˜œg f¨dÓ3Õ4ñ	5rC   c                 ó”   — | j                  | «       t        r| j                  t        _        | j                  t        _        d| _        y rK   )r¢   Ú_fileÚbuiltinsÚfileÚ_openr   Ú_activerG   s    r   rI   zAbstractSandbox.__enter__  s.   € Ø�
‰
�4ÔÝØ ŸJ™JŒHŒMØŸ
™
ŒŒØˆ�rC   c                 ó„   — d| _         t        rt        t        _        t        t        _        | j                  t        «       y ©NF)r¨   r¤   r¥   r¦   r§   r   r¢   rš   )rH   Úexc_typeÚ	exc_valueÚ	tracebacks       r   rO   zAbstractSandbox.__exit__!  s%   € ØˆŒÝÜ!ŒHŒMÜŒŒØ�
‰
”3�rC   c                 ó@   — | 5   |«       cddd«       S # 1 sw Y   yxY w)zRun 'func' under os sandboxingNrB   )rH   Úfuncs     r   ÚrunzAbstractSandbox.run(  s   € àñ 	Ù“6÷	÷ 	ò 	ús   ƒ”c                 ó6   ‡ ‡— t        t        ‰ «      Šˆ ˆfd„}|S )Nc                 ól   •— | j                   r | j                  ‰||g|¢­i |¤Ž\  }} ‰||g|¢­i |¤ŽS r   )r¨   Ú_remap_pair)rH   ÚsrcÚdstr’   Úkwr�   Úoriginals        €€r   Úwrapz3AbstractSandbox._mk_dual_path_wrapper.<locals>.wrap0  sE   ø€ Ø�|Š|Ø+˜4×+Ñ+¨D°#°sÐH¸TÒHÀRÑH‘��SÙ˜C Ð2 tÒ2¨rÑ2Ð2rC   ©r    rš   ©r�   r¸   r·   s   ` @r   Ú_mk_dual_path_wrapperz%AbstractSandbox._mk_dual_path_wrapper-  s   ù€ Üœ3 Ó%ˆõ	3ð
 ˆrC   )ÚrenameÚlinkÚsymlinkNc                 ó>   ‡ ‡— ‰xs t        t        ‰ «      Šˆ ˆfd„}|S )Nc                 ób   •— | j                   r | j                  ‰|g|¢­i |¤Ž} ‰|g|¢­i |¤ŽS r   )r¨   Ú_remap_input©rH   r!   r’   r¶   r�   r·   s       €€r   r¸   z5AbstractSandbox._mk_single_path_wrapper.<locals>.wrap>  s=   ø€ Ø�|Š|Ø(�t×(Ñ(¨¨tÐA°dÒA¸bÑA�Ù˜DÐ. 4Ò.¨2Ñ.Ð.rC   r¹   )r�   r·   r¸   s   `` r   Ú_mk_single_path_wrapperz'AbstractSandbox._mk_single_path_wrapper;  s    ù€ ØÒ1œw¤s¨DÓ1ˆõ	/ð
 ˆrC   r¦   r   )ÚstatÚlistdirr.   r   ÚchmodÚchownÚmkdirÚremoveÚunlinkÚrmdirÚutimeÚlchownÚchrootÚlstatÚ	startfileÚmkfifoÚmknodÚpathconfÚaccessc                 ó6   ‡ ‡— t        t        ‰ «      Šˆ ˆfd„}|S )Nc                 óš   •— | j                   r3 | j                  ‰|g|¢­i |¤Ž}| j                  ‰ ‰|g|¢­i |¤Ž«      S  ‰|g|¢­i |¤ŽS r   )r¨   rÁ   Ú_remap_outputrÂ   s       €€r   r¸   z4AbstractSandbox._mk_single_with_return.<locals>.wrapc  s_   ø€ Ø�|Š|Ø(�t×(Ñ(¨¨tÐA°dÒA¸bÑA�Ø×)Ñ)¨$±¸Ð0KÀÒ0KÈÑ0KÓLÐLÙ˜DÐ. 4Ò.¨2Ñ.Ð.rC   r¹   rº   s   ` @r   Ú_mk_single_with_returnz&AbstractSandbox._mk_single_with_return`  s   ù€ Üœ3 Ó%ˆõ	/ð ˆrC   )ÚreadlinkÚtempnamc                 ó6   ‡ ‡— t        t        ‰ «      Šˆ ˆfd„}|S )Nc                 óT   •—  ‰|i |¤Ž}| j                   r| j                  ‰|«      S |S r   )r¨   r×   )rH   r’   r¶   Úretvalr�   r·   s       €€r   r¸   z'AbstractSandbox._mk_query.<locals>.wrapr  s1   ø€ Ù˜tÐ* rÑ*ˆFØ�|Š|Ø×)Ñ)¨$°Ó7Ð7ØˆMrC   r¹   rº   s   ` @r   Ú	_mk_queryzAbstractSandbox._mk_queryo  s   ù€ Üœ3 Ó%ˆõ	ð ˆrC   )r-   Útmpnamc                 ó   — |S )z=Called to remap or validate any path, whether input or outputrB   )rH   r!   s     r   Ú_validate_pathzAbstractSandbox._validate_path~  s   € àˆrC   c                 ó$   — | j                  |«      S ©zCalled for path inputs©rá   ©rH   Ú	operationr!   r’   r¶   s        r   rÁ   zAbstractSandbox._remap_input‚  ó   € à×"Ñ" 4Ó(Ð(rC   c                 ó$   — | j                  |«      S )zCalled for path outputsrä   )rH   ræ   r!   s      r   r×   zAbstractSandbox._remap_output†  rç   rC   c                 ój   —  | j                   |dz   |g|¢­i |¤Ž | j                   |dz   |g|¢­i |¤ŽfS )ú?Called for path pairs like rename, link, and symlink operationsz-fromz-to)rÁ   ©rH   ræ   r´   rµ   r’   r¶   s         r   r³   zAbstractSandbox._remap_pairŠ  sP   € ð ˆD×Ñ˜i¨'Ñ1°3ÐD¸ÒDÀÑDØˆD×Ñ˜i¨%Ñ/°ÐB°tÒB¸rÑBð
ð 	
rC   r   )r=   r>   r?   r@   r¨   r�   r¢   rI   rO   r°   r»   r�   r›   rš   r   rÃ   r¤   r§   rØ   rÞ   rá   rÁ   r×   r³   rB   rC   r   r   r   
  s  „ ÙNà€Gò
ò5òòòò
ð .ò 9ˆÙ�3˜ÕÙ2°4Ó8‰F‹H�TŠNð9óñ Ù'¨°Ó6ˆÙ# F¨EÓ2€Eðò ;ˆñ* �3˜ÕÙ4°TÓ:‰F‹H�TŠNð-;ò0	ð (ò :ˆÙ�3˜ÕÙ3°DÓ9‰F‹H�TŠNð:ò	ð %ò -ˆÙ�3˜ÕÙ& t›_‰F‹H�TŠNð-òò)ò)ó
rC   r   Údevnullc                   ó†   — e Zd ZdZej                  g d¢«      Zg Z	 efd„Z	d„ Z
erdd„Zdd„Zd„ Zd„ Zd	„ Zd
„ Zd„ Zdd„Zy)r   z<Restrict operations to a single subdirectory - pseudo-chroot)r   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rÑ   rÒ   rÚ   c                 ó¶  — t         j                  j                  t         j                  j                  |«      «      | _        t         j                  j                  | j                  d«      | _        |D �cg c]>  }t         j                  j                  t         j                  j                  |«      «      ‘Œ@ c}| _        t        j                  | «       y c c}w )NÚ )
r&   r!   ÚnormcaseÚrealpathÚ_sandboxro   Ú_prefixÚ_exceptionsr   r�   )rH   ÚsandboxÚ
exceptionsr!   s       r   r�   zDirectorySandbox.__init__°  sŒ   € ÜŸ™×(Ñ(¬¯©×)9Ñ)9¸'Ó)BÓCˆŒÜ—w‘w—|‘| D§M¡M°2Ó6ˆŒàAKö
Ø9=ŒB�G‰G×ÑœRŸW™W×-Ñ-¨dÓ3Õ4ò
ˆÔô 	× Ñ  Õ&ùò
s   Á5ACc                 ó"   — ddl m}  ||||«      ‚)Nr   )r   )r7   r   )rH   ræ   r’   r¶   r   s        r   Ú
_violationzDirectorySandbox._violation¸  s   € Ý7á˜y¨$°Ó3Ð3rC   c                 ó|   — |dvr)| j                  |«      s | j                  d||g|¢­i |¤Ž t        ||g|¢­i |¤ŽS )N©ÚrÚrtr   ÚrUÚUr¦   )Ú_okrø   r¤   ©rH   r!   r   r’   r¶   s        r   r¤   zDirectorySandbox._file¿  sH   € ØÐ7Ñ7ÀÇÁÈÄØ�—‘ ¨¨dÐ@°TÒ@¸RÒ@Ü˜˜tÐ1 dÒ1¨bÑ1Ð1rC   c                 ó|   — |dvr)| j                  |«      s | j                  d||g|¢­i |¤Ž t        ||g|¢­i |¤ŽS )Nrú   r   )rÿ   rø   r§   r   s        r   r§   zDirectorySandbox._openÄ  sH   € ØÐ3Ñ3¸D¿H¹HÀT¼NØˆD�O‰O˜F D¨$Ð<°Ò<¸Ò<Ü�T˜4Ð- $Ò-¨"Ñ-Ð-rC   c                 ó&   — | j                  d«       y )Nrß   )rø   rG   s    r   rß   zDirectorySandbox.tmpnamÉ  s   € Ø�‰˜Õ!rC   c                 óH  — | j                   }	 d| _         t        j                  j                  t        j                  j	                  |«      «      }| j                  |«      xs, || j                  k(  xs |j                  | j                  «      	 || _         S # || _         w xY wrª   )	r¨   r&   r!   rð   rñ   Ú	_exemptedrò   rY   ró   )rH   r!   Úactiverñ   s       r   rÿ   zDirectorySandbox._okÌ  s„   € Ø—‘ˆð		"Ø ˆDŒLÜ—w‘w×'Ñ'¬¯©×(8Ñ(8¸Ó(>Ó?ˆHà—‘˜xÓ(ò 5Ø˜tŸ}™}Ñ,ò5à×&Ñ& t§|¡|Ó4ðð "ˆD�Lø˜6ˆD�Lús   ŽBB Â	B!c                 óš   ‡— ˆfd„| j                   D «       }ˆfd„| j                  D «       }t        j                  ||«      }t	        |«      S )Nc              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr   rX   )rZ   Ú	exceptionÚfilepaths     €r   r\   z-DirectorySandbox._exempted.<locals>.<genexpr>Ú  s!   øè ø€ ò 
Ø/8ˆH×Ñ 	×*ñ
ùs   ƒc              3   óJ   •K  — | ]  }t        j                  |‰«      –— Œ y ­wr   )ÚreÚmatch)rZ   Úpatternr	  s     €r   r\   z-DirectorySandbox._exempted.<locals>.<genexpr>Ý  s!   øè ø€ ò 
Ø,3ŒB�H‰H�W˜h×'ñ
ùs   ƒ #)rô   Ú_exception_patternsÚ	itertoolsÚchainÚany)rH   r	  Ústart_matchesÚpattern_matchesÚ
candidatess    `   r   r  zDirectorySandbox._exemptedÙ  sI   ø€ ó
Ø<@×<LÑ<Lô
ˆó
Ø7;×7OÑ7Oô
ˆô —_‘_ ]°OÓDˆ
Ü�:‹ÐrC   c                 ó¬   — || j                   v rE| j                  |«      s4 | j                  |t        j                  j                  |«      g|¢­i |¤Ž |S rã   )Ú	write_opsrÿ   rø   r&   r!   rñ   rå   s        r   rÁ   zDirectorySandbox._remap_inputã  sF   € à˜Ÿ™Ñ&¨t¯x©x¸¬~ØˆD�O‰O˜I¤r§w¡w×'7Ñ'7¸Ó'=ÐKÀÒKÈÒKØˆrC   c                 ó~   — | j                  |«      r| j                  |«      s | j                  |||g|¢­i |¤Ž ||fS )rê   )rÿ   rø   rë   s         r   r³   zDirectorySandbox._remap_pairé  s=   € à�x‰x˜Œ} D§H¡H¨S¤MØˆD�O‰O˜I s¨CÐ=°$Ò=¸"Ò=Ø�SˆzÐrC   c                 óž   — |t         z  r*| j                  |«      s | j                  d|||g|¢­i |¤Ž t        j                  |||g|¢­i |¤ŽS )zCalled for low-level os.open()zos.open)ÚWRITE_FLAGSrÿ   rø   rš   r   )rH   r¦   Úflagsr   r’   r¶   s         r   r   zDirectorySandbox.openï  sO   € à”;Ò t§x¡x°¤~ØˆD�O‰O˜I t¨U°DÐF¸4ÒFÀ2ÒFÜ�x‰x˜˜e TÐ7¨DÒ7°BÑ7Ð7rC   N)rû   )iÿ  )r=   r>   r?   r@   r�   Úfromkeysr  r  Ú_EXCEPTIONSr�   rø   r¤   r§   rß   rÿ   r  rÁ   r³   r   rB   rC   r   r   r   ˜  s]   „ ÙFà—‘ò	
ó€Ið$ ÐØ4à+6ó 'ò4ñ
 ó	2ó
.ò
"ò"òòòô8rC   r   z4O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC O_TEMPORARYc                   óV   — e Zd ZdZ ej
                  d«      j                  «       Zd„ Zy)r   zEA setup script attempted to modify the filesystem outside the sandboxa  
        SandboxViolation: {cmd}{args!r} {kwargs}

        The package setup script has attempted to modify files on your system
        that are not within the EasyInstall build area, and has been aborted.

        This package cannot be safely installed by EasyInstall, and may not
        support alternate installation locations even if you run its setup
        script by hand.  Please inform the package's author and the EasyInstall
        maintainers to find out if a fix or workaround is available.
        c                 ój   — | j                   \  }}} | j                  j                  di t        «       ¤ŽS )NrB   )r’   ÚtmplÚformatr   )rH   Úcmdr’   Úkwargss       r   Ú__str__zSandboxViolation.__str__  s.   € Ø ŸI™IÑˆˆT�6Øˆt�y‰y×ÑÑ+¤&£(Ñ+Ð+rC   N)	r=   r>   r?   r@   ÚtextwrapÚdedentÚlstripr  r#  rB   rC   r   r   r   ÿ  s+   „ ÙOàˆ8�?‰?ð
	ó÷ �fƒhð 	ó,rC   r   r   ):r&   r   r(   ÚoperatorÚ	functoolsr  r  Ú
contextlibr4   r$  r¥   rh   Údistutils.errorsr   r   ÚplatformrY   Ú$org.python.modules.posix.PosixModuleÚpythonr]   ÚposixÚPosixModulerš   r�   r¦   r¤   Ú	NameErrorr   r§   Ú__all__r   Úcontextmanagerr   r#   r+   r0   r6   r2   rE   rc   r`   rk   rt   r|   r~   rp   r	   r   r›   rì   r  r   ÚreduceÚor_r{   r    r  r   )Úas   0r   ú<module>r6     s  ðÛ 	Û 
Û Û Û Û Û 	Û Û Û Û ã Ý +Ý %à‡<�<×Ñ˜6Ô"ß6×6à
�+‰+�b—g‘gÑ
€CðØ€Eð 	€ò€ó
 ð ×Ñòó ðð ×Ññó ðð ×Ññ!ó ð!ð  ×Ññó ðô1˜Iô 1÷(+ñ +ð< ×Ññó ðò2"ð
 ×Ññ*ó ð*ð ×Ññ"ó ð"òÐ ò+ò*ò÷(E
ñ E
ñP ˆ2ˆyÔØ—:‘:�,�Kà€Kô[8�ô [8ð| ˆi×ÑØ‡L�Lð H×MÑMÓOöàñ 	��Q˜Õòó€ô,�~õ ,øðQ ò ØƒEðüòBs   ÂF- Æ	F;
Æ-F8Æ7F8