ó
    ð›‘hB  ã                   óº   • S SK r S SKJrJrJrJrJr  Sr " S S\5      r	 " S S\\	5      r
 " S S	\\	5      r " S
 S\\	5      r " S S\\	5      r " S S\\	5      rg)é    N)ÚPerMessageCompressOfferÚPerMessageCompressOfferAcceptÚPerMessageCompressResponseÚ PerMessageCompressResponseAcceptÚPerMessageCompress)ÚPerMessageSnappyMixinÚPerMessageSnappyOfferÚPerMessageSnappyOfferAcceptÚPerMessageSnappyResponseÚPerMessageSnappyResponseAcceptÚPerMessageSnappyc                   ó   • \ rS rSrSrSrSrg)r   é-   z!
Mixin class for this extension.
zpermessage-snappy© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚEXTENSION_NAMEÚ__static_attributes__r   ó    ÚfC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\autobahn/websocket/compress_snappy.pyr   r   -   s   † ñð )€Nòr   r   c                   óH   • \ rS rSrSr\S 5       r  S
S jrS rS r	S r
Srg	)r	   é8   zj
Set of extension parameters for `permessage-snappy` WebSocket extension
offered by a client to a server.
c           
      óš  • SnSnU H·  n[        X   5      S:”  a  [        SU< SU R                  < S35      eX   S   nUS:X  a+  USLa"  [        S	U< S
U< SU R                  < S35      eSnMj  US:X  a+  USLa"  [        S	U< S
U< SU R                  < S35      eSnM›  [        SU< SU R                  < S35      e   U " UU5      nU$ )a-  
Parses a WebSocket extension offer for `permessage-snappy` provided by a client to a server.

:param params: Output from :func:`autobahn.websocket.WebSocketProtocol._parseExtensionsHeader`.
:type params: list

:returns: A new instance of :class:`autobahn.compress.PerMessageSnappyOffer`.
:rtype: obj
Fé   ú,multiple occurrence of extension parameter 'ú' for extension 'Ú'r   Úclient_no_context_takeoverTú#illegal extension parameter value 'ú' for parameter 'ú' of extension 'Úserver_no_context_takeoverúillegal extension parameter '©ÚlenÚ	Exceptionr   )ÚclsÚparamsÚaccept_no_context_takeoverÚrequest_no_context_takeoverÚpÚvalÚoffers          r   ÚparseÚPerMessageSnappyOffer.parse>   s
  € ð &+Ð"Ø&+Ð#ó ˆAä�6‘9‹~ Ó!ÝÓhiÐkn×k}Ôk}Ð ~ÓÐà‘)˜A‘,ˆCàÐ0Ó0à˜d’?Ý#ÓuxÓz{ð  ~A÷  ~Pô  ~Pð  %Qó  Rð  Rà15Ò.àÐ2Ó2à˜d’?Ý#ÓuxÓz{ð  ~A÷  ~Pô  ~Pð  %Qó  Rð  Rà26Ò/õ  ÓYZÐ\_×\nÔ\nÐ oÓpÐpñ- ñ0 Ð.Ø/ó1ˆàˆr   c                 óÄ   • [        U5      [        :w  a  [        S[        U5      -  5      eXl        [        U5      [        :w  a  [        S[        U5      -  5      eX l        g)a  

:param accept_no_context_takeover: Iff true, client accepts "no context takeover" feature.
:type accept_no_context_takeover: bool
:param request_no_context_takeover: Iff true, client request "no context takeover" feature.
:type request_no_context_takeover: bool
z.invalid type %s for accept_no_context_takeoverú/invalid type %s for request_no_context_takeoverN)ÚtypeÚboolr)   r,   r-   )Úselfr,   r-   s      r   Ú__init__ÚPerMessageSnappyOffer.__init__j   s[   € ô Ð*Ó+¬tÓ3ÜÐLÌtÐTnÓOoÑoÓpÐpà*DÔ'äÐ+Ó,´Ó4ÜÐMÔPTÐUpÓPqÑqÓrÐrà+FÕ(r   c                 óv   • U R                   nU R                  (       a  US-  nU R                  (       a  US-  nU$ )ú
Returns the WebSocket extension configuration string as sent to the server.

:returns: PMCE configuration string.
:rtype: str
ú; client_no_context_takeoverú; server_no_context_takeover©r   r,   r-   ©r7   Úpmce_strings     r   Úget_extension_stringÚ*PerMessageSnappyOffer.get_extension_string~   s=   € ð ×)Ñ)ˆØ×*×*ØÐ9Ñ9ˆKØ×+×+ØÐ9Ñ9ˆKØÐr   c                 óJ   • U R                   U R                  U R                  S.$ )ún
Returns a JSON serializable object representation.

