Ë
    äØjjà,  ã                   óÈ  — U 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m	Z	m
Z
mZmZmZ  G d„ d«      Zdee   fd„Zdefd„Zdefd„Zd	edefd
„Z e j*                  d„ «      Ze	eef   ed<    G d„ de«      Zdee   fd„Zdee   fd„Zdee   fd„Zdedeeef   fd„Z ej<                  «       deeef   fd„«       Zded	ededefd„Z ddddœZ!ded	ede
e   fd„Z"y)é    N)ÚIOÚDictÚIteratorÚ
NamedTupleÚOptionalÚTuplec                   óh   — e Zd Z G d„ de«      ZdZdZdZdZdZ	dZ
dZdZd	Zd
ZdZdZdee   ddfd„Zy)Ú_ELFFileHeaderc                   ó   — e Zd ZdZy)ú$_ELFFileHeader._InvalidELFFileHeaderz7
        An invalid ELF file header was found.
        N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úb/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_vendor/packaging/_manylinux.pyÚ_InvalidELFFileHeaderr      s   „ ò	r   r   iFLEé   é   é   é   é(   é>   l      ~ i   i   ÚfileÚreturnNc                 óf  ‡— dt         dt        fˆfd„} |d«      | _        | j                  | j                  k7  rt        j                  «       ‚ |d«      | _        | j                  | j                  | j                  hvrt        j                  «       ‚ |d«      | _	        | j                  | j                  | j                  hvrt        j                  «       ‚ |d«      | _         |d«      | _         |d«      | _        ‰j                  d«      | _        | j                  | j                  k(  rdnd}| j                  | j                  k(  rd	nd}| j                  | j                  k(  rd
nd}| j                  | j                  k(  r|n|} ||«      | _         ||«      | _         ||«      | _         ||«      | _         ||«      | _         ||«      | _         ||«      | _         ||«      | _         ||«      | _         ||«      | _         ||«      | _         ||«      | _         ||«      | _        y )NÚfmtr   c                 óÚ   •— 	 ‰j                  t        j                  | «      «      }t        j                  | |«      }|d   S # t        j                  $ r t
        j                  «       ‚w xY w)Nr   )ÚreadÚstructÚcalcsizeÚunpackÚerrorr
   r   )r   ÚdataÚresultr   s      €r   r#   z'_ELFFileHeader.__init__.<locals>.unpack$   s_   ø€ ð=Ø—y‘y¤§¡°Ó!5Ó6�Ü*0¯-©-¸¸TÓ*B�ð ˜!‘9Ðøô —<‘<ò =Ü$×:Ñ:Ó<Ð<ð=ús   ƒ:A Á(A*z>IÚBé   z<Hz>Hz<Iz<Qz>Q)ÚstrÚintÚe_ident_magicÚELF_MAGIC_NUMBERr
   r   Úe_ident_classÚ
ELFCLASS32Ú
ELFCLASS64Úe_ident_dataÚELFDATA2LSBÚELFDATA2MSBÚe_ident_versionÚe_ident_osabiÚe_ident_abiversionr    Úe_ident_padÚe_typeÚ	e_machineÚ	e_versionÚe_entryÚe_phoffÚe_shoffÚe_flagsÚe_ehsizeÚe_phentsizeÚe_phnumÚe_shentsizeÚe_shnumÚ
e_shstrndx)Úselfr   r#   Úformat_hÚformat_iÚformat_qÚformat_ps    `     r   Ú__init__z_ELFFileHeader.__init__#   sï  ø€ ð	œð 	¤õ 	ñ $ D›\ˆÔØ×Ñ ×!6Ñ!6Ò6Ü ×6Ñ6Ó8Ð8Ù# C›[ˆÔØ×Ñ d§o¡o°t·±Ð%GÑGÜ ×6Ñ6Ó8Ð8Ù" 3›KˆÔØ×Ñ T×%5Ñ%5°t×7GÑ7GÐ$HÑHÜ ×6Ñ6Ó8Ð8Ù% c›{ˆÔÙ# C›[ˆÔÙ"(¨£+ˆÔØŸ9™9 Q›<ˆÔØ×,Ñ,°×0@Ñ0@Ò@‘4ÀdˆØ×,Ñ,°×0@Ñ0@Ò@‘4ÀdˆØ×,Ñ,°×0@Ñ0@Ò@‘4ÀdˆØ#×1Ñ1°T·_±_ÒD‘8È(ˆÙ˜XÓ&ˆŒÙ Ó)ˆŒÙ Ó)ˆŒÙ˜hÓ'ˆŒÙ˜hÓ'ˆŒÙ˜hÓ'ˆŒÙ˜hÓ'ˆŒÙ˜xÓ(ˆŒÙ! (Ó+ˆÔÙ˜hÓ'ˆŒÙ! (Ó+ˆÔÙ˜hÓ'ˆŒÙ  Ó*ˆ�r   )r   r   r   Ú
ValueErrorr   r,   r.   r/   r1   r2   ÚEM_386ÚEM_S390ÚEM_ARMÚ	EM_X86_64ÚEF_ARM_ABIMASKÚEF_ARM_ABI_VER5ÚEF_ARM_ABI_FLOAT_HARDr   ÚbytesrI   r   r   r   r
   r
      se   „ ô 
