o w[e;)@s>ddlZddlZddlZddlZddlmZGdddZeZd%ddZe ded d Z d D]Z e e e q3d d Z d D] Ze dee qDddZe deddZddZddZddZ   d&ddZeee   d'd d!Zeejje "  d(d#d$ZeeefD]ZeeeqdS))N) quoprimimec@s<eZdZddZddZddZddZd d Zd d Zd S)ContentManagercCsi|_i|_dSN) get_handlers set_handlers)selfr+/usr/lib/python3.10/email/contentmanager.py__init__ s zContentManager.__init__cC||j|<dSr)r)rkeyhandlerrrr add_get_handler zContentManager.add_get_handlercOs|}||jvr|j||g|Ri|S|}||jvr.|j||g|Ri|Sd|jvrA|jd|g|Ri|St|)N)get_content_typerget_content_maintypeKeyError)rmsgargskw content_typemaintyperrr get_contents   zContentManager.get_contentcCr r)r)rtypekeyr rrr add_set_handlerrzContentManager.add_set_handlercOsD|dkr td|||}||||g|Ri|dS)N multipartz"set_content not valid on multipart)r TypeError_find_set_handler clear_content)rrobjrrr rrr set_contents  zContentManager.set_contentc Csd}t|jD]O}||jvr|j|S|j}t|dd}|r'd||fn|}|dur/|}||jvr;|j|S||jvrG|j|S|j}||jvrV|j|Sqd|jvra|jdSt|)N __module__r.)type__mro__r __qualname__getattrjoin__name__r) rrr full_path_for_errortypqnamemodname full_pathnamerrr r's(       z ContentManager._find_set_handlerN) r)r"r&r rrrr!rrrrr rs  rreplacecCs&|jdd}|dd}|j||dS)NTdecodecharsetASCII)errors) get_payload get_paramr2)rr5contentr3rrr get_text_content@s  r9textcCs |jddS)NTr1r6rrrr get_non_text_contentGs r=zaudio image video applicationcCs |dSNrr;r<rrr get_message_contentMs r?zrfc822 external-bodyzmessage/cCst|dSr>)bytesr6r<rrr %get_and_fixup_unknown_message_contentSsrAmessagec sd||f|d<|rOt|dds|jfdd|D}z|D]}|jr+|jd|||j<q!WdStjjyN}z td |j |jd|d}~wwdS) N/z Content-Typerr/csg|] }j|gqSr)header_factoryheader_source_parse).0headermprr dsz _prepare_set..zInvalid header: {})policy) r(hasattrrKdefectsr/emailr5 HeaderDefect ValueErrorformatfold)rrsubtypeheadersrGexcrrHr _prepare_set_s,    rVcCs||dur |dur d}|dur||d<|dur|jd|ddd|dur'||d<|dur:|D] \}}|||q/dSdS)N attachmentzContent-DispositionfilenameT)rGr0z Content-ID) set_paramitems)r dispositionrXcidparamsr valuerrr _finalize_setps"r_cCsVg}|dd}tdt||D]}||||}|t|dqd|S)Nrasciir)rangelenappendbinascii b2a_base64r2r()datamax_line_length encoded_linesunencoded_bytes_per_lineithislinerrr _encode_base64s   rnc s||}|jdfdd}dd}|durztdd|Ddd |jkrLz d ||dfWSty<Ynw|jd krLd ||dd fS||dd }t |d|j}t |} t |t | krnd}n d}t |d krz||fS|d kr||d} || fS|d kr||dd } || fS|dkrt ||d|j} || fS|dkrt |||j} || fStd|)Nrbcs|Srr(lineslineseprr embedded_bodyz#_encode_text..embedded_bodycSsd|dS)N rorprrr normal_bodyruz!_encode_text..normal_bodycss|]}t|VqdSr)rd)rFxrrr sz_encode_text..r)default7bit8bitsurrogateescape zlatin-1base64quoted-printablez$Unknown content transfer encoding {})encode splitlinesrsmaxrir2UnicodeDecodeErrorcte_typer body_encoderfrgrdrnrPrQ) stringr3cterKrqrtrwsniffsniff_qp sniff_base64rhrrrr _encode_textsL        rplainutf-8c Csdt|d|| t||||j\}} || |jdtjj||dd||d<t |||||dS)Nr:r3Tr0Content-Transfer-Encoding) rVrrK set_payloadrYrNr3ALIASESgetr_) rrrSr3rr[rXr\r]rTpayloadrrr set_text_contents rrfc822c Cs|dkrtd|dkr |dvrtd||durdn|}n|dkr2|dvr/td |d }n|dur8d }t|d ||||g||d <t|||||dS) Npartialz4message/partial is not supported for Message objectsr)Nr{r|binaryz*message/rfc822 parts do not support cte={}r|z external-body)Nr{z1message/external-body parts do not support cte={}r{rBr)rPrQrVrr_) rrBrSrr[rXr\r]rTrrr set_message_contents( rrc Cst|||| |dkrt||jjd}n'|dkr'tj|dddd}|d}n|dkr1|d}n |d vr;|dd }||||d <t|||||dS) Nr)rirFT)istextrG quotetabsrbr{)r|rr}r) rVrnrKrirfb2a_qpr2rr_) rrhrrSrr[rXr\r]rTrrr set_bytes_contents    rr)rrNNNNNN)rNNNNNN)rNNNNN)rf email.charsetrN email.message email.errorsrrraw_data_managerr9rr=splitrr?rSrArVr_rnrrrstrrrBMessagerr@ bytearray memoryviewr+rrrr sP 6     '