
    F\h#                        S r SSKrSSKrSSKJr  SS jrSS jr " S S\R                  5      r " S S	\R                  5      r " S
 S\R                  5      r	 " S S\\R                  5      r
 " S S\\R                  5      rS rg)a  Python 'uu_codec' Codec - UU content transfer encoding.

This codec de/encodes from bytes to bytes.

Written by Marc-Andre Lemburg (mal@lemburg.com). Some details were
adapted from uu.py which was written by Lance Ellinghouse and
modified by Jack Jansen and Fredrik Lundh.
    N)BytesIOc                    US:X  d   e[        U 5      n[        5       nUR                  nUR                  nUR                  SS5      nUR                  SS5      nU" SUS-  U4-  R	                  S5      5        U" S	5      nU(       a-  U" [
        R                  " U5      5        U" S	5      nU(       a  M-  U" S
5        UR                  5       [        U 5      4$ )Nstrict
z\nz\rzbegin %o %s
i  ascii-   s    
end
)	r   readwritereplaceencodebinasciib2a_uugetvaluelen)	inputerrorsfilenamemodeinfileoutfiler
   r   chunks	            )/usr/lib/python3.13/encodings/uu_codec.py	uu_encoder      s    XU^FiG;;DMME U+HU+H 
?dUlH55
=
=g
FGHE
hooe$%R % 
+E
++    c                    US:X  d   e[        U 5      n[        5       nUR                  nUR                  n U" 5       nU(       d  [        S5      eUS S S:X  a  OM%   U" 5       nU(       a  US:X  a  O! [        R
                  " U5      nU" U5        M6  U(       d  [        S5      eUR                  5       [        U 5      4$ ! [        R                   a7  nUS   S-
  S-  S	-  S-   S
-  n	[        R
                  " US U	 5      n S nAN}S nAff = f)Nr   z"Missing "begin" line in input data   s   begins   end
r       ?         zTruncated input data)	r   readliner   
ValueErrorr   a2b_uuErrorr   r   )
r   r   r   r   r"   r   sdatavnbytess
             r   	uu_decoder*   %   s   XU^FiGHMME JABBRa5H  JAM	/??1%D 	d  /00E
++ ~~ 	/!R2~*Q.14F??1Wf:.D	/s   3C   D-DDc                   (    \ rS rSrSS jrSS jrSrg)CodecF   c                     [        X5      $ N)r   selfr   r   s      r   r   Codec.encodeG       ''r   c                     [        X5      $ r/   )r*   r0   s      r   decodeCodec.decodeJ   r3   r    Nr   )__name__
__module____qualname____firstlineno__r   r5   __static_attributes__r7   r   r   r,   r,   F   s    ((r   r,   c                       \ rS rSrSS jrSrg)IncrementalEncoderM   c                 2    [        XR                  5      S   $ Nr   )r   r   r1   r   finals      r   r   IncrementalEncoder.encodeN       ,Q//r   r7   NF)r9   r:   r;   r<   r   r=   r7   r   r   r?   r?   M       0r   r?   c                       \ rS rSrSS jrSrg)IncrementalDecoderQ   c                 2    [        XR                  5      S   $ rB   )r*   r   rC   s      r   r5   IncrementalDecoder.decodeR   rF   r   r7   NrG   )r9   r:   r;   r<   r5   r=   r7   r   r   rJ   rJ   Q   rH   r   rJ   c                       \ rS rSr\rSrg)StreamWriterU   r7   Nr9   r:   r;   r<   bytescharbuffertyper=   r7   r   r   rO   rO   U       Nr   rO   c                       \ rS rSr\rSrg)StreamReaderX   r7   NrQ   r7   r   r   rV   rV   X   rT   r   rV   c                  h    [         R                  " S[        [        [        [
        [        [        SS9$ )NuuF)namer   r5   incrementalencoderincrementaldecoderstreamreaderstreamwriter_is_text_encoding)codecs	CodecInfor   r*   r?   rJ   rV   rO   r7   r   r   getregentryrb   ]   s-    --!!	 	r   )r   z<data>i  r8   )__doc__r`   r   ior   r   r*   r,   r?   rJ   rO   rV   rb   r7   r   r   <module>re      s      ,*,B(FLL (022 0022 05&-- 5&-- 

r   