Ë
    _§1hË+  ã                   ó†   — 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y)
z>
wsproto/extensions
~~~~~~~~~~~~~~~~~~

WebSocket extensions.
é    N)ÚOptionalÚTupleÚUnioné   )ÚCloseReasonÚFrameDecoderÚFrameProtocolÚOpcodeÚRsvBitsc                   ó   — 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y)Ú	ExtensionÚnameÚreturnc                  ó   — y©NF© ©Úselfs    úP/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/wsproto/extensions.pyÚenabledzExtension.enabled   s   € Øó    c                  ó   — y ©Nr   r   s    r   ÚofferzExtension.offer   ó   € Ør   r   c                  ó   — y r   r   ©r   r   s     r   ÚacceptzExtension.accept   r   r   Nc                  ó   — y 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                  ó   — y 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ð˜ó ð�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                   ó  — 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!y)#ÚPerMessageDeflatezpermessage-deflateé   NÚclient_no_context_takeoverÚclient_max_window_bitsÚserver_no_context_takeoverÚserver_max_window_bitsr   c                 óÎ   — || _         || _        | j                  | _        | j                  | _        |�|| _        |�|| _        d | _        d | _	        d | _
        d | _        d| _        y 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   sv   € ð +EˆÔ'Ø*DˆÔ'Ø'+×'JÑ'JˆÔ$Ø'+×'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                 ó<   — |dk  s|dkD  rt        d«      ‚|| _        y ©Né	   r:   z.Window size must be between 9 and 15 inclusive)Ú
