Ë
    ì—0j  ã                   ó¨   — d Z g d¢ZdZdZdZdZ	 ddlmZmZ d	„ Z
d
„ Zdd„Zdd„Zdd„Zdd„Zd„ Zd„ Zd„ Zedk(  r e«        yy# e	$ r dZdZY Œ8w xY w)zHConversions to/from quoted-printable transport encoding as per RFC 1521.)ÚencodeÚdecodeÚencodestringÚdecodestringó   =éL   s   0123456789ABCDEFó    é    )Úa2b_qpÚb2a_qpNc                 óx   — t        | t        «      sJ ‚| dv r|S | dk(  r|S | t        k(  xs d| cxk  xr dk  nc  S )zìDecide whether a particular byte ordinal needs to be quoted.

    The 'quotetabs' flag indicates whether embedded tabs and spaces should be
    quoted.  Note that line-ending tabs and spaces are always encoded, as per
    RFC 1521.
    ó    	ó   _ó    ó   ~)Ú
isinstanceÚbytesÚESCAPE)ÚcÚ	quotetabsÚheaders      ú#/usr/local/lib/python3.12/quopri.pyÚneedsquotingr      sI   € ô �aœÔÐÐØˆF�{ØÐàˆD‚yØˆØ”‰;Ò1˜t qÖ0¨DÔ0Ð1Ð1r   c                 ó¨   — t        | t        «      rt        | «      dk(  sJ ‚t        | «      } t        t        t
        | dz     t
        | dz     f«      z   S )zQuote a single character.é   é   )r   r   ÚlenÚordr   ÚHEX©r   s    r   Úquoter    $   sJ   € ä�aœÔ¤C¨£F¨A¢IÐ-Ð-ÜˆA‹€AÜ”Eœ3˜q "™u™:¤s¨1¨R©4¡yÐ1Ó2Ñ2Ð2r   c                 ó€  — t         �0| j                  «       }t        |||¬«      }|j                  |«       y|dfd„}d}| j                  «       x}rág }	d}
|dd dk(  r|dd }d}
|D ]P  }t	        |f«      }t        |||«      rt        |«      }|r|dk(  r|	j                  d«       Œ@|	j                  |«       ŒR |� ||«       t        j                  |	«      }t        |«      t        kD  r3 ||dt        d	z
   d
¬«       |t        d	z
  d }t        |«      t        kD  rŒ3|}| j                  «       x}rŒá|� ||
¬«       yy)av  Read 'input', apply quoted-printable encoding, and write to 'output'.

    'input' and 'output' are binary file objects. The 'quotetabs' flag
    indicates whether embedded tabs and spaces should be quoted. Note that
    line-ending tabs and spaces are always encoded, as per RFC 1521.
    The 'header' flag indicates whether we are encoding spaces as _ as per RFC
    1522.N©r   r   ó   
c                 óÒ   — | r.| dd  dv r'|j                  | d d t        | dd  «      z   |z   «       y | dk(  r|j                  t        | «      |z   «       y |j                  | |z   «       y )Néÿÿÿÿr   ó   .)Úwriter    )ÚsÚoutputÚlineEnds      r   r'   zencode.<locals>.write;   sf   € ñ ��2�3�˜6Ñ!Ø�L‰L˜˜3˜B˜¤%¨¨"¨#¨£-Ñ/°'Ñ9Õ:Ø�$ŠYØ�L‰Lœ˜q› GÑ+Õ,à�L‰L˜˜W™Õ%r   r   r%   r   r   r   s   =
)r*   )r   Úreadr'   Úreadliner   r   r    ÚappendÚEMPTYSTRINGÚjoinr   ÚMAXLINESIZE)Úinputr)   r   r   ÚdataÚodatar'   ÚprevlineÚlineÚoutlineÚstrippedr   Úthislines                r   r   r   ,   s\  € ô ÐØ�z‰z‹|ˆÜ�t y¸Ô@ˆØ�‰�UÔØà¨ó &ð €HØ—.‘.Ó"Ð
"ˆ$Ð
"ØˆàˆØ��ˆ9˜ÒØ˜˜�9ˆDØˆHãˆAÜ�q�d“ˆAÜ˜A˜y¨&Ô1Ü˜!“H�Ù˜!˜tš)Ø—‘˜tÕ$à—‘˜qÕ!ð ð ÐÙ�(ŒOô ×#Ñ# GÓ,ˆÜ�(‹mœkÒ)ñ �(˜>œK¨™MÐ*°FÕ;Ø¤¨A¡ Ð/ˆHô	 �(‹mœkÓ)ð ˆð9 —.‘.Ó"Ð
"ˆ$Ñ
"ð< ÐÙˆh Ö)ð r   c                 ó�   — t         �t        | ||¬«      S ddlm}  || «      } |«       }t        ||||«       |j	                  «       S )Nr"   r	   ©ÚBytesIO)r   Úior;   r   Úgetvalue)r(   r   r   r;   ÚinfpÚoutfps         r   r   r   g   sE   € ÜÐÜ�a 9°VÔ<Ð<ÝÙ�1‹:€DÙ‹I€EÜ
ˆ4�˜	 6Ô*Ø�>‰>ÓÐr   c           	      óN  — t         �/| j                  «       }t        ||¬«      }|j                  |«       yd}| j                  «       x}�rGdt	        |«      }}|dkD  r7||dz
  | dk(  r,d}	|dz
  }|dkD  r"||dz
  | dv r|dz
  }|dkD  r||dz
  | dv rŒnd}	||k  rË|||dz    }
