Ë
    nûàgê  ã                  óà   — d Z ddlmZ ddlZddlZddlZddlmZ  G d„ de«      Z	 G d„ dej                  «      Z G d	„ d
ej                  «      Z G d„ dej                  «      Z G d„ d«      Zy)a;  
ELF file parser.

This provides a class ``ELFFile`` that parses an ELF executable in a similar
interface to ``ZipFile``. Only the read interface is implemented.

Based on: https://gist.github.com/lyssdod/f51579ae8d93c8657a5564aefc2ffbca
ELF header: https://refspecs.linuxfoundation.org/elf/gabi4+/ch4.eheader.html
é    )ÚannotationsN)ÚIOc                  ó   — e Zd Zy)Ú
ELFInvalidN)Ú__name__Ú
__module__Ú__qualname__© ó    úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/_elffile.pyr   r      s   „ Ør   r   c                  ó   — e Zd ZdZdZy)ÚEIClassé   é   N)r   r   r	   ÚC32ÚC64r
   r   r   r   r      ó   „ Ø
€CØ
�Cr   r   c                  ó   — e Zd ZdZdZy)ÚEIDatar   r   N)r   r   r	   ÚLsbÚMsbr
   r   r   r   r      r   r   r   c                  ó    — e Zd ZdZdZdZdZdZy)ÚEMachineé   é   é(   é>   é·   N)r   r   r	   ÚI386ÚS390ÚArmÚX8664ÚAArc64r
   r   r   r   r   !   s   „ Ø€DØ€DØ
€CØ€EØ�Fr   r   c                  ó2   — e Zd ZdZdd„Zdd„Zedd„«       Zy)	ÚELFFilez.
    Representation of an ELF executable.
    c           
     óv  — || _         	 | j                  d«      }t        |d d «      }|dk7  rt	        d|›�«      ‚|d   | _        |d   | _        	 ddd	d
dœ| j                  | j                  f   \  }| _        | _	        	 | j                  |«      \
  }| _        }}| _        }| _        }| _        | _        y # t        j                  $ r}t	        d«      |‚d }~ww xY w# t        $ r,}t	        d| j                  › d| j                  › d�«      |‚d }~ww xY w# t        j                  $ r}t	        d«      |‚d }~ww xY w)NÚ16Bzunable to parse identificationé   s   ELFzinvalid magic: é   )z<HHIIIIIHHHz	<IIIIIIII©r   r   r(   )z>HHIIIIIHHHz	>IIIIIIIIr*   )z<HHIQQQIHHHz	<IIQQQQQQ©r   r   r)   )z>HHIQQQIHHHz	>IIQQQQQQr+   ))r   r   )r   r   )r   r   )r   r   zunrecognized capacity (z) or encoding (ú)z/unable to parse machine and section information)Ú_fÚ_readÚstructÚerrorr   ÚbytesÚcapacityÚencodingÚ_p_fmtÚ_p_idxÚKeyErrorÚmachineÚ_e_phoffÚflagsÚ_e_phentsizeÚ_e_phnum)ÚselfÚfÚidentÚeÚmagicÚe_fmtÚ_s          r   Ú__init__zELFFile.__init__.   sn  € ØˆŒð	FØ—J‘J˜uÓ%ˆEô �e˜B˜Q�iÓ ˆØ�JÒÜ˜¨u¨iÐ8Ó9Ð9à˜a™ˆŒØ˜a™ˆŒð	ð
 @Ø?Ø?Ø?ñ	/ð
 �}‰}˜dŸm™mÐ,ñ/.Ñ+ˆE�4”; ¤ð	Wð —
‘
˜5Ó!ñØØ”ØØØ”ØØ”
ØØÔ!Ø•øôI �|‰|ò 	FÜÐ=Ó>ÀAÐEûð	Fûô& ò 	ÜØ)¨$¯-©-¨ð 9Ø!Ÿ]™]˜O¨1ð.óð ðûð	ûô& �|‰|ò 	WÜÐNÓOÐUVÐVûð	WúsG   ‰B5 Á.C Á?5D Â5CÃCÃCÃ	DÃ%'DÄDÄD8Ä'D3Ä3D8c                ó†   — t        j                  || j                  j                  t        j                  |«      «      «      S )N)r/   Úunpackr-   ÚreadÚcalcsize)r<   Úfmts     r   r.   zELFFile._read\   s)   € Ü�}‰}˜S $§'¡'§,¡,¬v¯©¸sÓ/CÓ"DÓEÐEr   c                ó*  — t        | j                  «      D ]â  }| j                  j                  | j                  | j
                  |z  z   «       	 | j                  | j                  «      }|| j                  d      dk7  rŒj| j                  j                  || j                  d      «       t        j                  | j                  j                  || j                  d      «      «      j                  d«      c S  y# t        j                  $ r Y Œûw xY w)zH
        The path recorded in the ``PT_INTERP`` section header.
        r   r   r   r   ú N)Úranger;   r-   Úseekr8   r:   r.   r4   r/   r0   r5   ÚosÚfsdecoderF   Ústrip)r<   ÚindexÚdatas      r   ÚinterpreterzELFFile.interpreter_   sá   € ô
 ˜4Ÿ=™=Ó)ò 		OˆEØ�G‰G�L‰L˜Ÿ™¨×):Ñ):¸UÑ)BÑBÔCðØ—z‘z $§+¡+Ó.�ð �D—K‘K ‘NÑ# qÒ(ØØ�G‰G�L‰L˜˜dŸk™k¨!™nÑ-Ô.Ü—;‘;˜tŸw™wŸ|™|¨D°·±¸Q±Ñ,@ÓAÓB×HÑHÈÓNÒNð		Oð øô —<‘<ò Ùðús   ÁC<Ã<DÄDN)r=   z	IO[bytes]ÚreturnÚNone)rH   ÚstrrS   ztuple[int, ...])rS   z
str | None)r   r   r	   Ú__doc__rC   r.   ÚpropertyrR   r
   r   r   r%   r%   )   s(   „ ñó,Wó\Fð òó ñr   r%   )rV   Ú
__future__r   ÚenumrM   r/   Útypingr   Ú
ValueErrorr   ÚIntEnumr   r   r   r%   r
   r   r   ú<module>r]      sc   ðñõ #ã Û 	Û Ý ô	�ô 	ôˆd�l‰lô ô
ˆT�\‰\ô ô
ˆt�|‰|ô ÷Eò Er   