�
�f���$� ddlZd�Zd�Zd�Zd�Zd�ZdZd�Zd �Zd
�Z d�Z
d�Zd
�Zd�Z
Gd�dej��ZGd�dej��ZGd�dej��ZGd�deej��ZGd�deej��Zd�ZdS)�Nc�� t��}t��}|D]M}t|��dkr#|�t|�����8|�|���Nt|��}t
|��|fS)N�)� bytearray�set�ord�append�add�sorted�bytes)�str�base�extended�cs �9/opt/alt/python311/lib64/python3.11/encodings/punycode.py� segregater
s��*��;�;�D��u�u�H�
�����q�6�6�C�<�<��K�K��A��������L�L��O�O�O�O��h���H���;�;�� � �c�F� d}|D]}t|��|kr|dz
}�|S)Nr�)r)r�max�resrs r�
selective_lenrs7��J�
�C�
�����q�6�6�C�<�<��1�H�C���Jrc�� t|��} |dz
}||krdS||}||kr|dz|fS||kr|dz
}�.)Nr)���r)�len)r�char�index�pos�lrs r�selective_findrsg��� �C���A���q����!�8�8��8���H����9�9���7�C�<��
��X�X��Q�J�E�rc�� d}g}d}|D]t}dx}}t|��}t||��} | dz||z
z}
t||||��\}}|dkrn%|
||z
z
}
|�|
dz
��|}d}
�A|}�u|S)Nrrrr)rrrr)rr�oldchar�result�oldindexrrrr�curlen�deltas r�insertion_unsortr&0s���%��G�
�F��H�
�
�
�������1�v�v���s�D�)�)�����d�W�n�-�� �&�s�1�U�3�7�7�I�E�#���{�{���U�X�%�%�E��M�M�%��'�"�"�"��H��E� �����Mrc�<�d|dzz|z
}|dkrdS|dkrdS|S)N�$r��)�j�biasrs r�Tr-Fs3��
��A��,��
�C�
�Q�w�w�q�q�
�R�x�x����Jrs$abcdefghijklmnopqrstuvwxyz0123456789c�*� t��}d} t||��}||kr/|�t|��t |��S|�t|||z
d|z
zz��||z
d|z
z}|dz
}��)Nrrr()rr-r�digitsr)�Nr,r"r+�ts r�generate_generalized_integerr2Ns���2�
�[�[�F� �A��
�a��J�J���q�5�5��M�M�&��)�$�$�$���=�=� ��
�
�f�Q�1�q�5�R�!�V�"4�5�6�7�7�7�
��U��Q���� �Q���rc�|�|r|dz}n|dz}|||zz
}d}|dkr|dz}|dz
}|dk�|d|z|dzzz}|S)Ni��ri��#r(�&r*)r%�first�numchars� divisionsr,s r�adaptr:[sv����
�#�
���
�!��� �U�h�
��E��I�
�#�+�+������R�� ��#�+�+���U�
�u�r�z�2�3�D��Krc��� t��}d}t|��D]E\}}t||��}|�|��t ||dk||zdz��}�Ft|��S)N�Hrr)r� enumerater2�extendr:r)�baselen�deltasr"r,�pointsr%�ss r�generate_integersrCjs{���
�[�[�F�
�D�"�6�*�*�9�9�
���(���5�5���
�
�a�����U�F�A�I�w�v�~�a�'7�8�8�����=�=�rc��t|��\}}t||��}tt|��|��}|r|dz|zS|S)N�-)rr&rCr)�textr
rr@s r�punycode_encoderGusQ���t�_�_�N�D�(�
�d�H�
-�
-�F� ��T���F�3�3�H��&��d�{�X�%�%��Orc�� d}d}d} t||��}n,#t$r|dkrtd���|dzdfcYSwxYw|dz
}d|cxkrdkr nn|dz
}n;d|cxkrdkr nn|d z
}n%|dkrtd
||dz
z���|dfSt||��} |||zz
}|| kr||fS|d| z
z}|dz
}��)Nrr�strictzincomplete punicode string�A�Z�0�9�z Invalid extended code point '%s'r()r�
IndexError�UnicodeErrorr-)
r�extposr,�errorsr"�wr+r�digitr1s
r�decode_generalized_numberrUsg��2�
�F� �A� �A�� $��x��'�(�(�D�D��� $� $� $���!�!�"�#?�@�@�@��A�:�t�#�#�#�#� $���� �!����4�����4�������4�K�E�E�
�T�
!�
!�
!�
!�T�
!�
!�
!�
!�
!��2�I�E�E�
�x�
�
��A�!)�&��(�!3� 4�5�5�
5��4�<��
�a��J�J���%�!�)����1�9�9��6�>�!�
��a��L�� �Q���-s� �&A �A c��� d}d}d}d}|t|��kr�t||||��\}}|�|S||dzz
}||t|��dzzz
}|dkr'|dkrtd|z���td ��}|t|��dzz}|d|�t |��z||d�z}t||dkt|����}|}|t|��k��|S)
Nrrr<rri��rIzInvalid character U+%x�?)rrUrPr�chrr:) r
rrRrrr,rQ�newposr%s r�insertion_sortrZ�s ��%��D�
�C�
�D�
�F�
�3�x�=�=�
�
�1�(�F�26��@�@�
����=��K��u�Q�w������D� � �A�
�&�&���(�?�?���!�!�"�#;�d�#B�C�C�C��s�8�8�D��S��Y�Y��]�#���D�S�D�z�C��I�I�%��S�T�T�
�2���U�V�q�[�3�t�9�9�5�5����!�3�x�=�=�
�
�"�Krc���t|t��r|�d��}t|t��rt |��}|�d��}|dkr%d}t|d�����}nFt|d|�d|��}t||dzd�d�����}t|||��S)N�asciirEr�r)�
isinstancer�encode�
memoryviewr�rfind�upperrZ)rFrRrr
rs r�punycode_decoderc�s����$����$��{�{�7�#�#���$�
�#�#���T�{�{��
�*�*�T�
�
�C�
�b�y�y����t�W�%�%�+�+�-�-����4����:�w��/�/���t�C��E�F�F�|�W�-�-�3�3�5�5���$��&�1�1�1rc��eZdZdd�Zdd�ZdS)�CodecrIc�B�t|��}|t|��fS�N)rGr��self�inputrRrs rr_zCodec.encode�s���e�$�$���C��J�J��rc�p�|dvrtd|z���t||��}|t|��fS�N)rI�replace�ignorezUnsupported error handling )rPrcrrhs r�decodezCodec.decode�sA���8�8�8��<�V�C�D�D�D��e�V�,�,���C��J�J��rN)rI)�__name__�
__module__�__qualname__r_ror*rrrere�s<���������������rrec��eZdZdd�ZdS)�IncrementalEncoderFc� �t|��Srg)rG�rirj�finals rr_zIncrementalEncoder.encode�s���u�%�%�%rN�F)rprqrrr_r*rrrtrt�s(������&�&�&�&�&�&rrtc��eZdZdd�ZdS)�IncrementalDecoderFc�l�|jdvrtd|jz���t||j��Srl)rRrPrcrvs rrozIncrementalDecoder.decode�s8���;�=�=�=��<�T�[�H�I�I�I��u�d�k�2�2�2rNrx)rprqrrror*rrrzrz�s(������3�3�3�3�3�3rrzc��eZdZdS)�StreamWriterN�rprqrrr*rrr}r}���������Drr}c��eZdZdS)�StreamReaderNr~r*rrr�r��rrr�c ��tjdt��jt��jt
ttt���S)N�punycode)�namer_ro�incrementalencoder�incrementaldecoder�streamwriter�streamreader) �codecs� CodecInforer_rortrzr}r�r*rr�getregentryr��s=����
��w�w�~��w�w�~�-�-�!�!����r)r�rrrr&r-r/r2r:rCrGrUrZrcrertrzr}r�r�r*rr�<module>r�s����
�
�
�
�
!�
!�
!�������$���,���
1�������� � � �������<���22�2�2�
�
�
�
�
�F�L�
�
�
�&�&�&�&�&��2�&�&�&�3�3�3�3�3��2�3�3�3� � � � � �5��,� � � � � � � � �5��,� � � �
� � � � r |