<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]N              &   @   s#  d  d l  m Z d  d l m Z d  d l m Z d  d l m Z Gd d   d  Z Gd d   d  Z Gd	 d
   d
 e	  Z
 d d   Z Gd d   d  Z Gd d   d e  Z Gd d   d  Z Gd d   d e  Z Gd d   d  Z Gd d   d e  Z Gd d   d e  Z Gd d   d e  Z Gd d   d  Z Gd d    d   Z Gd! d"   d" e  Z Gd# d$   d$ e  Z Gd% d&   d&  Z d' e d( e d) e d* e d+ e d, e d- e d. e d/ e d0 e d1 e d2 e d3 e d4 e d5 e d6 e d7 e d8 e d9 e i Z Gd: d;   d;  Z d< S)=    )MappingProxyType)utils)errors)_header_value_parserc               @   s   e  Z d  Z d d d d d d  Z e d d    Z e d d    Z e d	 d
    Z e d d    Z d d   Z	 d d   Z
 d d   Z d S)Address Nc             C   s   | d  k	 r | s | r$ t  d   t j |  \ } } | rW t d j | |    | j rm | j d  | j } | j } | |  _ | |  _	 | |  _
 d  S)Nz=addrspec specified when username and/or domain also specifiedz6Invalid addr_spec; only '{}' could be parsed from '{}'r   )	TypeErrorparserZget_addr_spec
ValueErrorformatall_defects
local_partdomain_display_name	_username_domain)selfdisplay_nameusernamer   	addr_specZa_srest r   3/opt/alt/python35/lib64/python3.5/headerregistry.py__init__   s    						zAddress.__init__c             C   s   |  j  S)N)r   )r   r   r   r   r   7   s    zAddress.display_namec             C   s   |  j  S)N)r   )r   r   r   r   r   ;   s    zAddress.usernamec             C   s   |  j  S)N)r   )r   r   r   r   r   ?   s    zAddress.domainc             C   sr   t  |  j  } t |  t | t j  k rC t j |  j  } n	 |  j } |  j rd | d |  j S| sn d S| S)N@z<>)setr   lenr	   ZDOT_ATOM_ENDSquote_stringr   )r   namesetZlpr   r   r   r   C   s    		zAddress.addr_specc             C   s%   d j  |  j j |  j |  j |  j  S)Nz1{}(display_name={!r}, username={!r}, domain={!r}))r   	__class____name__r   r   r   )r   r   r   r   __repr__S   s    	zAddress.__repr__c             C   s   t  |  j  } t |  t | t j  k rC t j |  j  } n	 |  j } | r |  j d k rg d n |  j } d j | |  S|  j S)Nz<>r   z{} <{}>)r   r   r   r	   SPECIALSr   r   r   )r   r   dispr   r   r   r   __str__X   s    	zAddress.__str__c             C   sP   t  |  t  |   k r d S|  j | j k oO |  j | j k oO |  j | j k S)NF)typer   r   r   )r   otherr   r   r   __eq__c   s
    zAddress.__eq__)r    
__module____qualname__r   propertyr   r   r   r   r!   r$   r'   r   r   r   r   r      s   %r   c               @   sj   e  Z d  Z d d d d  Z e d d    Z e d d    Z d d	   Z d
 d   Z d d   Z	 d S)GroupNc             C   s+   | |  _  | r t |  n t   |  _ d  S)N)r   tuple
_addresses)r   r   	addressesr   r   r   r   m   s    	zGroup.__init__c             C   s   |  j  S)N)r   )r   r   r   r   r      s    zGroup.display_namec             C   s   |  j  S)N)r-   )r   r   r   r   r.      s    zGroup.addressesc             C   s   d j  |  j j |  j |  j  S)Nz${}(display_name={!r}, addresses={!r})r   r   r    r   r.   )r   r   r   r   r!      s    	zGroup.__repr__c             C   s   |  j  d  k r5 t |  j  d k r5 t |  j d  S|  j  } | d  k	 r t |  } t |  t | t j  k r t j |  } d j d d   |  j D  } | r d | n | } d j	 | |  S)N   r   z, c             s   s   |  ] } t  |  Vq d  S)N)str).0xr   r   r   	<genexpr>   s    z Group.__str__.<locals>.<genexpr> z{}:{};)
r   r   r.   r0   r   r	   r"   r   joinr   )r   r#   r   Zadrstrr   r   r   r$      s    $	zGroup.__str__c             C   s>   t  |  t  |   k r d S|  j | j k o= |  j | j k S)NF)r%   r   r.   )r   r&   r   r   r   r'      s    zGroup.__eq__)
r    r(   r)   r   r*   r   r.   r!   r$   r'   r   r   r   r   r+   k   s   r+   c               @   sv   e  Z d  Z d d   Z d d   Z e d d    Z e d d    Z d	 d
   Z e	 d d    Z
 d d   Z d S)
