Ë
    äØjj‹G  ã                   ó  — 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m	Z	 ddl
mZmZmZ ddlmZ ddlmZmZmZmZmZmZ  ej.                  e«      Zdj5                  «       Z ej8                  d	«      Zd
Zd„ ZeZ  G d„ de!«      Z"y)é    )ÚBytesION)ÚZipInfoé   )Ú	sysconfigÚdetect_encodingÚZipFile)Úfinder)ÚFileOperatorÚget_export_entryÚconvert_pathÚget_executableÚget_platformÚin_venvañ  
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
 <assemblyIdentity version="1.0.0.0"
 processorArchitecture="X86"
 name="%s"
 type="win32"/>

 <!-- Identify the application security requirements. -->
 <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
 <security>
 <requestedPrivileges>
 <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
 </requestedPrivileges>
 </security>
 </trustInfo>
</assembly>s   ^#!.*pythonw?[0-9.]*([ 	].*)?$zÍ# -*- coding: utf-8 -*-
import re
import sys
from %(module)s import %(import_name)s
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(%(func)s())
c                 óÄ   — d| v r[| j                  d«      r4| j                  dd«      \  }}d|v r|j                  d«      s|›d|›d�} | S | j                  d«      sd| z  } | S )Nú z/usr/bin/env r   ú"z "z"%s")Ú
startswithÚsplit)Ú
executableÚenvÚ_executables      ú]/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_vendor/distlib/scripts.pyÚenquote_executabler   5   sx   € Ø
ˆjÑð
 × Ñ  Ô1Ø)×/Ñ/°°QÓ7ÑˆC�Ø�kÑ!¨+×*@Ñ*@ÀÔ*EÚ*-ª{Ð;�
ð Ðð ×(Ñ(¨Ô-Ø# jÑ0�
ØÐó    c                   óN  — e Zd ZdZeZdZ	 	 	 dd„Zd„ Ze	j                  j                  d«      rd„ Zd„ Zd„ Zdd	„Zd
„ ZeZd„ Zd„ ZdZd„ Zdd„Zd„ Zed„ «       Zej6                  d„ «       Zej:                  dk(  sej:                  dk(  rej<                  dk(  rd„ Zdd„Z dd„Z!y)ÚScriptMakerz_
    A class to copy or create scripts from source scripts or callable
    specifications.
    Nc                 óÄ  — || _         || _        || _        d| _        d| _        t
        j                  dk(  xs( t
        j                  dk(  xr t
        j                  dk(  | _        t        d«      | _
        |xs t        |«      | _        t
        j                  dk(  xs( t
        j                  dk(  xr t
        j                  dk(  | _        t        j                  | _        y )NFÚposixÚjava)Ú úX.YÚnt)Ú
source_dirÚ
target_dirÚadd_launchersÚforceÚclobberÚosÚnameÚ_nameÚset_modeÚsetÚvariantsr
   Ú_fileopÚ_is_ntÚsysÚversion_info)Úselfr#   r$   r%   Údry_runÚfileops         r   Ú__init__zScriptMaker.__init__R   s½   € ð %ˆŒØ$ˆŒØ*ˆÔØˆŒ
ØˆŒäŸ™ GÑ+ò J´·±¸FÑ1Bò 2IÜ57·X±XÀÑ5Hð 	Œä˜KÓ(ˆŒØÒ6¤¨gÓ!6ˆŒä—g‘g ‘oò @¬"¯'©'°VÑ*;ò +?Ü.0¯h©h¸$Ñ.>ð 	Œä×,Ñ,ˆÕr   c                 óê   — |j                  dd«      r`| j                  rTt        j                  j	                  |«      \  }}|j                  dd«      }t        j                  j                  ||«      }|S )NÚguiFÚpythonÚpythonw)Úgetr/   r(   Úpathr   ÚreplaceÚjoin)r2   r   ÚoptionsÚdnÚfns        r   Ú_get_alternate_executablez%ScriptMaker._get_alternate_executableg   sV   € Ø�;‰;�u˜eÔ$¨¯ªÜ—W‘W—]‘] :Ó.‰FˆB�Ø—‘˜H iÓ0ˆBÜŸ™Ÿ™ b¨"Ó-ˆJØÐr   r   c                 óÄ   — 	 t        |«      5 }|j                  d«      dk(  cddd«       S # 1 sw Y   yxY w# t        t        f$ r t        j                  d|«       Y yw xY w)zl
            Determine if the specified executable is a script
            (contains a #! line)
            é   z#!NzFailed to open %sF)ÚopenÚreadÚOSErrorÚIOErrorÚloggerÚwarning)r2   r   Úfps      r   Ú	_is_shellzScriptMaker._is_shellp   s[   € ð
Ü˜*Ó%ð .¨ØŸ7™7 1›:¨Ñ-÷.÷ .ò .ûäœWÐ%ò Ü—‘Ð2°JÔ?Ùðús#   ‚7 �+¡	7 «4°7 ´7 ·%AÁAc                 óÖ   — | j                  |«      r3dd l}|j                  j                  j	                  d«      dk(  r|S d|z  S |j                  «       j                  d«      r|S d|z  S )Nr   zos.nameÚLinuxz
jython.exez/usr/bin/env %s)rK   r   ÚlangÚSystemÚgetPropertyÚlowerÚendswith)r2   r   r   s      r   Ú_fix_jython_executablez"ScriptMaker._fix_jython_executable|   sk   € Ø�~‰~˜jÔ)ãà—9‘9×#Ñ#×/Ñ/°	Ó:¸gÒEØ%Ð%ð % zÑ1Ð1ð ×!Ñ!Ó#×,Ñ,¨\Ô:à!Ð!Ø$ zÑ1Ð1r   c                 óô   — t         j                  dk7  rd}n=t        |«      t        |«      z   dz   }t        j                  dk(  rd}nd}d|vxr ||k  }|rd|z   |z   d	z   }|S d
}|d|z   |z   dz   z  }|dz  }|S )a  
        Build a shebang line. In the simple case (on Windows, or a shebang line
        which is not too long or contains spaces) use a simple formulation for
        the shebang. Otherwise, use /bin/sh as the executable, with a contrived
        shebang which allows the script to run either under Python or sh, using
        suitable quoting. Thanks to Harald Nordgren for his input.

        See also: http://www.in-ulm.de/~mascheck/various/shebang/#length
                  https://hg.mozilla.org/mozilla-central/file/tip/mach
        r   Té   Údarwini   é   ó    s   #!ó   
s
   #!/bin/sh
s	   '''exec' s    "$0" "$@"
s   ' ''')r(   r)   Úlenr0   Úplatform)r2   r   Úpost_interpÚsimple_shebangÚshebang_lengthÚmax_shebang_lengthÚresults          r   Ú_build_shebangzScriptMaker._build_shebangˆ   s²   € ô �7‰7�gÒØ!‰Nô ! ›_¬s°;Ó/?Ñ?À!ÑCˆNÜ�|‰|˜xÒ'Ø%(Ñ"à%(Ð"Ø#¨:Ð5ò IØ#1Ð5GÑ#Gð ñ Ø˜ZÑ'¨+Ñ5¸Ñ=ˆFð
 ˆð $ˆFØ�l ZÑ/°+Ñ=ÀÑOÑOˆFØ�hÑˆFØˆr   c                 ó’  — d}| j                   r| j                   }d}�n/t        j                  «       st        «       }�nt	        «       rJt
        j                  j                  t        j                  d«      dt        j                  d«      z  «      }n»t
        j                  dk(  rJt
        j                  j                  t        j                  d«      dt        j                  d«      z  «      }n^t
        j                  j                  t        j                  d«      dt        j                  d	«      ›t        j                  d«      ›�«      }|r| j                  ||«      }t        j                  j                  d
