ó
    §ZÇhŽ!  ã                   ó|  • % S SK r S SKJrJrJrJrJrJrJrJ	r	J
r
  SSKJrJrJrJr  SSKJrJrJrJrJr  SSKJr  SSKJrJrJrJrJrJrJrJ r   SSK!J"r"J#r#J$r$J%r%  S	/r&\ RN                  " \RP                  " S
5      5      r)\ RN                  " S5      r*S\\+   S\\+   4S jr,S\\+   S\\\+\+4      4S jr-\ RN                  " \RP                  " S
5      5      r.S\S\\   4S jr/\ RN                  " \RP                  " S
5      5      r0S\S\
\\S4   4S jr1 " S S5      r2\ RN                  " \RP                  " S
5      5      r3 " S S5      r4 " S S5      r5S\SS4S jr6\\
\	\$   \\	\$   \	\$   4   4   \
\S\4   \\7\S\4   4   4   4   r8\\4\/\ \4\1\ \4\1\\4\6\\4\6\\4\6\ \4\6\ \4\6\ \4\6\\4\2\5S.0
r9\8\:S	'   g)é    N)	ÚAnyÚCallableÚDictÚIterableÚNoReturnÚOptionalÚTupleÚTypeÚUnioné   )Úchunk_headerÚheader_fieldÚrequest_lineÚstatus_line)ÚDataÚEndOfMessageÚInformationalResponseÚRequestÚResponse)ÚReceiveBuffer)ÚCLIENTÚCLOSEDÚDONEÚIDLEÚ
MUST_CLOSEÚ	SEND_BODYÚSEND_RESPONSEÚSERVER)ÚLocalProtocolErrorÚRemoteProtocolErrorÚSentinelÚvalidateÚREADERSÚasciis   [ \t]+ÚlinesÚreturnc              #   ó&  #   • [        U 5      nS nU Hr  n[        R                  U5      nU(       aJ  Uc  [        S5      e[	        U[
        5      (       d  [        U5      nUS-  nX#UR                  5       S  -  nMi  Ub  Uv •  UnMt     Ub  Uv •  g g 7f)Nz%continuation line at start of headersó    )ÚiterÚobs_fold_reÚmatchr   Ú
isinstanceÚ	bytearrayÚend)r%   ÚitÚlastÚliner+   s        ÚI/home/mande/repo/quber/.venv/lib/python3.13/site-packages/h11/_readers.pyÚ_obsolete_line_foldr3   +   s—   é € Ü	ˆe‹€BØ €DÛˆÜ×!Ñ! $Ó'ˆÞØ‰|Ü(Ð)PÓQÐQÜ˜d¤I×.Ñ.ä  “�Ø�D‰LˆDØ˜Ÿ™›˜Ð'Ñ'ŠDàÑØ’
ØŠDñ ð ÑØ‹
ð ùs   ‚BBc              #   ól   #   • [        U 5       H!  n[        [        USU5      nUS   US   4v •  M#     g 7f)Nzillegal header line: {!r}Ú
field_nameÚfield_value)r3   r"   Úheader_field_re)r%   r1   Úmatchess      r2   Ú_decode_header_linesr9   @   s<   é € ô $ EÖ*ˆÜœ?¨DÐ2MÈtÓTˆØ�|Ñ$ g¨mÑ&<Ð=Ô=ò +ùs   ‚24Úbufc           
      ó  • U R                  5       nUc!  U R                  5       (       a  [        S5      eg U(       d  [        S5      e[        [        US   SUS   5      n[        S[        [        USS  5      5      SS.UD6$ )	Núillegal request linezno request line receivedr   zillegal request line: {!r}r   T)ÚheadersÚ_parsed© )Úmaybe_extract_linesÚ+is_next_line_obviously_invalid_request_liner   r"   Úrequest_line_rer   Úlistr9   )r:   r%   r8   s      r2   Úmaybe_read_from_IDLE_clientrD   K   s�   € Ø×#Ñ#Ó%€EØ�}Ø×:Ñ:×<Ñ<Ü$Ð%;Ó<Ð<ØÞÜ Ð!;Ó<Ð<ÜÜ˜˜q™Ð#?ÀÀqÁó€Gô ð ÜÔ)¨%°°¨)Ó4Ó5¸tñØGNñð ó    c           	      óp  • U R                  5       nUc!  U R                  5       (       a  [        S5      eg U(       d  [        S5      e[        [        US   SUS   5      nUS   c  SOUS   nUS   c  SOUS   n[        US	   5      nUS
:  a  [        O[        nU" [        [        USS  5      5      SUUUS9$ )Nr<   zno response line receivedr   zillegal status line: {!r}Úhttp_versions   1.1ÚreasonrE   Ústatus_codeéÈ   r   T)r=   r>   rI   rH   rG   )
r@   rA   r   r"   Ústatus_line_reÚintr   r   rC   r9   )r:   r%   r8   rG   rH   rI   Úclass_s          r2   Ú$maybe_read_from_SEND_RESPONSE_serverrN   ^   sß   € ð ×#Ñ#Ó%€EØ�}Ø×:Ñ:×<Ñ<Ü$Ð%;Ó<Ð<ØÞÜ Ð!<Ó=Ð=Ü”~ u¨Q¡xÐ1LÈeÐTUÉhÓW€Gà˜.Ñ)Ñ1‰°w¸~Ñ7Nð ð ˜HÑ%Ñ-‰S°7¸8Ñ3D€FÜ�g˜mÑ,Ó-€Kà!,¨sÓ!2Õ¼ð ñ ÜÔ)¨%°°¨)Ó4Ó5ØØØØ!ñð rE   c                   óR   • \ rS rSrS\SS4S jrS\S\\\	S4   4S jr
S\4S jrS	rg)
ÚContentLengthReaderéz   Úlengthr&   Nc                 ó   • Xl         Xl        g ©N©Ú_lengthÚ
_remaining)ÚselfrR   s     r2   Ú__init__ÚContentLengthReader.__init__{   s   € ØŒØ �rE   r:   c                 óÂ   • U R                   S:X  a
  [        5       $ UR                  U R                   5      nUc  g U =R                   [        U5      -  sl         [	        US9$ )Nr   ©Údata)rW   r   Úmaybe_extract_at_mostÚlenr   ©rX   r:   r]   s      r2   Ú__call__ÚContentLengthReader.__call__   sN   € Ø�?‰?˜aÓÜ“>Ð!Ø×(Ñ(¨¯©Ó9ˆØ‰<ØØ�Šœ3˜t›9Ñ$�Ü˜‰ÐrE   c                 óz   • [        SR                  U R                  U R                  -
  U R                  5      5      e)Nz]peer closed connection without sending complete message body (received {} bytes, expected {}))r    ÚformatrV   rW   ©rX   s    r2   Úread_eofÚContentLengthReader.read_eofˆ   s4   € Ü!ð/ß/5©vØ—‘˜tŸ™Ñ.°·±ó0ó
ð 	
rE   rU   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rL   rY   r   r   r   r   ra   r   rf   Ú__static_attributes__r?   rE   r2   rP   rP   z   s@   † ð!˜sð ! tô !ð˜Mð ¨e°D¸,ÈÐ4LÑ.Mô ð
˜(÷ 
rE   rP   c                   óJ   • \ rS rSrS	S jrS\S\\\S4   4S jr	S\
4S jrSrg)
ÚChunkedReaderé”   r&   Nc                 ó.   • SU l         SU l        SU l        g )Nr   rE   F©Ú_bytes_in_chunkÚ_bytes_to_discardÚ_reading_trailerre   s    r2   rY   ÚChunkedReader.__init__•   s   € Ø ˆÔð "%ˆÔØ %ˆÕrE   r:   c                 óª  • U R                   (       a/  UR                  5       nUc  g [        [        [	        U5      5      S9$ U R
                  (       a�  UR                  [        U R
                  5      5      nUc  g X0R
                  S [        U5       :w  a  [        SU< SU R
                  < S35      eU R
                  [        U5      S  U l        U R
                  (       a  g U R
                  S:X  d   eU R                  S:X  aZ  UR                  5       nUc  g [        [        USU5      n[        US   S	S
9U l	        U R                  S:X  a  SU l         U " U5      $ SnOSnU R                  S:”  d   eUR                  U R                  5      nUc  g U =R                  [        U5      -  sl	        U R                  S:X  a
  SU l        SnOSn[        X6US9$ )N)r=   zmalformed chunk footer: z (expected Ú)rE   r   zillegal chunk header: {!r}Ú
chunk_sizeé   )ÚbaseTFs   
)r]   Úchunk_startÚ	chunk_end)rt   r@   r   rC   r9   rs   r^   r_   r   rr   Úmaybe_extract_next_liner"   Úchunk_header_rerL   r   )rX   r:   r%   r]   r   r8   r{   r|   s           r2   ra   ÚChunkedReader.__call__œ   sË  € Ø× × Ø×+Ñ+Ó-ˆEØ‰}ØÜ¬Ô-AÀ%Ó-HÓ(IÑJÐJØ×!×!Ø×,Ñ,¬S°×1GÑ1GÓ-HÓIˆDØ‰|ØØ×-Ñ-¨k´°D³	Ð:Ó:Ü(Ø.¨t©h°kÀ$×BXÑBXÑA[Ð[\Ð]óð ð &*×%;Ñ%;¼CÀ»I¸KÐ%HˆDÔ"Ø×%×%Øà×%Ñ%¨Ó,Ð,Ð,Ø×Ñ 1Ó$à×6Ñ6Ó8ˆLØÑ#ØÜÜØØ,Øó	ˆGô $' w¨|Ñ'<À2Ñ#FˆDÔ Ø×#Ñ# qÓ(Ø(,�Ô%Ù˜C“yÐ Ø‰KàˆKØ×#Ñ# aÓ'Ð'Ð'Ø×(Ñ(¨×)=Ñ)=Ó>ˆØ‰<ØØ×Ò¤ D£	Ñ)ÕØ×Ñ 1Ó$Ø%,ˆDÔ"Ø‰IàˆIÜ˜À)ÑLÐLrE   c                 ó   • [        S5      e)NzVpeer closed connection without sending complete message body (incomplete chunked read))r    re   s    r2   rf   ÚChunkedReader.read_eofÎ   s   € Ü!ð(ó
ð 	
rE   rq   )r&   N)rh   ri   rj   rk   rY   r   r   r   r   ra   r   rf   rl   r?   rE   r2   rn   rn   ”   s6   † ô&ð0M˜Mð 0M¨e°D¸,ÈÐ4LÑ.Mô 0Mðd
˜(÷ 
rE   rn   c                   ó:   • \ rS rSrS\S\\   4S jrS\4S jr	Sr
g)ÚHttp10ReaderéÕ   r:   r&   c                 ó>   • UR                  S5      nUc  g [        US9$ )NiÿÉš;r\   )r^   r   r`   s      r2   ra   ÚHttp10Reader.__call__Ö   s$   € Ø×(Ñ(¨Ó3ˆØ‰<ØÜ˜‰ÐrE   c                 ó   • [        5       $ rT   )r   re   s    r2   rf   ÚHttp10Reader.read_eofÜ   s
   € Ü‹~ÐrE   r?   N)rh   ri   rj   rk   r   r   r   ra   r   rf   rl   r?   rE   r2   rƒ   rƒ   Õ   s%   † ð˜Mð ¨h°t©nô ð˜,÷ rE   rƒ   c                 ó(   • U (       a  [        S5      eg )NzGot data when expecting EOF)r   )r:   s    r2   Úexpect_nothingrŠ   à   s   € Þ
Ü Ð!>Ó?Ð?ØrE   .)Úchunkedzcontent-lengthzhttp/1.0);ÚreÚtypingr   r   r   r   r   r   r	   r
   r   Ú_abnfr   r   r   r   Ú_eventsr   r   r   r   r   Ú_receivebufferr   Ú_stater   r   r   r   r   r   r   r   Ú_utilr   r    r!   r"   Ú__all__ÚcompileÚencoder7   r*   Úbytesr3   r9   rB   rD   rK   rN   rP   r~   rn   rƒ   rŠ   ÚstrÚReadersTyper#   Ú__annotations__r?   rE   r2   Ú<module>rš      s>  ðô& 
ß X× XÕ Xç HÓ Hß QÕ QÝ )÷	÷ 	ó 	÷ OÓ Nàˆ+€à—*’*˜\×0Ò0°Ó9Ó:€Ø�jŠj˜Ó$€ð˜x¨™ð °8¸E±?ô ð*>Ø�E‰?ð>àˆe�E˜5�LÑ!Ñ"ô>ð —*’*˜\×0Ò0°Ó9Ó:€ð ]ð °xÀÑ7Hô ð  —’˜K×.Ò.¨wÓ7Ó8€ðØ	ðà
Ð  (¨DÐ0Ñ1ô÷8
ñ 
ð. —*’*˜\×0Ò0°Ó9Ó:€÷>
ñ >
÷Bñ ð˜ð ¨$ô ð Ø	ˆ$ˆx‰.˜%  X¡°°X±Ð >Ñ?Ð
?Ñ@Ø	ˆ(�3˜�8Ñ
˜d 3¨°°c°Ñ(:Ð#:Ñ;Ð
;Ñ<ð>ñ€ð ˆT€NÐ/ØˆT€NÐ8Øˆ]ÐÐAØˆT€N�NØˆZÐ˜.ØˆVÐ�nØˆT€N�NØˆZÐ˜.ØˆVÐ�nØØ Ø-Ø ñð€ˆô rE   