
    2\h                     $   	 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dS )    Nc                    	 t                      }t                      }| D ]M}t          |          dk     r#|                    t          |                     8|                    |           Nt          |          }t          |          |fS )N   )	bytearraysetordappendaddsortedbytes)strbaseextendedcs       </opt/python-3.11.14/usr/lib/python3.11/encodings/punycode.py	segregater   
   s    *;;DuuH  q66C<<KKALLOOOOhH;;      c                 F    	 d}| D ]}t          |          |k     r|dz  }|S )Nr      )r   )r   maxresr   s       r   selective_lenr      s7    J
C  q66C<<1HCJr   c                     	 t          |           }	 |dz  }||k    rdS | |         }||k    r|dz   |fS ||k     r|dz  }.)Nr   )r   )len)r   charindexposlr   s         r   selective_findr      sg     	CAq!888H997C<XXQJEr   c                    	 d}g }d}|D ]t}dx}}t          |          }t          | |          }	|	dz   ||z
  z  }
	 t          | |||          \  }}|dk    rn%|
||z
  z  }
|                    |
dz
             |}d}
A|}u|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  1vvsD))dWn-	&s1U377IE#{{UX%%EMM%'"""HE	 Mr   c                 <    d| dz   z  |z
  }|dk     rdS |dk    rdS |S )N$   r       )jbiasr   s      r   Tr-   F   s3    
A,
C
Qwwqq
RxxJr   s$   abcdefghijklmnopqrstuvwxyz0123456789c                 *   	 t                      }d}	 t          ||          }| |k     r/|                    t          |                     t	          |          S |                    t          || |z
  d|z
  z  z                       | |z
  d|z
  z  } |dz  })Nr   r   r(   )r   r-   r   digitsr   )Nr,   r"   r+   ts        r   generate_generalized_integerr2   N   s    2[[F	AaJJq55MM&)$$$== fQ1q5R!V"456777UQ	Qr   c                 |    |r| dz  } n| dz  } | | |z  z  } d}| dk    r| dz  } |dz  }| dk    |d| z  | dz   z  z   }|S )Ni     r   i  #   r(   &   r*   )r%   firstnumchars	divisionsr,   s        r   adaptr:   [   sv     #!	UhEI
#++R	 #++ U
urz23DKr   c                     	 t                      }d}t          |          D ]E\  }}t          ||          }|                    |           t	          ||dk    | |z   dz             }Ft          |          S )NH   r   r   )r   	enumerater2   extendr:   r   )baselendeltasr"   r,   pointsr%   ss          r   generate_integersrC   j   s{    [[FD"6** 9 9(55aUFAIwv~a'788==r   c                     t          |           \  }}t          | |          }t          t          |          |          }|r|dz   |z   S |S )N   -)r   r&   rC   r   )textr   r   r@   s       r   punycode_encoderG   u   sQ    t__ND(dH--F TF33H &d{X%%Or   c                    	 d}d}d}	 	 t          | |                   }n,# t          $ r |dk    rt          d          |dz   d fcY S w xY w|dz  }d|cxk    rdk    r	n n|dz
  }n;d|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  })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      sg   2F	A	A	$x'((DD 	$ 	$ 	$!!"#?@@@A:t####	$ 	!444KEET!!!!T!!!!!2IEExA!)&(!3 4 5 5 5 4<aJJ%!)1996>!aL	Q-s     &A	A	c                    	 d}d}d}d}|t          |          k     rt          ||||          \  }}|| S ||dz   z  }||t          |           dz   z  z  }|dk    r'|dk    rt          d|z            t          d	          }|t          |           dz   z  }| d |         t	          |          z   | |d          z   } t          ||dk    t          |                     }|}|t          |          k     | 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Cs88DSYY]#DSDzCII%STT
2UVq[3t9955! 3x==
 
 " Kr   c                    t          | t                    r|                     d          } t          | t                    rt	          |           } |                     d          }|dk    r%d}t          | d                                          }nFt          | d |         d|          }t          | |dz   d          d                                          }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
byytW%%++--4:w//tCEFF|W--3355$&111r   c                       e Zd ZddZddZdS )CodecrI   c                 B    t          |          }|t          |          fS N)rG   r   selfinputrR   r   s       r   r_   zCodec.encode   s    e$$CJJr   c                 p    |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   sA    888<VCDDDeV,,CJJr   N)rI   )__name__
__module____qualname__r_   ro   r*   r   r   re   re      s<                r   re   c                       e Zd ZddZdS )IncrementalEncoderFc                      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dS )IncrementalDecoderFc                 l    | j         dvrt          d| j         z             t          || j                   S rl   )rR   rP   rc   rv   s      r   ro   zIncrementalDecoder.decode   s8    ;===<T[HIIIudk222r   Nrx   )rp   rq   rr   ro   r*   r   r   rz   rz      s(        3 3 3 3 3 3r   rz   c                       e Zd ZdS )StreamWriterNrp   rq   rr   r*   r   r   r}   r}              Dr   r}   c                       e Zd ZdS )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      s=    ww~ww~--!!   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 2 2 
 
 
 
 
FL 
 
 
& & & & &2 & & &3 3 3 3 32 3 3 3	 	 	 	 	5, 	 	 		 	 	 	 	5, 	 	 	
	 	 	 	 	r   