
    F\h3                     B   S SK r S SKrS SKrS SKJr  \R
                  " S5      rSrSrS r	S r
S r " S	 S
\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\\R"                  5      r " S S\\R$                  5      rS rg)    N)	ucd_3_2_0u   [.。．｡]s   xn--zxn--c           	         / nU  HE  n[         R                  " U5      (       a  M   UR                  [         R                  " U5      5        MG     SR	                  U5      n [
        R                  " SU 5      n [        U 5       GH  u  p2[         R                  " U5      (       d  [         R                  " U5      (       d  [         R                  " U5      (       d  [         R                  " U5      (       d  [         R                  " U5      (       dn  [         R                  " U5      (       dS  [         R                  " U5      (       d8  [         R                  " U5      (       d  [         R                   " U5      (       d  M  [#        SXUS-   SU< 35      e   U  Vs/ s H  n[         R$                  " U5      PM     nn['        U5      (       a  [        U 5       H1  u  p4[         R(                  " U5      (       d  M"  [#        SXUS-   S5      e   US   (       d  [#        SU SSS5      eUS	   (       d$  [#        SU [+        U 5      S-
  [+        U 5      S5      eU $ s  snf )
N NFKCidna   zInvalid character zViolation of BIDI requirement 2r   zViolation of BIDI requirement 3)
stringprepin_table_b1appendmap_table_b2joinunicodedata	normalize	enumeratein_table_c12in_table_c22in_table_c3in_table_c4in_table_c5in_table_c6in_table_c7in_table_c8in_table_c9UnicodeEncodeErrorin_table_d1anyin_table_d2len)labelnewlabelcixRandALs         %/usr/lib/python3.13/encodings/idna.pynameprepr'      s   H!!!$$
//23	 
 GGHE !!&%0E % ""1%%""1%%!!!$$!!!$$!!!$$!!!$$!!!$$!!!$$!!!$$$VUqs>PQRPU<VWW ! 277Aj$$Q'F7
6{{ e$DA%%a(((1Q3)JL L % ay$VUAq%FH Hbz$VUCJqL#e*%FH H L/ 8s    Ic                     U R                  S5      nS[        U5      s=:  a  S:  a   U$   [        U 5      S:X  a  [        SU SSS5      e[        SU S[        U 5      S5      e! [         a     Of = f[        U 5      n  U R                  S5      nS[        U 5      s=:  a  S:  a   U$   [        U 5      S:X  a  [        SU SSS5      e[        SU S[        U 5      S5      e! [         a     Of = fU R	                  5       R                  [        5      (       a  [        SU S[        [        5      S5      eU R                  S	5      n[        U-   n[        U5      S:  a  U$ [        SU S[        U 5      S5      e)
Nasciir   @   r   r   label emptylabel too longzLabel starts with ACE prefixpunycode)encoder   r   r'   lower
startswithsace_prefix
ace_prefix)r    label_asciis     r&   ToASCIIr4   B   s   Ull7+ s;$"$ %u:?$VUAq-HH$VUAs5zCSTT   UOEUll7+
 s5zB u:?$VUAq-HH$VUAs5zCSTT   {{},, E1c+.0NP 	P ,,z*K {*K ;"
VUAs5z;K
LLs#   A# #
A0/A0?C   
C-,C-c                 $   [        U 5      S:  a=  [        U [        5      (       a  U R                  SSS9n [	        SU S[        U 5      S5      e[        U [
        5      (       a  SnO U R                  S	5      n SnU(       d4  [        U [        5      (       d   e[        U 5      n  U R                  S	5      n [        U [
        5      (       d   eU R                  5       R                  [        5      (       d  [        U S	5      $ U [        [        5      S  n UR                  S5      n[        U5      n[        U S	5      R                  5       [        US	5      :w  a!  [	        SU S[        U 5      SU < SU< S35      eU$ ! [         a    S
n GNf = f! [         a'  n[        SXR                  UR                  S5      eS nAff = f! [         aE  n[        [        5      n[	        SXUR                  -   XRR                  -   UR                  5      eS nAff = f)Ni   zutf-8backslashreplaceerrorsr   r   zlabel way too longTr)   FzInvalid character in IDN labelr-   zIDNA does not round-trip, 'z' != '')r   
isinstancestrr.   UnicodeDecodeErrorbytesr   r'   startendr/   r0   r2   decodereasonr4   )r    
pure_asciiexclabel1resultoffsetlabel2s          r&   	ToUnicoderH   u   s   
5zD eS!!LL1CLDE 3u:?STT%
	LL)EJ %%%%%	GLL)E
 eU####;;=##J//5'"" 3z?#$F^z* V_F 5'  "c&'&:: 3u:#>uivfZWX!Y[ 	[ MK " 	J	 " 	G$VUIIsww%EG G	G  ^Z syy0@&.RUR\R\]]^sC   &E9 #F G  9F	F	
F="F88F= 
H
A H

Hc                   (    \ rS rSrSS jrSS jrSrg)Codec   c           
         US:w  a  [        SU 35      eU(       d  g UR                  S5      nUR                  S5      n[        US S 5       H=  u  pV[	        U5      S:X  d  M  [        S US U  5       5      U-   n[        S	XUS
-   S5      e   [        U5       HF  u  pV[	        U5      S:  d  M  [        S US U  5       5      U-   n[        S	XU[	        U5      -   S5      e   U[	        U5      4$ ! [         a     Of = f[        5       n[        R                  U5      nU(       a  US   (       d  SnUS	 OSn[        U5       H  u  pVU(       a  UR                  S5         UR                  [        U5      5        M:  ! [        [        4 aN  n	[        S US U  5       5      U-   n[        S	UXyR                  -   XyR                  -   U	R                  5      eS n	A	ff = f   [        X8-   5      [	        U5      4$ )NstrictUnsupported error handling:     r   r)      .r	   r   c              3   8   #    U  H  n[        U5      v   M     g 7fNr   .0ls     r&   	<genexpr>Codec.encode.<locals>.<genexpr>         <AQ   r   r   r+   r*   c              3   8   #    U  H  n[        U5      v   M     g 7frS   rT   rU   s     r&   rX   rY      rZ   r[   r,   rP   c              3   8   #    U  H  n[        U5      v   M     g 7frS   rT   rU   s     r&   rX   rY           8ZSVVZr[   )UnicodeErrorr.   splitr   r   sumr   	bytearraydotsextendr4   r<   r>   r?   rA   r=   )
selfinputr8   rE   labelsr#   r    rF   trailing_dotrC   s
             r&   r.   Codec.encode   s   X!=fXFGG	&\\'*F
 \\$'F%fSbk2u:?  < <<q@F,VUF1H-:< < 3
 &f-u:#  < <<q@F,VUF3u:DU-=? ? .
 3u:%% " 		" E"&*Lr
L!&)HAd#
gen-&(:; 8VBQZ881<(YY&WW$JJ  * V()3u:55s*   C1 1
C>=C>"E>>GA	GGc           	         US:w  a  [        SU 35      eU(       d  g[        U[        5      (       d  [        U5      n[        UR	                  5       ;  a   UR                  S5      [        U5      4$ UR                  S5      nU(       a  [        US   5      S:X  a  SnUS	 OS	n/ n[        U5       H"  u  pg [        U5      nUR                  U5        M$     SR#                  U5      U-   [        U5      4$ ! [         a     Nf = f! [        [        4 aZ  n	[        S
 US U  5       5      [        US U 5      -   n
[        SXU	R                  -   XR                  -   U	R                   5      eS n	A	ff = f)NrM   rN   r   r   r)   rQ   r	   r   .r   c              3   8   #    U  H  n[        U5      v   M     g 7frS   rT   )rV   r$   s     r&   rX   Codec.decode.<locals>.<genexpr>  r^   r[   r   )r_   r:   r=   r2   r/   r@   r   r<   r`   r   rH   r   r   ra   r>   r?   rA   r   )re   rf   r8   rg   rh   rE   r#   r    u_labelrC   rF   s              r&   r@   Codec.decode   sh   X!=fXFGG %''%LEU[[]*||G,c%j88 T"c&*o*Lr
L!&)HA'#E* g& * xx,c%j88- &  '(:; Q8VBQZ883vbqz?J(E#))#3VGG^SZZQ QQs+   C6 7D6
DDE0AE++E0 N)rM   )__name__
__module____qualname____firstlineno__r.   r@   __static_attributes__rq   rP   r&   rJ   rJ      s    26h'9rP   rJ   c                       \ rS rSrS rSrg)IncrementalEncoderi  c           	      B   US:w  a  [        SU 35      eU(       d  g[        R                  U5      nSnU(       a#  US   (       d  SnUS	 OU(       d  US	 U(       a  Sn[        5       nSnU HI  nU(       a  UR	                  S5        US-  n UR	                  [        U5      5        U[        U5      -  nMK     Xe-  nU[        U5      -  n[        U5      U4$ ! [        [        4 a6  n	[        S	UXyR                  -   XyR                  -   U	R                  5      eS n	A	ff = f)
NrM   rN   rO   rP   r	   rQ   r   r   r   )r_   rc   r`   rb   rd   r4   r   r<   r>   r?   rA   r   r=   )
re   rf   r8   finalrg   rh   rE   sizer    rC   s
             r&   _buffer_encode!IncrementalEncoder._buffer_encode  s   X!=fXFGGE"":#2J2J#'LEd#		gen- CJD " 	L!!ft$$ '(:; (99$77NJJ s   CD(1DDrq   N)rr   rs   rt   ru   r|   rv   rq   rP   r&   rx   rx     s    )%rP   rx   c                       \ rS rSrS rSrg)IncrementalDecoderi<  c           
      (   US:w  a  [        S5      eU(       d  g[        U[        5      (       a  [        R	                  U5      nO [        US5      nUR	                  S5      nSnU(       a#  US   (       d  SnUS	 OU(       d  US	 U(       a  Sn/ nS	nU H:  n	 [        U	5      n
UR                  U
5        U(       a  US-  nU[        U	5      -  nM<     SR                  U5      U-   nU[        U5      -  nXx4$ ! [
        [        4 a2  n[        SUUR                  UR                  UR                  5      eS nAff = f! [
        [        4 aD  n[        SUR                  SS
S9XR                  -   XR                  -   UR                  5      eS nAff = f)NrM   z$Unsupported error handling: {errors}rk   r)   r   rl   r   r	   r   r6   r7   r   )r_   r:   r;   rc   r`   r   r<   r>   r?   rA   rH   r   r.   r   r   )re   rf   r8   rz   rg   rC   rh   rE   r{   r    ro   s              r&   _buffer_decode!IncrementalDecoder._buffer_decode=  s   XEFF eS!!ZZ&FIE7+ [[%F":"2J2J#&LE'#E* g&	CJD " &!L0L!!~K '(:; I(),CGGSZZI II* '(:; (LL1CLD99$77NJJ s0   C8 D=8D:-D55D:=F?FFrq   N)rr   rs   rt   ru   r   rv   rq   rP   r&   r   r   <  s    3rP   r   c                       \ rS rSrSrg)StreamWriterir  rq   Nrr   rs   rt   ru   rv   rq   rP   r&   r   r   r      rP   r   c                       \ rS rSrSrg)StreamReaderiu  rq   Nr   rq   rP   r&   r   r   u  r   rP   r   c            
          [         R                  " S[        5       R                  [        5       R                  [
        [        [        [        S9$ )Nr   )namer.   r@   incrementalencoderincrementaldecoderstreamwriterstreamreader)	codecs	CodecInforJ   r.   r@   rx   r   r   r   rq   rP   r&   getregentryr   z  s6    w~~w~~--!! rP   )r
   rer   r   r   compilerc   r2   r1   r'   r4   rH   rJ   BufferedIncrementalEncoderrx   BufferedIncrementalDecoderr   r   r   r   rq   rP   r&   <module>r      s      0 
zz./ 
2h1Mf9z\9FLL \9|*%:: *%X4:: 4l	5,, 		5,, 	
	rP   