«      r| j                  |«      }|rt!        |«      }|j#                  d«      }t        j                  dk(  rd|vr	d|vr|dz  }| j%                  ||«      }	 |j'                  d«       |dk7  r	 |j'                  |«       |S |S # t(        $ r t+        d|z  «      ‚w xY w# t(        $ r t+        d|›d|›d�«      ‚w xY w)NTFÚscriptszpython%sÚEXEr"   ÚBINDIRr8   ÚVERSIONr   úutf-8Úcliz	-X:Framesz-X:FullFramess
    -X:Framesz,The shebang (%r) is not decodable from utf-8zThe shebang (z-) is not decodable from the script encoding (ú))r   r   Úis_python_buildr   r   r(   r;   r=   Úget_pathÚget_config_varr)   rA   r0   r[   r   rS   r   Úencodera   ÚdecodeÚUnicodeDecodeErrorÚ
ValueError)r2   Úencodingr\   r>   Úenquoter   Úshebangs          r   Ú_get_shebangzScriptMaker._get_shebang§   s  € ØˆØ�?Š?ØŸ™ˆJØŠGÜ×*Ñ*Ô,Ü'Ó)ŠJÜŒYÜŸ™Ÿ™Ü×"Ñ" 9Ó-ØœY×5Ñ5°eÓ<Ñ<ó>‰Jô �w‰w˜$Šô  ŸW™WŸ\™\Ü×,Ñ,¨XÓ6Ø¤)×":Ñ":¸5Ó"AÑBóD‘
ô  ŸW™WŸ\™\Ü×,Ñ,¨XÔ6Ü$-×$<Ñ$<¸YÔ$GÜ$-×$<Ñ$<¸UÔ$CðEóF�
ñ Ø×7Ñ7¸
ÀGÓLˆJä�<‰<×"Ñ" 6Ô*Ø×4Ñ4°ZÓ@ˆJñ Ü+¨JÓ7ˆJð  ×&Ñ& wÓ/ˆ
ä�L‰L˜EÒ! k¸Ñ&DØ#¨;Ñ6Ø˜=Ñ(ˆKØ×%Ñ% j°+Ó>ˆð	&Ø�N‰N˜7Ô#ð �wÒð6Ø—‘˜xÔ(ð
 ˆˆwˆøô "ò 	&ÜÐKØ$ñ%ó &ð &ð	&ûô &ò 6Ý â")ª8ð"5ó 6ð 6ð6ús   Ç#H Ç:H* ÈH'È*Ic                 ó˜   — | j                   t        |j                  |j                  j	                  d«      d   |j                  ¬«      z  S )Nú.r   )ÚmoduleÚimport_nameÚfunc)Úscript_templateÚdictÚprefixÚsuffixr   )r2   Úentrys     r   Ú_get_script_textzScriptMaker._get_script_textï   sA   € Ø×#Ñ#¤dØ—<‘<ØŸ™×*Ñ*¨3Ó/°Ñ2Ø—‘ô'ñ ð 	r   c                 ó^   — t         j                  j                  |«      }| j                  |z  S ©N)r(   r;   ÚbasenameÚmanifest)r2   ÚexenameÚbases      r   Úget_manifestzScriptMaker.get_manifest÷   s%   € Ü�w‰w×Ñ Ó(ˆØ�}‰}˜tÑ#Ð#r   c                 óœ  — | j                   xr | j                  }t        j                  j	                  d«      }|j                  |«      s||z  }|s||z   }nÓ|dk(  r| j                  d«      }n| j                  d«      }t        «       }	t        |	d«      5 }
