ó
    ð›‘h´h ã                   óÈ  • S SK JrJrJrJrJrJrJr  S SKrS SK	r	S SK
Jr  S SKJr  S SKJrJrJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
K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$J%r%J&r&J'r'J(r(J)r)J*r*  S SK+J,r,  S SK-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9  S r: " S S\5      r;\ " S S\;5      5       r< " S S\<5      r=\R|                  " \<5         " S S\?5      r@g)é    )ÚUnionÚOptionalÚDictÚAnyÚClassVarÚListÚCallableN)Úreduce)Úwamp)ÚpublicÚIdGeneratorÚObservableMixin)Úuri)Úmessage)Útypes)Úrole)Ú	exception)ÚApplicationErrorÚProtocolErrorÚSerializationErrorÚTypeCheckError)ÚISessionÚIPayloadCodecÚIAuthenticatorÚ
ITransportÚIMessage)Ú	ChallengeÚSessionDetailsÚCloseDetailsÚEncodedPayloadÚSubscribeOptionsÚ
CallResultÚRegisterOptions)ÚPayloadExceededError)ÚPublicationÚSubscriptionÚHandlerÚRegistrationÚEndpointÚPublishRequestÚSubscribeRequestÚUnsubscribeRequestÚCallRequestÚInvocationRequestÚRegisterRequestÚUnregisterRequestc                 óh   • [         R                  " U 5      =(       d    [         R                  " U 5      $ ©N)ÚinspectÚismethodÚ
isfunction)Úfs    ÚZC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\autobahn/wamp/protocol.pyÚis_method_or_functionr8   ;   s#   € Ü×Ò˜AÓ×7¤'×"4Ò"4°QÓ"7Ð7ó    c                   ó–  • \ rS rSrSrSrS r\S\\	   4S j5       r
\S\4S j5       r\S\4S j5       r\S\\   4S	 j5       r\S\\   4S
 j5       r\S\\   4S j5       r\S\\   4S j5       r\S\\   4S j5       r\S\\   4S j5       r\S\\   4S j5       r\S\\\\4      4S j5       rSS\S\\   4S jjrSS jrS rSr g)ÚBaseSessioné?   z]
WAMP session base class.

This class implements :class:`autobahn.wamp.interfaces.ISession`.
Nc                 ó¨  • [         R                  " 5       U l        U R                  / SQS9  SU l        0 U l        [        R                  [        [        R                  [        0U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        [(        R*                  U l        S U l        S U l        [3        5       U l        g )N)ÚjoinÚleaveÚreadyÚconnectÚ
disconnect)Úvalid_eventsF)ÚtxaioÚmake_loggerÚlogÚset_valid_eventsÚtraceback_appÚ_ecls_to_uri_patr   ÚINVALID_PAYLOADr   ÚPAYLOAD_SIZE_EXCEEDEDr$   Ú_uri_to_eclsÚ
_transportÚ_realmÚ_session_idÚ_authidÚ	_authroleÚ_authmethodÚ_authproviderÚ
_authextrar   ÚDEFAULT_CLIENT_ROLESÚ_session_rolesÚ_session_detailsÚ_payload_codecr   Ú_request_id_gen©Úselfs    r7   Ú__init__ÚBaseSession.__init__G   sÔ   € Ü×$Ò$Ó&ˆŒà×Ñòð 	ñ 	
ð #ˆÔð DFˆÔô ×,Ñ,Ô.@Ü×2Ñ2Ô4Hð2
ˆÔð 15ˆŒð &*ˆŒØ*.ˆÔØ&*ˆŒØ(,ˆŒØ*.ˆÔØ,0ˆÔØ48ˆŒô =A×<UÑ<UˆÔð ;?ˆÔð 8<ˆÔô  +›}ˆÕr9   Úreturnc                 ó   • U R                   $ )zI
Implements :func:`autobahn.wamp.interfaces.ITransportHandler.transport`
)rM   rZ   s    r7   Ú	transportÚBaseSession.transportz   s   € ð �‰Ðr9   c                 ó`   • U R                   SL=(       a    U R                   R                  5       $ )zC
Implements :func:`autobahn.wamp.interfaces.ISession.is_connected`
N)rM   ÚisOpenrZ   s    r7   Úis_connectedÚBaseSession.is_connectedƒ   s%   € ð
 �‰ dÐ*×G¨t¯©×/EÑ/EÓ/GÐGr9   c                 óL   • U R                   SL=(       a    U R                  5       $ )zB
Implements :func:`autobahn.wamp.interfaces.ISession.is_attached`
N)rO   rd   rZ   s    r7   Úis_attachedÚBaseSession.is_attachedŠ   s#   € ð
 ×Ñ tÐ+×C°×0AÑ0AÓ0CÐCr9   c                 ó   • U R                   $ )zF
Implements :func:`autobahn.wamp.interfaces.ISession.session_details`
)rW   rZ   s    r7   Úsession_detailsÚBaseSession.session_details‘   s   € ð
 ×$Ñ$Ð$r9   c                 ó   • U R                   $ r2   )rN   rZ   s    r7   ÚrealmÚBaseSession.realm˜   s   € à�{‰{Ðr9   c                 ó   • U R                   $ r2   )rO   rZ   s    r7   Ú
session_idÚBaseSession.session_idœ   ó   € à×ÑÐr9   c                 ó   • U R                   $ r2   )rP   rZ   s    r7   ÚauthidÚBaseSession.authid    ó   € à�|‰|Ðr9   c                 ó   • U R                   $ r2   )rQ   rZ   s    r7   ÚauthroleÚBaseSession.authrole¤   s   € à�~‰~Ðr9   c                 ó   • U R                   $ r2   )rR   rZ   s    r7   Ú
authmethodÚBaseSession.authmethod¨   rr   r9   c                 ó   • U R                   $ r2   )rS   rZ   s    r7   ÚauthproviderÚBaseSession.authprovider¬   s   € à×!Ñ!Ð!r9   c                 ó   • U R                   $ r2   )rT   rZ   s    r7   Ú	authextraÚBaseSession.authextra°   s   € à�‰Ðr9   r   Úerrorc                 ó–  • Uc_  [        US5      (       aC  UR                  U R                  U'   XR                  UR                  S   R	                  5       '   g[        S5      e[        US5      (       dL  [        R                  " U[        R                  R                  5      /U R                  U'   XR                  U'   g[        S5      e)z=
Implements :func:`autobahn.wamp.interfaces.ISession.define`
NÚ	_wampurisr   zNcannot define WAMP exception from class with no decoration ("_wampuris" unset)z\cannot define WAMP exception: error URI is explicit, but class is decorated ("_wampuris" set)Úhasattrr…   rI   rL   r   ÚRuntimeErrorÚPatternÚURI_TARGET_HANDLER)r[   r   rƒ   s      r7   ÚdefineÚBaseSession.define´   s²   € ð ‰=Ü�y +×.Ñ.Ø3<×3FÑ3F�×%Ñ% iÑ0ØBK×!Ñ! )×"5Ñ"5°aÑ"8×"<Ñ"<Ó">Ò?ä"Ð#sÓtÐtä˜9 k×2Ñ2Ü47·K²KÀÄsÇ{Á{×GeÑGeÓ4fÐ3g�×%Ñ% iÑ0Ø+4×!Ñ! %Ò(ä"ð  $Bó  Cð  Cr9   c           
      ó  • Sn[        US5      (       a  [        UR                  5      nSn[        US5      (       a  UR                  nU(       a  U(       a  XGS'   OSU0n[	        U[
        R                  5      (       a6  [        UR                  5      [        :X  a  UR                  OUR                  nOCUR                  U R                  ;   a'  U R                  UR                     S   R                  nOSnSn	U R                  (       a  U R                  R                  SX†U5      n	U	(       aD  [        R                   " UUUU	R"                  U	R$                  U	R&                  U	R(                  S9n
U
$ [        R                   " UUUUU5      n
U
$ )	a¯  
Create a WAMP error message from an exception.

:param request_type: The request type this WAMP error message is for.
:type request_type: int

:param request: The request ID this WAMP error message is for.
:type request: int

:param exc: The exception.
:type exc: Instance of :class:`Exception` or subclass thereof.

:param tb: Optional traceback. If present, it'll be included with the WAMP error message.
:type tb: list or None
NÚargsÚkwargsÚ	tracebackr   zwamp.error.runtime_errorF©ÚpayloadÚenc_algoÚenc_keyÚenc_serializer)r†   Úlistr�   rŽ   Ú
isinstancer   r   Útyperƒ   ÚstrÚ	__class__rI   Ú_urirX   Úencoder   ÚErrorr‘   r’   r“   r”   )r[   Úrequest_typeÚrequestÚexcÚtbr’   r�   rŽ   rƒ   Úencoded_payloadÚmsgs              r7   Ú_message_from_exceptionÚ#BaseSession._message_from_exceptionÅ   sO  € ð  ˆÜ�3˜×ÑÜ˜Ÿ™“>ˆDàˆÜ�3˜×!Ñ!Ø—Z‘ZˆFæÞØ&(�{Ò#à% rÐ*�ä�cœ9×5Ñ5×6Ñ6Ü!% c§i¡i£´CÓ!7�C—I’I¸S¿Y¹Y‰Eà�}‰} × 5Ñ 5Ó5Ø×-Ñ-¨c¯m©mÑ<¸QÑ?×DÑD‘à2�àˆØ××Ø"×1Ñ1×8Ñ8¸ÀÈVÓTˆOæÜ—-’- Ø 'Ø %Ø(7×(?Ñ(?Ø)8×)AÑ)AØ(7×(?Ñ(?Ø/>×/MÑ/MñOˆCð ˆ
ô —-’- Ø 'Ø %Ø $Ø &ó	(ˆCð ˆ
r9   c                 ón  • SnSnUR                   (       Ga-  U R                  (       d@  SnU R                  R                  U5        [	        [        R
                  XAR                   S9nOÜ [        UR                  UR                   UR                  UR                  5      nU R                  R                  SUR                  U5      u  oal        Ul        UR                  U:w  aa  U R                  R                  SUUR                  S9  [	        [        R                  SR                  XaR                  5      UR                   S9nU(       a  U$ UR                  U R$                  ;   a•  U R$                  UR                     n UR                  (       aA  UR                  (       a  U" UR                  0 UR                  D6nO<U" S0 UR                  D6nO)UR                  (       a  U" UR                  6 nOU" 5       n U(       dä  UR                  (       av  UR                  (       a9  [,        R                  " UR                  /UR                  Q70 UR                  D6nO‰[,        R                  " UR                  40 UR                  D6nO]UR                  (       a,  [,        R                  " UR                  /UR                  Q76 nO [,        R                  " UR                  5      n[/        US5      (       a  UR                   Ul         [/        US5      (       a  UR0                  Ul        [/        US5      (       a  UR2                  Ul        [/        US5      (       a  UR4                  Ul        [/        US5      (       a  UR6                  Ul        U$ ! [          aW  nU R                  R                  SUS	9  [	        [        R"                  S
R                  U5      UR                   S9n SnAGN«SnAff = f! [          a3     U R'                  [(        R*                  " 5       S5         GN.!     GN4= ff = f)z 
Create a user (or generic) exception from a WAMP error message.

:param msg: A WAMP error message.
:type msg: instance of :class:`autobahn.wamp.message.Error`
Nú5received encoded payload, but no payload codec active©r’   TzZURI within encrypted payload ('{decrypted_error}') does not match the envelope ('{error}'))Údecrypted_errorrƒ   úFURI within encrypted payload ('{}') does not match the envelope ('{}')ú.failed to decrypt application payload 1: {err}©Úerrú+failed to decrypt application payload 1: {}zWhile re-constructing exceptionr’   ÚcalleeÚcallee_authidÚcallee_authroleÚforward_for© )r’   rX   rF   Úwarnr   ÚENC_NO_PAYLOAD_CODECr    r‘   r”   r“   Údecoderƒ   r�   rŽ   ÚENC_TRUSTED_URI_MISMATCHÚformatÚ	ExceptionÚENC_DECRYPT_ERRORrL   ÚonUserErrorrD   Úcreate_failurer   r†   r®   r¯   r°   r±   )	r[   r¢   rŸ   Úenc_errÚlog_msgr¡   r¨   ÚeÚeclss	            r7   Ú_exception_from_messageÚ#BaseSession._exception_from_message   s<  € ð ˆØˆà�<�<ˆ<à×&×&ØQ�Ø—‘—‘˜gÔ&Ü*Ô+;×+PÑ+PÐRY×dpÑdpÑq‘ðÜ&4°S·[±[À#Ç,Á,ÐPS×PbÑPbÐdg×doÑdoÓ&p�OØ<@×<OÑ<O×<VÑ<VÐW[Ð]`×]fÑ]fÐhwÓ<xÑ9�O¤X¨s¬zð —y‘y OÓ3ØŸ™Ÿ™ØxØ,;Ø"%§)¡)ð &ñ ô
 #3Ü,×EÑEØd×kÑkÐl{÷  ~Gñ  ~Gó  HØ%(§\¡\ñ#˜ö ØˆNà�9‰9˜×)Ñ)Ó)Ø×$Ñ$ S§Y¡YÑ/ˆDðð —:—:Ø—x—xÙ" C§H¡HÐ;°·
