Ë
    bQêjN]  ã                  ó,  — d dl mZ d dlZd dlmZmZmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZmZmZmZmZmZ d dlmZmZmZmZ d dlmZ d d	lmZ d d
lm Z   G d„ de«      Z! ed«      Z" edd¬«      Z# G d„ d«      Z$ G d„ de%«      Z& G d„ d«      Z' G d„ de
e%   «      Z( G d„ dee"e#f   «      Z) G d„ de)eef   «      Z* G d„ de)e%e%f   «      Z+ G d„ d «      Z, G d!„ d"e)e%e,e%z  f   «      Z- G d#„ d$ee%e%f   «      Z. G d%„ d&e.«      Z/ G d'„ d(«      Z0y))é    )ÚannotationsN)Ú	ItemsViewÚIterableÚIteratorÚKeysViewÚMappingÚMutableMappingÚSequenceÚ
ValuesView)Ú
itemgetter)Úshlex)ÚAnyÚBinaryIOÚLiteralÚ
NamedTupleÚTypeVarÚcast)ÚSplitResultÚ	parse_qslÚ	urlencodeÚurlsplit)Úparse_host_header)Úrun_in_threadpool)ÚScopec                  ó"   — e Zd ZU ded<   ded<   y)ÚAddressÚstrÚhostÚintÚportN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú]/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/starlette/datastructures.pyr   r      s   … Ø
ƒIØ
„Ir&   r   Ú_KeyTypeÚ_CovariantValueTypeT)Ú	covariantc                  ó&  — e Zd Z	 	 d	 	 	 	 	 	 	 dd„Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Z	edd„«       Z
e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d„Zdd„Zdd„Zdd„Zy)ÚURLNc                ój  — |��k|rJ d«       ‚|rJ d«       ‚|j                  dd«      }|j                  dd «      }|d   j                  dd«      j                  d	d
«      j                  dd«      }|j                  dd«      }d }|d   D ]  \  }	}
|	dk(  sŒ|
j                  d«      } n t        |«      }|�|j                  r|j
                  }n=|�9|\  }}d|v r|j                  d«      sd|› d�}dddddœ|   }||k(  r|n|› d|› �}nd }|j                  «       }|�&t        ||||d¬«      j                  «       }|| _        y |j                  d«      rd|dd  z   }|r|› d|› �n|}|| _        y |r<|rJ d«       ‚ t        d«      j                  di |¤Žj                  j                  «       }|| _        y )Nz"Cannot set both "url" and "scope".z+Cannot set both "scope" and "**components".ÚschemeÚhttpÚserverÚpathú?z%3Fú#z%23ú\ú%5CÚquery_stringr&   Úheaderss   hostúlatin-1ú:ú[ú]éP   i»  )r/   ÚhttpsÚwsÚwssÚ )r.   Únetlocr1   ÚqueryÚfragmentú//ú/%2Fé   z)Cannot set both "url" and "**components".r%   )ÚgetÚreplaceÚdecoder   Úis_valid_portÚ	authorityÚ
startswithr   Úgeturlr,   Ú
componentsÚ_url)ÚselfÚurlÚscoperN   r.   r0   r1   r6   Úhost_headerÚkeyÚvalueÚparsed_hostrA   r   r    Údefault_portrB   s                    r'   Ú__init__zURL.__init__   s÷  € ð ÑÙÐ@Ð@Ó@�7Ù!ÐPÐ#PÓP�>Ø—Y‘Y˜x¨Ó0ˆFØ—Y‘Y˜x¨Ó.ˆFØ˜‘=×(Ñ(¨¨eÓ4×<Ñ<¸SÀ%ÓH×PÑPÐQUÐW\Ó]ˆDØ Ÿ9™9 ^°SÓ9ˆLàˆKØ# IÑ.ò ‘
��UØ˜'“>Ø"'§,¡,¨yÓ"9�KÙðô
 ,¨KÓ8ˆKØÐ&¨;×+DÒ+DØ$×.Ñ.‘ØÐ#Ø#‘
��dØ˜$‘; t§¡°sÔ';Ø˜t˜f A˜;�DØ(*°SÀÈ3ÑOÐPVÑW�Ø!%¨Ò!5™¸d¸VÀ1ÀTÀFÐ;K‘à�à ×'Ñ'Ó)ˆEØÐ!Ü!¨¸ÀTÐQVÐacÔd×kÑkÓm�ð ˆ�	ð —?‘? 4Ô(à! D¨¨ HÑ,�DÙ+0˜˜˜a ˜wÑ'°d�ð
 ˆ�	ñ	 ÙÐGÐGÓG�7Ø!”#�b“'—/‘/Ñ/ JÑ/×:Ñ:×AÑAÓCˆCàˆ�	r&   c                óf   — t        | d«      st        | j                  «      | _        | j                  S )NÚ_components)Úhasattrr   rO   rZ   ©rP   s    r'   rN   zURL.componentsJ   s)   € ä�t˜]Ô+Ü'¨¯	©	Ó2ˆDÔØ×ÑÐr&   c                ó.   — | j                   j                  S ©N)rN   r.   r\   s    r'   r.   z
URL.schemeP   ó   € à�‰×%Ñ%Ð%r&   c                ó.   — | j                   j                  S r^   )rN   rA   r\   s    r'   rA   z
URL.netlocT   r_   r&   c                ó.   — | j                   j                  S r^   )rN   r1   r\   s    r'   r1   zURL.pathX   ó   € à�‰×#Ñ#Ð#r&   c                ó.   — | j                   j                  S r^   )rN   rB   r\   s    r'   rB   z	URL.query\   s   € à�‰×$Ñ$Ð$r&   c                ó.   — | j                   j                  S r^   )rN   rC   r\   s    r'   rC   zURL.fragment`   ó   € à�‰×'Ñ'Ð'r&   c                ó.   — | j                   j                  S r^   )rN   Úusernamer\   s    r'   rg   zURL.usernamed   re   r&   c                ó.   — | j                   j                  S r^   )rN   Úpasswordr\   s    r'   ri   zURL.passwordh   re   r&   c                ó.   — | j                   j                  S r^   )rN   Úhostnamer\   s    r'   rk   zURL.hostnamel   re   r&   c                ó.   — | j                   j                  S r^   )rN   r    r\   s    r'   r    zURL.portp   rb   r&   c                ó   — | j                   dv S )N)r=   r?   )r.   r\   s    r'   Ú	is_securezURL.is_securet   s   € à�{‰{Ð.Ð.Ð.r&   c                ó¸  — d|v sd|v s	d|v sd|v �r |j                  dd «      }|j                  d| j                  «      }|j                  d| j                  «      }|j                  d| j                  «      }|€A| j                  }|j                  d«      \  }}}|rO|d   dk7  rG|j                  dd	«      d
   }n1d|v r-|j                  d«      s	 t        j                  |«       d|› d�}|}|�|d|› �z  }|�|}|�|d|› �z  }|› d|› �}||d<    | j                  j                  di |¤Ž}	| j                  |	j                  «       «      S # t        $ r Y Œlw xY w)Nrg   ri   rk   r    ú@éÿÿÿÿr;   r9   é   r   r:   rA   r%   )Úpopr    rg   ri   rA   Ú