t        j                  j                  d«      }|rAt        j                  t        |«      «      d d }t        d|¬«      }|
j                  ||«       n|
j                  d|«       d d d «       |	j!                  «       }||z   |z   }|D �]E  }t        j"                  j%                  | j&                  |«      }|rXt        j"                  j)                  |«      \  }}|j+                  d	«      r|}d
|z  }	 | j,                  j/                  ||«       n­| j                  r|j                  d|z   «      s|›d|›�}t        j"                  j7                  |«      r#| j>                  st2        j5                  d|«       Œñ| j,                  j/                  ||«       | j@                  r| j,                  jC                  |g«       |jE                  |«       �ŒH y # 1 sw Y   �ŒnxY w# t0        $ r¾ t2        j5                  d«       d|z  }t        j"                  j7                  |«      rt        j8                  |«       t        j:                  ||«       | j,                  j/                  ||«       t2        j=                  d«       	 t        j8                  |«       n# t0        $ r Y nw xY wY Œèw xY w)Nrg   ÚpyÚtÚwÚSOURCE_DATE_EPOCHé   z__main__.py)ÚfilenameÚ	date_timez.pyz%s.exez:Failed to write executable - trying to use .deleteme logicz%s.deletemez0Able to replace executable using .deleteme logicrv   zSkipping existing file %s)#r%   r/   r(   Úlineseprm   rR   Ú_get_launcherr   r   Úenvironr:   ÚtimeÚgmtimeÚintr   ÚwritestrÚgetvaluer;   r=   r$   Úsplitextr   r.   Úwrite_binary_fileÚ	ExceptionrH   rI   ÚexistsÚremoveÚrenameÚdebugr'   r+   Úset_executable_modeÚappend)r2   Únamesrs   Úscript_bytesÚ	filenamesÚextÚuse_launcherr�   ÚlauncherÚstreamÚzfÚsource_date_epochrŽ   ÚzinfoÚzip_datar)   ÚoutnameÚnÚeÚdfnames                       r   Ú_write_scriptzScriptMaker._write_scriptû   s¸  € Ø×)Ñ)Ò9¨d¯k©kˆÜ—*‘*×#Ñ# GÓ,ˆØ×Ñ Ô(Ø�wÑˆGÙØ" \Ñ1‰Là�dŠ{Ø×-Ñ-¨cÓ2‘à×-Ñ-¨cÓ2�Ü“YˆFÜ˜ Ó%ð =¨Ü$&§J¡J§N¡NÐ3FÓ$GÐ!Ù$Ü $§¡¬CÐ0AÓ,BÓ CÀBÀQÐ G�IÜ#¨]Ø.7ô9�Eà—K‘K  |Õ4à—K‘K ¨|Ô<÷=ð —‘Ó(ˆHØ# gÑ-°Ñ8ˆLØó "	&ˆDÜ—g‘g—l‘l 4§?¡?°DÓ9ˆGÙÜ—w‘w×'Ñ'¨Ó0‘��1Ø—<‘< Ô&Ø�GØ" WÑ,�ðØ—L‘L×2Ñ2°7¸LÕIð" —;’; w×'7Ñ'7Ø˜c™	ô(#â)0±#Ð6�GÜ—7‘7—>‘> 'Ô*°4·<²<Ü—N‘NÐ#>ÀÔHØØ—‘×.Ñ.¨w¸ÔEØ—=’=Ø—L‘L×4Ñ4°g°YÔ?Ø×Ñ˜WÖ%ñE"	&÷=ñ =ûô( !ò ä—N‘Nð $9ô :à*¨WÑ4�FÜ—w‘w—~‘~ fÔ-ÜŸ	™	 &Ô)Ü—I‘I˜g vÔ.Ø—L‘L×2Ñ2°7¸LÔIÜ—L‘Lð "3ô 4ðÜŸ	™	 &Õ)øÜ$ò ÙðüðúsD   ÂA5I7ÆJÉ7JÊBMÌ#L9Ì8MÌ9	MÍMÍMÍMÍ
Mú-c                 óP  — t        «       }d| j                  v r|j                  |«       d| j                  v r"|j                  |›| j                  d   ›�«       d| j                  v r>|j                  |›| j                  ›| j                  d   ›d| j                  d   ›�«       |S )Nr    ÚXr   r!   rv   r   )r,   r-   Úaddr1   Úvariant_separator)r2   r)   r`   s      r   Úget_script_filenamesz ScriptMaker.get_script_filenames9  s“   € Ü“ˆØ�—‘ÑØ�J‰J�tÔØ�$—-‘-ÑØ�J‰J¡ t×'8Ñ'8¸Ò';Ð<Ô=Ø�D—M‘MÑ!Ø�J‰JÙ˜d×4Ò4°d×6GÑ6GÈÓ6JØ×)Ñ)¨!Ò,ð.ô /ð ˆr   c                 óx  — d}|r9|j                  dg «      }|r%ddj                  |«      z  }|j                  d«      }| j                  d||¬«      }| j	                  |«      j                  d«      }| j                  |j                  «      }|r|j                  dd«      rd	}	nd
}	| j                  |||||	«       y )Nr   Úinterpreter_argsz %sr   rg   ©r>   r7   FÚpywrˆ   )r:   r=   rm   rt   r   rµ   r)   r¯   )
r2   r~   r¢   r>   r\   Úargsrs   ÚscriptÚscriptnamesr£   s
             r   Ú_make_scriptzScriptMaker._make_scriptE  s´   € ØˆÙØ—;‘;Ð1°2Ó6ˆDÙØ˜sŸx™x¨›~Ñ-�Ø"Ÿk™k¨'Ó2�Ø×#Ñ# G¨[À'Ð#ÓJˆØ×&Ñ& uÓ-×4Ñ4°WÓ=ˆØ×/Ñ/°·
