Ë
    Eü´jKO  ã                   óŠ  — U d 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
 ddlmZmZ dd	lmZ d
dlmZmZmZ d
dlmZmZmZmZmZmZ eD � ch c]
  }  e| «      ’Œ c} Zeee      ed<   d
ZdZdZ dZ!ejD                  Z#ejH                  Z%dZ&ejN                  jP                  Z)ejH                  jP                  Z*ejD                  jP                  Z+ejX                  jP                  Z-ej\                  jP                  Z/ej`                  jP                  Z1dZ2dZ3dZ4dZ5d
Z6e7jp                  Z9eZ: G d„ d«      Z; G d„ d«      Z<yc c} w )z0Reader for WebSocket protocol versions 13 and 8.é    N)Údeque)ÚFinalé   )ÚBaseProtocol)ÚZLibDecompressor)Ú_EXC_SENTINELÚset_exception)Ú	EofStreamé   )ÚUNPACK_CLOSE_CODEÚUNPACK_LEN3Úwebsocket_mask)ÚWS_DEFLATE_TRAILINGÚWebSocketErrorÚWSCloseCodeÚ	WSMessageÚWSMessageTextBytesÚ	WSMsgTypeÚALLOWED_CLOSE_CODESé   é   éÿÿÿÿ)Tó    )Fr   c                   óÎ   — e Zd ZdZdededej                  ddfd„Zde	fd„Z
dedz  fd	„Zefd
edej                  ddfd„Zdd„Zdd„Z	 	 	 	 	 	 dd„Zdeez  fd„Zdeez  fd„Zy)ÚWebSocketDataQueuezmWebSocketDataQueue resumes and pauses an underlying stream.

    It is a destination for WebSocket data.
    ÚprotocolÚlimitÚloopÚreturnNc                óö   — d| _         || _        |dz  | _        || _        d| _        d | _        d | _        t        «       | _        | j                  j                  | _
        | j                  j                  | _        y )Nr   r   F)Ú_sizeÚ	_protocolÚ_limitÚ_loopÚ_eofÚ_waiterÚ
_exceptionr   Ú_bufferÚpopleftÚ_get_bufferÚappendÚ_put_buffer)Úselfr   r   r   s       úZ/root/workspace/ytshorts/venv/lib/python3.12/site-packages/aiohttp/_websocket/reader_py.pyÚ__init__zWebSocketDataQueue.__init__=   sf   € ð ˆŒ
Ø!ˆŒØ˜a‘iˆŒØˆŒ
ØˆŒ	Ø48ˆŒØ04ˆŒÜJOË'ˆŒØŸ<™<×/Ñ/ˆÔØŸ<™<×.Ñ.ˆÕr   c                 ó   — | j                   S ©N)r%   ©r-   s    r.   Úis_eofzWebSocketDataQueue.is_eofK   s   € Ø�y‰yÐr   c                 ó   — | j                   S r1   )r'   r2   s    r.   Ú	exceptionzWebSocketDataQueue.exceptionN   s   € Ø�‰Ðr   ÚexcÚ	exc_causec                 óf   — d| _         || _        | j                  x}�d | _        t        |||«       y y ©NT)r%   r'   r&   r	   )r-   r6   r7   Úwaiters       r.   r	   z WebSocketDataQueue.set_exceptionQ   s9   € ð
 ˆŒ	ØˆŒØ—l‘lÐ"ˆFÐ/ØˆDŒLÜ˜& # yÕ1ð 0r   c                 ót   — | j                   x}€y d | _         |j                  «       s|j                  d «       y y r1   )r&   ÚdoneÚ
set_result)r-   r:   s     r.   Ú_release_waiterz"WebSocketDataQueue._release_waiter\   s7   € Ø—l‘lÐ"ˆFÐ+ØØˆŒØ�{‰{Œ}Ø×Ñ˜dÕ#ð r   c                 ó@   — d| _         | j                  «        d | _        y r9   )r%   r>   r'   r2   s    r.   Úfeed_eofzWebSocketDataQueue.feed_eofc   s   € ØˆŒ	Ø×ÑÔØˆ�r   c                 ó
  — | xj                   |z  c_         | j                  ||f«       | j                  «        | j                   | j                  kD  r2| j                  j
                  s| j                  j                  «        y y y r1   )r!   r,   r>   r#   r"   Ú_reading_pausedÚpause_reading©r-   ÚdataÚsizes      r.   Ú	feed_datazWebSocketDataQueue.feed_datah   se   € ð 	�
