Ë
    Eü´jE¸  ã                   óò  — U d dl Z d dlZd dlZd dlZd dlZd dl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mZmZ d dlmZmZmZ d dl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" ddl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl6m7Z7m8Z8m9Z9 ddl:m;Z;m<Z< ddl=m>Z> erddl?m@Z@ dZAed   ZB eCejˆ                  «      ZEeeCeF      eGd<    ej�                  d«      ZIeeF   eGd<    ej”                  deI› d�«      ZKee	eF      eGd<    ej”                  dej˜                  «      ZMee	eF      eGd<    ej”                  dej˜                  «      ZNee	eF      eGd<    ej”                  d«      ZOee	eP      eGd<    ej”                  d «      ZQee	eF      eGd!<    eRh d"£«      ZSeeReF      eGd#<    G d$„ d%e«      ZT G d&„ d'e«      ZU ed(eTeU«      ZV G d)„ d*e«      ZW G d+„ d,e«      ZX G d-„ d.e«      ZY G d/„ d0«      ZZd1eeF   d2e[fd3„Z\ G d4„ d5e jº                  eeV   «      Z^ G d6„ d7e^eT   «      Z_ G d8„ d9e^eU   «      Z` G d:„ d;«      Za G d<„ d=«      Zbe_Zce`ZdeTZeeUZf	 e)sdd>lgm_Z_m`Z`mTZTmUZU e_Zhe`ZieTZjeUZkyy# el$ r Y yw xY w)?é    N)Úsuppress)ÚIntEnum)ÚPattern)ÚTYPE_CHECKINGÚAnyÚClassVarÚFinalÚGenericÚLiteralÚ
NamedTupleÚTypeVar)ÚCIMultiDictÚCIMultiDictProxyÚistr)ÚURLé   )Úhdrs)ÚBaseProtocol)Ú
HAS_BROTLIÚHAS_ZSTDÚBrotliDecompressorÚZLibDecompressorÚZSTDDecompressor)Ú_EXC_SENTINELÚDEBUGÚDEFAULT_CHUNK_SIZEÚEMPTY_BODY_METHODSÚEMPTY_BODY_STATUS_CODESÚNO_EXTENSIONSÚBaseTimerContextÚset_exception)	ÚBadHttpMessageÚBadHttpMethodÚBadStatusLineÚContentEncodingErrorÚContentLengthErrorÚInvalidHeaderÚInvalidURLErrorÚLineTooLongÚTransferEncodingError)ÚHttpVersionÚHttpVersion10ÚHttpVersion11)ÚEMPTY_PAYLOADÚStreamReader)Ú
RawHeaders)ÚResponseHandler)ÚHeadersParserÚ
HttpParserÚHttpRequestParserÚHttpResponseParserÚRawRequestMessageÚRawResponseMessage)ó   
ó   
ÚASCIISETz!#$%&'*+-.^_`|~Ú_TCHAR_SPECIALSz
[0-9A-Za-zz]+ÚTOKENREzHTTP/(\d)\.(\d)ÚVERSREz\d+ÚDIGITSs   [0-9a-fA-F]+Ú	HEXDIGITSz[\x00-\x08\x0a-\x1f\x7f]Ú_FIELD_VALUE_FORBIDDEN_CTL_RE>
   ú
user-agentúcontent-typeúmax-forwardsúcontent-rangeúcontent-lengthúcontent-locationútransfer-encodingÚetagÚhostÚserverÚSINGLETON_HEADERSc                   óx   — e Zd ZU eed<   eed<   eed<   ded<   eed<   eed<   edz  ed	<   eed
<   eed<   eed<   y)r6   ÚmethodÚpathÚversionúCIMultiDictProxy[str]ÚheadersÚraw_headersÚshould_closeNÚcompressionÚupgradeÚchunkedÚurl)	Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r+   r0   Úboolr   © ó    úQ/root/workspace/ytshorts/venv/lib/python3.12/site-packages/aiohttp/http_parser.pyr6   r6   o   s=   … ØƒKØ
ƒIØÓØ$Ó$ØÓØÓØ�t‘ÓØƒMØƒMØ	„Hr_   r6   c                   ót   — e Zd ZU eed<   eed<   eed<   ee   ed<   eed<   e	ed<   edz  ed<   e	ed	<   e	ed
<   y)r7   rO   ÚcodeÚreasonrQ   rR   rS   NrT   rU   rV   )
rX   rY   rZ   r+   r\   Úintr[   r   r0   r]   r^   r_   r`   r7   r7   |   s=   … ØÓØ
ƒIØƒKØ˜cÑ"Ó"ØÓØÓØ�t‘ÓØƒMØ„Mr_   r7   Ú_MsgTc                   ó   — e Zd ZdZdZdZy)ÚPayloadStater   r   é   N)rX   rY   rZ   ÚPAYLOAD_COMPLETEÚPAYLOAD_NEEDS_INPUTÚPAYLOAD_HAS_PENDING_INPUTr^   r_   r`   rg   rg   ‹   s   „ ØÐØÐØ !Ñr_   rg   c                   ó   — e Zd ZdZdZdZdZy)Ú
ParseStater   r   rh   é   N)rX   rY   rZ   Ú
PARSE_NONEÚPARSE_LENGTHÚPARSE_CHUNKEDÚPARSE_UNTIL_EOFr^   r_   r`   rm   rm   ‘   s   „ à€JØ€LØ€MØ�Or_   rm   c                   ó    — e Zd ZdZdZdZdZdZy)Ú
ChunkStater   r   rh   rn   é   N)rX   rY   rZ   ÚPARSE_CHUNKED_SIZEÚPARSE_CHUNKED_CHUNKÚPARSE_CHUNKED_CHUNK_EOFÚPARSE_MAYBE_TRAILERSÚPARSE_TRAILERSr^   r_   r`   rt   rt   ™   s   „ ØÐØÐØÐØÐØ�Nr_   rt   c                   óR   — e Zd Z	 	 	 	 ddededededdf
d„Zdee   ded	e	f   fd
„Z
y)r2   Úmax_line_sizeÚmax_headersÚmax_field_sizeÚlaxÚreturnNc                 ó<   — || _         || _        || _        || _        y ©N)r|   r}   r~   Ú_lax)Úselfr|   r}   r~   r   s        r`   Ú__init__zHeadersParser.__init__¢   s#   € ð +ˆÔØ&ˆÔØ,ˆÔØˆ�	r_   ÚlinesrP   c                 óÎ  — t        «       }g }d}||   }t        |«      }|�r	 |j                  dd«      \  }}t        |«      dk(  rt	        |«      ‚|d   |d   hddhz  rt	        |«      ‚|j                  d«      }|j                  dd	«      }	t        j                  |	«      st	        |«      ‚|dz  }||   }| j                  xr |xr |d   d
v }
|
r¡t        |«      }|g}|
r€|t        |«      z  }|| j                  kD  r3|dz   dj                  |«      z   }t        |d d dz   | j                  «      ‚|j                  |«       |dz  }||k  r||   }|r|d   d
v }
nd}n|
rŒ€dj                  |«      }|j                  d«      }|j                  dd	«      }| j                  rd|v sd|v sd|v r+t	        |«      ‚t        j!                  |«      rt	        |«      ‚| j                  s)|	|v r%|	j#                  «       t$        v rt'        d|	› d�«      ‚|j)                  |	|«       |j                  ||f«       |r�Œt+        |«      t-        |«      fS # t        $ r t	        |«      d ‚w xY w)Nr   ó   :r   éÿÿÿÿé    é	   s    	úutf-8Úsurrogateescape)rŠ   r‹   s   : r_   éd   ó   ...ú
úú zDuplicate 'z' header found.)r   ÚlenÚsplitÚ
ValueErrorr'   ÚlstripÚdecoder<   Ú	fullmatchrƒ   r~   Újoinr)   ÚappendÚstripr@   ÚsearchÚlowerrK   r"   Úaddr   Útuple)r„   r†   rQ   rR   Ú	lines_idxÚlineÚ
line_countÚbnameÚbvalueÚnameÚcontinuationÚheader_lengthÚ
bvalue_lstÚheader_lineÚvalues                  r`   Úparse_headerszHeadersParser.parse_headers®   s¢  € ô %0£Mˆàˆàˆ	Ø�YÑˆÜ˜“Zˆ
âð4Ø $§
¡
¨4°Ó 3‘��vô �5‹z˜QŠÜ# EÓ*Ð*ð �a‘˜% ™)Ð$¨¨A wÒ.Ü# DÓ)Ð)à—]‘] 6Ó*ˆFØ—<‘< Ð):Ó;ˆDÜ×$Ñ$ TÔ*Ü# EÓ*Ð*ð ˜‰NˆIØ˜Ñ#ˆDð  Ÿ9™9ÒD¨ÒD°$°q±'¸WÐ2DˆLñ Ü # F£�Ø$˜X�
Ù"Ø!¤S¨£YÑ.�MØ$ t×':Ñ':Ò:Ø&+¨e¡m°c·h±h¸zÓ6JÑ&J˜Ü)Ø'¨¨Ð-°Ñ6¸×8KÑ8Kóð ð ×%Ñ% dÔ+ð  ‘N�IØ  :Ò-Ø$ YÑ/˜ÙØ+/°©7°gÐ+=™Là"˜Øò# #ð$ Ÿ™ *Ó-�à—\‘\ &Ó)ˆFØ—M‘M 'Ð+<Ó=ˆEð �yŠyØ˜5‘= D¨E¡M°V¸u±_Ü'¨Ó/Ð/Ü.×5Ñ5°eÔ<Ü# FÓ+Ð+à—9’9 ¨¡°T·Z±Z³\ÔEVÑ5VÜ$ {°4°&¸Ð%HÓIÐIØ�K‰K˜˜eÔ$Ø×Ñ  v˜Ô/ó ôB ! Ó)¬5°Ó+=Ð>Ð>øô{ ò 4Ü# DÓ)¨tÐ3ð4ús   £I ÉI$)éþ  i €  r¬   F)rX   rY   rZ   rd   r]   r…   ÚlistÚbytesrŸ   r0   r«   r^   r_   r`   r2   r2   ¡   sl   „ ð "Ø Ø"Øñ
àð
ð ð
ð ð	
ð
 ð
