o
    'h^                     @   s   d dl Z d dlZd dlmZmZmZ ddlmZmZm	Z	m
Z
m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edee j fddZe e dS )    N)AnyOptionalTuple   )	IDNAErroralabeldecodeencodeulabelu   [.。．｡]c                	   @   sL   e Zd Zd
dededeeef fddZd
dededeeef fddZd	S )Codecstrictdataerrorsreturnc                 C   .   |dkrt d||sdS t|t|fS )Nr   Unsupported error handling "{}"    r   )r   formatr	   lenselfr   r    r   F/var/www/html/olx_land/venv/lib/python3.10/site-packages/idna/codec.pyr	      
   zCodec.encodec                 C   r   )Nr   r    r   )r   r   r   r   r   r   r   r   r      r   zCodec.decodeN)r   )	__name__
__module____qualname__strr   bytesintr	   r   r   r   r   r   r   
   s     $	r   c                
   @   s.   e Zd Zdedededeeef fddZdS )IncrementalEncoderr   r   finalr   c           
      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   r$   labelstrailing_dotresultsizelabelresult_bytesr   r   r   _buffer_encode   s0   
z!IncrementalEncoder._buffer_encodeN)	r   r   r   r    boolr   r!   r"   r1   r   r   r   r   r#          &r#   c                
   @   s.   e Zd Zdedededeeef fddZdS )IncrementalDecoderr   r   r$   r   c           
      C   s   |dkrt d||sdS t|tst|d}t|}d}|r5|d s,d}|d= n	|s5|d= |r5d}g }d}|D ]}|t| |rJ|d	7 }|t|7 }q;d	|| }	|t|7 }|	|fS )
Nr   r   r   asciir   r%   .r   r   )
r   r   
isinstancer    r'   r(   r)   r
   r   r*   )
r   r   r   r$   r+   r,   r-   r.   r/   
result_strr   r   r   _buffer_decodeA   s4   


z!IncrementalDecoder._buffer_decodeN)	r   r   r   r   r    r2   r   r"   r9   r   r   r   r   r4   @   r3   r4   c                   @      e Zd ZdS )StreamWriterNr   r   r   r   r   r   r   r;   d       r;   c                   @   r:   )StreamReaderNr<   r   r   r   r   r>   h   r=   r>   namer   c              	   C   s,   | dkrd S t j| t jt jttttdS )Nidna2008)r?   r	   r   incrementalencoderincrementaldecoderstreamwriterstreamreader)	codecs	CodecInfor   r	   r   r#   r4   r;   r>   )r?   r   r   r   search_functionl   s   rG   )rE   retypingr   r   r   corer   r   r   r	   r
   compiler'   r   BufferedIncrementalEncoderr#   BufferedIncrementalDecoderr4   r;   r>   r    rF   rG   registerr   r   r   r   <module>   s    
"$