o
    tvXjã  ã                   @   s    d dl mZmZmZmZmZ ddlZddlZe d¡Z	G dd„ dej
ƒZ
G dd„ dejƒZG d	d
„ d
ejƒZG dd„ de
ejƒZG dd„ de
ejƒZdd„ ZdS )é   )ÚencodeÚdecodeÚalabelÚulabelÚ	IDNAErroré    Nu   [.ã€‚ï¼Žï½¡]c                   @   s    e Zd Zddd„Zddd„ZdS )ÚCodecÚstrictc                 C   ó.   |dkrt d |¡ƒ‚|sdS t|ƒt|ƒfS ©Nr	   ú Unsupported error handling "{0}"©Ú r   )r   Úformatr   Úlen©ÚselfÚdataÚerrors© r   úG/var/www/html/myproject/venv/lib/python3.10/site-packages/idna/codec.pyr   	   ó
   zCodec.encodec                 C   r
   r   )r   r   r   r   r   r   r   r   r      r   zCodec.decodeN)r	   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s    

r   c                   @   ó   e Zd Zdd„ ZdS )ÚIncrementalEncoderc           	      C   s°   |dkrt d |¡ƒ‚|sdS t |¡}d}|r+|d s"d}|d= n	|s+|d= |r+d}g }d}|D ]}| t|ƒ¡ |r@|d7 }|t|ƒ7 }q1d |¡| }|t|ƒ7 }||fS )	Nr	   r   r   r   éÿÿÿÿÚ.r   r   )r   r   Ú_unicode_dots_reÚsplitÚappendr   r   Újoin©	r   r   r   ÚfinalÚlabelsÚtrailing_dotÚresultÚsizeÚlabelr   r   r   Ú_buffer_encode   s0   
z!IncrementalEncoder._buffer_encodeN)r   r   r   r*   r   r   r   r   r      ó    r   c                   @   r   )ÚIncrementalDecoderc           	      C   sØ   |dkrt d |¡ƒ‚|sdS t|tƒrt |¡}nt|ƒ}t|dƒ | d¡}d}|r?|d s6d}|d= n	|s?|d= |r?d}g }d}|D ]}| t|ƒ¡ |rT|d	7 }|t	|ƒ7 }qEd 
|¡| }|t	|ƒ7 }||fS )
Nr	   r   r   Úasciir   r   r   r   r   )r   r   Ú
isinstanceÚunicoder   r    Ústrr!   r   r   r"   r#   r   r   r   Ú_buffer_decode?   s8   


z!IncrementalDecoder._buffer_decodeN)r   r   r   r1   r   r   r   r   r,   >   r+   r,   c                   @   ó   e Zd ZdS )ÚStreamWriterN©r   r   r   r   r   r   r   r3   g   ó    r3   c                   @   r2   )ÚStreamReaderNr4   r   r   r   r   r6   j   r5   r6   c                	   C   s    t jdtƒ jtƒ jttttd�S )NÚidna)Únamer   r   ÚincrementalencoderÚincrementaldecoderÚstreamwriterÚstreamreader)	ÚcodecsÚ	CodecInfor   r   r   r   r,   r3   r6   r   r   r   r   Úgetregentrym   s   ùr?   )Úcorer   r   r   r   r   r=   ÚreÚcompiler   r   ÚBufferedIncrementalEncoderr   ÚBufferedIncrementalDecoderr,   r3   r6   r?   r   r   r   r   Ú<module>   s    
!)