§
    ¨öÉgË+  ã                   óŠ   — d Z ddlZddlmZmZmZ ddlmZmZm	Z	m
Z
mZ  G d„ d¦  «        Z G d„ d	e¦  «        Zej        eiZdS )
z>
wsproto/extensions
~~~~~~~~~~~~~~~~~~

WebSocket extensions.
é    N)ÚOptionalÚTupleÚUnioné   )ÚCloseReasonÚFrameDecoderÚFrameProtocolÚOpcodeÚRsvBitsc                   ód  — e Zd ZU eed<   defd„Zdeeef         fd„Zdede	eeef                  fd„Z
deddfd„Zd	eeef         d
edededeeef         f
d„Zd	eeef         dedeeef         fd„Zd	eeef         dedeeedf         fd„Zd	eeef         d
ededededeeef         fd„ZdS )Ú	ExtensionÚnameÚreturnc                 ó   — dS ©NF© ©Úselfs    ú^/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/wsproto/extensions.pyÚenabledzExtension.enabled   s   € Øˆuó    c                 ó   — d S ©Nr   r   s    r   ÚofferzExtension.offer   ó   € Øˆr   r   c                 ó   — d S r   r   ©r   r   s     r   ÚacceptzExtension.accept   r   r   Nc                 ó   — d S r   r   r   s     r   ÚfinalizezExtension.finalize   r   r   ÚprotoÚopcodeÚrsvÚpayload_lengthc                 ó$   — t          ddd¦  «        S r   )r   )r   r!   r"   r#   r$   s        r   Úframe_inbound_headerzExtension.frame_inbound_header   s   € õ �u˜e UÑ+Ô+Ð+r   Údatac                 ó   — |S r   r   ©r   r!   r'   s      r   Úframe_inbound_payload_dataz$Extension.frame_inbound_payload_data&   s	   € ð ˆr   Úfinc                 ó   — d S r   r   )r   r!   r+   s      r   Úframe_inbound_completez Extension.frame_inbound_complete+   s	   € ð 	ˆr   c                 ó
   — ||fS r   r   )r   r!   r"   r#   r'   r+   s         r   Úframe_outboundzExtension.frame_outbound0   s   € ð �Tˆ{Ðr   )Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__Úboolr   r   r   r   r   r    r   r	   r
   r   Úintr   r&   Úbytesr*   r-   r   r/   r   r   r   r   r      së  € € € € € € Ø
€I€I�Ið˜ð ð ð ð ð�u˜T 3˜YÔ'ð ð ð ð ð˜Cð  H¨U°4¸°9Ô-=Ô$>ð ð ð ð ð˜cð  dð ð ð ð ð,à�\ =Ð0Ô1ð,ð ð,ð ð	,ð
 ð,ð 
ˆ{˜GÐ#Ô	$ð,ð ,ð ,ð ,ðØ˜<¨Ð6Ô7ðØ?Dðà	ˆu�kÐ!Ô	"ðð ð ð ð
Ø˜<¨Ð6Ô7ðØ>Bðà	ˆu�k 4Ð'Ô	(ðð ð ð ð
à�\ =Ð0Ô1ðð ðð ð	ð
 ðð ðð 
ˆw˜ˆ~Ô	ðð ð ð ð ð r   r   c                   óx  — e Zd ZdZdZdZ	 	 	 	 d#dedee         dedee         d	df
d
„Z	e
d	efd„¦   «         Zej        ded	dfd„¦   «         Ze
d	efd„¦   «         Zej        ded	dfd„¦   «         Zded	efd„Zd	efd„Zd	eeef         fd„Zded	dfd„Zded	eee         ee         f         fd„Zded	eedef         fd„Zdeeef         dededed	eeef         f
d„Zdeeef         ded	eeef         fd„Zdeeef         ded	eeedf         fd „Zdeeef         dedededed	eeef         fd!„Z d	efd"„Z!dS )$ÚPerMessageDeflatezpermessage-deflateé   FNÚclient_no_context_takeoverÚclient_max_window_bitsÚserver_no_context_takeoverÚserver_max_window_bitsr   c                 ó¼   — || _         || _        | j        | _        | j        | _        |�|| _        |�|| _        d | _        d | _	        d | _
        d | _        d| _        d S r   )r;   r=   ÚDEFAULT_CLIENT_MAX_WINDOW_BITSÚ_client_max_window_bitsÚDEFAULT_SERVER_MAX_WINDOW_BITSÚ_server_max_window_bitsr<   r>   Ú_compressorÚ_decompressorÚ_inbound_is_compressibleÚ_inbound_compressedÚ_enabled)r   r;   r<   r=   r>   s        r   Ú__init__zPerMessageDeflate.__init__A   st   € ð +EˆÔ'Ø*DˆÔ'Ø'+Ô'JˆÔ$Ø'+Ô'JˆÔ$Ø!Ð-Ø*@ˆDÔ'Ø!Ð-Ø*@ˆDÔ'à59ˆÔØ9=ˆÔà8<ˆÔ%ð 48ˆÔ àˆŒˆˆr   c                 ó   — | j         S r   )rA   r   s    r   r<   z(PerMessageDeflate.client_max_window_bits\   ó   € àÔ+Ð+r   Úvaluec                 óJ   — |dk     s|dk    rt          d¦  «        ‚|| _        d S ©Né	   r:   z.Window size must be between 9 and 15 inclusive)Ú