ð 
ó
ðL?Ø˜%‘[ðL?à	Ð&¨
Ð2Ñ	3ôL?r_   r2   rQ   r€   c                 óŠ   — | j                  t        j                  d«      }|j                  «       xr |j	                  «       dv S )z)Check if the upgrade header is supported.Ú >   ÚtcpÚ	websocket)Úgetr   ÚUPGRADEÚisasciir�   )rQ   Úus     r`   Ú_is_supported_upgrader·   ý   s3   € à�‰”D—L‘L "Ó%€Aà�9‰9‹;Ò<˜1Ÿ7™7›9Ð(<Ð<Ð<r_   c                   ó  — e Zd ZU dZee   ed<   	 	 	 	 	 	 	 	 	 	 	 	 	 	 d(dedz  dej                  dz  de
de
de
d	e
d
edz  de
dz  dedz  dee   dz  dededede
ddfd„Zej"                  dee   defd„«       Zej"                  dedefd„«       Zd)d„Zd)d„Zdedz  fd„Zddej6                  ej8                  ej:                  fdededed ed!ed"ede ee ee!f      eef   fd#„Z"dee   de d$e#edz  edz  eef   fd%„Z$d&eddfd'„Z%y)*r3   Fr   NÚprotocolÚloopÚlimitr|   r}   r~   Útimerrb   rM   Úpayload_exceptionÚresponse_with_bodyÚread_until_eofÚauto_decompressÚmax_msg_queue_sizer€   c                 ó€  — || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _        || _	        || _
        g | _        d| _        d| _        d| _        d | _        d | _        d| _        || _        || _        t)        |||| j*                  «      | _        || _        d| _        y )Nr_   Fr   )r¹   rº   r|   r}   r~   r¼   rb   rM   r½   r¾   r¿   Ú_linesÚ_tailÚ	_upgradedÚ_pending_upgradeÚ_payloadÚ_payload_parserÚ_payload_has_more_dataÚ_auto_decompressÚ_limitr2   r   Ú_headers_parserÚ_max_msg_queue_sizeÚ_msg_in_flight)r„   r¹   rº   r»   r|   r}   r~   r¼   rb   rM   r½   r¾   r¿   rÀ   rÁ   s                  r`   r…   zHttpParser.__init__  sÎ   € ð" !ˆŒØˆŒ	Ø*ˆÔØ&ˆÔØ,ˆÔØ&ˆÔØˆŒ
