403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/wheel/vendored/packaging/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/wheel/vendored/packaging/__pycache__/_musllinux.cpython-311.pyc
�

�lc�
�<�dZddlmZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZm
Z
mZd&d�Zd'd
�ZGd�de��Zd(d�Zej��d)d���Zd*d�Zedkr�ddlZej��Ze�d��s
Jd���ede��edee
j����edd���eejd d!e�d"d#��d$����D]Zeed%����dSdS)+z�PEP 656 support.

This module implements logic to detect if the currently running Python is
linked against musl, and what musl version is used.
�)�annotationsN)�IO�Iterator�
NamedTuple�f�	IO[bytes]�fmt�str�return�tuple[int, ...]c�v�tj||�tj|������S�N)�struct�unpack�read�calcsize)rr	s  �E/usr/lib/python3/dist-packages/wheel/vendored/packaging/_musllinux.py�_read_unpackedrs*���=��a�f�f�V�_�S�%9�%9�:�:�;�;�;��
str | Nonec�b�|�d��	t|d��}n#tj$rYdSwxYw|dd�t	d��krdS|�tjd��d��	dd	d
�|d\}}}t
j|�}n#t$rYdSwxYw	t||��\}}}}}}}	n#tj$rYdSwxYwt|	dz��D]�}
|�|||
zz��	|t||����\}}}
n#tj$rYdSwxYw|dkr�Z|�|��tj|�|
�����
d��}d
|vrdS|cSdS)z�Detect musl libc location by parsing the Python executable.

    Based on: https://gist.github.com/lyssdod/f51579ae8d93c8657a5564aefc2ffbca
    ELF header: https://refspecs.linuxfoundation.org/elf/gabi4+/ch4.eheader.html
    r�16BN�sELF�HHI�)�IIIIHHH�IIIIIIII)rrr)�QQQIHHH�IIQQQQQQ)r��)rr ���musl)�seekrr�error�tupler�operator�
itemgetter�KeyError�range�os�fsdecoder�strip)r�ident�e_fmt�p_fmt�p_idx�p_get�_�e_phoff�e_phentsize�e_phnum�i�p_type�p_offset�p_filesz�interpreters               r�_parse_ld_musl_from_elfr=s$���F�F�1�I�I�I���q�%�(�(�����<�����t�t������R�a�R�y�E�*�%�%�%�%��t��F�F�6�?�5�!�!�1�%�%�%�,�
2�1�
�
���(����u�e��#�U�+���������t�t������4B�1�e�4L�4L�1��7�A�q�!�[�'�'���<�����t�t�����
�7�Q�;�
�
����	���w��q��(�)�)�)�	�).��~�a��/G�/G�)H�)H�&�F�H�h�h���|�	�	�	��4�4�4�	�����Q�;�;��	���x�����k�!�&�&��"2�"2�3�3�9�9�$�?�?����$�$��4�4������4sB�(�;�;�B(�(
B6�5B6�:C�C&�%C&�D7�7E�
Ec�$�eZdZUded<ded<dS)�_MuslVersion�int�major�minorN)�__name__�
__module__�__qualname__�__annotations__�rrr?r?Is"��������J�J�J��J�J�J�J�Jrr?�output�_MuslVersion | Nonec��d�d�|���D��D��}t|��dks|ddd�dkrdStjd|d��}|sdSt	t|�d����t|�d�����	��S)
Nc��g|]}|�|��SrGrG��.0�ns  r�
<listcomp>z'_parse_musl_version.<locals>.<listcomp>Os��F�F�F�1�A�F�Q�F�F�Frc3�>K�|]}|���V��dSr)r.rLs  r�	<genexpr>z&_parse_musl_version.<locals>.<genexpr>Os*����@�@�q������@�@�@�@�@�@rr rrr$zVersion (\d+)\.(\d+)r)rArB)�
splitlines�len�re�matchr?r@�group)rH�lines�ms   r�_parse_musl_versionrYNs���F�F�@�@�F�,=�,=�,?�,?�@�@�@�F�F�F�E�
�5�z�z�A�~�~��q��"�1�"���/�/��t�
��(�%��(�3�3�A����t��c�!�'�'�!�*�*�o�o�S�������_�_�E�E�E�Er�
executablec�l�tj��5}	|�t|d����}n#t$rYddd��dSwxYwt|��}ddd��n#1swxYwY|sdSt
j|gtjd���}t|j
��S)a`Detect currently-running musl runtime version.

    This is done by checking the specified executable's dynamic linking
    information, and invoking the loader to parse its output for a version
    string. If the loader is musl, the output would be something like::

        musl libc (x86_64)
        Version 1.2.2
        Dynamic Program Loader
    �rbNT)�stderr�text)�
contextlib�	ExitStack�
enter_context�open�OSErrorr=�
subprocess�run�PIPErYr])rZ�stackr�ld�procs     r�_get_musl_versionrjXs��
�	�	�	�(�5�	��#�#�D��T�$:�$:�;�;�A�A���	�	�	��	(�(�(�(�(�(�(�(�	����
$�Q�
'�
'��(�(�(�(�(�(�(�(�(�(�(����(�(�(�(����t��>�2�$�z��T�B�B�B�D��t�{�+�+�+s1�A1�#:�A1�
A�A1�A�A1�1A5�8A5�arch�
Iterator[str]c#�K�ttj��}|�dSt|jdd��D]}d|j�d|�d|��V��dS)aTGenerate musllinux tags compatible to the current platform.

    :param arch: Should 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 musllinux-compatible.

    :returns: An iterator of compatible musllinux tags.
    N����
musllinux_r4)rj�sysrZr+rBrA)rk�sys_muslrBs   r�
platform_tagsrrpsr����!���0�0�H������x�~�r�2�.�.�;�;��:�8�>�:�:�E�:�:�D�:�:�:�:�:�:�;�;r�__main__zlinux-z	not linuxzplat:zmusl:ztags:� )�endz[.-]r4�-rrnz
      )rrr	r
rr)rrrr)rHr
rrI)rZr
rrI)rkr
rrl) �__doc__�
__future__rr_�	functoolsr(r,rTrrdrp�typingrrrrr=r?rY�	lru_cacherjrrrC�	sysconfig�get_platform�plat�
startswith�printrZ�sub�split�trGrr�<module>r�s3����#�"�"�"�"�"�������������	�	�	�	�	�	�	�	�
�
�
�
�����
�
�
�
�+�+�+�+�+�+�+�+�+�+�<�<�<�<�.�.�.�.�b�����:����
F�F�F�F������,�,�,���,�.
;�
;�
;�
;� �z�������!�9�!�#�#�D��?�?�8�$�$�1�1�k�1�1�1�	�E�'�4����	�E�'�$�$�S�^�4�4�5�5�5�	�E�'�s�����
�]�6�2�6�'�3��
�
�3��0B�0B�2�0F�G�G�
H�
H�!�!��
��a�Z� � � � � ���!�!r

Youez - 2016 - github.com/yon3zu
LinuXploit