
    -hh_                        / S Qr SSKrSSKrSSKrSSKrSSKJr  SSKJr	  \	R                  r
SrSrSrSrS	rS
rSr\
" S5      r\
" S5      r\R(                  " S\R*                  \R,                  -  5      r\R(                  " S5      r\R(                  " S5      r\R4                  R6                  rS r  SS jr " S S5      r " S S5      r " S S\ 5      r!g))Headerdecode_headermake_header    N)HeaderParseError)charset
     z         N   z 	us-asciizutf-8ai  
  =\?                   # literal =?
  (?P<charset>[^?]*?)   # non-greedy up to the next ? is the charset
  \?                    # literal ?
  (?P<encoding>[qQbB])  # either a "q" or a "b", case insensitive
  \?                    # literal ?
  (?P<encoded>.*?)      # non-greedy up to the next ?= is the encoded string
  \?=                   # literal ?=
  z[\041-\176]+:$z
\n[^ \t]+:c           
         [        U S5      (       aJ  U R                   VVs/ s H0  u  p[        R                  " U[	        U5      5      [	        U5      4PM2     snn$ [
        R                  U 5      (       d  U S 4/$ / nU R                  5        H  n[
        R                  U5      nSnU(       d  M#  UR                  S5      nU(       a  UR                  5       nSnU(       a  UR                  US S 45        U(       ab  UR                  S5      R                  5       nUR                  S5      R                  5       nUR                  S5      n	UR                  XU45        U(       a  M  M     / n
[        U5       H]  u  pUS:  d  M  US   (       d  M  X;S-
     S   (       d  M*  X;S-
     S   R                  5       (       d  MI  U
R                  US-
  5        M_     [        U
5       H  nX=	 M     / nU H  u  pnUc  UR                  X45        M  US:X  a4  [         R"                  R%                  U5      nUR                  UU45        MW  US:X  aU  ['        U5      S	-  nU(       a  US
S S	U-
   -  n [         R(                  R+                  U5      nUR                  UU45        M  [3        SU-   5      e   / nS =nnU He  u  nn[5        U[        5      (       a  [7        US5      nUc  UnUnM0  UU:w  a  UR                  UU45        UnUnMO  Uc  U[8        U-   -  nM`  UU-  nMg     UR                  UU45        U$ s  snnf ! [,        R.                   a    [1        S5      ef = f)N_chunksTr   F      qb   z===zBase64 decoding errorzUnexpected encoding: zraw-unicode-escape)hasattrr   _charset_encodestrecresearch
splitlinessplitpoplstripappendlower	enumerateisspacereversedemail
quoprimimeheader_decodelen
base64mimedecodebinasciiErrorr   AssertionError
isinstancebytesBSPACE)headerstringr   wordslinepartsfirst	unencodedencodingencodeddroplistnwddecoded_wordsencoded_stringwordpaderr	collapsed	last_wordlast_charsets                        5/opt/python-3.13.8/usr/lib/python3.13/email/header.pyr   r   ;   s<   * vy!!+1>>;+9 !!&#g,7WF+9; 	; ;;v E!!#

4 e		!I%,,.	it45))A,,,. 99Q<--/))A,g9: e $" H% Q31Q44EA#JqMMeaCjm.C.C.E.EOOAaC  ! hH   M-2)'  .!:;_##11.AD  $1_(1,F%V"446''..~> $$dG_5 !88!CDD% .3* I##I&gdC  34DI"L$i67I"L!$&II ' i./W;d >> @&'>??@s   7L9/L?? Mc                     [        XUS9nU  H9  u  pVUb   [        U[        5      (       d  [        U5      nUR                  XV5        M;     U$ )N)
maxlinelenheader_namecontinuation_ws)r   r-   Charsetr   )decoded_seqrF   rG   rH   hsr   s          rD   r   r      sN     	*.	0A!
z'7'C'Cg&G		 "
 H    c                   P    \ rS rSr   SS jrS rS rSS jrS rSS jr	S	 r
S
rg)r      Nc                    Uc  [         nO [        U[        5      (       d  [        U5      nX l        XPl        / U l        Ub  U R                  XU5        Uc  [        nX0l        Uc  SU l	        g [        U5      S-   U l	        g )Nr   r   )USASCIIr-   rI   r   _continuation_wsr   r   
MAXLINELEN_maxlinelen
_headerlenr'   )selfrL   r   rF   rG   rH   errorss          rD   __init__Header.__init__   s{    : ?GGW--g&G /=KKF+#J%DO "+.2DOrM   c                 8   U R                  5         / nS nS nU R                   H  u  pEUnU[        R                  :X  a$  UR	                  SS5      nUR                  SS5      nU(       aj  U=(       a    U R                  US   5      nUS;  a%  US;   a  U(       d  UR                  [        5        S nO"US;  a  U(       d  UR                  [        5        U=(       a    U R                  US   5      nUnUR                  U5        M     [        R                  U5      $ )Nasciisurrogateescapereplacer   Nr   )
_normalizer   r   UNKNOWN8BITencoder)   	_nonctextr   SPACEEMPTYSTRINGjoin)	rV   uchunkslastcs	lastspacer1   r   nextcsoriginal_byteshasspaces	            rD   __str__Header.__str__   s    	#||OF F---!'w8I!J'..w	B!?dnnVAY&?!33!33Hu-!%#55iNN5)=4>>&*#=IFNN6"+  ,, ((rM   c                     U[        U 5      :H  $ N)r   )rV   others     rD   __eq__Header.__eq__  s     D	!!rM   c                    Uc  U R                   nO [        U[        5      (       d  [        U5      n[        U[        5      (       dM  UR                  =(       d    SnU[         R
                  :X  a  UR                  SS5      nOUR                  XC5      nUR                  =(       d    SnU[         R
                  :w  a   UR                  XS5        U R                  R                  X45        g ! [         a    US:w  a  e [        n N6f = f)Nr   r\   )r   r-   rI   r   input_codecra   r)   output_codecrb   UnicodeEncodeErrorUTF8r   r   )rV   rL   r   rW   input_charsetoutput_charsets         rD   r   Header.append  s    * ?mmGGW--g&G!S!!#//=:M 4 44HHZ):;HH]3 !--;X1110
 	QL)	 & !:-s   =C+ +DDc                 :    UR                  5       =(       d    US;   $ )N)()\)r"   )rV   rL   s     rD   rc   Header._nonctext9  s     yy{3a#333rM   c                    U R                  5         Uc  U R                  nUS:X  a  Sn[        U R                  UU R                  U5      nS nS =pgU R
                   GH  u  pUb^  U=(       a    U R                  US   5      nUS;  a  U(       a  U	S;  a  UR                  5         OU	S;  a  U(       d  UR                  5         U=(       a    U R                  US   5      nU	nSnUR                  5       n
U
(       a  UR                  SU
S   U	5        OUR                  SSU	5        U
SS   H  nUR                  5         U	R                  b0  UR                  U R                  SUR                  5       -   U	5        MP  UR                  5       nUS [        U5      [        U5      -
   nUR                  XU	5        M     [        U
5      S:  d  GMp  UR                  5         GM     U R
                  (       a  UR                  5         UR                  U5      n[        R!                  U5      (       a  [#        S	R%                  U5      5      eU$ )
Nr   i@B r^   r_   Fr   r   r	   z8header value appears to contain an embedded header: {!r})r`   rT   _ValueFormatterrU   rR   r   rc   add_transitionr   feednewlineheader_encodingr   r'   _str_embedded_headerr   r   format)rV   
splitcharsrF   linesep	formatterrh   rl   ri   r1   r   linesr3   slinefwsvalues                  rD   rb   Header.encode>  s   B 	))J ? J#DOOZ$($9$9:G	###||OF#!?dnnVAY&?!33#w6H'H!002$66y,,.=4>>&*#=IFH%%'Er58W5r2w/ab	!!#**6NN4#8#8#:M#*, !KKME4D	#e* 45CNN3w7 " 5zA~!!#5  ,6 <<$$&w'""5))" $++16%=: :rM   c                 ,   / nS n/ nU R                    HK  u  pEXR:X  a  UR                  U5        M  Ub&  UR                  [        R                  U5      U45        U/nUnMM     U(       a&  UR                  [        R                  U5      U45        Xl         g rp   )r   r   rd   rf   )rV   chunksrC   
last_chunkr1   r   s         rD   r`   Header._normalize  s     
#||OF&!!&)+MM5::j#9<"HI$X
&  , MM5::j1<@ArM   )r   r   rR   rU   rT   )NNNNr	   strict)Nr   )z;, 	Nr   )__name__
__module____qualname____firstlineno__rX   rm   rr   r   rc   rb   r`   __static_attributes__ rM   rD   r   r      s3    '+.2-5-3^)@")*V4
N`rM   r   c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)r   i  c                 v    X l         X0l        [        U5      U l        X@l        / U l        [        U5      U l        g rp   )_maxlenrR   r'   _continuation_ws_len_splitchars_lines_Accumulator_current_line)rV   	headerlenmaxlenrH   r   s        rD   rX   _ValueFormatter.__init__  s4     /$'$8!%))4rM   c                 X    U R                  5         UR                  U R                  5      $ rp   )r   rf   r   )rV   r   s     rD   r   _ValueFormatter._str  s    ||DKK((rM   c                 ,    U R                  [        5      $ rp   )r   NLrV   s    rD   rm   _ValueFormatter.__str__  s    yy}rM   c                    U R                   R                  5       nUS:w  a  U R                   R                  " U6   [        U R                   5      S:  a  U R                   R	                  5       (       a<  U R
                  (       a+  U R
                  S==   [        U R                   5      -  ss'   O.U R
                  R                  [        U R                   5      5        U R                   R                  5         g )N)r	   r   r   r_   )	r   r   pushr'   	is_onlywsr   r   r   reset)rV   end_of_lines     rD   r   _ValueFormatter.newline  s    ((,,.)###[1t!!"Q&!!++--$++B3t'9'9#::""3t'9'9#:;  "rM   c                 <    U R                   R                  SS5        g )Nr	   r   )r   r   r   s    rD   r   _ValueFormatter.add_transition  s    R(rM   c                    UR                   c  U R                  XU R                  5        g UR                  X R	                  5       5      n UR                  S5      nUb  U R                  X5         UR                  5       nU R                  5         U R                  R                  U R                  U5        U H+  nU R                  R                  U R                  U-   5        M-     g ! [         a     g f = f! [         a     g f = fNr   )r   _ascii_splitr   header_encode_lines_maxlengthsr   
IndexError_append_chunkr   r   r   rR   r   r   )rV   r   r1   r   encoded_lines
first_line	last_liner3   s           rD   r   _ValueFormatter.feed  s     ""*c4+;+;<  33F<L<L<NO	&**1-J !s/	%))+I 	 5 5yA!DKKt44t;< "  		  		s$   C) 1C9 )
C65C69
DDc              #      #    U R                   [        U R                  5      -
  v    U R                   U R                  -
  v   M  7frp   )r   r'   r   r   r   s    rD   r   _ValueFormatter._maxlengths  s<     llS!3!3444,,!:!::: s   AAc                     [         R                  " S[        -   S-   X-   5      nUS   (       a  S/US S& OUR                  S5        [	        [        U5      /S-  6  H  u  pU R                  X5        M     g )Nz([z]+)r   r   r   )rer   FWSr   zipiterr   )rV   r   r1   r   r4   parts         rD   r   _ValueFormatter._ascii_split  sf     c%48E"1IIIaLtE{mAo.ICs) /rM   c                 n   U R                   R                  X5        [        U R                   5      U R                  :  Gav  U R                   H  n[        U R                   R                  5       S-
  SS5       He  nUR                  5       (       a$  U R                   U   S   nU(       a  US   U:X  a    O/U R                   US-
     S   nU(       d  MZ  US   U:X  d  Me    O   M    Om   U R                   R                  5       u  pU R                   R                  S:  a  U R                  5         U(       d  SnU R                   R                  X5        g U R                   R                  U5      nU R                  R                  [        U R                   5      5        U R                   R                  U5        g g )Nr   r   r_   r	   )r   r   r'   r   r   range
part_countr"   r   _initial_sizer   pop_fromr   r   r   r   )rV   r   r1   chiprevpartr   	remainders           rD   r   _ValueFormatter._append_chunk   sm   ,t!!"T\\1 &&t11<<>q@!RHAzz||"003A63q62:!#11!A#6q9HxHRL"$4 I  ' !..224	%%33a7LLN """''2**33A6IKKs4#5#567$$Y/9 2rM   )rR   r   r   r   r   r   N)r   r   r   r   rX   r   rm   r   r   r   r   r   r   r   r   rM   rD   r   r     s0    5)	#)#=J;*,0rM   r   c                   p   ^  \ rS rSrSU 4S jjrS rSS jrU 4S jrS rS r	SS jr
S	 rU 4S
 jrSrU =r$ )r   i!  c                 .   > Xl         [        TU ]	  5         g rp   )r   superrX   )rV   initial_size	__class__s     rD   rX   _Accumulator.__init__#  s    )rM   c                 (    U R                  X45        g rp   )r   )rV   r   r1   s      rD   r   _Accumulator.push'  s    SM"rM   c                     XS  n/ XS & U$ rp   r   )rV   r   poppeds      rD   r   _Accumulator.pop_from*  s    bRrM   c                 J   > U R                  5       S:X  a  g[        TU ]	  5       $ )Nr   )r   r   )r   r   r   rV   r   s    rD   r   _Accumulator.pop/  s!    ??aw{}rM   c                 <    [        S U  5       U R                  5      $ )Nc              3   T   #    U  H  u  p[        U5      [        U5      -   v   M      g 7frp   )r'   .0r   r   s      rD   	<genexpr>'_Accumulator.__len__.<locals>.<genexpr>5  s     =93CHSY&s   &()sumr   r   s    rD   __len___Accumulator.__len__4  s     ==%%' 	'rM   c                 :    [         R                  S U  5       5      $ )Nc              3   R   #    U  H  u  p[         R                  X45      v   M     g 7frp   re   rf   r   s      rD   r   '_Accumulator.__str__.<locals>.<genexpr>9  s)      !715IC "-!1!13+!>!>15s   %'r   r   s    rD   rm   _Accumulator.__str__8  s"     !715!7 8 	8rM   c                 $    Uc  / nXS S & SU l         g r   r   )rV   startvals     rD   r   _Accumulator.reset<  s    HQrM   c                 |    U R                   S:H  =(       a'    U (       + =(       d    [        U 5      R                  5       $ r   )r   r   r"   r   s    rD   r   _Accumulator.is_onlywsB  s,    !!1$Jd(*Ic$i6G6G6IJrM   c                     > [         TU ]  5       $ rp   )r   r   r   s    rD   r   _Accumulator.part_countE  s    w  rM   r   )r   rp   )r   r   r   r   rX   r   r   r   r   rm   r   r   r   r   __classcell__)r   s   @rD   r   r   !  s6    #

'8K! !rM   r   )NNr	   )"__all__r   r*   email.quoprimimer$   email.base64mimeemail.errorsr   r   r   rI   r   rd   r/   SPACE8re   rS   r   rQ   rx   compileVERBOSE	MULTILINEr   fcrer   r%   _max_appendr   r   r   r   listr   r   rM   rD   <module>r     s    
    ) %


			

*
w 
zz  
zzBLL " 
zz#$ ::m,  **aH ;? #2f fR}0 }0@%!4 %!rM   