j f# @ s d d l Z d d l Z d d l Z d d l m Z e j d Z d Z d Z d d Z d d Z
d
d Z Gd d
d
e j Z Gd d d e j
Z Gd d d e j Z Gd d d e e j Z Gd d d e e j Z d d Z d S) N) ucd_3_2_0u [.。.。]s xn--zxn--c C s g } x9 | D]1 } t j | r( q
n | j t j | q
Wd j | } t j d | } x | D] } t j | s t j | s t j | s t j
| s t j | s t j | s t j
| s t j | s t j | rj t d | qj qj Wd d | D } xd | D]\ } | r(t d d | D r\t d n | d sr| d rt d qq(q(W| S)
N ZNFKCzInvalid character %rc S s g | ] } t j | q S )
stringprepZin_table_d1).0xr r 3/opt/alt/python34/lib64/python3.4/encodings/idna.py
) s znameprep..c s s | ] } t j | Vq d S)N)r Zin_table_d2)r r r r r 2 s znameprep..zViolation of BIDI requirement 2r zViolation of BIDI requirement 3)r Zin_table_b1appendZmap_table_b2joinunicodedataZ normalizeZin_table_c12Zin_table_c22Zin_table_c3Zin_table_c4Zin_table_c5Zin_table_c6Zin_table_c7Zin_table_c8Zin_table_c9UnicodeErrorany)labelZnewlabelcZRandALr r r nameprep s4
r c C s- y | j d } Wn t k
r' Yn3 Xd t | k oE d k n rN | St d t | } y | j d } Wn t k
r Yn3 Xd t | k o d k n r | St d | j t r t d n | j d } t | } d t | k od k n r| St d d S)Nasciir @ zlabel empty or too longzLabel starts with ACE prefixpunycode)encoder lenr
startswithsace_prefix
ace_prefix)r r r r ToASCII> s,
"
"
"r c C s t | t r d } n4 y | j d } d } Wn t k
rK d } Yn X| s t | } y | j d } Wq t k
r t d Yq Xn | j t s t | d S| t t d } | j d } t
| } t | d j t | d k rt d | | n | S)NTr FzInvalid character in IDN labelr zIDNA does not round-trip)
isinstancebytesr r r r r strr decoder lower)r Z
pure_asciiZlabel1resultZlabel2r r r ToUnicodei s*
$r$ c @ s. e Z d Z d d d Z d d d Z d S)Codecstrictc C st | d k r t d | n | s) d Sy | j d } Wn t k
rP Yn X| j d } xI | d d D]7 } d t | k o d k n sq t d qq qq Wt | d
d k r t d
n | t | f St } t j | } | r| d rd } | d =n d } x7 | D]/ } | rC| j d n | j t | q'Wt | | t | f S)Nr&