|
dk(  r|r|d	z   }|dz   }n«|
t
        k7  r||
z   }|dz   }n—|dz   |k(  r|	sd}	n�|dz   |k  r!||dz   |d
z    t
        k(  r|t
        z   }|d
z   }na|d
z   |k  rOt        ||dz   |d
z    «      r;t        ||d
z   |dz    «      r'|t        t        ||dz   |dz    «      f«      z   }|dz   }n
||
z   }|dz   }||k  rŒË|	s|j                  |dz   «       d}| j                  «       x}r�ŒG|r|j                  |«       yy)z»Read 'input', apply quoted-printable decoding, and write to 'output'.
    'input' and 'output' are binary file objects.
    If 'header' is true, decode underscore as space (per RFC 1522).N©r   r   r	   r   r#   s    	r   r   é   é   )	r
   r+   r'   r,   r   r   Úishexr   Úunhex)r1   r)   r   r2   r3   Únewr5   ÚiÚnÚpartialr   s              r   r   r   r   s  € ô
 ÐØ�z‰z‹|ˆÜ�t FÔ+ˆØ�‰�UÔØà
€CØ—.‘.Ó"Ð
"ˆ$Ñ
"Ø”#�d“)ˆ1ˆØˆqŠ5�T˜!˜A™#˜a�[ EÒ)ØˆG˜Q˜q™S˜à�a’%˜D  1¡ Q˜K¨8Ñ3Ø�a‘C�ð �a’%˜D  1¡ Q˜K¨8Ó3ð ˆGØ�!ŠeØ�Q�q˜‘s�ˆAØ�DŠy™VØ˜D‘j� a¨¡c¡!Ø”f’Ø˜A‘g� 1 Q¡3™qØ�1‘˜’¡'Ø�˜UØ�1‘�q’˜T ! A¡# a¨¡c˜]¬fÒ4ØœF‘l�¨¨!©¡AØ�1‘�q’œU 4¨¨!©¨A¨a©C =Ô1´e¸DÀÀ1ÁÀQÀqÁS¸MÔ6JØœE¤5¨¨a°©c°!°A±#¨Ó#7Ð"9Ó:Ñ:�ÀÀ!Á¹Aà˜A‘g� 1 Q¡3˜qð �!‹eñ Ø�L‰L˜˜u™Ô%ØˆCð3 —.‘.Ó"Ð
"ˆ$Ò
"ñ4 Ø�‰�SÕð r   c                 óŽ   — t         �t        | |¬«      S ddlm}  || «      } |«       }t        |||¬«       |j	                  «       S )NrA   r	   r:   )r
   r<   r;   r   r=   )r(   r   r;   r>   r?   s        r   r   r   ›   sA   € ÜÐÜ�a Ô'Ð'ÝÙ�1‹:€DÙ‹I€EÜ
ˆ4�˜vÕ&Ø�>‰>ÓÐr   c                 óŽ   — t        | t        «      sJ ‚d| cxk  xr dk  nc xs" d| cxk  xr dk  nc xs d| cxk  xr dk  S c S )zDReturn true if the byte ordinal 'c' is a hexadecimal digit in ASCII.ó   0ó   9ó   aó   fó   Aó   F)r   r   r   s    r   rD   rD   §   sF   € ä�aœÔÐÐØ�1Ö˜ÔÒF ¨Ö 1¨TÔ 1ÒF°T¸QÖ5FÀ$Ñ5FÐFÑ5FÐFr   c                 ó&  — d}| D ]‰  }t        |f«      }d|cxk  rdk  rn nt        d«      }nMd|cxk  rdk  rn nt        d«      dz
  }n0d	|cxk  rd
