+
    jHàjK  ã                  ó*  € R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RI	t	^ RI
Ht ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHt R
t]! 0 Rm4      tRt]! 0 Rm4      tR^/R ltR tR t R t!R t"R t#R t$R t%R t& ! R R]4      t'R# )zæHosted producers between independently owned local profile daemons.

Only the private OS-authenticated owner socket exposes these verbs. The source
owner attests durable membership/task state; the target never opens its database.
)ÚannotationsN)Úasdict)ÚPath)ÚTaskIdentity)Ú	Principal©Úowner_scope)ÚHostedRoomAuthorityRPC)ÚRuntimeStoreErrorÚ_epochzgateway.hosted.transport.v1:Útimeoutc          
     óN  aa€ \        V 4      p W P                  4       8w  d   \        R4      h^ RIHpHp \        P                  ! 4       V,           oV! WR7      pVP                  R8w  g   VP                  f   \        R4      h^ RI
Hp V! VP                  P                  4      V! V 4      8w  d   \        R4      h/ VCR	VP                  P                  /CpV! WP                  4      p S\        P                  ! 4       ,
          pV^ 8:  d   \        R4      h\        P                  ! R
^R^RVRV/4      P                  4       R,           p\!        V4      R8”  d   \        R4      h\"        P$                  R8X  d   ^ RIHp	 V	! WV4      p
MF^ RIHp ^ RIHp V! W4      ;_uu_ 4       oSP3                  V4       VV3R lpV! VS4      p
RRR4       X
'       g   \        R4      h\        P4                  ! V
4      pVP7                  R4      RJdF   \9        VP7                  RR4      4      P;                  R4      R,          pVR9  d   Rp\        V4      hVP7                  R
4      ^8w  g   VP7                  R4      ^8w  d   \        R4      hVR,          #   + '       g   i     LÓ; i)zJAuthenticated private socket exchange; no owner-start or storage fallback.Úpermission_denied)Údiscover_gateway_endpointÚcontrol_home_for)r   ÚreadyNÚruntime_draining)Úhermes_home_keyÚprofile_mismatchÚ
profile_idÚprotocolÚidÚverbÚparamsó   
é   Úrequest_too_largeÚnt)Úquery_runtime_control)Úconnect_private)Ú_read_response_linec                 ó�   <€ SP                  \        R S \        P                  ! 4       ,
          4      4       SP	                  R4      # )gü©ñÒMbP?r   )Ú
settimeoutÚmaxÚtimeÚ	monotonicÚrecv)ÚdeadlineÚpeers   €€ÚE/home/ubuntu/.hermes/hermes-agent/gateway/session_hosted_transport.pyÚreadÚowner_request.<locals>.readB   s1   ø€ Ø—‘¤ E¨8´d·n²nÓ6FÕ+FÓ GÔHØ—y‘y Ó'Ð'ó    ÚokTÚerrorÚ z: Úresultéÿÿÿÿ>   Úinvalid_paramsr   Ústale_generationr   r   Úunknown_executionÚadmission_conflictÚresponse_too_large)r   Úresolver
   Úhermes_cli.gateway_runtimer   r   r$   r%   ÚstateÚendpointÚhermes_constantsr   r   ÚjsonÚdumpsÚencodeÚlenÚosÚnameÚ!gateway.runtime_bootstrap_windowsr   Ú$hermes_cli.gateway_runtime_discoveryr   Úgateway.control_socketr    ÚsendallÚloadsÚgetÚstrÚsplit)Úhomer   r   r   r   r   Ú
