a XC?h��@s�ddlZdd�Zdd�Zdd�Zdd �Zd d �Zd Zd d�Zdd�Zdd�Z dd�Z dd�Z dd�Z dd�Z Gdd�dej�ZGdd�dej�ZGdd �d ej�ZGd!d"�d"eej�ZGd#d$�d$eej�Zd%d&�ZdS)'�NcCsPt�}t�}|D]*}t|�dkr0|�t|��q|�|�qt|�}t|�|fS)N�)� bytearray�set�ord�append�add�sorted�bytes)�str�base�extended�c�r�7/opt/alt/python39/lib64/python3.9/encodings/punycode.py� segregate s  rcCs&d}|D]}t|�|kr|d7}q|S)Nr�)r)r �max�resr rrr� selective_lens   rcCsNt|�}|d7}||krdS||}||kr8|d|fS||kr|d7}qdS)Nr)�����r)�len)r �char�index�pos�lr rrr�selective_finds rc Cs�d}g}d}|D]r}d}}t|�}t||�} | d||} t||||�\}}|dkrZq~| ||7} |�| d�|}d} q>|}q|S)Nrrrr)rrrr) r r Zoldchar�resultZoldindexr rrrZcurlen�deltarrr�insertion_unsort0s"  rcCs,d|d|}|dkrdS|dkr(dS|S)N�$r�r)�j�biasrrrr�TFs  r#s$abcdefghijklmnopqrstuvwxyz0123456789cCsnt�}d}t||�}||kr2|�t|�t|�S|�t|||d|�||d|}|d7}q dS)Nrrr)rr#r�digitsr )�Nr"rr!�trrr�generate_generalized_integerNs r'cCsX|r|d}n|d}|||7}d}|dkr@|d}|d7}q&|d||d}|S)Ni��ri��#r�&r)r�first�numcharsZ divisionsr"rrr�adapt[s   r-cCsPt�}d}t|�D]4\}}t||�}|�|�t||dk||d�}qt|�S)N�Hrr)r� enumerater'�extendr-r )Zbaselen�deltasrr"Zpointsr�srrr�generate_integersjs  r3cCs8t|�\}}t||�}tt|�|�}|r4|d|S|S)N�-)rrr3r)�textr r r1rrr�punycode_encodeus    r6c Cs�d}d}d}zt||�}Wn.tyJ|dkr:td��|ddfYS0|d7}d|krhdkrvnn |d}nHd|kr�dkr�nn |d }n&|dkr�td ||d��n|dfSt||�} |||7}|| kr�||fS|d | }|d7}q dS) Nrr�strictzincomplete punicode string�A�Z�0�9�z Invalid extended code point '%s'r)r� IndexError� UnicodeErrorr#) r �extposr"�errorsr�wr!rZdigitr&rrr�decode_generalized_numbers2    �   rBc Cs�d}d}d}d}|t|�kr�t||||�\}}|dur:|S||d7}||t|�d7}|dkr~|dkrvtd|��td �}|t|�d}|d|�t|�||d�}t||dkt|��}|}q|S) Nrrr.rri��r7zInvalid character U+%x�?)rrBr>r�chrr-) r r r@rrr"r?Znewposrrrr�insertion_sort�s* �   rEcCs�t|t�r|�d�}t|t�r&t|�}|�d�}|dkrLd}t|d���}n.t|d|�d|�}t||dd�d���}t|||�S)N�asciir4r�r)� isinstancer �encode� memoryviewr �rfind�upperrE)r5r@rr r rrr�punycode_decode�s    rMc@s eZdZddd�Zddd�ZdS) �Codecr7cCst|�}|t|�fS�N)r6r��self�inputr@rrrrrI�sz Codec.encodecCs*|dvrtd|��t||�}|t|�fS�N)r7�replace�ignorezUnsupported error handling )r>rMrrPrrr�decode�s  z Codec.decodeN)r7)r7)�__name__� __module__� __qualname__rIrVrrrrrN�s rNc@seZdZddd�ZdS)�IncrementalEncoderFcCst|�SrO)r6�rQrR�finalrrrrI�szIncrementalEncoder.encodeN)F)rWrXrYrIrrrrrZ�srZc@seZdZddd�ZdS)�IncrementalDecoderFcCs$|jdvrtd|j��t||j�SrS)r@r>rMr[rrrrV�s zIncrementalDecoder.decodeN)F)rWrXrYrVrrrrr]�sr]c@s eZdZdS)� StreamWriterN�rWrXrYrrrrr^�sr^c@s eZdZdS)� StreamReaderNr_rrrrr`�sr`c Cs tjdt�jt�jttttd�S)NZpunycode)�namerIrV�incrementalencoder�incrementaldecoder� streamwriter� streamreader) �codecs� CodecInforNrIrVrZr]r^r`rrrr� getregentry�s�rh)rfrrrrr#r$r'r-r3r6rBrErMrNrZr]r^r`rhrrrr�s&