rpartitionÚrsplitrL   Ú	ipaddressÚIPv6AddressÚ
ValueErrorrN   Ú_replaceÚ	__class__rM   )
rP   Úkwargsrk   r    rg   ri   rA   Ú_ÚuserpassrN   s
             r'   rH   zURL.replacex   s†  € Ø˜Ñ :°Ñ#7¸:ÈÑ;OÐSYÐ]cÒScØ—z‘z *¨dÓ3ˆHØ—:‘:˜f d§i¡iÓ0ˆDØ—z‘z *¨d¯m©mÓ<ˆHØ—z‘z *¨d¯m©mÓ<ˆHàÐØŸ™�Ø!'×!2Ñ!2°3Ó!7‘��1�há ¨¡°Ò 3Ø'Ÿ™¨s°AÓ6°qÑ9‘HØ˜‘¨×)<Ñ)<¸SÔ)Að/Ü×)Ñ)¨(Ô3ð "# 8 *¨A˜�HàˆFØÐØ˜A˜d˜V˜*Ñ$�ØÐ#Ø#�ØÐ'Ø ! H : Ñ.�HØ$˜: Q v hÐ/�à%ˆF�8Ñà-�T—_‘_×-Ñ-Ñ7°Ñ7ˆ
Ø�~‰~˜j×/Ñ/Ó1Ó2Ð2øô# "ò Ùðús   ÃE Å	EÅEc           
     ó.  — t        t        | j                  d¬«      «      }|j                  |j	                  «       D ��ci c]  \  }}t        |«      t        |«      “Œ c}}«       t        |j                  «       «      }| j                  |¬«      S c c}}w ©NT©Úkeep_blank_values©rB   )	Ú	MultiDictr   rB   ÚupdateÚitemsr   r   Úmulti_itemsrH   )rP   r{   ÚparamsrT   rU   rB   s         r'   Úinclude_query_paramszURL.include_query_params›   so   € Üœ9 T§Z¡ZÀ4ÔHÓIˆØ�‰¸f¿l¹l»n×M±
°°U”s˜3“x¤ U£Ñ+ÓMÔNÜ˜&×,Ñ,Ó.Ó/ˆØ�|‰| %ˆ|Ó(Ð(ùó Ns   ¿B
c           
     ó²   — t        |j                  «       D ��cg c]  \  }}t        |«      t        |«      f‘Œ c}}«      }| j                  |¬«      S c c}}w )Nr‚   )r   r…   r   rH   )rP   r{   rT   rU   rB   s        r'   Úreplace_query_paramszURL.replace_query_params¡   sE   € ÜÀFÇLÁLÃN×S±j°c¸5œC ›H¤c¨%£jÒ1ÓSÓTˆØ�|‰| %ˆ|Ó(Ð(ùó Ts   ™ A
c                óð   — t        |t        «      r|g}t        t        | j                  d¬«      «      }|D ]  }|j                  |d «       Œ t        |j                  «       «      }| j                  |¬«      S r   )	Ú
isinstancer   rƒ   r   rB   rs   r   r†   rH   )rP   Úkeysr‡   rT   rB   s        r'   Úremove_query_paramszURL.remove_query_params¥   si   € Ü�dœCÔ Ø�6ˆDÜœ9 T§Z¡ZÀ4ÔHÓIˆØò 	"ˆCØ�J‰J�s˜DÕ!ð	"ä˜&×,Ñ,Ó.Ó/ˆØ�|‰| %ˆ|Ó(Ð(r&   c                ó0   — t        | «      t        |«      k(  S r^   )r   ©rP   Úothers     r'   Ú__eq__z
URL.__eq__®   s   € Ü�4‹yœC ›JÑ&Ð&r&   c                ó   — | j                   S r^   )rO   r\   s    r'   Ú__str__zURL.__str__±   s   € Ø�y‰yÐr&   c                ó°   — t        | «      }| j                  rt        | j                  d¬«      «      }| j                  j                  › dt        |«      › d�S )Nz********)ri   ú(ú))r   ri   rH   rz   r!   Úrepr)rP   rQ   s     r'   Ú__repr__zURL.__repr__´   sI   € Ü�$‹iˆØ�=Š=Ü�d—l‘l¨J�lÓ7Ó8ˆCØ—.‘.×)Ñ)Ð*¨!¬D°«I¨;°aÐ8Ð8r&   )r@   N)rQ   r   rR   zScope | NonerN   r   ÚreturnÚNone)rš   r   ©rš   r   )rš   z
None | str)rš   ú
int | None©rš   Úbool)r{   r   rš   r,   )r�   ústr | Sequence[str]rš   r,   ©r‘   r   rš   rŸ   )r!   r"   r#   rX   ÚpropertyrN   r.   rA   r1   rB   rC   rg   ri   rk   r    rn   rH   rˆ   rŠ   rŽ   r’   r”   r™   r%   r&   r'   r,   r,      s6  „ ð Ø"ð,àð,ð ð,ð ð	,ð
 
ó,ð\ ò ó ð ð
 ò&ó ð&ð ò&ó ð&ð ò$ó ð$ð ò%ó ð%ð ò(ó ð(ð ò(ó ð(ð ò(ó ð(ð ò(ó ð(ð ò$ó ð$ð ò/ó ð/ó!3óF)ó)ó)ó'óô9r&   r,   c                  ó,   — e Zd ZdZddd„Zddd„Zd	d„Zy)
ÚURLPathzŒ
    A URL path string that may also hold an associated protocol and/or host.
    Used by the routing to return `url_path_for` matches.
    c                ó�   — |dv sJ ‚|j                  dd«      }|j                  d«      rd|dd  z   }t        j                  | |«      S )N)r/   Ú	websocketr@   r4   r5   rD   rE   rF   )rH   rL   r   Ú__new__)Úclsr1   Úprotocolr   s       r'   r§   zURLPath.__new__Á   sN   € ØÐ4Ñ4Ð4Ð4Ø�|‰|˜D %Ó(ˆØ�?‰?˜4Ô à˜D  ˜HÑ$ˆDÜ�{‰{˜3 Ó%Ð%r&   c                ó    — || _         || _        y r^   )r©   r   )rP   r1   r©   r   s       r'   rX   zURLPath.__init__É   s   € Ø ˆŒØˆ�	r&   c                óR  — t        |t        «      rt        |«      }| j                  r&dddœdddœdœ| j                     |j                     }n|j
                  }| j                  xs |j                  }|j                  j                  d«      t        | «      z   }t        |||¬«      S )	Nr=   r/   )TFr?   r>   )r/   r¦   ú/)r.   rA   r1   )
