Ë
    äÿæi»D  ã                  ó6  — 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j8                  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!y)é    )ÚannotationsN)ÚOrderedDict)ÚEnumÚauto)ÚRLock)ÚProtocol)ÚSelfc                  ó   — e Zd Zdd„Zdd„Zy)ÚHasGettableStringKeysc                 ó   — y ©N© ©Úselfs    úi/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/urllib3/_collections.pyÚkeyszHasGettableStringKeys.keys   ó   € °ó    c                 ó   — y r   r   ©r   Úkeys     r   Ú__getitem__z!HasGettableStringKeys.__getitem__   r   r   N©Úreturnztyping.Iterator[str]©r   Ústrr   r   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s   „ Û3ä3r   r   ÚRecentlyUsedContainerÚHTTPHeaderDictÚ_KTÚ_VTÚ_DTc                  ó   — e Zd Z e«       Zy)Ú	_SentinelN)r   r   r   r   Ú
not_passedr   r   r   r&   r&   '   s	   „ Ù“�Jr   r&   c                ó¾  — t        | t        «      r| S t        | t        j                  «      r1t        j                  t        j                  t
        t
        f   | «      S t        | t        j                  «      r8t        j                  t        j                  t        t
        t
        f      | «      S t        | d«      r"t        | d«      rt        j                  d| «      S y )Nr   r   r   )	Ú
isinstancer!   ÚtypingÚMappingÚcastr   ÚIterableÚtupleÚhasattr)Ú	potentials    r   Ú%ensure_can_construct_http_header_dictr1   +   sœ   € ô �)œ^Ô,ØÐÜ	�IœvŸ~™~Ô	.ô �{‰{œ6Ÿ>™>¬#¬s¨(Ñ3°YÓ?Ð?Ü	�IœvŸ™Ô	/ô �{‰{œ6Ÿ?™?¬5´´c°©?Ñ;¸YÓGÐGÜ	�˜FÔ	#¬°	¸=Ô(IÜ�{‰{Ð2°IÓ>Ð>àr   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   Úlockc                óz   •— t         ‰| �  «        || _        || _        t	        «       | _        t        «       | _        y r   )ÚsuperÚ__init__r5   r7   r   r3   r   r8   )r   Úmaxsizer7   Ú	__class__s      €r   r;   zRecentlyUsedContainer.__init__R   s1   ø€ ô
 	‰ÑÔØˆŒØ(ˆÔÜ%›-ˆŒÜ“Gˆ�	r   c                óž   — | j                   5  | j                  j                  |«      }|| j                  |<   |cd d d «       S # 1 sw Y   y xY wr   )r8   r3   Úpop)r   r   Úitems      r   r   z!RecentlyUsedContainer.__getitem__]   s8   € à�Y‹YØ—?‘?×&Ñ& sÓ+ˆDØ#'ˆD�O‰O˜CÑ Ø÷ �YŠYús   �,AÁAc                ó¨  — d }| j                   5  	 || j                  j                  |«      f}|| j                  |<   d d d «       |�$| j                  r|\  }}| j                  |«       y y y # t        $ rP || j                  |<   t	        | j                  «      | j
                  kD  r| j                  j                  d¬«      }Y Œ‡w xY w# 1 sw Y   ŒŒxY w)NF)Úlast)r8   r3   r?   ÚKeyErrorÚlenr5   Úpopitemr7   )r   r   ÚvalueÚevicted_itemÚ_Úevicted_values         r   Ú__setitem__z!RecentlyUsedContainer.__setitem__d   sÌ   € ØˆØ�Y‹YðGð  # D§O¡O×$7Ñ$7¸Ó$<Ð<�Ø',�—‘ Ñ$÷ ð& Ð#¨×(9Ò(9Ø+ÑˆAˆ}Ø×Ñ˜mÕ,ð ):Ð#øô ò Gð (-�—‘ Ñ$Ü�t—‘Ó'¨$¯-©-Ò7ð $(§?¡?×#:Ñ#:ÀÐ#:Ó#F�LùðGú÷ ˆYús)   �C‘,A,Á,ACÃCÃCÃCÃCc                ó¸   — | j                   5  | j                  j                  |«      }d d d «       | j                  r| j                  «       y y # 1 sw Y   Œ(xY wr   )r8   r3   r?   r7   )r   r   rF   s      r   Ú__delitem__z!RecentlyUsedContainer.__delitem__}   sH   € Ø�Y‹YØ—O‘O×'Ñ'¨Ó,ˆE÷ ð ×ÒØ×Ñ˜eÕ$ð ÷ ˆYús   �AÁAc                óp   — | j                   5  t        | j                  «      cd d d «       S # 1 sw Y   y xY wr   )r8   rD   r3   r   s    r   Ú__len__zRecentlyUsedContainer.__len__„   s   € Ø�Y‹YÜ�t—‘Ó'÷ �YŠYús   �,¬5c                ó   — 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                  «       «      }| j                  j	                  «        d d d «       | j
                  rD ]  }| j                  |«       Œ y y # 1 sw Y   Œ/xY wr   )r8   Úlistr3   ÚvaluesÚclearr7   )r   rT   rF   s      r   rU   zRecentlyUsedContainer.clear�   se   € Ø�Y‹Yä˜$Ÿ/™/×0Ñ0Ó2Ó3ˆFØ�O‰O×!Ñ!Ô#÷ ð
 ×ÒÛ�Ø×!Ñ! %Õ(ñ  ð ÷ ˆYús   �>A9Á9Bc                óŒ   — | j                   5  t        | j                  j                  «       «      cd d d «       S # 1 sw Y   y xY wr   )r8   Úsetr3   r   r   s    r   r   zRecentlyUsedContainer.keys—   s(   € Ø�Y‹YÜ�t—‘×+Ñ+Ó-Ó.÷ �YŠYús	   �#:ºA)é
   N)r<   r4   r7   r6   r   ÚNone)r   r"   r   r#   )r   r"   rF   r#   r   rY   )r   r"   r   rY   ©r   r4   )r   ztyping.NoReturn)r   rY   )r   zset[_KT])r   r   r   Ú__doc__Ú__annotations__r;   r   rJ   rL   rN   rQ   rU   r   Ú__classcell__©r=   s   @r   r    r    ?   sl   ø… ñð -Ó,ØƒMØ5Ó5Ø