Š
�dÑ�
Ø×Ñ˜$ ˜Ô&Ø×ÑÔØ�:‰:˜Ÿ™Ò#¨D¯N©N×,JÒ,JØ�N‰N×(Ñ(Õ*ð -KÐ#r   c              ƒ   ó`  K  — | j                   s^| j                  sR| j                  rJ ‚| j                  j	                  «       | _        	 | j                  ƒ d {  –—†  | j                  «       S | j                  «       S 7 Œ$# t
        j                  t
        j                  f$ r	 d | _        ‚ w xY w­wr1   )	r(   r%   r&   r$   Úcreate_futureÚasyncioÚCancelledErrorÚTimeoutErrorÚ_read_from_bufferr2   s    r.   ÚreadzWebSocketDataQueue.readq   s“   è ø€ Ø�|Š| D§I¢IØ—|’|Ð#Ð#ØŸ:™:×3Ñ3Ó5ˆDŒLðØ—l‘l×"Ð"ð ×%Ñ%Ó'Ð'ˆt×%Ñ%Ó'Ð'ð	 #ùÜ×*Ñ*¬G×,@Ñ,@ÐAò Ø#�”Øðüs0   ‚AB.Á	A? ÁA=ÁA? Á B.Á=A? Á?,B+Â+B.c                 ó<  — | j                   rs| j                  «       \  }}| xj                  |z  c_        | j                  | j                  k  r0| j                  j
                  r| j                  j                  «        |S | j                  �| j                  ‚t        ‚r1   )	r(   r*   r!   r#   r"   rB   Úresume_readingr'   r
   rD   s      r.   rM   z$WebSocketDataQueue._read_from_buffer|   ss   € Ø�<Š<Ø×)Ñ)Ó+‰JˆD�$Ø�JŠJ˜$Ñ�JØ�z‰z˜DŸK™KÒ'¨D¯N©N×,JÒ,JØ—‘×-Ñ-Ô/ØˆKØ�?‰?Ð&Ø—/‘/Ð!Üˆr   ©r   N)rE   zWSMessage | WSMessageTextBytesrF   Ú
cython_intr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚintrJ   ÚAbstractEventLoopr/   Úboolr3   ÚBaseExceptionr5   r   Úbuiltinsr	   r>   r@   rG   r   r   rN   rM   © r   r.   r   r   7   sÆ   „ ñð
/Ø$ð/Ø-0ð/Ø;B×;TÑ;Tð/à	ó/ð˜ó ð˜=¨4Ñ/ó ð -:ñ	2àð	2ð ×)Ñ)ð	2ð 
ó		2ó$óð
+Ø4ð+Ø<Hð+à	ó+ð	(˜IÐ(:Ñ:ó 	(ð	 9Ð/AÑ#Aô 	r   r   c            
       ó”   — e Zd Zdededededdf
d„Zdd„Zd	ee	z  e
z  deeef   fd
„Zdedeez  dee	z  deez  ddf
d„Zd	eddfd„Zy)ÚWebSocketReaderÚqueueÚmax_msg_sizeÚcompressÚdecode_textr   Nc                 ó>  — || _         || _        || _        d | _        t	        «       | _        t        | _        t        | _	        d| _
        t        | _        g | _        d| _        d| _        d| _        d | _        d| _        d| _        t&        | _        d | _        || _        y )NFr   r   )r_   Ú_max_msg_sizeÚ_decode_textÚ_excÚ	bytearrayÚ_partialÚREAD_HEADERÚ_stateÚOP_CODE_NOT_SETÚ_opcodeÚ