ValueErrorrA   ©r   rL   s     r   r<   z(PerMessageDeflate.client_max_window_bits`   ó0   € à�1Š9ˆ9˜ š
˜
ÝÐMÑNÔNÐNØ',ˆÔ$Ð$Ð$r   c                 ó   — | j         S r   )rC   r   s    r   r>   z(PerMessageDeflate.server_max_window_bitsf   rK   r   c                 óJ   — |dk     s|dk    rt          d¦  «        ‚|| _        d S rN   )rP   rC   rQ   s     r   r>   z(PerMessageDeflate.server_max_window_bitsj   rR   r   r"   c                 óL   — |t           j        t           j        t           j        fv S r   )r
   ÚTEXTÚBINARYÚCONTINUATION)r   r"   s     r   Ú_compressible_opcodez&PerMessageDeflate._compressible_opcodep   s   € Ø�&œ+¥v¤}µfÔ6IÐJÐJÐJr   c                 ó   — | j         S r   )rH   r   s    r   r   zPerMessageDeflate.enableds   s
   € ØŒ}Ðr   c                 óÄ   — d| j         z  d| j        z  g}| j        r|                     d¦  «         | j        r|                     d¦  «         d                     |¦  «        S )Núclient_max_window_bits=%dúserver_max_window_bits=%dr;   r=   ú; )r<   r>   r;   Úappendr=   Újoin)r   Ú
parameterss     r   r   zPerMessageDeflate.offerv   ss   € à'¨$Ô*EÑEØ'¨$Ô*EÑEð
ˆ
ð
 Ô*ð 	<Ø×ÒÐ:Ñ;Ô;Ð;ØÔ*ð 	<Ø×ÒÐ:Ñ;Ô;Ð;à�yŠy˜Ñ$Ô$Ð$r   r   c                 ó6  — d„ |                      d¦  «        D ¦   «         }|dd …         D ]ç}|                     d¦  «        rd| _        Œ|                     d¦  «        rd| _        Œ<|                     d¦  «        rAt	          |                      dd¦  «        d                              ¦   «         ¦  «        | _        Œ’|                     d	¦  «        r@t	          |                      dd¦  «        d                              ¦   «         ¦  «        | _        Œèd| _        d S )
Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   ©Ústrip©Ú.0Úbs     r   ú
<listcomp>z.PerMessageDeflate.finalize.<locals>.<listcomp>„   s    € Ð4Ð4Ð4˜a�—’‘	”	Ð4Ð4Ð4r   ú;r   r;   Tr=   r<   ú=r>   )	ÚsplitÚ
startswithr;   r=   r6   re   r<   r>   rH   )r   r   ÚbitsÚbits       r   r    zPerMessageDeflate.finalizeƒ   s  € Ø4Ð4 5§;¢;¨sÑ#3Ô#3Ð4Ñ4Ô4ˆØ˜˜˜”8ð 	Pð 	PˆCØ�~Š~Ð:Ñ;Ô;ð PØ26�Ô/Ð/Ø—’Ð <Ñ=Ô=ð PØ26�Ô/Ð/Ø—’Ð 8Ñ9Ô9ð PÝ.1°#·)²)¸CÀÑ2CÔ2CÀAÔ2F×2LÒ2LÑ2NÔ2NÑ.OÔ.O�Ô+Ð+Ø—’Ð 8Ñ9Ô9ð PÝ.1°#·)²)¸CÀÑ2CÔ2CÀAÔ2F×2LÒ2LÑ2NÔ2NÑ.OÔ.O�Ô+øàˆŒˆˆr   Úparamsc                 óP  — d }d }d„ |                      d¦  «        D ¦   «         }|dd …         D ]õ}|                     d¦  «        rd| _        Œ|                     d¦  «        rd| _        Œ<|                     d¦  «        rHd|v r<t	          |                      dd¦  «        d                              ¦   «         ¦  «        }Œ‘| j        }Œ™|                     d	¦  «        rGd|v r<t	          |                      dd¦  «        d                              ¦   «         ¦  «        }Œî| j        }Œö||fS )
Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   rd   rf   s     r   ri   z3PerMessageDeflate._parse_params.<locals>.<listcomp>•   s    € Ð5Ð5Ð5˜a�—’‘	”	Ð5Ð5Ð5r   rj   r   r;   Tr=   r<   rk   r>   )rl   rm   r;   r=   r6   re   r<   r>   )r   rp   r<   r>   rn   ro   s         r   Ú_parse_paramszPerMessageDeflate._parse_params‘   sH  € Ø!%ÐØ!%Ðà5Ð5 6§<¢<°Ñ#4Ô#4Ð5Ñ5Ô5ˆØ˜˜˜”8ð 	Ið 	IˆCØ�~Š~Ð:Ñ;Ô;ð IØ26�Ô/Ð/Ø—’Ð <Ñ=Ô=ð IØ26�Ô/Ð/Ø—’Ð 8Ñ9Ô9ð 	IØ˜#�:�:Ý-0°·²¸3ÀÑ1BÔ1BÀ1Ô1E×1KÒ1KÑ1MÔ1MÑ-NÔ-NÐ*Ð*à-1Ô-HÐ*Ð*Ø—’Ð 8Ñ9Ô9ð IØ˜#�:�:Ý-0°·²¸3ÀÑ1BÔ1BÀ1Ô1E×1KÒ1KÑ1MÔ1MÑ-NÔ-NÐ*Ð*à-1Ô-HÐ*øà%Ð'=Ð=Ð=r   c                 ó†  — |                       |¦  «        \  }}g }| j        r|                     d¦  «         | j        r|                     d¦  «         	 |�|                     d|z  ¦  «         || _        |�|                     d|z  ¦  «         || _        d| _        d                     |¦  «        S # t          $ r Y d S w xY w)Nr;   r=   r\   r]   Tr^   )	rs   r;   r_   r=   r<   r>   rH   r`   rP   )r   r   r<   r>   ra   s        r   r   zPerMessageDeflate.accept¨   s÷   € Ø9=×9KÒ9KÈEÑ9RÔ9RÑ6ÐÐ 6àˆ
àÔ*ð 	<Ø×ÒÐ:Ñ;Ô;Ð;ØÔ*ð 	<Ø×ÒÐ:Ñ;Ô;Ð;ð	)Ø%Ð1Ø×!Ò!Ð"=Ð@VÑ"VÑWÔWÐWØ.D�Ô+Ø%Ð1Ø×!Ò!Ð"=Ð@VÑ"VÑWÔWÐWØ.D�Ô+ð !ˆDŒMØ—9’9˜ZÑ(Ô(Ð(øõ	 ð 	ð 	ð 	Ø�4�4ð	øøøs   ÁAB2 Â2
C Â?C r!   r#   r$   c                 ó¶  — |j         r |                     ¦   «         rt          j        S |j         r|t          j        u rt          j        S |                      |¦  «        | _        | j        €`|j         | _        | j        rM| j        sJ ‚|j	        r| j
        }n| j        }| j        €'t          j        t          |¦  «         ¦  «        | _        t!          ddd¦  «        S )NTF)Úrsv1Ú	iscontrolr   ÚPROTOCOL_ERRORr
   rX   rY   rF   rG   Úclientr>   r<   rE   ÚzlibÚdecompressobjr6   r   )r   r!   r"   r#   r$   rn   s         r   r&   z&PerMessageDeflate.frame_inbound_header¾   sà   € ð Œ8ð 	.˜×(Ò(Ñ*Ô*ð 	.ÝÔ-Ð-ØŒ8ð 	.˜¥&Ô"5Ð5Ð5ÝÔ-Ð-à(,×(AÒ(AÀ&Ñ(IÔ(IˆÔ%àÔ#Ð+Ø'*¤xˆDÔ$ØÔ'ð HØÔ4Ð4Ð4Ð4Ø”<ð 7ØÔ6�D�DàÔ6�DØÔ%Ð-Ý)-Ô);½SÀ¹Y¼Y¸JÑ)GÔ)G�DÔ&å�t˜U EÑ*Ô*Ð*r   r'   c                 óÆ   — | j         r| j        s|S | j        €J ‚	 | j                             t	          |¦  «        ¦  «        S # t
          j        $ r t          j        cY S w xY wr   )	rG   rF   rE   Ú
decompressr7   rz   Úerrorr   ÚINVALID_FRAME_PAYLOAD_DATAr)   s      r   r*   z,PerMessageDeflate.frame_inbound_payload_dataÙ   s{   € ð Ô'ð 	¨tÔ/Lð 	ØˆKØÔ!Ð-Ð-Ð-ð	:ØÔ%×0Ò0µ°t±´Ñ=Ô=Ð=øÝŒzð 	:ð 	:ð 	:ÝÔ9Ð9Ð9Ð9ð	:øøøs   ›&A ÁA ÁA r+   c                 ó^  — |sd S | j         s	d | _        d S | j        s	d | _        d S | j        €J ‚	 | j                             d¦  «        }|| j                             ¦   «         z  }n!# t
          j        $ r t          j        cY S w xY w|j	        r| j
        }n| j        }|rd | _        d | _        |S )Ns     ÿÿ)rF   rG   rE   r}   Úflushrz   r~   r   r   ry   r=   r;   )r   r!   r+   r'   Úno_context_takeovers        r   r-   z(PerMessageDeflate.frame_inbound_completeå   sò   € ð ð 	Ø�4ØÔ,ð 	Ø'+ˆDÔ$Ø�4ØÔ'ð 	Ø'+ˆDÔ$Ø�4ØÔ!Ð-Ð-Ð-ð	:ØÔ%×0Ò0Ð1DÑEÔEˆDØ�DÔ&×,Ò,Ñ.Ô.Ñ.ˆDˆDøÝŒzð 	:ð 	:ð 	:ÝÔ9Ð9Ð9Ð9ð	:øøøð Œ<ð 	BØ"&Ô"AÐÐà"&Ô"AÐàð 	&Ø!%ˆDÔà#'ˆÔ àˆs   ¯6A& Á&BÂBc                 óH  — |                       |¦  «        s||fS |t          j        urt          dg|dd …         ¢R Ž }| j        €c|t          j        usJ ‚|j        r| j        }n| j        }t          j	        t          j
        t          j        t          |¦  «         ¦  «        | _        | j                             t          |¦  «        ¦  «        }|rP|| j                             t          j        ¦  «        z  }|d d…         }|j        r| j        }n| j        }|rd | _        ||fS )NTr   éüÿÿÿ)rY   r
   rX   r   rD   ry   r<   r>   rz   ÚcompressobjÚZ_DEFAULT_COMPRESSIONÚDEFLATEDr6   Úcompressr7   r�   ÚZ_SYNC_FLUSHr;   r=   )r   r!   r"   r#   r'   r+   rn   r‚   s           r   r/   z PerMessageDeflate.frame_outbound  s<  € ð ×(Ò(¨Ñ0Ô0ð 	Ø˜�;Ðà�Ô,Ð,Ð,Ý˜$Ð)  Q R R¤Ð)Ð)Ð)ˆCàÔÐ#Ø¥Ô!4Ð4Ð4Ð4Ð4ØŒ|ð 3ØÔ2��àÔ2�Ý#Ô/ÝÔ*­D¬M½CÀ¹I¼I¸:ñ ô  ˆDÔð Ô×(Ò(­¨t©¬Ñ5Ô5ˆàð 
	(Ø�DÔ$×*Ò*­4Ô+<Ñ=Ô=Ñ=ˆDØ˜˜˜”9ˆDàŒ|ð FØ&*Ô&EÐ#Ð#à&*Ô&EÐ#à"ð (Ø#'�Ô à�Tˆ{Ðr   c                 ó(  — d| j         z  g}| j        r|                     d¦  «         |                     d| j        z  ¦  «         | j        r|                     d¦  «         d                     | j        j        d                     |¦  «        ¦  «        S )Nr\   r;   r]   r=   z<{} {}>r^   )	r<   r;   r_   r>   r=   ÚformatÚ	__class__r0   r`   )r   Údescrs     r   Ú__repr__zPerMessageDeflate.__repr__,  s�   € Ø,¨tÔ/JÑJÐKˆØÔ*ð 	7Ø�LŠLÐ5Ñ6Ô6Ð6Ø�ŠÐ0°4Ô3NÑNÑOÔOÐOØÔ*ð 	7Ø�LŠLÐ5Ñ6Ô6Ð6à×Ò ¤Ô 7¸¿ºÀ5Ñ9IÔ9IÑJÔJÐJr   )FNFN)"r0   r1   r2   r   r@   rB   r5   r   r6   rI   Úpropertyr<   Úsetterr>   r
   rY   r   r   r3   r   r    r   rs   r   r   r	   r   r   r&   r7   r*   r-   r/   rŽ   r   r   r   r9   r9   ;   s~  € € € € € Ø€Dà%'Ð"Ø%'Ð"ð ,1Ø04Ø+0Ø04ðð à$(ðð !)¨¤ðð %)ð	ð
 !)¨¤ðð 