±
Ó;ˆÙ�w—{‘{ 5¨%Ô0Ø‰CàˆCØ×Ñ˜;¨°¸ÀCÕHr   c                 ó  — d}t         j                  j                  | j                  t	        |«      «      }t         j                  j                  | j
                  t         j                  j                  |«      «      }| j                  s3| j                  j                  ||«      st        j                  d|«       y 	 t        |d«      }|j                  «       }|st        j                  d|«       y t        j!                  |j#                  dd«      «      }|rd}|j%                  d«      xs d	}	 |sh|r|j+                  «        | j                  j-                  ||«       | j.                  r| j                  j1                  |g«       |j3                  |«       y t        j5                  d
|| j
                  «       | j                  j(                  s‡t7        |j                  «      \  }	}
|j9                  d«       | j;                  |	«      }dv rd}nd}t         j                  j                  |«      }| j=                  |g||j?                  «       ||«       |r|j+                  «        y y # t&        $ r | j(                  s‚ d }Y �ŒWw xY w)NFznot copying %s (up-to-date)Úrbz%s is an empty file (skipping)s   
rY   Tr   r   zcopying and adjusting %s -> %sr   s   pythonwr¹   rˆ   ) r(   r;   r=   r#   r   r$   r‚   r&   r.   ÚnewerrH   r�   rD   ÚreadlinerI   ÚFIRST_LINE_REÚmatchr<   ÚgrouprG   r3   ÚcloseÚ	copy_filer+   rž   rŸ   Úinfor   Úseekrt   r¯   rE   )r2   r»   r¢   Úadjustr«   ÚfÚ
first_linerÃ   r\   rq   Úlinesrs   r£   r¬   s                 r   Ú_copy_scriptzScriptMaker._copy_scriptU  s÷  € ØˆÜ—‘—‘˜dŸo™o¬|¸FÓ/CÓDˆÜ—'‘'—,‘,˜tŸ™´·±×0@Ñ0@ÀÓ0HÓIˆØ�zŠz $§,¡,×"4Ñ"4°V¸WÔ"EÜ�L‰LÐ6¸Ô?Øð
	4Ü�V˜TÓ"ˆAð Ÿ™›ˆJÙÜ—‘Ð?ÀÔHØä!×'Ñ'¨
×(:Ñ(:¸7ÀEÓ(JÓKˆEÙØ�Ø#Ÿk™k¨!›nÒ3°‘áÙØ—‘”	Ø�L‰L×"Ñ" 6¨7Ô3Ø�}Š}Ø—‘×0Ñ0°'°Ô;Ø×Ñ˜WÕ%ä�K‰KÐ8¸&ØŸ™ô)à—<‘<×'Ò'Ü"1°!·*±*Ó"=‘�˜%Ø—‘�q”	Ø×+Ñ+¨H°kÓB�Ø Ñ+Ø‘Cà�CÜ—G‘G×$Ñ$ WÓ-�Ø×"Ñ" A 3¨°·±³¸9ÀcÔJÙØ—‘•	ð øôG ò 	Ø—<’<ØØ‹Að	ús   Â=I- É-J	ÊJ	c                 ó.   — | j                   j                  S r�   ©r.   r3   )r2   s    r   r3   zScriptMaker.dry_runˆ  s   € à�|‰|×#Ñ#Ð#r   c                 ó&   — || j                   _        y r�   rÏ   )r2   Úvalues     r   r3   zScriptMaker.dry_runŒ  s   € à$ˆ�‰Õr   r"   c                 ó  — t        j                  d«      dk(  rd}nd}t        «       dk(  rdnd}|›|›|›d�}t        j	                  d	d
«      d   }t        |«      j                  |«      }|sd|›d|›�}t        |«      ‚|j                  S )NÚPé   Ú64Ú32z	win-arm64z-armr    z.exerv   r   r   zUnable to find resource z in package )	ÚstructÚcalcsizer   Ú__name__Úrsplitr	   Úfindrp   Úbytes)r2   ÚkindÚbitsÚplatform_suffixr)   Údistlib_packageÚresourceÚmsgs           r   r�   zScriptMaker._get_launcher•  sˆ   € Ü�‰˜sÓ# qÒ(Ø‘à�Ü(4«¸+Ò(E™fÈ2ˆOÙ#'©ªÐ?ˆDô 'Ÿo™o¨c°1Ó5°aÑ8ˆOÜ˜oÓ.×3Ñ3°DÓ9ˆHÚâ™oð/�ä  “oÐ%Ø—>‘>Ð!r   c                 ót   — g }t        |«      }|€| j                  ||«       |S | j                  |||¬«       |S )aÓ  
        Make a script.

        :param specification: The specification, which is either a valid export
                              entry specification (to make a script from a
                              callable) or a filename (to make a script by
                              copying from a source location).
        :param options: A dictionary of options controlling script generation.
        :return: A list of all absolute pathnames written to.
        r¸   )r   rÍ   r½   )r2   Úspecificationr>   r¢   r~   s        r   ÚmakezScriptMaker.make¨  sM   € ð ˆ	Ü  Ó/ˆØˆ=Ø×Ñ˜m¨YÔ7ð Ðð ×Ñ˜e Y¸ÐÔ@ØÐr   c                 óZ   — g }|D ]#  }|j                  | j                  ||«      «       Œ% |S )zÂ
        Take a list of specifications and make scripts from them,
        :param specifications: A list of specifications.
        :return: A list of all absolute pathnames written to,
        )Úextendrå   )r2   Úspecificationsr>   r¢   rä   s        r   Úmake_multiplezScriptMaker.make_multiple»  s9   € ð ˆ	Ø+ò 	@ˆMØ×Ñ˜TŸY™Y }°gÓ>Õ?ð	@àÐr   )TFN)r   Nr�   )"rÙ   Ú