ô ð
 "ÐØ€JØ€JØ€KØ€KØ€FØ€GØ€FØ€IØ€NØ €OØ&Ðð&+˜R ™Yð &+¨4ô &+r   r
   r   c                  óÆ   — 	 t        t        j                  d«      5 } t        | «      }d d d «       |S # 1 sw Y   S xY w# t        t
        t        j                  f$ r Y y w xY w)NÚrb)ÚopenÚsysÚ
executabler
   ÚOSErrorÚ	TypeErrorr   )ÚfÚ
elf_headers     r   Ú_get_elf_headerr\   L   sa   € ðÜ”#—.‘. $Ó'ð 	+¨1Ü'¨Ó*ˆJ÷	+ð Ð÷		+ð Ðûô ”Y¤× DÑ DÐEò Ùðús#   ‚? œ2¨? ²<·? ¼? ¿A ÁA c                  óf  — t        «       } | €y| j                  | j                  k(  }|| j                  | j                  k(  z  }|| j
                  | j                  k(  z  }|| j                  | j                  z  | j                  k(  z  }|| j                  | j                  z  | j                  k(  z  }|S ©NF)r\   r-   r.   r0   r1   r8   rM   r=   rO   rP   rQ   ©r[   r&   s     r   Ú_is_linux_armhfr`   U   sÂ   € ô !Ó"€JØÐØØ×%Ñ%¨×)>Ñ)>Ñ>€FØ
ˆj×%Ñ%¨×)?Ñ)?Ñ?Ñ?€FØ
ˆj×"Ñ" j×&7Ñ&7Ñ7Ñ7€FØ
Ø×Ñ˜Z×6Ñ6Ñ6Ø	×	#Ñ	#ñ$ñ $€Fð Ø×Ñ˜Z×=Ñ=Ñ=Ø	×	)Ñ	)ñ*ñ *€Fð €Mr   c                  óÂ   — t        «       } | €y| j                  | j                  k(  }|| j                  | j                  k(  z  }|| j
                  | j                  k(  z  }|S r^   )r\   r-   r.   r0   r1   r8   rK   r_   s     r   Ú_is_linux_i686rb   h   sd   € Ü Ó"€JØÐØØ×%Ñ%¨×)>Ñ)>Ñ>€FØ
ˆj×%Ñ%¨×)?Ñ)?Ñ?Ñ?€FØ
ˆj×"Ñ" j×&7Ñ&7Ñ7Ñ7€FØ€Mr   Úarchc                 óF   — | dk(  r
t        «       S | dk(  r
t        «       S | dv S )NÚarmv7lÚi686>   Úppc64Ús390xÚx86_64Úaarch64Úppc64le)r`   rb   )rc   s    r   Ú_have_compatible_abirl   r   s/   € ØˆxÒÜÓ Ð Øˆv‚~ÜÓÐØÐEÐEÐEr   c                   ó   — y)Né2   r   r   r   r   ú<lambda>ro      s   � r   Ú_LAST_GLIBC_MINORc                   ó"   — e Zd ZU eed<   eed<   y)Ú_GLibCVersionÚmajorÚminorN)r   r   r   r*   Ú__annotations__r   r   r   rr   rr   ‚   s   … ØƒJØ„Jr   rr   c                  óž   — 	 t        j                  d«      } | €J ‚| j                  «       \  }}|S # t        t        t
        t        f$ r Y yw xY w)zJ
    Primary implementation of glibc_version_string using os.confstr.
    ÚCS_GNU_LIBC_VERSIONN)ÚosÚconfstrÚsplitÚAssertionErrorÚAttributeErrorrX   rJ   )Úversion_stringÚ_Úversions      r   Ú_glibc_version_string_confstrr€   ‡   sX   € ðäŸ™Ð$9Ó:ˆØÐ)Ð)Ð)Ø#×)Ñ)Ó+‰