rŒ   r   r,   r©   rn   r.   r   rA   r1   Úrstrip)rP   Úbase_urlr.   rA   r1   s        r'   Úmake_absolute_urlzURLPath.make_absolute_urlÍ   sš   € Ü�h¤Ô$Ü˜8“}ˆHØ�=Š=à&¨vÑ6Ø$)°$Ñ7ñð �m‰mñð &×/Ñ/ñ1‰Fð
 —_‘_ˆFà—‘Ò-˜hŸo™oˆØ�}‰}×#Ñ# CÓ(¬3¨t«9Ñ4ˆÜ˜&¨°dÔ;Ð;r&   N)r@   r@   )r1   r   r©   ú Literal['http', 'websocket', '']r   r   rš   r¤   )r1   r   r©   r°   r   r   rš   r›   )r®   z	str | URLrš   r,   )r!   r"   r#   Ú__doc__r§   rX   r¯   r%   r&   r'   r¤   r¤   »   s   „ ñô
&ôô<r&   r¤   c                  ó0   — e Zd ZdZdd„Zdd„Zdd„Zd	d„Zy)
ÚSecretz‘
    Holds a string value that should not be revealed in tracebacks etc.
    You should cast the value to `str` at the point it is required.
    c                ó   — || _         y r^   ©Ú_value)rP   rU   s     r'   rX   zSecret.__init__ã   s	   € Øˆ�r&   c                ó8   — | j                   j                  }|› d�S )Nz('**********')©rz   r!   )rP   Ú
class_names     r'   r™   zSecret.__repr__æ   s   € Ø—^‘^×,Ñ,ˆ
Ø�˜^Ð,Ð,r&   c                ó   — | j                   S r^   rµ   r\   s    r'   r”   zSecret.__str__ê   s   € Ø�{‰{Ðr&   c                ó,   — t        | j                  «      S r^   )rŸ   r¶   r\   s    r'   Ú__bool__zSecret.__bool__í   ó   € Ü�D—K‘KÓ Ð r&   N)rU   r   rœ   rž   )r!   r"   r#   r±   rX   r™   r”   r¼   r%   r&   r'   r³   r³   Ý   s   „ ñó
ó-óô!r&   r³   c                  ó<   — e Zd Zdd„Zd	d„Zd
d„Zdd„Zdd„Zdd„Zy)ÚCommaSeparatedStringsc                óÌ   — t        |t        «      r?t        |d¬«      }d|_        d|_        |D �cg c]  }|j                  «       ‘Œ c}| _        y t        |«      | _        y c c}w )NT)Úposixú,)rŒ   r   r   Ú
whitespaceÚwhitespace_splitÚstripÚ_itemsÚlist)rP   rU   ÚsplitterÚitems       r'   rX   zCommaSeparatedStrings.__init__ò   sP   € Ü�eœSÔ!Ü˜U¨$Ô/ˆHØ"%ˆHÔØ(,ˆHÔ%Ø4<Ö=¨D˜4Ÿ:™:�<Ò=ˆD�Kä˜u›+ˆD�Kùò >s   °A!c                ó,   — t        | j                  «      S r^   )ÚlenrÆ   r\   s    r'   Ú__len__zCommaSeparatedStrings.__len__û   ó   € Ü�4—;‘;ÓÐr&   c                ó    — | j                   |   S r^   )rÆ   )rP   Úindexs     r'   Ú__getitem__z!CommaSeparatedStrings.__getitem__þ   s   € Ø�{‰{˜5Ñ!Ð!r&   c                ó,   — t        | j                  «      S r^   )ÚiterrÆ   r\   s    r'   Ú__iter__zCommaSeparatedStrings.__iter__  r½   r&   c                óf   — | j                   j                  }| D �cg c]  }|‘Œ }}|› d|›d�S c c}w ©Nr–   r—   r¸   )rP   r¹   rÉ   r…   s       r'   r™   zCommaSeparatedStrings.__repr__  s<   € Ø—^‘^×,Ñ,ˆ
Ø"&Ö'˜$’Ð'ˆÐ'Ø�˜Q˜u˜i qÐ)Ð)ùò (s   ›	.c                ó2   — dj                  d„ | D «       «      S )Nú, c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr^   )r˜   )Ú.0rÉ   s     r'   ú	<genexpr>z0CommaSeparatedStrings.__str__.<locals>.<genexpr>
  s   è ø€ Ò5¨œ˜dŸÑ5ùs   ‚)Újoinr\   s    r'   r”   zCommaSeparatedStrings.__str__	  s   € Ø�y‰yÑ5°Ô5Ó5Ð5r&   N)rU   r    ©rš   r   )rÏ   zint | slicerš   r   ©rš   zIterator[str]rœ   )	r!   r"   r#   rX   rÌ   rÐ   rÓ   r™   r”   r%   r&   r'   r¿   r¿   ñ   s    „ ó&ó ó"ó!ó*ô