ØˆŒ	ØˆŒØ!2ˆÔØ"4ˆÔØ,ˆÔà#%ˆŒØˆŒ
ØˆŒØ %ˆÔØˆŒØ9=ˆÔØ&+ˆÔ#Ø /ˆÔØˆŒÜ,Ø˜;¨¸¿¹ó 
ˆÔð $6ˆÔ ØˆÕr_   r†   c                  ó   — y r‚   r^   )r„   r†   s     r`   Úparse_messagezHttpParser.parse_message5  s   € Ø:=r_   Útec                  ó   — y r‚   r^   ©r„   rÑ   s     r`   Ú_is_chunked_tezHttpParser._is_chunked_te8  s   € Ø/2r_   c                 óT   — | j                   €J ‚| j                   j                  «        y r‚   )rÈ   Úpause_reading©r„   s    r`   rÖ   zHttpParser.pause_reading;  s&   € Ø×#Ñ#Ð/Ð/Ð/Ø×Ñ×*Ñ*Õ,r_   c                 óN   — | j                   dkD  r| xj                   dz  c_         yy)z;Protocol drained a queued message; free a slot for parsing.r   r   N)rÎ   r×   s    r`   Úmessage_consumedzHttpParser.message_consumed?  s&   € à×Ñ Ò"Ø×Ò 1Ñ$Öð #r_   c                 óà  — | j                   �8| j                   j                  «        | j                   j                  rd | _         y | j                  r%| j                  j                  | j                  «       | j                  ra| j                  d   dk7  r| j                  j                  d«       t        t        «      5  | j                  | j                  «      cd d d «       S y # 1 sw Y   y xY w)Nr‰   z
r_   )	rÈ   Úfeed_eofÚdonerÄ   rÃ   rš   r   Ú	ExceptionrÐ   r×   s    r`   rÛ   zHttpParser.feed_eofD  s¹   € Ø×ÑÐ+Ø× Ñ ×)Ñ)Ô+Ø×#Ñ#×(Ò(Ø'+�Ô$ð ð �zŠzØ—‘×"Ñ" 4§:¡:Ô.à�{Š{Ø—;‘;˜r‘? fÒ,Ø—K‘K×&Ñ& sÔ+ÜœiÓ(ñ ;Ø×-Ñ-¨d¯k©kÓ:÷;ñ ;à÷;àús   Â>C$Ã$C-r8   r_   ÚdataÚSEPÚEMPTYÚCONTENT_LENGTHÚMETH_CONNECTÚSEC_WEBSOCKET_KEY1c                 óº  ‡‡— g }| j                   r| j                   |z   dc}| _         t        |«      }d}	| j                  }
| j                  }d}|	|k  s| j                  �r6| j
                  �€U| j                  �sH| j                  r%| j                  | j                  k\  r||	d  | _         �në|j                  ||	«      }||	k(  r| j                  s|t        |«      z   }	Œ�||	k\  �rq|rt        d«      ‚||	| }|dk(  r|j                  d«      }t        |«      |kD  rt        |d d dz   |«      ‚| j                  j                  |«       | j                  }t        | j                  «      | j                   kD  rt        d	«      ‚|t        |«      z   }	| j                  d
   |k(  �rá| j                   t        | j                  «      z
  }	 | j#                  | j                  «      Š| j                  j%                  «        dt&        d z  fˆˆfd„} |«       }|‰j(                  v rt+        |«      ‚‰j,                  xr t/        ‰j(                  «      }t1        ‰d| j2                  «      }t1        ‰dd«      }| j4                  €J ‚|t6        v xs t9        |xr |t:        v «      }|sÚ|�|dkD  s‰j<                  rÇt?        | j4                  | j@                  |
| jB                  ¬«      }tE        ||‰j<                  |‰jF                  | jH                  | jJ                  | jL                  | jN                  | jP                  | j                  | j                  || jB                  ¬«      }|jR                  �sª|| _        || _*        �nš||k(  r±tW        ‰tX        «      sJ ‚t?        | j4                  | j@                  |
| jB                  ¬«      }d| _        tE        |‰j2                  ‰jF                  | jL                  | jN                  | jP                  | j                  | j                  || jB                  ¬«
      | _        nä|sÌ|€Ê| jZ                  r¾t?        | j4                  | j@                  |
| jB                  ¬«      }tE        ||‰j<                  |‰jF                  | jH                  | jJ                  | jL                  | jN                  | jP                  | j                  | j                  || jB                  ¬«      }|jR                  s|| _        n|rd| _        t\        }nt\        }|j                  ‰|f«       | j                  r| xj                  dz  c_        ‰j^                  }�n-||	d  | _         d| j                   v rt        d«      ‚t        | j                   «      | j                  kD  r&t        | j                   d d dz   | j                  «      ‚|}nÔ| j
                  €| j                  r| j                  rJ ‚n­| j                  rJ ‚| j
                  €J ‚	 | j
                  ja                  ||	d  |«      \  }}|tl        jr                  k(  | _        |tl        jn                  urnCd}	t        |«      }d | _        | jT                  rd| _        d| _*        |	|k  r�Œ(| j                  r�Œ6|r|	|k  r||	d  }n|}|| j                  |fS # | j                  j%                  «        w xY w# tb        $ r}}|}| jd                  �| je                  tg        |«      «      }ti        | j
                  jj                  ||«       tl        jn                  }d}tW        |t*        tp        f«      r‚ Y d }~�Œ,d }~ww xY w)Nr_   r   FzData after `Connection: close`r9   ó   rŽ   r�   zToo many headers receivedr‰   r€   c                  ó–   •— ‰j                   j                  ‰«      } | €y t        j                  | «      st	        ‰«      ‚t        | «      S r‚   )rQ   r³   r>   r˜   r'   rd   )Ú
length_hdrrá   Úmsgs    €€r`   Úget_content_lengthz0HttpParser.feed_data.<locals>.get_content_length™  sC   ø€ à),¯©¯©¸Ó)H˜JØ)Ð1Ø'+ô
 $*×#3Ñ#3°JÔ#?Ü&3°NÓ&CÐ Cä#& z£?Ð2r_   rM   rb   )r¼   rº   r»   )ÚlengthrV   rM   rT   rb   r¾   rÀ   r   Úheaders_parserr|   r~   Úmax_trailersr»   T)	rM   rT   rÀ   r   rë   r|   r~   rì   r»   r   zBad line ending, expected CRLF):rÄ   r“   rº   r|   rÉ   rÈ   rÅ   rÍ   rÎ   ÚfindrÃ   r"   Úrstripr)   rš   r~   r}   rÐ   Úclearrd   rQ   r'   rU   r·   ÚgetattrrM   r¹   r   r]   r   rV   r/   r¼   rË   ÚHttpPayloadParserrT   rb   r¾   rÊ   r   rÌ   rÜ   rÆ   Ú
isinstancer6   r¿   r.   rS   Ú	feed_datarÝ   r½   r[   r!   Úpayloadrg   ri   r*   rk   )r„   rÞ   rß   rà   rá   râ   rã   ÚmessagesÚdata_lenÚ	start_posrº   Úmax_line_lengthrS   Úposr¡   rì   ré   rê   ÚupgradedrM   rb   Ú
empty_bodyrô   Úpayload_parserÚpayload_stateÚunderlying_excÚreraised_excrè   s       `                      @r`   ró   zHttpParser.feed_dataU  sÏ  ù€ ð ˆà�:Š:Ø#Ÿz™z¨DÑ0°#ÐˆD�$”*ä�t“9ˆØˆ	Ø�y‰yˆØ×,Ñ,ˆàˆØ˜(Ò" d×&AÓ&Að ×#Ñ#Ñ+°D·N³Nà×,Ò,Ø×+Ñ+¨t×/GÑ/GÒGð
 "& i jÐ!1�D”JÙØ—i‘i  YÓ/�à˜)Ò#¨D¯KªKØ #¤c¨#£h¡�IØà˜)Ó#Ù#Ü,Ð-MÓNÐNð   	¨#Ð.�DØ˜e’|Ø#Ÿ{™{¨5Ó1˜Ü˜4“y ?Ò2Ü)¨$¨t°¨*°vÑ*=¸ÓOÐOà—K‘K×&Ñ& tÔ,à&*×&9Ñ&9�Oä˜4Ÿ;™;Ó'¨$×*:Ñ*:Ò:Ü,Ð-HÓIÐIà #¤c¨#£h¡�Ið —{‘{ 2‘¨%Ó/Ø'+×'7Ñ'7¼#¸d¿k¹kÓ:JÑ'J˜ð0Ø)-×);Ñ);¸D¿K¹KÓ)H˜Cà ŸK™K×-Ñ-Ô/ð3´C¸$±Jö 3ñ "4Ó!5˜à-°·±Ñ<Ü"/Ð0BÓ"CÐCà#&§;¡;Ò#UÔ3HÈÏÉÓ3U˜ä!(¨¨h¸¿¹Ó!D˜ä& s¨F°AÓ6˜à#Ÿ}™}Ð8Ð8Ð8à%)Ô-DÐ%Dò &ÌØ"ÒC vÔ1CÐ'CóI˜
