� L�g6%��^�UddlZddlZddlZddlZddlZddlZddlZddlmZm Z m Z m Z m Z m Z mZddlmZmZmZmZdZdZdZejded e e eddffd ���Zd ed efd �Zd ed efd �Zd ede ed efd�Zejd���Zee e fe!d<Gd�de ��Z"d e efd�Z#d e efd�Z$d e efd�Z%ded ee e ffd�Z&ej'��d ee e ffd���Z(dede"d efd�Z)dddd �Z*de ed e efd!�Z+dS)"�N)�Dict� Generator�Iterator� NamedTuple�Optional�Sequence�Tuple�)�EIClass�EIData�ELFFile�EMachinel~ii�path�returnc#��K� t|d��5}t|��V�ddd��dS#1swxYwYdS#tttf$rdV�YdSwxYw)N�rb)�openr �OSError� TypeError� ValueError)r�fs �d/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/packaging/_manylinux.py� _parse_elfrs������ �$�� � � ���!�*�*� � � � � � � � � � � � � � � ���� � � � � � �� �Y� � +����� � � � � � ����s,�A�3� A�7�A�7�A�A�A� executablec�<�t|��5}|duon|jtjkoY|jt jkoD|jtj ko/|j tztko|j tztk cddd��S#1swxYwYdS�N)r�capacityr �C32�encodingr �Lsb�machiner�Arm�flags�EF_ARM_ABIMASK�EF_ARM_ABI_VER5�EF_ARM_ABI_FLOAT_HARD�rrs 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�Bc���t|��5}|duo>|jtjko)|jt jko|jtj k cddd��S#1swxYwYdSr) rrr rrr r r!r�I386r's r�_is_linux_i686r++s��� �J� � � �1� �T�M� +�� �g�k�)� +�� �f�j�(� +�� �X�]�*�  � � � � � � � � � � � � ���� � � � � � s�AA!�!A%�(A%�archsc���d|vrt|��Sd|vrt|��Shd��t�fd�|D����S)N�armv7l�i686>�ppc64�s390x�x86_64�aarch64�ppc64le� loongarch64c3� �K�|]}|�vV�� dSr�)�.0�arch� allowed_archss �r� <genexpr>z'_have_compatible_abi.<locals>.<genexpr>;s(�����7�7��t�}�$�7�7�7�7�7�7�)r(r+�any)rr,r:s @r�_have_compatible_abir>5sa����5����z�*�*�*� �����j�)�)�)�U�U�U�M� �7�7�7�7��7�7�7� 7� 7�7r<c��dS)N�2r7r7r<r�<lambda>rACs��B�r<�_LAST_GLIBC_MINORc�$�eZdZUeed<eed<dS)� _GLibCVersion�major�minorN)�__name__� __module__� __qualname__�int�__annotations__r7r<rrDrDFs"������� �J�J�J� �J�J�J�J�Jr<rDc��� ttd��d��}|�J�|���\}}n$#ttt t f$rYdSwxYw|S)zJ Primary implementation of glibc_version_string using os.confstr. �confstr�CS_GNU_LIBC_VERSIONN)�getattr�os�rsplit�AssertionError�AttributeErrorrr)�version_string�_�versions r�_glibc_version_string_confstrrWKsv���4�g�b�)�4�4�5J�K�K���)�)�)�#�*�*�,�,� ��7�7�� �N�G�Z� @�����t�t����� �Ns�9<�A�Ac�8� ddl}n#t$rYdSwxYw |�d��}n#t$rYdSwxYw |j}n#t $rYdSwxYw|j|_|��}t|t��s|� d��}|S)zG Fallback implementation of glibc_version_string using ctypes. rN�ascii) �ctypes� ImportError�CDLLr�gnu_get_libc_versionrS�c_char_p�restype� isinstance�str�decode)rZ�process_namespacer]� version_strs r�_glibc_version_string_ctypesre^s����� � � � �� �����t�t����� �"�K�K��-�-���� �����t�t������0�E���� �����t�t����� $*�?�� �+�+�-�-�K� �k�3� '� '�2�!�(�(��1�1� � �s*�� ��/� =�=�A � A�Ac�:�t��p t��S)z9Returns glibc version string, or None if not using glibc.)rWrer7r<r�_glibc_version_stringrg�s�� (� *� *� L�.J�.L�.L�Lr<rdc���tjd|��}|stjd|��t��dSt |�d����t |�d����fS)a3Parse 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: ������rjrErF)�re�match�warnings�warn�RuntimeWarningrJ�group)rd�ms r�_parse_glibc_versionrr�s��� ��8�+�F�F�A� ��� � #� � #� #� � � � � �v� �q�w�w�w��� � �#�a�g�g�g�&6�&6�"7�"7� 7�7r<c�D�t��}|�dSt|��S)Nri)rgrr)rds r�_get_glibc_versionrt�s&��'�)�)�K����x� � � ,� ,�,r<r9rVc�<�t��}||krdS ddl}n#t$rYdSwxYwt|d��r6|�|d|d|��}|�t |��SdS|t dd��kr$t|d��rt |j��S|t dd ��kr$t|d ��rt |j��S|t dd ��kr$t|d ��rt |j ��SdS) NFrT�manylinux_compatibler ���manylinux1_compatible� �manylinux2010_compatible��manylinux2014_compatible) rt� _manylinuxr[�hasattrrv�boolrDryr{r})r9rV� 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))rwr|)rwrz)rwrxc#�K�ttj|��sdStdd��}t |��ddhzrtdd��}tt ���}|g}t |jdz dd��D]2}t|}|� t||�����3|D]�}|D]�}|j|jkr|j }nd}t |j |d��D]i}t|j|��} d j | �} t|| ��r | �d |��V�| tvr&t| } t|| ��r | �d |��V��j����dS) 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. Nrw�r2r/�r rjzmanylinux_{}_{}rU)r>�sysrrD�setrt�rangerErB�appendrF�formatr��_LEGACY_MANYLINUX_MAP) r,�too_old_glibc2� current_glibc�glibc_max_list� glibc_major� glibc_minorr9� 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<),� collections� contextlib� functoolsrPrkr�rm�typingrrrrrrr �_elffiler r r rr$r%r&�contextmanagerrarr�r(r+r>� defaultdictrBrJrKrDrWrergrr� lru_cachertr�r�r�r7r<r�<module>r�s���������������� � � � � � � � � � � � �����S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�8�8�8�8�8�8�8�8�8�8�8�8�����"��  ���S��Y�x��'8�$��'D�E�������  ��  ��  �  �  �  � �s� �t� � � � �8�S�8��#��8�4�8�8�8�8�%<�K�$;�J�J�$G�$G��4��S��>�G�G�G������J���� �x��}�����&)�h�s�m�)�)�)�)�XM�x��}�M�M�M�M� 8�c�8�e�C��H�o�8�8�8�8�&�����-�E�#�s�(�O�-�-�-���-����}�������8� � � ���-5��#��-5�8�C�=�-5�-5�-5�-5�-5�-5r<
Memory