BaseHeaderc             C   sw   d g  i } |  j  | |  t j | d  rF t j | d  | d <t j |  | d  } | d =| j | |  | S)Ndefectsdecoded)parser   Z_has_surrogates	_sanitizer0   __new__init)clsnamevaluekwdsr   r   r   r   r;      s    zBaseHeader.__new__c            C   s   | |  _  | |  _ | |  _ d  S)N)_name_parse_tree_defects)r   r>   
parse_treer7   r   r   r   r<      s    		zBaseHeader.initc             C   s   |  j  S)N)rA   )r   r   r   r   r>      s    zBaseHeader.namec             C   s   t  |  j  S)N)r,   rC   )r   r   r   r   r7      s    zBaseHeader.defectsc             C   s+   t  |  j j |  j j t |   f |  j f S)N)_reconstruct_headerr   r    	__bases__r0   __dict__)r   r   r   r   
__reduce__   s
    		zBaseHeader.__reduce__c             C   s   t  j |  |  S)N)r0   r;   )r=   r?   r   r   r   _reconstruct   s    zBaseHeader._reconstructc            C   sm   t  j t  j t  j |  j d  t  j d d  g  t  j t  j d d  g  |  j g  } | j d |  S)Nzheader-name:z
header-sepr4   Zfwspolicy)	r	   ZHeaderZHeaderLabelZValueTerminalr>   ZCFWSListZWhiteSpaceTerminalrB   fold)r   rK   headerr   r   r   rL      s    zBaseHeader.foldN)r    r(   r)   r;   r<   r*   r>   r7   rH   classmethodrI   rL   r   r   r   r   r6      s   "

r6   c             C   s   t  |  | i   j |  S)N)r%   rI   )Zcls_namebasesr?   r   r   r   rE     s    rE   c               @   s7   e  Z d  Z d Z e e j  Z e d d    Z	 d S)UnstructuredHeaderNc             C   s+   |  j  |  | d <t | d  | d <d  S)NrD   r8   )value_parserr0   )r=   r?   r@   r   r   r   r9     s    zUnstructuredHeader.parse)
r    r(   r)   	max_countstaticmethodr	   get_unstructuredrQ   rN   r9   r   r   r   r   rP     s   rP   c               @   s   e  Z d  Z d Z d S)UniqueUnstructuredHeaderr/   N)r    r(   r)   rR   r   r   r   r   rU     s   rU   c                   s[   e  Z d  Z d Z e e j  Z e d d    Z	   f d d   Z
 e d d    Z   S)
DateHeaderNc             C   s   | sE | d j  t j    d  | d <d | d <t j   | d <d  St | t  rc t j |  } | | d <t j	 | d  | d <|  j
 | d  | d <d  S)Nr7   datetimer   r8   rD   )appendr   ZHeaderMissingRequiredValuer	   Z	TokenList
isinstancer0   r   Zparsedate_to_datetimeZformat_datetimerQ   )r=   r?   r@   r   r   r   r9   &  s    


zDateHeader.parsec                s)   | j  d  |  _ t   j | |   d  S)NrW   )pop	_datetimesuperr<   )r   argskw)r   r   r   r<   4  s    zDateHeader.initc             C   s   |  j  S)N)r[   )r   r   r   r   rW   8  s    zDateHeader.datetime)r    r(   r)   rR   rS   r	   rT   rQ   rN   r9   r<   r*   rW   r   r   )r   r   rV     s
   rV   c               @   s   e  Z d  Z d Z d S)UniqueDateHeaderr/   N)r    r(   r)   rR   r   r   r   r   r_   =  s   r_   c                   sp   e  Z d  Z d Z e d d    Z e d d    Z   f d d   Z e	 d d	    Z
 e	 d
 d    Z   S)AddressHeaderNc             C   s   t  j |   \ } }  | S)N)r	   Zget_address_list)r?   address_listr   r   r   rQ   F  s    zAddressHeader.value_parserc             C   s  t  | t  r{ |  j |  | d <} g  } x: | j D]/ } | j t | j d d   | j D   q6 Wt | j	  } n1 t
 | d  s | g } d d   | D } g  } | | d <| | d <d j d	 d   | D  | d
 <d | k r|  j | d
  | d <d  S)NrD   c             S   s=   g  |  ]3 } t  | j p d  | j p' d  | j p3 d    q S)r   )r   r   r   r   )r1   Zmbr   r   r   