6r&   r¿   c                  ó„   — e Zd ZU ded<   	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd	„Z
dd
„Zdd„Zdd„Zdd„Zdd„Zy)ÚImmutableMultiDictz#dict[_KeyType, _CovariantValueType]Ú_dictc                ó>  — t        |«      dk  sJ d«       ‚|r|d   ng }|r3t        |«      j                  «       t        |«      j                  «       z   }|sg }n�t        |d«      r7t	        t        t
        t        f   |«      }t        |j                  «       «      }nZt        |d«      r7t	        t        t
        t        f   |«      }t        |j                  «       «      }nt	        d|«      }t        |«      }|D ��ci c]  \  }}||“Œ
 c}}| _
        || _        y c c}}w )NrF   úToo many arguments.r   r†   r…   zlist[tuple[Any, Any]])rË   rß   r†   r[   r   r(   r)   rÇ   r   r…   rà   Ú_list)rP   Úargsr{   rU   rÆ   ÚkÚvs          r'   rX   zImmutableMultiDict.__init__  sü   € ô �4‹y˜1Š}Ð3Ð3Ó3ˆ}á $�T˜!’W¨"ˆÙÜ& uÓ-×9Ñ9Ó;Ô>PÐQWÓ>X×>dÑ>dÓ>fÑfˆEáØ,.‰FÜ�U˜MÔ*ÜÔ+¬HÔ6IÐ,IÑJÈEÓRˆEÜ˜%×+Ñ+Ó-Ó.‰FÜ�U˜GÔ$Üœ¤Ô+>Ð!>Ñ?ÀÓGˆEÜ˜%Ÿ+™+›-Ó(‰FäÐ0°%Ó8ˆEÜ˜%“[ˆFà'-×.™t˜q !�a˜‘dÓ.ˆŒ
Øˆ�
ùó /s   Ã;Dc                óX   — | j                   D ��cg c]  \  }}||k(  sŒ|‘Œ c}}S c c}}w r^   ©rã   )rP   rT   Úitem_keyÚ
item_values       r'   ÚgetlistzImmutableMultiDict.getlist,  s&   € Ø7;·z±z×UÑ3˜x¨ÀXÐQTÃ_’
ÓUÐUùÓUs   �&ž&c                ó6   — | j                   j                  «       S r^   )rà   r�   r\   s    r'   r�   zImmutableMultiDict.keys/  s   € Ø�z‰z�‰Ó Ð r&   c                ó6   — | j                   j                  «       S r^   )rà   Úvaluesr\   s    r'   rî   zImmutableMultiDict.values2  s   € Ø�z‰z× Ñ Ó"Ð"r&   c                ó6   — | j                   j                  «       S r^   )rà   r…   r\   s    r'   r…   zImmutableMultiDict.items5  s   € Ø�z‰z×ÑÓ!Ð!r&   c                ó,   — t        | j                  «      S r^   ©rÇ   rã   r\   s    r'   r†   zImmutableMultiDict.multi_items8  s   € Ü�D—J‘JÓÐr&   c                ó    — | j                   |   S r^   ©rà   ©rP   rT   s     r'   rÐ   zImmutableMultiDict.__getitem__;  s   € Ø�z‰z˜#‰Ðr&   c                ó   — || j                   v S r^   ró   rô   s     r'   Ú__contains__zImmutableMultiDict.__contains__>  s   € Ø�d—j‘jÐ Ð r&   c                ó4   — t        | j                  «       «      S r^   ©rÒ   r�   r\   s    r'   rÓ   zImmutableMultiDict.__iter__A  ó   € Ü�D—I‘I“KÓ Ð r&   c                ó,   — t        | j                  «      S r^   )rË   rà   r\   s    r'   rÌ   zImmutableMultiDict.__len__D  ó   € Ü�4—:‘:‹Ðr&   c                ó²   — t        || j                  «      syt        | j                  t	        d«      ¬«      t        |j                  t	        d«      ¬«      k(  S )NFr   )rT   )rŒ   rz   Úsortedrã   r   r�   s     r'   r’   zImmutableMultiDict.__eq__G  s?   € Ü˜% §¡Ô0ØÜ�d—j‘j¤j°£mÔ4¼¸u¿{¹{ÔPZÐ[\ÓP]Ô8^Ñ^Ð^r&   c                ó^   — | j                   j                  }| j                  «       }|› d|›d�S rÕ   )rz   r!   r†   )rP   r¹   r…   s      r'   r™   zImmutableMultiDict.__repr__L  s2   € Ø—^‘^×,Ñ,ˆ
Ø× Ñ Ó"ˆØ�˜Q˜u˜i qÐ)Ð)r&   N)rä   z‹ImmutableMultiDict[_KeyType, _CovariantValueType] | Mapping[_KeyType, _CovariantValueType] | Iterable[tuple[_KeyType, _CovariantValueType]]r{   r   rš   r›   )rT   r   rš   zlist[_CovariantValueType])rš   zKeysView[_KeyType])rš   zValuesView[_CovariantValueType])rš   z(ItemsView[_KeyType, _CovariantValueType])rš   z*list[tuple[_KeyType, _CovariantValueType]])rT   r(   rš   r)   ©rT   r   rš   rŸ   )rš   zIterator[_KeyType]rÜ   r¡   rœ   )r!   r"   r#   r$   rX   rë   r�   rî   r…   r†   rÐ   rö   rÓ   rÌ   r’   r™   r%   r&   r'   rß   rß     sd   … Ø.Ó.ðð9ðð
 ðð 
óó8Vó!ó#ó"ó óó!ó!óó_ô
*r&   rß   c                  ól   — e Zd Zdd„Zdd„Zddd„Zdd„Zdd„Zdd„Zddd„Z	dd	„Z
dd
„Z	 	 	 	 	 	 dd„Zy)rƒ   c                ó*   — | j                  ||g«       y r^   )Úsetlist©rP   rT   rU   s      r'   Ú__setitem__zMultiDict.__setitem__S  s   € Ø�‰�S˜5˜'Õ"r&   c                ó‚   — | j                   D ��cg c]  \  }}||k7  sŒ||f‘Œ c}}| _         | j                  |= y c c}}w r^   )rã   rà   )rP   rT   rå   ræ   s       r'   Ú__delitem__zMultiDict.__delitem__V  s7   € Ø)-¯©×@¡  A°q¸C³x�q˜!’fÓ@ˆŒ
Ø�J‰J�s‰Oùó As   �;ž;Nc                óž   — | j                   D ��cg c]  \  }}||k7  sŒ||f‘Œ c}}| _         | j                  j                  ||«      S c c}}w r^   )rã   rà   rs   )rP   rT   Údefaultrå   ræ   s        r'   rs   zMultiDict.popZ  sA   € Ø)-¯©×@¡  A°q¸C³x�q˜!’fÓ@ˆŒ
Ø�z‰z�~‰~˜c 7Ó+Ð+ùó As
   �A	žA	c                ó¨   — | j                   j                  «       \  }}| j                  D ��cg c]  \  }}||k7  sŒ||f‘Œ c}}| _        ||fS c c}}w r^   )rà   Úpopitemrã   )rP   rT   rU   rå   ræ   s        r'   r
  zMultiDict.popitem^  sL   € Ø—Z‘Z×'Ñ'Ó)‰
ˆˆUØ)-¯©×@¡  A°q¸C³x�q˜!’fÓ@ˆŒ
Ø�EˆzÐùó As
   ­A»Ac                ó|   — | j                   D ��cg c]  \  }}||k(  sŒ|‘Œ }}}| j                  |«       |S c c}}w r^   )rã   rs   )rP   rT   rå   ræ   rî   s        r'   ÚpoplistzMultiDict.poplistc  s8   € Ø $§