±
Ñ;™á"Ñ0 S§Z¡ZÑ0™à—x—xÙ" C§H¡H˜o™á"›f™ö à�z�zØ—8—8Ü#×4Ò4°S·Y±YÐXÀÇÁÒXÈSÏZÉZÑX‘Cä#×4Ò4°S·Y±YÑMÀ#Ç*Á*ÑM‘Cà—8—8Ü#×4Ò4°S·Y±YÐJÀÇÁÒJ‘Cä#×4Ò4°S·Y±YÓ?�Cô �3˜
×#Ñ#ØŸ<™<ˆCŒLÜ�3˜×!Ñ!ØŸ™ˆCŒJÜ�3˜×(Ñ(Ø #× 1Ñ 1ˆCÔÜ�3Ð)×*Ñ*Ø"%×"5Ñ"5ˆCÔÜ�3˜×&Ñ&Ø!Ÿo™oˆCŒOàˆ
øôS !ó Ø—H‘H—M‘MÐ"RÐXY�MÑZÜ.Ü(×:Ñ:ØE×LÑLÈQÓOØ!$§¡ñ–GûðûôN ó ðØ×$Ñ$Ü×,Ò,Ó.Ø9÷øðÛúðúsP   Á)A*N Æ>O7 Ç O7 Ç O7 Ç4O7 Î
O4ÎAO/Ï/O4Ï7
P4Ð%P*Ð*P0Ð,P4Ð0P4)rT   rP   rR   rS   rQ   rI   rX   rN   rY   rW   rO   rV   rM   rL   rF   rH   r2   ©NN)!Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rF   r\   Úpropertyr   r   r`   r   Úboolrd   rg   r   rj   r˜   rm   Úintrp   rt   rx   r{   r~   r   r   r�   r¸   rŠ   r£   rÀ   Ú__static_attributes__r²   r9   r7   r;   r;   ?   s˜  † ñð
 €Cò1-ðf ð˜8 JÑ/ó ó ðð ðH˜dó Hó ðHð ðD˜Tó Dó ðDð ð% ¨.Ñ!9ó %ó ð%ð ð�x ‘}ó ó ðð ð ˜H S™Mó  ó ð ð ð˜ ™ó ó ðð ð˜( 3™-ó ó ðð ð ˜H S™Mó  ó ð ð ð"˜h s™mó "ó ð"ð ð˜8 D¨¨c¨¡NÑ3ó ó ðñC 	ð C°(¸3±-õ Cô"9õvbr9   r;   c                   óz  • \ rS rSrSrS8S\\R                     4S jjr\	S\R                  4S j5       r
\S\\   4S	 j5       r\S\\   4S
 j5       r\S\4S j5       r\S 5       r\       S9S\S\\\      S\\   S\\   S\\\\4      S\\   S\\   S\\   4S jj5       r\S 5       r\S 5       rS rS rS\4S jr\S 5       r\S\ S\4S j5       r!\S \"4S! j5       r#\S"\$RJ                  S\\   4S# j5       r&S$ r'\S \(4S% j5       r)\S:S&\\   S'\\   4S( jj5       r*\S) 5       r+\S*\S\\,   4S+ j5       r-\  S;S,\.\/\4   S*\\   S-\\0   S.\\   S\.\1\\1   4   4
S/ jj5       r2S0 r3\S1\S\.\\44   4S2 j5       r5\   S<S3\.\/\4   S1\\   S-\\6   S4\\   S.\\   S\.\7\\7   4   4S5 jj5       r8S6 r9S7r:g)=ÚApplicationSessionie  z×
WAMP application session for applications (networking framework agnostic parts).

Implements (partially):

    * :class:`autobahn.wamp.interfaces.ITransportHandler`
    * :class:`autobahn.wamp.interfaces.ISession`
NÚconfigc                 ó  • [         R                  U 5        U=(       d    [        R                  " SS9U l        SU l        SU l        SU l        0 U l        0 U l	        0 U l
        0 U l        0 U l        0 U l        0 U l        0 U l        0 U l        g)z6
Implements :func:`autobahn.wamp.interfaces.ISession`
Úrealm1©rm   FN)r;   r\   r   ÚComponentConfigÚ_configÚ_goodbye_sentÚ_transport_is_closingrX   Ú_publish_reqsÚ_subscribe_reqsÚ_unsubscribe_reqsÚ
_call_reqsÚ_register_reqsÚ_unregister_reqsÚ_subscriptionsÚ_registrationsÚ_invocations©r[   rÎ   s     r7   r\   ÚApplicationSession.__init__p  s•   € ô 	×Ñ˜TÔ"Ø.4×.]¼×8MÒ8MÐT\Ñ8]ˆŒð $)ˆÔØ+0ˆÔ"ð 8<ˆÔð  ˆÔØ!ˆÔØ!#ˆÔØˆŒØ ˆÔØ "ˆÔð !ˆÔð !ˆÔð ˆÕr9   r^   c                 ó   • U R                   $ r2   )rÓ   rZ   s    r7   rÎ   ÚApplicationSession.config�  rv   r9   Úpayload_codecc                 ó   • Xl         g)zH
Implements :func:`autobahn.wamp.interfaces.ISession.set_payload_codec`
N©rX   )r[   rã   s     r7   Úset_payload_codecÚ$ApplicationSession.set_payload_codec“  s
   € ð
 ,Õr9   c                 ó   • U R                   $ )zH
Implements :func:`autobahn.wamp.interfaces.ISession.get_payload_codec`
rå   rZ   s    r7   Úget_payload_codecÚ$ApplicationSession.get_payload_codecš  s   € ð
 ×"Ñ"Ð"r9   r`   c                 óü   ^ • T R                   R                  ST R                  US9  UT l        T R	                  ST U5      n[
        R                  " USU 4S j5        [
        R                  " UU 4S jU 4S j5        g)zF
Implements :func:`autobahn.wamp.interfaces.ITransportHandler.onOpen`
z{func}(transport={transport}))Úfuncr`   rA   Nc                 ó(   >• TR                  U S5      $ )NzWhile notifying 'connect'©Ú_swallow_error©Úfailr[   s    €r7   Ú<lambda>Ú+ApplicationSession.onOpen.<locals>.<lambda>¯  ó   ø€ ˜×,Ñ,¨TÐ3NÔOr9   c                 óD   >• [         R                  " TR                  5      $ r2   )rD   Ú	as_futureÚ	onConnect©Ú_r[   s    €r7   rò   ró   ³  s   ø€ ”e—o’o d§n¡nÔ5r9   c                 ó(   >• TR                  U S5      $ )NzWhile calling 'onConnect'rî   rð   s    €r7   rò   ró   ´  rô   r9   )rF   ÚdebugÚonOpenrM   ÚfirerD   Úadd_callbacks)r[   r`   Úds   `  r7   rü   ÚApplicationSession.onOpen¡  sm   ø€ ð
 	�‰�‰Ð6¸T¿[¹[ÐT]ˆÑ^ð $ˆŒð �I‰I�i  yÓ1ˆÜ×ÒØˆtÜOô	
ô 	×ÒØÜ5ÜOõ	
r9   c                 ó–   • U R                   R                  SU R                  S9  U R                  U R                  R
                  5        g)z@
Implements :func:`autobahn.wamp.interfaces.ISession.onConnect`
z{func}())rì   N)rF   rû   r÷   r>   rÎ   rm   rZ   s    r7   r÷   ÚApplicationSession.onConnect·  s2   € ð
 	�‰�‰�z¨¯©ˆÑ7Ø�	‰	�$—+‘+×#Ñ#Õ$r9   rm   Úauthmethodsrt   rx   r�   Ú	resumableÚresume_sessionÚresume_tokenc	                 ó  • U R                   (       a  [        S5      eU R                  (       d  [        S5      eXl        SU l        [
        R                  " UU R                  UUUUUUUS9	n	U R                  R                  U	5        g)z;
Implements :func:`autobahn.wamp.interfaces.ISession.join`
zsession already joinedzno transport set for sessionF)	rm   Úrolesr  rt   rx   r�   r  r  r  N)	rO   r¸   rM   rN   rÔ   r   ÚHellorV   Úsend)
r[   rm   r  rt   rx   r�   r  r  r  r¢   s
             r7   r>   ÚApplicationSession.join¿  s�   € ð ××ÜÐ4Ó5Ð5à��ÜÐ:Ó;Ð;ð Œð #ˆÔô �mŠm %Ø"&×"5Ñ"5Ø(3Ø#)Ø%-Ø&/Ø&/Ø+9Ø)5ñ7ˆð 	�‰×Ñ˜SÕ!r9   c                 ó\   • U R                   (       a  U R                   R                  5         gg)zA
Implements :func:`autobahn.wamp.interfaces.ISession.disconnect`
N)rM   ÚcloserZ   s    r7   rB   ÚApplicationSession.disconnectå  s    € ð
 �?�?Ø�O‰O×!Ñ!Õ#ð r9   c                 ó�  • [        US5      (       aq  [        UR                  [        R                  5      (       aH  U R
                  R                  SU R                  R                  UR                  R                  5       S9  gU R
                  R                  SU R                  R                  U[        R                  " U5      S9  g)zB
Implements :func:`autobahn.wamp.interfaces.ISession.onUserError`
Úvaluez{klass}.onUserError(): "{msg}")Úklassr¢   z*{klass}.onUserError(): "{msg}"
{traceback})r  r¢   r�   N)r†   r–   r  r   r   rF   r³   r™   rÃ   Úerror_messagerƒ   rD   Úfailure_format_traceback©r[   rñ   r¢   s      r7   rº   ÚApplicationSession.onUserErrorí  s”   € ô
 �4˜×!Ñ!¤j°·±¼Y×=WÑ=W×&XÑ&XØ�H‰H�M‰MÐ:Ø $§¡× 7Ñ 7Ø"Ÿj™j×6Ñ6Ó8ð ò :ð �H‰H�N‰NØ=Ø—n‘n×-Ñ-ØÜ×8Ò8¸Ó>ð	 ò r9   c                 óÊ   •  U R                  X5        g! [         aD    U R                  R                  S[        R
                  " [        R                  " 5       5      S9   gf = f)aX  
This is an internal generic error-handler for errors encountered
when calling down to on*() handlers that can reasonably be
expected to be overridden in user code.

Note that it *cancels* the error, so use with care!

Specifically, this should *never* be added to the errback
chain for a Deferred/coroutine that will make it out to user
code.
zInternal error: {tb})r    N)rº   r¸   rF   rƒ   rD   r  r»   r  s      r7   rï   Ú!ApplicationSession._swallow_errorþ  s_   € ð	Ø×Ñ˜TÔ'ð øô ó 	Ø�H‰H�N‰NØ&Ü×1Ò1´%×2FÒ2FÓ2HÓIð ò ð ð	ús   ‚ ”AA"Á!A"c                 ó   ^• U4S jnU$ )z‡
Does parameter type checking and validation against type hints
and appropriately tells the user code and the caller (through router).
c               Ÿ   óø  >#   • [         R                  " T/U Q70 UD6n/ nTR                  R                  5        Hò  u  pEXB;   d  M  [	        USS 5      [
        :X  a|  UR                   Vs/ s H  ofR                  PM     nn[        X$   UR                  5      (       d8  UR                  SR                  XG[        X$   5      R                  5      5        M›  M�  [        X$   U5      (       a  M²  UR                  SR                  XER                  [        X$   5      R                  5      5        Mô     U(       a  [        SR                  U5      5      e[        R                  " T/U Q70 UD6I S h  v•N $ s  snf  N	7f)NÚ
__origin__z'{}' expected types={} got={}z'{}' expected type={} got={}z, )r3   ÚgetcallargsÚ__annotations__ÚitemsÚgetattrr   Ú__args__rÃ   r–   Úappendr·   r—   r   r>   rD   rö   )	r�   rŽ   Ú	argumentsÚresponseÚnameÚkindÚargÚexpected_typesrì   s	           €r7   Ú_type_checkÚ2ApplicationSession.type_check.<locals>._type_check  s=  øé € ä×+Ò+¨DÐB°4ÒB¸6ÑBˆIØˆHØ"×2Ñ2×8Ñ8Ö:‘
�ØÕ$ô ˜t \°4Ó8¼EÓAØBFÇ-Â-Ó)PÂ-¸3¯,¬,Á-˜Ð)PÜ)¨)©/¸4¿=¹=×IÑIØ$ŸO™OØ ?× FÑ FÀtÜGKÈIÉOÓG\×GeÑGeó!göhñ  Jô (¨	©¸×>Ó>Ø Ÿ™Ø:×AÑAÀ$ÏÉÔW[Ð\eÑ\kÓWl×WuÑWuÓvöxñ ;ö Ü$ T§Y¡Y¨xÓ%8Ó9Ð9ÜŸš¨Ð?°Ò?¸Ñ?×?Ð?ùò *Qñ @ùs+   ƒ?E:Á#E:Á)E3Á>A*E:Ã,BE:Å.E8Å/
E:r²   )r[   rì   r'  s    ` r7   Ú
type_checkÚApplicationSession.type_check  s   ø€ õ
	@ð* Ðr9   r¢   c                 ó„4  ^ ^^"^#^$^%• T R                   Gc¨  [        T[        R                  5      (       aF  [        R
                  " T R                  T5      nUU 4S jnU 4S jn[        R                  " X#U5        g[        T[        R                  5      (       aq  [        R                  " TR                  TR                  5      m"[        R
                  " T R                  T"5      nU"U 4S jnU 4S jn[        R                  " X#U5        g[        T[        R                  5      (       ap  [        R                  " TR                  TR                  5      n[        R
                  " T R                   U5      nU 4S jnU 4S jn[        R                  " X#U5        g[#        SR%                  TR&                  5      5      e[        T[        R(                  5      (       aº  T R*                  (       d0  [        R(                  " 5       nT R,                  R/                  U5        ST l         [        R                  " TR                  TR                  5      m"[        R
                  " T R                  T"5      nU"U 4S	 jnUU 4S
 jn[        R                  " X#U5        g[        T[        R0                  5      (       Ga¦  TR2                  T R4                  ;   Gag  T R4                  TR2                      GHH  nUR6                  m#TR8                  =(       d    UR8                  n	TR:                  (       a»  T R<                  (       d&  T R>                  RA                  STR:                  S9    g [C        TRD                  TR:                  TRF                  TRH                  5      n
T R<                  RK                  SXš5      u  nTl&        Tl'        X›:w  a  T R>                  RA                  S5          g T#RR                  (       a  T#RR                  4O	[U        5       nTRL                  (       a  U[U        TRL                  5      -   nTRN                  (       a  TRN                  O	[W        5       nT#RX                  (       az  [        RZ                  " UTR\                  TR^                  TR`                  TRb                  U	TRd                  TRf                  TR:                  TRh                  S9
UT#RX                  '   UU 4S jnU#UU 4S jn[        R
                  " T#Rj                  /UQ70 UD6n[        R                  " UXõ5        GMK     g[#        SR%                  TR2                  5      5      e[        T[        Rl                  5      (       aî  TRn                  T Rp                  ;   a°  T Rp                  Rs                  TRn                  5      n[        Rt                  " URv                  5      (       a&  [        Rx                  " URv                  5      (       a  g[{        TR\                  UR|                  S9n[        R~                  " URv                  U5        g[#        SR%                  TRn                  5      5      e[        T[        R€                  5      (       GaX  TRn                  T R‚                  ;   Ga  T R‚                  Rs                  TRn                  5      n[        Rt                  " URv                  5      (       a&  [        Rx                  " URv                  5      (       a  gTR2                  T R4                  ;  a  / T R4                  TR2                  '   […        TR2                  UR8                  T UR6                  5      nT R4                  TR2                     R‡                  U5        [        R~                  " URv                  U5        g[#        SR%                  TRn                  5      5      e[        T[        Rˆ                  5      (       Ga(  TRn                  T RŠ                  ;   aê  T RŠ                  Rs                  TRn                  5      n[        Rt                  " URv                  5      (       a&  [        Rx                  " URv                  5      (       a  gURŒ                  T R4                  ;   a>  T R4                  URŒ                      H
  nSUlG        M     T R4                  URŒ                  	 [        R~                  " URv                  S5        g[#        SR%                  TRn                  5      5      e[        T[        R�                  5      (       Ga  TRn                  T R’                  ;   GaÌ  T R’                  TRn                     nUR”                  m$SnTR:                  (       aö  T R<                  (       d8  SnT R>                  RA                  U5        [—        [–        R˜                  U5      nO­ [C        TRD                  TR:                  TRF                  TRH                  5      n
T R<                  RK                  ST$U
5      u  nTl&        Tl'        T$U:w  aE  T R>                  RA                  SUT$S9  [—        [–        Rš                  SR%                  UT$5      5      nTRž                  (       Gak  UR                   R¢                  (       GaN  U(       a  T R¥                  US"5        gTRN                  =(       d
    [W        5       nTRL                  =(       d
    [U        5       nU 4S# jnUR                   (       aœ  UR                   R¦                  (       a�  [        R
                  " UR                   R¢                  [        R¨                  " TRL                  TRª                  TR¬                  TR®                  TRh                  S$.TRN                  D65      nO.[        R
                  " UR                   R¢                  /UQ70 UD6n[        R                  " USU5        ggT R’                  TRn                  	 URv                  n[        Rt                  " U5      (       a  [        Rx                  " U5      (       a  gU(       a  [        R°                  " UU5        gTRN                  (       d,  UR                   (       aê  UR                   R¦                  (       aÏ  TRN                  =(       d    0 nTRL                  (       aN  [        R¨                  " TRL                  TRª                  TR¬                  TR®                  TRh                  S$.UD6nOC[        R¨                  " S<TRª                  TR¬                  TR®                  TRh                  S$.UD6n[        R~                  " UU5        gTRL                  (       as  [³        TRL                  5      S%:”  a5  [        R¨                  " TRL                  6 n[        R~                  " UU5        g[        R~                  " UTRL                  S   5        g[        R~                  " US5        g[#        S&R%                  TRn                  5      5      e[        T[        R´                  5      (       Ga—  TRn                  T R¶                  ;   a$  [#        S'R%                  TRn                  5      5      eTR¸                  T Rº                  ;  a$  [#        S(R%                  TR¸                  5      5      eT Rº                  TR¸                     m%T%R¼                  nTR”                  =(       d    T%R”                  m$SnTR:                  (       aö  T R<                  (       d8  S)nT R>                  RA                  U5        [—        [–        R˜                  U5      nO­ [C        TRD                  TR:                  TRF                  TRH                  5      n
T R<                  RK                  ST$U
5      u  nTl&        Tl'        T$U:w  aE  T R>                  RA                  S*UT$S9  [—        [–        Rš                  S+R%                  UT$5      5      nU(       aQ  T R¿                  [        R´                  RÀ                  TRn                  U5      nT R,                  R/                  U5        gURR                  b  URR                  4nO
[U        5       nTRL                  (       a  U[U        TRL                  5      -   nTRN                  (       a  TRN                  O	[W        5       nURX                  (       av  TRÂ                  (       a	  UU$U 4S. jnOSn[        RÄ                  " T%UTRÆ                  TRÈ                  TRÊ                  T$TRd                  TR:                  S/9UURX                  '   [        R
                  " URj                  /UQ70 UD6nUU$U%U 4S0 jnUU%U 4S1 jn[Í        TRn                  U5      T R¶                  TRn                  '   [        R                  " UX45        g[        T[        RÎ                  5      (       ay  TRn                  T R¶                  ;  a%  T R>                  RÑ                  S2TRn                  S39  gT R¶                  TRn                     n [        RÒ                  " U Rv                  5        g[        T[        RÔ                  5      (       GaU  TRn                  T RÖ                  ;   Ga  T RÖ                  Rs                  TRn                  5      n[        Rt                  " URv                  5      (       a&  [        Rx                  " URv                  5      (       a  gTR¸                  T Rº                  ;  aF  [Ù        T TR¸                  UR”                  UR¼                  5      m%T%T Rº                  TR¸                  '   O$[#        S4R%                  TR¸                  5      5      e[        R~                  " URv                  T%5        g[#        S5R%                  TRn                  5      5      e[        T[        RÚ                  5      (       Gax  TRn                  S:X  aJ   T Rº                  TR¸                     n!T R>                  RÑ                  S7U!R”                  TR¸                  S89  gTRn                  T RÞ                  ;   aà  T RÞ                  Rs                  TRn                  5      n[        Rt                  " URv                  5      (       a&  [        Rx                  " URv                  5      (       a  gURà                  T Rº                  ;   a5  ST Rº                  URà                     lG        T Rº                  URà                  	 [        R~                  " URv                  5        g[#        S9R%                  TRn                  5      5      e[        T[        Râ                  5      (       Ga)  SnTRä                  [        Ræ                  RÀ                  :X  aK  TRn                  T R’                  ;   a1  T R’                  Rs                  TRn                  5      Rv                  nGO;TRä                  [        Rè                  RÀ                  :X  aK  TRn                  T Rp                  ;   a1  T Rp                  Rs                  TRn                  5      Rv                  nGOÈTRä                  [        Rê                  RÀ                  :X  aK  TRn                  T R‚                  ;   a1  T R‚                  Rs                  TRn                  5      Rv                  nGOUTRä                  [        Rì                  RÀ                  :X  aJ  TRn                  T RŠ                  ;   a0  T RŠ                  Rs                  TRn                  5      Rv                  nOãTRä                  [        Rî                  RÀ                  :X  aJ  TRn                  T RÖ                  ;   a0  T RÖ                  Rs                  TRn                  5      Rv                  nOqTRä                  [        Rð                  RÀ                  :X  aI  TRn                  T RÞ                  ;   a/  T RÞ                  Rs                  TRn                  5      Rv                  nU(       aC  [        Rx                  " U5      (       d'  [        R°                  " UT Ró                  T5      5        gg[#        S:R%                  TRä                  TRn                  5      5      e[#        S;R%                  TR&                  5      5      e! [P         a0  nT R>                  RA                  SUTR:                  S9   SnA  gSnAff = f! [P         aN  nT R>                  RA                  SUS 9  [—        [–        Rœ                  S!R%                  U5      5      n SnAGNSnAff = f! [P         aN  nT R>                  RA                  S,US 9  [—        [–        Rœ                  S-R%                  U5      5      n SnAG	NËSnAff = f! [Ü         a%    [#        S6R%                  TR¸                  5      5      ef = f)=zI
Implements :func:`autobahn.wamp.interfaces.ITransportHandler.onMessage`
Nc                 ój  >• U b\  TR                   R                  SU S9  [        R                  " SSR	                  U 5      5      nTR
                  R                  U5        g TR                  (       a  TR                  Tl        TR                  Tl
        TR                  Tl        TR                  Tl        TR                  Tl        TR"                  Tl        TR&                  Tl        TR*                  Tl        [/        TR                  TR                  TR                  TR                  TR                   TR$                  TR&                  TR
                  R0                  R2                  TR
                  R4                  SSS S9Tl        TR9                  STTR6                  5      n[:        R<                  " US U4S j5        [:        R<                  " UU4S	 jS 5        [:        R<                  " US U4S
 j5        [:        R<                  " UU4S jS 5        [:        R<                  " US U4S j5        g )Nz"Session denied by onWelcome: {res})Úresúwamp.error.cannot_authenticateú{0}F)rm   Úsessionrt   rx   r{   r~   r�   Ú
serializerr`   Úresumedr  r  r>   c                 ó(   >• TR                  U S5      $ )NzWhile notifying 'join'rî   ©r¾   r[   s    €r7   rò   Ú?ApplicationSession.onMessage.<locals>.success.<locals>.<lambda>n  s   ø€  $×"5Ñ"5°aÐ9QÔ"Rr9   c                 óZ   >• [         R                  " TR                  TR                  5      $ r2   )rD   rö   ÚonJoinrW   rø   s    €r7   rò   r5  s  s   ø€ ¤%§/¢/°$·+±+¸t×?TÑ?TÔ"Ur9   c                 ó(   >• TR                  U S5      $ )NzWhile firing onJoinrî   r4  s    €r7   rò   r5  y  s   ø€  $×"5Ñ"5°aÐ9NÔ"Or9   c                 ó(   >• TR                  ST5      $ )Nr@   ©rý   rø   s    €r7   rò   r5  ~  s   ø€  $§)¡)¨G°TÔ":r9   c                 ó(   >• TR                  U S5      $ )NzWhile notifying 'ready'rî   r4  s    €r7   rò   r5  „  s   ø€  $×"5Ñ"5°aÐ9RÔ"Sr9   )rF   rû   r   ÚAbortr·   rM   r
  rm   rN   r0  rO   rt   rP   rx   rQ   r{   rR   r~   rS   r�   rT   r  Ú_router_rolesr   Ú_serializerÚSERIALIZER_IDÚtransport_detailsrW   rý   rD   rþ   )r-  Úreplyrÿ   r¢   r[   s      €€r7   ÚsuccessÚ-ApplicationSession.onMessage.<locals>.successA  s·  ø€ Ø‘ØŸ™Ÿ™Ð'KÐQT˜ÑUÜ '§¢Ø<¸e¿l¹lÈ3Ó>Oó!˜ð Ÿ™×,Ñ,¨UÔ3Øà—y—yØ&)§i¡i˜œØ'*§{¡{�DÔ$Ø#&§:¡:�D”LØ%(§\¡\�D”NØ'*§~¡~�DÔ$Ø),×)9Ñ)9�DÔ&Ø&)§m¡m�D”OØ),¯©�DÔ&ä,:Ø"Ÿk™kØ $× 0Ñ 0Ø#Ÿ|™|Ø!%§¡Ø#'×#3Ñ#3Ø%)×%7Ñ%7Ø"%§-¡-Ø#'§?¡?×#>Ñ#>×#LÑ#LØ"&§/¡/×"CÑ"Cà %Ø"'Ø%)ñ-�DÔ)ð* Ÿ	™	 &¨$°×0EÑ0EÓF�Aô ×'Ò'Ø˜4ÜRôô
 ×'Ò'ØÜUØôô ×'Ò'Ø˜4ÜOôô
 ×'Ò'ØÜ:Øôô ×'Ò'Ø˜4ÜSõr9   c                 óŒ   >• [         R                  " SS5      nTR                  R                  U5        TR	                  U S5      $ )Nr.  zError calling onWelcome handlerzWhile firing onWelcome)r   r<  rM   r
  rï   )r¾   rA  r[   s     €r7   rƒ   Ú+ApplicationSession.onMessage.<locals>.error‡  s?   ø€ Ü#ŸMšMØ8Ð:[ó�Eð —O‘O×(Ñ(¨Ô/Ø×.Ñ.¨qÐ2JÓKÐKr9   c                 óv   >^ • TR                  STT5      nU 4S jnU4S jn[        R                  " XU5        U$ )Nr?   c                 ó   >• T$ r2   r²   )rù   r%  s    €r7   Ú
return_argÚAApplicationSession.onMessage.<locals>.success.<locals>.return_arg˜  s   ø€ Ø"˜
r9   c                 ó(   >• TR                  U S5      $ )NzWhile firing 'leave' eventrî   r4  s    €r7   Ú_errorÚ=ApplicationSession.onMessage.<locals>.success.<locals>._error›  s   ø€ Ø#×2Ñ2°1Ð6RÓSÐSr9   )rý   rD   rþ   )r%  rÿ   rH  rK  Údetailsr[   s   `   €€r7   rB  rC  ”  s5   ù€ àŸ	™	 '¨4°Ó9�Aõ#õTä×'Ò'¨°vÔ>Ø�Hr9   c                 ó(   >• TR                  U S5      $ ©NzWhile firing onLeaverî   r4  s    €r7   rK  Ú,ApplicationSession.onMessage.<locals>._error   s   ø€ Ø×.Ñ.¨qÐ2HÓIÐIr9   c                 ó8  >• U c  [        S5      e[        U 5      [        :X  a  U R                  S5      n [        U 5      [        :w  a#  [        SR                  [        U 5      5      5      e[        R                  " U 5      nTR                  R                  U5        g )Nz4onChallenge user callback did not return a signatureÚutf8z"signature must be unicode (was {}))
r¸   r—   Úbytesrµ   r˜   r·   r   ÚAuthenticaterM   r
  )Ú	signaturerA  r[   s     €r7   rB  rC  ©  s}   ø€ Ø Ñ(Ü'Ð(^Ó_Ð_Ü˜I“¬%Ó/Ø$-×$4Ñ$4°VÓ$<˜	Ü˜I“¬#Ó-Ü'Ð(L×(SÑ(SÔTXÐYbÓTcÓ(dÓeÐeÜ#×0Ò0°Ó;�EØ—O‘O×(Ñ(¨Õ/r9   c                 ó¤  >^• TR                  U S5        [        R                  " SSR                  U R                  5      5      nTR
                  R                  U5        [        R                  " UR                  UR                  5      m[        R                  " TR                  T5      nUU4S jnU4S jn[        R                  " X#U5        U$ )NzAuthentication failedr.  r/  c                 ó.   >• TR                  STT5        U $ ©Nr?   r:  ©r%  rM  r[   s    €€r7   rB  Ú<ApplicationSession.onMessage.<locals>.error.<locals>.success»  s   ø€ àŸ	™	 '¨4°Ô9Ø"˜
r9   c                 ó(   >• TR                  U S5      $ rO  rî   r4  s    €r7   rK  Ú;ApplicationSession.onMessage.<locals>.error.<locals>._errorÀ  s   ø€ Ø#×2Ñ2°1Ð6LÓMÐMr9   )rº   r   r<  r·   r  rM   r
  r   r   ÚreasonrD   rö   ÚonLeaverþ   )r¬   rA  rÿ   rB  rK  rM  r[   s        @€r7   rƒ   rE  ³  s—   ù€ Ø×$Ñ$ SÐ*AÔBÜ#ŸMšMÐ*JÈEÏLÉLÐY\×YbÑYbÓLcÓd�EØ—O‘O×(Ñ(¨Ô/ä#×0Ò0°·±¸u¿}¹}ÓM�GÜŸš¨¯©°gÓ>�Aö#õ
Nä×'Ò'¨°FÔ;ð �Hr9   z8Received {0} message, and session is not yet establishedc                 ó.   >• TR                  STT5        U $ rX  r:  rY  s    €€r7   rB  rC  Ú  s   ø€ à—I‘I˜g t¨WÔ5Ø�Jr9   c                 ór   >• SR                  TR                  TR                  5      nTR                  X5      $ )Nz7While firing onLeave for reason "{0}" and message "{1}")r·   r]  r   rï   )r¾   Úerrmsgr¢   r[   s     €€r7   rK  rP  ß  s4   ø€ ØV×]Ñ]Ð^a×^hÑ^hÐjm×juÑjuÓv�FØ×.Ñ.¨qÓ9Ð9r9   zjreceived encoded payload with enc_algo={enc_algo}, but no payload codec active - ignoring encoded payload!r§   Fz-envelope topic URI does not match encoded onezNfailed to decode application payload encoded with enc_algo={enc_algo}: {error})rƒ   r’   )Ú	publisherÚpublisher_authidÚpublisher_authroleÚtopicÚtransaction_hashÚretainedr’   r±   c                 ó8  >• TR                   (       aˆ  TR                  S   R                  (       ai  TR                  (       a<  [        R
                  " TR                  5      nTR                  R                  U5        g TR                  R                  S5        g g g )NÚbrokerz}successfully processed event with acknowledged delivery, but could not send ACK, since the transport was lost in the meantime)
Úx_acknowledged_deliveryr=  Úx_acknowledged_event_deliveryrM   r   ÚEventReceivedÚpublicationr
  rF   r³   )rù   r"  r¢   r[   s     €€r7   Ú_successÚ.ApplicationSession.onMessage.<locals>._success  sp   ø€ ð  #×:×:¸t×?QÑ?QÐRZÑ?[×?y×?yØ#'§?§?Ü/6×/DÒ/DÀSÇ_Á_Ó/U HØ$(§O¡O×$8Ñ$8¸Õ$Bà$(§H¡H§M¡Mð  3rõ  %sð @zÐ:r9   c                 ór   >• SR                  TR                  TR                  5      nTR                  X5      $ )Nz&While firing {0} subscribed under {1}.)r·   ÚfnÚsubscriptionrï   )r¾   ra  Úhandlerr¢   r[   s     €€€r7   rK  rP    s3   ø€ Ø%M×%TÑ%TØ '§
¡
¨C×,<Ñ,<ó&>˜Fà#'×#6Ñ#6°qÓ#AÐAr9   z5EVENT received for non-subscribed subscription ID {0}©Úwas_encryptedz1PUBLISHED received for non-pending request ID {0}z2SUBSCRIBED received for non-pending request ID {0}r   z4UNSUBSCRIBED received for non-pending request ID {0}r¦   TzXURI within encrypted payload ('{decrypted_proc}') does not match the envelope ('{proc}'))Údecrypted_procÚprocr©   rª   r«   r­   zLcould not deliver progressive call result, because payload decryption failedc                 ó*   >• TR                  U S5        g )NzWhile firing on_progress)rº   rð   s    €r7   rK  rP  �  s   ø€ Ø$(×$4Ñ$4°TÐ;UÕ$Vr9   )r®   r¯   r°   r±   é   z.RESULT received for non-pending request ID {0}z6INVOCATION received for request ID {0} already invokedz:INVOCATION received for non-registered registration ID {0}z<received encrypted INVOCATION payload, but no keyring activezcURI within encrypted INVOCATION payload ('{decrypted_proc}') does not match the envelope ('{proc}')zQURI within encrypted INVOCATION payload ('{}') does not match the envelope ('{}')z+failed to decrypt INVOCATION payload: {err}z(failed to decrypt INVOCATION payload: {}c            	      ó(  >• U b  [        U 5      [        [        4;   d   eUb  [        U5      [        :X  d   eS nTR                  (       a9  TR
                  (       d  [        S5      eTR
                  R                  STX5      nU(       aL  [        R                  " TR                  UR                  SUR                  UR                  UR                  S9nO![        R                  " TR                  U USS9nTR                  R                  U5        g )Nú7trying to send encrypted payload, but no keyring activeFT)r‘   Úprogressr’   r“   r”   )r�   rŽ   r|  )r—   r•   ÚtupleÚdictr’   rX   r¸   r›   r   ÚYieldrž   r‘   r“   r”   rM   r
  )r�   rŽ   r¡   Úprogress_msgr¢   rw  r[   s       €€€r7   r|  Ú.ApplicationSession.onMessage.<locals>.progress  sç   ø€ Ø/3©|¼tÀD»zÌdÔTYÈ]Ó?ZÐ([Ð/ZØ/5©~ÄÀfÃÔQUÓAUÐ(VÐ/Uà:>¨Ø+.¯<¯<Ø37×3F×3FÜ6?Ð@yÓ6zÐ0zØ>B×>QÑ>Q×>XÑ>XÐY^Ð`dÐfjÓ>s¨Oæ+:Ü;B¿=º=ÈÏÉØQ`×QhÑQhØRVØRa×RjÑRjØQ`×QhÑQhØXg×XvÑXvñ<x©Lô <C¿=º=ÈÏÉØNRØPVØRVñ<X¨Lð
 )-¯©×(<Ñ(<¸\Õ(Jr9   )r|  ÚcallerÚcaller_authidÚcaller_authroleÚ	procedurerf  r’   c                 ó€  >• T	R                   TR                  	 S nTR                  (       a¡  T	R                  (       d  SnT	R                  R                  U5        Or [        U [        R                  5      (       a3  T	R                  R                  STU R                  U R                  5      nOT	R                  R                  STU /5      n U(       aá  [        U [        R                  5      (       aw  [        R                  " TR                  UR                  UR                  UR                   UR"                  U R$                  U R&                  U R(                  U R*                  S9	nOë[        R                  " TR                  UR                  UR                  UR                   UR"                  S9nO [        U [        R                  5      (       aa  [        R                  " TR                  U R                  U R                  U R$                  U R&                  U R(                  U R*                  S9nO [        R                  " TR                  U /S9nT	R,                  c@  T	R                  R/                  S	R1                  TR2                  TR                  5      5        g  T	R,                  R5                  U5        g ! [         a%  nT	R                  R                  SUS9   S nAGNS nAff = f! [6         a�  n[        R8                  " [        R:                  R<                  TR                  [>        R@                  S
R1                  URB                  URD                  TR2                  U5      /S9nT	R,                  R5                  U5         S nAg S nAf[F         a�  n[        R8                  " [        R:                  R<                  TR                  [>        RH                  SR1                  URB                  URD                  TR2                  U5      /S9nT	R,                  R5                  U5         S nAg S nAff = f)Nr{  Fz,failed to encrypt application payload: {err}r«   )r‘   r’   r“   r”   r®   r¯   r°   r±   r�   )r�   rŽ   r®   r¯   r°   r±   ©r�   zCSkipping result of "{}", request {} because transport disconnected.zasuccess return value (args={}, kwargs={}) from invoked procedure "{}" could not be serialized: {}zfsuccess return value (args={}, kwargs={}) from invoked procedure "{}" exceeds transport size limit: {})%rÞ   rž   r’   rX   rF   r³   r–   r   r"   r›   ÚresultsÚ	kwresultsr¸   r   r  r‘   r“   r”   r®   r¯   r°   r±   rM   rû   r·   r…  r
  r   rœ   Ú
InvocationÚMESSAGE_TYPEr   rJ   r�   rŽ   r$   rK   )
r-  r¡   r½   r¾   rA  Úerror_replyr¢   rw  Úregistrationr[   s
         €€€€r7   rB  rC  8  sü  ø€ Ø$(×$5Ñ$5°c·k±kÐ$Bà26 Ø#&§<§<Ø+/×+>×+>Ø2k¨Ø(,¯©¯©°gÕ(>ð	).Ü/9¸#¼u×?OÑ?O×/PÑ/PØBF×BUÑBU×B\ÑB\Ð]bÐdhÐjm×juÑjuÐwz÷  xEñ  xEó  CF±àBF×BUÑBU×B\ÑB\Ð]bÐdhÐknÐjoÓBp±ö $3Ü'1°#´u×7GÑ7G×'HÑ'HÜ07·²¸c¿k¹kØFU×F]ÑF]ØGV×G_ÑG_ØFU×F]ÑF]ØM\×MkÑMkØEHÇZÁZØLO×L]ÑL]ØNQ×NaÑNaØJMÏ/É/ñ1[©ô 18·²¸c¿k¹kØFU×F]ÑF]ØGV×G_ÑG_ØFU×F]ÑF]ØM\×MkÑMkñ	1m©ô (2°#´u×7GÑ7G×'HÑ'HÜ07·²¸c¿k¹kØCFÇ;Á;ØEHÇ]Á]ØEHÇZÁZØLO×L]ÑL]ØNQ×NaÑNaØJMÏ/É/ñ1[©ô 18·²¸c¿k¹kØDGÀ5ñ1J¨ð $(§?¡?Ñ#:Ø$(§H¡H§N¡NÐ3x×3Ñ3ð  AM÷  AWñ  AWð  Y\÷  Ydñ  Ydó  4eô  %fØ$*ð!FØ$(§O¡O×$8Ñ$8¸Õ$?øôS 09ó ).Ø,0¯H©H¯M©MØ0^Ø45ð -:÷ -.ûð).ûôT (:ó !Fä29·-²-Ä×@RÑ@R×@_Ñ@_Ðad×alÑalÔn~÷  oOñ  oOð Gj÷  Gqñ  Gqð  rw÷  r|ñ  r|ð rw÷  r~ñ  r~ð r~÷  rHñ  rHð rsóGtð Fuñ3v Kð
 %)§O¡O×$8Ñ$8¸×$EÑ$EûÜ';ó !Fô 3:·-²-Ä×@RÑ@R×@_Ñ@_Ðad×alÑalÔn~÷  oUñ  oUð Go÷  Gvñ  Gvð  w|÷  wAñ  wAð w|÷  wCñ  wCð wC÷  wMñ  wMð wxóGyð Fzñ3{ Kð
 %)§O¡O×$8Ñ$8¸×$EÑ$Eûð!FúsE   ÁAJ? Â.J? Ê#K1 Ê?
K.Ë	K)Ë)K.Ë1
P=Ë;BNÎP=Î BP8Ð8P=c           
      óø  >• TR                   TR                  	 [        R                  " U 5      n TR	                  X5        S nTR
                  (       a  [        R                  " U 5      nTR                  [        R                  R                  TR                  U R                  UTR                  5      n TR                  R                  U5        g !    N•= f! [         a‡  n[        R                   " [        R                  R                  TR                  ["        R$                  SR'                  TR(                  U5      /S9nTR                  R                  U5         S nAg S nAf[*         a‡  n[        R                   " [        R                  R                  TR                  ["        R,                  SR'                  TR(                  U5      /S9nTR                  R                  U5         S nAg S nAff = f)NzLerror return value from invoked procedure "{0}" could not be serialized: {1}r‡  zSsuccess return value from invoked procedure "{0}" exceeds transport size limit: {1})rÞ   rž   rD   Úfailure_messagerº   rH   r  r£   r   rŠ  r‹  r  r’   rM   r
  r   rœ   r   rJ   r·   r…  r$   rK   )r¬   ra  Úformatted_tbrA  r¾   r¢   r�  r[   s        €€€r7   rƒ   rE  ‚  sø  ø€ Ø$(×$5Ñ$5°c·k±kÐ$Bä).×)>Ò)>¸sÓ)C ð!)Ø$(×$4Ñ$4°SÔ$Að 04 Ø#'×#5×#5Ü38×3QÒ3QÐRUÓ3V Là(,×(DÑ(DÜ$+×$6Ñ$6×$CÑ$CØ$'§K¡KØ$'§I¡IØ$0Ø$'§L¡Ló)" ð!@Ø$(§O¡O×$8Ñ$8¸Ô$?ð (,øð=!)Ù$(ûô  (:ó !@ä,3¯MªM¼'×:LÑ:L×:YÑ:YÐ[^×[fÑ[fÔhx÷  iIñ  iIð AO÷  AVñ  AVð  Wc÷  Wmñ  Wmð  opó  Aqð  @rñ-s Eà$(§O¡O×$8Ñ$8¸×$?Ð$?ð (,ûô (<ó !@ô -4¯MªM¼'×:LÑ:L×:YÑ:YÐ[^×[fÑ[fÔhx÷  iOñ  iOð AV÷  A]ñ  A]ð  ^j÷  ^tñ  ^tð  vwó  Axð  @yñ-z Eà$(§O¡O×$8Ñ$8¸×$?Ð$?ð (,ûð!@ús1   °C Â6C ÃCÃ
G9Ã#A=E%Å%G9Å2A=G4Ç4G9z7INTERRUPT received for non-pending invocation {request})rž   z<REGISTERED received for already existing registration ID {0}z2REGISTERED received for non-pending request ID {0}z:UNREGISTERED received for non-existant registration ID {0}z3Router unregistered procedure '{proc}' with ID {id})rw  Úidz4UNREGISTERED received for non-pending request ID {0}z^WampAppSession.onMessage(): ERROR received for non-pending request_type {0} and request ID {1}zUnexpected message {0}r²   )zrO   r–   r   ÚWelcomerD   rö   Ú	onWelcomerþ   r<  r   r   r]  r^  r   ÚmethodÚextraÚonChallenger   r·   r™   ÚGoodbyerÔ   rM   r
  ÚEventrr  rÜ   rs  re  r’   rX   rF   r³   r    r‘   r”   r“   rµ   r�   rŽ   r¸   Úobjr}  r~  Údetails_argÚEventDetailsrm  rb  rc  rd  rf  rg  r±   rq  Ú	Publishedrž   rÖ   ÚpopÚ	is_futureÚon_replyÚ	is_calledr%   ru  ÚresolveÚ
Subscribedr×   r&   r   ÚUnsubscribedrØ   Úsubscription_idÚactiveÚResultrÙ   r…  r   r´   r¶   r¹   r|  ÚoptionsÚon_progressrº   rM  r"   r®   r¯   r°   ÚrejectÚlenrŠ  rÞ   r�  rÝ   Úendpointr£   r‹  Úreceive_progressÚCallDetailsr‚  rƒ  r„  r.   Ú	Interruptrû   ÚcancelÚ
RegisteredrÚ   r(   ÚUnregisteredÚKeyErrorrÛ   Úregistration_idrœ   r�   ÚCallÚPublishÚ	SubscribeÚUnsubscribeÚRegisterÚ
UnregisterrÀ   )&r[   r¢   rÿ   rB  rƒ   rK  Ú	challengerA  rr  re  r¡   Údecoded_topicr¾   Úinvoke_argsÚinvoke_kwargsrn  ÚfutureÚpublish_requestrm  rž   Úcall_requestr¼   r½   rv  Úkwr�   Úprog_drŸ  rŽ   r-  r«  r|  ÚinvokedÚregrM  rs  rw  r�  s&   ``                                @@@@r7   Ú	onMessageÚApplicationSession.onMessage/  s{  ý€ ð
 ×ÑÒ#ô ˜#œwŸ™×/Ñ/ô —O’O D§N¡N°CÓ8�öDõLLô ×#Ò# A°Õ6ä˜C¤§¡×/Ñ/ä×,Ò,¨S¯Z©Z¸¿¹ÓE�Ü—O’O D§L¡L°'Ó:�ö
õJä×#Ò# A°Õ7ä˜C¤×!2Ñ!2×3Ñ3ä!ŸOšO¨C¯J©J¸¿	¹	ÓB�	Ü—O’O D×$4Ñ$4°iÓ@�õ0õô( ×#Ò# A°Õ6ô $Ð$^×$eÑ$eÐfi×fsÑfsÓ$tÓuÐuô ˜#œwŸ™×/Ñ/Ø×)×)ä#ŸOšOÓ-�EØ—O‘O×(Ñ(¨Ô/à#'�Ô ô  ×,Ò,¨S¯Z©Z¸¿¹ÓE�Ü—O’O D§L¡L°'Ó:�öö
:ô ×#Ò# A°Õ7ä˜C¤§¡×/Ò/à×#Ñ# t×':Ñ':Ô:ð )-×(;Ñ(;¸C×<LÑ<LÕ(M˜à".×"6Ñ"6˜Ø #§	¡	× ?¨\×-?Ñ-?˜àŸ<Ÿ<à#'×#6×#6Ø $§¡§¡ð  /[ð  fi÷  frñ  fr ñ  !sÙ &ð	!/Ü6DÀSÇ[Á[ÐRU×R^ÑR^Ð`c×`rÑ`rÐtw×tÑtó  7A OØJN×J]ÑJ]×JdÑJdÐejÐlqó  KDÑ$G M°3´8¸S¼Zð
 (-Ó'=Ø(,¯©¯©Ð6eÔ(fÙ(.ð (>ð 9@¿¿ w§{¡{¡nÌË˜ØŸ8Ÿ8Ø*5¼¸c¿h¹h»Ñ*G˜KØ69·j·j¨¯
ª
ÄdÃf˜à"×.×.ÜAF×ASÒASÐT`Ðbe×bqÑbqð  ~A÷  ~Kñ  ~Kð  ^a÷  ^rñ  ^rð  GJ÷  G]ñ  G]ð  ejð  }@÷  }Qñ  }Qð  \_÷  \hñ  \hð  sv÷  sñ  sð  MP÷  M\ñ  M\ñ  B]˜M¨'×*=Ñ*=Ñ>ös÷Bô
 "'§¢°·±Ð![¸kÒ![È]Ñ![˜Ü×+Ò+¨F°H×Eò_ )Nôd (Ð(_×(fÑ(fÐgj×gwÑgwÓ(xÓyÐyä˜C¤×!2Ñ!2×3Ñ3à—;‘; $×"4Ñ"4Ó4ð '+×&8Ñ&8×&<Ñ&<¸S¿[¹[Ó&I�Oä—’ ×'?Ñ'?×@Ñ@ÄUÇ_Â_ÐUd×UmÑUm×EnÑEnØô #.¨c¯o©oÈ_×MjÑMjÑ"k�Kô —M’M /×":Ñ":¸KÕHä'Ð([×(bÑ(bÐcf×cnÑcnÓ(oÓpÐpä˜C¤×!3Ñ!3×4Ò4à—;‘; $×"6Ñ"6Ô6ð #×2Ñ2×6Ñ6°s·{±{ÓC�Gä—’ w×'7Ñ'7×8Ñ8¼U¿_º_ÈW×M]ÑM]×=^Ñ=^Øð ×'Ñ'¨t×/BÑ/BÓBØ@B˜×+Ñ+¨C×,<Ñ,<Ñ=ä#/°×0@Ñ0@À'Ç-Á-ÐQUÐW^×WfÑWfÓ#g�Lð ×'Ñ'¨×(8Ñ(8Ñ9×@Ñ@ÀÔNô —M’M '×"2Ñ"2°LÕAä'Ð(\×(cÑ(cÐdg×doÑdoÓ(pÓqÐqä˜C¤×!5Ñ!5×6Ò6à—;‘; $×"8Ñ"8Ó8ð #×4Ñ4×8Ñ8¸¿¹ÓE�Gä—’ w×'7Ñ'7×8Ñ8¼U¿_º_ÈW×M]ÑM]×=^Ñ=^Øð ×.Ñ.°$×2EÑ2EÓEØ,0×,?Ñ,?À×@WÑ@WÔ,X˜LØ27˜LÖ/ñ -Yà ×/Ñ/°×0GÑ0GÐHô —M’M '×"2Ñ"2°AÕ6ä'Ð(^×(eÑ(eÐfi×fqÑfqÓ(rÓsÐsä˜C¤§¡×0Ò0à—;‘; $§/¡/Ô1à#'§?¡?°3·;±;Ñ#?�LØ'×1Ñ1�DØ"�Gà—|—|à#×2×2Ø&]˜GØ ŸH™HŸM™M¨'Ô2Ü&6Ô7G×7\Ñ7\Ð^eÓ&f™Gð&Ü2@ÀÇÁÈcÏlÉlÐ\_×\nÑ\nÐps×p{Ñp{Ó2| ØGK×GZÑGZ×GaÑGaÐbfÐhlÐn}ÓG~Ñ D °´¸#¼*ð $(¨>Ó#9Ø$(§H¡H§M¡Mð )CØ7EØ-1ð %2ñ %&ô
 /?Ü(8×(QÑ(QØ(p×(wÑ(wð  yGð  IMó  )Nó/& Gð
 —|—|�|ð (×/Ñ/×;×;Ð;Þ&Ø $× 0Ñ 0°ð  ;Iõ  !Jà%(§Z¡Z×%9´4³6 Ø'*§x¡x×':´5³7 õ!Wð $0×#7×#7¸L×<PÑ<P×<X×<XÜ-2¯_ª_¸\×=QÑ=Q×=]Ñ=]Ü=B×=MÒ=MÈsÏxÉxØUX×U_ÑU_Ø\_×\mÑ\mØ^a×^qÑ^qØZ]×ZiÑZiñ	>\ð
 QT×PZÑPZñ>\ó.]¡Fô .3¯_ª_¸\×=QÑ=Q×=]Ñ=]ð .CØ>Bò.Cà?Añ.C Fô !&× 3Ò 3°F¸DÀ&Õ Ið/ <ð: !ŸO™O¨C¯K©KÐ8ð $0×#8Ñ#8˜ä Ÿ?š?¨8×4Ñ4¼¿ºÈ×9RÑ9RØ"ö #Ü!ŸLšL¨°7Õ;à"ŸzŸz¨l×.B×.BÀ|×G[ÑG[×Gc×GcØ),¯©×)9°r Ø#&§8§8Ü*/×*:Ò*:¸C¿H¹HØBEÇ*Á*ØIL×IZÑIZØKN×K^ÑK^ØGJÇÁñ	+Eð
 >Dñ+E¡Cô +0×*:Ò*:ð +EÀ#Ç*Á*ØIL×IZÑIZØKN×K^ÑK^ØGJÇÁñ+Eð >Dñ	+E Cô
 !&§¢¨h¸Õ <à#&§8§8Ü'*¨3¯8©8£}°qÓ'8Ü.3×.>Ò.>ÀÇÁÐ.I¨Ü(-¯ª°hÀÕ(Dä(-¯ª°hÀÇÁÈÁÕ(Lä$)§M¢M°(¸DÕ$Aä'Ð(X×(_Ñ(_Ð`c×`kÑ`kÓ(lÓmÐmä˜C¤×!3Ñ!3×4Ò4à—;‘; $×"3Ñ"3Ó3ä'Ð(`×(gÑ(gÐhk×hsÑhsÓ(tÓuÐuð ×'Ñ'¨t×/BÑ/BÓBä+Ð,h×,oÑ,oÐps÷  qAñ  qAó  -Bó  Cð  Cð (,×':Ñ':¸3×;KÑ;KÑ'L˜Ø#/×#8Ñ#8˜Ø"Ÿ}™}×F°×0FÑ0F˜Ø"&˜àŸ<Ÿ<Ø#'×#6×#6Ø*h Ø $§¡§¡¨gÔ 6Ü*:Ô;K×;`Ñ;`ÐbiÓ*j¡ð!*Ü6DÀSÇ[Á[ÐRU×R^ÑR^Ð`c×`rÑ`rÐtw×tÑtó  7A OØKO×K^ÑK^×KeÑKeÐfkÐmqð  tCó  LDÑ$H N°C´H¸c¼jð (,¨~Ó'=Ø(,¯©¯©ð-Uà;IØ15ð	 )6ñ )*ô 3CÜ,<×,UÑ,UØ,÷  -Gñ  -Gð  HVð  X\ó  -]ó3*¨ö
 #ð %)×$@Ñ$@Ä×ASÑAS×A`ÑA`Ðbe×bmÑbmÐovÓ$w˜EØ ŸO™O×0Ñ0°Õ7ð  (Ÿ|™|Ñ7Ø/7¯|©|¨o¡ä.3«g à"ŸxŸxØ.9¼EÀ#Ç(Á(»OÑ.K à:=¿*¿*¨C¯JªJÌ$Ë&˜Mà'×3×3à#&×#7×#7÷%Kð %Kð2 04 HäFK×FWÒFWÐXdØaiØ_b×_iÑ_iØfi×fwÑfwØhk×h{Ñh{ØbfØil×i}Ñi}Øad×amÑamñGo ¨h×.BÑ.BÑ Cô (-§¢°x·{±{Ð'bÀ[Ò'bÐTaÑ'b˜H÷HFð HF÷T%,ôN >OÈsÏ{É{Ð\dÓ=e˜D×-Ñ-¨c¯k©kÑ:ä!×/Ò/°¸'ÕIä˜C¤×!2Ñ!2×3Ñ3à—;‘; d×&7Ñ&7Ó7à—H‘H—N‘NÐ#\Ðfi×fqÑfq�NÒrà"×/Ñ/°·±Ñ<�Gô —L’L ×!1Ñ!1Õ2ä˜C¤×!3Ñ!3×4Ò4à—;‘; $×"5Ñ"5Ô5ð #×1Ñ1×5Ñ5°c·k±kÓB�Gä—’ w×'7Ñ'7×8Ñ8¼U¿_º_ÈW×M]ÑM]×=^Ñ=^Øð ×'Ñ'¨t×/BÑ/BÓBÜ'3°D¸#×:JÑ:JÈG×L]ÑL]Ð_f×_oÑ_oÓ'p˜Ø@L˜×+Ñ+¨C×,<Ñ,<Ò=ä+Ð,j×,qÑ,qÐru÷  sCñ  sCó  -Dó  Eð  Eä—M’M '×"2Ñ"2°LÕAä'Ð(\×(cÑ(cÐdg×doÑdoÓ(pÓqÐqä˜C¤×!5Ñ!5×6Ò6à—;‘; !Ó#ðØ"×1Ñ1°#×2BÑ2BÑC˜ð —H‘H—N‘NØMØ Ÿ]™]Ø×+Ñ+ð #ò ð
 —[‘[ D×$9Ñ$9Ó9ð #×3Ñ3×7Ñ7¸¿¹ÓD�Gä—’ w×'7Ñ'7×8Ñ8¼U¿_º_ÈW×M]ÑM]×=^Ñ=^Øð ×.Ñ.°$×2EÑ2EÓEØNS˜×+Ñ+¨G×,CÑ,CÑDÔKØ ×/Ñ/°×0GÑ0GÐHô —M’M '×"2Ñ"2Õ3ä'Ð(^×(eÑ(eÐfi×fqÑfqÓ(rÓsÐsä˜C¤§¡×/Ò/ð  �ð ×#Ñ#¤w§|¡|×'@Ñ'@Ó@ÀSÇ[Á[ÐTX×TcÑTcÓEcØ#Ÿ™×2Ñ2°3·;±;Ó?×HÑH’Hð ×%Ñ%¬¯©×)EÑ)EÓEÈ#Ï+É+ÐY]×YkÑYkÓJkØ#×1Ñ1×5Ñ5°c·k±kÓB×KÑK’Hð ×%Ñ%¬×):Ñ):×)GÑ)GÓGÈCÏKÉKÐ[_×[oÑ[oÓLoØ#×3Ñ3×7Ñ7¸¿¹ÓD×MÑM’Hð ×%Ñ%¬×)<Ñ)<×)IÑ)IÓIÈcÏkÉkÐ]a×]sÑ]sÓNsØ#×5Ñ5×9Ñ9¸#¿+¹+ÓF×OÑO‘Hð ×%Ñ%¬×)9Ñ)9×)FÑ)FÓFÈ3Ï;É;ÐZ^×ZmÑZmÓKmØ#×2Ñ2×6Ñ6°s·{±{ÓC×LÑL‘Hð ×%Ñ%¬×);Ñ);×)HÑ)HÓHÈSÏ[É[Ð\`×\qÑ\qÓMqØ#×4Ñ4×8Ñ8¸¿¹ÓE×NÑN�HæÜ Ÿ?š?¨8×4Ñ4ÜŸš X¨t×/KÑ/KÈCÓ/PÕQð 5ô (ð  )I÷  )Pñ  )Pð  QT÷  Qañ  Qað  cf÷  cnñ  cnó  )oó  pð  pô $Ð$<×$CÑ$CÀCÇMÁMÓ$RÓSÐSøôA (1ó !+Ø$(§H¡H§M¡Mð  3Cð  KLð  WZ÷  Wcñ  Wc Mñ  %dÝ$*ûð!+ûôn $-ó "Ø $§¡§¡Ø$TØ()ð !.ñ !"ô +;Ü$4×$FÑ$FØ$Q×$XÑ$XÐYZÓ$[ó+"¦ûð"ûôp (1ó !&Ø$(§H¡H§M¡MØ(UØ,-ð %2ñ %&ô /?Ü(8×(JÑ(JØ(R×(YÑ(YÐZ[Ó(\ó/&¦Gûð!&ûô` $ó Ü+ð&ß&,¡f¨S×-=Ñ-=Ó&>óð ðúsr   Í"A Adç&A!Ae þA!Af5 ÁQ	Ah Ád
AeÁd'%AeÁeAeÁe
Af2Áe$AAf-Áf-Af2Áf5
AhÁf?AAhÁhAhÁh/Ah?c                 óæ  ^ ^^• ST l         T R                  (       a’  [        R                  " [        R                  R                  SR                  T R                  5      S9m[        R                  " T R                  T5      nUU 4S jnU 4S jn[        R                  " X#U5        ST l        [        R                  " T R                  5      nU U4S jnU 4S jn[        R                  " X#U5        g)zG
Implements :func:`autobahn.wamp.interfaces.ITransportHandler.onClose`
Nz=WAMP transport was lost without closing the session {} before©r]  r   c                 ó.   >• TR                  STT5        U $ rX  r:  rY  s    €€r7   rB  Ú+ApplicationSession.onClose.<locals>.success(  s   ø€ à—	‘	˜' 4¨Ô1Ø�
r9   c                 ó(   >• TR                  U S5      $ rO  rî   r4  s    €r7   rK  Ú*ApplicationSession.onClose.<locals>._error-  s   ø€ Ø×*Ñ*¨1Ð.DÓEÐEr9   c                 ó&   >• TR                  STTS9$ )NrB   )Ú	was_cleanr:  )r%  r[   ÚwasCleans    €€r7   rB  rÊ  5  s   ø€ à—9‘9˜\¨4¸8�9ÐDÐDr9   c                 ó(   >• TR                  U S5      $ )NzWhile firing onDisconnectrî   r4  s    €r7   rK  rÌ  9  s   ø€ Ø×&Ñ& qÐ*EÓFÐFr9   )rM   rO   r   r   ÚREASON_TRANSPORT_LOSTr·   rD   rö   r^  rþ   ÚonDisconnect)r[   rÏ  rÿ   rB  rK  rM  s   ``   @r7   ÚonCloseÚApplicationSession.onClose  s²   ú€ ð
 ˆŒà××ä×(Ò(Ü×)Ñ)×?Ñ?ØW×^Ñ^Ð_c×_oÑ_oÓpñˆGô —’ §¡¨gÓ6ˆAöõ
Fä×Ò ¨FÔ3à#ˆDÔä�OŠO˜D×-Ñ-Ó.ˆö	Eõ	Gä×Ò˜A¨Õ/r9   rº  c                 ó   • [        S5      e)zB
Implements :func:`autobahn.wamp.interfaces.ISession.onChallenge`
zBreceived authentication challenge, but onChallenge not implemented)r‡   )r[   rº  s     r7   r–  ÚApplicationSession.onChallenge=  s   € ô Ð_Ó`Ð`r9   rM  c                 ó   • g)z=
Implements :meth:`autobahn.wamp.interfaces.ISession.onJoin`
Nr²   ©r[   rM  s     r7   r7  ÚApplicationSession.onJoinH  ó   � r9   Úwelcomec                 ó   • g)z@
Implements :meth:`autobahn.wamp.interfaces.ISession.onWelcome`
Nr²   )r[   rÛ  s     r7   r“  ÚApplicationSession.onWelcomeN  rÚ  r9   c                 óê  ^• [         R                  " S5      nU R                  U R                  U R                  U R
                  U R                  U R                  /n/ nU H2  nUR                  UR                  5       5        UR                  5         M4     U(       a#  U R                  R                  S[        U5      S9  U H­  mU R                  R                  STR                  TR                   TR"                  R$                  S9  [         R&                  " TR                  5      (       d!  [         R(                  " TR                  U5        [         R*                  " UU4S jU4S j5        M¯     U$ )z2
Errback any still outstanding requests with exc.
Nz'Cancelling {count} outstanding requests)Úcountzncleaning up outstanding {request_type} request {request_id}, firing errback on user handler {request_on_reply})Úrequest_on_replyÚ
request_idr�   c                 ó   >• TR                   $ r2   ©rŸ  ©rù   rž   s    €r7   rò   ÚBApplicationSession._errback_outstanding_requests.<locals>.<lambda>w  s   ø€ ¨W×-=Ò-=r9   c                 ó   >• TR                   $ r2   rã  rä  s    €r7   rò   rå  w  s   ø€ È×IYÒIYr9   )rD   Úcreate_future_successrÖ   r×   rØ   rÙ   rÚ   rÛ   ÚextendÚvaluesÚclearrF   Úinforª  rû   rŸ  rá  r™   rÃ   r   r©  rþ   )r[   rŸ   rÿ   Úall_requestsÚoutstandingÚrequestsrž   s         @r7   Ú_errback_outstanding_requestsÚ0ApplicationSession._errback_outstanding_requestsT  s5  ø€ ô ×'Ò'¨Ó-ˆà×ÑØ× Ñ Ø×"Ñ"Ø�O‰OØ×ÑØ×!Ñ!ð
ˆð ˆÛ$ˆHØ×Ñ˜xŸ™Ó0Ô1Ø�N‰NÖñ %ö Ø�H‰H�M‰MØ9Ü˜+Ó&ð ñ ó #ˆGØ�H‰H�N‰NðDà!(×!1Ñ!1Ø"×-Ñ-Ø$×.Ñ.×7Ñ7ð ñ ô —?’? 7×#3Ñ#3×4Ñ4Ü—’˜W×-Ñ-¨sÔ3ô ×Ò Ô#=Ô?YÖZñ #ð ˆr9   c                 ó>  ^ • UR                   [        R                  :w  a/  T R                  R	                  SUR                   UR
                  S9  [        UR                   UR
                  5      nT R                  U5      nU 4S jn[        R                  " X4U5        U$ )z>
Implements :meth:`autobahn.wamp.interfaces.ISession.onLeave`
z/session closed with reason {reason} [{message}]rÈ  c                 óJ   >• TR                   (       a  TR                  5         g g r2   )rM   rB   rø   s    €r7   rB   Ú.ApplicationSession.onLeave.<locals>.disconnect†  s   ø€ Ø��Ø—‘Õ!ð r9   )
r]  r   ÚREASON_DEFAULTrF   r³   r   r   rï  rD   rþ   )r[   rM  rŸ   rÿ   rB   s   `    r7   r^  ÚApplicationSession.onLeavez  s~   ø€ ð
 �>‰>œ\×8Ñ8Ó8Ø�H‰H�M‰MÐKÐT[×TbÑTbÐls×l{Ñl{ˆMÑ|ô ˜wŸ~™~¨w¯©Ó?ˆØ×.Ñ.¨sÓ3ˆõ	"ô 	×Ò˜A¨:Ô6Øˆr9   r]  r   c                 ó   • U R                   (       d  U R                  R                  S5        gU R                  (       dI  U(       d  Sn[        R
                  R                  XS9nU R                  R                  U5        SU l        OU R                  R                  S5        U R                  SL =(       d    U R                  R                  nU$ )z<
Implements :meth:`autobahn.wamp.interfaces.ISession.leave`
z6session is not joined on a realm - no session to leaveNzwamp.close.normalrÈ  TzBsession was already requested to leave - not sending GOODBYE again)
rO   rF   r³   rÔ   r   r   r—  rM   r
  Ú	is_closed)r[   r]  r   r¢   r÷  s        r7   r?   ÚApplicationSession.leaveŒ  s—   € ð
 ××Ø�H‰H�M‰MÐRÔSØà×!×!ÞØ,�Ü—,‘,×&Ñ&¨fÐ&ÐFˆCØ�O‰O× Ñ  Ô%Ø!%ˆDÕà�H‰H�M‰MÐ^Ô_à—O‘O tÐ+×H¨t¯©×/HÑ/Hˆ	àÐr9   c                 óP   • [         R                  " 5       nU R                  U5        g)zC
Implements :meth:`autobahn.wamp.interfaces.ISession.onDisconnect`
N)r   ÚTransportLostrï  )r[   rŸ   s     r7   rÒ  ÚApplicationSession.onDisconnect¢  s    € ô ×%Ò%Ó'ˆØ×*Ñ*¨3Õ/r9   re  c           	      óx  • [        U5      [        :X  d   eUb  [        U5      [        [        4;   d   eUb  [        U5      [        :X  d   e[
        R                  " USR                  U R                  R                  5      SSSS9  UR                  SS5      nU(       a*  [        U[        R                  5      (       d  [        S5      eU R                  (       d  [         R"                  " 5       eU R$                  R'                  5       nSnU R(                  (       a  U R(                  R+                  SXU5      nU(       a�  U(       aT  [
        R,                  " UU4UR.                  UR0                  UR2                  UR4                  S.UR7                  5       D6nOŠ[
        R,                  " UUUR.                  UR0                  UR2                  UR4                  S9nOHU(       a*  [
        R,                  " UU4UUS	.UR7                  5       D6nO[
        R,                  " UUUUS	9nU(       ax  UR8                  b  UR8                  Ul        UR:                  b  UR:                  Ul        UR<                  b  UR<                  Ul        UR>                  b  UR>                  Ul        U(       a@  UR@                  (       a/  [B        RD                  " 5       n[G        XXUSLS
9U RH                  U'   OSn U R                  RK                  U5        U$ ! [         a#  n	XPRH                  ;   a  U RH                  U	 U	eSn	A	ff = f)z@
Implements :meth:`autobahn.wamp.interfaces.IPublisher.publish`
Nz{}.publish()F©r   ÚstrictÚallow_empty_componentsÚ
allow_noner§  z,options must be of type a.w.t.PublishOptionsTr�   ©r�   rŽ   rt  )&r—   r˜   r•   r}  r~  r   Úcheck_or_raise_urir·   r™   rÃ   r�  r–   r   ÚPublishOptionsr¸   rM   r   rú  rY   ÚnextrX   r›   rµ  r‘   r’   r“   r”   Úmessage_attrÚcorrelation_idÚcorrelation_uriÚcorrelation_is_anchorÚcorrelation_is_lastÚacknowledgerD   Úcreate_futurer*   rÖ   r
  )
r[   re  r�   rŽ   r§  rá  r¡   r¢   rŸ  r¾   s
             r7   ÚpublishÚApplicationSession.publish°  sÜ  € ô
 �E‹{œcÓ!Ð"Ð!Ø‰|œt D›z¬d´E¨]Ó:Ð;Ð:Ø‰~¤ f£´Ó!5Ð6Ð5ä×"Ò" 5Ø+9×+@Ñ+@ÀÇÁ×AXÑAXÓ+YØ*/Ø:?Ø.3ò		5ð —*‘*˜Y¨Ó-ˆÞœ: g¬u×/CÑ/C×DÑDÜÐJÓKÐKà��Ü×)Ò)Ó+Ð+à×)Ñ)×.Ñ.Ó0ˆ
àˆØ××Ø"×1Ñ1×8Ñ8¸¸uÈFÓSˆOæÞÜ—o’o jØ&+ð@à.=×.EÑ.EØ/>×/GÑ/GØ.=×.EÑ.EØ5D×5SÑ5Sñ@ð )0×(<Ñ(<Ó(>ñ@‘ô —o’o jØ&+Ø.=×.EÑ.EØ/>×/GÑ/GØ.=×.EÑ.EØ5D×5SÑ5SñU‘ö Ü—o’o jØ&+ð@à+/Ø-3ñ@ð )0×(<Ñ(<Ó(>ñ	@‘ô —o’o jØ&+Ø+/Ø-3ñ5�ö
 Ø×%Ñ%Ñ1Ø%,×%;Ñ%;�Ô"Ø×&Ñ&Ñ2Ø&-×&=Ñ&=�Ô#Ø×,Ñ,Ñ8Ø,3×,IÑ,I�Ô)Ø×*Ñ*Ñ6Ø*1×*EÑ*E�Ô'æ�w×*×*ä×*Ò*Ó,ˆHÜ-;¸JÐapÐx|Ða|Ñ-~ˆD×Ñ˜zÒ*àˆHð	ð �O‰O× Ñ  Ô%ð ˆøô ó 	Ø×/Ñ/Ó/Ø×&Ñ& zÐ2ØˆGûð	ús   Ë/L Ì
L9ÌL4Ì4L9rs  r§  Úcheck_typesc                 ó¨  ^ • [        U5      (       a  Uc  [        US5      (       a  U(       a   eUb  [        U5      [        :X  d   eUb!  [	        U[
        R                  5      (       d   eT R                  (       d  [        R                  " 5       eU 4S jn[        U5      (       a
  U" SXX45      $ / n[        R                  " UR                  [        5       Hã  nUS   nSUR                  ;   d  M  UR                  S    H¶  n	U	R                  5       (       d  M  U	R!                  5       n
U	R"                  =(       d    UnUcQ  U	R$                  [         R&                  R(                  :X  a  [
        R                  " SS9nO[
        R                  " SS9nUR+                  U" XX«U	R,                  5      5        M¸     Må     [.        R0                  " US	S
9$ )zC
Implements :meth:`autobahn.wamp.interfaces.ISubscriber.subscribe`
Nr™   c                 ó6  >• [         R                  " USR                  T	R                  R                  5      SSSS9  T	R
                  R                  5       n[        R                  " 5       nU(       a  T	R                  U5      n[        XU(       a  UR                  OS 5      n[        XRXg5      T	R                  U'   U(       a&  [         R                  " XR40 UR                  5       D6nO[         R                  " XR5      nU(       ax  UR                   b  UR                   Ul        UR"                  b  UR"                  Ul        UR$                  b  UR$                  Ul        UR&                  b  UR&                  Ul        T	R(                  R+                  U5        U$ )Nz{}.subscribe()FTrý  )r   r  r·   r™   rÃ   rY   r  rD   r  r)  r'   rš  r+   r×   r¶  r  r  r  r  r	  rM   r
  )
r™  rq  re  r§  r  rá  rŸ  Úhandler_objr¢   r[   s
            €r7   Ú
_subscribeÚ0ApplicationSession.subscribe.<locals>._subscribe  sJ  ø€ Ü×&Ò& uØ/?×/FÑ/FÀtÇ~Á~×G^ÑG^Ó/_Ø.3Ø>BØ27ò	9ð ×-Ñ-×2Ñ2Ó4ˆJÜ×*Ò*Ó,ˆHÞØ—_‘_ RÓ(�Ü! "Æ'¨7×+>Ò+>ÈtÓTˆKÜ/?À
ÐS[Ó/iˆD× Ñ  Ñ,æÜ×'Ò'¨
ÑT¸W×=QÑ=QÓ=SÑT‘ä×'Ò'¨
Ó:�æØ×)Ñ)Ñ5Ø)0×)?Ñ)?�CÔ&Ø×*Ñ*Ñ6Ø*1×*AÑ*A�CÔ'Ø×0Ñ0Ñ<Ø07×0MÑ0M�CÔ-Ø×.Ñ.Ñ:Ø.5×.IÑ.I�CÔ+à�O‰O× Ñ  Ô%ØˆOr9   ry  r…   Úwildcard)ÚmatchÚexactT©Úconsume_exceptions)Úcallabler†   r—   r˜   r–   r   r!   rM   r   rú  r3   Ú
getmembersr™   r8   Ú__dict__Ú
is_handlerr   r§  Úuri_typerˆ   ÚURI_TYPE_WILDCARDr   Ú_check_typesrD   Úgather)r[   rs  re  r§  r  r  Ú
on_repliesÚkrw  Úpatrš   Úsuboptss   `           r7   Ú	subscribeÚApplicationSession.subscribe  su  ø€ ô ˜×!Ñ! eÑ&7¼WÀWÈk×=ZÑ=ZÖcnÐpÐoØ‰}¤ U£¬sÓ 2Ð3Ð2Ø‰¤*¨W´e×6LÑ6L×"MÑ"MÐNÐMà��Ü×)Ò)Ó+Ð+õ	ô@ �G×Ñá˜d G°GÓIÐIð
 ˆJÜ×'Ò'¨×(9Ñ(9Ô;PÖQ�Ø˜‘t�Ø $§-¡-Õ/Ø#Ÿ}™}¨[Ô9˜ØŸ>™>×+Ó+Ø#&§7¡7£9˜DØ&)§k¡k×&<°W˜GØ&™Ø#&§<¡<´3·;±;×3PÑ3PÓ#PÜ.3×.DÒ.DÈ:Ñ.V¡Gä.3×.DÒ.DÈ7Ñ.S GØ&×-Ñ-©j¸ÈÐWZ×WgÑWgÓ.hÖió  :ñ Rô —<’< 
¸tÑDÐDr9   c                 ó  • [        U[        5      (       d   eUR                  (       d   eUR                  U R                  ;   d   eXR                  UR                     ;   d   eU R
                  (       d  [        R                  " 5       eU R                  UR                     R                  U5        SUl        [        U R                  UR                     5      nUS:X  a�  U R                  R                  5       n[        R                  " 5       n[        X4UR                  5      U R                  U'   [         R"                  " X1R                  5      nU R
                  R%                  U5        U$ [        R&                  " U5      $ )zE
Called from :meth:`autobahn.wamp.protocol.Subscription.unsubscribe`
Fr   )r–   r&   r¥  r‘  rÜ   rM   r   rú  Úremoverª  rY   r  rD   r  r,   rØ   r   r·  r
  rç  )r[   rr  Úscountrá  rŸ  r¢   s         r7   Ú_unsubscribeÚApplicationSession._unsubscribeQ  s6  € ô ˜,¬×5Ñ5Ð6Ð5Ø×"×"Ð"Ð"Ø�‰ $×"5Ñ"5Ó5Ð6Ð5Ø×2Ñ2°<·?±?ÑCÓCÐDÐCà��Ü×)Ò)Ó+Ð+ð 	×Ñ˜LŸO™OÑ,×3Ñ3°LÔAØ#ˆÔô �T×(Ñ(¨¯©Ñ9Ó:ˆà�Q‹;à×-Ñ-×2Ñ2Ó4ˆJä×*Ò*Ó,ˆHÜ1CÀJÐZf×ZiÑZiÓ1jˆD×"Ñ" :Ñ.ä×%Ò% j·/±/ÓBˆCà�O‰O× Ñ  Ô%ØˆOô ×.Ò.¨vÓ6Ð6r9   r…  c           	      ó|  ^ ^	• [        U5      [        :X  d   eUb  [        U5      [        [        4;   d   eUb  [        U5      [        :X  d   e[
        R                  " USR                  T R                  R                  5      SSSS9  UR                  SS5      nU(       a*  [        U[        R                  5      (       d  [        S5      eT R                  (       d  [         R"                  " 5       eT R$                  R'                  5       m	SnT R(                  (       a   T R(                  R+                  SXU5      nU(       a�  U(       aT  [
        R0                  " T	U4UR2                  UR4                  UR6                  UR8                  S.UR;                  5       D6nOŠ[
        R0                  " T	UUR2                  UR4                  UR6                  UR8                  S9nOHU(       a*  [
        R0                  " T	U4UUS	.UR;                  5       D6nO[
        R0                  " T	UUUS	9nU(       ax  UR<                  b  UR<                  Ul        UR>                  b  UR>                  Ul        UR@                  b  UR@                  Ul         URB                  b  URB                  Ul!        U	U 4S
 jn[D        RF                  " US9n[I        T	XU5      T RJ                  T	'    T R                  RM                  U5        U$ !   T R,                  R/                  5         e = f!   T	T RJ                  ;   a  T RJ                  T		 e = f)aC  
Implements :meth:`autobahn.wamp.interfaces.ICaller.call`

.. note::

    Regarding type hints for ``*args`` and ``**kwargs``, doesn't work as we
    can receive any Python types as list items or dict values, and because
    of what is discussed here
    https://adamj.eu/tech/2021/05/11/python-type-hints-args-and-kwargs/
Nz	{}.call()Frý  r§  z)options must be of type a.w.t.CallOptionsTr�   r  c                 óh   >• [         R                  " T5      nTR                  R                  U5        g r2   )r   ÚCancelrM   r
  )rÿ   Ú
cancel_msgrá  r[   s     €€r7   Ú	cancellerÚ*ApplicationSession.call.<locals>.cancellerÁ  s#   ø€ Ü Ÿš¨
Ó3ˆJØ�O‰O× Ñ  Õ,r9   )r0  )'r—   r˜   r•   r}  r~  r   r  r·   r™   rÃ   r�  r–   r   ÚCallOptionsr¸   rM   r   rú  rY   r  rX   r›   rF   Úfailurer´  r‘   r’   r“   r”   r  r  r  r  r	  rD   r  r-   rÙ   r
  )
r[   r…  r�   rŽ   r§  r¡   r¢   r0  rŸ  rá  s
   `        @r7   ÚcallÚApplicationSession.calls  sÞ  ù€ ô �I‹¤#Ó%Ð&Ð%Ø‰|œt D›z¬d´E¨]Ó:Ð;Ð:Ø‰~¤ f£´Ó!5Ð6Ð5ä×"Ò" 9Ø+6×+=Ñ+=¸d¿n¹n×>UÑ>UÓ+VØ*/Ø:?Ø.3ò		5ð —*‘*˜Y¨Ó-ˆÞœ: g¬u×/@Ñ/@×AÑAÜÐGÓHÐHà��Ü×)Ò)Ó+Ð+à×)Ñ)×.Ñ.Ó0ˆ
àˆØ××ðØ"&×"5Ñ"5×"<Ñ"<¸TÀ9ÐTZÓ"[�ö
 ÞÜ—l’l :Ø#,ð=à+:×+BÑ+BØ,;×,DÑ,DØ+:×+BÑ+BØ2A×2PÑ2Pñ=ð &-×%9Ñ%9Ó%;ñ=‘ô —l’l :Ø#,Ø+:×+BÑ+BØ,;×,DÑ,DØ+:×+BÑ+BØ2A×2PÑ2PñR‘ö Ü—l’l :Ø#,ð=à(,Ø*0ñ=ð &-×%9Ñ%9Ó%;ñ	=‘ô —l’l :Ø#,Ø(,Ø*0ñ2�ö
 Ø×%Ñ%Ñ1Ø%,×%;Ñ%;�Ô"Ø×&Ñ&Ñ2Ø&-×&=Ñ&=�Ô#Ø×,Ñ,Ñ8Ø,3×,IÑ,I�Ô)Ø×*Ñ*Ñ6Ø*1×*EÑ*E�Ô'ö	-ô ×&Ò&°Ñ;ˆÜ&1°*¸iÐSZÓ&[ˆ�‰˜
Ñ#ð	ð �O‰O× Ñ  Ô%ð ˆøðIØ—‘× Ñ Ô"Øûðz	Ø˜TŸ_™_Ó,Ø—O‘O JÐ/Øús   Ä K; ËL Ë;LÌ L;r«  Úprefixc                 óŒ  ^ ^• [        U5      (       a  Uc  [        US5      (       a  U(       a   eT R                  (       d  [        R                  " 5       eUU 4S jn[        U5      (       a
  U" SXX55      $ / n[
        R                  " UR                  [        5       H�  nUS   n	SU	R                  ;   d  M  U	R                  S    Hb  n
U
R                  5       (       d  M  U
R                  5       nU
R                  =(       d    UnUR                  U" XX¼U
R                  5      5        Md     M‘     [        R                   " USS9$ )z>
Implements :meth:`autobahn.wamp.interfaces.ICallee.register`
Nr™   c                 ó`  >• [         R                  " USR                  T
R                  R                  5      SSSS9  T
R
                  R                  5       n[        R                  " 5       nU(       a  T
R                  U5      n[        XU(       a  UR                  OS 5      nT	b  SR                  T	U5      n[        XVX'5      T
R                  U'   U(       a&  [         R                  " XR40 UR                  5       D6nO[         R                  " XR5      nU(       ax  UR                   b  UR                   Ul        UR"                  b  UR"                  Ul        UR$                  b  UR$                  Ul        UR&                  b  UR&                  Ul        T
R(                  R+                  U5        U$ )Nz{}.register()FTrý  z{}{})r   r  r·   r™   rÃ   rY   r  rD   r  r)  r)   rš  r/   rÚ   r¸  r  r  r  r  r	  rM   r
  )r™  rq  r…  r§  r  rá  rŸ  Úendpoint_objr¢   r6  r[   s            €€r7   Ú	_registerÚ.ApplicationSession.register.<locals>._registerè  sa  ø€ Ü×&Ò& yØ/>×/EÑ/EÀdÇnÁn×F]ÑF]Ó/^Ø.3Ø>BØ27ò	9ð ×-Ñ-×2Ñ2Ó4ˆJÜ×*Ò*Ó,ˆHÞØ—_‘_ RÓ(�Ü# BÆG¨W×-@Ò-@ÐQUÓVˆLØÑ!Ø"ŸM™M¨&°)Ó<�	Ü.=¸jÐT]Ó.lˆD×Ñ 
Ñ+æÜ×&Ò& zÑWÀ×@TÑ@TÓ@VÑW‘ä×&Ò& zÓ=�æØ×)Ñ)Ñ5Ø)0×)?Ñ)?�CÔ&Ø×*Ñ*Ñ6Ø*1×*AÑ*A�CÔ'Ø×0Ñ0Ñ<Ø07×0MÑ0M�CÔ-Ø×.Ñ.Ñ:Ø.5×.IÑ.I�CÔ+à�O‰O× Ñ  Ô%ØˆOr9   ry  r…   Tr  )r  r†   rM   r   rú  r3   r  r™   r8   r  Úis_endpointr   r§  r   r  rD   r   )r[   r«  r…  r§  r6  r  r:  r!  r"  rw  r#  rš   Úregoptss   `   `        r7   ÚregisterÚApplicationSession.registerÜ  s
  ù€ ô ˜×"Ñ" yÑ'<Ä'È(ÐT_×B`ÑB`ÖitÐvÐuà��Ü×)Ò)Ó+Ð+ö 	ôD �H×Ññ ˜T 8¸ÓMÐMð
 ˆJÜ×'Ò'¨×(:Ñ(:Ô<QÖR�Ø˜‘t�Ø $§-¡-Õ/Ø#Ÿ}™}¨[Ô9˜ØŸ?™?×,Ó,Ø#&§7¡7£9˜DØ&)§k¡k×&<°W˜GØ&×-Ñ-©i¸ÈÐWZ×WgÑWgÓ.hÖió	  :ñ Sô —<’< 
¸tÑDÐDr9   c                 óø  • [        U[        5      (       d   eUR                  (       d   eUR                  U R                  ;   d   eU R
                  (       d  [        R                  " 5       eU R                  R                  5       n[        R                  " 5       n[        X#UR                  5      U R                  U'   [        R                  " X!R                  5      nU R
                  R!                  U5        U$ )zD
Called from :meth:`autobahn.wamp.protocol.Registration.unregister`
)r–   r(   r¥  r‘  rÝ   rM   r   rú  rY   r  rD   r  r0   rÛ   r   r¹  r
  )r[   r�  rá  rŸ  r¢   s        r7   Ú_unregisterÚApplicationSession._unregister  s¿   € ô ˜,¬×5Ñ5Ð6Ð5Ø×"×"Ð"Ð"Ø�‰ $×"5Ñ"5Ó5Ð6Ð5à��Ü×)Ò)Ó+Ð+à×)Ñ)×.Ñ.Ó0ˆ
ä×&Ò&Ó(ˆÜ,=¸jÐT`×TcÑTcÓ,dˆ×Ñ˜jÑ)ä× Ò  ¯_©_Ó=ˆà�‰×Ñ˜SÔ!Øˆr9   )rT   rP   rR   rS   rQ   rÙ   rÓ   rÔ   rÞ   rX   rÖ   rN   rÚ   rÝ   r=  rW   rO   r×   rÜ   rM   rÕ   rÛ   rØ   r2   )NNNNNNNrÂ   )NNN)NNNN);rÃ   rÄ   rÅ   rÆ   rÇ   r   r   rÒ   r\   rÈ   rÎ   r   r   ræ   ré   r   rü   r÷   r˜   r   r   r   rÉ   rÊ   r>   rB   rº   rï   r)  r   rÅ  rÓ  r   r–  r   r7  r   r’  r“  rï  r   r^  r?   rÒ  r%   r  r   r	   r!   r&   r%  r*  r"   r4  r#   r(   r>  rA  rË   r²   r9   r7   rÍ   rÍ   e  sÍ  † ññ˜x¨×(=Ñ(=Ñ>õ ð> ð˜×-Ñ-ó ó ðð ð,¨x¸Ñ/Fó ,ó ð,ð ð# 8¨MÑ#:ó #ó ð#ð ð
 
ó 
ó ð
ð* ñ%ó ð%ð ð 15Ø%)Ø'+Ø37Ø)-Ø-1Ø+/ñ#"Øð#"à" 4¨¡9Ñ-ð#"ð ˜c‘]ð#"ð   ‘}ð	#"ð
 !  c¨3 h¡Ñ0ð#"ð ! ™ð#"ð & c™]ð#"ð $ C™=ô#"ó ð#"ðJ ñ$ó ð$ð ñó ðò ò*ð8hT˜Xô hTðT ñ!0ó ð!0ðF ða Yð a°3ó aó ðað ð˜nó ó ðð
 ð §¡ð °X¸c±]ó ó ðò
$ðL ð˜|ó ó ðð" ñ˜H S™Mð ¸8ÀC¹=ô ó ðð* ñ0ó ð0ð ðX˜Sð X°h¸{Ñ6Kó Xó ðXðt ØNRØ\`ñCE  x° }Ñ!5ð CE¸hÀs¹mð CEØ#Ð$4Ñ5ðCEØKSÐTXÉ>ðCEà�,  \Ñ 2Ð2Ñ3ôCEó ðCEòJ 7ðD ðf˜cð f°u¸SÀ*¸_Ñ7Mó fó ðfðP ØRVØTXØ/3ñ?E  x° }Ñ!5ð ?EÀ(È3Á-ð ?EØ" ?Ñ3ð?EØDLÈSÁMð?Eà& t™nð?Eà8=¸lÈDÐQ]ÑL^Ð>^Ñ8_ô?Eó ð?EõBr9   rÍ   c                   ód   • \ rS rSrSrSrS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSrg)Ú_SessionShimi4  aR  
shim that lets us present pep8 API for user-classes to override,
but also backwards-compatible for existing code using
ApplicationSession "directly".

**NOTE:** this is not public or intended for use; you should import
either autobahn.asyncio.wamp.Session or
autobahn.twisted.wamp.Session depending on which async
framework yo're using.
Nc                 ó$   • U R                  U5      $ r2   )Úon_joinrØ  s     r7   r7  Ú_SessionShim.onJoinC  s   € Ø�|‰|˜GÓ$Ð$r9   c                 ó(  • U R                   (       aç  U R                   R                  5        Vs/ s H  oR                  R                  SS 5      PM      snS   nU R                   R                  5        Vs/ s H  oR                  R                  SS 5      PM      snS   nU R	                  5       nU R                  U R                  R                  [        U R                   R                  5       5      UUUS9  g U R                  5         g s  snf s  snf )Nrt   éÿÿÿÿrx   )r  rt   rx   r�   )Ú_authenticatorsré  Ú_argsÚgetÚ_merged_authextrar>   rÎ   rm   r•   ÚkeysÚ
on_connect)r[   Úxrt   rx   r�   s        r7   r÷   Ú_SessionShim.onConnectF  sá   € Ø××ð <@×;OÑ;O×;VÑ;VÔ;XÓYÒ;X°a—g‘g—k‘k (¨DÖ1Ñ;XÑYÐZ\Ñ]ˆFØ?C×?SÑ?S×?ZÑ?ZÔ?\Ó]Ò?\¸!Ÿ™Ÿ™ J°Ö5Ñ?\Ñ]Ð^`ÑaˆHð ×.Ñ.Ó0ˆIØ�I‰IØ—‘×!Ñ!Ü  ×!5Ñ!5×!:Ñ!:Ó!<Ó=ØØ!Ø#ð ò ð �O‰OÕùò ZùÚ]s   ®%D
Á5%Dc                 ó  •  U R                   UR                     nUR                  X5      $ ! [         aP    [        SR	                  UR                  [        [        U R                   R                  5       5      5      5      5      ef = f)NzBReceived challenge for unknown authmethod '{}' [authenticators={}])	rJ  r”  r²  r‡   r·   r˜   ÚsortedrN  Úon_challenge)r[   rº  Úauthenticators      r7   r–  Ú_SessionShim.onChallenge[  s�   € ð	Ø ×0Ñ0°×1AÑ1AÑBˆMð ×)Ñ)¨$Ó:Ð:øô ó 	ÜØT×[Ñ[Ø×$Ñ$Üœ˜t×3Ñ3×8Ñ8Ó:Ó;Ó<óóð ð	ús
   ‚, ¬ABc                 ó\  • UR                   b  U R                  c  g  U R                  UR                      nUR                  XR                  5      $ ! [         aP    [        SR	                  UR                   [        [        U R                  R                  5       5      5      5      5      ef = f)NzBReceived onWelcome for unknown authmethod '{}' [authenticators={}])
r{   rJ  r²  r‡   r·   r˜   rS  rN  Ú
on_welcomer�   )r[   r¢   rU  s      r7   r“  Ú_SessionShim.onWelcomeg  s™   € Ø�>‰>Ñ! T×%9Ñ%9Ñ%Aàð	Ø ×0Ñ0°·±Ñ@ˆMð ×'Ñ'¨¯m©mÓ<Ð<øô ó 	ÜØT×[Ñ[Ø—N‘NÜœ˜t×3Ñ3×8Ñ8Ó:Ó;Ó<óóð ð	ús   �A ÁAB+c                 ó$   • U R                  U5      $ r2   )Úon_leaverØ  s     r7   r^  Ú_SessionShim.onLeavev  s   € Ø�}‰}˜WÓ%Ð%r9   c                 ó"   • U R                  5       $ r2   )Úon_disconnectrZ   s    r7   rÒ  Ú_SessionShim.onDisconnecty  s   € Ø×!Ñ!Ó#Ð#r9   c           	      ó€  ^ ^• [        T[        5      (       d   eT R                  c  0 T l        UU 4S jnU" S5        U" S5        TR                  nT R	                  5       nUR                  5        H1  u  pVXS;   d  M  X5   U:w  d  M  [        SR                  XVX5   5      5      e   TT R                  TR                  '   g )Nc                 ó@  >• [        [        TR                  R                  5       5      T/-    Vs/ s H#  nXR                  ;   d  M  UR                  U    PM%     sn5      n[        U5      S:”  a*  [        SR                  U SR                  U5      5      5      eg s  snf )Nry  zInconsistent {}s: {}Ú )	Úsetr•   rJ  ré  rK  rª  Ú
ValueErrorr·   r>   )r#  ÚaÚunirU  r[   s      €€r7   Úat_most_oneÚ3_SessionShim.add_authenticator.<locals>.at_most_oneˆ  s–   ø€ Üä˜d×2Ñ2×9Ñ9Ó;Ó<À¸ÒNóâN�AØŸ7™7‘?ó �—‘˜”ÙNñó ˆCô
 �3‹x˜!‹|Ü Ø*×1Ñ1ØØŸ™ ›óóð ð ùòs   °BÁBrt   rx   z4Inconsistent authextra values for '{}': '{}' vs '{}')	r–   r   rJ  r�   rM  r  rd  r·   r#  )r[   rU  rg  r�   Úmergedr"  Úvs   ``     r7   Úadd_authenticatorÚ_SessionShim.add_authenticator~  s¹   ù€ Ü˜-¬×8Ñ8Ð8Ð8Ø×ÑÑ'Ø#%ˆDÔ ö	ñ 	�HÔñ 	�JÔð "×+Ñ+ˆ	Ø×'Ñ'Ó)ˆØ—L‘L–N‰DˆAØ�~ )¡,°!Õ"3Ü ØJ×QÑQØ˜i™lóóð ñ #ð 4Aˆ×Ñ˜]×/Ñ/Ò0r9   c                 óî   ^• U R                   R                  5        Vs/ s H  oR                  PM     snmS n[        UT[	        5       5      nU4S jnU Vs0 s H  nXT" U5      _M     sn$ s  snf s  snf )a  
internal helper

:returns: a single 'authextra' dict, consisting of all keys
    from any authenticator's authextra.

Note that when the authenticator was added, we already checked
that any keys it does contain has the same value as any
existing authextra.
c                 ó:   • U [        UR                  5       5      -  $ r2   )rc  rN  )rP  Úys     r7   Úextract_keysÚ4_SessionShim._merged_authextra.<locals>.extract_keys¸  s   € Ø”s˜1Ÿ6™6›8“}Ñ$Ð$r9   c                 ó`   >• T H  nX;   d  M
  X   s  $    [        SR                  U 5      5      e)zœ
for anything already in self._authenticators, we checked
that it has the same value for any keys in its authextra --
so here we just extract the first one
zNo values for '{}')rd  r·   )r"  r�   Ú
authextrass     €r7   Úfirst_value_forÚ7_SessionShim._merged_authextra.<locals>.first_value_for½  s9   ø€ ó (�	Ø•>Ø$™<Ò'ñ (ô Ø$×+Ñ+¨AÓ.óð r9   )rJ  ré  r�   r
   rc  )r[   re  rp  Úunique_keysrt  r"  rs  s         @r7   rM  Ú_SessionShim._merged_authextra«  s   ø€ ð ,0×+?Ñ+?×+FÑ+FÔ+HÓIÒ+H a—k”kÑ+HÑIˆ
ò	%ô ˜\¨:´s³uÓ=ˆõ	ñ  !ó
â �ð ˆ˜qÓ!Ò!Ù ñ
ð 	
ùò+ Jùò*
s   žA-ÁA2c                 ó   • g r2   r²   rØ  s     r7   rF  Ú_SessionShim.on_joinÓ  ó   € Ør9   c                 ó$   • U R                  5         g r2   )rB   rØ  s     r7   r[  Ú_SessionShim.on_leaveÖ  s   € Ø�‰Õr9   c                 óN   • U R                  U R                  R                  5        g r2   )r>   rÎ   rm   rZ   s    r7   rO  Ú_SessionShim.on_connectÙ  s   € Ø�	‰	�$—+‘+×#Ñ#Õ$r9   c                 ó   • g r2   r²   rZ   s    r7   r^  Ú_SessionShim.on_disconnectÜ  rz  r9   )rJ  )rÃ   rÄ   rÅ   rÆ   rÇ   rJ  r7  r÷   r–  r“  r^  rÒ  rk  rM  rF  r[  rO  r^  rË   r²   r9   r7   rD  rD  4  sM   † ñ	ð €Oò%òò*
;ò=ò&ò$ò
+AòZ#
òPòò%õr9   rD  c                   ó.   • \ rS rSrSr\r SS jrS rSr	g)ÚApplicationSessionFactoryiä  z 
WAMP endpoint session factory.
Nc                 óH   • U=(       d    [         R                  " SS9U l        g)z}

:param config: The default component configuration.
:type config: instance of :class:`autobahn.wamp.types.ComponentConfig`
rÐ   rÑ   N)r   rÒ   rÎ   rß   s     r7   r\   Ú"ApplicationSessionFactory.__init__î  s   € ð ×E¤× 5Ò 5¸HÑ Eˆ�r9   c                 óH   • U R                  U R                  5      nXl        U$ )z’
Creates a new WAMP application session.

:returns: -- An instance of the WAMP application session class as
             given by `self.session`.
)r0  rÎ   Úfactory)r[   r0  s     r7   Ú__call__Ú"ApplicationSessionFactory.__call__ö  s    € ð —,‘,˜tŸ{™{Ó+ˆØŒØˆr9   )rÎ   r2   )
rÃ   rÄ   rÅ   rÆ   rÇ   rÍ   r0  r\   r‡  rË   r²   r9   r7   r‚  r‚  ä  s   † ñð !€GðôFõ	r9   r‚  )AÚtypingr   r   r   r   r   r   r	   rD   r3   Ú	functoolsr
   Úautobahnr   Úautobahn.utilr   r   r   Úautobahn.wampr   r   r   r   r   Úautobahn.wamp.exceptionr   r   r   r   Úautobahn.wamp.interfacesr   r   r   r   r   Úautobahn.wamp.typesr   r   r   r    r!   r"   r#   Úautobahn.exceptionr$   Úautobahn.wamp.requestr%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r8   r;   rÍ   rD  Úabc_registerÚobjectr‚  r²   r9   r7   Ú<module>r•     sÄ   ð÷4 H× GÑ Gã Û Ý å ß >Ñ >Ý Ý !Ý Ý Ý #ß gÓ gß bÕ b÷ ÷  ñ  å 3÷÷ ÷ ó ò8ôc�/ô cðL	 ôK˜ó Kó ðKô\.iÐ%ô iðZ 	× Ò Ð(Ô )ô õ r9   