<listcomp>U  s   	z'AddressHeader.parse.<locals>.<listcomp>__iter__c             S   s7   g  |  ]- } t  | d   s- t d | g  n |  q S)r.   N)hasattrr+   )r1   itemr   r   r   rb   ^  s   	groupsr7   z, c             S   s   g  |  ] } t  |   q Sr   )r0   )r1   re   r   r   r   rb   d  s   	 r8   )rY   r0   rQ   r.   rX   r+   r   Zall_mailboxeslistr   rd   r5   )r=   r?   r@   ra   rf   addrr7   r   r   r   r9   L  s$    			


 zAddressHeader.parsec                s8   t  | j d   |  _ d  |  _ t   j | |   d  S)Nrf   )r,   rZ   _groupsr-   r\   r<   )r   r]   r^   )r   r   r   r<   h  s    	zAddressHeader.initc             C   s   |  j  S)N)ri   )r   r   r   r   rf   m  s    zAddressHeader.groupsc             C   s5   |  j  d  k r. t d d   |  j D  |  _  |  j  S)Nc             S   s&   g  |  ] } | j  D] } |  q q Sr   )r.   )r1   groupaddressr   r   r   rb   t  s   	 z+AddressHeader.addresses.<locals>.<listcomp>)r-   r,   ri   )r   r   r   r   r.   q  s    zAddressHeader.addresses)r    r(   r)   rR   rS   rQ   rN   r9   r<   r*   rf   r.   r   r   )r   r   r`   B  s   r`   c               @   s   e  Z d  Z d Z d S)UniqueAddressHeaderr/   N)r    r(   r)   rR   r   r   r   r   rl   y  s   rl   c               @   s"   e  Z d  Z e d d    Z d S)SingleAddressHeaderc             C   s8   t  |  j  d k r- t d j |  j    |  j d S)Nr/   z9value of single address header {} is not a single addressr   )r   r.   r
   r   r>   )r   r   r   r   rk     s    	zSingleAddressHeader.addressN)r    r(   r)   r*   rk   r   r   r   r   rm   ~  s   rm   c               @   s   e  Z d  Z d Z d S)UniqueSingleAddressHeaderr/   N)r    r(   r)   rR   r   r   r   r   rn     s   rn   c                   s   e  Z d  Z d Z e e j  Z e d d    Z	   f d d   Z
 e d d    Z e d d	    Z e d
 d    Z   S)MIMEVersionHeaderr/   c             C   s   |  j  |  | d <} t |  | d <| d j | j  | j d  k rP d  n | j | d <| j | d <| j d  k	 r d j | d | d  | d <n
 d  | d <d  S)NrD   r8   r7   majorminorz{}.{}version)rQ   r0   extendr   rq   rp   r   )r=   r?   r@   rD   r   r   r   r9     s    "!zMIMEVersionHeader.parsec                sM   | j  d  |  _ | j  d  |  _ | j  d  |  _ t   j | |   d  S)Nrr   rp   rq   )rZ   _version_major_minorr\   r<   )r   r]   r^   )r   r   r   r<     s    zMIMEVersionHeader.initc             C   s   |  j  S)N)ru   )r   r   r   r   rp     s    zMIMEVersionHeader.majorc             C   s   |  j  S)N)rv   )r   r   r   r   rq     s    zMIMEVersionHeader.minorc             C   s   |  j  S)N)rt   )r   r   r   r   rr     s    zMIMEVersionHeader.version)r    r(   r)   rR   rS   r	   Zparse_mime_versionrQ   rN   r9   r<   r*   rp   rq   rr   r   r   )r   r   ro     s   ro   c                   sL   e  Z d  Z d Z e d d    Z   f d d   Z e d d    Z   S)ParameterizedMIMEHeaderr/   c             C   su   |  j  |  | d <} t |  | d <| d j | j  | j d  k rW i  | d <n d d   | j D | d <d  S)NrD   r8   r7   paramsc             S   s7   i  |  ]- \ } } t  j |  t  j |  j    q Sr   )r   r:   lower)r1   r>   r?   r   r   r   