:returns: JSON serializable representation.
:rtype: dict
)Ú	extensionr,   r-   r>   ©r7   s    r   Ú__json__ÚPerMessageSnappyOffer.__json__Œ   s+   € ð "×0Ñ0Ø.2×.MÑ.MØ/3×/OÑ/OñQð 	Qr   c                 ó@   • SU R                   < SU R                  < S3$ )úŠ
Returns Python object representation that can be eval'ed to reconstruct the object.

:returns: Python string representation.
:rtype: str
z3PerMessageSnappyOffer(accept_no_context_takeover = ú , request_no_context_takeover = Ú)©r,   r-   rF   s    r   Ú__repr__ÚPerMessageSnappyOffer.__repr__—   s8   � ð nr÷  nMô  nMð  OS÷  Ooô  Ooð  pð  	pr   rM   N)TF)r   r   r   r   r   Úclassmethodr1   r8   rA   rG   rN   r   r   r   r   r	   r	   8   s;   † ñð
 ñ)ó ð)ðX -1Ø-2ôGò(ò	Qõpr   r	   c                   ó8   • \ rS rSrSr  S	S jrS rS rS rSr	g)
r
   é¡   z`
Set of parameters with which to accept an `permessage-snappy` offer
from a client by a server.
Nc                 óÆ  • [        U[        5      (       d  [        S[        U5      -  5      eXl        [        U5      [
        :w  a  [        S[        U5      -  5      eU(       a  UR                  (       d  [        SU-  5      eX l        UbP  [        U5      [
        :w  a  [        S[        U5      -  5      eUR                  (       a  U(       d  [        SU-  5      eX0l        g)a›  

:param offer: The offer being accepted.
:type offer: Instance of :class:`autobahn.compress.PerMessageSnappyOffer`.
:param request_no_context_takeover: Iff true, server request "no context takeover" feature.
:type request_no_context_takeover: bool
:param no_context_takeover: Override server ("server-to-client direction") context takeover (this must be compatible with offer).
:type no_context_takeover: bool
zinvalid type %s for offerr4   zPinvalid value %s for request_no_context_takeover - feature unsupported by clientNú'invalid type %s for no_context_takeoverzCinvalid value %s for no_context_takeover - client requested feature)	Ú
isinstancer	   r)   r5   r0   r6   r,   r-   Úno_context_takeover)r7   r0   r-   rV   s       r   r8   Ú$PerMessageSnappyOfferAccept.__init__§   sÑ   € ô ˜%Ô!6×7Ñ7ÜÐ7¼$¸u»+ÑEÓFÐFàŒ
äÐ+Ó,´Ó4ÜÐMÔPTÐUpÓPqÑqÓrÐræ&¨u×/O×/OÜÐnð  rMñ  Mó  Nð  Nà+FÔ(àÑ*ÜÐ'Ó(¬DÓ0ÜÐ IÌDÐQdÓLeÑ eÓfÐfà×0×0Ö9LÜÐ eÐh{Ñ {Ó|Ð|à#6Õ r   c                 óŠ   • U R                   nU R                  R                  (       a  US-  nU R                  (       a  US-  nU$ )r;   r=   r<   )r   r0   r-   r?   s     r   rA   Ú0PerMessageSnappyOfferAccept.get_extension_stringÊ   sA   € ð ×)Ñ)ˆØ�:‰:×1×1ØÐ9Ñ9ˆKØ×+×+ØÐ9Ñ9ˆKØÐr   c                 ó|   • U R                   U R                  R                  5       U R                  U R                  S.$ )rD   )rE   r0   r-   rV   )r   r0   rG   r-   rV   rF   s    r   rG   Ú$PerMessageSnappyOfferAccept.__json__Ø   s;   € ð "×0Ñ0ØŸ™×,Ñ,Ó.Ø/3×/OÑ/OØ'+×'?Ñ'?ñAð 	Ar   c                 óx   • SU R                   R                  5       < SU R                  < SU R                  < S3$ )rJ   zPerMessageSnappyAccept(offer = rK   ú, no_context_takeover = rL   )r0   rN   r-   rV   rF   s    r   rN   Ú$PerMessageSnappyOfferAccept.__repr__ä   sZ   � ð tx×s}Ñs}÷  tGñ  tGö  tIð  KO÷  Kkô  Kkð  mq÷  mEô  mEð  Fð  	Fr   ©rV   r0   r-   )FN)
r   r   r   r   r   r8   rA   rG   rN   r   r   r   r   r
   r
   ¡   s&   † ñð .3Ø%)ô!7òFò
AõFr   r
   c                   ó:   • \ rS rSrSr\S 5       rS rS rS r	Sr
g)	r   éî   z@
Set of parameters for `permessage-snappy` responded by server.
c           
      óš  • SnSnU H·  n[        X   5      S:”  a  [        SU< SU R                  < S35      eX   S   nUS:X  a+  USLa"  [        S	U< S
U< SU R                  < S35      eSnMj  US:X  a+  USLa"  [        S	U< S
U< SU R                  < S35      eSnM›  [        SU< SU R                  < S35      e   U " UU5      nU$ )a3  
Parses a WebSocket extension response for `permessage-snappy` provided by a server to a client.

:param params: Output from :func:`autobahn.websocket.WebSocketProtocol._parseExtensionsHeader`.
:type params: list

:returns: A new instance of :class:`autobahn.compress.PerMessageSnappyResponse`.
:rtype: obj
Fr   r   r   r    r   r!   Tr"   r#   r$   r%   r&   r'   )r*   r+   r!   r%   r.   r/   Úresponses          r   r1   ÚPerMessageSnappyResponse.parseó   s  € ð &+Ð"Ø%*Ð"ãˆAä�6‘9‹~ Ó!ÝÓhiÐkn×k}Ôk}Ð ~ÓÐà‘)˜A‘,ˆCàÐ0Ó0à˜d’?Ý#ÓuxÓz{ð  ~A÷  ~Pô  ~Pð  %Qó  Rð  Rà15Ò.àÐ2Ó2à˜d’?Ý#ÓuxÓz{ð  ~A÷  ~Pô  ~Pð  %Qó  Rð  Rà15Ò.õ  ÓYZÐ\_×\nÔ\nÐ oÓpÐpñ- ñ0 Ð1Ø1ó3ˆàˆr   c                 ó   • Xl         X l        g ©N©r!   r%   )r7   r!   r%   s      r   r8   Ú!PerMessageSnappyResponse.__init__  s   € ð +EÔ'Ø*DÕ'r   c                 óJ   • U R                   U R                  U R                  S.$ )rD   )rE   r!   r%   )r   r!   r%   rF   s    r   rG   Ú!PerMessageSnappyResponse.__json__#  s+   € ð "×0Ñ0Ø.2×.MÑ.MØ.2×.MÑ.MñOð 	Or   c                 ó@   • SU R                   < SU R                  < S3$ )rJ   z6PerMessageSnappyResponse(client_no_context_takeover = ú, server_no_context_takeover = rL   rg   rF   s    r   rN   Ú!PerMessageSnappyResponse.__repr__.  s8   � ð pt÷  pOô  pOð  QU÷  Qpô  Qpð  qð  	qr   rg   N)r   r   r   r   r   rP   r1   r8   rG   rN   r   r   r   r   r   r   î   s.   † ñð ñ'ó ð'òREò	Oõqr   r   c                   ó0   • \ rS rSrSr SS jrS rS rSrg)	r   i8  zc
Set of parameters with which to accept an `permessage-snappy` response
from a server by a client.
Nc                 ó  • [        U[        5      (       d  [        S[        U5      -  5      eXl        UbP  [        U5      [
        :w  a  [        S[        U5      -  5      eUR                  (       a  U(       d  [        SU-  5      eX l        g)a&  

:param response: The response being accepted.
:type response: Instance of :class:`autobahn.compress.PerMessageSnappyResponse`.
:param no_context_takeover: Override client ("client-to-server direction") context takeover (this must be compatible with response).
:type no_context_takeover: bool
zinvalid type %s for responseNrT   zCinvalid value %s for no_context_takeover - server requested feature)rU   r   r)   r5   rc   r6   r!   rV   )r7   rc   rV   s      r   r8   Ú'PerMessageSnappyResponseAccept.__init__>  s{   € ô ˜(Ô$<×=Ñ=ÜÐ:¼TÀ(»^ÑKÓLÐLà ŒàÑ*ÜÐ'Ó(¬DÓ0ÜÐ IÌDÐQdÓLeÑ eÓfÐfà×2×2Ö;NÜÐ eÐh{Ñ {Ó|Ð|à#6Õ r   c                 óf   • U R                   U R                  R                  5       U R                  S.$ )rD   )rE   rc   rV   )r   rc   rG   rV   rF   s    r   rG   Ú'PerMessageSnappyResponseAccept.__json__V  s2   € ð "×0Ñ0Ø ŸM™M×2Ñ2Ó4Ø'+×'?Ñ'?ñAð 	Ar   c                 ó\   • SU R                   R                  5       < SU R                  < S3$ )rJ   z*PerMessageSnappyResponseAccept(response = r]   rL   )rc   rN   rV   rF   s    r   rN   Ú'PerMessageSnappyResponseAccept.__repr__a  s5   � ð ]a×\iÑ\i×\rÑ\rÖ\tÐvz÷  wOô  wOð  Pð  	Pr   )rV   rc   rf   )	r   r   r   r   r   r8   rG   rN   r   r   r   r   r   r   8  s   † ñð &*ô7ò0	AõPr   r   c                   ón   • \ rS rSrSr\S 5       r\S 5       rS rS r	S r
S rS	 rS
 rS rS rS rSrg)r   ik  z4
`permessage-snappy` WebSocket extension processor.
c                 ó¨   • U " UUR                   R                  UR                  b  UR                  5      nU$ UR                   R                  5      nU$ rf   )rc   r%   rV   r!   ©r*   Ú	is_serverÚacceptÚpmces       r   Úcreate_from_response_acceptÚ,PerMessageSnappy.create_from_response_acceptp  sa   € á�9Ø—?‘?×=Ñ=Ø17×1KÑ1KÑ1W�6×-Ñ-óIˆð ˆð ^d×]lÑ]l÷  ^Hñ  ^HóIˆð ˆr   c                 óˆ   • U " UUR                   b  UR                   OUR                  R                  UR                  5      nU$ rf   r_   rw   s       r   Úcreate_from_offer_acceptÚ)PerMessageSnappy.create_from_offer_acceptw  sI   € á�9Ø17×1KÑ1KÑ1W�6×-Ò-Ð]c×]iÑ]i÷  ^Fñ  ^FØ×5Ñ5ó7ˆð ˆr   c                 óD   • Xl         X l        X0l        S U l        S U l        g rf   )Ú
_is_serverr%   r!   Ú_compressorÚ_decompressor)r7   rx   r%   r!   s       r   r8   ÚPerMessageSnappy.__init__~  s%   € ð $ŒØ*DÔ'Ø*DÔ'àˆÔØ!ˆÕr   c                 óJ   • U R                   U R                  U R                  S.$ )N)rE   r%   r!   )r   r%   r!   rF   s    r   rG   ÚPerMessageSnappy.__json__‰  s)   € Ø!×0Ñ0Ø.2×.MÑ.MØ.2×.MÑ.MñOð 	Or   c                 ó\   • SU R                   < SU R                  < SU R                  < S3$ )NzPerMessageSnappy(is_server = rl   z, client_no_context_takeover = rL   )r�   r%   r!   rF   s    r   rN   ÚPerMessageSnappy.__repr__Ž  sI   � Øw{÷  xGô  xGð  IM÷  Ihô  Ihð  jn÷  jIô  jIð  Jð  	Jr   c                 ó  • U R                   (       a:  U R                  b  U R                  (       a  [        R                  " 5       U l        g g U R                  b  U R
                  (       a  [        R                  " 5       U l        g g rf   )r�   r‚   r%   ÚsnappyÚStreamCompressorr!   rF   s    r   Ústart_compress_messageÚ'PerMessageSnappy.start_compress_message‘  sa   € Ø�?�?Ø×ÑÑ'¨4×+J×+JÜ#)×#:Ò#:Ó#<�Õ ð ,Kð ×ÑÑ'¨4×+J×+JÜ#)×#:Ò#:Ó#<�Õ ð ,Kr   c                 ó8   • U R                   R                  U5      $ rf   )r‚   Ú	add_chunk©r7   Údatas     r   Úcompress_message_dataÚ&PerMessageSnappy.compress_message_data™  s   € Ø×Ñ×)Ñ)¨$Ó/Ð/r   c                 ó   • g)Nr   r   rF   s    r   Úend_compress_messageÚ%PerMessageSnappy.end_compress_messageœ  s   € Ør   c                 ó  • U R                   (       a:  U R                  b  U R                  (       a  [        R                  " 5       U l        g g U R                  b  U R
                  (       a  [        R                  " 5       U l        g g rf   )r�   rƒ   r!   rŠ   ÚStreamDecompressorr%   rF   s    r   Ústart_decompress_messageÚ)PerMessageSnappy.start_decompress_messageŸ  sa   € Ø�?�?Ø×!Ñ!Ñ)¨T×-L×-LÜ%+×%>Ò%>Ó%@�Õ"ð .Mð ×!Ñ!Ñ)¨T×-L×-LÜ%+×%>Ò%>Ó%@�Õ"ð .Mr   c                 ó8   • U R                   R                  U5      $ rf   )rƒ   Ú
decompressr�   s     r   Údecompress_message_dataÚ(PerMessageSnappy.decompress_message_data§  s   € Ø×!Ñ!×,Ñ,¨TÓ2Ð2r   c                 ó   • g rf   r   rF   s    r   Úend_decompress_messageÚ'PerMessageSnappy.end_decompress_messageª  s   € Ør   )r‚   rƒ   r�   r!   r%   N)r   r   r   r   r   rP   r{   r~   r8   rG   rN   rŒ   r’   r•   r™   r�   r    r   r   r   r   r   r   k  s_   † ñð ñó ðð ñó ðò	"òOò
Jò=ò0òòAò3õr   r   )rŠ   Ú autobahn.websocket.compress_baser   r   r   r   r   Ú__all__Úobjectr   r	   r
   r   r   r   r   r   r   Ú<module>r¥      s‹   ðó6 ÷õ ð€ô˜Fô ôfpÐ3Ð5Jô fpôRJFÐ"?ÐAVô JFôZGqÐ9Ð;Pô GqôT0PÐ%EÐG\ô 0Pôf@Ð)Ð+@õ @r   