ˆˆ7ð €Nøô œN¬G´ZÐ@ò áðús   ‚,0 °AÁAc                  ó  — 	 ddl } 	 | j                  d«      }	 |j                  }| j                  |_         |«       }t        |t        «      s|j                  d«      }|S # t        $ r Y yw xY w# t        $ r Y yw xY w# t
        $ r Y yw xY w)zG
    Fallback implementation of glibc_version_string using ctypes.
    r   NÚascii)ÚctypesÚImportErrorÚCDLLrX   Úgnu_get_libc_versionr|   Úc_char_pÚrestypeÚ
isinstancer)   Údecode)rƒ   Úprocess_namespacer†   Úversion_strs       r   Ú_glibc_version_string_ctypesr�   š   s£   € ðÛð"Ø"ŸK™K¨Ó-ÐðØ0×EÑEÐð $*§?¡?ÐÔ Ù+Ó-€Kä�k¤3Ô'Ø!×(Ñ(¨Ó1ˆàÐøôG ò Ùðûô$ ò Ùðûô
 ò ñ ðús3   ‚A  ‡A/ ™A> Á 	A,Á+A,Á/	A;Á:A;Á>	B
Â	B
c                  ó.   — t        «       xs
 t        «       S )z9Returns glibc version string, or None if not using glibc.)r€   r�   r   r   r   Ú_glibc_version_stringr�   Æ   s   € ä(Ó*ÒLÔ.JÓ.LÐLr   rŒ   c                 óÖ   — t        j                  d| «      }|st        j                  d| z  t        «       yt        |j                  d«      «      t        |j                  d«      «      fS )a3  Parse glibc version.

    We use a regexp instead of str.split because we want to discard any
    random junk that might come after the minor version -- this might happen
    in patched/forked versions of glibc (e.g. Linaro's version of glibc
    uses version strings like "2.20-2014.11"). See gh-3588.
    z$(?P<major>[0-9]+)\.(?P<minor>[0-9]+)z=Expected glibc version with 2 components major.minor, got: %s©éÿÿÿÿr’   rs   rt   )ÚreÚmatchÚwarningsÚwarnÚRuntimeWarningr*   Úgroup)rŒ   Úms     r   Ú_parse_glibc_versionrš   Ë   s`   € ô 	�‰Ð8¸+ÓF€AÙÜ�‰ðØ$ñ%äô	
ð
 Üˆq�w‰w�wÓÓ ¤# a§g¡g¨gÓ&6Ó"7Ð7Ð7r   c                  ó2   — t        «       } | €yt        | «      S )Nr‘   )r�   rš   )rŒ   s    r   Ú_get_glibc_versionrœ   Þ   s   € ä'Ó)€KØÐØÜ Ó,Ð,r   Únamer   c                 óÒ  — t        «       }||k  ry	 dd l}t        |d«      r'|j	                  |d   |d   |«      }|�t        |«      S y|t        dd«      k(  r!t        |d«      rt        |j                  «      S |t        dd	«      k(  r!t        |d
«      rt        |j                  «      S |t        dd«      k(  r!t        |d«      rt        |j                  «      S y# t        $ r Y yw xY w)NFr   TÚmanylinux_compatibler   r   é   Úmanylinux1_compatibleé   Úmanylinux2010_compatibleé   Úmanylinux2014_compatible)
rœ   Ú
_manylinuxr„   ÚhasattrrŸ   Úboolrr   r¡   r£   r¥   )r�   rc   r   Ú	sys_glibcr¦   r&   s         r   Ú_is_compatiblerª   ç   sñ   € Ü"Ó$€IØ�7ÒØðÛô ˆzÐ1Ô2Ø×0Ñ0°¸±¸WÀQ¹ZÈÓNˆØÐÜ˜“<ÐØØ”-  1Ó%Ò%Ü�:Ð6Ô7Ü˜
×8Ñ8Ó9Ð9Ø”-  2Ó&Ò&Ü�:Ð9Ô:Ü˜
×;Ñ;Ó<Ð<Ø”-  2Ó&Ò&Ü�:Ð9Ô:Ü˜
×;Ñ;Ó<Ð<Øøô! ò Ùðús   ’C Ã	C&Ã%C&Úmanylinux2014Úmanylinux2010Ú
manylinux1))r   r¤   )r   r¢   )r   r    Úlinuxc              #   ó’  K  — t        |«      sy t        dd«      }|dv rt        dd«      }t        t        «       Ž }|g}t        |j                  dz
  dd«      D ]&  }t
        |   }|j                  t        ||«      «       Œ( |D ]À  }|j                  |j                  k(  r|j                  }nd}t        |j                  |d«      D ]|  }t        |j                  |«      }	 dj                  |	Ž }
t        |
||	«      r| j                  d|
«      –— |	t        v sŒRt        |	   }t        |||	«      sŒi| j                  d|«      –— Œ~ ŒÂ y ­w)	Nr   é   >   rf   ri   é   r   r’   zmanylinux_{}_{}r®   )rl   rr   rœ   Úrangers   rp   Úappendrt   Úformatrª   ÚreplaceÚ_LEGACY_MANYLINUX_MAP)r®   rc   Útoo_old_glibc2Úcurrent_glibcÚglibc_max_listÚglibc_majorÚglibc_minorÚ	glibc_maxÚ	min_minorÚglibc_versionÚtagÚ
legacy_tags               r   Úplatform_tagsrÁ     sN  è ø€ Ü Ô%Øä" 1 bÓ)€NØÐ!Ñ!ä& q¨!Ó,ˆÜ!Ô#5Ó#7Ð8€MØ#�_€Nô ˜]×0Ñ0°1Ñ4°a¸Ó<ò GˆÜ'¨Ñ4ˆØ×Ñœm¨K¸ÓEÕFðGð $ò =ˆ	Ø�?‰?˜n×2Ñ2Ò2Ø&×,Ñ,‰Ið ˆIÜ  §¡°)¸RÓ@ò 		=ˆKÜ)¨)¯/©/¸;ÓGˆMØ*Ð#×*Ñ*¨MÐ:ˆCÜ˜c 4¨Ô7Ø—m‘m G¨SÓ1Ò1àÔ 5Ò5Ü2°=ÑA�
Ü! *¨d°MÕBØŸ-™-¨°Ó<Ó<ñ		=ñ=ùs   ‚DEÄEÄ.E)#ÚcollectionsÚ	functoolsrx   r“   r!   rV   r•   Útypingr   r   r   r   r   r   r
   r\   r¨   r`   rb   r)   rl   Údefaultdictrp   r*   ru   rr   r€   r�   r�   rš   Ú	lru_cacherœ   rª   r¶   rÁ   r   r   r   ú<module>rÇ      sf  ðÜ Û Û 	Û 	Û Û 
Û ß B× B÷:+ñ :+ðz˜ .Ñ1ó ð˜ó ð&˜ó ðF˜sð F tó Fð %< K×$;Ñ$;¹JÓ$GÐ �4˜˜S˜‘>Ó Gô�Jô ð
 x°¡}ó ð&) h¨s¡mó )ðXM˜x¨™}ó Mð
8 cð 8¨e°C¸°H©oó 8ð& €×ÑÓð-˜E # s (™Oò -ó ð-ð˜ð  Cð °-ð ÀDó ð8 ààñÐ ð"=˜ð "= Cð "=¨H°S©Mô "=r   