ƒ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y)Ú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!   Ú_headersc                ó   — || _         y r   )ra   )r   Úheaderss     r   r;   zHTTPHeaderDictItemView.__init__»   s	   € Øˆ�r   c                óZ   — t        t        | j                  j                  «       «      «      S r   )rD   rS   ra   Ú	iteritemsr   s    r   rN   zHTTPHeaderDictItemView.__len__¾   s   € Ü”4˜Ÿ™×/Ñ/Ó1Ó2Ó3Ð3r   c                ó6   — | j                   j                  «       S r   )ra   re   r   s    r   rQ   zHTTPHeaderDictItemView.__iter__Á   s   € Ø�}‰}×&Ñ&Ó(Ð(r   c                óÂ   — t        |t        «      rOt        |«      dk(  rA|\  }}t        |t        «      r,t        |t        «      r| j                  j                  ||«      S y)Né   F)r)   r.   rD   r   ra   Ú_has_value_for_header)r   r@   Ú
passed_keyÚ
passed_vals       r   Ú__contains__z#HTTPHeaderDictItemView.__contains__Ä   sM   € Ü�dœEÔ"¤s¨4£y°A¢~Ø%)Ñ"ˆJ˜
Ü˜*¤cÔ*¬z¸*ÄcÔ/JØ—}‘}×:Ñ:¸:ÀzÓRÐRØr   N)rc   r!   r   rY   rZ   ©r   z typing.Iterator[tuple[str, str]])r@   Úobjectr   Úbool)	r   r   r   r[   r\   r;   rN   rQ   rl   r   r   r   r`   r`   œ   s#   … ñð8 Óó ó4ó)ôr   r`   c                  ó|  ‡ — e Zd ZU dZded<   d!d"ˆ fd„Zd#d„Zd$d„Zd%d„Zd&d„Z	d'd(ˆ fd	„Z
d)d
„Zd)d„Zd*d„Zd+d„Zd%d„Zddœd,d„Zd-d„Zej&                  d.d„«       Zej&                  d/d„«       Zej,                  f	 	 	 	 	 d0d„Zd1d„ZeZeZeZeZd2d„Zd3d„Zd1d„Zd4d„Zd4d„Z d5d„Z!d6d„Z"d7d„Z#d8d„Z$d8d „Z%ˆ xZ&S )9r!   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]]r3   c                óÂ   •— t         ‰| �  «        i | _        |�3t        |t        «      r| j                  |«       n| j                  |«       |r| j                  |«       y y r   )r:   r;   r3   r)   r!   Ú
_copy_fromÚextend)r   rc   Úkwargsr=   s      €r   r;   zHTTPHeaderDict.__init__ð   sQ   ø€ Ü‰ÑÔØˆŒØÐÜ˜'¤>Ô2Ø—‘ Õ(à—‘˜GÔ$ÙØ�K‰K˜Õð r   c                ó„   — t        |t        «      r|j                  d«      }||g| j                  |j	                  «       <   y ©Núlatin-1©r)   ÚbytesÚdecoder3   Úlower©r   r   Úvals      r   rJ   zHTTPHeaderDict.__setitem__û   s2   € ä�cœ5Ô!Ø—*‘*˜YÓ'ˆCØ(+¨S zˆ�‰˜Ÿ	™	›Ò$r   c                ó¦   — t        |t        «      r|j                  d«      }| j                  |j	                  «          }dj                  |dd  «      S )Nrw   ú, é   )r)   ry   rz   r3   r{   Újoinr|   s      r   r   zHTTPHeaderDict.__getitem__  sC   € Ü�cœ5Ô!Ø—*‘*˜YÓ'ˆCØ�o‰o˜cŸi™i›kÑ*ˆØ�y‰y˜˜Q˜R˜Ó!Ð!r   c                ó|   — t        |t        «      r|j                  d«      }| j                  |j	                  «       = y rv   rx   r   s     r   rL   zHTTPHeaderDict.__delitem__  s,   € Ü�cœ5Ô!Ø—*‘*˜YÓ'ˆCØ�O‰O˜CŸI™I›KÑ(r   c                óž   — t        |t        «      r|j                  d«      }t        |t        «      r|j	                  «       | j
                  v S y)Nrw   F)r)   ry   rz   r   r{   r3   r   s     r   rl   zHTTPHeaderDict.__contains__  s<   € Ü�cœ5Ô!Ø—*‘*˜YÓ'ˆCÜ�cœ3ÔØ—9‘9“; $§/¡/Ð1Ð1Ør   c                ó$   •— t         ‰| �  ||«      S r   )r:   Ú
setdefault)r   r   Údefaultr=   s      €r   r…   zHTTPHeaderDict.setdefault  s   ø€ Ü‰wÑ! # wÓ/Ð/r   c                ó"  — t        |«      }|€y t        | «      |«      }| j                  «       D ��ci c]  \  }}|j                  «       |“Œ c}}|j                  «       D ��ci c]  \  }}|j                  «       |“Œ c}}k(  S c c}}w c c}}w )NF)r1   ÚtypeÚ
itermergedr{   )r   ÚotherÚmaybe_constructableÚother_as_http_header_dictÚkÚvs         r   Ú__eq__zHTTPHeaderDict.__eq__  s•   € ÜCÀEÓJÐØÐ&Øà(2¬¨T«
Ð3FÓ(GÐ%à)-¯©Ô):Ô;Ñ):¡  A�—‘“	˜1‘Ð):Ò;Ø%>×%IÑ%IÔ%Kô@
Ù%K™T˜Q ˆA�G‰G‹I�q‰LÐ%Kò@
ñ 
ð 	
ùÓ;ùó @
s   ³BÁ$Bc                ó&   — | j                  |«       S r   )r�   )r   rŠ   s     r   Ú__ne__zHTTPHeaderDict.__ne__!  s   € Ø—;‘;˜uÓ%Ð%Ð%r   c                ó,   — t        | j                  «      S r   )rD   r3   r   s    r   rN   zHTTPHeaderDict.__len__$  s   € Ü�4—?‘?Ó#Ð#r   c              #  óX   K  — | j                   j                  «       D ]	  }|d   –— Œ y ­w)Nr   )r3   rT   )r   Úvalss     r   rQ   zHTTPHeaderDict.__iter__'  s&   è ø€ à—O‘O×*Ñ*Ö,ˆDØ�q‘'‹Mñ -ùs   ‚(*c                ó*   — 	 | |= y # t         $ r Y y w xY wr   )rC   r   s     r   ÚdiscardzHTTPHeaderDict.discard,  s    € ð	Ø�S‘	øÜò 	Ùð	ús   ‚ †	‘F)Úcombinec               ó  — t        |t        «      r|j                  d«      }|j                  «       }||g}| j                  j                  ||«      }||ur3t        |«      dk\  sJ ‚|r|d   dz   |z   |d<   y|j                  |«       yy)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')]
        rw   rh   éÿÿÿÿr   N)r)   ry   rz   r{   r3   r…   rD   Úappend)r   r   r}   r—   Ú	key_lowerÚnew_valsr”   s          r   ÚaddzHTTPHeaderDict.add2  sŠ   € ô( �cœ5Ô!Ø—*‘*˜YÓ'ˆCØ—I‘I“Kˆ	Ø˜�:ˆà�‰×)Ñ)¨)°XÓ>ˆØ˜4Ñô �t“9 ’>Ð!�>ÙØ ™8 d™?¨SÑ0��R’à—‘˜CÕ ð  r   c                ó0  — t        |«      dkD  rt        dt        |«      › d�«      ‚t        |«      dk\  r|d   nd}t        |t        «      r+|j	                  «       D ]  \  }}| j                  ||«       Œ nöt        |t        j                  «      r+|j                  «       D ]  \  }}| j                  ||«       Œ n±t        |t        j                  «      rUt        j                  t        j                  t        t        t        f      |«      }|D ]  \  }}| j                  ||«       Œ nBt        |d«      r6t        |d«      r*|j                  «       D ]  }| j                  |||   «       Œ |j                  «       D ]  \  }}| j                  ||«       Œ y)	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)rD   Ú	TypeErrorr)   r!   re   r�   r*   r+   Úitemsr-   r,   r.   r   r/   r   )r   Úargsrt   rŠ   r   r}   rF   s          r   rs   zHTTPHeaderDict.extendU  sF  € ô
 ˆt‹9�qŠ=ÜØAÄ#ÀdÃ)ÀÈGÐTóð ô ˜t›9¨š>��Q’¨rˆä�eœ^Ô,Ø!ŸO™OÖ-‘��SØ—‘˜˜cÕ"ñ .ä˜œvŸ~™~Ô.Ø!ŸK™KžM‘��SØ—‘˜˜cÕ"ñ *ä˜œvŸ™Ô/Ü—K‘K¤§¡´´c¼3°h±Ñ @À%ÓHˆEÛ#‘
��UØ—‘˜˜eÕ$ñ $ä�U˜FÔ#¬°°}Ô(Eð —z‘z–|�Ø—‘˜˜e C™jÕ)ð $ð !Ÿ,™,ž.‰JˆC�Ø�H‰H�S˜%Õ ñ )r   c                 ó   — y r   r   r   s     r   ÚgetlistzHTTPHeaderDict.getlistv  s   € Ø.1r   c                 ó   — y r   r   )r   r   r†   s      r   r£   zHTTPHeaderDict.getlisty  s   € ØBEr   c                óØ   — t        |t        «      r|j                  d«      }	 | j                  |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.rw   r€   N)r)   ry   rz   r3   r{   rC   r&   r'   )r   r   r†   r”   s       r   r£   zHTTPHeaderDict.getlist|  sk   € ô
 �cœ5Ô!Ø—*‘*˜YÓ'ˆCð	Ø—?‘? 3§9¡9£;Ñ/ˆDð ˜˜�8ˆOøô ò 	Øœ)×.Ñ.Ñ.à’	àŠNð	ús   £A ÁA)Á$A)Á(A)c                ó>   — g d¢}|D ]  }| j                  |«       Œ | 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                óf   — t        | «      j                  › dt        | j                  «       «      › d�S )NÚ(Ú))rˆ   r   Údictr‰   r   s    r   Ú__repr__zHTTPHeaderDict.__repr__ª  s-   € Ü�t“*×%Ñ%Ð& a¬¨T¯_©_Ó->Ó(?Ð'@ÀÐBÐBr   c                ót   — |D ]3  }|j                  |«      }|g|¢| j                  |j                  «       <   Œ5 y r   )r£   r3   r{   )r   rŠ   r   r}   s       r   rr   zHTTPHeaderDict._copy_from­  s4   € ÛˆCØ—-‘- Ó$ˆCØ,/¨;°#¨;ˆD�O‰O˜CŸI™I›KÒ(ñ r   c                óH   —  t        | «      «       }|j                  | «       |S r   )rˆ   rr   )r   Úclones     r   ÚcopyzHTTPHeaderDict.copy²  s"   € Ø”�T“
