ó
    ÖÁ“i•  ã                  óJ  • S SK Jr  S SKrS SKrS SKrSSKJr  SSKJr  SS/r	\
" \R                  R                  SS	5      5      r\
" \R                  R                  S
S5      5      rSS jr\R                   " S5      r\R                   " S5      rSS jrSS jrSS jrSS jrg)é    )ÚannotationsNé   )ÚHeaders)ÚSecurityErrorÚread_requestÚread_responseÚWEBSOCKETS_MAX_NUM_HEADERSÚ128ÚWEBSOCKETS_MAX_LINE_LENGTHÚ8192c                ó    • U R                  SS9$ )z?
Decode a bytestring for interpolating into an error message.

Úbackslashreplace)Úerrors)Údecode)Úvalues    ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/websockets/legacy/http.pyÚdr      s   € ð
 �<‰<Ð1ˆ<Ð2Ð2ó    s   [-!#$%&\'*+.^_`|~0-9a-zA-Z]+s   [\x09\x20-\x7e\x80-\xff]*c              ƒ  ó²  #   •  [        U 5      I Sh  v•N n UR                  SS5      u  p4nUS:w  a  [        S[	        U5       35      eUS:w  a  [        S	[	        U5       35      eUR                  S
S5      n[        U 5      I Sh  v•N nXg4$  N|! [         a  n[        S5      UeSnAff = f! [         a    [        S[	        U5       35      Sef = f NM7f)a»  
Read an HTTP/1.1 GET request and return ``(path, headers)``.

``path`` isn't URL-decoded or validated in any way.

``path`` and ``headers`` are expected to contain only ASCII characters.
Other characters are represented with surrogate escapes.

:func:`read_request` doesn't attempt to read the request body because
WebSocket handshake requests don't have one. If the request contains a
body, it may be read from ``stream`` after this coroutine returns.

Args:
    stream: Input to read the request from.

Raises:
    EOFError: If the connection is closed without a full HTTP request.
    SecurityError: If the request exceeds a security limit.
    ValueError: If the request isn't well formatted.

Nz1connection closed while reading HTTP request lineó    r   zinvalid HTTP request line: s   GETzunsupported HTTP method: ó   HTTP/1.1úunsupported HTTP version: ÚasciiÚsurrogateescape)Ú	read_lineÚEOFErrorÚsplitÚ
ValueErrorr   r   Úread_headers)ÚstreamÚrequest_lineÚexcÚmethodÚraw_pathÚversionÚpathÚheaderss           r   r   r   -   sò   é € ð8UÜ& vÓ.×.ˆðTØ$0×$6Ñ$6°t¸QÓ$?Ñ!ˆ˜'ð �ÓÜÐ4´Q°v³Y°KÐ@ÓAÐAØ�+ÓÜÐ5´a¸³j°\ÐBÓCÐCØ�?‰?˜7Ð$5Ó6€Dä  Ó(×(€Gàˆ=Ðñ# /øÜó UÜÐJÓKÐQTÐTûðUûô
 ó TÜÐ6´q¸³Ð6GÐHÓIÈtÐSðTúñ )ùsU   ‚C„B ’B“B ˜B/ ­ACÂCÂCÂB Â
B,ÂB'Â'B,Â,CÂ/#CÃCc              ƒ  óˆ  #   •  [        U 5      I Sh  v•N n UR                  SS5      u  p4nUS:w  a  [        S[	        U5       35      e [        U5      nS	Us=::  a  S
:  d  O  [        S[	        U5       35      e[        R                  U5      (       d  [        S[	        U5       35      eUR                  5       n[        U 5      I Sh  v•N nXgU4$  NÁ! [         a  n[        S5      UeSnAff = f! [         a    [        S[	        U5       35      Sef = f! [         a    [        S[	        U5       35      Sef = f Nt7f)a›  
Read an HTTP/1.1 response and return ``(status_code, reason, headers)``.

``reason`` and ``headers`` are expected to contain only ASCII characters.
Other characters are represented with surrogate escapes.

:func:`read_request` doesn't attempt to read the response body because
WebSocket handshake responses don't have one. If the response contains a
body, it may be read from ``stream`` after this coroutine returns.

Args:
    stream: Input to read the response from.

Raises:
    EOFError: If the connection is closed without a full HTTP response.
    SecurityError: If the response exceeds a security limit.
    ValueError: If the response isn't well formatted.

Nz0connection closed while reading HTTP status liner   r   zinvalid HTTP status line: r   r   zinvalid HTTP status code: éd   iè  zunsupported HTTP status code: zinvalid HTTP reason phrase: )
r   r   r   r   r   ÚintÚ	_value_reÚ	fullmatchr   r   )	r    Ústatus_liner"   r%   Úraw_status_codeÚ
raw_reasonÚstatus_codeÚreasonr'   s	            r   r   r   ^   sa  é € ð2TÜ% fÓ-×-ˆðRØ/:×/@Ñ/@ÀÀqÓ/IÑ,ˆ *ð �+ÓÜÐ5´a¸³j°\ÐBÓCÐCðVÜ˜/Ó*ˆð �+Õ$ Õ$ÜÐ9¼!¸OÓ:LÐ9MÐNÓOÐOÜ×Ñ˜z×*Ñ*ÜÐ7¼¸*»°ÐGÓHÐHØ×ÑÓ €Fä  Ó(×(€Gà Ð'Ð'ñ/ .øÜó TÜÐIÓJÐPSÐSûðTûô
 ó RÜÐ5´a¸³nÐ5EÐFÓGÈTÐQðRûô ó VÜÐ5´a¸Ó6HÐ5IÐJÓKÐQUÐUðVúñ )ùsm   ‚E„C ’C“C ˜C4 ­EÁD ÁA5EÃE ÃEÃC Ã
C1Ã C,Ã,C1Ã1EÃ4#DÄEÄ#D=Ä=Ec              ƒ  óŠ  #   • [        5       n[        [        S-   5       HÏ  n [        U 5      I Sh  v•N nUS:X  a    U$  UR                  SS5      u  pV[        R                  U5      (       d  [        S[        U5       35      eUR                  S5      n[        R                  U5      (       d  [        S	[        U5       35      eUR                  S
5      nUR                  S
S5      nX�U'   MÑ     [        S5      e NË! [         a  n[	        S5      UeSnAff = f! [         a    [        S[        U5       35      Sef = f7f)zc
Read HTTP headers from ``stream``.

Non-ASCII characters are represented with surrogate escapes.

é   Nz,connection closed while reading HTTP headersr   ó   :zinvalid HTTP header line: zinvalid HTTP header name: s    	zinvalid HTTP header value: r   r   ztoo many HTTP headers)r   ÚrangeÚMAX_NUM_HEADERSr   r   r   r   r   Ú	_token_rer,   Ústripr+   r   r   )	r    r'   Ú_Úliner"   Úraw_nameÚ	raw_valueÚnamer   s	            r   r   r   ’   sG  é € ô ‹i€GÜ”? QÑ&Ö'ˆð	TÜ" 6Ó*×*ˆDð �3‹;Øð& €Nð#	OØ"&§*¡*¨T°1Ó"5ÑˆHô ×"Ñ" 8×,Ñ,ÜÐ9¼!¸H»+¸ÐGÓHÐHØ—O‘O FÓ+ˆ	Ü×"Ñ" 9×-Ñ-ÜÐ:¼1¸Y»<¸.ÐIÓJÐJà�‰˜wÓ'ˆØ× Ñ  Ð*;Ó<ˆØ�‹ñ) (ô. Ð3Ó4Ð4ñ+ +øÜó 	TÜÐIÓJÐPSÐSûð	Tûô ó 	OÜÐ9¼!¸D»'¸ÐCÓDÈ$ÐNð	OüsP   ‚ E£C?±C=²C?¶	EÁ DÁB)EÃ=C?Ã?
DÄ	DÄDÄEÄ#E Å Ec              ƒ  óÆ   #   • U R                  5       I Sh  v•N n[        U5      [        :”  a  [        S5      eUR	                  S5      (       d  [        S5      eUSS $  NH7f)zO
Read a single line from ``stream``.

CRLF is stripped from the return value.

Nzline too longs   
zline without CRLFéþÿÿÿ)ÚreadlineÚlenÚMAX_LINE_LENGTHr   Úendswithr   )r    r:   s     r   r   r   º   sY   é € ð —‘Ó"×"€Dä
ˆ4ƒy”?Ó"Ü˜OÓ,Ð,à�=‰=˜×!Ñ!ÜÐ*Ó+Ð+Ø��ˆ9Ðñ #ùs   ‚A!–A—A	A!)r   ÚbytesÚreturnÚstr)r    úasyncio.StreamReaderrE   ztuple[str, Headers])r    rG   rE   ztuple[int, str, Headers])r    rG   rE   r   )r    rG   rE   rD   )Ú
__future__r   ÚasyncioÚosÚreÚdatastructuresr   Ú
exceptionsr   Ú__all__r*   ÚenvironÚgetr6   rB   r   Úcompiler7   r+   r   r   r   r   © r   r   Ú<module>rS      s•   ðÝ "ã Û 	Û 	å $Ý &ð ˜?Ð
+€á�b—j‘j—n‘nÐ%AÀ5ÓIÓJ€Ù�b—j‘j—n‘nÐ%AÀ6ÓJÓK€ô3ð �JŠJÐ7Ó8€	ð �JŠJÐ4Ó5€	ô.ôb1(ôh%õPr   