§
    ÇÁ³gŒ%  ã                  óh  — U 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Zd dl	m
Z
mZmZmZ ddlmZmZmZmZ dZdZdZej        d+d„¦   «         Zd,d„Zd,d„Zd-d„Z ej        d„ ¦  «        Zded<    G d„ de¦  «        Zd.d„Zd.d„Z d.d„Z!d/d „Z"ej#        d0d!„¦   «         Z$d1d$„Z%d%d&d'd(œZ&d2d*„Z'dS )3é    )ÚannotationsN)Ú	GeneratorÚIteratorÚ
NamedTupleÚSequenceé   )ÚEIClassÚEIDataÚELFFileÚEMachinel      ~ i   i   ÚpathÚstrÚreturnú%Generator[ELFFile | None, None, None]c              #  óÄ   K  — 	 t          | d¦  «        5 }t          |¦  «        V — d d d ¦  «         d S # 1 swxY w Y   d S # t          t          t          f$ r d V — Y d S w xY w)NÚrb)Úopenr   ÚOSErrorÚ	TypeErrorÚ
ValueError)r   Úfs     úR/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/packaging/_manylinux.pyÚ
_parse_elfr      s¿   è è € ðÝ�$˜ÑÔð 	 Ý˜!‘*”*ÐÐÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	øå•Y¥
Ð+ð ð ð Øˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ðøøøs,   „A  ”3¦A  ³7·A  º7»A  Á AÁAÚ
executableÚboolc                ó<  — t          | ¦  «        5 }|d uon|j        t          j        k    oY|j        t
          j        k    oD|j        t          j	        k    o/|j
        t          z  t          k    o|j
        t          z  t          k    	 cd d d ¦  «         S # 1 swxY w Y   d S ©N)r   Úcapacityr	   ÚC32Úencodingr
   ÚLsbÚmachiner   ÚArmÚflagsÚEF_ARM_ABIMASKÚEF_ARM_ABI_VER5ÚEF_ARM_ABI_FLOAT_HARD©r   r   s     r   Ú_is_linux_armhfr)      sç   € õ 
�JÑ	Ô	ð 
 1à�TˆMð IØ”
�gœkÒ)ðIà”
�fœjÒ(ðIð ”	�Xœ\Ò)ðIð ”�.Ñ(­OÒ;ð	Ið
 ”Õ/Ñ/Õ3HÒHð	
ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   �A4BÂBÂBc                óÜ   — t          | ¦  «        5 }|d uo>|j        t          j        k    o)|j        t
          j        k    o|j        t          j	        k    	 cd d d ¦  «         S # 1 swxY w Y   d S r   )
r   r   r	   r   r    r
   r!   r"   r   ÚI386r(   s     r   Ú_is_linux_i686r,   -   s²   € Ý	�JÑ	Ô	ð 
 1à�TˆMð +Ø”
�gœkÒ)ð+à”
�fœjÒ(ð+ð ”	�Xœ]Ò*ð		
ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   �AA!Á!A%Á(A%ÚarchsúSequence[str]c                óŽ   ‡— d|v rt          | ¦  «        S d|v rt          | ¦  «        S h d£Št          ˆfd„|D ¦   «         ¦  «        S )NÚarmv7lÚi686>   Úppc64Ús390xÚx86_64Úaarch64Úppc64leÚriscv64Úloongarch64c              3  ó    •K  — | ]}|‰v V — Œ	d S r   © )Ú.0ÚarchÚallowed_archss     €r   ú	<genexpr>z'_have_compatible_abi.<locals>.<genexpr>E   s(   øè è € Ð7Ð7¨ˆt�}Ð$Ð7Ð7Ð7Ð7Ð7Ð7ó    )r)   r,   Úany)r   r-   r=   s     @r   Ú_have_compatible_abirA   7   si   ø€ Ø�5ÐÐÝ˜zÑ*Ô*Ð*Ø�€€Ý˜jÑ)Ô)Ð)ðð ð €Mõ Ð7Ð7Ð7Ð7°Ð7Ñ7Ô7Ñ7Ô7Ð7r?   c                 ó   — dS )Né2   r:   r:   r?   r   ú<lambda>rD   M   s   € ÀB€ r?   zdict[int, int]Ú_LAST_GLIBC_MINORc                  ó$   — e Zd ZU ded<   ded<   dS )Ú_GLibCVersionÚintÚmajorÚminorN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r:   r?   r   rG   rG   P   s"   € € € € € € Ø€J€J�JØ€J€J�J€J€Jr?   rG   ú
str | Nonec                 ó°   — 	 t          j        d¦  «        } | €J ‚|                      ¦   «         \  }}n$# t          t          t
          t          f$ r Y dS w xY w|S )zJ
    Primary implementation of glibc_version_string using os.confstr.
    ÚCS_GNU_LIBC_VERSIONN)ÚosÚconfstrÚrsplitÚAssertionErrorÚAttributeErrorr   r   )Úversion_stringÚ_Úversions      r   Ú_glibc_version_string_confstrrZ   U   sl   € ðå%'¤ZÐ0EÑ%FÔ%FˆØÐ)Ð)Ð)Ø#×*Ò*Ñ,Ô,‰
