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`  oYN&@s#ddlmZddlmZddlmZddlmZGdddZGdddZGd d d e Z d d Z Gd ddZ Gddde Z GdddZGdddeZGdddZGdddeZGdddeZGdddeZGdddZGdd d ZGd!d"d"eZGd#d$d$eZGd%d&d&Zd'e d(ed)ed*ed+ed,ed-ed.ed/ed0ed1ed2ed3ed4ed5ed6ed7ed8ed9eiZGd:d;d;Zd<S)=)MappingProxyType)utils)errors)_header_value_parserc@seZdZddddddZeddZeddZed d Zed d Zd dZ ddZ ddZ dS)AddressNcCs|dk r|s|r$tdtj|\}}|rWtdj|||jrm|jd|j}|j}||_||_ ||_ dS)Nz=addrspec specified when username and/or domain also specifiedz6Invalid addr_spec; only '{}' could be parsed from '{}'r) TypeErrorparserZ get_addr_spec ValueErrorformat all_defects local_partdomain _display_name _username_domain)self display_nameusernamer addr_specZa_srestr-/opt/python35/lib/python3.5/headerregistry.py__init__s          zAddress.__init__cCs|jS)N)r)rrrrr7szAddress.display_namecCs|jS)N)r)rrrrr;szAddress.usernamecCs|jS)N)r)rrrrr?szAddress.domaincCsrt|j}t|t|tjkrCtj|j}n |j}|jrd|d|jS|sndS|S)N@z<>)setrlenr Z DOT_ATOM_ENDS quote_stringr)rnamesetZlprrrrCs  zAddress.addr_speccCs%dj|jj|j|j|jS)Nz1{}(display_name={!r}, username={!r}, domain={!r}))r __class____name__rrr)rrrr__repr__Ss zAddress.__repr__cCst|j}t|t|tjkrCtj|j}n |j}|r|jdkrgdn|j}dj||S|jS)Nz<>rz{} <{}>)rrrr SPECIALSrrr )rrdisprrrr__str__Xs zAddress.__str__cCsPt|t|krdS|j|jkoO|j|jkoO|j|jkS)NF)typerrr)rotherrrr__eq__cs zAddress.__eq__) r __module__ __qualname__rpropertyrrrrr!r$r'rrrrrs %  rc@sjeZdZddddZeddZeddZdd Zd d Zd d Z dS)GroupNcCs+||_|rt|nt|_dS)N)rtuple _addresses)rr addressesrrrrms zGroup.__init__cCs|jS)N)r)rrrrrszGroup.display_namecCs|jS)N)r-)rrrrr.szGroup.addressescCsdj|jj|j|jS)Nz${}(display_name={!r}, addresses={!r})r rr rr.)rrrrr!s zGroup.__repr__cCs|jdkr5t|jdkr5t|jdS|j}|dk rt|}t|t|tjkrtj|}djdd|jD}|rd|n|}dj ||S)Nrz, css|]}t|VqdS)N)str).0xrrr sz Group.__str__.. z{}:{};) rrr.r0rr r"rjoinr )rr#rZadrstrrrrr$s$   z Group.__str__cCs>t|t|krdS|j|jko=|j|jkS)NF)r%rr.)rr&rrrr'sz Group.__eq__) r r(r)rr*rr.r!r$r'rrrrr+ks   r+c@sveZdZddZddZeddZeddZd d Ze d d Z d dZ dS) BaseHeadercCswdgi}|j||tj|drFtj|d|d parse_treer7rrrr<s  zBaseHeader.initcCs|jS)N)rA)rrrrr>szBaseHeader.namecCs t|jS)N)r,rC)rrrrr7szBaseHeader.defectscCs+t|jj|jjt|f|jfS)N)_reconstruct_headerrr __bases__r0__dict__)rrrr __reduce__s    zBaseHeader.__reduce__cCstj||S)N)r0r;)r=r?rrr _reconstructszBaseHeader._reconstructcCsmtjtjtj|jdtjddgtjtjddg|jg}|jd|S)Nz header-name:z header-sepr4Zfwspolicy) r ZHeaderZ HeaderLabelZ ValueTerminalr>ZCFWSListZWhiteSpaceTerminalrBfold)rrKheaderrrrrLszBaseHeader.foldN) r r(r)r;r<r*r>r7rH classmethodrIrLrrrrr6s "  r6cCst||ij|S)N)r%rI)Zcls_namebasesr?rrrrEsrEc@s7eZdZdZeejZeddZ dS)UnstructuredHeaderNcCs+|j||dUs z'AddressHeader.parse..__iter__cSs7g|]-}t|ds-td|gn|qS)r.N)hasattrr+)r1itemrrrrb^s groupsr7z, cSsg|]}t|qSr)r0)r1rerrrrbds r8) rYr0rQr.rXr+rZ all_mailboxeslistr rdr5)r=r?r@rarfaddrr7rrrr9Ls$        zAddressHeader.parsecs8t|jd|_d|_tj||dS)Nrf)r,rZ_groupsr-r\r<)rr]r^)rrrr<hs zAddressHeader.initcCs|jS)N)ri)rrrrrfmszAddressHeader.groupscCs5|jdkr.tdd|jD|_|jS)NcSs&g|]}|jD] }|qqSr)r.)r1groupaddressrrrrbts z+AddressHeader.addresses..)r-r,ri)rrrrr.qszAddressHeader.addresses) r r(r)rRrSrQrNr9r<r*rfr.rr)rrr`Bs r`c@seZdZdZdS)UniqueAddressHeaderr/N)r r(r)rRrrrrrlys rlc@s"eZdZeddZdS)SingleAddressHeadercCs8t|jdkr-tdj|j|jdS)Nr/z9value of single address header {} is not a single addressr)rr.r r r>)rrrrrks zSingleAddressHeader.addressN)r r(r)r*rkrrrrrm~s rmc@seZdZdZdS)UniqueSingleAddressHeaderr/N)r r(r)rRrrrrrns rncseZdZdZeejZeddZ fddZ e ddZ e dd Z e d d ZS) MIMEVersionHeaderr/cCs|j||d<}t||d<|dj|j|jdkrPdn|j|d<|j|d<|jdk rdj|d|d|dr?rrr s z1ParameterizedMIMEHeader.parse..)rQr0rsr rx)r=r?r@rDrrrr9s  zParameterizedMIMEHeader.parsecs)|jd|_tj||dS)Nrx)rZ_paramsr\r<)rr]r^)rrrr<szParameterizedMIMEHeader.initcCs t|jS)N)rr{)rrrrrxszParameterizedMIMEHeader.params) r r(r)rRrNr9r<r*rxrr)rrrws  rwcsgeZdZeejZfddZeddZ eddZ eddZ S) ContentTypeHeadercsGtj||tj|jj|_tj|jj|_dS)N) r\r<rr:rBmaintype _maintypesubtype_subtype)rr]r^)rrrr<szContentTypeHeader.initcCs|jS)N)r~)rrrrr}szContentTypeHeader.maintypecCs|jS)N)r)rrrrrszContentTypeHeader.subtypecCs|jd|jS)N/)r}r)rrrr content_typeszContentTypeHeader.content_type) r r(r)rSr Zparse_content_type_headerrQr<r*r}rrrr)rrr|s r|csCeZdZeejZfddZeddZ S)ContentDispositionHeadercsGtj|||jj}|dkr1|n tj||_dS)N)r\r<rBcontent_dispositionrr:_content_disposition)rr]r^Zcd)rrrr<s zContentDispositionHeader.initcCs|jS)N)r)rrrrrsz,ContentDispositionHeader.content_disposition) r r(r)rSr Z parse_content_disposition_headerrQr<r*rrr)rrrs rcs[eZdZdZeejZeddZ fddZ e ddZ S)ContentTransferEncodingHeaderr/cCs?|j||d<}t||d<|dj|jdS)NrDr8r7)rQr0rsr )r=r?r@rDrrrr9sz#ContentTransferEncodingHeader.parsecs/tj||tj|jj|_dS)N)r\r<rr:rBcte_cte)rr]r^)rrrr<sz"ContentTransferEncodingHeader.initcCs|jS)N)r)rrrrrsz!ContentTransferEncodingHeader.cte) r r(r)rRrSr Z&parse_content_transfer_encoding_headerrQrNr9r<r*rrr)rrrs rZsubjectZdatez resent-datez orig-dateZsenderz resent-senderZtoz resent-toZccz resent-ccZbccz resent-bccfromz resent-fromzreply-toz mime-versionz content-typezcontent-dispositionzcontent-transfer-encodingc@sIeZdZeedddZddZddZdd Zd S) HeaderRegistryTcCs5i|_||_||_|r1|jjtdS)N)registry base_class default_classupdate_default_header_map)rrrZuse_default_maprrrr$s   zHeaderRegistry.__init__cCs||j|jr=rrr map_to_type6szHeaderRegistry.map_to_typecCs>|jj|j|j}td|j||jfiS)N_)rgetryrr%r r)rr>r=rrr __getitem__<szHeaderRegistry.__getitem__cCs||||S)Nr)rr>r?rrr__call__@s zHeaderRegistry.__call__N) r r(r)r6rPrrrrrrrrr s   rN)typesrZemailrrrr rr+r0r6rErPrUrVr_r`rlrmrnrorwr|rrrrrrrr sP[6a  '7 %