o [d#@sddlZddlZddlZddlmZedZdZdZddZ dd Z d d Z Gd d d ej Z Gdddej ZGdddejZGddde ejZGddde ejZddZdS)N) ucd_3_2_0u [.。.。]sxn--zxn--cCsg}|D]}t|r q|t|qd|}td|}|D]5}t|sQt|sQt |sQt |sQt |sQt |sQt |sQt|sQt|rWtd|q"dd|D}t|r|tdd|Drptd|d rx|d s|td |S) NNFKCzInvalid character %rcSsg|]}t|qS) stringprep in_table_d1.0xrr%/usr/lib/python3.10/encodings/idna.py )sznameprep..css|]}t|VqdS)N)r in_table_d2rrrr 1sznameprep..zViolation of BIDI requirement 2rzViolation of BIDI requirement 3)r in_table_b1append map_table_b2join unicodedata normalize 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 UnicodeErrorany)labelnewlabelcRandALrrr nameprepsD      r%cCsz|d}Wn tyYnwdt|krdkr#|Stdtdt|}z|d}Wn ty;Ynwdt|krIdkrN|Stdtd|tr[td|d}t|}dt|krqdkrv|Stdtd)Nasciir@label empty or too longzLabel starts with ACE prefixpunycode)encoderlenr% startswith sace_prefix ace_prefix)r!rrr ToASCII<s6    r/cCst|trd}nz |d}d}Wn tyd}Ynw|s6t|}z|d}Wn ty5tdw|ts@t|dS|ttd}| d}t |}t|d t|dkrctd|||S)NTr&FzInvalid character in IDN labelr)zIDNA does not round-trip) isinstancebytesr*rr%r,r.strr+decoder/lower)r! pure_asciilabel1resultlabel2rrr ToUnicodegs.        r9c@s eZdZdddZdddZdS)CodecstrictcCs |dkr td||sdSz|d}Wn tyYn5w|d}|ddD]}dt|kr;dks@td td q*t|ddkrMtd |t|fSt}t|}|rg|dsgd}|d=nd }|D]}|rt|d|t|qkt ||t|fS) Nr;unsupported error handling rr&.rrr'r(zlabel too longr>) rr*UnicodeEncodeErrorsplitr+ bytearraydotsextendr/r1)selfinputerrorsr7labelsr! trailing_dotrrr r*s<       z Codec.encodecCs|dkr td||sdSt|tst|}t|vr/z |dt|fWSty.Ynw|d}|rDt|ddkrDd}|d=nd }g}|D] }|t |qJd ||t|fS) Nr;Unsupported error handling rrr&r?rr.r) rr0r1r.r3r+UnicodeDecodeErrorrArr9r)rErFrGrHrIr7r!rrr r3s*    z Codec.decodeN)r;)__name__ __module__ __qualname__r*r3rrrr r:s %r:c@eZdZddZdS)IncrementalEncoderc Cs|dkr td||sdSt|}d}|r*|ds!d}|d=n |s*|d=|r*d}t}d}|D]}|r>|d|d7}|t||t|7}q1||7}|t|7}t||fS) Nr;r<r=r>rr?r)rrCrArBrDr/r+r1 rErFrGfinalrHrIr7sizer!rrr _buffer_encodes2     z!IncrementalEncoder._buffer_encodeN)rNrOrPrWrrrr rR rRc@rQ)IncrementalDecoderc Cs|dkr td||sdSt|trt|}n t|d}|d}d}|r:|ds1d}|d=n |s:|d=|r:d}g}d}|D]}|t||rO|d 7}|t|7}q@d||}|t|7}||fS) Nr;rJrKr&rLrrrrS) rr0r2rCrArr9r+rrTrrr _buffer_decodes6      z!IncrementalDecoder._buffer_decodeN)rNrOrPrZrrrr rYrXrYc@ eZdZdS) StreamWriterNrNrOrPrrrr r\"r\c@r[) StreamReaderNr]rrrr r_%r^r_c Cs tjdtjtjttttdS)Nidna)namer*r3incrementalencoderincrementaldecoder streamwriter streamreader) codecs CodecInfor:r*r3rRrYr\r_rrrr getregentry*srh)rrerfrrcompilerCr.r-r%r/r9r:BufferedIncrementalEncoderrRBufferedIncrementalDecoderrYr\r_rhrrrr s  .+)H#'