discoveredr   Úrequestr   Úrawr   r    r*   ÚresponseÚreasonr'   r(   s   &&&$            @@r)   Úowner_requestrP   $   s0  ù€ ä�‹:€DØ�|‰|‹~ÔÜÐ 3Ó4Ð4ßVÜ�~Š~Ó 'Õ)€HÙ*¨4ÔA€JØ×Ñ˜7Ô" j×&9Ñ&9Ò&AÜÐ 2Ó3Ð3Ý0Ù�z×*Ñ*×5Ñ5Ó6¹/È$Ó:OÔOÜÐ 2Ó3Ð3àE�ÐE˜ j×&9Ñ&9×&DÑ&DÑE€FÙ˜D×"5Ñ"5Ó6€DØœŸšÓ)Õ)€GØ�!„|ÜÐ 2Ó3Ð3Ü�jŠj˜* a¨¨q°&¸$ÀÈ&ÐQÓR×YÑYÓ[Ð^cÕc€GÜ
ˆ7ƒ|�eÔÜÐ 3Ó4Ð4Ü	‡w�w�$„ÝKÙ# D°7Ó;‰åHÝ>Ù˜T×+Ô+¨tØ�L‰L˜Ô!ö(ñ & d¨HÓ5ˆC÷ ,÷ ÜÐ 2Ó3Ð3Ü�zŠz˜#‹€HØ‡|�|�DÓ Ó%Ü�X—\‘\ '¨2Ó.Ó/×5Ñ5°dÓ;¸BÕ?ˆØð oô oà'ˆFÜ Ó'Ð'Ø‡|�|�JÓ 1Ô$¨¯©°TÓ(:¸aÔ(?ÜÐ 2Ó3Ð3Ø�HÕÐ÷# ,×+ús   Æ'"JÊJ$	c                ó¾  €  \        V R ,          RRV R,          RVR/ VCRV R,          /C/4      p\	        T\
        4      '       d5   \	        TP                  R	4      \        4      '       d   TR	,          '       g   \        R
4      hTP                  R4      T R,          8w  d   \        R
4      hT#   \         d    h \        \        3 d   p\        R4      ThRp?ii ; i)Úsource_homeúhosted-attestÚselectorÚ	operationr   Ú_target_homeÚtarget_homer   NÚownerr   )rP   r
   ÚOSErrorÚ
ValueErrorÚ
isinstanceÚdictrG   rH   )ÚbindingrU   r   r0   Úexcs   &&&  r)   Ú_attestr_   T   sÚ   € ð=Ü˜w }Õ5°Ø˜ 
Õ+¨[¸)ØÐH˜ÐH °¸Õ1GÑHðIJó Kˆô �fœd×#Ò#¬:°f·j±jÀÓ6IÌ3×+OÒ+OÐW]Ð^e×WfÔWfÜÐ 3Ó4Ð4Ø‡z�z�-Ó  G¨MÕ$:Ô:ÜÐ 3Ó4Ð4Ø€Møô ô ØÜ”ZÐ ô =ÜÐ 2Ó3¸Ð<ûð=ús   ‚.B/ Â/CÃ
CÃCÃCc           	     óÌ  aa	€ VP                  R4      VP                  R4      re\        V4      \        JgM   ^ Tu;8:  d   \        V4      8  d5   M M1\        V4      \        Jg   ^ Tu;8:  d   W5,          R,          8  g   M \	        R4      h^ RIHp W5,          oV! V P                  4      P                  VSR,          SR,          VV\        R7      o	\        ;QJ d     VV	3R	 lR 4       F  '       g   K   R
M	  RM! VV	3R	 lR 4       4      '       d   \	        R4      hR\        P                  ! S	P                  4      P                  R4      RS	P                  R,          /# )a  Read scoped source bytes only on the source owner's authenticated handler.

Serves one slice per call; the row's stored SHA-256 (verified at upload) rides along
so the target can verify the reassembled file without the source re-hashing 15 MB
per 24 KiB chunk.
ÚindexÚoffsetÚsizer   ©ÚHostedRoomAttachmentStoreÚattachment_idÚevent_id)Úroom_idrf   rg   Úrecipient_member_idrb   Úlengthc              3  ó^   <"  € T F"  pSP                   V,          SV,          8g  x € K$  	  R # 5i©N)Ú
attachment©Ú.0ÚkeyÚitemÚsaveds   & €€r)   Ú	<genexpr>Ú*source_attachment_chunk.<locals>.<genexpr>t   s'   øé € Ð
ZÑ9Y°#ˆ5×Ñ˜CÕ  D¨¥IÖ-Ó9Yùs   ƒ*-TFÚdata_base64ÚasciiÚsha256©ÚkindrA   Úmimerc   )rG   ÚtypeÚintr?   r
   Úgateway.hosted_room_attachmentsre   Údb_pathÚ
