\ddZddlZddlZddlmZddZddZGddejZGd d ejZGd d ej Z Gd deej Z Gddeej Z dZ dS)zQCodec for quoted-printable encoding. This codec de/encodes from bytes to bytes. N)BytesIOstrictc|dksJt|}t}tj||d|t |fS)NrT) quotetabs)rquopriencodegetvalueleninputerrorsfgs '..\python\lib\encodings\quopri_codec.py quopri_encoder sW X    A A M!Q$'''' JJLL#e** %%c|dksJt|}t}tj|||t |fS)Nr)rrdecoder r r s r quopri_decodersR X    A A M!Q JJLL#e** %%rceZdZddZddZdS)Codecrc"t||SN)rselfr r s rrz Codec.encodeUF+++rc"t||Sr)rrs rrz Codec.decoderrNr)__name__ __module__ __qualname__rrrrrrs<,,,,,,,,,,rrceZdZddZdS)IncrementalEncoderFc8t||jdSNr)rr rr finals rrzIncrementalEncoder.encodeUDK0033rNF)rr r!rr"rrr$r$(444444rr$ceZdZddZdS)IncrementalDecoderFc8t||jdSr&)rr r's rrzIncrementalDecoder.decode#r)rNr*)rr r!rr"rrr-r-"r+rr-ceZdZeZdS) StreamWriterNrr r!bytescharbuffertyper"rrr0r0&NNNrr0ceZdZeZdS) StreamReaderNr1r"rrr6r6)r4rr6c vtjdtttt t tdS)NrF)namerrincrementalencoderincrementaldecoder streamwriter streamreader_is_text_encoding)codecs CodecInforrr$r-r0r6r"rr getregentryr@.s4   --!!    rr) __doc__r>riorrrrr$r-r0r6r@r"rrrCsZ  &&&&&&&&,,,,,FL,,, 4444424444444424445&-5&-     r