U e5dË)ã@s.ddlZddlZddlZddlZddlmZGdd„dƒZeƒZd%dd„Ze  de¡d d „Z d   ¡D]Z e  e e ¡qfd d „Z d  ¡D]Ze  dee ¡qˆdd„Ze  de¡dd„Zdd„Zdd„Zdd„Zd&dd„Ze ee¡d'd d!„Ze ejje¡d(d#d$„ZeeefD]Ze ee¡�qdS))éN)Ú quoprimimec@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚContentManagercCsi|_i|_dS©N)Ú get_handlersÚ set_handlers)Úself©rú,/usr/lib64/python3.8/email/contentmanager.pyÚ__init__ szContentManager.__init__cCs||j|<dSr)r)rÚkeyÚhandlerrrr Úadd_get_handler szContentManager.add_get_handlercOs|| ¡}||jkr(|j||f|ž|ŽS| ¡}||jkrP|j||f|ž|ŽSd|jkrp|jd|f|ž|ŽSt|ƒ‚dS)NÚ)Zget_content_typerÚget_content_maintypeÚKeyError)rÚmsgÚargsÚkwZ content_typeÚmaintyperrr Ú get_contents   zContentManager.get_contentcCs||j|<dSr)r)rZtypekeyr rrr Úadd_set_handlerszContentManager.add_set_handlercOs>| ¡dkrtdƒ‚| ||¡}| ¡|||f|ž|ŽdS)NZ multipartz"set_content not valid on multipart)rÚ TypeErrorÚ_find_set_handlerZ clear_content)rrÚobjrrr rrr Ú set_contents   zContentManager.set_contentc CsÎd}t|ƒjD]ž}||jkr*|j|S|j}t|ddƒ}|rNd ||f¡n|}|dkr^|}||jkrv|j|S||jkrŽ|j|S|j}||jkr|j|Sqd|jkrÂ|jdSt|ƒ‚dS)NÚ __module__rÚ.)ÚtypeÚ__mro__rÚ __qualname__ÚgetattrÚjoinÚ__name__r) rrrZfull_path_for_errorÚtypZqnameÚmodnameÚ full_pathÚnamerrr r's&       z ContentManager._find_set_handlerN) r"rrr r rrrrrrrr rs   rÚreplacecCs&|jdd�}| dd¡}|j||d�S)NT©ÚdecodeÚcharsetÚASCII)Úerrors)Ú get_payloadZ get_paramr))rr,Zcontentr*rrr Úget_text_content@s  r.ÚtextcCs |jdd�S)NTr(©r-©rrrr Úget_non_text_contentGsr2zaudio image video applicationcCs | d¡S©Nrr0r1rrr Úget_message_contentMsr4zrfc822 external-bodyzmessage/cCst| d¡ƒSr3)Úbytesr-r1rrr Ú%get_and_fixup_unknown_message_contentSsr6Úmessagec sªd ||f¡|d<|r¦t|ddƒs<|j‰‡fdd„|Dƒ}z(|D]}|jrV|jd‚|||j<qBWn@tjjk r¤}ztd  |j |jd�¡ƒ|‚W5d}~XYnXdS) Nú/z Content-Typerr&csg|]}ˆjˆ |g¡Ž‘qSr)Zheader_factoryZheader_source_parse)Ú.0Úheader©Zmprr Ú dsÿz _prepare_set..zInvalid header: {})Úpolicy) r!Úhasattrr=Zdefectsr&Úemailr,Z HeaderDefectÚ ValueErrorÚformatZfold)rrÚsubtypeÚheadersr:Úexcrr;r Ú _prepare_set_s$ ÿ  ÿÿrEcCsx|dkr|dk rd}|dk r$||d<|dk r>|jd|ddd�|dk rN||d<|dk rt| ¡D]\}}| ||¡q^dS)NZ attachmentzContent-DispositionÚfilenameT)r:r'z Content-ID)Ú set_paramÚitems)rÚ dispositionrFÚcidÚparamsr Úvaluerrr Ú _finalize_setpsýrMcCsVg}|dd}tdt|ƒ|ƒD]*}||||…}| t |¡ d¡¡q d |¡S)NéérÚasciir)ÚrangeÚlenÚappendÚbinasciiÚ b2a_base64r)r!)ÚdataÚmax_line_lengthZ encoded_linesZunencoded_bytes_per_lineÚiZthislinerrr Ú_encode_base64…s  rYc s‚| |¡ ¡}|j d¡‰‡fdd„}dd„}|dkrötdd„|Dƒdd �|jkršzd ||ƒ d¡fWStk rzYnX|jd kršd ||ƒ dd ¡fS||dd …ƒ}t  | d¡|j¡}t   |¡} t |ƒt | ƒkrÞd}nd}t |ƒd krö||fS|d k�r||ƒ d¡} nj|d k�r,||ƒ dd ¡} nN|dk�rPt  ||ƒ d¡|j¡} n*|dk�rlt ||ƒ|jƒ} ntd |¡ƒ‚|| fS)NrPcsˆ |¡ˆSr©r!©Úlines©Úlineseprr Ú embedded_body‘óz#_encode_text..embedded_bodycSsd |¡dS)Nó rZr[rrr Ú normal_body’r`z!_encode_text..normal_bodycss|]}t|ƒVqdSr)rR)r9Úxrrr Ú •sz_encode_text..r)ÚdefaultÚ7bitÚ8bitÚsurrogateescapeé zlatin-1Úbase64úquoted-printablez$Unknown content transfer encoding {})ÚencodeÚ splitlinesr^ÚmaxrWr)ÚUnicodeDecodeErrorZcte_typerZ body_encoderTrUrRrYr@rA) Ústringr*Úcter=r\r_rbZsniffZsniff_qpZ sniff_base64rVrr]r Ú _encode_textŽsD    ÿ     ÿ rrÚplainúutf-8c Csdt|d|| ƒt||||jƒ\}} | | ¡|jdtjj ||¡dd�||d<t |||||ƒdS)Nr/r*T)r'úContent-Transfer-Encoding) rErrr=Ú set_payloadrGr?r*ZALIASESÚgetrM) rrprBr*rqrIrFrJrKrCZpayloadrrr Úset_text_contentµs þrxÚrfc822c Cs¦|dkrtdƒ‚|dkr@|dkr.td |¡ƒ‚|dkr:dn|}n0|dkrd|dkr^td  |¡ƒ‚d }n |dkrpd }t|d ||ƒ| |g¡||d <t|||||ƒdS) NÚpartialz4message/partial is not supported for Message objectsry)NrfrgÚbinaryz*message/rfc822 parts do not support cte={}rgz external-body)Nrfz1message/external-body parts do not support cte={}rfr7ru)r@rArErvrM) rr7rBrqrIrFrJrKrCrrr Úset_message_contentÃs(ÿÿ r|rjc Csœt|||| ƒ|dkr(t||jjd�}nN|dkrNtj|dddd�}| d¡}n(|dkrb| d¡n|d krv| dd ¡}| |¡||d <t |||||ƒdS) Nrj)rWrkFT)Úistextr:Z quotetabsrPrf)rgr{rhru) rErYr=rWrTZb2a_qpr)rlrvrM) rrVrrBrqrIrFrJrKrCrrr Úset_bytes_contentäs    r~)r')rsrtNNNNNN)ryNNNNNN)rjNNNNN)rTZ email.charsetr?Z email.messageZ email.errorsrrZraw_data_managerr.r r2Úsplitrr4rBr6rErMrYrrrxrÚstrr|r7ZMessager~r5Ú bytearrayÚ memoryviewr#rrrr Ús^ 6    ÿ 'þ þ þ