read_rangeÚ_CHUNK_BYTESÚanyÚbase64Ú	b64encodeÚdataÚdecoderm   )
ÚserviceÚmemberrh   Úmanifestr   ra   rb   re   rq   rr   s
   &&&&&   @@r)   Úsource_attachment_chunkr‰   d   s  ù€ ð —J‘J˜wÓ'¨¯©°HÓ)=ˆ6ÜˆU‹œ3Ó a¨5Ö&@´3°x³=×&@Ü�F‹|¤3Ó&¨a°6Ö.S¸H½OÈFÕ<SÖ.SÜÐ 3Ó4Ð4ÝIØ�?€DÙ% g§o¡oÓ6×AÑAÈ'Ø˜?Õ+°d¸:Õ6FÐ\bØœlð Bó ,€E÷ ƒsÕ
ZÑ9YÓ
Z‡s‡s‚sÕ
ZÑ9YÓ
Z×ZÒZÜÐ 3Ó4Ð4Øœ6×+Ò+¨E¯J©JÓ7×>Ñ>¸wÓGØ�e×&Ñ& xÕ0ð2ð 2r,   c                ó`  aa€ ^ RI Hp V! V P                  4      p. pV F‹  oVP                  VSR,          SR,          VR7      o\        ;QJ d     VV3R lR
 4       F  '       g   K   RM	  RM! VV3R lR
 4       4      '       d   \        R4      hVP                  SR	,          4       K�  	  V# )zøUpload-verified SHA-256 of every bound input, read on the source owner's handler.

Rides on the submit/execute attest result so the target can bind transferred bytes
to the attested input and the preflight can verify the durable row without bytes.
rd   rf   rg   )rh   rf   rg   ri   c              3  óJ   <"  € T F  pSV,          SV,          8g  x € K  	  R # 5irl   © rn   s   & €€r)   rs   Ú,source_attachment_digests.<locals>.<genexpr>†   s    øé € ÐSÑ2R¨3ˆu�S�z˜T #�YÖ&Ó2Rùs   ƒ #TFr   rw   rx   )r}   re   r~   Údescriber�   r
   Úappend)	r†   r‡   rh   rˆ   re   ÚstoreÚdigestsrq   rr   s	   &&&&   @@r)   Úsource_attachment_digestsr’   z   s“   ù€ õ JÙ% g§o¡oÓ6€EØ€GÛˆØ—‘ w¸dÀ?Õ>SØ(,¨ZÕ(8Èfð ó Vˆç‹3ÕSÑ2RÓS�3�3Š3ÕSÑ2RÓS×SÒSÜ#Ð$7Ó8Ð8Ø�‰�u˜X•Ö'ñ ð €Nr,   c                ó  € ^ RI Hp VP                  R. 4      pV'       g   . # V! V4      pVP                  R4      p\        V\        4      '       d   \        V4      \        V4      8w  d   \        R4      h. p\        \        WE4      4       EF{  w  pw  r‰\        4       p
\        V
4      VR,          8  Ed   \        V RRVR,          RVR,          R	\        P                  ! VR
,          P                  R4      4      P                  4       RVRVR\        V
4      /4      p\        P                   ! VR,          RR7      p\#        \$        VR,          \        V
4      ,
          4      pVR,          VR,          8w  g   \        V4      V8w  g   VR,          V	8w  d   \        R4      hV
P'                  V4       EK  \        P                  ! V
4      P                  4       V	8w  d   \        R4      hVP)                  V\+        V
4      34       EK~  	  V# )zHTransfer bytes, not foreign filenames, with a task fence on every chunk.)Úvalidate_bound_task_manifestÚattachmentsÚattachment_digestsr   rc   rm   ÚtaskÚexecution_generationÚprompt_sha256Úpromptúutf-8ra   rb   ru   T)ÚvalidaterX   rw   )Úgateway.hosted_room_driverr”   rG   r[   Úlistr?   r
   Ú	enumerateÚzipÚ	bytearrayr_   Úhashlibrw   r>   Ú	hexdigestr‚   Ú	b64decodeÚminr€   Úextendr�   Úbytes)r]   Úattestedr   r”   rˆ   r‘   r0   ra   rq   Údigestr„   ÚchunkrM   Úexpecteds   &&&           r)   Ú_attachment_datar¬   Œ   s¬  € åGØ�|‰|˜M¨2Ó.€HßØˆ	Ù+¨HÓ5€HØ�l‰lÐ/Ó0€GÜ�gœt×$Ò$¬¨G«¼¸H»Ô(EÜÐ 3Ó4Ð4Ø€FÜ!*¬3¨xÓ+A×!BÑˆ‰~�Ü‹{ˆÜ�$‹i˜$˜v�,Õ&Ü˜G \Ø˜˜v�Ð(>ÀÐG]Õ@^Ø¤§¢°¸Õ0B×0IÑ0IÈ'Ó0RÓ!S×!]Ñ!]Ó!_Ø˜x¨°%¸Ä3ÀtÃ9ð4Nó OˆEô ×"Ò" 5¨Õ#7À$ÔGˆCÜœ<¨¨f­¼¸D»	Õ)AÓBˆHØ�W�~ ¨'Õ!2Ô2´c¸#³hÀ(Ô6JÈeÐT\ÍoÐagÔNgÜ'Ð(;Ó<Ð<Ø�K‰K˜×Ü�>Š>˜$Ó×)Ñ)Ó+¨vÔ5Ü#Ð$7Ó8Ð8Ø�‰�tœU 4›[Ð)×*ñ "Cð €Mr,   c                óú   € \         P                  ! VR ,          VR,          .RR7      pR\        P                  ! VP	                  4       4      P                  4       ,           p\        W0P                  \        R4      # )rR   rX   )Ú
separatorszhosted-owner:zhosted-owner-transport)Ú,Ú:)	r<   r=   r¢   rw   r>   r£   r   r   Ú_CAPS)Ú	authorityr]   ÚidentityÚsubjects   &&  r)   Ú
_principalrµ   ©   s]   € ô �zŠz˜7 =Õ1°7¸7Õ3CÐDÐQ[Ô\€HØ¤§¢¨x¯©Ó/@Ó A× KÑ KÓ MÕM€GÜ�W×2Ñ2´EÐ;SÓTÐTr,   c               ó„   aaaaa€ V3R loVVV3R lpVV3R lpV3R loV P                   P                  RVRV/4       R# )aÏ  Install profile-selected private routing over the existing authority registry.

The callback must validate current room authority/member and, for submit and
execute, exact TaskIdentity, generation and prompt against durable task data.
It returns {'owner': durable_room_owner_subject}, never a client actor.
Every wire envelope names the logical profile_id, not its control socket home.
Reinstallation for a secondary preserves routing to all other served owners.
c                óÒ  <€ ^ RI Hp \        V 4      pVP                  RR4      p\	        V\
        4      '       d    \        V4      P                  4       '       g   \        R4      h\        V4      pWDP                  4       8w  d   \        R4      h\        \        SRR4      RR4      pVe   VP                  V4      MSpVe   VP                  V8w  d   \        R4      hV! V4       Wb3# )é    )Úassert_named_profile_home_liver   Nr   ÚrunnerÚsession_authorities)r;   r¹   r\   Úpopr[   rH   r   Úis_absoluter
   r7   ÚgetattrÚfor_homer   )Úenveloper¹   r   r   rJ   ÚregistryÚselectedr²   s   &      €r)   ÚselectÚ(install_hosted_transport.<locals>.selectº   sÍ   ø€ ÝCÜ�h“ˆØ—Z‘Z ¨dÓ3ˆ
Ü˜*¤c×*Ò*´$°zÓ2B×2NÑ2N×2PÒ2PÜ#Ð$6Ó7Ð7Ü�JÓˆØ—<‘<“>Ô!Ü#Ð$6Ó7Ð7Üœ7 9¨h¸Ó=Ð?TÐVZÓ[ˆØ.6Ò.B�8×$Ñ$ TÔ*È	ˆØÒ˜x×2Ñ2°jÔ@Ü#Ð$6Ó7Ð7Ù& tÔ,ØÐÐr,   c                óž  <€ S! V 4      w  r#\        V4      0 R
m8w  d   \        R4      hVR,          \        RR0,          9  d   \        R4      hVSJ d   SM\        \        VRR4      RR4      pVf   \        R	4      h\	        V4      ;_uu_ 4        V! VR ,          VR,          VR,          4      uuRRR4       #   + '       g   i     R# ; i)rT   rU   r   r2   Úexecuterm   Úhosted_room_serviceNÚattestr   >   r   rT   rU   )Úsetr
   Ú_OPERATIONSr¾   r   )rÀ   r(   rÂ   r   ÚcallbackrÈ   r²   rÃ   s   &&   €€€r)   ÚsourceÚ(install_hosted_transport.<locals>.sourceÊ   s¸   ø€ Ù! (Ó+ÑˆÜˆv‹;Ò=Ô=Ü#Ð$4Ó5Ð5Ø�+Õ¤k°YÀÐ4MÕ&MÔMÜ#Ð$4Ó5Ð5Ø%¨Ó2‘6¼Ü�HÐ3°TÓ:¸HÀdó9LˆàÒÜ#Ð$6Ó7Ð7Ü˜×"Õ"Ù˜F :Õ.°°{Õ0CÀVÈHÕEUÓV÷ #×"×"Ó"ús   ÂB;Â;C	c                óŒ   <€ S! V 4      w  r#\        V4      ;_uu_ 4        S! W#4      uuR R R 4       #   + '       g   i     R # ; irl   r   )rÀ   r(   rÂ   r   ÚproducerÃ   s   &&  €€r)   ÚtargetÚ(install_hosted_transport.<locals>.target×   s2   ø€ Ù! (Ó+ÑˆÜ˜×"Õ"Ù˜8Ó,÷ #×"×"Ó"ús	   Ÿ2²A	c                ó   <a aa€ \        V4      0 Rm8w  d   \        R4      hVR,          \        VR,          4      r2VR,          pV\        9  g   \        V4      0 Rm8w  d   \        R4      h^ RIHp V! \        S P                  4      4      pVR,          V8w  d   \        R4      hR VR ,          RVRS P                  /p\        WrV4      pVR	,          VR	&   \        S V4      p	\        S S3/ VBR
V	RR /B p
\        V
P                  P                  ,           o\        P                  ! VRR7      oV VV3R lpS P                   P#                  V4       VR8X  da   \%        WxV4      V
n        VP)                  RR4       VR,          VR&   VR,          ;'       g    RVR&   \+        R/ VR,          B VR&   R VR&   V
P,                  ! V3/ VB pV# )rR   rT   rU   r   r2   Úprofile)Úserved_profile_namer   rW   rX   Ú	principalÚ	authorizec                 ó   € R # )TrŒ   )Úargss   *r)   Ú<lambda>Ú;install_hosted_transport.<locals>.produce.<locals>.<lambda>ñ   s   € ¹Dr,   T)Ú	sort_keysc                óØ   <€ \        V SP                  4       V P                  R S34      P                  4       pVe   V^ ,          S8w  d   \	        R4      hV P                  RSS34       R# )ú(SELECT value FROM state_meta WHERE key=?Nr   z7INSERT OR IGNORE INTO state_meta(key,value) VALUES(?,?))r   ÚepochrÆ   Úfetchoner
   )ÚconnÚoldr²   Úencodedrp   s   & €€€r)   ÚpersistÚ:install_hosted_transport.<locals>.produce.<locals>.persistô   s_   ø€ Ü�4˜Ÿ™Ô)Ø—,‘,ÐIÈCÈ6ÓR×[Ñ[Ó]ˆCØŠ 3 q¥6¨WÔ#4Ü'Ð(;Ó<Ð<Ø�L‰LÐRÐUXÐZaÐTbÖcr,   Úsubmitr™   Nrš   r•   r—   c                ó   € R # rl   rŒ   )Úvalues   &r)   rÙ   rÚ     s   € ±$r,   Úon_terminal>   r   rT   rU   rR   >   rÓ   rh   Ú	member_idrŒ   )rÉ   r
   r\   rÊ   Úgateway.session_authoritiesrÔ   r   r   r_   rµ   r	   Ú_BINDINGÚrefÚ
session_idr<   r=   ÚdbÚ_execute_writer¬   Úhosted_attachment_datar¼   r   Ú_call)r²   rÀ   rU   r   rT   rÔ   rÓ   r]   r¨   rÕ   Úrpcrã   r0   râ   rp   Úloops   f&           @@€r)   rÏ   Ú)install_hosted_transport.<locals>.produceÜ   s¾  û€ Üˆx‹=ÒNÔNÜ#Ð$4Ó5Ð5Ø$ [Õ1´4¸ÀÕ8JÓ3K�6Ø˜JÕ'ˆØœKÔ'¬3¨x«=Ò<_Ô+_Ü#Ð$4Ó5Ð5ÝCÙ%¤d¨9×+?Ñ+?Ó&@ÓAˆØ�IÕ 'Ô)Ü#Ð$6Ó7Ð7Ø  (¨=Õ"9¸:ÀxØ  )×"6Ñ"6ð8ˆä˜7¨vÓ6ˆØ# GÕ,ˆ�ÑÜ˜y¨'Ó2ˆ	ô
 % Y°ñ B¸ñ BÈIð BÙ.@òBˆä˜Ÿ™×+Ñ+Õ+ˆÜ—*’*˜W°Ô5ˆ÷	dð 	�‰×#Ñ# GÔ,Ø˜Ô Ü)9¸'ÈVÓ)TˆCÔ&à�J‰J�¨Ô-Ø'¨Õ1ˆF�8ÑØ$,¨]Õ$;×$CÐ$C¸tˆF�=Ñ!Ü)Ñ;¨F°6­NÑ;ˆF�6‰NÙ$6ˆF�=Ñ!Ø—’˜9Ñ/¨Ñ/ˆØˆr,   rS   úhosted-producerN)Úprivate_handlersÚupdate)Úserverr²   ró   rÈ   rÌ   rÐ   rÏ   rÃ   s   &ffd  @@r)   Úinstall_hosted_transportrù   ±   s:   ü€ õ ÷ Wö-õ
(ðT ×Ñ×"Ñ" O°VÐ=NÐPVÐ#WÖXr,   c                ó~   € \        V 4      ;_uu_ 4        \        WV4      uuRRR4       #   + '       g   i     R# ; i)a  Before claim, reauthorize durable target binding at its source owner.

Returns False only for a non-transport session. A known transport binding
fails closed on missing source, revoked membership or altered task payload.
Call off the owner's event loop (the reverse RPC is synchronous).
N)r   Ú_check_remote_hosted_admission)r²   rì   Úrows   &&&r)   Úcheck_remote_hosted_admissionrý   	  s(   € ô 
�Y×	Õ	Ü-¨i¸cÓB÷ 
 ×	×	Ó	ús   ”+«<	c                ó  € V P                   P                  4       ;_uu_ 4       pVP                  R \        VP                  ,           34      P                  4       pRRR4       Xf   R#  \        P                  ! V^ ,          4      p\        P                  ! VR,          R,          4      w  rgVR,          P                  R4      '       d]   VR,          \        W4      P                  8w  g<   VP                  V P                  8w  g!   VP                  R4      V P                  8w  d   \        R4      hR	VR
V/p\        VRV4      p	V	R,          VR,          8w  d   \        R4      h^ RIHp
Hp VR,          V
! V	R,          V	R,          V	P                  R4      4      8w  d   \        R4      h T! T	R,          T	P                  R4      4       R#   + '       g   i     EL{; i  \        \$        \&        3 d   p\)        R4      ThRp?ii ; i)rÝ   NFÚ
request_id:é   NNzhosted:Úprincipal_idrW   zbinding mismatchr—   r˜   rÆ   rX   zowner changed)Úattested_submission_payloadÚverify_attested_documentsÚpayloadrš   r•   r–   zinput changedr   T)rî   Ú	_read_ctxrÆ   rë   rí   rß   r<   rF   Ú
startswithrµ   r´   r   rG   rZ   r_   Ú"gateway.session_hosted_attachmentsr  r  ÚKeyErrorÚ	TypeErrorr
   )r²   rì   rü   rà   Ústoredr]   r³   Ú
generationr   r¨   r  r  r^   s   &&&          r)   rû   rû     s·  € Ø	�‰×	Ñ	×	!Ô	! TØ—‘ÐHÜ'¨#¯.©.Õ8Ð:ó<ß<D¹H»Jð 	÷ 
"ð ‚~Ùð>Ü—*’*˜V A�YÓ'ˆÜ#Ÿzšz¨#¨lÕ*;¸BÕ*?Ó@ÑˆØ�LÕ!×,Ñ,¨Y×7Ò7Ø�~Õ&¬*°YÓ*H×*PÑ*PÔPØ—>‘> Y×%9Ñ%9Ô9Ø—;‘;˜}Ó-°×1EÑ1EÔEÜÐ/Ó0Ð0Ø˜(Ð$:¸JÐGˆÜ˜7 I¨vÓ6ˆØ�GÕ ¨Õ 0Ô0Ü˜_Ó-Ð-÷ 	nØˆy�>Ñ8Ø˜Õ" H¨]Õ$;¸X¿\¹\ÐJ^Ó=_óaô aä˜_Ó-Ð-ðañ ˜h }Õ5°x·|±|ÐDXÓ7YÔZÙ÷9 
"×	!Ð	!ûô. œ¤)Ð,ô >ÜÐ 3Ó4¸#Ð=ûð>ús$   £7GÁ)EG  ÇG	Ç HÇ6HÈHc                  óD   a € ] tR tRtRtR tR tV 3R ltR tR t	Rt
V ;t# )	ÚHostedRoomOwnerRPCi4  zCDriver-compatible producer; carries data, never a caller principal.c          	     	óÒ   € \        V4      V n        W@n        R \        \        V4      4      R\	        W4VR7      /V n        / V n        \        P                  ! 4       V n	        RV n
        R# )rR   rT   )rh   ré   rÓ   N)r   rJ   ré   rH   r\   r]   Ú	callbacksÚ	threadingÚLockÚ_lockÚ_monitor)ÚselfrJ   rR   rh   ré   rÓ   s   &$$$$$r)   Ú__init__ÚHostedRoomOwnerRPC.__init__6  sT   € Ü˜“JˆŒ	Ø"ŒØ%¤s¬4°Ó+<Ó'=Ø"¤D°ÐW^Ô$_ðaˆŒàˆŒÜ—^’^Ó%ˆŒ
ØˆŽr,   c           	     	óº  € VP                  R R4      pVR8X  dF   \        P                  ! VP                  R4      P                  R4      4      P	                  4       VR&   \        VP                  R4      \        4      '       d   \        VR,          4      VR&   \        V P                  R/ V P                  CRVR	V/C4      pVR9   d3   Ve/   ^ R
IHp V! \        V P                  4      VR,          4      V n        VR8X  d¯   Ve«   V P                   ;_uu_ 4        W0P"                  VR,          &   V P$                  e!   V P$                  P'                  4       '       gK   \(        P*                  ! V P,                  VR,          3RR7      V n        V P$                  P/                  4        RRR4       VR9   d   V P1                  V4       V#   + '       g   i     L*; i)rè   Nrå   rš   r›   r™   r—   rõ   rU   r   )Ú
SessionRefrí   Úadmission_idT)rÐ   rØ   Údaemon>   ÚcreateÚresumeÚresolve_exact>   ÚhistoryÚresults)r¼   r¢   rw   r>   r£   r[   rG   r   r   rP   rJ   r]   Úgateway.session_contractr  rH   rì   r  r  r  Úis_aliver  ÚThreadÚ_watchÚstartÚ_deliver)r  rU   r   rË   r0   r  s   &&,   r)   rñ   ÚHostedRoomOwnerRPC._call?  sw  € Ø—:‘:˜m¨TÓ2ˆØ˜Ô ä&-§n¢n°V·Z±ZÀÓ5I×5PÑ5PÐQXÓ5YÓ&Z×&dÑ&dÓ&fˆF�?Ñ#Ü�f—j‘j Ó(¬,×7Ò7Ü# F¨6¥NÓ3ˆF�6‰NÜ˜tŸy™yÐ*;ð >FØ�l‰lð>FØ'¨°H¸fñ>Fó GˆàÐ=Ô=À&ÒBTÝ;Ù!¤# d§i¡i£.°&¸Õ2FÓGˆDŒHØ˜Ô  XÒ%9Ø——“Ø9A—‘˜v nÕ5Ñ6Ø—=‘=Ò(°·±×0FÑ0F×0HÒ0HÜ$-×$4Ò$4¸D¿K¹KØ$ \Õ2Ð4¸Tô%C�D”Mà—M‘M×'Ñ'Ô)÷ ð Ð.Ô.Ø�M‰M˜&Ô!Øˆ÷ —ús   ÄAG
ÅA
G
Ç
G	c          	     óê   <€  \         SV `  WVR7      #   \         d   pTP                  R8w  d   h  Rp?MRp?ii ; iT P	                  YTR7       Uu. uF  p/ TCRRRTR,          /CNK  	  up# u upi )z¡Driver recovery reads terminal receipts; a transcript past one response line
degrades to the bounded receipt rows (all the driver matches on) instead of failing.)rÓ   rí   rÌ   r6   NÚroleÚ	assistantÚcontentÚtext)Úsuperr  r
   rO   r  )r  rÓ   rí   rÌ   r^   ÚreceiptÚ	__class__s   &$$$  €r)   r  ÚHostedRoomOwnerRPC.historyV  s�   ø€ ð	Ü‘7‘?¨7ÐRX�?ÓYÐYøÜ ô 	Ø�z‰zÐ1Ô1Øô 2ûð	úð  $Ÿ|™|°GÐ[a˜|ÔbódÙb�Gð M�7ÐL˜F K°¸GÀF½OÔLÙbñdð 	dùò ds   ƒ ”;Ÿ6¶;ÁA0c                	óê   € V FY  pV P                   ;_uu_ 4        V P                  P                  VP                  R 4      R4      pRRR4       Xf   KQ  V! V4       K[  	  R#   + '       g   i     L$; i)Úsettlement_idN)r  r  r¼   rG   )r  r  rü   rË   s   &&  r)   r%  ÚHostedRoomOwnerRPC._delivera  sL   € ÛˆCØ——“ØŸ>™>×-Ñ-¨c¯g©g°oÓ.FÈÓM�÷ àÔ#Ù˜–ó	 ß—ús   š,A"Á"A2c                	óœ  €   V P                   ;_uu_ 4        V P                  '       g    RRR4       R# \        V P                  4      R,          pRRR4       V P                  V P                  R,          R,          VRXR7       \
        P                  ! R4       Kœ    + '       g   i     LU; i  \        \        \        3 d     R# i ; i)TN:Né   NrT   rÓ   Úbot_room)rÓ   rí   rÌ   Úadmission_idsg      Ð?)
r  r  rž   r  r]   r$   ÚsleeprY   rZ   r
   )r  rí   Úpendings   && r)   r#  ÚHostedRoomOwnerRPC._watchh  s�   € ð	ØØ—Z—Z“ZØŸ>Ÿ>˜>Ø÷  ‘Zô # 4§>¡>Ó2°4Õ8�G÷  ð
 —‘ T§\¡\°*Õ%=¸iÕ%HØ(2¸:ÐU\ð ô ^ä—
’
˜4Ö ÷  —Zûô œÔ%6Ð7ô 	ò ð	ús3   ‚B1 —B«B1 µBÁAB1 ÂB.	Â)B1 Â1CÃ
C)r  r  r]   r  rJ   ré   rì   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r  rñ   r  r%  r#  Ú__static_attributes__Ú__classcell__)r.  s   @r)   r  r  4  s%   ø† ÙMòòõ.	dò÷ð r,   r  >
   Úinfor  r  rå   ÚapproveÚdiscardr  r  Ú	interruptr  i   >   úsession:readúsession:createúsession:submitúsession:approveúsession:control)(r>  Ú
__future__r   Úasyncior‚   Údataclassesr   r¢   r<   r@   Úpathlibr   r  r$   r�   r   r   r   rê   r   Úgateway.session_hosted_rpcr	   Úhermes_state_runtimer
   r   rë   Ú	frozensetrÊ   r€   r±   rP   r_   r‰   r’   r¬   rµ   rù   rý   rû   r  rŒ   r,   r)   Ú<module>rQ     s¯   ðñõ
 #ã Û Ý Û Û Û 	Ý Û Û å 3Ý .Ý 3Ý =ß :à)€Ùò Dó E€ð €Ùò 9ó 	:€ð-°ô -ò`ò 2ò,ò$ò:UòUYòpCòô@BÐ/ö Br,   