ðð ð ð ð6 ð,¨ð ,ð ,ð ,ñ „Xð,ð Ô"ð-¨Cð -°Dð -ð -ð -ñ #Ô"ð-ð
 ð,¨ð ,ð ,ð ,ñ „Xð,ð Ô"ð-¨Cð -°Dð -ð -ð -ñ #Ô"ð-ð
K¨6ð K°dð Kð Kð Kð Kð˜ð ð ð ð ð%�u˜T 3˜YÔ'ð %ð %ð %ð %ð˜cð  dð ð ð ð ð> Cð >¨E°(¸3´-ÀÈ#ÄÐ2NÔ,Oð >ð >ð >ð >ð.)˜Cð ) E¨$°°c¨/Ô$:ð )ð )ð )ð )ð,+à�\ =Ð0Ô1ð+ð ð+ð ð	+ð
 ð+ð 
ˆ{˜GÐ#Ô	$ð+ð +ð +ð +ð6
:Ø˜<¨Ð6Ô7ð
:Ø?Dð
:à	ˆu�kÐ!Ô	"ð
:ð 
:ð 
:ð 
:ðØ˜<¨Ð6Ô7ðØ>Bðà	ˆu�k 4Ð'Ô	(ðð ð ð ð>&à�\ =Ð0Ô1ð&ð ð&ð ð	&ð
 ð&ð ð&ð 
ˆw˜ˆ~Ô	ð&ð &ð &ð &ðPK˜#ð Kð Kð Kð Kð Kð Kr   r9   )Ú__doc__rz   Útypingr   r   r   Úframe_protocolr   r   r	   r
   r   r   r9   r   ÚSUPPORTED_EXTENSIONSr   r   r   ú<module>r•      sÝ   ððð ð €€€Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ Uð*ð *ð *ð *ð *ñ *ô *ð *ðZyKð yKð yKð yKð yK˜	ñ yKô yKð yKð@ *Ô.Ð0AÐBÐ Ð Ð r   