\dtdZddlZddlZejZddZGddejZGddejZGd d ej Z Gd d ej Z d Z dS)z Python 'utf-16' Codec Written by Marc-Andre Lemburg (mal@lemburg.com). (c) Copyright CNRI, All Rights Reserved. NO WARRANTY. Nstrictc.tj||dS)NT)codecs utf_16_decode)inputerrorss !..\python\lib\encodings\utf_16.pydecoder s  vt 4 44c0eZdZd dZd dZdZdZdZdS) IncrementalEncoderrcTtj||d|_dSN)rr __init__encoderselfrs r rzIncrementalEncoder.__init__s&!**4888 r Fc|jUtj||jd}tjdkrtj|_ntj|_|S|||jdS)Nrlittle)rr utf_16_encodersys byteorderutf_16_le_encodeutf_16_be_encode)rrfinalresults r encodezIncrementalEncoder.encodesf < )%==a@F}((%6 %6 M||E4;//22r cRtj|d|_dSr)rr resetrrs r rzIncrementalEncoder.reset!s$!''--- r c|jdndS)Nr)rr s r getstatezIncrementalEncoder.getstate%s \)q1r c|r d|_dStjdkrtj|_dStj|_dSNr)rrrrrrrstates r setstatezIncrementalEncoder.setstate,s>  7DLLL}((%6 %6 r Nr)F)__name__ __module__ __qualname__rrrr#r(r r r r si333322277777r r c.eZdZddZdZdZdZdZdS) IncrementalDecoderrcTtj||d|_dSr)rBufferedIncrementalDecoderrdecoderrs r rzIncrementalDecoder.__init__6s&)224@@@ r c|jdtj||d|\}}}|dkrtj|_n-|dkrtj|_n|dkrt d||fS|||j|S)Nrr"%UTF-16 stream does not start with BOM)r2rutf_16_ex_decodeutf_16_le_decodeutf_16_be_decode UnicodeErrorr)rrrroutputconsumedrs r _buffer_decodez!IncrementalDecoder._buffer_decode:s < 'vq%@@ *VXyB%6 a%6 Q"#JKKKH% %||E4;666r cRtj|d|_dSr)rr1rr2r s r rzIncrementalDecoder.resetGs$)//555 r ctj|d}|j|dfSt t jdk|jtjuk}||fS)Nrr"big)rr1r#r2intrrr9)rr'addstates r r#zIncrementalDecoder.getstateKsk1::4@@C < 1:  . (??ABBx  r c8tj|||d}|dkr/tjdkr tjn tj|_dS|dkr/tjdkr tjn tj|_dSd|_dS)Nr5rr@)rr1r(rrr9r8r2r&s r r(zIncrementalDecoder.setstateYs)224???a A::"}55#33!'!8 LLLaZZ"}55#33!'!8 LLL DLLLr Nr))r*r+r,rr=rr#r(r-r r r/r/5sd 7 7 7 ! ! !      r r/c$eZdZddZdZddZdS) StreamWriterrcVtj|||d|_dSr)rrErr)rstreamrs r rzStreamWriter.__init__is($$T66::: r cRtj|d|_dSr)rrErrr s r rzStreamWriter.resetms$!!$''' r c|jJtj||}tjdkrtj|_ntj|_|S|||Sr%)rrrrrrr)rrrrs r rzStreamWriter.encodeqsX < )%88F}((%6 %6 M<<v.. .r Nr))r*r+r,rrrr-r r rErEhsK / / / / / /r rEceZdZdZddZdS) StreamReadercltj| |`dS#t$rYdSwxYwr)rrKrr AttributeErrorr s r rzStreamReader.reset~sI!!$'''      DD s % 33rctj||dd\}}}|dkrtj|_n-|dkrtj|_n|dkrt d||fS)NrFr4r5r"r6)rr7r8r r9r:)rrrobjectr<rs r r zStreamReader.decodesn  #E61e < < &9 ?? 1DKK !^^ 1DKK q[[FGG G!!r Nr))r*r+r,rr r-r r rKrK|s7 " " " " " "r rKc ttjdtttt t tS)Nzutf-16)namerr incrementalencoderincrementaldecoder streamreader streamwriter)r CodecInforr r r/rKrEr-r r getregentryrWs1   --!!   r r)) __doc__rrrrr r r1r/rErKrWr-r r rYs  5555!7!7!7!7!72!7!7!7F1 1 1 1 1 :1 1 1 f/////6&///("""""6&""",     r