¡
×7™˜˜1¨a°3«h’!Ð7ˆÑ7Ø�‰�ŒØˆùó 8s   �8ž8c                ól   — | j                   j                  «        | j                  j                  «        y r^   )rà   Úclearrã   r\   s    r'   r  zMultiDict.clearh  s"   € Ø�
‰
×ÑÔØ�
‰
×ÑÕr&   c                ól   — || vr,|| j                   |<   | j                  j                  ||f«       | |   S r^   )rà   rã   Úappend)rP   rT   r  s      r'   Ú
setdefaultzMultiDict.setdefaultl  s6   € Ø�d‰?Ø%ˆD�J‰J�s‰OØ�J‰J×Ñ˜s G˜nÔ-à�C‰yÐr&   c                óè   — |s| j                  |d «       y | j                  D ��cg c]  \  }}||k7  sŒ||f‘Œ }}}||D �cg c]  }||f‘Œ c}z   | _        |d   | j                  |<   y c c}}w c c}w )Nrq   )rs   rã   rà   )rP   rT   rî   rå   ræ   Úexisting_itemsrU   s          r'   r  zMultiDict.setlists  sm   € ÙØ�H‰H�S˜$Õà37·:±:×J©¨!¨QÀÀcÃ˜q !šfÐJˆNÑJØ'ÀVÖ*L¸E¨C°ª<Ò*LÑLˆDŒJØ$ R™jˆD�J‰J�sŠOùó KùÚ*Ls   ¥A)³A)ÁA/c                ó\   — | j                   j                  ||f«       || j                  |<   y r^   )rã   r  rà   r  s      r'   r  zMultiDict.append{  s%   € Ø�
‰
×Ñ˜3 ˜,Ô'Øˆ�
‰
�3Šr&   c                óò   — t        |i |¤Ž}| j                  D ��cg c]  \  }}||j                  «       vsŒ||f‘Œ }}}||j                  «       z   | _        | j                  j                  |«       y c c}}w r^   )rƒ   rã   r�   r†   rà   r„   )rP   rä   r{   rU   rå   ræ   r  s          r'   r„   zMultiDict.update  sl   € ô
 ˜4Ð* 6Ñ*ˆØ/3¯z©z×S¡V a¨¸QÀeÇjÁjÃlÒ=R˜1˜aš&ÐSˆÑSØ# e×&7Ñ&7Ó&9Ñ9ˆŒ
Ø�
‰
×Ñ˜%Õ ùó Ts
   ›A3¶A3©rT   r   rU   r   rš   r›   ©rT   r   rš   r›   r^   )rT   r   r  r   rš   r   )rš   ztuple[Any, Any])rT   r   rš   ú	list[Any]©rš   r›   )rT   r   rî   r  rš   r›   )rä   z5MultiDict | Mapping[Any, Any] | list[tuple[Any, Any]]r{   r   rš   r›   )r!   r"   r#   r  r  rs   r
  r  r  r  r  r  r„   r%   r&   r'   rƒ   rƒ   R  sP   „ ó#óô,óó
ó
ôó)ó ð!àDð!ð ð!ð 
ô	!r&   rƒ   c                  ó@   ‡ — e Zd ZdZ	 	 	 	 	 	 dˆ fd„Zdd„Zdd„Zˆ xZS )ÚQueryParamsz!
    An immutable multidict.
    c                ó@  •— t        |«      dk  sJ d«       ‚|r|d   ng }t        |t        «      rt        ‰| �  t        |d¬«      fi |¤Ž nJt        |t        «      r+t        ‰| �  t        |j                  d«      d¬«      fi |¤Ž nt        ‰| �  |i |¤Ž | j                  D ��cg c]  \  }}t        |«      t        |«      f‘Œ c}}| _        | j                  j                  «       D ��ci c]  \  }}t        |«      t        |«      “Œ c}}| _	        y c c}}w c c}}w )NrF   râ   r   Tr€   r8   )rË   rŒ   r   ÚsuperrX   r   ÚbytesrI   rã   rà   r…   )rP   rä   r{   rU   rå   ræ   rz   s         €r'   rX   zQueryParams.__init__�  sé   ø€ ô
 �4‹y˜1Š}Ð3Ð3Ó3ˆ}á��Q’ Rˆä�eœSÔ!Ü‰GÑœY uÀÔEÑPÈÓPÜ˜œuÔ%Ü‰GÑœY u§|¡|°IÓ'>ÐRVÔWÑbÐ[aÓbä‰GÑ˜dÐ- fÒ-Ø37·:±:×>©4¨1¨a”s˜1“vœs 1›vÒ&Ó>ˆŒ
Ø15·±×1AÑ1AÓ1C×D©¨¨A”c˜!“fœc !›f‘nÓDˆ�
ùó ?ùÛDs   Â% DÃ+Dc                ó,   — t        | j                  «      S r^   )r   rã   r\   s    r'   r”   zQueryParams.__str__¡  s   € Ü˜Ÿ™Ó$Ð$r&   c                óT   — | j                   j                  }t        | «      }|› d|›d�S rÕ   )rz   r!   r   )rP   r¹   r6   s      r'   r™   zQueryParams.__repr__¤  s.   € Ø—^‘^×,Ñ,ˆ
Ü˜4“yˆØ�˜Q˜|Ð.¨aÐ0Ð0r&   )rä   zVImmutableMultiDict[Any, Any] | Mapping[Any, Any] | list[tuple[Any, Any]] | str | bytesr{   r   rš   r›   rœ   )r!   r"   r#   r±   rX   r”   r™   Ú__classcell__©rz   s   @r'   r  r  Š  s7   ø„ ñðEàeðEð ðEð 
õ	Eó$%÷1r&   r  c                  óŠ   — e Zd ZdZddddœ	 	 	 	 	 	 	 	 	 dd„Zedd„«       Zedd„«       Zdd„Zdd„Z	ddd	„Z
dd
„Zdd„Zdd„Zy)Ú
UploadFilez@
    An uploaded file included as part of the request data.
    N)ÚsizeÚfilenamer7   c               óŒ   — || _         || _        || _        |xs
 t        «       | _        t        | j                  dd«      | _        y )NÚ	_max_sizer   )r&  Úfiler%  ÚHeadersr7   ÚgetattrÚ_max_mem_size)rP   r)  r%  r&  r7   s        r'   rX   zUploadFile.__init__¯  s>   € ð !ˆŒØˆŒ	ØˆŒ	ØÒ+¤'£)ˆŒô % T§Y¡Y°¸QÓ?ˆÕr&   c                ó:   — | j                   j                  dd «      S )Nzcontent-type)r7   rG   r\   s    r'   Úcontent_typezUploadFile.content_typeÀ  s   € à�|‰|×Ñ °Ó5Ð5r&   c                ó6   — t        | j                  dd«      }| S )NÚ_rolledT)r+  r)  )rP   Úrolled_to_disks     r'   Ú
