Ë
    òT•jÄ  ã                   ó¤   — 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«        yy)z�Implementation 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y)r   N)Ú__name__Ú
__module__Ú__qualname__© ó    ú/usr/lib/python3.12/uu.pyr   r   *   s   „ Ør   r   F©Úbacktickc                ó  — g }	 | dk(  rt         j                  j                  } npt        | t        «      r`|€t
        j                  j                  | «      }|€ 	 t        j                  | «      j                  }t        | d«      } |j                  | «       |dk(  rt         j                  j                  }n-t        |t        «      rt        |d«      }|j                  |«       |€d}|€d}|j                  dd«      }|j                  dd	«      }|j                  d
|dz  |fz  j!                  d«      «       | j#                  d«      }t%        |«      dkD  rF|j                  t'        j(                  ||¬«      «       | j#                  d«      }t%        |«      dkD  rŒF|r|j                  d«       n|j                  d«       |D ]  }|j+                  «        Œ y# t        $ r Y �Œlw xY w# |D ]  }|j+                  «        Œ 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   -   sÍ  € ð
 €Lð1Ø�cŠ>Ü—i‘i×&Ñ&‰GÜ˜¤Ô%Øˆ|Ü—w‘w×'Ñ'¨Ó0�Øˆ|ðÜŸ7™7 7Ó+×3Ñ3�Dô ˜7 DÓ)ˆGØ×Ñ Ô(ð �sŠ?Ü—z‘z×(Ñ(‰HÜ˜¤#Ô&Ü˜H dÓ+ˆHØ×Ñ Ô)ð ˆ<ØˆDØˆ<ØˆDð
 �|‰|˜D Ó'ˆØ�|‰|˜D Ó'ˆð
 	�‰˜¨D°5©L¸4Ð*@Ñ@×HÑHÈÓQÔRØ�|‰|˜BÓˆÜ�$‹i˜!ŠmØ�N‰Nœ8Ÿ?™?¨4¸(ÔCÔDØ—<‘< Ó#ˆDô �$‹i˜!‹mñ Ø�N‰N˜;Õ'à�N‰N˜;Ô'àò 	ˆAØ�G‰G�Iñ	øôO &ò ÚðûðN ò 	ˆAØ�G‰G�Iñ	ús7   „AG' ÁG Á7D"G' Æ%G' Ç	G$Ç G' Ç#G$Ç$G' Ç'H c                 ó€  — g }| dk(  rt         j                  j                  } n-t        | t        «      rt        | d«      } |j                  | «       	 	 | j                  «       }|st        d«      ‚|j                  d«      sŒ0|j                  dd«      }t        |«      dk(  r|d   dk(  r	 t        |d	   d
«       nŒi|€×|d   j                  d«      j                  d«      }t         j"                  j%                  |«      rt        d|› �«      ‚|j                  t         j&                  «      sYdt         j&                  › �|v sDt         j(                  rC|j                  t         j(                  «      sdt         j(                  › �|v rt        d|› d�«      ‚|€t        |d	   d
«      }|dk(  rt         j*                  j                  }nEt        |t        «      r5t        |d«      }t!        j,                  ||«       |}|j                  |«       | j                  «       }|rb|j/                  d«      dk7  rN	 t1        j2                  |«      }	|j7                  |	«       | j                  «       }|r|j/                  d«      dk7  rŒN|st        d«      ‚	 |D ]  }|j9                  «        Œ y# t        $ r Y �Œöw xY w# t0        j                  $ rZ}
|d   dz
  dz  dz  dz   dz  }t1        j2                  |d| «      }	|s"t         j4                  j7                  d|
z  «       Y d}
~
ŒÖd}
~
ww xY w# |D ]  }|j9                  «        Œ w xY w)zDecode uuencoded filer   r   z'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Ø�#‚~Ü—)‘)×"Ñ"‰Ü	�GœSÔ	!Ü�w Ó%ˆØ×Ñ˜GÔ$ð<ð Ø×"Ñ"Ó$ˆCÙÜÐEÓFÐFØ—>‘> (Ô+ØØŸ	™	 $¨Ó*ˆIÜ�9‹~ Ò" y°¡|°xÒ'?ðÜ˜	 !™ aÔ(Øð ð Ðà  ‘|×*Ñ*¨<Ó8×?Ñ?ÀÓHˆHÜ�w‰w�~‰~˜hÔ'ÜÐ>¸x¸jÐIÓJÐJØ×#Ñ#¤B§F¡FÔ+Ø”R—V‘V�H� Ñ)Ü—I’IØ×(Ñ(¬¯©Ô3Øœ"Ÿ)™)˜Ð%¨Ñ1äÐ3°H°:Ð=XÐYÓZÐZØˆ<Ü�y ‘| QÓ'ˆDð �sŠ?Ü—z‘z×(Ñ(‰HÜ˜¤#Ô&Ü�h Ó%ˆBÜ�H‰H�X˜tÔ$ØˆHØ×Ñ Ô)ð ×ÑÓˆÙ�A—G‘G˜LÓ)¨VÒ3ð:Ü—‘ qÓ)�ð �N‰N˜4Ô Ø× Ñ Ó"ˆAñ �A—G‘G˜LÓ)¨VÓ3ñ ÜÐ.Ó/Ð/ð ð ò 	ˆAØ�G‰G�Iñ	øôY "ò ÚðûôB —>‘>ò :à˜a™D ™G r™>¨QÑ.°Ñ2°qÑ8�Ü—‘ q¨¨& zÓ2�ÙÜ—J‘J×$Ñ$ _°qÑ%8Ô9ÿøð:ûð ò 	ˆAØ�G‰G�Iñ	úsc   ÁAL$ Â*J$ Â9E7L$ È1J4 É7L$ É>L$ Ê$	J1Ê-L$ Ê0J1Ê1L$ Ê4L!ËALÌL$ ÌL!Ì!L$ Ì$L=c                  ó„  — ddl } | j                  d¬«      }|j                  ddddd	d
¬«       |j                  ddddd	d
¬«       |j                  «       \  }}t	        |«      dkD  r&|j                  d«       t        j                  d«       t        j                  j                  }t        j                  j                  }t	        |«      dkD  r|d   }t	        |«      dkD  r|d   }|j                  rh|j                  rOt        |t        «      rt        |d«      }n2t!        t        j"                  d   d«       t        j                  d«       t        ||«       y|j                  rOt        |t        «      rt        |d«      }n2t!        t        j"                  d   d«       t        j                  d«       t%        ||«       y)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   ±   sl  € ó Ø×"Ñ"Ð)RÐ"ÓS€FØ
×Ñ�d˜J¨XÐ<YÐchÐq}ÐÔ~Ø
×Ñ�d˜H¨6Ð8lÐv{ð  EQÐô  Rà×'Ñ'Ó)�O€WˆdÜ
ˆ4ƒy�1‚}Ø�‰Ð4Ô5Ü�‰�Œô �I‰I×Ñ€EÜ�Z‰Z×Ñ€FÜ
ˆ4ƒy�1‚}Ø�Q‘ˆÜ
ˆ4ƒy�1‚}Ø�a‘ˆà‡~‚~Ø�<Š<Ü˜&¤#Ô&Ü˜f dÓ+‘ä”c—h‘h˜q‘kÐ#=Ô>Ü—‘˜”Üˆu�fÕà�<Š<Ü˜%¤Ô%Ü˜U DÓ)‘ä”c—h‘h˜q‘kÐ#>Ô?Ü—‘˜”Üˆu�fÕr   Ú__main__)NN)NNF)Ú__doc__r,   r   r   ÚwarningsÚ_deprecatedr
   Ú__all__Ú	Exceptionr   r   r   rh   r   r   r   ú<module>ro      si   ðñ6ó Û 	Û 
Û à €× Ñ �X gÕ .â
'€ô	ˆIô 	ð7Àô 7ótHòT$ðL ˆzÒÙ…Fð r   