
    F\h\)                     Z   S SK r S SKrS SKrS SKrS SKJr   " S S5      r\" 5       rSS jr\R                  S\5        S r
SR                  5        H  r\R                  \\
5        M     CS	 rS
R                  5        H  r\R                  S\-   \5        M     CS r\R                  S\5        S rS rS rS r   SS jr\R+                  \\5           SS jr\R+                  \R0                  R2                  \5           SS jr\\\4 H  r\R+                  \\5        M     Cg)    N)
quoprimimec                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
ContentManager   c                      0 U l         0 U l        g Nget_handlersset_handlers)selfs    +/usr/lib/python3.13/email/contentmanager.py__init__ContentManager.__init__	   s        c                      X R                   U'   g r   )r
   )r   keyhandlers      r   add_get_handlerContentManager.add_get_handler   s    !(#r   c                 J   UR                  5       nX@R                  ;   a  U R                  U   " U/UQ70 UD6$ UR                  5       nXPR                  ;   a  U R                  U   " U/UQ70 UD6$ SU R                  ;   a  U R                  S   " U/UQ70 UD6$ [        U5      e)N )get_content_typer
   get_content_maintypeKeyError)r   msgargskwcontent_typemaintypes         r   get_contentContentManager.get_content   s    ++-,,,$$\23DDDD++-((($$X.s@T@R@@"""$$R(:t:r::|$$r   c                      X R                   U'   g r   )r   )r   typekeyr   s      r   add_set_handlerContentManager.add_set_handler   s    %,'"r   c                     UR                  5       S:X  a  [        S5      eU R                  X5      nUR                  5         U" X/UQ70 UD6  g )N	multipartz"set_content not valid on multipart)r   	TypeError_find_set_handlerclear_content)r   r   objr   r   r   s         r   set_contentContentManager.set_content   sO    ##%4 @AA((2&4&2&r   c                    S n[        U5      R                   H  nX@R                  ;   a  U R                  U   s  $ UR                  n[	        USS5      nU(       a  SR                  Xe45      OUnUc  UnXpR                  ;   a  U R                  U   s  $ XPR                  ;   a  U R                  U   s  $ UR                  nXR                  ;   d  M  U R                  U   s  $    S U R                  ;   a  U R                  S    $ [        U5      e)N
__module__r   .)type__mro__r   __qualname__getattrjoin__name__r   )	r   r   r+   full_path_for_errortypqnamemodname	full_pathnames	            r   r)    ContentManager._find_set_handler'   s    "9$$C'''((--$$Ec<4G6='!125I"*&/#---((33)))((//<<D(((((.. % 4$$$$$T***++r   r	   N)r6   r/   r3   __firstlineno__r   r   r    r$   r,   r)   __static_attributes__ r   r   r   r      s     )	%-',r   r   c                 b    U R                  SS9nU R                  SS5      nUR                  X1S9$ )NTdecodecharsetASCII)errors)get_payload	get_paramrC   )r   rF   contentrD   s       r   get_text_contentrJ   @   s3    ooTo*GmmIw/G>>'>11r   textc                      U R                  SS9$ )NTrB   rG   r   s    r   get_non_text_contentrO   G   s    ??$?''r   zaudio image video applicationc                 $    U R                  S5      $ Nr   rM   rN   s    r   get_message_contentrR   N   s    ??1r   zrfc822 external-bodyzmessage/c                 6    [        U R                  S5      5      $ rQ   )bytesrG   rN   s    r   %get_and_fixup_unknown_message_contentrU   U   s     #$$r   messagec           	         SR                  X45      U S'   U(       a  [        US   S5      (       d;  U R                  nU Vs/ s H"  nUR                  " UR	                  U/5      6 PM$     nn U H1  nUR
                  (       a  UR
                  S   eXPUR                  '   M3     g g s  snf ! [        R                  R                   a7  n[        SR                  WR                  U R                  S95      5      UeS nAff = f)N/zContent-Typer   r<   zInvalid header: {})policy)r5   hasattrrY   header_factoryheader_source_parsedefectsr<   emailrF   HeaderDefect
ValueErrorformatfold)r   r   subtypeheadersmpheaderexcs          r   _prepare_setrh   a   s    ((H#67Cwqz6**B%,.%,6 (("*@*@&*JK%,  .	J!>> ..++#)FKK  " . ||(( 	J188 &3:: >@ AFIJ	Js   )B&-7B+ +D 	2C;;D c                     Uc  Ub  SnUb  XS'   Ub  U R                  SUSSS9  Ub  X0S'   Ub+  UR                  5        H  u  pVU R                  XV5        M     g g )N
attachmentzContent-DispositionfilenameT)rf   replacez
Content-ID)	set_paramitems)r   dispositionrk   cidparamsr   values          r   _finalize_setrs   r   s{    x3"%0!"j2" 	 	$ L ,,.JCMM#% ) r   c                     / nUS-  S-  n[        S[        U 5      U5       H=  nXXC-    nUR                  [        R                  " U5      R                  S5      5        M?     SR                  U5      $ )N      r   asciir   )rangelenappendbinascii
b2a_base64rC   r5   )datamax_line_lengthencoded_linesunencoded_bytes_per_lineithislines         r   _encode_base64r      sq    M.!3a71c$i!9:!45X00:AA'JK ; 77=!!r   c                   ^ U R                  U5      R                  5       nUR                  R                  S5      mU4S jnS nUc  [        S U 5       SS9UR                  ::  a   SU" U5      R                  S5      4$ U" US S
 5      n[        R                  " UR                  S5      UR                  5      n[        R                  " U5      n	[        U5      [        U	5      :  a  SnOSn[        U5      S
::  a  X(4$ US:X  a  U" U5      R                  S5      n
X*4$ US:X  a  U" U5      R                  SS	5      n
X*4$ US:X  a9  [        R                  " U" U5      R                  S5      UR                  5      n
X*4$ US:X  a  [        U" U5      UR                  5      n
X*4$ [        SR                  U5      5      e! [         a     Of = fUR                  S:X  d  GMb  SU" U5      R                  SS	5      4$ )Nrw   c                 ,   > TR                  U 5      T-   $ r   r5   )lineslineseps    r   embedded_body#_encode_text.<locals>.embedded_body   s    W\\%%87%BBr   c                 *    SR                  U 5      S-   $ )N   
r   )r   s    r   normal_body!_encode_text.<locals>.normal_body   s    5::e#4u#<<r   c              3   8   #    U  H  n[        U5      v   M     g 7fr   )ry   ).0xs     r   	<genexpr>_encode_text.<locals>.<genexpr>   s     &1As   r   )default7bit8bitsurrogateescape
   zlatin-1base64quoted-printablez$Unknown content transfer encoding {})encode
splitlinesr   maxr~   rC   UnicodeDecodeErrorcte_typer   body_encoder{   r|   ry   r   r`   ra   )stringrD   cterY   r   r   r   sniffsniff_qpsniff_base64r}   r   s              @r   _encode_textr      s   MM'"--/Enn##G,GB<
{&&2f6L6LL{5188AAA
 eCRj)))%,,y*A*0*@*@B**51x=3|,,C$C5zR}$
f}5!((1 9 
5!((2CD 9 
"	"%%k%&8&?&?	&J&,&<&<> 9	 
mE2F4J4JK 9 ?FFsKLL3 & &({5188BSTTTs   (G   
GGc
                    [        U SX)5        [        XX@R                  5      u  pJU R                  U
5        U R	                  S[
        R                  R                  R                  X35      SS9  X@S'   [        XXgU5        g )NrK   rD   Trl   Content-Transfer-Encoding)
rh   r   rY   set_payloadrm   r^   rD   ALIASESgetrs   )r   r   rc   rD   r   ro   rk   rp   rq   rd   payloads              r   set_text_contentr      ss     fg/jjALCOOGMM)--''++G=    (+#$#H6:r   c	                 >   US:X  a  [        S5      eUS:X  a(  US;  a  [        SR                  U5      5      eUc  SOUnO.US:X  a#  US;  a  [        S	R                  U5      5      eS
nOUc  S
n[        U SX(5        U R                  U/5        X0S'   [	        XXVU5        g )Npartialz4message/partial is not supported for Message objectsrfc822)Nr   r   binaryz*message/rfc822 parts do not support cte={}r   zexternal-body)Nr   z1message/external-body parts do not support cte={}r   rV   r   )r`   ra   rh   r   rs   )	r   rV   rc   r   ro   rk   rp   rq   rd   s	            r   set_message_contentr      s     )OPP(66<CCCHJ J f	O	#n$CJJ3OQ Q	 i2OOWI'*#$#H6:r   c
                 f   [        XX95        US:X  a  [        XR                  R                  S9nO_US:X  a)  [        R
                  " USSSS9nUR                  S5      nO0US:X  a  UR                  S5      nOUS	;   a  UR                  SS
5      nU R                  U5        X@S'   [        XXgU5        g )Nr   )r~   r   FT)istextrf   	quotetabsrw   r   )r   r   r   r   )	rh   r   rY   r~   r{   b2a_qprC   r   rs   )
r   r}   r   rc   r   ro   rk   rp   rq   rd   s
             r   set_bytes_contentr      s     1
hdJJ4N4NO	"	" tE%4P{{7#	{{7#	"	"{{7$56OOD'*#$#H6:r   r   )plainzutf-8NNNNNN)r   NNNNNN)r   NNNNN)r{   email.charsetr^   email.messageemail.errorsr   r   raw_data_managerrJ   r   rO   splitr   rR   rc   rU   rh   rs   r   r   r   r$   strr   rV   Messager   rT   	bytearray
memoryviewr8   r@   r   r   <module>r      s[       3, 3,l "# 2     )9 :(/557H$$X/CD 8%++-G$$Z%79LM .%     !FHJ"&*"$N IM:>*.
;     &6 7 =A<@,0;<     !6!68K L 9A:>*.;& 9j)C$$S*;< *r   