3
« fÒ# ã @ s¸ d dl Z d dlZd dlZd dlmZ ejdƒZdZdZdd„ Z dd „ Z
d
d„ ZG dd
„ d
ejƒZG dd„ dej
ƒZG dd„ dejƒZG dd„ deejƒZG dd„ deejƒZdd„ ZdS )é N)Ú ucd_3_2_0u [.。.。]s xn--zxn--c C s g }x(| D ] }t j|ƒrq
|jt j|ƒƒ q
W dj|ƒ} tjd| ƒ} xr| D ]j}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|ƒrJtd| ƒ‚qJW dd„ | D ƒ}xH|D ]@}|rÌtdd„ | D ƒƒrîtdƒ‚|d �s|d rÌtdƒ‚qÌW | S )
NÚ ZNFKCzInvalid character %rc S s g | ]}t j|ƒ‘qS © )Ú
stringprepZin_table_d1)Ú.0Úxr r ú3/opt/alt/python36/lib64/python3.6/encodings/idna.pyú
) s znameprep..c s s | ]}t j|ƒV qd 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_b1ÚappendZmap_table_b2ÚjoinÚunicodedataZ normalizeZin_table_c12Zin_table_c22Zin_table_c3Zin_table_c4Zin_table_c5Zin_table_c6Zin_table_c7Zin_table_c8Zin_table_c9ÚUnicodeErrorÚany)ÚlabelZnewlabelÚcZRandALr r r Únameprep s4
r c C sð y| j dƒ} W n tk
r" Y n*X dt| ƒ k o:dk n rD| S tdƒ‚t| ƒ} y| j dƒ} W n tk
rv Y n*X dt| ƒ k oŽdk n r˜| S tdƒ‚| jtƒr²tdƒ‚| j dƒ} t| } dt| ƒ k oÚdk n rä| S tdƒ‚d S )NÚasciir é@ zlabel empty or too longzLabel starts with ACE prefixÚpunycode)Úencoder Úlenr Ú
startswithÚsace_prefixÚ
ace_prefix)r r r r ÚToASCII> s,
r c C sÒ t | tƒrd}n,y| jdƒ} d}W n tk
r: d}Y nX |stt| ƒ} y| jdƒ} W n tk
rr tdƒ‚Y nX | jtƒsˆt| dƒS | ttƒd … }|j dƒ}t
|ƒ}t| dƒjƒ t|dƒkrÎtd| |ƒ‚|S )NTr FzInvalid character in IDN labelr zIDNA does not round-trip)Ú
isinstanceÚbytesr r r r r Ústrr Údecoder Úlower)r Z
pure_asciiZlabel1ÚresultZlabel2r r r Ú ToUnicodei s*
r$ c @ s e Zd Zddd„Zddd„ZdS ) ÚCodecÚstrictc C s |dkrt d| ƒ‚|sdS y|jdƒ}W n tk
r> Y njX |jdƒ}x8|d d… D ](}dt|ƒ k ordk n sXt d ƒ‚qXW t|d
ƒdkrœt d
ƒ‚|t|ƒfS tƒ }tj|ƒ}|rÒ|d rÒd}|d= nd}x(|D ] }|rî|jdƒ |jt|ƒƒ qÜW t || ƒt|ƒfS )Nr&