_in_memoryzUploadFile._in_memoryÄ  s   € ô ! §¡¨I°tÓ<ˆØ!Ð!Ð!r&   c                ó¢   — | j                   sy| j                  j                  «       |z   }| j                  rt	        || j                  kD  «      S dS )NTF)r2  r)  Útellr,  rŸ   )rP   Úsize_to_addÚfuture_sizes      r'   Ú
_will_rollzUploadFile._will_rollÊ  sG   € à�ŠØð —i‘i—n‘nÓ&¨Ñ4ˆØ9=×9KÒ9KŒt�K $×"4Ñ"4Ñ4Ó5ÐVÐQVÐVr&   c              ƒ  ó  K  — t        |«      }| j                  �| xj                  |z  c_        | j                  |«      r)t        | j                  j
                  |«      ƒ d {  –—†  y | j                  j                  |«       y 7 Œ!­wr^   )rË   r%  r7  r   r)  Úwrite)rP   ÚdataÚnew_data_lens      r'   r9  zUploadFile.writeÓ  s`   è ø€ Ü˜4“yˆØ�9‰9Ð Ø�IŠI˜Ñ%�Ià�?‰?˜<Ô(Ü# D§I¡I§O¡O°TÓ:×:Ñ:à�I‰I�O‰O˜DÕ!ð ;ús   ‚A!BÁ#BÁ$"Bc              ƒ  ó¬   K  — | j                   r| j                  j                  |«      S t        | j                  j                  |«      ƒ d {  –—† S 7 Œ­wr^   )r2  r)  Úreadr   )rP   r%  s     r'   r=  zUploadFile.readÝ  s;   è ø€ Ø�?Š?Ø—9‘9—>‘> $Ó'Ð'Ü& t§y¡y§~¡~°tÓ<×<Ð<Ð<ús   ‚AAÁAÁAc              ƒ  ó°   K  — | j                   r| j                  j                  |«       y t        | j                  j                  |«      ƒ d {  –—†  y 7 Œ­wr^   )r2  r)  Úseekr   )rP   Úoffsets     r'   r?  zUploadFile.seekâ  s5   è ø€ Ø�?Š?Ø�I‰I�N‰N˜6Õ"ä# D§I¡I§N¡N°FÓ;×;Ò;ús   ‚AAÁAÁAc              ƒ  ó¬   K  — | j                   r| j                  j                  «        y t        | j                  j                  «      ƒ d {  –—†  y 7 Œ­wr^   )r2  r)  Úcloser   r\   s    r'   rB  zUploadFile.closeè  s1   è ø€ Ø�?Š?Ø�I‰I�O‰OÕä# D§I¡I§O¡OÓ4×4Ò4ús   ‚A
AÁAÁAc                ó‚   — | j                   j                  › d| j                  ›d| j                  ›d| j                  ›d�S )Nz
(filename=z, size=z
, headers=r—   )rz   r!   r&  r%  r7   r\   s    r'   r™   zUploadFile.__repr__î  s?   € Ø—.‘.×)Ñ)Ð*¨*°T·]±]Ð4EÀWÈTÏYÉYÈMÐYcÐdh×dpÑdpÐcsÐstÐuÐur&   )
r)  r   r%  r�   r&  ú
str | Noner7   zHeaders | Nonerš   r›   )rš   rD  rž   )r5  r   rš   rŸ   )r:  r  rš   r›   )rq   )r%  r   rš   r  )r@  r   rš   r›   r  rœ   )r!   r"   r#   r±   rX   r¢   r.  r2  r7  r9  r=  r?  rB  r™   r%   r&   r'   r$  r$  ª  s•   „ ñð  Ø#Ø"&ñ@àð@ð ð	@ð
 ð@ð  ð@ð 
ó@ð" ò6ó ð6ð ò"ó ð"ó
Wó"ô=ó
<ó5ôvr&   r$  c                  ó8   ‡ — e Zd ZdZ	 	 	 	 	 	 dˆ fd„Zdd„Zˆ xZS )ÚFormDatazN
    An immutable multidict, containing both file uploads and text input.
    c                ó$   •— t        ‰| �  |i |¤Ž y r^   )r  rX   )rP   rä   r{   rz   s      €r'   rX   zFormData.__init__÷  s   ø€ ô
 	‰Ñ˜$Ð) &Ó)r&   c              ƒ  ó’   K  — | j                  «       D ].  \  }}t        |t        «      sŒ|j                  «       ƒ d {  –—†  Œ0 y 7 Œ­wr^   )r†   rŒ   r$  rB  r  s      r'   rB  zFormData.closeþ  s>   è ø€ Ø×*Ñ*Ó,ò 	$‰JˆC�Ü˜%¤Õ,Ø—k‘k“m×#Ñ#ñ	$à#ús   ‚'AªA½A¾A)rä   zNFormData | Mapping[str, str | UploadFile] | list[tuple[str, str | UploadFile]]r{   zstr | UploadFilerš   r›   r  )r!   r"   r#   r±   rX   rB  r!  r"  s   @r'   rF  rF  ò  s.   ø„ ñð*à]ð*ð #ð*ð 
õ	*÷$r&   rF  c                  ó˜   — e Zd ZdZ	 	 	 d	 	 	 	 	 	 	 dd„Zedd„«       Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zdd
„Zdd„Zdd„Zdd„Zdd„Zdd„Zy)r*  z3
    An immutable, case-insensitive multidict.
    Nc                óP  — g | _         |�i|�J d«       ‚|�J d«       ‚|j                  «       D ��cg c]5  \  }}|j                  «       j                  d«      |j                  d«      f‘Œ7 c}}| _         y |�|�J d«       ‚|| _         y |�t	        |d   «      x| _         |d<   y y c c}}w )Nz$Cannot set both "headers" and "raw".z&Cannot set both "headers" and "scope".r8   z"Cannot set both "raw" and "scope".r7   )rã   r…   ÚlowerÚencoderÇ   )rP   r7   ÚrawrR   rT   rU   s         r'   rX   zHeaders.__init__	  s¼   € ð 13ˆŒ
