
    d                         d Z ddlZddlZddlZddlZ ej        ed           g dZ G d de          Z	ddd	d
Z
ddZd Zedk    r e             dS dS )zImplementation of the UUencode and UUdecode functions.

encode(in_file, out_file [,name, mode], *, backtick=False)
decode(in_file [, out_file, mode, quiet])
    N)      )remove)Errorencodedecodec                       e Zd ZdS )r   N)__name__
__module____qualname__     lib/python3.11/uu.pyr   r   *   s        Dr   r   Fbacktickc                r   g }	 | dk    rt           j        j        } nt          | t                    rs|t
          j                            |           }|+	 t          j        |           j	        }n# t          $ r Y nw xY wt          | d          } |                    |            |dk    rt           j        j        }n:t          |t                    r%t          |d          }|                    |           |d}|d}|                    dd          }|                    dd	          }|                    d
|dz  |fz                      d                     |                     d          }t%          |          dk    rQ|                    t'          j        ||                     |                     d          }t%          |          dk    Q|r|                    d           n|                    d           |D ]}|                                 dS # |D ]}|                                 w xY w)zUuencode file-Nrbwbi  
z\nz\rzbegin %o %s
i  ascii-   r   r   s   `
end
s    
end
)sysstdinbuffer
isinstancestrospathbasenamestatst_modeAttributeErroropenappendstdoutreplacewriter   readlenbinasciib2a_uuclose)in_fileout_filenamemoder   opened_filesdatafs           r   r   r   -   sL   
 L1c>>i&GG%% 		)|w''00|77++3DD%   D7D))G((( s??z(HH#&& 	*Hd++H))) <D<D
 ||D''||D''
 	D5L4*@@HHQQRRR||B$ii!mmNN8?4(CCCDDD<<##D $ii!mm  	(NN;''''NN;''' 	 	AGGIIII	 	 	 	AGGIIII	s1   AH A/ .H /
A<9H ;A<<FH H6c                 0   g }| dk    rt           j        j        } n:t          | t                    r%t          | d          } |                    |            	 	 |                                 }|st          d          |	                    d          s<|
                    dd          }t          |          dk    r4|d	         dk    r(	 t          |d
         d           n# t          $ r Y nw xY w||d                             d                              d          }t           j                            |          rt          d|           |	                    t           j                  sMdt           j         |v s<t           j        rC|	                    t           j                  sdt           j         |v rt          d| d          |t          |d
         d          }|dk    rt           j        j        }nQt          |t                    r<t          |d          }t!          j        ||           |}|                    |           |                                 }|r|                    d          dk    r	 t1          j        |          }	ns# t0          j        $ ra}
|d	         dz
  dz  dz  dz   dz  }t1          j        |d|                   }	|s"t           j                            d|
z             Y d}
~
nd}
~
ww xY w|                    |	           |                                 }|r|                    d          dk    |st          d          	 |D ]}|                                 dS # |D ]}|                                 w xY w)zDecode uuencoded filer   r   Tz'No valid begin line found in input files   begin       r   r         Ns    	
r   z Cannot overwrite existing file: z..zRefusing to write to z due to directory traversalr   s   end    ?         zWarning: %s
zTruncated input file)r   r   r   r   r   r%   r&   readliner   
startswithsplitr+   int
ValueErrorrstripr   r   r    existssepaltsepr'   chmodstripr,   a2b_uustderrr)   r.   )r/   r0   r2   quietr3   hdr	hdrfieldsfpsr4   vnbytesr5   s                r   r   r   g   s   
 L#~~)"	GS	!	! %w%%G$$$<	""$$C GEFFF>>(++ 		$**I9~~""y|x'?'?	!a(((!   D	  |**<88??HHHw~~h'' KIxIIJJJ##BF++ [RV))I *((33 * &")%%11YHYYYZZZ<y|Q''D s??z(HH#&& 	*h%%BHXt$$$H)))  
	#AGGL))V33:q))> : : :aDGr>Q.2q8q&z22 :J$$_q%8999: NN4     ""A  
	#AGGL))V33  	0.///	0  	 	AGGIIII	 	 	 	AGGIIII	s^   A1M: C M: 
C,)M: +C,,FM: J M: L%AL<M: LAM: :Nc                     ddl } |                     d          }|                    ddddd	d
           |                    ddddd	d
           |                                \  }}t	          |          dk    r)|                    d           t          j        d           t          j        j	        }t          j
        j	        }t	          |          dk    r|d         }t	          |          dk    r|d         }|j        rs|j        rZt          |t                    rt          |d          }n4t!          t          j        d         d           t          j        d           t          ||           dS |j        rZt          |t                    rt          |d          }n4t!          t          j        d         d           t          j        d           t%          ||           dS )zuuencode/uudecode main programr   Nz'usage: %prog [-d] [-t] [input [output]])usagez-dz--decoder   zDecode (instead of encode)?F
store_true)desthelpdefaultactionz-tz--texttextz2data is text, encoded format unix-compatible text?r8   zincorrect number of argumentsr9   r   z: cannot do -t to stdoutr   z: cannot do -t from stdin)optparseOptionParser
add_option
parse_argsr+   errorr   exitr   r   r'   r   rZ   r   r   r%   printargvr   )r[   parseroptionsargsinputoutputs         r   testrh      s    OOO"")R"SSF
dJX<Ychq}~~~
dH68lv{  EQ  R  R  R''))OWd
4yy1}}4555 IEZF
4yy1}}Q
4yy1}}a~ < 	&#&& fd++chqk#=>>>uf< 	%%% UD))chqk#>???ufr   __main__)NN)NNF)__doc__r,   r   r   warnings_deprecatedr
   __all__	Exceptionr   r   r   rh   r   r   r   <module>ro      s   6   				 



   Xg . . . .
'
'
'	 	 	 	 	I 	 	 	7 7 7 7 7 7tH H H HT$ $ $L zDFFFFF r   