+
    O×iÔ=  ã                   ó²  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
HtHtHtHt ^RIHt ]P"                  ! ]4      t]P(                  ! R4      tRtRR]: R2R	R
/t ! R R]4      t ]P4                  tR R lt ! R R4      t ! R R]4      t ! R R4      tR R lt ]PB                  R R l4       t"R#   ] d    RR R llt LSi ; i)é    N)ÚAnyÚCallableÚClassVarÚ	GeneratorÚSequence)Úinteraction_clients    ferny ([^
]*)  
z ferny {(command, args)!r}  
ÚcommandzW
        import sys
        def command(command, *args):
            sys.stderr.write(fz%)
            sys.stderr.flush()
    Úendz9
        def end():
            command('ferny.end')
    c                   ó   € ] tR t^3tRtR# )ÚInteractionError© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    ÚI/usr/lib/python3/dist-packages/cockpit/_vendor/ferny/interaction_agent.pyr   r   3   s   † Ûr   r   c          
      ó`   € V ^8„  d   QhR\         P                   R\        R\        R\        RR/# )é   ÚsockÚbufsizeÚmaxfdsÚflagsÚreturnz"tuple[bytes, list[int], int, None])ÚsocketÚint)Úformats   "r   Ú__annotate__r   <   s8   € ÷ +ñ +Ü�m‰mð+Ü&)ð+Ü36ð+Ü?Bð+à	-ñ+r   c           	      ó¬  € \         P                   ! R 4      pV P                  V\        P                  ! W$P                  ,          4      4      w  rVr7V Fr  w  r‰p
V\        P
                  8X  g   K  V	\        P                  8X  g   K4  VP                  V
R\        V
4      \        V
4      VP                  ,          ,
           4       Kt  	  V\        V4      W73# )ÚiN)
ÚarrayÚrecvmsgr   ÚCMSG_LENÚitemsizeÚ
SOL_SOCKETÚ
SCM_RIGHTSÚ	frombytesÚlenÚlist)r   r   r   r   ÚfdsÚmsgÚancdataÚaddrÚ
cmsg_levelÚ	cmsg_typeÚ	cmsg_datas   &&&&       r   Úrecv_fdsr2   <   s    € ô �kŠk˜#ÓˆØ$(§L¡L°¼&¿/º/È&×S_ÑS_ÕJ_Ó:`Ó$aÑ!ˆ�eÛ07Ñ,ˆJ 9ØœV×.Ñ.Ö.°9Ä×@QÑ@QÖ3QØ—‘˜iÐ(Z¬#¨i«.¼CÀ	»NÈSÏ\É\Õ<YÕ*ZÐ[Ö\ñ 18ð ”D˜“I˜uÐ*Ð*r   c                ó8   € V ^8„  d   QhR\         P                  /# ©r   r   )ÚasyncioÚAbstractEventLoop)r   s   "r   r   r   G   s   € ÷ (ñ (œ'×3Ñ3ñ (r   c                  óz   €  \         P                  ! 4       #   \         d    \         P                  ! 4       u # i ; i©N)r5   Úget_running_loopÚAttributeErrorÚget_event_loopr   r   r   r9   r9   G   s4   € ð(Ü×'Ò'Ó)Ð)øÜô (ä×%Ò%Ó'Ò'ð(ús   ‚ — :¹:c                   ó>   a € ] tR t^Ot o V 3R lR ltV 3R ltRtV tR# )ÚInteractionHandlerc          
      ó2   <€ V ^8„  d   QhRS[ RRRRRS[ RR/# ©	r   r	   Úargsútuple[object, ...]r+   ú	list[int]Ústderrr   N©Ústr)r   Ú__classdict__s   "€r   r   ÚInteractionHandler.__annotate__R   s3   ø€ ÷ "ñ "©ð "Ð4Hð "È{ð "Ñdgð "Ðlpñ "r   c              ƒ  ó   "  € \         h5ir8   )ÚNotImplementedError©Úselfr	   r@   r+   rC   s   &&&&&r   Úrun_commandÚInteractionHandler.run_commandR   s   é € Ü!Ð!ùs   ‚	c                óF   <€ V ^8„  d   Qh/ S[ S[S[,          ,          ;R&   # ©r   Úcommands©r   r   rE   )r   rF   s   "€r   r   rG   O   s   ø‡ ‚ Ù‘x¡•}Õ%Ñ%ò r   r   N)r   r   r   r   rL   Ú__annotate_func__r   Ú__classdictcell__©rF   s   @r   r=   r=   O   s   ø‡ € ÷"ð "÷ ƒ r   r=   c                   óŠ   a € ] tR t^Vt o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R	 lR
 lt	V 3R lt
RtV tR# )ÚAskpassHandlerc                ó0   <€ V ^8„  d   QhRS[ RS[ RS[ RR/# )r   ÚmessagesÚpromptÚhintr   z
str | NonerD   )r   rF   s   "€r   r   ÚAskpassHandler.__annotate__Y   s)   ø€ ÷ ñ ©ð ±cð Áð Èñ r   c              ƒ  ó   "  € R# 5i)aË  Prompt the user for an authentication or confirmation interaction.

'messages' is data that was sent to stderr before the interaction was requested.
'prompt' is the interaction prompt.

The expected response type depends on hint:

    - "confirm": ask for permission, returning "yes" if accepted
        - example: authorizing agent operation

    - "none": show a request without need for a response
        - example: please touch your authentication token

    - otherwise: return a password or other form of text token
        - examples: enter password, unlock private key

In any case, the function should properly handle cancellation.  For the
"none" case, this will be the normal way to dismiss the dialog.
Nr   )rK   rX   rY   rZ   s   &&&&r   Ú
do_askpassÚAskpassHandler.do_askpassY   s
   é € ñ( ùó   ‚c                ó>   <€ V ^8„  d   QhRS[ RS[ RS[ RS[ RS[ RS[/# )r   ÚreasonÚhostÚ	algorithmÚkeyÚfingerprintr   )rE   Úbool)r   rF   s   "€r   r   r[   o   s9   ø€ ÷ ñ ¡sð ±#ð Á#ð ÉCð Ñ^að Ñfjñ r   c              ƒ  ó   "  € R# 5i)aA  Prompt the user for a decision regarding acceptance of a host key.

The "reason" will be either "HOSTNAME" or "ADDRESS" (if `CheckHostIP` is enabled).

The host, algorithm, and key parameters are the values in the form that
they would appear one a single line in the known hosts file.  The
fingerprint is the key fingerprint in the format that ssh would
normally present it to the user.

In case the host key should be accepted, this function needs to return
True.  Returning False means that ssh implements its default logic.  To
interrupt the connection, raise an exception.
Fr   )rK   ra   rb   rc   rd   re   s   &&&&&&r   Ú
do_hostkeyÚAskpassHandler.do_hostkeyo   s
   é € ñ ùr_   c          
      ó2   <€ V ^8„  d   QhRS[ RRRRRS[ RR/# r?   rD   )r   rF   s   "€r   r   r[      s5   ø€ ÷ 	ñ 	Ùð	Ø"6ð	Ø=Hð	ÙRUð	à	ñ	r   c              ƒ  ó   "  € R# 5i)z²Handle a custom command.

The command name, its arguments, the passed fds, and the stderr leading
up to the command invocation are all provided.

See doc/interaction-protocol.md
Nr   rJ   s   &&&&&r   Údo_custom_commandÚ AskpassHandler.do_custom_command   s   é ‚ ùr_   c                ó,   <€ V ^8„  d   QhRRRRRS[ RR/# )r   r@   rA   r+   rB   rC   r   NrD   )r   rF   s   "€r   r   r[   Š   s,   ø€ ÷ 1+ñ 1+Ð+?ð 1+Àkð 1+Ñ[^ð 1+Ðcgñ 1+r   c              ƒ  ó  "  € \         P                  R WV4        Vw  rE\        V\        4      '       g   Q h\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   Q h\        V\
        4      '       g   Q h\        ;QJ d*    R VP                  4        4       F  '       d   K   RM	  RM! R VP                  4        4       4      '       g   Q h\        V4      ^8X  g   Q h \        TP                  ^ 4      R4      ;_uu_ 4       p\        TP                  ^ 4      R4      ;_uu_ 4       p \        4       p	 \        P                   ! 4       p
T
f   Q hT	P'                  YzP(                  4       \        T4      ^8X  d�   T^,          pTP+                  RR	4      p\         P                  R
Y;T4       T P-                  Y;T4      G Rj  x€L
 p\         P                  RT4       Te   \/        YØR7       \/        ^ TR7       M¦\        T4      ^8X  d�   Tw  rïppppTR9   dN   \         P                  RTTTTT4       T P1                  TTTTT4      G Rj  x€L
 '       d   \/        TTTTR7       M\         P                  RT4       \/        ^ TR7       M\         P                  RT4       T	P3                  T4        RRR4       RRR4       R#   \        \        \        3 d#   p\         P                  RYT4        Rp?R# Rp?ii ; i  \"         d#    \        P$                  P!                  4       p
 ELâi ; i ELn Læ  X	P3                  T4       i ; i  + '       g   i     L ; i  + '       g   i     R# ; i5i)z_askpass_command(%s, %s, %s)c              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5ir8   ©Ú
isinstancerE   )Ú.0Úargs   & r   Ú	<genexpr>Ú2AskpassHandler._askpass_command.<locals>.<genexpr>�   s   é € Ð<±t°”z #¤s×+Ð+³tùs   ‚FTc              3   óv   "  € T F/  w  r\        V\        4      ;'       d    \        V\        4      x € K1  	  R # 5ir8   rq   )rs   rd   Úvals   &  r   ru   rv   ‘   s-   é € ÐaÑU`ÉÈ”z #¤sÓ+×DÐD´
¸3ÄÓ0DÔDÓU`ùs   ‚9 9z4Invalid arguments to askpass interaction: %s, %s: %sNÚwÚSSH_ASKPASS_PROMPTÚ zdo_askpass(%r, %r, %r)zdo_askpass answer %r)Úfilezdo_hostkey(%r, %r, %r, %r, %r)z$ignoring KnownHostsCommand reason %rz?Incorrect number of command-line arguments to ferny-askpass: %s)ÚADDRESSÚHOSTNAME)ÚloggerÚdebugrr   r*   ÚallÚdictÚitemsr)   Ú
ValueErrorÚ	TypeErrorÚAssertionErrorÚerrorÚopenÚpopr9   r5   Úcurrent_taskr:   ÚTaskÚ
add_readerÚcancelÚgetr]   Úprintrh   Úremove_reader)rK   r@   r+   rC   ÚargvÚenvÚexcÚstatusÚstdoutÚloopÚtaskrY   rZ   ÚanswerÚargv0ra   rb   rc   rd   re   s   &&&&                r   Ú_askpass_commandÚAskpassHandler._askpass_commandŠ   sÈ  é € Ü�‰Ð3°TÀÔGð		Ø‰IˆDÜ˜d¤D×)Ò)Ð)Ð)ß“3Ñ<±tÓ<—3—3’3Ñ<±tÓ<×<Ò<Ð<Ð<Ü˜c¤4×(Ò(Ð(Ð(ß“3ÑaÐUX×U^ÑU^ÔU`Óa—3—3’3ÑaÐUX×U^ÑU^ÔU`Óa×aÒaÐaÐaÜ�s“8˜q”=Ð ‘=ô
 �#—'‘'˜!“*˜c×"Ô" f¬d°3·7±7¸1³:¸s×.CÔ.CÀvð#+Ü'Ó)�ð7Ü"×/Ò/Ó1�Dð Ò'Ð'Ð'Ø—‘ ¯©Ô4ä�t“9 ”>à! !�W�FØŸ7™7Ð#7¸Ó<�DÜ—L‘LÐ!9¸6È4ÔPØ#'§?¡?°6À4Ó#H×H�FÜ—L‘LÐ!7¸Ô@ØÒ)Ü˜fÕ2Ü˜a fÕ-øä˜“Y !”^àGKÑD�E 4¨°C¸ØÐ!8Ô8ÜŸ™Ð%EÀvÈtÐU^Ð`cÐepÔqØ!%§¡°¸¸yÈ#È{Ó![×[Ö[Ü! $¨	°3¸VÕDøäŸ™Ð%KÈVÔTä˜! &Ö)ô —L‘LÐ!bÐdhÔià×"Ñ" 6Õ*÷I /D×"Ñ"øô	 œI¤~Ð6ô 	Ü�L‰LÐOÐQUÐ\_Ô`Ýûð	ûô &ô 7Ü"Ÿ<™<×4Ñ4Ó6“Dð7úò Iñ \øð ×"Ñ" 6Õ*ú÷I /D×.Cú×"×"Ð"üså   ‚N›&K ÁK ÁK Á1$K ÂK Â8(K Ã!K Ã5$NÄ$M3Ä=M 	Ä?
M
Å
LÅA8M
ÇMÇB	M
É!MÉ"	M
É,A
M
Ê6M 	ËM3Ë
NËLË0LÌNÌLÌNÌ)MÌ>M
ÍMÍM
ÍM
Í
MÍM 	Í M0Í+M3Í3N	Í>	Nc          
      ó2   <€ V ^8„  d   QhRS[ RRRRRS[ RR/# r?   rD   )r   rF   s   "€r   r   r[   ½   s:   ø€ ÷ Eñ E©ð EÐ4Hð EÈ{ð EÑdgð EÐlpñ Er   c              ƒ  ó¾   "  € \         P                  R WW44       VR8X  d   V P                  W#V4      G Rj  x€L
  R# V P                  WW44      G Rj  x€L
  R#  L" L5i)zrun_command(%s, %s, %s, %s)úferny.askpassN)r   r€   rš   rl   rJ   s   &&&&&r   rL   ÚAskpassHandler.run_command½   sR   é € Ü�‰Ð2°GÀ3ÔOØ�oÔ%Ø×'Ñ'¨°6Ó:×:Ò:à×(Ñ(¨¸ÓD×DÒDñ ;áDùs!   ‚4A¶A·AÁAÁAÁAc                óF   <€ V ^8„  d   Qh/ S[ S[S[,          ,          ;R&   # rO   rQ   )r   rF   s   "€r   r   r[   V   s   ø‡ ‚ Ù‘x¡•}Õ%Ñ:ò r   r   N)rž   )r   r   r   r   rP   r]   rh   rl   rš   rL   rR   r   rS   rT   s   @r   rV   rV   V   sG   ø‡ € Ø(:€H÷ð ÷,ð ÷ 	ð 	÷1+ð 1+÷fEð E÷O ƒ r   rV   c                   óì   a € ] tR t^Åt o RtRtV 3R lR ltV 3R lR ltV 3R lR ltV 3R	 lR
 lt	V 3R lR lt
RV 3R lR lltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R ltRtV tR# )ÚInteractionAgentNFc                ó   <€ V ^8„  d   QhRR/# ©r   r   Nr   )r   rF   s   "€r   r   ÚInteractionAgent.__annotate__Ô   s   ø€ ÷ Hñ H dñ Hr   c                óP  € \         P                  R V 4       V P                  e   V P                  '       d   \         P                  R4       R# V P                  P                  4       '       d   \         P                  R4       R# \        V P                  \        4      '       dH   \         P                  RV P                  4       V P                  P                  V P                  4       R# \         P                  R4       V P                  P                  V P                  4       R# )z_consider_completion(%r)Nz  but not ready yetz  but already completez-  submitting stderr (%r) to completion_futurez0  submitting exception (%r) to completion_future)
r   r€   Ú_pending_resultÚ_tasksÚ_completion_futureÚdonerr   rE   Ú
set_resultÚset_exception©rK   s   &r   Ú_consider_completionÚ%InteractionAgent._consider_completionÔ   s¿   € Ü�‰Ð/°Ô6à×ÑÒ'¨4¯;¯;¨;Ü�L‰LÐ.Ö/à×$Ñ$×)Ñ)×+Ò+Ü�L‰LÐ1Ö2ä˜×,Ñ,¬c×2Ò2Ü�L‰LÐHÈ$×J^ÑJ^Ô_Ø×#Ñ#×.Ñ.¨t×/CÑ/CÖDô �L‰LÐKÔLØ×#Ñ#×1Ñ1°$×2FÑ2FÖGr   c                ó"   <€ V ^8„  d   QhRRRR/# )r   Úresultzstr | Exceptionr   Nr   )r   rF   s   "€r   r   r¥   å   s   ø€ ÷ $ñ $Ð/ð $°Dñ $r   c                ób  € \         P                  R W4       V P                  f   Wn        V P                  P	                  4       R8w  dT   \         P                  RV P                  4       V P
                  P                  V P                  P	                  4       4       V P                   F)  p\         P                  RV4       VP                  4        K+  	  \         P                  R4       V P                  P                  4        V P                  P                  4        V P                  4        R# )z_result(%r, %r)Nz  remove_reader(%r)z    cancel(%r)z  closing socketséÿÿÿÿ)r   r€   r§   Ú_oursÚfilenoÚ_loopr�   r¨   r�   Ú_theirsÚcloser®   )rK   r±   r—   s   && r   Ú_resultÚInteractionAgent._resultå   sË   € Ü�‰Ð&¨Ô5à×ÑÒ'Ø#)Ô à�:‰:×ÑÓ "Ô$Ü�L‰LÐ.°·
±
Ô;Ø�J‰J×$Ñ$ T§Z¡Z×%6Ñ%6Ó%8Ô9à—K”KˆDÜ�L‰LÐ)¨4Ô0Ø�K‰KŽMñ  ô 	�‰Ð(Ô)Ø�‰×ÑÔØ�
‰
×ÑÔà×!Ñ!Ö#r   c                ó,   <€ V ^8„  d   QhRRRS[ RRRR/# )r   rC   zbytes | bytearrayÚcommand_blobr+   rB   r   N©Úbytes)r   rF   s   "€r   r   r¥   ù   s,   ø€ ÷ .ñ .Ð&9ð .Éð .ÐU`ð .Ðeiñ .r   c           	     ój  a aa	a
€ \         P                  R WV4        \        P                  ! VP	                  4       4      w  rE\        V\        4      '       d   \        V\        4      '       g   \        R4      h TR8X  d5   RS n        S P                  S P                  P	                  RR7      4       R#  S P                   T,          o\%        T4      o
S P&                  P)                  SP+                  YES
TP	                  4       4      4      o	R	 TT T	T
3R
 llpS	P-                  T4       S P.                  P1                  S	4       . TR&   R#   \        \        \        \        3 d"   p\         P                  RY&4        Rp?R# Rp?ii ; i  \"         d    \         P                  RT4        R# i ; i)z_invoke_command(%r, %r, %r)zInvalid argument typesz&Received invalid ferny command: %s: %sNz	ferny.endTÚreplace©Úerrorsz$Received unhandled ferny command: %sc                ó    € V ^8„  d   QhRRRR/# )r   Úcompleted_taskzasyncio.Task[None]r   Nr   )r   s   "r   r   Ú6InteractionAgent._invoke_command.<locals>.__annotate__  s   € ÷ 	(ñ 	(Ð(<ð 	(Àñ 	(r   c                 óð  <€ V SJ g   Q hS'       d'   \         P                  ! SP                  4       4       K.  SP                  P	                  S4        SP                  4        \        P                  R S4       SP                  4        R#   \        P                   d    \        P                  RS4        L?\         d3   p\        P                  RST4       SP                  T4        Rp?LvRp?ii ; i)z%r completed cleanlyz%r was cancelledz%r raised %rN)Úosr¸   r‰   r¨   Úremover±   r   r€   r5   ÚCancelledErrorÚ	Exceptionr¹   r®   )rÄ   r“   ÚhandlerrK   r—   Útask_fdss   & €€€€r   Úbottom_halfÚ5InteractionAgent._invoke_command.<locals>.bottom_half  s±   ø€ Ø! TÓ)Ð)Ð)ßÜ—’˜Ÿ™›Ö(Ø�K‰K×Ñ˜tÔ$ð"Ø—‘”Ü—‘Ð3°WÔ=ð ×%Ñ%Ö'øô ×)Ñ)ô :ä—‘Ð/°Ö9Üô "Ü—‘˜^¨W°cÔ:Ø—‘˜S×!Ñ!ûð"ús$   Á&B Â+C5Â9C5ÃC5Ã(C0Ã0C5:NNN)r   r€   ÚastÚliteral_evalÚdecoderr   rE   Útupler…   ÚUnicodeDecodeErrorÚSyntaxErrorr„   r‡   Ú_endr¹   Ú_bufferÚ	_handlersÚKeyErrorr*   r¶   Úcreate_taskrL   Úadd_done_callbackr¨   Úadd)rK   rC   r¼   r+   r	   r@   r“   rÍ   rË   r—   rÌ   s   f&&&    @@@r   Ú_invoke_commandÚ InteractionAgent._invoke_commandù   s_  û€ Ü�‰Ð2°FÈ#ÔNð	Ü×,Ò,¨\×-@Ñ-@Ó-BÓC‰MˆGÜ˜g¤s×+Ò+´:¸dÄE×3JÒ3JÜÐ 8Ó9Ð9ð 4Kð �kÔ!ØˆDŒIØ�L‰L˜Ÿ™×,Ñ,°IÐ,Ó>Ô?Ùð	Ø—n‘n WÕ-ˆGô ˜“9ˆØ�z‰z×%Ñ% g×&9Ñ&9¸'ÈÐSY×S`ÑS`ÓSbÓ&cÓdˆ÷	(ó 	(ð$ 	×Ñ˜{Ô+Ø�‰�‰˜ÔØˆˆA‹øôQ #¤K´¼YÐGô 	Ü�L‰LÐAÀ<ÔUÝûð	ûô ô 	Ü�L‰LÐ?ÀÔIÚð	ús/   �;E Á!E Â7F ÅF
Å)FÆF
Æ!F2Æ1F2c                ó(   <€ V ^8„  d   QhRS[ RRRR/# )r   Údatar+   rB   r   Nr½   )r   rF   s   "€r   r   r¥   )  s"   ø€ ÷ 7ñ 7™eð 7¨+ð 7¸$ñ 7r   c                ó<  € \         P                  R W4       VR8X  d.   V P                  V P                  P	                  RR7      4       R# V P                  P                  V4       \        P                  V P                  4      p\        VP                  4       4      V n        \        V4      ^8”  d-   V P                  V^ ,          V^,          . 4       VR,          pK<  V'       d£   V P                  P                  R4      '       g   Q V P                  4       hV P                  RR p\        R4      V n        \        VP                  ^ 4      R4      ;_uu_ 4       pVP                  4       pRRR4       V P                  VXV4       R# R#   + '       g   i     L'; i)	z_got_data(%r, %r)r   rÀ   rÁ   N:r   NNó    Úrbr³   )r   r€   r¹   rÖ   rÑ   ÚextendÚ
COMMAND_REÚsplitÚ	bytearrayr‰   r)   rÜ   Úendswithrˆ   Úread)rK   rß   r+   ÚchunksrC   Úcommand_channelr	   s   &&&    r   Ú	_got_dataÚInteractionAgent._got_data)  s/  € Ü�‰Ð(¨$Ô4à�3Œ;Ø�L‰L˜Ÿ™×,Ñ,°IÐ,Ó>Ô?Ùà�‰×Ñ˜DÔ!ô ×!Ñ! $§,¡,Ó/ˆÜ  §¡£Ó.ˆŒÜ�&‹k˜AŒoØ× Ñ  ¨¥¨F°1­I°rÔ:Ø˜B•ZŠF÷ Ø—<‘<×(Ñ(¨×/Ò/Ð=°·±Ó=Ð/Ø—\‘\ # 2Ð&ˆFÜ$ S›>ˆDŒLÜ�c—g‘g˜a“j $×'Ô'¨?Ø)×.Ñ.Ó0�÷ (à× Ñ  ¨°#Ö6ñ ÷ (×'ús   ÅFÆF	c                ó   <€ V ^8„  d   QhRR/# r¤   r   )r   rF   s   "€r   r   r¥   B  s   ø€ ÷ $ñ $˜Tñ $r   c                ó  €  \        V P                  R ^
\        P                  R7      w  rr4V P	                  W4       X'       d'   \        P                  ! TP                  4       4       K.  R#   \
         d3     X'       d'   \        P                  ! TP                  4       4       K.  R# \         d   pT P                  T4        Rp?LŒRp?ii ; i  X'       d'   \        P                  ! TP                  4       4       K.  i ; i)é   )r   N)r2   r´   r   ÚMSG_DONTWAITrë   ÚBlockingIOErrorrÇ   r¸   r‰   ÚOSErrorr¹   )rK   rß   r+   Ú_flagsÚ_addrr“   s   &     r   Ú_read_readyÚInteractionAgent._read_readyB  sµ   € ð
	$Ü'/°·
±
¸DÀ"ÌF×L_ÑL_Ô'`Ñ$ˆD�vð �N‰N˜4Ô%çÜ—’˜Ÿ™›Ö#ñ øô ô 	Ø÷ Ü—’˜Ÿ™›Ö#ñ ô ô 	Ø�L‰L˜×Ñûð	û÷
 Ü—’˜Ÿ™›Ö#ð úsF   ‚*A- ¬C Á-CÁ8C Â)CÂ2CÂ3C	ÃC Ã	CÃC ÃDÃ'Dc                ó<   <€ V ^8„  d   QhRS[ S[,          RRRRRR/# )r   Úhandlersr–   z asyncio.AbstractEventLoop | NoneÚdone_callbackz,Callable[[asyncio.Future[str]], None] | Noner   N)r   r=   )r   rF   s   "€r   r   r¥   O  s:   ø€ ÷ #ñ #áÑ-Õ.ð#ð 1ð#ð Fð	#ð
 
ñ#r   c                óÒ  € T;'       g    \        4       V n        V P                  P                  4       V n        \	        4       V n        / V n        V F$  pVP                   F  pW@P                  V&   K  	  K&  	  Ve   V P                  P                  V4       \        P                  ! \        P                  \        P                  4      w  V n        V n        \        4       V n        R # r8   )r9   r¶   Úcreate_futurer©   Úsetr¨   r×   rP   rÚ   r   Ú
socketpairÚAF_UNIXÚSOCK_STREAMr·   r´   ræ   rÖ   )rK   rø   r–   rù   rË   r	   s   &&&&  r   Ú__init__ÚInteractionAgent.__init__O  s¬   € ð ×/Ð/Ô-Ó/ˆŒ
Ø"&§*¡*×":Ñ":Ó"<ˆÔÜ“eˆŒØˆŒãˆGØ"×+Ô+�Ø*1—‘˜wÓ'ó ,ñ  ð Ò$Ø×#Ñ#×5Ñ5°mÔDä#)×#4Ò#4´V·^±^ÄV×EWÑEWÓ#XÑ ˆŒ�d”jÜ “{ˆŽr   c                ó    <€ V ^8„  d   QhRS[ /# r4   )r   )r   rF   s   "€r   r   r¥   d  s   ø€ ÷ %ñ %™ñ %r   c                ó6   € V P                   P                  4       # r8   )r·   rµ   r­   s   &r   rµ   ÚInteractionAgent.filenod  s   € Ø�|‰|×"Ñ"Ó$Ð$r   c                ó   <€ V ^8„  d   QhRR/# r¤   r   )r   rF   s   "€r   r   r¥   g  s   ø€ ÷ 	ñ 	�tñ 	r   c                óÌ  € \         P                  R V 4       V P                  P                  4       R8w  d`   \         P                  RV P                  4       V P                  P                  V P                  P                  4       V P                  4       M\         P                  R4       \         P                  RV P                  4       V P                  P                  4        R# )z	start(%r)z  add_reader(%r)z#  ...but agent is already finished.z  close(%r)Nr³   )	r   r€   r´   rµ   r¶   rŒ   rõ   r·   r¸   r­   s   &r   ÚstartÚInteractionAgent.startg  sŽ   € Ü�‰�[ $Ô'Ø�:‰:×ÑÓ "Ô$Ü�L‰LÐ+¨T¯Z©ZÔ8Ø�J‰J×!Ñ! $§*¡*×"3Ñ"3Ó"5°t×7GÑ7GÕHä�L‰LÐ>Ô?ä�‰�] D§L¡LÔ1Ø�‰×ÑÖr   c                ó   <€ V ^8„  d   QhRR/# r¤   r   )r   rF   s   "€r   r   r¥   r  s   ø€ ÷ @ñ @ $ñ @r   c                ó¢  € \         P                  R V 4        V P                  P                  4       R8w  d±   \         P                  R4       \        P
                  ! \        4      ;_uu_ 4         V P                  P                  R\        P                  4      p\         P                  R\        V4      4       V'       g   MV P                  P                  V4       Kp  RRR4       V P                  V P                  P                  RR7      4       R#   + '       g   i     L=; i  \         d   pT P                  T4        Rp?R# Rp?ii ; i)zforce_completion(%r)z-  draining pending stderr data (non-blocking)rï   z    got %d bytesNrÀ   rÁ   r³   )r   r€   r´   rµ   Ú
contextlibÚsuppressrñ   Úrecvr   rð   r)   rÖ   rã   r¹   rÑ   rò   )rK   rß   r“   s   &  r   Úforce_completionÚ!InteractionAgent.force_completionr  sà   € Ü�‰Ð+¨TÔ2ð	@Ø�z‰z× Ñ Ó" bÔ(Ü—‘ÐLÔMÜ×(Ò(¬×9Õ9ØØ#Ÿz™zŸ™¨t´V×5HÑ5HÓI˜ÜŸ™Ð%7¼¸T»ÔCß#Ø!ØŸ™×+Ñ+¨DÖ1÷ :ð �L‰L˜Ÿ™×,Ñ,°IÐ,Ó>Ö?÷ :×9ûô ô 	Ø�L‰L˜×Òûð	ús1   ˜AD' Á.A1DÃD' ÄD$	ÄD' Ä'EÄ2E	Å	Ec                ó   <€ V ^8„  d   QhRR/# r¤   r   )r   rF   s   "€r   r   r¥   †  s   ø€ ÷ 3ñ 3 4ñ 3r   c              ƒ  óú  "  € \         P                  R V 4        V P                  4        \        P                  ! V P
                  4      G Rj  x€L
 p\         P                  RW4       \         P                  R4       V P                  4        V P                  '       g/   \         P                  R4       \        VP                  4       4      hR#  L�  \         P                  R4       T P                  4        i ; i5i)z_communicate(%r)Nz$_communicate(%r) stderr result is %rz,_communicate finished.  Ensuring completion.z<_communicate never saw ferny.end.  raising InteractionError.)
r   r€   r  r5   Úshieldr©   r  rÕ   r   Ústrip)rK   rC   s   & r   ÚcommunicateÚInteractionAgent.communicate†  s±   é € Ü�‰Ð'¨Ô.ð
	$Ø�J‰JŒLô
 #Ÿ>š>¨$×*AÑ*AÓB×BˆFÜ�L‰LÐ?ÀÔNä�L‰LÐGÔHØ×!Ñ!Ô#Ø�y�yˆyÜ�L‰LÐWÔXÜ" 6§<¡<£>Ó2Ð2ñ ñ Cøô �L‰LÐGÔHØ×!Ñ!Õ#üs4   ‚C;š3C ÁCÁC Á(6C;Â0C;ÃC Ã'C8Ã8C;c                óº   <€ V ^8„  d   Qh/ R;R&   S[ P                  ;R&   R;R&   S[;R&   S[P                  ;R&   S[P                  ;R&   R	;R
&   R;R&   S[;R&   # )r   zdict[str, InteractionHandler]r×   r¶   zset[asyncio.Task[None]]r¨   rÖ   r´   r·   zasyncio.Future[str]r©   zNone | str | Exceptionr§   rÕ   )r5   r6   ræ   r   rf   )r   rF   s   "€r   r   r¥   Å   s†   ø‡ ‚ Ø.Ñ.ñ ñ ×$Ñ$Ñ$ñ ð
 &Ñ%ñ ñ Ññ ñ �=‰=Ññ ñ �]‰]Ññ ð .Ñ-ñ ð .Ñ4ñ ñ Ñò r   )	rÖ   r©   rÕ   r×   r¶   r´   r§   r¨   r·   )NN)r   r   r   r   r§   rÕ   r®   r¹   rÜ   rë   rõ   r   rµ   r  r  r  rR   r   rS   rT   s   @r   r¢   r¢   Å   s‚   ø‡ € ð 15€OØ€D÷Hð H÷"$ð $÷(.ð .÷`7ð 7÷2$ð $÷#ò #÷*%ð %÷	ð 	÷@ð @÷(3ð 3÷C ƒ r   r¢   c                ó0   € V ^8„  d   QhR\         R\         /# )r   Útmpdirr   rD   )r   s   "r   r   r   ˜  s   € ÷ ñ ¤Cð ¬Cñ r   c                 ó  € \         P                  P                  V R 4      p\         P                  ! V\         P                  \         P
                  ,          \         P                  ,          \         P                  ,          \         P                  ,          R4      p \         P                  ! V\        P                  \        P                  4      4       \         P                  ! V4       V#   \         P                  ! T4       i ; i)zferny-askpassiÿ  )rÇ   ÚpathÚjoinrˆ   ÚO_CREATÚO_WRONLYÚ	O_CLOEXECÚO_EXCLÚ