ñ  *Ø#Ð/°F¸Q²JÀ3Ç;Â;ä&2Ø $§¡Ø&*§j¡jØ%)Ø&*§k¡kô	'˜Gô .?Ø 'Ø'-Ø(+¯©Ø'-Ø,/¯O©OØ%)§Y¡YØ37×3JÑ3JØ04×0EÑ0EØ$(§H¡HØ/3×/CÑ/CØ.2×.@Ñ.@Ø/3×/BÑ/BØ-9Ø&*§k¡kô.˜Nð  $2×#6Ó#6Ø7E Ô 4ð 9A Ö 5Ø# |Ò3Ü#-¨cÔ3DÔ#EÐEÐ#EÜ&2Ø $§¡Ø&*§j¡jØ%)Ø&*§k¡kô	'˜Gð .2˜DœNÜ3DØ 'Ø'*§z¡zØ,/¯O©OØ04×0EÑ0EØ$(§H¡HØ/3×/CÑ/CØ.2×.@Ñ.@Ø/3×/BÑ/BØ-9Ø&*§k¡kô4˜DÕ0ñ ",°°À4×CVÒCVÜ&2Ø $§¡Ø&*§j¡jØ%)Ø&*§k¡kô	'˜Gô .?Ø 'Ø'-Ø(+¯©Ø'-Ø,/¯O©OØ%)§Y¡YØ37×3JÑ3JØ04×0EÑ0EØ$(§H¡HØ/3×/CÑ/CØ.2×.@Ñ.@Ø/3×/BÑ/BØ-9Ø&*§k¡kô.˜Nð  $2×#6Ò#6Ø7E Õ 4Ù%ð .2˜DœNÜ&3™Gä&3˜Gà Ÿ™¨¨g¨Ô7Ø×3Ò3Ø ×/Ò/°1Ñ4Õ/Ø'*×'7Ñ'7šà!% i jÐ!1�D”Jð  §
¡
Ñ*Ü,Ð-MÓNÐNÜ˜4Ÿ:™:“¨×);Ñ);Ò;Ü)¨$¯*©*°T°cÐ*:¸VÑ*CÀT×EWÑEWÓXÐXØ �DØð ×%Ñ%Ð-°$·.².ØŸ;š;Ð&�Øð  Ÿ;š;Ð&�Ø×+Ñ+Ð7Ð7Ð7ðØ*.×*>Ñ*>×*HÑ*HØ˜Y˜ZÐ(¨#ó+Ñ'�M 4ð, "¤\×%KÑ%KÑKð Ô+ð !¬×(EÑ(EÑEð à�	Ü˜t›9�Ø'+�Ô$Ø×(Ò(ð &*�D”NØ,1�DÔ)ðC ˜(Ô" d×&AÔ&AñF �I Ò(Ø˜	˜
Ð#‰DàˆDà˜Ÿ™¨Ð-Ð-øðw !ŸK™K×-Ñ-Õ/ûôd !ò Ø2@�LØ×-Ñ-Ð9Ø'+×'=Ñ'=¼cÀ.Ó>QÓ'R˜ä!Ø×,Ñ,×4Ñ4Ø$Ø&ôô %1×$AÑ$A�MØ�DÜ!Ø&¬Ô8MÐ(Nôð õûðús%   ÇZ5 Ø"[ Ú5[Û	]ÛA2]Ý]rP   c                 óØ  — | j                   j                  |«      \  }}d}d}d}d}|j                  t        j                  d«      }|r€|D �	�
ch c]A  }	d„ |	j                  d«      D «       D ]$  }
|
r |
j                  «       r|
j                  «       ’Œ& ŒC }}	}
d|v rd}nd|v rd}d	|v r!|j                  t        j                  «      rd}|j                  t        j                  d
«      }|j                  «       r|j                  «       dv r|}|j                  t        j                  «      }|�0| j                  |«      rd}t        j                  |v rt        d«      ‚||||||fS c c}
}	w )z­Parses RFC 5322 headers from a stream.

        Line continuations are supported. Returns list of header name
        and value pairs. Header name is in upper case.
        NFr^   c              3   ó>   K  — | ]  }|j                  d «      –— Œ y­w)ú 	N)r›   )Ú.0Úparts     r`   ú	<genexpr>z+HttpParser.parse_headers.<locals>.<genexpr>k  s   è ø€ ÒR°D˜dŸj™j¨×/ÑRùs   ‚ú,ÚcloseTz
keep-aliverU   r°   >   ÚbrÚgzipÚzstdÚdeflatez6Transfer-Encoding can't be present with Content-Length)rÌ   r«   Úgetallr   Ú
CONNECTIONr”   rµ   r�   r³   r´   ÚCONTENT_ENCODINGÚTRANSFER_ENCODINGrÔ   rá   r"   )r„   r†   rQ   rR   Ú
close_connÚencodingrU   rV   Úconn_valuesÚ
conn_valueÚtokenÚconn_tokensÚencrÑ   s                 r`   r«   zHttpParser.parse_headersT  sv  € ð  $×3Ñ3×AÑAÀ%ÓHÑˆ�Øˆ
ØˆØˆØˆð —n‘n¤T§_¡_°bÓ9ˆÙð #.÷àÙR¸J×<LÑ<LÈSÓ<QÔRòð Ù˜UŸ]™]œ_ð —‘•ðØðˆKñ ð ˜+Ñ%Ø!‘
Ø Ñ,Ø"�
ð ˜KÑ'¨G¯K©K¼¿¹Ô,EØ�ð �k‰kœ$×/Ñ/°Ó4ˆØ�;‰;Œ=˜SŸY™Y›[Ð,MÑMØˆHð �[‰[œ×/Ñ/Ó0ˆØˆ>Ø×"Ñ" 2Ô&Ø�ä×"Ñ" gÑ-Ü$ØLóð ð ˜ j°(¸GÀWÐMÐMùóAs   ÁAE&Úvalc                 ó   — || _         y)zZSet connection upgraded (to websocket) mode.

        :param bool val: new state.
        N)rÅ   )r„   r  s     r`   Úset_upgradedzHttpParser.set_upgradedŠ  s   € ð
 ˆ�r_   )NNi   r¬   é€   r¬   NNNNTFTr   ©r€   N)&rX   rY   rZ   r   r   r]   r\   r   ÚasyncioÚAbstractEventLooprd   r    r[   ÚtypeÚBaseExceptionr…   ÚabcÚabstractmethodr­   r®   re   rÐ   rÔ   rÖ   rÙ   rÛ   r   rá   râ   rã   Ú_SEPr   rŸ   r/   ró   r0   r«   r  r^   r_   r`   r3   r3     s6  … Ø€Cˆ�$‰Óð )-Ø15ØØ!ØØ"Ø)-ØØ!Ø8<Ø#'Ø$Ø $Ø"#ñ, à Ñ%ð, ð ×'Ñ'¨$Ñ.ð, ð ð	, ð
 ð, ð ð, ð ð, ð   $Ñ&ð, ð �D‰jð, ð �d‘
ð, ð   Ñ.°Ñ5ð, ð !ð, ð ð, ð ð, ð  ð, ð  
ó!, ð\ 	×ÑØ= 4¨¡;Ð=°5Ò=ó Ø=à×ÑØ2 Ð2¨Ò2ó Ø2ó-ó%ð
˜% $™,ó ð( ØØ#×2Ñ2Ø ×-Ñ-Ø#'×#:Ñ#:ñ}.àð}.ð ð}.ð ð	}.ð
 ð}.ð ð}.ð !ð}.ð 