__module__Ú__qualname__Ú__doc__ÚSCRIPT_TEMPLATErz   r   r5   rA   r0   r[   r   rK   rS   ra   rt   r   Ú_DEFAULT_MANIFESTrƒ   r†   r¯   r´   rµ   r½   rÍ   Úpropertyr3   Úsetterr(   r)   r*   r�   rå   ré   © r   r   r   r   I   sá   „ ñð &€Oà€Jð
  $ØØó-ò*ð ‡|�|×Ñ˜vÔ&ò
	ò
	2òó>FòPð !€Hò$ò:&ðx Ðò
óIò 1ðf ñ$ó ð$ð ‡^�^ñ%ó ð%ð 
‡w�w�$‚˜2Ÿ7™7 fÒ,Ø!Ÿx™x¨4Ò/ò	"ó&ô&	r   r   )#Úior   Úloggingr(   Úrer×   r0   r’   Úzipfiler   Úcompatr   r   r   Ú	resourcesr	   Úutilr
   r   r   r   r   r   Ú	getLoggerrÙ   rH   Ústriprî   ÚcompilerÂ   rí   r   Ú_enquote_executableÚobjectr   rñ   r   r   ú<module>rþ      sŽ   ðõ Û Û 	Û 	Û Û 
Û Ý ç 7Ñ 7Ý ÷:÷ :ð 
ˆ×	Ñ	˜8Ó	$€ð÷  ‰u‹wð! ð& �—
‘
Ð=Ó>€ð€òð" )Ð ô{�&õ {r   