ˆˆ7ˆ7øÝ�N­GµZÐ@ð ð ð àˆtˆtðøøøð €Ns   ‚/2 ²AÁAc                 ó8  — 	 ddl } n# t          $ r Y dS w xY w	 |                      d¦  «        }n# t          $ r Y dS w xY w	 |j        }n# t
          $ r Y dS w xY w| j        |_         |¦   «         }t          |t          ¦  «        s| 
                    d¦  «        }|S )zG
    Fallback implementation of glibc_version_string using ctypes.
    r   NÚascii)ÚctypesÚImportErrorÚCDLLr   Úgnu_get_libc_versionrV   Úc_char_pÚrestypeÚ
isinstancer   Údecode)r]   Úprocess_namespacer`   Úversion_strs       r   Ú_glibc_version_string_ctypesrg   h   së   € ðØˆˆˆˆøÝð ð ð Øˆtˆtðøøøð Ø"ŸKšK¨Ñ-Ô-ÐÐøÝð ð ð ØˆtˆtðøøøðØ0ÔEÐÐøÝð ð ð ð ˆtˆtðøøøð $*¤?ÐÔ Ø+Ð+Ñ-Ô-€Kå�k¥3Ñ'Ô'ð 2Ø!×(Ò(¨Ñ1Ô1ˆàÐs*   ‚ ‡
”™/ ¯
=¼=ÁA	 Á	
AÁAc                 ó:   — t          ¦   «         pt          ¦   «         S )z9Returns glibc version string, or None if not using glibc.)rZ   rg   r:   r?   r   Ú_glibc_version_stringri   ”   s   € å(Ñ*Ô*ÐLÕ.JÑ.LÔ.LÐLr?   rf   útuple[int, int]c                óú   — t          j        d| ¦  «        }|s!t          j        d| › �t          d¬¦  «         dS t          |                     d¦  «        ¦  «        t          |                     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: é   )Ú
stacklevel©éÿÿÿÿro   rI   rJ   )ÚreÚmatchÚwarningsÚwarnÚRuntimeWarningrH   Úgroup)rf   Úms     r   Ú_parse_glibc_versionrw   ™   s‰   € õ 	ŒÐ8¸+ÑFÔF€AØð ÝŒð#Ø ð#ð #åØð		
ñ 	
ô 	
ð 	
ð ˆvÝˆq�wŠw�wÑÔÑ Ô ¥# a§g¢g¨gÑ&6Ô&6Ñ"7Ô"7Ð7Ð7r?   c                 óD   — t          ¦   «         } | €dS t          | ¦  «        S )Nrn   )ri   rw   )rf   s    r   Ú_get_glibc_versionry   ­   s&   € å'Ñ)Ô)€KØÐØˆxÝ Ñ,Ô,Ð,r?   r<   rY   c                ó<  — t          ¦   «         }||k     rdS 	 dd l}n# t          $ r Y dS w xY wt          |d¦  «        r6|                     |d         |d         | ¦  «        }|�t          |¦  «        S dS |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 dS )NFr   TÚmanylinux_compatibler   rl   é   Úmanylinux1_compatibleé   Úmanylinux2010_compatibleé   Úmanylinux2014_compatible)
ry   Ú
_manylinuxr^   Úhasattrr{   r   rG   r}   r   r�   )r<   rY   Ú	sys_glibcr‚   Úresults        r   Ú_is_compatibler†   ¶   sL  € Ý"Ñ$Ô$€IØ�7ÒÐØˆuðØÐÐÐÐøÝð ð ð ØˆtˆtðøøøåˆzÐ1Ñ2Ô2ð Ø×0Ò0°¸´¸WÀQ¼ZÈÑNÔNˆØÐÝ˜‘<”<ÐØˆtØ•-  1Ñ%Ô%Ò%Ð%Ý�:Ð6Ñ7Ô7ð 	:Ý˜
Ô8Ñ9Ô9Ð9Ø•-  2Ñ&Ô&Ò&Ð&Ý�:Ð9Ñ:Ô:ð 	=Ý˜
Ô;Ñ<Ô<Ð<Ø•-  2Ñ&Ô&Ò&Ð&Ý�:Ð9Ñ:Ô:ð 	=Ý˜
Ô;Ñ<Ô<Ð<Øˆ4s   ˜ �
+ª+Úmanylinux2014Úmanylinux2010Ú
manylinux1))rl   r€   )rl   r~   )rl   r|   úIterator[str]c              #  óº  K  — t          t          j        | ¦  «        sdS t          dd¦  «        }t	          | ¦  «        ddhz  rt          dd¦  «        }t          t          ¦   «         Ž }|g}t          |j        dz
  dd¦  «        D ]2}t          |         }| 	                    t          ||¦  «        ¦  «         Œ3| D ]¡}|D ]œ}|j        |j        k    r|j
        }nd}t          |j
        |d¦  «        D ]i}t          |j        |¦  «        }	 d	j        |	Ž }
t          ||	¦  «        r	|
› d
|› �V — |	t          v r&t          |	         }t          ||	¦  «        r	|› d
|› �V — ŒjŒ�Œ¢dS )aÆ  Generate manylinux tags compatible to the current platform.

    :param archs: Sequence of compatible architectures.
        The first one shall be the closest to the actual architecture and be the part of
        platform tag after the ``linux_`` prefix, e.g. ``x86_64``.
        The ``linux_`` prefix is assumed as a prerequisite for the current platform to
        be manylinux-compatible.

    :returns: An iterator of compatible manylinux tags.
    Nrl   é   r4   r1   é   r   ro   zmanylinux_{}_{}rX   )rA   Úsysr   rG   Úsetry   ÚrangerI   rE   ÚappendrJ   Úformatr†   Ú_LEGACY_MANYLINUX_MAP)r-   Útoo_old_glibc2Úcurrent_glibcÚglibc_max_listÚglibc_majorÚglibc_minorr<   Ú	glibc_maxÚ	min_minorÚglibc_versionÚtagÚ
legacy_tags               r   Úplatform_tagsrž   Ú   s½  è è € õ  ¥¤°Ñ6Ô6ð Øˆå" 1 bÑ)Ô)€NÝ
ˆ5�z„z�X˜vÐ&Ñ&ð -å& q¨!Ñ,Ô,ˆÝ!Õ#5Ñ#7Ô#7Ð8€MØ#�_€Nõ ˜]Ô0°1Ñ4°a¸Ñ<Ô<ð Gð GˆÝ'¨Ô4ˆØ×Ò�m¨K¸ÑEÔEÑFÔFÐFÐFØð 5ð 5ˆØ'ð 	5ð 	5ˆIØŒ .Ô"6Ò6Ð6Ø*Ô0�	�	ð �	Ý$ Y¤_°iÀÑDÔDð 	5ð 	5�Ý -¨i¬o¸{Ñ KÔ K�Ø.Ð'Ô.°Ð>�Ý! $¨Ñ6Ô6ð *Ø ˜/˜/ 4˜/˜/Ð)Ð)Ð)à Õ$9Ð9Ð9Ý!6°}Ô!E�JÝ% d¨MÑ:Ô:ð 5Ø!+Ð4Ð4¨dÐ4Ð4Ð4Ð4Ð4øð	5ð	5ð5ð 5r?   )r   r   r   r   )r   r   r   r   )r   r   r-   r.   r   r   )r   rO   )rf   r   r   rj   )r   rj   )r<   r   rY   rG   r   r   )r-   r.   r   rŠ   )(Ú
__future__r   ÚcollectionsÚ
contextlibÚ	functoolsrR   rp   rŽ   rr   Útypingr   r   r   r   Ú_elffiler	   r
   r   r   r%   r&   r'   Úcontextmanagerr   r)   r,   rA   ÚdefaultdictrE   rN   rG   rZ   rg   ri   rw   Ú	lru_cachery   r†   r“   rž   r:   r?   r   ú<module>r¨      s*  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <à 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8à€Ø€Ø"Ð ð
 Ôðð ð ñ Ôðð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð8ð 8ð 8ð 8ð, %< KÔ$;¸J¸JÑ$GÔ$GÐ Ð GÐ GÐ GÑ Gðð ð ð ð �Jñ ô ð ð
ð ð ð ð&)ð )ð )ð )ðXMð Mð Mð Mð
8ð 8ð 8ð 8ð( Ôð-ð -ð -ñ Ôð-ðð ð ð ð8 ààðð Ð ð-5ð -5ð -5ð -5ð -5ð -5r?   