ˆt�E˜% Ð-Ñ.Ñ/°°uÐ<Ñ	=ó}.ð~4NØ˜%‘[ð4Nà	Ø ¨T°D©[¸#À¹*ÀdÈDÐPñ
ó4Nðl ð ¨ô r_   r3   c                   ó6   — e Zd ZdZdee   defd„Zdede	fd„Z
y)r4   z¥Read request status line.

    Exception .http_exceptions.BadStatusLine
    could be raised in case of any errors in status line.
    Returns RawRequestMessage.
    r†   r€   c                 ó  — |d   j                  dd«      }	 |j                  dd¬«      \  }}}t        j                  |«      st        |«      ‚|j                  «       }t        j                  |«      }|€t        |«      ‚t        t        |j                  d«      «      t        |j                  d«      «      «      }|dk(  rt        j                  |d	¬
«      }n³|j                  d«      rD|j                  d«      \  }	}
}|	j                  d«      \  }	}}t        j                  |	||d	¬«      }n^|dk(  r|dk(  rt        |d	¬«      }nFt        |d	¬«      }|j                   dk(  r*t#        |j%                  d¬«      j                  d«      «      ‚| j'                  |dd  «      \  }}}}}}|t(        k(  rt*        j,                  |vrt/        d«      ‚|€|t0        k  rd	}nd}t3        ||||||||||«
      S # t        $ r t        |«      d ‚w xY w)Nr   rŒ   r�   ú rh   ©Úmaxsplitr   ÚCONNECTT)Ú	authorityÚencodedú/ú#ú?)rN   Úquery_stringÚfragmentr*  Ú*ÚOPTIONS)r*  r°   )ÚerrorsÚlatin1z!Missing 'Host' header in request.F)r—   r”   r•   r#   r<   r˜   Úupperr=   r$   r+   rd   Úgroupr   ÚbuildÚ
startswithÚ	partitionÚschemer(   Úencoder«   r-   r   ÚHOSTr"   r,   r6   )r„   r†   r¡   rM   rN   rO   ÚmatchÚ	version_orW   Ú	path_partÚ_hash_separatorÚurl_fragmentÚ_question_mark_separatorÚqs_partrQ   rR   r  rT   rU   rV   s                       r`   rÐ   zHttpRequestParser.parse_messageš  s   € à�Q‰x�‰˜wÐ(9Ó:ˆð	0Ø$(§J¡J¨s¸Q JÓ$?Ñ!ˆF�D˜'ô
 × Ñ  Ô(Ü Ó'Ð'Ø—‘“ˆô × Ñ  Ó)ˆØˆ=Ü Ó%Ð%Ü¤ E§K¡K°£NÓ 3´S¸¿¹ÀQ»Ó5HÓIˆ	à�YÒô —)‘) d°DÔ9‰CØ�_‰_˜SÔ!ð 8<·~±~ÀcÓ7JÑ4ˆI�¨Ø;D×;NÑ;NÈsÓ;SÑ8ˆIÐ/°ô —)‘)ØØ$Ø%Øô	‰Cð �SŠ[˜V yÒ0ä�d DÔ)‰Cô �d DÔ)ˆCØ�z‰z˜RÒä%Ø—K‘KÐ'8�KÓ9×@Ñ@ÀÓJóð ð ×Ñ˜u Q R˜yÓ)ñ	
ØØØØØØð œÒ%¬$¯)©)¸7Ñ*BÜ Ð!DÓEÐEàˆ=ØœMÒ)Ø‘à�ä ØØØØØØØØØØó
ð 	
øôE ò 	0Ü Ó%¨4Ð/ð	0ús   —G1 Ç1HrÑ   c                 óª   — |j                  dd¬«      d   j                  d«      }|j                  «       r|j                  «       dk(  ryt	        d«      ‚)	Nr  r   r&  r‰   r  rV   Tz'Request has invalid `Transfer-Encoding`)Úrsplitr›   rµ   r�   r"   rÓ   s     r`   rÔ   z HttpRequestParser._is_chunked_teî  sI   € Ø�Y‰Y�s QˆYÓ'¨Ñ+×1Ñ1°%Ó8ˆà�:‰:Œ<˜BŸH™H›J¨)Ò3ØäÐFÓGÐGr_   N)rX   rY   rZ   Ú__doc__r­   r®   r6   rÐ   r[   r]   rÔ   r^   r_   r`   r4   r4   ’  s9   „ ñðR
 4¨¡;ð R
Ð3Dó R
ðhH ð H¨ô Hr_   r4   c                   ó–   ‡ — e Zd ZU dZded<   e Z	 ddededz  de	de	d	e
ee
eef      eef   f
ˆ fd
„Zdee   d	efd„Zded	efd„Zˆ xZS )r5   z”Read response status line and headers.

    BadStatusLine could be raised in case of any errors in status line.
    Returns RawResponseMessage.
    r1   r¹   NrÞ   rß   ÚargsÚkwargsr€   c                 óD   •— |€
t         rdnd}t        ‰| �  ||g|¢­i |¤ŽS )Nr8   r9   )r   Úsuperró   )r„   rÞ   rß   rG  rH  Ú	__class__s        €r`   ró   zHttpResponseParser.feed_data  s/   ø€ ð ˆ;Ý"‘'¨ˆCÜ‰wÑ   sÐ<¨TÒ<°VÑ<Ð<r_   r†   c                 ó6  — |d   j                  dd«      }	 |j                  d¬«      \  }}	 |j                  d¬«      \  }}t
        j                  |«      }|€t        |«      ‚t        t        |j                  d«      «      t        |j                  d«      «      «      }t        |«      dk7  st        j                  |«      st        |«      ‚t        |«      }| j                  |dd  «      \  }	}
}}}}|€I|t        k  rd	}n=d
|cxk  rdk  sn |dv rd}n)t        j                  |	v st        j                   |	v rd}nd	}t#        |||j	                  «       |	|
||||«	      S # t        $ r t        |«      d ‚w xY w# t        $ r |j	                  «       }d}Y �ŒUw xY w)Nr   rŒ   r�   r   r&  r°   rh   rn   TrŽ   éÈ   >   é0  éÌ   F)r—   r”   r•   r$   r›   r=   r˜   r+   rd   r5  r“   r>   r«   r,   r   rá   r  r7   )r„   r†   r¡   rO   Ústatusrc   r<  r=  Ústatus_irQ   rR   r  rT   rU   rV   s                  r`   rÐ   z HttpResponseParser.parse_message  s®  € Ø�Q‰x�‰˜wÐ(9Ó:ˆð	0Ø"Ÿj™j°!˜jÓ4‰OˆG�Vð	Ø#Ÿ\™\°1˜\Ó5‰NˆF�Fô × Ñ  Ó)ˆØˆ=Ü Ó%Ð%Ü¤ E§K¡K°£NÓ 3´S¸¿¹ÀQ»Ó5HÓIˆ	ô ˆv‹;˜!Ò¤6×#3Ñ#3°FÔ#;Ü Ó%Ð%Ü�v“;ˆð ×Ñ˜u Q R˜yÓ)ñ	
ØØØØØØð ˆ=ØœMÒ)Ø‘à˜Ô& 3Ô&¨(°jÑ*@Ø‘Ü×$Ñ$¨Ñ/´4×3IÑ3IÈWÑ3TØ‘ð �ä!ØØØ�L‰L‹NØØØØØØó

ð 
	
øôU ò 	0Ü Ó%¨4Ð/ð	0ûô
 ò 	Ø—\‘\“^ˆFØ‹Fð	ús   —E  ­E9 Å E6Å9FÆFrÑ   c                 ón   — |j                  dd¬«      d   j                  d«      j                  «       dk(  S )Nr  r   r&  r‰   r  rV   )rD  r›   r�   rÓ   s     r`   rÔ   z!HttpResponseParser._is_chunked_teH  s3   € à�y‰y˜ qˆyÓ)¨"Ñ-×3Ñ3°EÓ:×@Ñ@ÓBÀiÑOÐOr_   r‚   )rX   rY   rZ   rE  r\   r   r   r®   r"  r   rŸ   r­   r7   r/   r]   ró   rÐ   r[   rÔ   Ú__classcell__)rK  s   @r`   r5   r5   ÷  s¢   ø… ñð  Óð ˆ)€Cð
  ñ	=àð	=ð �D‰[ð	=ð ð		=ð
 ð	=ð 
ˆt�EÐ,¨lÐ:Ñ;Ñ<¸dÀEÐIÑ	Jõ	=ð8
 4¨¡;ð 8
Ð3Eó 8
ðtP ð P¨÷ Pr_   r5   c                    ó¼   — e Zd Z	 	 	 	 	 	 	 	 ddddedœdededz  dededz  d	edz  d
edz  dededededededededdfd„Z	dd„Z
dd„Z	 ddedededeeef   fd„Zy)rñ   Nr¬   r  )r|   r~   rì   r»   rô   rê   rV   rT   rb   rM   r¾   rÀ   r   rë   r|   r~   rì   r»   r€   c
                ó¬  — d| _         d| _        t        j                  | _        t
        j                  | _        d| _        d| _	        || _
        |	| _        |