k  rn nt        d	«      dz
  }nJ dt        |«      z   «       ‚|dz  t        |«      |z
  z   }Œ‹ |S )z.Get the integer value of a hexadecimal number.r	   rL   rM   Ú0rN   rO   Úaé
   rP   rQ   znon-hex digit r   )r   r   Úrepr)r(   Úbitsr   rG   s       r   rE   rE   ¬   s—   € à€DÛˆÜ�1�$‹KˆØ�1Ô˜ÕÜ�C“‰AØ�QÔ˜$ÕÜ�C“˜‘‰AØ�QÔ˜$ÕÜ�D“	˜"‘‰Aà2Ð*¬4°«7Ñ2Ó2�5Ø�B‰wœ#˜a›& 1™*Ñ%‰ð ð €Kr   c                  óÂ  — dd l } dd l}	 |j                  | j                  dd  d«      \  }}d}d}D ]  \  }}|d	k(  rd
}|dk(  sŒd
}Œ |r/|r-| j                  | _        t        d«       | j                  d«       sdg}d}	|D ]†  }
|
dk(  r| j                  j                  }n	 t        |
d«      }	 |r!t        || j
                  j                  «       n!t        || j
                  j                  |«       |
dk7  sŒw|j                  «        Œˆ |	r| j                  |	«       y y # |j                  $ rY}| j                  | _        t        |«       t        d«       t        d«       t        d«       | j                  d«       Y d }~�ŒXd }~ww xY w# t        $ r.}| j                  j                  |
›d|›d�«       d}	Y d }~�Œ;d }~ww xY w# |
dk7  r|j                  «        w w xY w)Nr	   r   Útdz"usage: quopri [-t | -d] [file] ...z-t: quote tabsz-d: decode; default encoderB   Fz-tTz-dz -t and -d are mutually exclusiveÚ-Úrbz: can't open (z)
)ÚsysÚgetoptÚargvÚerrorÚstderrÚstdoutÚprintÚexitÚstdinÚbufferÚopenÚOSErrorr'   r   r   Úclose)r\   r]   ÚoptsÚargsÚmsgÚdecoÚtabsÚorT   ÚstsÚfileÚfps               r   Úmainrr   ¾   s°  € ÛÛðØ—]‘] 3§8¡8¨A¨B <°Ó6‰
ˆˆdð €DØ€DÛ‰ˆˆ1Ø�Š9˜T�dØ�‹9˜T‘dð ñ ‘Ø—Z‘ZˆŒ
ÜÐ0Ô1Ø�‰�ŒÙ˜˜�Ø
€CÛˆØ�3Š;Ø—‘×!Ñ!‰BðÜ˜$ Ó%�ð
	ÙÜ�r˜3Ÿ:™:×,Ñ,Õ-ä�r˜3Ÿ:™:×,Ñ,¨dÔ3à�s‹{Ø—‘•
ð# ñ$ Ø�‰��ð øðI �<‰<ò Ø—Z‘ZˆŒ
ÜˆcŒ
ÜÐ2Ô3ÜÐÔÜÐ*Ô+Ø�‰��Šûðûô0 ò Ø—
‘
× Ñ ºDÂ#Ð!FÔGØ�Ýûðûð �sŠ{Ø—‘•
ð ús=   Š"D! Â#FÂ0AGÄ!F	Ä0AFÆF	Æ	GÆ#F>Æ>GÇGÚ__main__)F)FF)Ú__doc__Ú__all__r   r0   r   r.   Úbinasciir
   r   ÚImportErrorr   r    r   r   r   r   rD   rE   rr   Ú__name__© r   r   Ú<module>rz      s�   ðñ Oò ?€à	€Ø€Ø€Ø€ðß'ò2ò3ó9*óvó'óRòGò
ò$*ð\ ˆzÒÙ…Fð øðy ò Ø€FØ‚Fðús   �A Á	AÁA