PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  oYβ@s6dgZddlZddlZddlZddlZddlmZmZddlm Z ddlm Z ddl m Z ddlm ZddlmZejZd Zejd Zd d Zdd ddZddZddZGdddZGdddeZGdddeZdS)MessageN)BytesIOStringIO)utils)errors)compat32)charset)decode_bz; z[ \(\)<>@,;:\\"/\[\]\?=]cCsJt|jd\}}}|s4|jdfS|j|jfS)N;)str partitionstrip)paramasepbr&/opt/python35/lib/python3.5/message.py _splitparamsrTc Cs|dk rt|dkrt|trf|d7}tj|d|d|d}d||fSy|jdWn?tk r|d7}tj|dd}d||fSYnX|stj|rd |tj |fSd||fSn|SdS) Nr*z%s=%sasciizutf-8z%s="%s") len isinstancetuplerZencode_rfc2231encodeUnicodeEncodeError tspecialssearchquote)rvaluer!rrr _formatparam(s  !  r#cCsIdt|}g}x,|dddkrD|dd}|jd}xR|dkr|jdd||jdd|dr|jd|d}qQW|dkrt|}|d|}d|kr|jd}|d|jjd||ddj}|j|j||d}qW|S)Nr rr"z\"r=)r findcountrindexr lowerappend)sZplistendfirrr _parseparamJs ;   8r/cCsBt|tr1|d|dtj|dfStj|SdS)Nrrr)rrrunquote)r"rrr _unquotevalue^s"r1c@seZdZeddZddZddddd Zd d Zddd d ZddZ ddZ ddZ ddZ ddddZ dddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zdd0d1Zd2d3Zd4d5Zdd6d7Zd8d9Zd:d;Zd<d=Z d>d?Z!d@dAZ"dBdCZ#dDdEZ$dFdGZ%ddHdIdJdKZ&ddHdIdLdMZ'dNdIddOddPdQZ(dHdIdRdSZ)dNdIdTdUZ*ddVdWZ+ddXdYZ,dZd[Z-dd\d]Z.dd^d_Z/d`daZ0ddbl1m2Z2dS)crcCsS||_g|_d|_d|_d|_d|_|_g|_d|_dS)Nz text/plain) policy_headers _unixfrom_payload_charsetZpreambleZepiloguedefects _default_type)selfr2rrr__init__ys      zMessage.__init__cCs |jS)N) as_string)r9rrr__str__szMessage.__str__FrNcCsoddlm}|dkr%|jn|}t}||ddd|d|}|j|d||jS)Nr) Generator mangle_from_F maxheaderlenr2unixfrom)email.generatorr=r2rflattengetvalue)r9r@r?r2r=fpgrrrr;s   zMessage.as_stringcCs |jS)N)as_bytes)r9rrr __bytes__szMessage.__bytes__cCsiddlm}|dkr%|jn|}t}||ddd|}|j|d||jS)Nr)BytesGeneratorr>Fr2r@)rArHr2rrBrC)r9r@r2rHrDrErrrrFs  zMessage.as_bytescCst|jtS)N)rr5list)r9rrr is_multipartszMessage.is_multipartcCs ||_dS)N)r4)r9r@rrr set_unixfromszMessage.set_unixfromcCs|jS)N)r4)r9rrr get_unixfromszMessage.get_unixfromc CsW|jdkr|g|_n5y|jj|Wntk rRtdYnXdS)Nz=Attach is not valid on a message with a non-multipart payload)r5r*AttributeError TypeError)r9payloadrrrattachs  zMessage.attachc CsB|jr4|rdS|dkr)|jS|j|S|dk rlt|jt rltdt|j|j}t|jddj}t|trRt j |r|j dd}|sRy"|j |j ddd}WqRtk r|j dd}YqRXn=|rRy|j d}Wn!tk rQ|j d}YnX|s\|S|d krutj|S|d krtd j|j\}}x!|D]}|jj||qW|S|dkr+t|} t} y$tj | | dd| jSWntjk r*|SYnXt|tr>|S|S)NzExpected list, got %szcontent-transfer-encodingrrsurrogateescaperreplacezraw-unicode-escapezquoted-printablebase64 x-uuencodeuuencodeuuex-uuequietT)rUrVrWrX)rJr5rrIrNtyper getr)rZ_has_surrogatesrdecode get_param LookupError UnicodeErrorquopriZ decodestringr join splitlinesr2Z handle_defectruurCError) r9r.r\rOcteZbpayloadr"r7ZdefectZin_fileZout_filerrr get_payloadsV"    "     !     zMessage.get_payloadcCst|drU|dkr(||_dSt|tsCt|}|j|j}t|dr||jdd|_n ||_|dk r|j|dS)Nrr\rrQ)hasattrr5rCharsetroutput_charsetr\ set_charset)r9rOrrrr set_payload0s     zMessage.set_payloadcCs{|dkr&|jdd|_dSt|tsAt|}||_d|krf|jddd|kr|jddd|jn|jd|j||jkr|j|j|_d|krw|j }y||Wnt k rv|j}|rPy|j dd}Wn$t k rO|j |j }YnX|j||_|jd|YnXdS) Nrz MIME-Versionz1.0z Content-Typez text/plainzContent-Transfer-EncodingrrQ) del_paramr6rrh add_headerZget_output_charset set_paramZ body_encoder5Zget_body_encodingrNrr_ri)r9rrerOrrrrjDs8            zMessage.set_charsetcCs|jS)N)r6)r9rrr get_charsetsszMessage.get_charsetcCs t|jS)N)rr3)r9rrr__len__{szMessage.__len__cCs |j|S)N)r[)r9namerrr __getitem__s zMessage.__getitem__cCs|jj|}|r|j}d}xW|jD]L\}}|j|kr4|d7}||kr4tdj||q4W|jj|jj||dS)Nrrz/There may be at most {} {} headers in a message)r2Zheader_max_countr)r3 ValueErrorformatr*header_store_parse)r9rqvalZ max_countZlnamefoundkvrrr __setitem__s    zMessage.__setitem__cCs^|j}g}x<|jD]1\}}|j|kr|j||fqW||_dS)N)r)r3r*)r9rq newheadersrxryrrr __delitem__s  zMessage.__delitem__cCs |jdd|jDkS)NcSs"g|]\}}|jqSr)r)).0rxryrrr s z(Message.__contains__..)r)r3)r9rqrrr __contains__szMessage.__contains__ccs#x|jD]\}}|Vq WdS)N)r3)r9Zfieldr"rrr__iter__szMessage.__iter__cCsdd|jDS)NcSsg|]\}}|qSrr)r}rxryrrrr~s z Message.keys..)r3)r9rrrkeyssz Message.keyscsfddjDS)Ncs+g|]!\}}jj||qSr)r2header_fetch_parse)r}rxry)r9rrr~s z"Message.values..)r3)r9r)r9rvaluesszMessage.valuescsfddjDS)Ncs1g|]'\}}|jj||fqSr)r2r)r}rxry)r9rrr~s z!Message.items..)r3)r9r)r9ritemssz Message.itemscCsO|j}x<|jD]1\}}|j|kr|jj||SqW|S)N)r)r3r2r)r9rqfailobjrxryrrrr[s  z Message.getcCs|jj||fdS)N)r3r*)r9rqr"rrrset_rawszMessage.set_rawcCst|jjS)N)iterr3copy)r9rrr raw_itemsszMessage.raw_itemscCshg}|j}xE|jD]:\}}|j|kr|j|jj||qW|sd|S|S)N)r)r3r*r2r)r9rqrrrxryrrrget_alls   zMessage.get_allcKsg}xd|jD]V\}}|dkrG|j|jddq|jt|jdd|qW|dk r|jd|tj|||Wtj|}|S)Nr%rr) rr[r/rr rsr*rZ decode_params) r9rheaderrr"paramsprqrvrrr_get_params_preserveqs       zMessage._get_params_preservez content-typeTcCsJt}|j||}||kr+|S|rBdd|DS|SdS)NcSs(g|]\}}|t|fqSr)r1)r}rxryrrrr~s z&Message.get_params..)rr)r9rrr0rrrrr get_paramss  zMessage.get_paramscCsc||kr|SxL|j||D]8\}}|j|jkr#|rWt|S|Sq#W|S)N)rr)r1)r9rrrr0rxryrrrr]s  zMessage.get_paramz Content-Typerc Cst|t r%|r%|||f}||krL|jdkrLd}n|j|}|j|d|s|st|||}qGtj|t|||g}nd}x|jd|d|D]u\} } d} | j|jkr t|||} nt| | |} |s.| }qtj|| g}qW||j|kr|ru|j ||n||=||||d=d|d<||krX|||t}|jd|}||kr+|Stj|jS)Nboundary)rr]rrrstrip)r9rrrrrr get_boundary7s   zMessage.get_boundarycCst}|j|d}||kr6tjdg}d}xY|D]Q\}}|jdkr|jdd|fd}qI|j||fqIW|s|jdd|fg}x|jD]\} } | jdkrgg} xG|D]?\} } | dkr| j| q| jd| | fqWtj| } |j|j j | | q|j| | fqW||_dS) Nz content-typezNo Content-Type header foundFrz"%s"Trz%s=%s) rrrZHeaderParseErrorr)r*r3rrar2ru)r9rrrZ newparamsZfoundpZpkZpvr{hryrrxrvrrr set_boundaryDs2    zMessage.set_boundarycCst}|jd|}||kr+|St|tr|dpGd}y&|djd}t||}Wn"ttfk r|d}YnXy|jdWntk r|SYnX|jS)Nrrzus-asciirzraw-unicode-escape) rr]rrrr r^r_r))r9rrrZpcharsetrFrrrget_content_charsetrs     zMessage.get_content_charsetcsfdd|jDS)Ncsg|]}|jqSr)r)r}part)rrrr~s z(Message.get_charsets..)walk)r9rr)rr get_charsetsszMessage.get_charsetscCs9|jd}|dkrdSt|dj}|S)Nzcontent-dispositionr)r[rr))r9r"c_drrrget_content_dispositions  zMessage.get_content_disposition)r)3__name__ __module__ __qualname__rr:r<r;rGrFrJrKrLrPrfrkrjrorprrrzr|rrrrrr[rrrrmrrrrrrrrr]rnrlrrrrrrrZemail.iteratorsrrrrrrjs`       Z /            !2  . c@seZdZdddZddZddZd.d d Zd/d0d1d2hZddZddZ ddddZ ddddZ ddZ dddZ dddZddd Zd!dd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-ZdS)3MIMEPartNcCs6|dkr"ddlm}|}tj||dS)Nr)default)Z email.policyrrr:)r9r2rrrrr:s zMIMEPart.__init__cCs,|jd}|dkrdS|jdkS)Nzcontent-dispositionF attachment)r[Zcontent_disposition)r9rrrr is_attachmentszMIMEPart.is_attachmentc csc|jrdS|jjd\}}|dkr[||krW|j||fVdS|dkrkdS|dkrx)|jD]}|j||EdHqWdSd|kr|jd|fVd}|jd}|rx+|jD]}|d|kr|}PqW|dkr>|j}|r8|dnd}|dk r_|j||EdHdS)Nrtext multipartrelatedstartz content-idr)rrrr( iter_parts _find_bodyr]rf) r9rpreferencelistmaintypesubtypeZsubpart candidaterZsubpartsrrrrs6         zMIMEPart._find_bodyrhtmlplaincCs^t|}d}xE|j||D]1\}}||kr%|}|}|dkr%Pq%W|S)Nr)rr)r9rZ best_prioZbodyZpriorrrrget_bodys   zMIMEPart.get_bodyrr alternativec csd|jjd\}}|dks3|dkr7dS|jj}|dkr|dkr|jd}|rd}g}x9|D]1}|jd|krd}q|j|qW|r|EdHdS|jd |EdHdSg}xl|D]d}|jjd\}}||f|jkrW|j rW||krW|j|q|VqWdS) NrrrrrFz content-idTr) rrrfrr]r[r*pop _body_typesr) r9rrrrrwZ attachmentsrseenrrriter_attachmentss6        zMIMEPart.iter_attachmentsccs%|jdkr!|jEdHdS)Nr)rrf)r9rrrr!szMIMEPart.iter_partscontent_managercOs+|dkr|jj}|j|||S)N)r2r get_content)r9rargskwrrrr)s  zMIMEPart.get_contentcOs/|dkr|jj}|j|||dS)N)r2r set_content)r9rrrrrrr.s  zMIMEPart.set_contentc Cs5|jdkrO|j}||f}||krOtdj||g}g}xU|jD]J\}}|jjdr|j||fqe|j||fqeW|rt|d|j } || _|j | _ | g|_ n g|_ ||_d||d<|dk r1|j d|dS)NrzCannot convert {} to {}zcontent-r2z multipart/z Content-Typer) rrrsrtr3r) startswithr*rZr2r5rn) r9rZdisallowed_subtypesrZexisting_subtypeZ keep_headersZ part_headersrqr"rrrr_make_multipart3s,         zMIMEPart._make_multipartcCs|jdd|dS)Nrrmixed)rr)r)r9rrrr make_relatedNszMIMEPart.make_relatedcCs|jdd|dS)Nrr)r)r)r9rrrrmake_alternativeQszMIMEPart.make_alternativecCs|jdf|dS)Nr)r)r9rrrr make_mixedTszMIMEPart.make_mixed_dispcOs|jdks$|j|kr8t|d|t|d|j}|j|||r|d|kr|||d<|j|dS)NrZmake_r2zcontent-dispositionzContent-Disposition)rrgetattrrZr2rrP)r9Z_subtyperrrrrrr_add_multipartWs zMIMEPart._add_multipartcOs|jd|dd|dS)NrrZinline)r)r9rrrrr add_relatedaszMIMEPart.add_relatedcOs|jd||dS)Nr)r)r9rrrrradd_alternativedszMIMEPart.add_alternativecOs|jd|dd|dS)Nrrr)r)r9rrrrradd_attachmentgszMIMEPart.add_attachmentcCsg|_d|_dS)N)r3r5)r9rrrclearjs zMIMEPart.clearcCs&dd|jD|_d|_dS)NcSs7g|]-\}}|jjds||fqS)zcontent-)r)r)r}nryrrrr~os z*MIMEPart.clear_content..)r3r5)r9rrr clear_contentnszMIMEPart.clear_content)rrr)rr)rr)rr)rr)rrrr:rrrrrrrrrrrrrrrrrrrrrrrs,     .      rcs"eZdZfddZS) EmailMessagecs-tj||d|kr)d|ds.       "  K