ValueErrorrA   ©r   rL   s     r   r<   z(PerMessageDeflate.client_max_window_bits`   ó#   € à�1Š9˜ š
ÜÐMÓNÐNØ',ˆÕ$r   c                 ó   — | j                   S r   )rC   r   s    r   r>   z(PerMessageDeflate.server_max_window_bitsf   rK   r   c                 ó<   — |dk  s|dkD  rt        d«      ‚|| _        y rN   )rP   rC   rQ   s     r   r>   z(PerMessageDeflate.server_max_window_bitsj   rR   r   r"   c                 ód   — |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Ñ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|j                  d«       | j                  r|j                  d«       dj                  |«      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   sf   € à'¨$×*EÑ*EÑEØ'¨$×*EÑ*EÑEð
ˆ
ð
 ×*Ò*Ø×ÑÐ:Ô;Ø×*Ò*Ø×ÑÐ:Ô;à�y‰y˜Ó$Ð$r   r   c                 óø  — |j                  d«      D �cg c]  }|j                  «       ‘Œ }}|dd  D ]º  }|j                  d«      rd| _        Œ|j                  d«      rd| _        Œ5|j                  d«      r2t        |j                  dd«      d   j                  «       «      | _        Œx|j                  d«      sŒŠt        |j                  dd«      d   j                  «       «      | _        Œ¼ d| _        y c c}w ©	Nú;r   r;   Tr=   r<   ú=r>   )	ÚsplitÚstripÚ
startswithr;   r=   r6   r<   r>   rH   )r   r   ÚbÚbitsÚbits        r   r    zPerMessageDeflate.finalizeƒ   sÙ   € Ø#(§;¡;¨sÓ#3Ö4˜a�—‘•	Ð4ˆÐ4Ø˜˜�8ò 	PˆCØ�~‰~Ð:Ô;Ø26�Õ/Ø—‘Ð <Ô=Ø26�Õ/Ø—‘Ð 8Ô9Ü.1°#·)±)¸CÀÓ2CÀAÑ2F×2LÑ2LÓ2NÓ.O�Õ+Ø—‘Ð 8Õ9Ü.1°#·)±)¸CÀÓ2CÀAÑ2F×2LÑ2LÓ2NÓ.O�Õ+ð	Pð ˆ�ùò 5s   ”C7Úparamsc                 ó(  — d }d }|j                  d«      D �cg c]  }|j                  «       ‘Œ }}|dd  D ]Ò  }|j                  d«      rd| _        Œ|j                  d«      rd| _        Œ5|j                  d«      r>d|v r-t        |j                  dd«      d   j                  «       «      }Œw| j                  }Œ„|j                  d«      sŒ–d|v r-t        |j                  dd«      d   j                  «       «      }ŒÇ| j                  }ŒÔ ||fS c c}w rc   )rf   rg   rh   r;   r=   r6   r<   r>   )r   rl   r<   r>   ri   rj   rk   s          r   Ú_parse_paramszPerMessageDeflate._parse_params‘   s  € Ø!%ÐØ!%Ðà#)§<¡<°Ó#4Ö5˜a�—‘•	Ð5ˆÐ5Ø˜˜�8ò 	IˆCØ�~‰~Ð:Ô;Ø26�Õ/Ø—‘Ð <Ô=Ø26�Õ/Ø—‘Ð 8Ô9Ø˜#‘:Ü-0°·±¸3ÀÓ1BÀ1Ñ1E×1KÑ1KÓ1MÓ-NÑ*à-1×-HÑ-HÑ*Ø—‘Ð 8Õ9Ø˜#‘:Ü-0°·±¸3ÀÓ1BÀ1Ñ1E×1KÑ1KÓ1MÓ-NÑ*à-1×-HÑ-HÑ*ð	Ið  &Ð'=Ð=Ð=ùò# 6s   ˜Dc                 óf  — | j                  |«      \  }}g }| j                  r|j                  d«       | j                  r|j                  d«       	 |�|j                  d|z  «       || _        |�|j                  d|z  «       || _        d| _        dj                  |«      S # t        $ r Y y w xY w)Nr;   r=   r\   r]   Tr^   )	rn   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Ñ6ÐÐ 6àˆ
à×*Ò*Ø×ÑÐ:Ô;Ø×*Ò*Ø×ÑÐ:Ô;ð	)Ø%Ð1Ø×!Ñ!Ð"=Ð@VÑ"VÔWØ.D�Ô+Ø%Ð1Ø×!Ñ!Ð"=Ð@VÑ"VÔWØ.D�Ô+ð !ˆDŒMØ—9‘9˜ZÓ(Ð(øô	 ò 	Ùð	ús   Á:B$ Â$	B0Â/B0r!   r#   r$   c                 ó  — |j                   r |j                  «       rt        j                  S |j                   r"|t        j
                  u rt        j                  S | j                  |«      | _        | j                  €€|j                   | _        | j                  rc| 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$   rj   s         r   r&   z&PerMessageDeflate.frame_inbound_header¾   sÖ   € ð �8Š8˜×(Ñ(Ô*Ü×-Ñ-Ð-Ø�8Š8˜¤&×"5Ñ"5Ñ5Ü×-Ñ-Ð-à(,×(AÑ(AÀ&Ó(IˆÔ%à×#Ñ#Ð+Ø'*§x¡xˆDÔ$Ø×'Ò'Ø×4Ò4Ð4Ð4Ø—<’<Ø×6Ñ6‘Dà×6Ñ6�DØ×%Ñ%Ð-Ü)-×);Ñ);¼SÀ»Y¸JÓ)G�DÔ&ä�t˜U EÓ*Ð*r   r'   c                 óî   — | j                   r| j                  s|S | j                  €J ‚	 | j                  j                  t	        |«      «      S # t
        j                  $ r t        j                  cY S w xY wr   )	rG   rF   rE   Ú
decompressr7   ru   Úerrorr   ÚINVALID_FRAME_PAYLOAD_DATAr)   s      r   r*   z,PerMessageDeflate.frame_inbound_payload_dataÙ   sk   € ð ×'Ò'¨t×/LÒ/LØˆKØ×!Ñ!Ð-Ð-Ð-ð	:Ø×%Ñ%×0Ñ0´°t³Ó=Ð=øÜ�z‰zò 	:Ü×9Ñ9Ò9ð	:ús   ª#A Á#A4Á3A4r+   c                 ó¦  — |sy | j                   sd | _        y | j                  sd | _        y | j                  €J ‚	 | j                  j                  d«      }|| j                  j	                  «       z  }|j                  r| j                  }n| j                  }|rd | _        d | _        |S # t
        j                  $ r t        j                  cY S w xY w)Ns     ÿÿ)rF   rG   rE   rx   Úflushru   ry   r   rz   rt   r=   r;   )r   r!   r+   r'   Úno_context_takeovers        r   r-   z(PerMessageDeflate.frame_inbound_completeå   sÓ   € ñ ØØ×,Ò,Ø'+ˆDÔ$ØØ×'Ò'Ø'+ˆDÔ$ØØ×!Ñ!Ð-Ð-Ð-ð	:Ø×%Ñ%×0Ñ0Ð1DÓEˆDØ�D×&Ñ&×,Ñ,Ó.Ñ.ˆDð �<Š<Ø"&×"AÑ"AÑà"&×"AÑ"AÐáØ!%ˆDÔà#'ˆÔ àˆøô �z‰zò 	:Ü×9Ñ9Ò9ð	:ús   »8B* Â*#CÃCc                 óŽ  — | j                  |«      s||fS |t        j                  urt        dg|dd  ¢­Ž }| j                  €{|t        j                  usJ ‚|j
                  r| j                  }n| j                  }t        j                  t        j                  t        j                  t        |«       «      | _        | j                  j                  t        |«      «      }|r_|| j                  j                  t        j                   «      z  }|d d }|j
                  r| j"                  }n| j$                  }|rd | _        ||fS )NTr   éüÿÿÿ)rY   r
   rX   r   rD   rt   r<   r>   ru   ÚcompressobjÚZ_DEFAULT_COMPRESSIONÚDEFLATEDr6   Úcompressr7   r|   ÚZ_SYNC_FLUSHr;   r=   )r   r!   r"   r#   r'   r+   rj   r}   s           r   r/   z PerMessageDeflate.frame_outbound  s%  € ð ×(Ñ(¨Ô0Ø˜�;Ðàœ×,Ñ,Ñ,Ü˜$Ð)  Q R Ò)ˆCà×ÑÐ#Ø¤×!4Ñ!4Ñ4Ð4Ð4Ø�|Š|Ø×2Ñ2‘à×2Ñ2�Ü#×/Ñ/Ü×*Ñ*¬D¯M©M¼CÀ»I¸:ó ˆDÔð ×Ñ×(Ñ(¬¨t«Ó5ˆáØ�D×$Ñ$×*Ñ*¬4×+<Ñ+<Ó=Ñ=ˆDØ˜˜�9ˆDà�|Š|Ø&*×&EÑ&EÑ#à&*×&EÑ&EÐ#á"Ø#'�Ô à�Tˆ{Ðr   c                 ó<  — d| j                   z  g}| j                  r|j                  d«       |j                  d| j                  z  «       | j                  r|j                  d«       dj                  | j                  j                  dj                  |«      «      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ÑJÐKˆØ×*Ò*Ø�L‰LÐ5Ô6Ø�‰Ð0°4×3NÑ3NÑNÔOØ×*Ò*Ø�L‰LÐ5Ô6à×Ñ §¡× 7Ñ 7¸¿¹À5Ó9IÓJÐJr   )FNFN)"r0   r1   r2   r   r@   rB   r5   r   r6   rI   Úpropertyr<   Úsetterr>   r
   rY   r   r   r3   r   r    r   rn   r   r   r	   r   r   r&   r7   r*   r-   r/   r‰   r   r   r   r9   r9   ;   s  „ Ø€Dà%'Ð"Ø%'Ð"ð ,1Ø04Ø+0Ø04ñà$(ðð !)¨¡ðð %)ð	ð
 !)¨¡ðð 
óð6 ð,¨ò ,ó ð,ð ×"Ñ"ð-¨Cð -°Dò -ó #ð-ð
 ð,¨ò ,ó ð,ð ×"Ñ"ð-¨Cð -°Dò -ó #ð-ð
K¨6ð K°dó 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r   r9   )Ú__doc__ru   Útypingr   r   r   Úframe_protocolr   r   r	   r
   r   r   r9   r   ÚSUPPORTED_EXTENSIONSr   r   r   ú<module>r�      sK   ðñó ß )Ñ )ç UÕ U÷*ñ *ôZyK˜	ô yKð@ *×.Ñ.Ð0AÐBÑ r   