<dictcomp>  s   	z1ParameterizedMIMEHeader.parse.<locals>.<dictcomp>)rQ   r0   rs   r   rx   )r=   r?   r@   rD   r   r   r   r9     s    	zParameterizedMIMEHeader.parsec                s)   | j  d  |  _ t   j | |   d  S)Nrx   )rZ   _paramsr\   r<   )r   r]   r^   )r   r   r   r<     s    zParameterizedMIMEHeader.initc             C   s   t  |  j  S)N)r   r{   )r   r   r   r   rx     s    zParameterizedMIMEHeader.params)	r    r(   r)   rR   rN   r9   r<   r*   rx   r   r   )r   r   rw     s   rw   c                   sg   e  Z d  Z e e j  Z   f d d   Z e d d    Z	 e d d    Z
 e d d    Z   S)	ContentTypeHeaderc                sG   t    j | |   t j |  j j  |  _ t j |  j j  |  _ d  S)N)	r\   r<   r   r:   rB   maintype	_maintypesubtype_subtype)r   r]   r^   )r   r   r   r<     s    zContentTypeHeader.initc             C   s   |  j  S)N)r~   )r   r   r   r   r}     s    zContentTypeHeader.maintypec             C   s   |  j  S)N)r   )r   r   r   r   r     s    zContentTypeHeader.subtypec             C   s   |  j  d |  j S)N/)r}   r   )r   r   r   r   content_type  s    zContentTypeHeader.content_type)r    r(   r)   rS   r	   Zparse_content_type_headerrQ   r<   r*   r}   r   r   r   r   )r   r   r|     s
   r|   c                   sC   e  Z d  Z e e j  Z   f d d   Z e d d    Z	   S)ContentDispositionHeaderc                sG   t    j | |   |  j j } | d  k r1 | n t j |  |  _ d  S)N)r\   r<   rB   content_dispositionr   r:   _content_disposition)r   r]   r^   Zcd)r   r   r   r<     s    zContentDispositionHeader.initc             C   s   |  j  S)N)r   )r   r   r   r   r     s    z,ContentDispositionHeader.content_disposition)
r    r(   r)   rS   r	   Z parse_content_disposition_headerrQ   r<   r*   r   r   r   )r   r   r     s   r   c                   s[   e  Z d  Z d Z e e j  Z e d d    Z	   f d d   Z
 e d d    Z   S)ContentTransferEncodingHeaderr/   c             C   s?   |  j  |  | d <} t |  | d <| d j | j  d  S)NrD   r8   r7   )rQ   r0   rs   r   )r=   r?   r@   rD   r   r   r   r9     s    z#ContentTransferEncodingHeader.parsec                s/   t    j | |   t j |  j j  |  _ d  S)N)r\   r<   r   r:   rB   cte_cte)r   r]   r^   )r   r   r   r<     s    z"ContentTransferEncodingHeader.initc             C   s   |  j  S)N)r   )r   r   r   r   r     s    z!ContentTransferEncodingHeader.cte)r    r(   r)   rR   rS   r	   Z&parse_content_transfer_encoding_headerrQ   rN   r9   r<   r*   r   r   r   )r   r   r     s
   r   ZsubjectZdatezresent-datez	orig-dateZsenderzresent-senderZtoz	resent-toZccz	resent-ccZbccz
resent-bccfromzresent-fromzreply-tozmime-versionzcontent-typezcontent-dispositionzcontent-transfer-encodingc               @   sI   e  Z d  Z e e d d d  Z d d   Z d d   Z d d	   Z d
 S)HeaderRegistryTc             C   s5   i  |  _  | |  _ | |  _ | r1 |  j  j t  d  S)N)registry
base_classdefault_classupdate_default_header_map)r   r   r   Zuse_default_mapr   r   r   r   $  s
    			zHeaderRegistry.__init__c             C   s   | |  j  | j   <d  S)N)r   ry   )r   r>   r=   r   r   r   map_to_type6  s    zHeaderRegistry.map_to_typec             C   s>   |  j  j | j   |  j  } t d | j | |  j f i   S)N_)r   getry   r   r%   r    r   )r   r>   r=   r   r   r   __getitem__<  s    zHeaderRegistry.__getitem__c             C   s   |  | | |  S)Nr   )r   r>   r?   r   r   r   __call__@  s    
zHeaderRegistry.__call__N)	r    r(   r)   r6   rP   r   r   r   r   r   r   r   r   r      s
   r   N)typesr   Zemailr   r   r   r	   r   r+   r0   r6   rE   rP   rU   rV   r_   r`   rl   rm   rn   ro   rw   r|   r   r   r   r   r   r   r   r   <module>
   sP   [6a'7
%