O_NOFOLLOWÚwriteÚ
__loader__Úget_datar   Ú__file__r¸   )r  Úaskpass_pathÚfds   &  r   Úwrite_askpass_to_tmpdirr'  ˜  s™   € Ü—7‘7—<‘< ¨Ó8€LÜ	�Š�œrŸz™z¬B¯K©KÕ7¼"¿,¹,ÕFÌÏÉÕRÔUW×UbÑUbÕbÐdiÓ	j€BðÜ
�Š�”Z×(Ñ(Ô);×)DÑ)DÓEÔFä
�Š�ŒØÐøô 	�Š��ús   Â8C, Ã,Dc                óL   € V ^8„  d   QhR\         R\        \        RR3,          /# )r   Úkwargsr   N)r   r   rE   )r   s   "r   r   r   £  s%   € ÷ 1ñ 1¤ð 1¬	´#°t¸T°/Õ(Bñ 1r   c               +   óž   "  € \         P                  ! R/ V B ;_uu_ 4       p\        V4      x € R R R 4       R #   + '       g   i     R # ; i5i)Nr   )ÚtempfileÚTemporaryDirectoryr'  )r)  Ú	directorys   , r   Útemporary_askpassr.  ¢  s4   é € ä	×	$Ò	$Ñ	. v×	.Ò	.°)Ü% iÓ0Ò0÷ 
/×	.×	.Ò	.üs   ‚A¡9¯
A¹A
	Á	A)r   )#r"   rÏ   r5   r  ÚloggingrÇ   Úrer   r+  Útypingr   r   r   r   r   r{   r   Ú	getLoggerr   r   Úcompilerä   ÚCOMMAND_TEMPLATEÚBEIBOOT_GADGETSrÊ   r   r2   r:   r9   r=   rV   r¢   r'  Úcontextmanagerr.  r   r   r   Ú<module>r7     s  ðó$ Û 
Û Û Û Û 	Û 	Û Û ß ?Õ ?å  à	×	Ò	˜8Ó	$€ð �ZŠZÐ2Ó3€
Ø7Ð ð ð ð  0Ñ2ð 3ðð 
ð ð€ô	�yô 	ð+Ø�‰€Hõ(÷"ñ "ôlEÐ'ô lE÷^P3ñ P3õfð ×Ñô1ó ò1øðU ô +÷+ñ +ð+ús   Á6C ÃCÃC