ØÐØ�;ÐFÐ FÓF�;Ø�=ÐJÐ"JÓJ�=Øel×erÑerÓet×uÑWaÐWZÐ\a˜3Ÿ9™9›;×-Ñ-¨iÓ8¸%¿,¹,ÀyÓ:QÒRÓuˆD�JØˆ_Ø�=ÐFÐ"FÓF�=ØˆD�JØÐô -1°°yÑ1AÓ,BÐBˆDŒJ˜˜yÒ)ð ùó	 vs   ¯:B"c                ó,   — t        | j                  «      S r^   rñ   r\   s    r'   rM  zHeaders.raw  s   € ä�D—J‘JÓÐr&   c                ój   — | j                   D ��cg c]  \  }}|j                  d«      ‘Œ c}}S c c}}w ©Nr8   ©rã   rI   r  s      r'   r�   zHeaders.keys   s'   € Ø8<¿
¹
×C©*¨#¨u�—
‘
˜9Õ%ÓCÐCùÓCó   �/c                ój   — | j                   D ��cg c]  \  }}|j                  d«      ‘Œ c}}S c c}}w rP  rQ  r  s      r'   rî   zHeaders.values#  s'   € Ø:>¿*¹*×E©J¨C°�—‘˜YÕ'ÓEÐEùÓErR  c                óŒ   — | j                   D ��cg c]'  \  }}|j                  d«      |j                  d«      f‘Œ) c}}S c c}}w rP  rQ  r  s      r'   r…   zHeaders.items&  s7   € ØSW×S]ÑS]×^ÁZÀSÈ%�—‘˜IÓ&¨¯©°YÓ(?Ò@Ó^Ð^ùÓ^s   �,A c                ó´   — |j                  «       j                  d«      }| j                  D ��cg c]  \  }}||k(  sŒ|j                  d«      ‘Œ c}}S c c}}w rP  )rK  rL  rã   rI   )rP   rT   Úget_header_keyré   rê   s        r'   rë   zHeaders.getlist)  sI   € ØŸ™›×+Ñ+¨IÓ6ˆØIMÏÉ×rÑ1E°¸:ÐW_ÐcqÓWq�
×!Ñ! )Õ,ÓrÐrùÓrs
   ¯A½Ac                ó4   — t        | j                  d d  ¬«      S )N)rM  )ÚMutableHeadersrã   r\   s    r'   ÚmutablecopyzHeaders.mutablecopy-  s   € Ü $§*¡*©Q -Ô0Ð0r&   c                ó®   — |j                  «       j                  d«      }| j                  D ]  \  }}||k(  sŒ|j                  d«      c S  t	        |«      ‚rP  )rK  rL  rã   rI   ÚKeyError©rP   rT   rV  Ú
header_keyÚheader_values        r'   rÐ   zHeaders.__getitem__0  sU   € ØŸ™›×+Ñ+¨IÓ6ˆØ(,¯
©
ò 	6Ñ$ˆJ˜Ø˜^Ó+Ø#×*Ñ*¨9Ó5Ò5ð	6ô �s‹mÐr&   c                óx   — |j                  «       j                  d«      }| j                  D ]  \  }}||k(  sŒ y y)Nr8   TF)rK  rL  rã   r\  s        r'   rö   zHeaders.__contains__7  s@   € ØŸ™›×+Ñ+¨IÓ6ˆØ(,¯
©
ò 	Ñ$ˆJ˜Ø˜^Ó+Ùð	ð r&   c                ó4   — t        | j                  «       «      S r^   rø   r\   s    r'   rÓ   zHeaders.__iter__>  rù   r&   c                ó,   — t        | j                  «      S r^   )rË   rã   r\   s    r'   rÌ   zHeaders.__len__A  rû   r&   c                óz   — t        |t        «      syt        | j                  «      t        |j                  «      k(  S )NF)rŒ   r*  rý   rã   r�   s     r'   r’   zHeaders.__eq__D  s,   € Ü˜%¤Ô)ØÜ�d—j‘jÓ!¤V¨E¯K©KÓ%8Ñ8Ð8r&   c                óÂ   — | j                   j                  }t        | j                  «       «      }t	        |«      t	        | «      k(  r|› d|›d�S |› d| j
                  ›d�S )Nr–   r—   z(raw=)rz   r!   Údictr…   rË   rM  )rP   r¹   Úas_dicts      r'   r™   zHeaders.__repr__I  s[   € Ø—^‘^×,Ñ,ˆ
Ü�t—z‘z“|Ó$ˆÜˆw‹<œ3˜t›9Ò$Ø �\  7 +¨QÐ/Ð/Ø�˜U 4§8¡8 ,¨aÐ0Ð0r&   )NNN)r7   zMapping[str, str] | NonerM  z list[tuple[bytes, bytes]] | NonerR   zMutableMapping[str, Any] | Nonerš   r›   ©rš   zlist[tuple[bytes, bytes]])rš   ú	list[str])rš   zlist[tuple[str, str]])rT   r   rš   rg  )rš   rX  )rT   r   rš   r   rÿ   )rš   zIterator[Any]rÜ   r¡   rœ   )r!   r"   r#   r±   rX   r¢   rM  r�   rî   r…   rë   rY  rÐ   rö   rÓ   rÌ   r’   r™   r%   r&   r'   r*  r*    s‘   „ ñð -1Ø04Ø15ð	Cà)ðCð .ðCð /ð	Cð
 
óCð& ò ó ð óDóFó_ósó1óóó!óó9ô
1r&   r*  c                  ó^   — e Zd Zdd„Zdd„Zdd„Zdd„Zedd„«       Zdd„Z	dd„Z
dd„Zdd	„Zy
)rX  c                ó‚  — |j                  «       j                  d«      }|j                  d«      }g }t        | j                  «      D ]  \  }\  }}||k(  sŒ|j	                  |«       Œ! t        |dd «      D ]  }| j                  |= Œ |r|d   }||f| j                  |<   y| j                  j	                  ||f«       y)zs
        Set the header `key` to `value`, removing any duplicate entries.
        Retains insertion order.
        r8   rr   Nr   ©rK  rL  Ú	enumeraterã   r  Úreversed)	rP   rT   rU   Úset_keyÚ	set_valueÚfound_indexesÚidxré   rê   s	            r'   r  zMutableHeaders.__setitem__R  sÅ   € ð
 —)‘)“+×$Ñ$ YÓ/ˆØ—L‘L Ó+ˆ	à#%ˆÜ+4°T·Z±ZÓ+@ò 	*Ñ'ˆCÑ'�(˜JØ˜7Ó"Ø×$Ñ$ SÕ)ð	*ô ˜M¨!¨"Ð-Ó.ò 	 ˆCØ—
