
    z%i                     6   	 d dl Z d Zd Zd Zd Zd ZdZd Zd	 Zd
 Z	d Z
d Zd Zd Z G d de j                        Z G d de j                        Z G d de j                         Z G d dee j"                        Z G d dee j$                        Zd Zy)    Nc                     	 t               }t               }| D ]<  }t        |      dk  r|j                  t        |             ,|j	                  |       > t        |      }t        |      |fS )N   )	bytearraysetordappendaddsortedbytes)strbaseextendedcs       F/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/encodings/punycode.py	segregater   
   sc    *;DuH q6C<KKALLO	
 hH;      c                 B    	 d}| D ]  }t        |      |k  s|dz  } |S )Nr      )r   )r   maxresr   s       r   selective_lenr      s4    J
C q6C<1HC Jr   c                 j    	 t        |       }	 |dz  }||k(  ry| |   }||k(  r|dz   |fS ||k  r|dz  }')Nr   )r   )len)r   charindexposlr   s         r   selective_findr      s[     	CA
q!8H97C<XQJE r   c                     	 d}g }d}|D ]c  }dx}}t        |      }t        | |      }	|	dz   ||z
  z  }
	 t        | |||      \  }}|dk(  rn!|
||z
  z  }
|j                  |
dz
         |}d}
8|}e |S )Nr   r   r   r   )r   r   r   r   )r   r   oldcharresultoldindexr   r   r   r   curlendeltas              r   insertion_unsortr&   0   s    %GFH 1vsD)dWn-&s1U37IE#{UX%%EMM%'"HE   Mr   c                 4    d| dz   z  |z
  }|dk  ry|dkD  ry|S )N$   r       )jbiasr   s      r   Tr-   F   s+    
A,
C
Qwq
RxJr   s$   abcdefghijklmnopqrstuvwxyz0123456789c                     	 t               }d}	 t        ||      }| |k  r#|j                  t        |           t	        |      S |j                  t        || |z
  d|z
  z  z             | |z
  d|z
  z  } |dz  }i)Nr   r   r(   )r   r-   r   digitsr   )Nr,   r"   r+   ts        r   generate_generalized_integerr2   N   s    2[F	A
aJq5MM&)$= fQ1q5R!V"4567UQ	Q r   c                 z    |r| dz  } n| dz  } | | |z  z  } d}| dkD  r| dz  } |dz  }| dkD  r|d| z  | dz   z  z   }|S )Ni     r   i  #   r(   &   r*   )r%   firstnumchars	divisionsr,   s        r   adaptr:   [   sk    #!	UhEI
#+R	 #+ U
urz23DKr   c                     	 t               }d}t        |      D ]8  \  }}t        ||      }|j                  |       t	        ||dk(  | |z   dz         }: t        |      S )NH   r   r   )r   	enumerater2   extendr:   r   )baselendeltasr"   r,   pointsr%   ss          r   generate_integersrC   j   sh    [FD"6* 9(5aUFAIwv~a'789 =r   c                 x    t        |       \  }}t        | |      }t        t        |      |      }|r|dz   |z   S |S )N   -)r   r&   rC   r   )textr   r   r@   s       r   punycode_encoderG   u   sB    t_ND(dH-F TF3Hd{X%%Or   c                 f   	 d}d}d}	 	 t        | |         }|dz  }d|cxk  rdk  r	n n|dz
  }n1d|cxk  rdk  r	n n|d	z
  }n|dk(  rt        d
| |dz
     z        |d fS t        ||      }	|||z  z  }||	k  r||fS |d|	z
  z  }|dz  }# t        $ r |dk(  rt        d      |dz   d fcY S w xY w)Nr   r   strictzincomplete punicode stringA   Z   0   9      z Invalid extended code point '%s'r(   )r   
IndexErrorUnicodeErrorr-   )
r   extposr,   errorsr"   wr+   r   digitr1   s
             r   decode_generalized_numberrU      s   2F	A	A
	$x'(D
 	!444KET!T!2IExA!)&(!3 4 5 5 4<aJ%!)196>!aL	Q-   	$!"#?@@A:t##	$s   B  B0/B0c                    	 d}d}d}d}|t        |      k  rt        ||||      \  }}|| S ||dz   z  }||t        |       dz   z  z  }|dkD  r|dk(  rt        d|z        t        d	      }|t        |       dz   z  }| d | t	        |      z   | |d  z   } t        ||dk(  t        |             }|}|t        |      k  r| S )
Nr   r   r<   r   r   i rI   zInvalid character U+%x?)r   rU   rP   r   chrr:   )	r   r   rR   r   r   r,   rQ   newposr%   s	            r   insertion_sortrZ      s    %D
CDF
3x=
 1(F26@= KuQwD	A&&(?!"#;d#BCCs8DSY]#DSzCI%ST
2UVq[3t95! 3x=
 " Kr   c                 Z   t        | t              r| j                  d      } t        | t              rt	        |       } | j                  d      }|dk(  rd}t        | d      j                         }n0t        | d | d|      }t        | |dz   d  d      j                         }t        |||      S )NasciirE   r    r   )
isinstancer   encode
memoryviewr   rfindupperrZ   )rF   rR   r   r   r   s        r   punycode_decoderc      s    ${{7#$
#T{
**T
C
bytW%++-4:w/tCEF|W-335$&11r   c                       e Zd ZddZddZy)Codecc                 2    t        |      }|t        |      fS N)rG   r   selfinputrR   r   s       r   r_   zCodec.encode   s    e$CJr   c                 X    |dvrt        d|z         t        ||      }|t        |      fS N)rI   replaceignorezUnsupported error handling )rP   rc   r   rh   s       r   decodezCodec.decode   s6    88<VCDDeV,CJr   N)rI   )__name__
__module____qualname__r_   ro   r*   r   r   re   re      s    r   re   c                       e Zd ZddZy)IncrementalEncoderc                     t        |      S rg   )rG   ri   rj   finals      r   r_   zIncrementalEncoder.encode   s    u%%r   NF)rp   rq   rr   r_   r*   r   r   rt   rt      s    &r   rt   c                       e Zd ZddZy)IncrementalDecoderc                 z    | j                   dvrt        d| j                   z         t        || j                         S rl   )rR   rP   rc   rv   s      r   ro   zIncrementalDecoder.decode   s5    ;;==<T[[HIIudkk22r   Nrx   )rp   rq   rr   ro   r*   r   r   rz   rz      s    3r   rz   c                       e Zd Zy)StreamWriterNrp   rq   rr   r*   r   r   r}   r}          r   r}   c                       e Zd Zy)StreamReaderNr~   r*   r   r   r   r      r   r   r   c            	          t        j                  dt               j                  t               j                  t
        t        t        t              S )Npunycode)namer_   ro   incrementalencoderincrementaldecoderstreamwriterstreamreader)	codecs	CodecInfore   r_   ro   rt   rz   r}   r   r*   r   r   getregentryr      s6    w~~w~~--!! r   )r   r   r   r   r&   r-   r/   r2   r:   rC   rG   rU   rZ   rc   re   rt   rz   r}   r   r   r*   r   r   <module>r      s   
 
!$, 
1	<22 
FLL 
&22 &322 3	5,, 		5,, 	
	r   