| _        || _        || _        || _        d| _        g | _        d| _        d| _        |r|r| j                  rt)        |||¬«      }n|}|s4t        j*                  | _        |j-                  «        d| _        || _        y |rt        j.                  | _        || _        y |�It        j0                  | _        || _         || _        | j                   dk(  r|j-                  «        d| _        || _        y )Nr   Fr_   )Úmax_decompress_sizeT)Ú_lengthÚ_pausedrm   rr   Ú_typert   rv   Ú_chunkÚ_chunk_sizeÚ_chunk_tailrÊ   rƒ   rÌ   Ú_max_line_sizeÚ_max_field_sizeÚ_max_trailersÚ_more_data_availableÚ_trailer_linesrÜ   Ú_eof_pendingÚDeflateBufferro   rÛ   rq   rp   Ú_length_expectedrô   )r„   rô   rê   rV   rT   rb   rM   r¾   rÀ   r   rë   r|   r~   rì   r»   Úreal_payloads                   r`   r…   zHttpPayloadParser.__init__N  sD  € ð$ ˆŒØˆŒÜ×/Ñ/ˆŒ
Ü ×3Ñ3ˆŒØˆÔØˆÔØ /ˆÔØˆŒ	Ø-ˆÔØ+ˆÔØ-ˆÔØ)ˆÔØ$)ˆÔ!Ø+-ˆÔØˆŒ	Ø!ˆÔñ ¡+°$×2GÒ2GÜ9FØ˜¸%ô:‰Lð #ˆLñ "ä#×.Ñ.ˆDŒJØ×!Ñ!Ô#ØˆDŒIð $ˆ�ñ Ü#×1Ñ1ˆDŒJð $ˆ�ð ÐÜ#×0Ñ0ˆDŒJØ!ˆDŒLØ$*ˆDÔ!Ø�|‰|˜qÒ Ø×%Ñ%Ô'Ø �”	à#ˆ�r_   c                 ó   — d| _         y )NT)rX  r×   s    r`   rÖ   zHttpPayloadParser.pause_reading‹  s	   € Øˆ�r_   c                 ó.  — | j                   t        j                  k(  r~d| _        | j                  rB| j
                  rd| _        y | j                  j                  dd«      | _        | j                  rŒB| j                  j                  «        d| _	        d| _        y | j                   t        j                  k(  r5| j                  | j                  z
  }t        d|› d| j                  › d�«      ‚| j                   t        j                  k(  rt        d«      ‚y )	NTFr_   r   z;Not enough data to satisfy content length header (received z of z bytes).z2Not enough data to satisfy transfer length header.)rY  rm   rr   rb  r`  rX  rô   ró   rÛ   rÜ   rp   rd  rW  r&   rq   r*   )r„   Úreceiveds     r`   rÛ   zHttpPayloadParser.feed_eofŽ  sö   € Ø�:‰:œ×3Ñ3Ò3Ø $ˆDÔØ×+Ò+Ø—<’<Ø#(�D”LØØ,0¯L©L×,BÑ,BÀ3ÈÓ,J�Ô)ð	 ×+Ó+ð
 �L‰L×!Ñ!Ô#ØˆDŒIØ %ˆDÕØ�Z‰Zœ:×2Ñ2Ò2Ø×,Ñ,¨t¯|©|Ñ;ˆHÜ$ðØ%˜J d¨4×+@Ñ+@Ð*AÀðKóð ð �Z‰Zœ:×3Ñ3Ò3Ü'ØDóð ð 4r_   Úchunkrß   Ú	CHUNK_EXTc                 óH  — | j                   t        j                  k(  �r| j                  r| j                  |z   }d| _        | j                  }t        |t        |«      z
  d«      | _        | j                  j                  |d| |«      | _	        | j                  r]| j                  r#d| _
        ||d | _        t        j                  dfS | j                  j                  dd«      | _	        | j                  rŒ]| j                  dk(  �rl| j                  j                  «        t        j                  ||d fS | j                   t        j                  k(  �r3| j                  rœ| j                   t"        j$                  k7  ri| j&                  }| j                   t"        j(                  k(  r| j*                  }t        | j                  «      |kD  rt-        | j                  dd dz   |«      ‚| j                  |z   }d| _        |s| j                  �rh| j                   t"        j.                  k(  �rÙ|j1                  |«      }|dk\  �r‚|| j&                  kD  rt-        |dd dz   | j&                  «      ‚|j1                  |d|«      }|dk\  r4|d| }d||| x}	v r+t3        d|	›�«      }
t5        | j                  |
«       |
‚|d| }| j6                  r|j9                  «       }t;        j<                  t>        |«      s6t3        |d| jA                  d	d
«      «      }
t5        | j                  |
«       |
‚tC        tE        |«      d«      }||t        |«      z   d }|dk(  r8t"        j(                  | _        | j6                  rŽ|jG                  d«      r}|dd }nwt"        j$                  | _        || _$        | j                  jK                  «        n@d|v r#t3        d«      }
t5        | j                  |
«       |
‚|| _        t        jL                  dfS | j                   t"        j$                  k(  rà| j                  r d| _
        || _        t        j                  dfS | jH                  }t        |t        |«      z
  d«      | _$        | j                  j                  |d| |«      | _	        ||d }| j                  r�Œ¯| jH                  rd| _
        t        jL                  dfS t"        jN                  | _        | j                  jQ                  «        | j                   t"        jN                  k(  r»| j6                  r|jG                  d«      r|dd }|dt        |«       |k(  r$|t        |«      d }t"        j.                  | _        ndt        |«      t        |«      k\  s||dt        |«       k7  r#t3        d«      }
