§
    `Ò³g�C  ã                  ó2  — d dl mZ d dlZd dlmZ d dlmZmZ d dlm	Z	 ej
        rd dlmZ d dlmZ  G d„ d	e¦  «        Zd
dgZ ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Zej        dej        eef         ej        eeef                  d	f         Z G d„ de¦  «        Zdd„Z G d„ d
ej        eef         ej        eef         ¦  «        Z G d„ deeeef                  ¦  «        Z  G d„ dej        eef         ¦  «        Z!dS )é    )ÚannotationsN)ÚOrderedDict)ÚEnumÚauto)ÚRLock)ÚProtocol)ÚSelfc                  ó   — e Zd Zdd„Zd	d„ZdS )
ÚHasGettableStringKeysÚreturnútyping.Iterator[str]c                ó   — d S ©N© ©Úselfs    úR/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/urllib3/_collections.pyÚkeyszHasGettableStringKeys.keys   ó   € € € ó    ÚkeyÚstrc                ó   — d S r   r   ©r   r   s     r   Ú__getitem__z!HasGettableStringKeys.__getitem__   r   r   N©r   r   ©r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s(   € € € € € Ø3Ð3Ð3Ð3à3Ð3Ð3Ð3Ð3Ð3r   r   ÚRecentlyUsedContainerÚHTTPHeaderDictÚ_KTÚ_VTÚ_DTc                  ó"   — e Zd Z e¦   «         ZdS )Ú	_SentinelN)r   r   r    r   Ú
not_passedr   r   r   r'   r'   '   s   € € € € € Ø�‘”€J€J€Jr   r'   Ú	potentialÚobjectr   úValidHTTPHeaderSource | Nonec                óà  — t          | t          ¦  «        r| S t          | t          j        ¦  «        r1t          j        t          j        t
          t
          f         | ¦  «        S t          | t          j        ¦  «        r<t          j        t          j        t          t
          t
          f                  | ¦  «        S t          | d¦  «        r%t          | d¦  «        rt          j        d| ¦  «        S d S )Nr   r   r   )	Ú
isinstancer"   ÚtypingÚMappingÚcastr   ÚIterableÚtupleÚhasattr)r)   s    r   Ú%ensure_can_construct_http_header_dictr4   +   sÁ   € õ �)�^Ñ,Ô,ð ØÐÝ	�I�vœ~Ñ	.Ô	.ð õ Œ{�6œ>­#­s¨(Ô3°YÑ?Ô?Ð?Ý	�I�vœÑ	/Ô	/ð õ Œ{�6œ?­5µµc°¬?Ô;¸YÑGÔGÐGÝ	�˜FÑ	#Ô	#ð ­°	¸=Ñ(IÔ(Ið ÝŒ{Ð2°IÑ>Ô>Ð>àˆtr   c                  óŒ   ‡ — e Zd ZU dZded<   ded<   ded<   ded	<   	 	 ddˆ fd„Zdd„Zd d„Zd!d„Zd"d„Z	d#d„Z
d$d„Zd%d„Zˆ xZS )&r!   a‘  
    Provides a thread-safe dict-like container which maintains up to
    ``maxsize`` keys while throwing away the least-recently-used keys beyond
    ``maxsize``.

    :param maxsize:
        Maximum number of recent elements to retain.

    :param dispose_func:
        Every time an item is evicted from the container,
        ``dispose_func(value)`` is called.  Callback which will get called
    ztyping.OrderedDict[_KT, _VT]Ú
_containerÚintÚ_maxsizeú#typing.Callable[[_VT], None] | NoneÚdispose_funcr   Úlocké
   NÚmaxsizer   ÚNonec                ó°   •— t          ¦   «                              ¦   «          || _        || _        t	          ¦   «         | _        t          ¦   «         | _        d S r   )ÚsuperÚ__init__r8   r:   r   r6   r   r;   )r   r=   r:   Ú	__class__s      €r   rA   zRecentlyUsedContainer.__init__R   sD   ø€ õ
 	‰Œ×ÒÑÔÐØˆŒØ(ˆÔÝ%™-œ-ˆŒÝ‘G”GˆŒ	ˆ	ˆ	r   r   r#   r$   c                ó�   — | j         5  | j                             |¦  «        }|| j        |<   |cd d d ¦  «         S # 1 swxY w Y   d S r   )r;   r6   Úpop)r   r   Úitems      r   r   z!RecentlyUsedContainer.__getitem__]   s’   € àŒYð 	ð 	Ø”?×&Ò& sÑ+Ô+ˆDØ#'ˆDŒO˜CÑ Øð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ó   ˆ&;»?Á?Úvaluec                óŠ  — d }| j         5  	 || j                             |¦  «        f}|| j        |<   nR# t          $ rE || j        |<   t	          | j        ¦  «        | j        k    r| j                             d¬¦  «        }Y nw xY wd d d ¦  «         n# 1 swxY w Y   |�#| j        r|\  }}|                      |¦  «         d S d S d S )NF)Úlast)r;   r6   rD   ÚKeyErrorÚlenr8   Úpopitemr:   )r   r   rG   Úevicted_itemÚ_Úevicted_values         r   Ú__setitem__z!RecentlyUsedContainer.__setitem__d   sH  € ØˆØŒYð 	Gð 	GðGð  # D¤O×$7Ò$7¸Ñ$<Ô$<Ð<�Ø',�” Ñ$Ð$øÝð Gð Gð Gð (-�” Ñ$Ý�t”Ñ'Ô'¨$¬-Ò7Ð7ð $(¤?×#:Ò#:ÀÐ#:Ñ#FÔ#F�LøøðGøøøð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð& Ð#¨Ô(9Ð#Ø+ÑˆAˆ}Ø×Ò˜mÑ,Ô,Ð,Ð,Ð,ð $Ð#Ð#Ð#s2   ŠBŒ&3²B³ABÁ?BÂBÂBÂBÂBc                ó´   — | j         5  | j                             |¦  «        }d d d ¦  «         n# 1 swxY w Y   | j        r|                      |¦  «         d S d S r   )r;   r6   rD   r:   )r   r   rG   s      r   Ú__delitem__z!RecentlyUsedContainer.__delitem__}   s¥   € ØŒYð 	-ð 	-Ø”O×'Ò'¨Ñ,Ô,ˆEð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð Ôð 	%Ø×Ò˜eÑ$Ô$Ð$Ð$Ð$ð	%ð 	%s   ˆ/¯3¶3c                ól   — | j         5  t          | j        ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r   )r;   rK   r6   r   s    r   Ú__len__zRecentlyUsedContainer.__len__„   s{   € ØŒYð 	(ð 	(Ý�t”Ñ'Ô'ð	(ð 	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s   ˆ)©-°-útyping.NoReturnc                ó    — t          d¦  «        ‚)Nz7Iteration over this class is unlikely to be threadsafe.)ÚNotImplementedErrorr   s    r   Ú__iter__zRecentlyUsedContainer.__iter__ˆ   s   € Ý!ØEñ
ô 
ð 	
r   c                ó  — | j         5  t          | j                             ¦   «         ¦  «        }| j                             ¦   «          d d d ¦  «         n# 1 swxY w Y   | j        r|D ]}|                      |¦  «         Œd S d S r   )r;   Úlistr6   ÚvaluesÚclearr:   )r   r[   rG   s      r   r\   zRecentlyUsedContainer.clear�   sÕ   € ØŒYð 	$ð 	$å˜$œ/×0Ò0Ñ2Ô2Ñ3Ô3ˆFØŒO×!Ò!Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð
 Ôð 	)Øð )ð )�Ø×!Ò! %Ñ(Ô(Ð(Ð(ð	)ð 	)ð)ð )s   ˆA AÁAÁAúset[_KT]c                ó�   — | j         5  t          | j                             ¦   «         ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r   )r;   Úsetr6   r   r   s    r   r   zRecentlyUsedContainer.keys—   s‡   € ØŒYð 	/ð 	/Ý�t”×+Ò+Ñ-Ô-Ñ.Ô.ð	/ð 	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/rF   )r<   N)r=   r7   r:   r9   r   r>   )r   r#   r   r$   )r   r#   rG   r$   r   r>   )r   r#   r   r>   ©r   r7   )r   rU   )r   r>   )r   r]   )r   r   r    Ú__doc__Ú__annotations__rA   r   rP   rR   rT   rX   r\   r   Ú__classcell__©rB   s   @r   r!   r!   ?   s  ø€ € € € € € ðð ð -Ð,Ð,Ñ,Ø€M€M�MØ5Ð5Ð5Ñ5Ø€K€K�Kð Ø<@ð	ð 	ð 	ð 	ð 	ð 	ð 	ðð ð ð ð-ð -ð -ð -ð2%ð %ð %ð %ð(ð (ð (ð (ð
ð 
ð 
ð 
ð
)ð )ð )ð )ð/ð /ð /ð /ð /ð /ð /ð /r   c                  ó>   — e Zd ZU dZded<   dd„Zdd	„Zdd„Zdd„ZdS )ÚHTTPHeaderDictItemViewa�  
    HTTPHeaderDict is unusual for a Mapping[str, str] in that it has two modes of
    address.

    If we directly try to get an item with a particular name, we will get a string
    back that is the concatenated version of all the values:

    >>> d['X-Header-Name']
    'Value1, Value2, Value3'

    However, if we iterate over an HTTPHeaderDict's items, we will optionally combine
    these values based on whether combine=True was called when building up the dictionary

    >>> d = HTTPHeaderDict({"A": "1", "B": "foo"})
    >>> d.add("A", "2", combine=True)
    >>> d.add("B", "bar")
    >>> list(d.items())
    [
        ('A', '1, 2'),
        ('B', 'foo'),
        ('B', 'bar'),
    ]

    This class conforms to the interface required by the MutableMapping ABC while
    also giving us the nonstandard iteration behavior we want; items with duplicate
    keys, ordered by time of first insertion.
    r"   Ú_headersÚheadersr   r>   c                ó   — || _         d S r   )rg   )r   rh   s     r   rA   zHTTPHeaderDictItemView.__init__»   s   € ØˆŒˆˆr   r7   c                óh   — t          t          | j                             ¦   «         ¦  «        ¦  «        S r   )rK   rZ   rg   Ú	iteritemsr   s    r   rT   zHTTPHeaderDictItemView.__len__¾   s&   € Ý•4˜œ×/Ò/Ñ1Ô1Ñ2Ô2Ñ3Ô3Ð3r   ú typing.Iterator[tuple[str, str]]c                ó4   — | j                              ¦   «         S r   )rg   rk   r   s    r   rX   zHTTPHeaderDictItemView.__iter__Á   s   € ØŒ}×&Ò&Ñ(Ô(Ð(r   rE   r*   Úboolc                óê   — t          |t          ¦  «        r]t          |¦  «        dk    rJ|\  }}t          |t          ¦  «        r0t          |t          ¦  «        r| j                             ||¦  «        S dS )Né   F)r-   r2   rK   r   rg   Ú_has_value_for_header)r   rE   Ú
passed_keyÚ
passed_vals       r   Ú__contains__z#HTTPHeaderDictItemView.__contains__Ä   so   € Ý�d�EÑ"Ô"ð 	S¥s¨4¡y¤y°A¢~ ~Ø%)Ñ"ˆJ˜
Ý˜*¥cÑ*Ô*ð S­z¸*ÅcÑ/JÔ/Jð SØ”}×:Ò:¸:ÀzÑRÔRÐRØˆur   N)rh   r"   r   r>   r`   ©r   rl   )rE   r*   r   rn   )	r   r   r    ra   rb   rA   rT   rX   rt   r   r   r   rf   rf   œ   s~   € € € € € € ðð ð8 ÐÐÑð ð  ð  ð  ð4ð 4ð 4ð 4ð)ð )ð )ð )ðð ð ð ð ð r   rf   c                  ó`  ‡ — e Zd ZU dZded<   d=d>ˆ fd	„Zd?d„Zd@d„ZdAd„ZdBd„Z	dCdDˆ fd„Z
dEd„ZdEd„ZdFd„ZdGd„ZdAd„Zdd œdHd"„ZdId%„Zej        dJd'„¦   «         Zej        dKd*„¦   «         Zej        fdLd,„ZdMd.„ZeZeZeZeZdNd/„ZdOd0„ZdMd1„ZdPd3„ZdPd4„Z dQd6„Z!dRd9„Z"dSd:„Z#dTd;„Z$dTd<„Z%ˆ xZ&S )Ur"   ap  
    :param headers:
        An iterable of field-value pairs. Must not contain multiple field names
        when compared case-insensitively.

    :param kwargs:
        Additional field-value pairs to pass in to ``dict.update``.

    A ``dict`` like container for storing HTTP Headers.

    Field names are stored and compared case-insensitively in compliance with
    RFC 7230. Iteration provides the first case-sensitive key seen for each
    case-insensitive pair.

    Using ``__setitem__`` syntax overwrites fields that compare equal
    case-insensitively in order to maintain ``dict``'s api. For fields that
    compare equal, instead create a new ``HTTPHeaderDict`` and use ``.add``
    in a loop.

    If multiple fields that are equal case-insensitively are passed to the
    constructor or ``.update``, the behavior is undefined and some will be
    lost.

    >>> headers = HTTPHeaderDict()
    >>> headers.add('Set-Cookie', 'foo=bar')
    >>> headers.add('set-cookie', 'baz=quxx')
    >>> headers['content-length'] = '7'
    >>> headers['SET-cookie']
    'foo=bar, baz=quxx'
    >>> headers['Content-Length']
    '7'
    z%typing.MutableMapping[str, list[str]]r6   Nrh   r+   Úkwargsr   c                ó  •— t          ¦   «                              ¦   «          i | _        |�@t          |t          ¦  «        r|                      |¦  «         n|                      |¦  «         |r|                      |¦  «         d S d S r   )r@   rA   r6   r-   r"   Ú
_copy_fromÚextend)r   rh   rw   rB   s      €r   rA   zHTTPHeaderDict.__init__ð   s‰   ø€ Ý‰Œ×ÒÑÔÐØˆŒØÐÝ˜'¥>Ñ2Ô2ð %Ø—’ Ñ(Ô(Ð(Ð(à—’˜GÑ$Ô$Ð$Øð 	 Ø�KŠK˜ÑÔÐÐÐð	 ð 	 r   r   Úvalr   r>   c                ó–   — t          |t          ¦  «        r|                     d¦  «        }||g| j        |                     ¦   «         <   d S )Núlatin-1)r-   ÚbytesÚdecoder6   Úlower©r   r   r{   s      r   rP   zHTTPHeaderDict.__setitem__û   sC   € å�c�5Ñ!Ô!ð 	(Ø—*’*˜YÑ'Ô'ˆCØ(+¨S zˆŒ˜Ÿ	š	™œÑ$Ð$Ð$r   c                óz   — | j         |                     ¦   «                  }d                     |dd …         ¦  «        S )Nú, é   ©r6   r€   Újoinr�   s      r   r   zHTTPHeaderDict.__getitem__  s0   € ØŒo˜cŸiši™kœkÔ*ˆØ�yŠy˜˜Q˜R˜RœÑ!Ô!Ð!r   c                ó:   — | j         |                     ¦   «         = d S r   ©r6   r€   r   s     r   rR   zHTTPHeaderDict.__delitem__  s   € ØŒO˜CŸIšI™KœKÐ(Ð(Ð(r   r*   rn   c                óf   — t          |t          ¦  «        r|                     ¦   «         | j        v S dS )NF)r-   r   r€   r6   r   s     r   rt   zHTTPHeaderDict.__contains__  s.   € Ý�c�3ÑÔð 	2Ø—9’9‘;”; $¤/Ð1Ð1Øˆur   Ú Údefaultc                óH   •— t          ¦   «                              ||¦  «        S r   )r@   Ú
setdefault)r   r   r‹   rB   s      €r   r�   zHTTPHeaderDict.setdefault  s   ø€ Ý‰wŒw×!Ò! # wÑ/Ô/Ð/r   Úotherc                óÔ   — t          |¦  «        }|€dS  t          | ¦  «        |¦  «        }d„ |                      ¦   «         D ¦   «         d„ |                     ¦   «         D ¦   «         k    S )NFc                ó>   — i | ]\  }}|                      ¦   «         |“ŒS r   ©r€   ©Ú.0ÚkÚvs      r   ú
<dictcomp>z)HTTPHeaderDict.__eq__.<locals>.<dictcomp>  s&   € Ð;Ð;Ð;¡  A�—’‘	”	˜1Ð;Ð;Ð;r   c                ó>   — i | ]\  }}|                      ¦   «         |“ŒS r   r‘   r’   s      r   r–   z)HTTPHeaderDict.__eq__.<locals>.<dictcomp>  s9   € ð @
ð @
ð @
Ù!˜Q ˆA�GŠG‰IŒI�qð@
ð @
ð @
r   )r4   ÚtypeÚ
itermerged)r   rŽ   Úmaybe_constructableÚother_as_http_header_dicts       r   Ú__eq__zHTTPHeaderDict.__eq__  s„   € ÝCÀEÑJÔJÐØÐ&Ø�5à(2­¨T©
¬
Ð3FÑ(GÔ(GÐ%à;Ð;¨¯ªÑ):Ô):Ð;Ñ;Ô;ð @
ð @
Ø%>×%IÒ%IÑ%KÔ%Kð@
ñ @
ô @
ò 
ð 	
r   c                ó.   — |                       |¦  «         S r   )rœ   )r   rŽ   s     r   Ú__ne__zHTTPHeaderDict.__ne__  s   € Ø—;’;˜uÑ%Ô%Ð%Ð%r   r7   c                ó*   — t          | j        ¦  «        S r   )rK   r6   r   s    r   rT   zHTTPHeaderDict.__len__  s   € Ý�4”?Ñ#Ô#Ð#r   r   c              #  óV   K  — | j                              ¦   «         D ]}|d         V — Œd S )Nr   )r6   r[   )r   Úvalss     r   rX   zHTTPHeaderDict.__iter__!  s<   è è € à”O×*Ò*Ñ,Ô,ð 	ð 	ˆDØ�q”'ˆMˆMˆMˆMð	ð 	r   c                ó0   — 	 | |= d S # t           $ r Y d S w xY wr   )rJ   r   s     r   ÚdiscardzHTTPHeaderDict.discard&  s4   € ð	Ø�S�	�	�	øÝð 	ð 	ð 	ØˆDˆDð	øøøs   ‚ ‡
”F)Úcombiner¤   c               óJ  — t          |t          ¦  «        r|                     d¦  «        }|                     ¦   «         }||g}| j                             ||¦  «        }||urAt          |¦  «        dk    sJ ‚|r|d         dz   |z   |d<   dS |                     |¦  «         dS dS )aù  Adds a (name, value) pair, doesn't overwrite the value if it already
        exists.

        If this is called with combine=True, instead of adding a new header value
        as a distinct item during iteration, this will instead append the value to
        any existing header value with a comma. If no existing header value exists
        for the key, then the value will simply be added, ignoring the combine parameter.

        >>> headers = HTTPHeaderDict(foo='bar')
        >>> headers.add('Foo', 'baz')
        >>> headers['foo']
        'bar, baz'
        >>> list(headers.items())
        [('foo', 'bar'), ('foo', 'baz')]
        >>> headers.add('foo', 'quz', combine=True)
        >>> list(headers.items())
        [('foo', 'bar, baz, quz')]
        r}   rp   éÿÿÿÿrƒ   N)r-   r~   r   r€   r6   r�   rK   Úappend)r   r   r{   r¤   Ú	key_lowerÚnew_valsr¡   s          r   ÚaddzHTTPHeaderDict.add,  s¶   € õ( �c�5Ñ!Ô!ð 	(Ø—*’*˜YÑ'Ô'ˆCØ—I’I‘K”Kˆ	Ø˜�:ˆàŒ×)Ò)¨)°XÑ>Ô>ˆØ˜4ÐÐõ �t‘9”9 ’>�>�>�>Øð !Ø œ8 d™?¨SÑ0��R‘��à—’˜CÑ Ô Ð Ð Ð ð  Ðr   ÚargsÚValidHTTPHeaderSourcec                óº  — t          |¦  «        dk    r t          dt          |¦  «        › d�¦  «        ‚t          |¦  «        dk    r|d         nd}t          |t          ¦  «        r2|                     ¦   «         D ]\  }}|                      ||¦  «         Œ�nt          |t          j        ¦  «        r1|                     ¦   «         D ]\  }}|                      ||¦  «         ŒnÈt          |t          j	        ¦  «        r[t          j
        t          j	        t          t          t          f                  |¦  «        }|D ]\  }}|                      ||¦  «         ŒnSt          |d¦  «        rCt          |d¦  «        r3|                     ¦   «         D ]}|                      |||         ¦  «         Œ|                     ¦   «         D ]\  }}|                      ||¦  «         ŒdS )	zÀGeneric import function for any type of header-like object.
        Adapted version of MutableMapping.update in order to insert items
        with self.add instead of self.__setitem__
        r„   z/extend() takes at most 1 positional arguments (z given)r   r   r   r   N)rK   Ú	TypeErrorr-   r"   rk   rª   r.   r/   Úitemsr1   r0   r2   r   r3   r   )r   r«   rw   rŽ   r   r{   rG   s          r   rz   zHTTPHeaderDict.extendO  sâ  € õ
 ˆt‰9Œ9�qŠ=ˆ=ÝØTÅ#ÀdÁ)Ä)ÐTÐTÐTñô ð õ ˜t™9œ9¨š>˜>��Q”�¨rˆå�e�^Ñ,Ô,ð 	*Ø!ŸOšOÑ-Ô-ð #ð #‘��SØ—’˜˜cÑ"Ô"Ð"Ð"ñ#å˜�vœ~Ñ.Ô.ð 	*Ø!ŸKšK™MœMð #ð #‘��SØ—’˜˜cÑ"Ô"Ð"Ð"ð#å˜�vœÑ/Ô/ð 	*Ý”K¥¤µµc½3°h´Ô @À%ÑHÔHˆEØ#ð %ð %‘
��UØ—’˜˜eÑ$Ô$Ð$Ð$ð%å�U˜FÑ#Ô#ð 	*­°°}Ñ(EÔ(Eð 	*ð —z’z‘|”|ð *ð *�Ø—’˜˜e CœjÑ)Ô)Ð)Ð)à Ÿ,š,™.œ.ð 	!ð 	!‰JˆC�Ø�HŠH�S˜%Ñ Ô Ð Ð ð	!ð 	!r   ú	list[str]c                ó   — d S r   r   r   s     r   ÚgetlistzHTTPHeaderDict.getlistp  s   € Ø.1¨cr   r%   úlist[str] | _DTc                ó   — d S r   r   )r   r   r‹   s      r   r²   zHTTPHeaderDict.getlists  s   € ØBEÀ#r   ú_Sentinel | _DTc                óž   — 	 | j         |                     ¦   «                  }|dd…         S # t          $ r |t          j        u rg cY S |cY S w xY w)zmReturns a list of all the values for the named field. Returns an
        empty list if the key doesn't exist.r„   N)r6   r€   rJ   r'   r(   )r   r   r‹   r¡   s       r   r²   zHTTPHeaderDict.getlistv  sg   € ð
	Ø”? 3§9¢9¡;¤;Ô/ˆDð ˜˜˜”8ˆOøõ ð 	ð 	ð 	Ø�)Ô.Ð.Ð.à�	�	�	àˆNˆNˆNð	øøøs   ‚+ «AÁAÁAr	   c                óB   — g d¢}|D ]}|                       |¦  «         Œ| S )z–
        Remove content-specific header fields before changing the request
        method to GET or HEAD according to RFC 9110, Section 15.4.
        )zContent-EncodingzContent-LanguagezContent-LocationzContent-TypezContent-LengthÚDigestzLast-Modified)r£   )r   Úcontent_specific_headersÚheaders      r   Ú_prepare_for_method_changez)HTTPHeaderDict._prepare_for_method_changeˆ  s?   € ð
$
ð $
ð $
Ð ð /ð 	!ð 	!ˆFØ�LŠL˜Ñ Ô Ð Ð Øˆr   c                ót   — t          | ¦  «        j        › dt          |                      ¦   «         ¦  «        › d�S )Nú(ú))r˜   r   Údictr™   r   s    r   Ú__repr__zHTTPHeaderDict.__repr__¢  s4   € Ý�t‘*”*Ô%ÐBÐB­¨T¯_ª_Ñ->Ô->Ñ(?Ô(?ÐBÐBÐBÐBr   c                óx   — |D ]6}|                      |¦  «        }|g|¢| j        |                     ¦   «         <   Œ7d S r   )r²   r6   r€   )r   rŽ   r   r{   s       r   ry   zHTTPHeaderDict._copy_from¥  sI   € Øð 	7ð 	7ˆCØ—-’- Ñ$Ô$ˆCØ,/¨;°#¨;ˆDŒO˜CŸIšI™KœKÑ(Ð(ð	7ð 	7r   c                ó^   —  t          | ¦  «        ¦   «         }|                     | ¦  «         |S r   )r˜   ry   )r   Úclones     r   ÚcopyzHTTPHeaderDict.copyª  s,   € Ø•�T‘
”
‘”ˆØ×Ò˜ÑÔÐØˆr   rl   c              #  ó„   K  — | D ]:}| j         |                     ¦   «                  }|dd…         D ]}|d         |fV — ŒŒ;dS )z8Iterate over all header lines, including duplicate ones.r„   Nr   rˆ   )r   r   r¡   r{   s       r   rk   zHTTPHeaderDict.iteritems¯  sf   è è € àð 	#ð 	#ˆCØ”? 3§9¢9¡;¤;Ô/ˆDØ˜A˜B˜B”xð #ð #�Ø˜1”g˜s�lÐ"Ð"Ð"Ð"ð#ð	#ð 	#r   c              #  ó    K  — | D ]H}| j         |                     ¦   «                  }|d         d                     |dd…         ¦  «        fV — ŒIdS )z:Iterate over all headers, merging duplicate ones together.r   rƒ   r„   Nr…   r�   s      r   r™   zHTTPHeaderDict.itermerged¶  s_   è è € àð 	-ð 	-ˆCØ”/ #§)¢)¡+¤+Ô.ˆCØ�a”&˜$Ÿ)š) C¨¨¨¤GÑ,Ô,Ð,Ð,Ð,Ð,Ð,ð	-ð 	-r   rf   c                ó    — t          | ¦  «        S r   )rf   r   s    r   r¯   zHTTPHeaderDict.items¼  s   € Ý% dÑ+Ô+Ð+r   Úheader_nameÚpotential_valuec                ó`   — || v r)|| j         |                     ¦   «                  dd …         v S dS )Nr„   Frˆ   )r   rÈ   rÉ   s      r   rq   z$HTTPHeaderDict._has_value_for_header¿  s9   € Ø˜$ÐÐØ" d¤o°k×6GÒ6GÑ6IÔ6IÔ&JÈ1È2È2Ô&NÐNÐNØˆur   c                ó`   — t          |¦  «        }|€t          S |                      |¦  «         | S r   )r4   ÚNotImplementedrz   )r   rŽ   rš   s      r   Ú__ior__zHTTPHeaderDict.__ior__Ä  s7   € õ DÀEÑJÔJÐØÐ&Ý!Ð!Ø�ŠÐ'Ñ(Ô(Ð(Øˆr   c                óˆ   — t          |¦  «        }|€t          S |                      ¦   «         }|                     |¦  «         |S r   )r4   rÌ   rÄ   rz   ©r   rŽ   rš   Úresults       r   Ú__or__zHTTPHeaderDict.__or__Í  sD   € õ DÀEÑJÔJÐØÐ&Ý!Ð!Ø—’‘”ˆØ�ŠÐ)Ñ*Ô*Ð*Øˆr   c                ó�   — t          |¦  «        }|€t          S  t          | ¦  «        |¦  «        }|                     | ¦  «         |S r   )r4   rÌ   r˜   rz   rÏ   s       r   Ú__ror__zHTTPHeaderDict.__ror__×  sL   € õ DÀEÑJÔJÐØÐ&Ý!Ð!Ø•�d‘”Ð/Ñ0Ô0ˆØ�Š�dÑÔÐØˆr   r   )rh   r+   rw   r   )r   r   r{   r   r   r>   r   )r   r   r   r>   )r   r*   r   rn   )rŠ   )r   r   r‹   r   r   r   )rŽ   r*   r   rn   r`   r   )r   r   r{   r   r¤   rn   r   r>   )r«   r¬   rw   r   r   r>   )r   r   r   r°   )r   r   r‹   r%   r   r³   )r   r   r‹   rµ   r   r³   )r   r	   )r   r   )rŽ   r"   r   r>   ru   )r   rf   )rÈ   r   rÉ   r   r   rn   )rŽ   r*   r   r"   )rŽ   r*   r   r	   )'r   r   r    ra   rb   rA   rP   r   rR   rt   r�   rœ   rž   rT   rX   r£   rª   rz   r.   Úoverloadr²   r'   r(   r»   Ú
getheadersÚgetallmatchingheadersÚigetÚget_allrÀ   ry   rÄ   rk   r™   r¯   rq   rÍ   rÑ   rÓ   rc   rd   s   @r   r"   r"   Ì   s¹  ø€ € € € € € ðð ðB 6Ð5Ð5Ñ5ð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð2ð 2ð 2ð 2ð"ð "ð "ð "ð)ð )ð )ð )ðð ð ð ð
0ð 0ð 0ð 0ð 0ð 0ð 0ð	
ð 	
ð 	
ð 	
ð&ð &ð &ð &ð$ð $ð $ð $ðð ð ð ð
ð ð ð ð :?ð !!ð !!ð !!ð !!ð !!ð !!ðF!ð !ð !ð !ðB „_Ø1Ð1Ð1ñ „_Ø1à„_ØEÐEÐEñ „_ØEð 4=Ô3Gðð ð ð ð ð$ð ð ð ð& €JØ#ÐØ€Dð €GðCð Cð Cð Cð7ð 7ð 7ð 7ð
ð ð ð ð
#ð #ð #ð #ð-ð -ð -ð -ð,ð ,ð ,ð ,ðð ð ð ð
ð ð ð ðð ð ð ðð ð ð ð ð ð ð r   )r)   r*   r   r+   )"Ú
__future__r   r.   Úcollectionsr   Úenumr   r   Ú	threadingr   ÚTYPE_CHECKINGr   Útyping_extensionsr	   r   Ú__all__ÚTypeVarr#   r$   r%   ÚUnionr/   r   r1   r2   r¬   r'   r4   ÚGenericÚMutableMappingr!   r_   rf   r"   r   r   r   ú<module>rä      s>  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à	Ôð 
4ð  ÐÐÐÐÐà&Ð&Ð&Ð&Ð&Ð&ð4ð 4ð 4ð 4ð 4 ñ 4ô 4ð 4ð #Ð$4Ð
5€ð €f„n�UÑÔ€à€f„n�UÑÔ€à€f„n�UÑÔ€àœØØ
„N�3˜�8ÔØ
„O�E˜#˜s˜(”OÔ$ØðôÐ ðð ð ð ð �ñ ô ð ðð ð ð ð(Z/ð Z/ð Z/ð Z/ð Z/˜FœN¨3°¨8Ô4°fÔ6KÈCÐQTÈHÔ6Uñ Z/ô Z/ð Z/ðz-ð -ð -ð -ð -˜S  s¨C x¤Ô1ñ -ô -ð -ð`Sð Sð Sð Sð S�VÔ*¨3°¨8Ô4ñ Sô Sð Sð Sð Sr   