_frame_finÚ_frame_opcodeÚ_payload_fragmentsÚ_frame_payload_lenÚ_tailÚ	_has_maskÚ_frame_maskÚ_payload_bytes_to_readÚ_payload_len_flagÚCOMPRESSED_NOT_SETÚ_compressedÚ_decompressobjÚ	_compress)r-   r_   r`   ra   rb   s        r.   r/   zWebSocketReader.__init__‰   s•   € ð ˆŒ
Ø)ˆÔØ'ˆÔà&*ˆŒ	Ü!›ˆŒÜ!ˆŒä+ˆŒØˆŒÜ"1ˆÔØ/1ˆÔØ"#ˆÔàˆŒ
ØˆŒØ)-ˆÔØ&'ˆÔ#Ø!"ˆÔÜ 2ˆÔØ7;ˆÔØ!ˆ�r   c                 ó8   — | j                   j                  «        y r1   )r_   r@   r2   s    r.   r@   zWebSocketReader.feed_eof§   s   € Ø�
‰
×ÑÕr   rE   c                 óü   — t        |«      t        urt        |«      }| j                  �d|fS 	 | j                  |«       t        S # t        $ r-}|| _        t        | j                  |«       t        cY d }~S d }~ww xY wr9   )	ÚtypeÚbytesrf   Ú
_feed_dataÚ	Exceptionr	   r_   ÚEMPTY_FRAME_ERRORÚEMPTY_FRAME)r-   rE   r6   s      r.   rG   zWebSocketReader.feed_data­   sq   € Ü�‹:œUÑ"Ü˜“;ˆDà�9‰9Ð Ø˜�:Ðð	%Ø�O‰O˜DÔ!ô Ðøô ò 	%ØˆDŒIÜ˜$Ÿ*™* cÔ*Ü$Õ$ûð	%ús   ®A Á	A;Á"A6Á0A;Á6A;ÚfinÚopcodeÚpayloadÚ
compressedc           	      ó@	  — |t         t        t        hv �rŠ|t        k(  r-| j                  t        k(  rt        t        j                  d«      ‚|s&|t        k7  r|| _        | xj                  |z  c_        y t        | j                  «      }|t        k(  r| j                  }t        | _        n|rt        t        j                  d|›�«      ‚|r*| j                  |z   }| j                  j                  «        n|}|r°| j                  st        d¬«      | _        | j                  j                  |t        z   | j                  r| j                  dz   n| j                  «      }| j                  r^t!        |«      | j                  kD  rFt        t        j"                  d| j                  › �«      ‚t%        |«      t&        u r|}nt'        |«      }|t         k(  r”| j(                  rM	 |j+                  d«      }| j0                  j3                  t5        t6        t8        |d	f«      t!        |«      «       y | j0                  j3                  t5        t:        t8        |d	f«      t!        |«      «       y | j0                  j3                  t5        t6        t<        |d	f«      t!        |«      «       y |t>        k(  rãt!        |«      d
k\  rrtA        |d d
 «      d   }
|
dk  r%|
tB        vrt        t        j                  d|
› �«      ‚	 |d
d  j+                  d«      }t5        t6        tD        jF                  |
|f«      }nF|r#t        t        j                  d|› d|› d|›�«      ‚t5        t6        tD        jF                  dd	f«      }| j0                  j3                  |d«       y |tH        k(  rGt5        t6        tD        jJ                  |d	f«      }| j0                  j3                  |t!        |«      «       y |tL        k(  rGt5        t6        tD        jN                  |d	f«      }| j0                  j3                  |t!        |«      «       y t        t        j                  d|›�«      ‚# t,        $ r }	t        t        j.                  d«      |	‚d }	~	ww xY w# t,        $ r }	t        t        j.                  d«      |	‚d }	~	ww xY w)Nz*Continuation frame for non started messagez8The opcode in non-fin frame is expected to be zero, got T)Úsuppress_deflate_headerr   z(Decompressed message exceeds size limit zutf-8zInvalid UTF-8 text messageÚ r   r   i¸  zInvalid close code: zInvalid close frame: ú úUnexpected opcode=)(ÚOP_CODE_TEXTÚOP_CODE_BINARYÚOP_CODE_CONTINUATIONrl   rk   r   r   ÚPROTOCOL_ERRORrh   rY   Úclearrx   r   Údecompress_syncr   rd   ÚlenÚMESSAGE_TOO_BIGr|   r}   re   ÚdecodeÚUnicodeDecodeErrorÚINVALID_TEXTr_   rG   Ú	TUPLE_NEWr   ÚWS_MSG_TYPE_TEXTr   ÚWS_MSG_TYPE_BINARYÚOP_CODE_CLOSEr   r   r   ÚCLOSEÚOP_CODE_PINGÚPINGÚOP_CODE_PONGÚPONG)r-   r‚   rƒ   r„   r…   Úhas_partialÚassembled_payloadÚpayload_mergedÚtextr6   Ú
close_codeÚclose_messageÚmsgs                r.   Ú_handle_framezWebSocketReader._handle_frame½   s3  € ð ”l¤NÔ4HÐIÒIàÔ-Ò-°$·,±,Ä/Ò2QÜ$Ü×.Ñ.Ø@óð ñ àÔ1Ò1Ø#)�D”LØ—’ Ñ(•Øä˜tŸ}™}Ó-ˆKØÔ-Ò-ØŸ™�Ü.�•ñ Ü$Ü×.Ñ.ð'Ø'- jð2óð ñ Ø$(§M¡M°GÑ$;Ð!Ø—‘×#Ñ#Õ%à$+Ð!ñ Ø×*Ò*Ü*:ÐSWÔ*X�DÔ'ð "&×!4Ñ!4×!DÑ!DØ%Ô(;Ñ;ð  ×-Ò-ð ×*Ñ*¨QÒ.à!×/Ñ/ó"�ð ×%Ò%¬#¨nÓ*=À×@RÑ@RÒ*RÜ(Ü#×3Ñ3ØBÀ4×CUÑCUÐBVÐWóð ô Ð'Ó(¬EÑ1Ø!2‘ä!&Ð'8Ó!9�àœÒ%Ø×$Ò$ð#Ø-×4Ñ4°WÓ=˜ð —J‘J×(Ñ(Ü!¤)Ô.>ÀÀbÐ-IÓJÜ˜NÓ+õð —J‘J×(Ñ(Ü!Ü.Ô1AÀ>ÐSUÐ0Vóô ˜NÓ+õ	ð —
‘
×$Ñ$ÜœiÔ*<¸nÈbÐ)QÓRÜ˜Ó'õð ”}Ò$Ü�7‹|˜qÒ Ü.¨w°r¸¨{Ó;¸AÑ>�
Ø Ò$¨Ô;NÑ)NÜ(Ü#×2Ñ2Ø.¨z¨lÐ;óð ðØ$+¨A¨B K×$6Ñ$6°wÓ$?�Mô
  ¤	¬I¯O©O¸ZÈÐ+WÓX‘ÙÜ$Ü×.Ñ.Ø+¨C¨5°°&°¸¸7¸+ÐFóð ô
  ¤	¬I¯O©O¸QÀÐ+CÓD�à�J‰J× Ñ   aÕ(Ø”|Ò#ÜœI¬	¯©¸ÀÐ'DÓEˆCØ�J‰J× Ñ  ¤c¨'£lÕ3Ø”|Ò#ÜœI¬	¯©¸ÀÐ'DÓEˆCØ�J‰J× Ñ  ¤c¨'£lÕ3ä Ü×*Ñ*Ð.@ÀÀ
Ð,Kóð øôs .ò #Ü,Ü'×4Ñ4Ð6Róà"ð#ûð#ûôH *ò Ü(Ü#×0Ñ0Ð2Nóàðûðús0   ÇQ Ë2Q4 Ñ	Q1ÑQ,Ñ,Q1Ñ4	RÑ=RÒRc                 ó‚
  — | j                   r| j                   |z   dc}| _         d}t        |«      }|}	 | j                  t        k(  �rŽ||z
  dk  r�n×||   }||dz      }|dz  }|dz	  dz  }|dz	  dz  }|dz	  dz  }	|dz	  dz  }
|d	z  }|	s|
s|r&| j                  st        t        j                  d
«      ‚|t        t        t        t        t        t        hvrt        t        j                  d|›�«      ‚|dkD  r|dk(  rt        t        j                  d«      ‚|dz	  dz  }|dz  }|dkD  r|dkD  rt        t        j                  d«      ‚| j                  s| j                  t         k(  r|rt"        nt$        | _        n|rt        t        j                  d
«      ‚|dk  rt'        |«      | _        || _        t'        |«      | _        || _        t.        | _        | j                  t.        k(  �r| j,                  }|dk(  r*||z
  dk  r�n$||   }||dz      }|dz  }|dz  |z  | _        n0|dkD  r$||z
  dk  r�nõt3        ||«      d   | _        |dz  }n|| _        | j4                  rx| j(                  t        t        t        hv r[| j0                  t        | j6                  «      z   }|| j4                  k\  r*t        t        j8                  d|› d| j4                  › �«      ‚| j*                  rt:        nt<        | _        | j                  t:        k(  r'||z
  dk  r�n|||dz    | _        |dz  }t<        | _        | j                  t<        k(  �rã||z
  }| j0                  |k\  r|}| xj0                  |z  c_        n|| j0                  z   }d| _        | j@                  }| xj@                  ||z
  z  c_         |}|}| j0                  dk7  r | jB                  jE                  ||| «       �nL|r«| jB                  jE                  ||| «       | j*                  rK| j>                  €J ‚tG        djI                  | jB                  «      «      }tK        | j>                  |«       |}ndjI                  | jB                  «      }| jB                  jM                  «        nY| j*                  rH| j>                  €J ‚||| }tO        |«      tF        urtG        |«      }tK        | j>                  |«       |}n||| }| jQ                  | j                  | j(                  || j                  «       d| _         t        | _        �Œõ||k  r||| | _         yd| _         y)z&Return the next frame from the socket.r   r   r   r   é   é   é   r   é   z*Received frame with non-zero reserved bitsrŠ   z!Received fragmented control frameé   é}   z5Control frame payload cannot be larger than 125 bytesé~   é   zMessage size z exceeds limit N))rq   r‘   rj   ri   ry   r   r   rŽ   r�   r‹   rŒ   r™   r›   r�   rm   rw   rv   ÚCOMPRESSED_TRUEÚCOMPRESSED_FALSErY   rn   rr   ru   ÚREAD_PAYLOAD_LENGTHrt   r   rd   rh   r’   ÚREAD_PAYLOAD_MASKÚREAD_PAYLOADrs   rp   ro   r+   rg   Újoinr   r�   r|   r¦   )r-   rE   Ú	start_posÚdata_lenÚ	data_cstrÚ
first_byteÚsecond_byter‚   Úrsv1Úrsv2Úrsv3rƒ   Úhas_maskÚlengthÚlen_flagÚprojected_sizeÚ	chunk_lenÚ	f_end_posÚhad_fragmentsÚf_start_posÚpayload_bytearrayr„   s                         r.   r~   zWebSocketReader._feed_dataF  su  € à�:Š:Ø#Ÿz™z¨DÑ0°#ÐˆD�$”*àˆ	Ü�t“9ˆØˆ	àà�{‰{œkÓ)Ø˜iÑ'¨!Ò+ÙØ& yÑ1�
Ø'¨	°A©Ñ6�Ø˜Q‘�	à! Q‘¨!Ñ+�Ø" a™¨1Ñ,�Ø" a™¨1Ñ,�Ø" a™¨1Ñ,�Ø# cÑ)�ñ ™4¡D°·²Ü(Ü#×2Ñ2ØDóð ð
 Ü(Ü Ü"Ü!Ü Ü ð"ñ ô )Ü#×2Ñ2Ø,¨V¨JÐ7óð ð
 ˜C’< C¨1¢HÜ(Ü#×2Ñ2Ø;óð ð
 (¨1Ñ,°Ñ1�Ø$ tÑ+�ð ˜C’< F¨S¢LÜ(Ü#×2Ñ2ØOóð ð —?’? d×&6Ñ&6Ô:LÒ&LÙ:>¥ÔDT�DÕ$ÙÜ(Ü#×2Ñ2ØDóð ð ˜S’=Ü&*¨3£i�D”OØ%+�Ô"Ü!% h£�”Ø)/�Ô&Ü1�”ð �{‰{Ô1Ó1Ø×1Ñ1�Ø˜s’?Ø )Ñ+¨aÒ/ÙØ!*¨9Ñ!5�JØ"+¨I¸©MÑ":�KØ ‘N�IØ2<À±/ÀKÑ2O�DÕ/Ø ’^Ø )Ñ+¨aÒ/ÙÜ2=¸dÀIÓ2NÈqÑ2Q�DÔ/Ø ‘N‘Ià2:�DÔ/ð
 ×%Ò%¨$×*<Ñ*<Ü Ü"Ü(ðAñ +ð
 &*×%@Ñ%@Ä3ÀtÇ}Á}ÓCUÑ%U�NØ%¨×);Ñ);Ò;Ü,Ü'×7Ñ7Ø+¨NÐ+;ð <-Ø-1×-?Ñ-?Ð,@ðBóð ð 48·>²>Õ/Ä|�”ð �{‰{Ô/Ò/Ø˜iÑ'¨!Ò+ÙØ#,¨Y¸ÀQ¹Ð#G�Ô Ø˜Q‘�	Ü*�”à�{‰{œlÓ*Ø$ yÑ0�	Ø×.Ñ.°)Ò;Ø (�IØ×/Ò/°9Ñ<Ö/à )¨D×,GÑ,GÑ G�IØ23�DÔ/à $× 7Ñ 7�Ø×'Ò'¨9°yÑ+@Ñ@Õ'Ø'�Ø%�	à×.Ñ.°!Ò3ð ×+Ñ+×2Ñ2°9¸[ÈÐ3SÔTÙñ !à×+Ñ+×2Ñ2°9¸[ÈÐ3SÔTØ—~’~Ø#×/Ñ/Ð;Ð;Ð;Ü,5°c·h±h¸t×?VÑ?VÓ6WÓ,XÐ)Ü& t×'7Ñ'7Ð9JÔKØ"3™à"%§(¡(¨4×+BÑ+BÓ"C˜Ø×+Ñ+×1Ñ1Õ3Ø—^’^Ø×+Ñ+Ð7Ð7Ð7Ø(1°+¸iÐ(HÐ%ÜÐ-Ó.´iÑ?ô -6Ð6GÓ,HÐ)Ü" 4×#3Ñ#3Ð5FÔGØ/‘Gà'¨°IÐ>�Gà×"Ñ"Ø—O‘O T×%7Ñ%7¸À$×BRÑBRôð +,�Ô'Ü)�”ñ_ ðd 7@À(Ò6J�Y˜y¨Ð2ˆ�
ÐPSˆ�
r   rQ   )rS   rT   rU   r   rW   rY   r/   r@   r}   rg   Ú
memoryviewÚtuplerG   rR   r¦   r~   r\   r   r.   r^   r^   ˆ   sÆ   „ ð"à!ð"ð ð"ð ð	"ð
 ð"ð 
ó"ó<ð˜e iÑ/°*Ñ<ð ÀÀtÈUÀ{ÑASó ð GàðGð �jÑ ðGð ˜Ñ"ð	Gð
 ˜*Ñ$ðGð 
óGðR{T˜uð {T¨ô {Tr   r^   )=rV   rJ   r[   Úcollectionsr   Útypingr   Úbase_protocolr   Úcompression_utilsr   Úhelpersr   r	   Ústreamsr
   r   r   r   Úmodelsr   r   r   r   r   r   rW   r   ÚsetÚ__annotations__ri   r²   r³   r´   ÚBINARYr˜   ÚTEXTr—   rk   ÚCONTINUATIONÚvaluer�   r‹   rŒ   rš   r™   rœ   r›   rž   r�   r€   r�   rv   r±   r°   rÈ   Ú__new__r–   rR   r   r^   )Úis   0r.   ú<module>rØ      s5  ðÚ 6ã Û Ý Ý å (Ý 0ß 2Ý ß CÑ C÷÷ ð 9DÖ'D°1©¨A­Ò'DÐ �U˜3˜s™8‘_Ó Dð €ØÐ ØÐ Ø€à×%Ñ%Ð Ø—>‘>Ð ð €Ø ×-Ñ-×3Ñ3Ð Ø�~‰~×#Ñ#€Ø×!Ñ!×'Ñ'€Ø—‘×%Ñ%€Ø�~‰~×#Ñ#€Ø�~‰~×#Ñ#€àÐ Ø€àÐ ØÐ Ø€à�M‰M€	à€
÷Nñ N÷byTò yTùòe (Es   ÁE 