‘
˜3‘ð	 ñ Ø Ñ"ˆCØ&¨	Ð2ˆD�J‰J�sŠOà�J‰J×Ñ˜w¨	Ð2Õ3r&   c                óî   — |j                  «       j                  d«      }g }t        | j                  «      D ]  \  }\  }}||k(  sŒ|j	                  |«       Œ! t        |«      D ]  }| j                  |= Œ y)z*
        Remove the header `key`.
        r8   Nrj  )rP   rT   Údel_keyÚpop_indexesrp  ré   rê   s          r'   r  zMutableHeaders.__delitem__h  sx   € ð —)‘)“+×$Ñ$ YÓ/ˆà!#ˆÜ+4°T·Z±ZÓ+@ò 	(Ñ'ˆCÑ'�(˜JØ˜7Ó"Ø×"Ñ" 3Õ'ð	(ô ˜KÓ(ò 	 ˆCØ—
‘
˜3‘ñ	 r&   c                óŒ   — t        |t        «      s"t        d|j                  j                  › �«      ‚| j                  |«       | S ©NzExpected a mapping but got )rŒ   r   Ú	TypeErrorrz   r!   r„   r�   s     r'   Ú__ior__zMutableHeaders.__ior__v  s;   € Ü˜%¤Ô)ÜÐ9¸%¿/¹/×:RÑ:RÐ9SÐTÓUÐUØ�‰�EÔØˆr&   c                ó¬   — t        |t        «      s"t        d|j                  j                  › �«      ‚| j                  «       }|j                  |«       |S ru  )rŒ   r   rv  rz   r!   rY  r„   )rP   r‘   Únews      r'   Ú__or__zMutableHeaders.__or__|  sI   € Ü˜%¤Ô)ÜÐ9¸%¿/¹/×:RÑ:RÐ9SÐTÓUÐUØ×ÑÓ ˆØ�
‰
�5ÔØˆ
r&   c                ó   — | j                   S r^   rè   r\   s    r'   rM  zMutableHeaders.rawƒ  s   € à�z‰zÐr&   c                ó  — |j                  «       j                  d«      }|j                  d«      }t        | j                  «      D ]   \  }\  }}||k(  sŒ|j	                  d«      c S  | j                  j                  ||f«       |S )zo
        If the header `key` does not exist, then set it to `value`.
        Returns the header value.
        r8   )rK  rL  rk  rã   rI   r  )rP   rT   rU   rm  rn  rp  ré   rê   s           r'   r  zMutableHeaders.setdefault‡  s�   € ð
 —)‘)“+×$Ñ$ YÓ/ˆØ—L‘L Ó+ˆ	ä+4°T·Z±ZÓ+@ò 	4Ñ'ˆCÑ'�(˜JØ˜7Ó"Ø!×(Ñ(¨Ó3Ò3ð	4ð 	�
‰
×Ñ˜7 IÐ.Ô/Øˆr&   c                ó>   — |j                  «       D ]
  \  }}|| |<   Œ y r^   )r…   )rP   r‘   rT   Úvals       r'   r„   zMutableHeaders.update•  s$   € ØŸ™›ò 	‰HˆC�ØˆD�ŠIñ	r&   c                óž   — |j                  «       j                  d«      }|j                  d«      }| j                  j                  ||f«       y)zD
        Append a header, preserving any duplicate entries.
        r8   N)rK  rL  rã   r  )rP   rT   rU   Ú
append_keyÚappend_values        r'   r  zMutableHeaders.append™  s?   € ð —Y‘Y“[×'Ñ'¨	Ó2ˆ
Ø—|‘| IÓ.ˆØ�
‰
×Ñ˜: |Ð4Õ5r&   c                óR   — dj                  g | j                  d«      ¢|‘«      | d<   y )Nr×   Úvary)rÛ   rë   )rP   rƒ  s     r'   Úadd_vary_headerzMutableHeaders.add_vary_header¡  s(   € Ø—y‘yÐ!> 4§<¡<°Ó#7Ð!>¸Ð!>Ó?ˆˆVŠr&   N)rT   r   rU   r   rš   r›   ©rT   r   rš   r›   )r‘   úMapping[str, str]rš   rX  rf  )rT   r   rU   r   rš   r   )r‘   r†  rš   r›   )rƒ  r   rš   r›   )r!   r"   r#   r  r  rw  rz  r¢   rM  r  r„   r  r„  r%   r&   r'   rX  rX  Q  s?   „ ó4ó, óóð òó ðóóó6ô@r&   rX  c                  ór   ‡ — 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	„Z
dd
„Zdd„Zdd„Zˆ xZS )ÚStatezm
    An object that can be used to store arbitrary state.

    Used for `request.state` and `app.state`.
    zdict[str, Any]Ú_statec                ó.   •— |€i }t         ‰| �  d|«       y )Nr‰  )r  Ú__setattr__)rP   Ústaterz   s     €r'   rX   zState.__init__®  s   ø€ Øˆ=ØˆEÜ‰Ñ˜H eÕ,r&   c                ó"   — || j                   |<   y r^   ©r‰  r  s      r'   r‹  zState.__setattr__³  ó   € Ø ˆ�‰�CÒr&   c                óž   — 	 | j                   |   S # t        $ r2 d}t        |j                  | j                  j
                  |«      «      ‚w xY w)Nz!'{}' object has no attribute '{}')r‰  r[  ÚAttributeErrorÚformatrz   r!   )rP   rT   Úmessages      r'   Ú__getattr__zState.__getattr__¶  sM   € ð	OØ—;‘;˜sÑ#Ð#øÜò 	OØ9ˆGÜ  §¡°·±×0GÑ0GÈÓ!MÓNÐNð	Oús	   ‚ ‘;Ac                ó   — | j                   |= y r^   rŽ  rô   s     r'   Ú__delattr__zState.__delattr__½  ó   € Ø�K‰K˜Ñr&   c                ó    — | j                   |   S r^   rŽ  rô   s     r'   rÐ   zState.__getitem__À  s   € Ø�{‰{˜3ÑÐr&   c                ó"   — || j                   |<   y r^   rŽ  r  s      r'   r  zState.__setitem__Ã  r�  r&   c                ó   — | j                   |= y r^   rŽ  rô   s     r'   r  zState.__delitem__Æ  r—  r&   c                ó,   — t        | j                  «      S r^   )rÒ   r‰  r\   s    r'   rÓ   zState.__iter__É  r½   r&   c                ó,   — t        | j                  «      S r^   )rË   r‰  r\   s    r'   rÌ   zState.__len__Ì  rÍ   r&   r^   )rŒ  zdict[str, Any] | Noner  )rT   r   rš   r   r  )rT   r   rš   r   )rT   r   rU   r   rš   r›   r…  rÝ   rÜ   )r!   r"   r#   r±   r$   rX   r‹  r”  r–  rÐ   r  r  rÓ   rÌ   r!  r"  s   @r'   rˆ  rˆ  ¥  s>   ø… ñð Óö-ó
!óOóó ó!óó!÷ r&   rˆ  )1Ú
__future__r   rv   Úcollections.abcr   r   r   r   r   r	   r
   r   Úoperatorr   r   Útypingr   r   r   r   r   r   Úurllib.parser   r   r   r   Ústarlette._utilsr   Ústarlette.concurrencyr   Ústarlette.typesr   r   r(   r)   r,   r   r¤   r³   r¿   rß   rƒ   r  r$  rF  r*  rX  rˆ  r%   r&   r'   ú<module>r¥     s1  ðÝ "ã ß r× rÓ rÝ Ý ß D× Dß DÓ Då .Ý 3Ý !ôˆjô ñ
 �:Ó€ñ Ð3¸tÔDÐ ÷]9ñ ]9ô@<ˆcô <÷D!ñ !ô(6˜H S™Mô 6ô8B*˜ Ð+>Ð!>Ñ?ô B*ôJ5!Ð" 3¨ 8Ñ,ô 5!ôp1Ð$ S¨# XÑ.ô 1÷@Evñ EvôP$Ð! # z°CÑ'7Ð"7Ñ8ô $ô$J1ˆg�c˜3�hÑô J1ôZQ@�Wô Q@÷h( ò ( r&   