“ˆØ×Ñ˜ÔØˆr   c              #  óz   K  — | D ]2  }| j                   |j                  «          }|dd D ]  }|d   |f–— Œ Œ4 y­w)z8Iterate over all header lines, including duplicate ones.r€   Nr   ©r3   r{   )r   r   r”   r}   s       r   re   zHTTPHeaderDict.iteritems·  sB   è ø€ ãˆCØ—?‘? 3§9¡9£;Ñ/ˆDØ˜A˜B“x�Ø˜1‘g˜s�lÓ"ñ  ñ ùs   ‚9;c              #  óŠ   K  — | D ]:  }| j                   |j                  «          }|d   dj                  |dd «      f–— Œ< y­w)z:Iterate over all headers, merging duplicate ones together.r   r   r€   N)r3   r{   r�   r|   s      r   r‰   zHTTPHeaderDict.itermerged¾  sB   è ø€ ãˆCØ—/‘/ #§)¡)£+Ñ.ˆCØ�a‘&˜$Ÿ)™) C¨¨ GÓ,Ð,Ó,ñ ùs   ‚AAc                ó   — t        | «      S r   )r`   r   s    r   r    zHTTPHeaderDict.itemsÄ  s   € Ü% dÓ+Ð+r   c                óP   — || v r"|| j                   |j                  «          dd  v S y)Nr€   Frµ   )r   Úheader_nameÚpotential_values      r   ri   z$HTTPHeaderDict._has_value_for_headerÇ  s1   € Ø˜$ÑØ" d§o¡o°k×6GÑ6GÓ6IÑ&JÈ1È2Ð&NÐNÐNØr   c                óN   — t        |«      }|€t        S | j                  |«       | S r   )r1   ÚNotImplementedrs   )r   rŠ   r‹   s      r   Ú__ior__zHTTPHeaderDict.__ior__Ì  s.   € ô DÀEÓJÐØÐ&Ü!Ð!Ø�‰Ð'Ô(Øˆr   c                ón   — t        |«      }|€t        S | j                  «       }|j                  |«       |S r   )r1   r¼   r³   rs   ©r   rŠ   r‹   Úresults       r   Ú__or__zHTTPHeaderDict.__or__Õ  s9   € ô DÀEÓJÐØÐ&Ü!Ð!Ø—‘“ˆØ�‰Ð)Ô*Øˆr   c                óp   — t        |«      }|€t        S  t        | «      |«      }|j                  | «       |S r   )r1   r¼   rˆ   rs   r¿   s       r   Ú__ror__zHTTPHeaderDict.__ror__ß  s>   € ô DÀEÓJÐØÐ&Ü!Ð!Ø”�d“Ð/Ó0ˆØ�‰�dÔØˆr   r   )rc   úValidHTTPHeaderSource | Nonert   r   )r   r   r}   r   r   rY   r   )r   r   r   rY   )r   rn   r   ro   )Ú )r   r   r†   r   r   r   )rŠ   rn   r   ro   rZ   r   )r   r   r}   r   r—   ro   r   rY   )r¡   ÚValidHTTPHeaderSourcert   r   r   rY   )r   r   r   z	list[str])r   r   r†   r$   r   úlist[str] | _DT)r   r   r†   z_Sentinel | _DTr   rÇ   )r   r	   )r   r   )rŠ   r!   r   rY   rm   )r   r`   )r¹   r   rº   r   r   ro   )rŠ   rn   r   r!   )rŠ   rn   r   r	   )'r   r   r   r[   r\   r;   rJ   r   rL   rl   r…   r�   r‘   rN   rQ   r–   r�   rs   r*   Úoverloadr£   r&   r'   rª   Ú
getheadersÚgetallmatchingheadersÚigetÚget_allr¯   rr   r³   re   r‰   r    ri   r½   rÁ   rÃ   r]   r^   s   @r   r!   r!   Ì   sø   ø… ñðB 6Ó5ö	 ó2ó"ó)ó
ö0ó	
ó&ó$óó
ð :?õ !!óF!ðB ‡_�_Ú1ó Ø1à‡_�_ÚEó ØEð 4=×3GÑ3GðØðØ!0ðà	óó(ð& €JØ#ÐØ€Dð €GóCó7ó
ó
#ó-ó,óó
ó÷r   )r0   rn   r   rÄ   )"Ú
__future__r   r*   Úcollectionsr   Úenumr   r   Ú	threadingr   ÚTYPE_CHECKINGr   Útyping_extensionsr	   r   Ú__all__ÚTypeVarr"   r#   r$   ÚUnionr+   r   r-   r.   rÆ   r&   r1   ÚGenericÚMutableMappingr    rW   r`   r!   r   r   r   Ú<module>rØ      s4  ðÝ "ã Ý #ß Ý à	×Òõ  å&ô4 ô 4ð #Ð$4Ð
5€ð €f‡n�n�UÓ€à€f‡n�n�UÓ€à€f‡n�n�UÓ€àŸ™ØØ
‡N�N�3˜�8ÑØ
‡O�O�E˜#˜s˜(‘OÑ$ØðñÐ ô�ô ðØðà!óô(Z/˜FŸN™N¨3°¨8Ñ4°f×6KÑ6KÈCÐQTÈHÑ6Uô Z/ôz-˜S  s¨C x¡Ñ1ô -ô`[�V×*Ñ*¨3°¨8Ñ4õ [r   