t5        | j                  |
«       |
‚|| _        t        jL                  dfS | j                   t"        j(                  k(  �r|j1                  |«      }|dk  r@d|v r#t3        d«      }
t5        | j                  |
«       |
‚|| _        t        jL                  dfS |d| }||t        |«      z   d }|dk(  r|jS                  d«      }t        |«      | j*                  kD  rt-        |dd dz   | j*                  «      ‚| jT                  jW                  |«       t        | jT                  «      | jX                  kD  rt[        d«      ‚| jT                  d   dk(  ro	 | j\                  j_                  | jT                  «      \  }}| jT                  ja                  «        | j                  j                  «        t        j                  |fS |r�Œm| j                  r�Œ{nì| j                   t        jb                  k(  rÏ| j                  j                  |t        |«      «      | _	        | j                  rS| j                  rd| _
        t        j                  dfS | j                  j                  dd«      | _	        | j                  rŒS| jd                  r:| j                  j                  «        d| _3        d| _2        t        j                  dfS t        jL                  dfS # | jT                  ja                  «        w xY w)aÇ  Receive a chunk of data to process.

        Return:
            PayloadState - The current state of payload processing.
                           This function may be called with empty bytes after returning
                           PAYLOAD_HAS_PENDING_INPUT to continue processing after a pause.
            bytes - If payload is complete, this is the unconsumed bytes intended for the
                    next message/payload, b"" otherwise.
        r_   r   NFrŽ   r�   r9   z"Unexpected LF in chunk-extension: Úasciir�   é   rå   r   z)Bad chunk-size line ending, expected CRLFz3Chunk size mismatch: expected CRLF after chunk dataz&Bad trailer line ending, expected CRLFzToo many trailers receivedr‰   T)4rY  rm   rp   r\  rW  Úmaxr“   rô   ró   r`  rX  rg   rk   rÛ   ri   rq   rZ  rt   rw   r]  rz   r^  r)   rv   rí   r*   r!   rƒ   r›   Úrer˜   r?   r—   rd   r®   r7  r[  Úbegin_http_chunk_receivingrj   rx   Úend_http_chunk_receivingrî   ra  rš   r_  r"   rÌ   r«   rï   rr   rb  rÜ   )r„   ri  rß   rj  Úrequiredrø   rù   ÚiÚsize_bÚextÚexcÚsizer¡   ÚtrailersÚraw_trailerss                  r`   ró   zHttpPayloadParser.feed_data¤  s’  € ð �:‰:œ×0Ñ0Ó0Ø×ÒØ×(Ñ(¨5Ñ0�Ø#&�Ô à—|‘|ˆHÜ˜x¬#¨e«*Ñ4°aÓ8ˆDŒLØ(,¯©×(>Ñ(>Ø�i�xÐ  (ó)ˆDÔ%ð ×+Ò+Ø—<’<Ø#(�D”LØ',¨X¨YÐ'7�DÔ$Ü'×AÑAÀ3ÐFÐFØ,0¯L©L×,BÑ,BÀ3ÈÓ,J�Ô)ð ×+Ó+ð �|‰|˜qÓ Ø—‘×%Ñ%Ô'Ü#×4Ñ4°e¸H¸IÐ6FÐFÐFà�Z‰Zœ:×3Ñ3Ó3Ø×Òà—;‘;¤*×"@Ñ"@Ò@Ø&*×&9Ñ&9�OØ—{‘{¤j×&?Ñ&?Ò?Ø*.×*>Ñ*>˜Ü˜4×+Ñ+Ó,¨Ò>Ü)Ø ×,Ñ,¨T¨cÐ2°VÑ;¸_óð ð ×(Ñ(¨5Ñ0�Ø#&�Ô á˜4×4Ó4à—;‘;¤*×"?Ñ"?Ó?ØŸ*™* S›/�CØ˜a“xð  ×!4Ñ!4Ò4Ü"-¨e°D°S¨k¸FÑ.BÀD×DWÑDWÓ"XÐXØ!ŸJ™J y°!°SÓ9˜Ø š6Ø%*¨2¨A Y˜Fà$°°a¸°Ð)<¨Ñ=Ü&;Ø&HÈÈÐ$Pó'" ô !.¨d¯l©l¸CÔ @Ø&) 	à%*¨4¨C [˜FàŸ9š9Ø%+§\¡\£^˜Fä!Ÿ|™|¬I°vÔ>Ü"7Ø % d s × 2Ñ 2°7Ð<MÓ Nó#˜Cô *¨$¯,©,¸Ô<Ø"%˜IÜ"¤5¨£=°"Ó5˜à % c¬C°«H¡nÐ&6Ð 7˜Ø 1š9Ü*4×*CÑ*C˜DœKØ#Ÿyšy¨U×-=Ñ-=¸eÔ-DØ(-¨a¨b¨	¡ä*4×*HÑ*H˜DœKØ/3˜DÔ,Ø ŸL™L×CÑCÕEà  E™>Ü"7Ø Kó#˜Cô *¨$¯,©,¸Ô<Ø"%˜IØ+0˜Ô(Ü+×?Ñ?ÀÐDÐDð —;‘;¤*×"@Ñ"@Ò@Ø—|’|Ø',˜œØ+0˜Ô(Ü+×EÑEÀsÐJÐJà#×/Ñ/�HÜ'*¨8´c¸%³jÑ+@À!Ó'D�DÔ$Ø04·±×0FÑ0FØ˜i˜xÐ(¨(ó1�DÔ-ð " ( )Ð,�Eà×0Ò0Ù à×'Ò'Ø',˜œÜ+×?Ñ?ÀÐDÐDÜ",×"DÑ"D�D”KØ—L‘L×9Ñ9Ô;ð —;‘;¤*×"DÑ"DÒDØ—y’y U×%5Ñ%5°eÔ%<Ø % a b 	˜Ø˜Zœs 3›xÐ(¨CÒ/Ø %¤c¨#£h jÐ 1˜Ü&0×&CÑ&C˜�Ü˜U›¤s¨3£xÒ/°5¸CÀÄ#ÀeÃ*Ð<MÒ3MÜ3ØQó˜ô & d§l¡l°CÔ8Ø!˜	à+0˜Ô(Ü+×?Ñ?ÀÐDÐDà—;‘;¤*×";Ñ";Ó;ØŸ*™* S›/�CØ˜Q’wØ  E™>Ü"7Ø Hó#˜Cô *¨$¯,©,¸Ô<Ø"%˜IØ+0˜Ô(Ü+×?Ñ?ÀÐDÐDà   #˜;�DØ! #¬¨C«¡.Ð"2Ð3�EØ˜e’|Ø#Ÿ{™{¨5Ó1˜ä˜4“y 4×#7Ñ#7Ò7Ü)¨$¨t°¨*°vÑ*=¸t×?SÑ?SÓTÐTà×'Ñ'×.Ñ.¨tÔ4ä˜4×.Ñ.Ó/°$×2DÑ2DÒDÜ,Ð-IÓJÐJð ×*Ñ*¨2Ñ.°#Ò5ð8Ø59×5IÑ5I×5WÑ5WØ $× 3Ñ 3ó6Ñ2˜H lð !×/Ñ/×5Ñ5Ô7ØŸ™×-Ñ-Ô/Ü+×<Ñ<¸eÐCÐCóA ˜4×4Õ4ðF �Z‰Zœ:×5Ñ5Ò5Ø(,¯©×(>Ñ(>¸uÄcÈ%ÃjÓ(QˆDÔ%Ø×+Ò+Ø—<’<Ø#(�D”LÜ'×AÑAÀ3ÐFÐFØ,0¯L©L×,BÑ,BÀ3ÈÓ,J�Ô)ð	 ×+Ó+ð × Ò Ø—‘×%Ñ%Ô'Ø �”	Ø$)�Ô!Ü#×4Ñ4°cÐ9Ð9ä×/Ñ/°Ð4Ð4øð' !×/Ñ/×5Ñ5Õ7ús   Ü(b âb!)NFNNNTTFr  )r8   ó   ;)rX   rY   rZ   r   r/   rd   r]   r[   r2   r…   rÖ   rÛ   r®   r"  rŸ   rg   ró   r^   r_   r`   rñ   rñ   M  s  „ ð "ØØ"&ØØ!Ø#'Ø $Øð;$ð "Ø"ØØ'ò!;$àð;$ð �d‘
ð;$ð ð	;$ð
 ˜4‘Zð;$ð �D‰jð;$ð �d‘
ð;$ð !ð;$ð ð;$ð ð;$ð &ð;$ð ð;$ð ð;$ð ð;$ð  ð!;$ð" 
ó#;$ózóð. EIñB5ØðB5Ø!%ðB5Ø<AðB5à	ˆ|˜UÐ"Ñ	#ôB5r_   rñ   c            	       ó‚   — e Zd ZU dZeed<   efdededz  de	ddfd„Z
efd	ed
eddfd„Zdede	defd„Zdd„Zdd„Zdd„Zy)rc  zDDeflateStream decompress stream and feed data into specified stream.ÚdecompressorÚoutr  NrV  r€   c                 óF  — || _         d| _        | j                  |_        || _        d| _        |  |dk(  r(t
        st        d«      ‚t        «       | _        || _        y |dk(  r(t        st        d«      ‚t        «       | _        || _        y t        |¬«      | _        || _        y )Nr   Fr  zECan not decode content-encoding: brotli (br). Please install `Brotli`r
  zRCan not decode content-encoding: zstandard (zstd). Please install `backports.zstd`)r  )r}  rw  Útotal_compressed_bytesr  Ú_started_decodingr   r%   r   r|  r   r   r   Ú_max_decompress_size)r„   r}  r  rV  s       r`   r…   zDeflateBuffer.__init__n  s±   € ð ˆŒØˆŒ	Ø%)§Y¡YˆÔ"Ø ˆŒØ!&ˆÔáØ�tÒÝÜ*ð.óð ô !3Ó 4ˆDÔð %8ˆÕ!ð ˜ÒÝÜ*ð6óð ô !1Ó 2ˆDÔð %8ˆÕ!ô !1¸(Ô CˆDÔà$7ˆÕ!r_   rv  Ú	exc_causec                 ó2   — t        | j                  ||«       y r‚   )r!   r}  )r„   rv  r‚  s      r`   r!   zDeflateBuffer.set_exceptionŽ  s   € ô
 	�d—h‘h  YÕ/r_   ri  rw  c                 óz  — | xj                   |z  c_         | j                   | j                  _        | j                  s?|r=| j                  dk(  r'|d   dz  dk7  rt        | j                  d¬«      | _        d| _        | j                  j                  }|t        j                  k\  rdnt        | j                  |«      }	 | j                  j                  ||¬«      }|r%| j                  j                  |t!        |«      «       | j                  j"                  S # t        $ r t        d| j                  z  «      ‚w xY w)	Nr  r   é   é   T)r  Úsuppress_deflate_header)Ú
max_lengthz#Can not decode content-encoding: %s)rw  r}  r  r€  r  r   r|  Ú
_low_waterÚsysÚmaxsizern  r�  Údecompress_syncrÝ   r%   ró   r“   Údata_available)r„   ri  rw  Ú	low_waterrˆ  s        r`   ró   zDeflateBuffer.feed_data•  s  € Ø�	Š	�TÑ�	Ø*.¯)©)ˆ�‰Ô'ð
 ×%Ò%©%ð �}‰} 	Ò)¨e°A©h¸©nÀÒ.Aô %5Ø!Ÿ]™]ÀDô%�Ô!ð &*ˆDÔ"à—H‘H×'Ñ'ˆ	àœcŸk™kÒ)‰A¬s°4×3LÑ3LÈiÓ/Xð 	ð	Ø×%Ñ%×5Ñ5°eÈ
Ð5ÓSˆEñ Ø�H‰H×Ñ˜u¤c¨%£jÔ1Ø× Ñ ×/Ñ/Ð/øô ò 	Ü&Ø5¸¿¹ÑEóð ð	ús   Â>D Ä"D:c                 óò   — | j                   j                  «       }|rJ ‚| j                  dkD  r0| j                  dk(  r!| j                   j                  st        d«      ‚| j                  j                  «        y )Nr   r  )r|  Úflushrw  r  Úeofr%   r}  rÛ   )r„   ri  s     r`   rÛ   zDeflateBuffer.feed_eof·  s`   € Ø×!Ñ!×'Ñ'Ó)ˆñ Ðˆyà�9‰9�qŠ=Ø�}‰} 	Ò)°$×2CÑ2C×2GÒ2GÜ*¨9Ó5Ð5à�‰×ÑÕr_   c                 ó8   — | j                   j                  «        y r‚   )r}  rp  r×   s    r`   rp  z(DeflateBuffer.begin_http_chunk_receivingÄ  s   € Ø�‰×+Ñ+Õ-r_   c                 ó8   — | j                   j                  «        y r‚   )r}  rq  r×   s    r`   rq  z&DeflateBuffer.end_http_chunk_receivingÇ  s   € Ø�‰×)Ñ)Õ+r_   r  )rX   rY   rZ   rE  r   r\   r   r/   r[   rd   r…   r   r  r!   r®   r]   ró   rÛ   rp  rq  r^   r_   r`   rc  rc  i  s�   … ÙNàÓð $6ñ	8àð8ð ˜‘*ð8ð !ð	8ð
 
ó8ðF $1ñ0àð0ð !ð0ð 
ó	0ð 0˜uð  0¨Cð  0°Dó  0óDó.ô,r_   rc  )r4   r5   r6   r7   )mr   r  ro  ÚstringrŠ  Ú
contextlibr   Úenumr   r   Útypingr   r   r   r	   r
   r   r   r   Ú	multidictr   r   r   Úyarlr   r°   r   Úbase_protocolr   Úcompression_utilsr   r   r   r   r   Úhelpersr   r   r   r   r   r   r    r!   Úhttp_exceptionsr"   r#   r$   r%   r&   r'   r(   r)   r*   Úhttp_writerr+   r,   r-   Ústreamsr.   r/   Útypedefsr0   Úclient_protor1   Ú__all__r"  ÚsetÚ	printabler:   r[   r\   Úescaper;   Úcompiler<   ÚASCIIr=   r>   r?   r®   r@   Ú	frozensetrK   r6   r7   re   rg   rm   rt   r2   r]   r·   ÚABCr3   r4   r5   rñ   rc  ÚHttpRequestParserPyÚHttpResponseParserPyÚRawRequestMessagePyÚRawResponseMessagePyÚ_http_parserÚHttpRequestParserCÚHttpResponseParserCÚRawRequestMessageCÚRawResponseMessageCÚImportErrorr^   r_   r`   ú<module>r´     sÐ  ðÜ 
Û Û 	Û Û 
Ý Ý Ý ÷	÷ 	ó 	÷ :Ñ 9Ý å Ý '÷õ ÷	÷ 	ó 	÷
÷ 
õ 
÷ CÑ Bß 0Ý  áÝ-ð€ð ˆ~Ñ€á × 0Ñ 0Ó1€ˆ%��C‘‰/Ó 1ð (˜bŸi™iÐ(9Ó:€��s‘Ó :Ø)˜rŸz™z¨J°Ð6GÀrÐ*JÓK€ˆˆw�s‰|Ñ	Ó KØ(˜bŸj™jÐ);¸R¿X¹XÓF€ˆˆg�c‰lÑÓ FØ(˜bŸj™j¨°·±Ó:€ˆˆg�c‰lÑÓ :Ø#- 2§:¡:Ð.>Ó#?€	ˆ5�˜‘Ñ Ó ?à5?°R·Z±ZØó6Ð ˜u W¨S¡\Ñ2ó ñ ,5òó,Ð �5˜ 3™Ñ(ó ô 
˜
ô 
ô	˜ô 	ñ 	�Ð*Ð,>Ó?€ô"�7ô "ô�ô ô�ô ÷Y?ñ Y?ðx=Ð#3°CÑ#8ð =¸Tó =ôK�—‘˜' %™.ô Kô\bH˜
Ð#4Ñ5ô bHôJSP˜Ð$6Ñ7ô SP÷lY5ñ Y5÷x_,ñ _,ðD (Ð Ø)Ð Ø'Ð Ø)Ð ð	Ù÷	
ó 	
ð /ÐØ0ÐØ.ÐØ0Ñð øð ò 	Ùð	ús   ÉI. É.I6É5I6