+
    O×iå  ã                   óF  € ^ 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 ^RIHt ^RIHtHtHtHt ]P&                  ! R4      P(                  t]P*                  ! ]4      t^t]P2                  ! 4       RR R ll4       t ! R R4      t ! R	 R
]]4      tR# )é    N)ÚMappingÚSequence)Ú
ssh_errors)ÚInteractionAgentÚInteractionErrorÚInteractionHandlerÚwrite_askpass_to_tmpdirc                ó<   € V ^8„  d   QhR\         R\         R\        /# )é   ÚfeatureÚteststrÚreturn©ÚstrÚbool)Úformats   "Ú?/usr/lib/python3/dist-packages/cockpit/_vendor/ferny/session.pyÚ__annotate__r   &   s!   € ÷ ñ œð ¤sð ´Tñ ó    c                 ó    €  \         P                  ! R RV  RV 2RR.\         P                  R7       R#   \         P                   d     R# i ; i)Ússhú-oÚ z-GÚnonexisting)ÚstderrTF)Ú
subprocessÚcheck_outputÚDEVNULLÚCalledProcessError)r   r   s   &&r   Úhas_featurer    %   sO   € ðÜ×Ò ¨"¨W¨I°Q°w°iÐ(@À$ÈÐ VÔ_i×_qÑ_qÕrÙøÜ×(Ñ(ô Úðús   ‚04 ´AÁAc                   óD   a € ] tR t^.t o V 3R lR ltV 3R lR ltRtV tR# )ÚSubprocessContextc                óF   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          /# ©r   Úargsr   ©r   r   )r   Ú__classdict__s   "€r   r   ÚSubprocessContext.__annotate__/   s#   ø€ ÷ ñ ©±#­ð ¹8ÁC½=ñ r   c                ó   € V# )ax  Return the args required to launch a process in the given context.

For example, this might return a vector with
    ["sudo"]
or
    ["flatpak-spawn", "--host"]
prepended.

It is also possible that more substantial changes may be performed.

This function is not permitted to modify its argument, although it may
(optionally) return it unmodified, if no changes are required.
© ©Úselfr%   s   &&r   Úwrap_subprocess_argsÚ&SubprocessContext.wrap_subprocess_args/   s	   € ð ˆr   c                óR   <€ V ^8„  d   QhRS[ S[S[3,          RS[ S[S[3,          /# )r   Úenvr   )r   r   )r   r'   s   "€r   r   r(   ?   s-   ø€ ÷ 
ñ 
¡w©s±C¨xÕ'8ð 
¹WÁSÉ#ÀXÕ=Nñ 
r   c                ó   € V# )a:  Return the envp required to launch a process in the given context.

For example, this might set the "SUDO_ASKPASS" environment variable, if
needed.

As with wrap_subprocess_args(), this function is not permitted to
modify its argument, although it may (optionally) return it unmodified
if no changes are required.
r*   )r,   r0   s   &&r   Úwrap_subprocess_envÚ%SubprocessContext.wrap_subprocess_env?   s	   € ð ˆ
r   r*   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r-   r2   Ú__static_attributes__Ú__classdictcell__©r'   s   @r   r"   r"   .   s   ø‡ € ÷ð ÷ 
ö 
r   r"   c                   ó¨   a € ] tR t^Lt o RtRtR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R ltV 3R ltRtV tR# )ÚSessionNc                óF   <€ V ^8„  d   QhRS[ RS[RRRRRRRRR	RR
RRRRR/
# )r   ÚdestinationÚhandle_host_keyÚ
configfileú
str | NoneÚidentity_fileÚ
login_nameÚoptionszMapping[str, str] | NoneÚpkcs11Úportz
int | NoneÚinteraction_responderzInteractionHandler | Noner   Nr   )r   r'   s   "€r   r   ÚSession.__annotate__T   s|   ø€ ÷ Xñ XÙ#&ðXá'+ðXð #/ðXð &2ð	Xð
 #/ðXð  :ðXð +ðXð )ðXð .IðXð UYñXr   c
              ƒ  óF  "  € \         P                  P                  \         P                  P	                  R R4      R4      p
\         P
                  ! V
RR7       \        P                  ! V
R7      V n        V P                  P                   R2V n
        \        V P                  P                  4      p\        \         P                  4      pW¼R&   RVR	&   R
VR&   RRRV P                  RRRRV 2.pVe   VP                  RV 24       Ve   VP                  RV 24       Ve'   V F   pVP                  RV RWn,           24       K"  	  Ve   VP                  RV 24       Ve   VP                  RV 24       Ve   VP                  RV 24       V'       d+   \        R4      '       d   VP                  RRV R2RR.4       \!        V	e   V	.M. 4      p\"        P$                  ! R.VORNVN5RVR RR!\"        P&                  P(                  R"\"        P&                  P(                  R#VR$R% / G Rj  x€L
 p VP+                  4       G Rj  x€L
  \         P                  P-                  V P                  4      '       g   Q hVV n        R#  LW L@  \0         d?   pTP3                  4       G Rj  x€L 
  \4        P6                  ! \9        T4      4      RhRp?i\:         d?     TP=                  4        M  \>         d     Mi ; iTP3                  4       G Rj  x€L 
  h i ; i5i)&ÚXDG_RUNTIME_DIRz/runÚfernyT)Úexist_ok)Údirz/socketÚSSH_ASKPASSÚforceÚSSH_ASKPASS_REQUIREÚ-ÚDISPLAYz-Mz-Nú-Sr   zPermitLocalCommand=yeszLocalCommand=Nz-Fz-ir   z-Iz-pz-lÚKnownHostsCommandzKnownHostsCommand=z %I %H %t %K %fzStrictHostKeyChecking=yesr   z--r0   Ústart_new_sessionÚstdinÚstdoutr   Ú
preexec_fnc                  ó>   € \        \        \        P                  4      # ©N)ÚprctlÚPR_SET_PDEATHSIGÚsignalÚSIGKILLr*   r   r   Ú<lambda>Ú!Session.connect.<locals>.<lambda>—   s   € œuÔ%5´v·~±~ÔFr   ) ÚosÚpathÚjoinÚenvironÚgetÚmakedirsÚtempfileÚTemporaryDirectoryÚ_controldirÚnameÚ_controlsockr	   ÚdictÚappendr    Úextendr   ÚasyncioÚcreate_subprocess_execr   r   ÚcommunicateÚexistsÚ_processr   Úwaitr   Úget_exception_for_ssh_stderrr   ÚBaseExceptionÚkillÚProcessLookupError)r,   r>   r?   r@   rB   rC   rD   rE   rF   rG   ÚrundirÚaskpass_pathr0   r%   ÚkeyÚagentÚprocessÚexcs   &&&&&&&&&&        r   ÚconnectÚSession.connectT   s
  é € ô —‘—‘œbŸj™jŸn™nÐ->ÀÓGÈÓQˆÜ
�Š�F TÕ*Ü#×6Ò6¸6ÔBˆÔØ#×/Ñ/×4Ñ4Ð5°WÐ=ˆÔô /¨t×/?Ñ/?×/DÑ/DÓEˆä”2—:‘:ÓˆØ)ˆMÑØ%,ˆÐ!Ñ"àˆˆI‰ð ØØ�$×#Ñ#ØÐ*Ø�M , Ð0ð
ˆð Ò!Ø�K‰K˜"˜Z˜LÐ)Ô*àÒ$Ø�K‰K˜"˜]˜OÐ,Ô-àÒÛ�Ø—‘˜b   Q w¥| nÐ5Ö6ñ ð ÒØ�K‰K˜"˜V˜H˜Ô&àÒØ�K‰K˜"˜T˜F˜Ô$àÒ!Ø�K‰K˜"˜Z˜LÐ)Ô*çœ{Ð+>×?Ò?Ø�K‰KØÐ*¨<¨.¸ÐHØÐ1ðô ô
 !Ð<QÒ<]Ð"7Ñ!8ÐceÓfˆô  ×6Ò6ØÐ.�dÐ.˜DÐ. +Ñ.ðHØ47ðHà"ðHä*1×*<Ñ*<×*DÑ*DðHô ×%Ñ%×-Ñ-ðHð 7<ðHñ Gñ	H÷ Hˆð	Ø×#Ñ#Ó%×%Ð%Ü—7‘7—>‘> $×"3Ñ"3×4Ò4Ð4Ð4Ø#ˆDŽMñHñ &øô  ô 	NØ—,‘,“.× Ñ Ü×9Ò9¼#¸c»(ÓCÈÐMûÜô 
	ð
Ø—‘•øÜ%ô Ùðúà—,‘,“.× Ñ Øð
	üs—   ‚FL!ÆBL!È2J
È3L!È8J ÉJÉ2J É?	J ÊL!ÊJ ÊLÊKÊ,J/Ê-%KËLËLË!K2Ë1LË2L Ë=LË?L Ì LÌLÌLÌL!c                ó    <€ V ^8„  d   QhRS[ /# )r   r   )r   )r   r'   s   "€r   r   rH   ®   s   ø€ ÷ )ñ )™dñ )r   c                ó   € V P                   R J# rZ   )rs   ©r,   s   &r   Úis_connectedÚSession.is_connected®   s   € Ø�}‰} DÐ(Ð(r   c                ó   <€ V ^8„  d   QhRR/# ©r   r   Nr*   )r   r'   s   "€r   r   rH   ±   s   ø€ ÷ #ñ #˜Dñ #r   c              ƒ  óv   "  € V P                   f   Q hV P                   P                  4       G R j  x€L
  R #  L5irZ   )rs   rt   rƒ   s   &r   rt   ÚSession.wait±   s+   é € Ø�}‰}Ò(Ð(Ð(Ø�m‰m× Ñ Ó"×"Ô"ùs   ‚.9°7±9c                ó   <€ V ^8„  d   QhRR/# r‡   r*   )r   r'   s   "€r   r   rH   µ   s   ø€ ÷ "ñ "�dñ "r   c                óZ   € V P                   f   Q hV P                   P                  4        R # rZ   )rs   Ú	terminaterƒ   s   &r   ÚexitÚSession.exitµ   s"   € Ø�}‰}Ò(Ð(Ð(Ø�‰×ÑÖ!r   c                ó   <€ V ^8„  d   QhRR/# r‡   r*   )r   r'   s   "€r   r   rH   ¹   s   ø€ ÷ ñ  $ñ r   c              ƒ  ób   "  € V P                  4        V P                  4       G R j  x€L
  R #  L5irZ   )r�   rt   rƒ   s   &r   Ú
disconnectÚSession.disconnect¹   s   é € Ø�	‰	ŒØ�i‰i‹k×Ôùs   ‚$/¦-§/c                óF   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          /# r$   r&   )r   r'   s   "€r   r   rH   ¾   s'   ø€ ÷ Mñ M©±#­ð M¹8ÁC½=ñ Mr   c                óx   € V P                   f   Q hRRV P                   R.\        \        P                  V4      O5# )Nr   rS   Ú )rk   ÚmapÚshlexÚquoter+   s   &&r   r-   ÚSession.wrap_subprocess_args¾   s;   € Ø× Ñ Ò,Ð,Ð,ð �t˜T×.Ñ.°ÐL´S¼¿¹ÀdÓ5KÑLÐLr   c                ó8   <€ V ^8„  d   Qh/ R;R&   R;R&   R;R&   # )r   z'tempfile.TemporaryDirectory[str] | Noneri   rA   rk   z!asyncio.subprocess.Process | Noners   r*   )r   r'   s   "€r   r   rH   L   s*   ø‡ ‚ à:ÑAñ ð Ñ%ñ ð 2Ñ8ò r   )ri   rk   rs   )FNNNNNNN)r4   r5   r6   r7   ri   rk   rs   r   r„   rt   r�   r‘   r-   Ú__annotate_func__r8   r9   r:   s   @r   r<   r<   L   s_   ø‡ € à=A€KØ!%€Lð 59€H÷Xò X÷t)ð )÷#ð #÷"ð "÷ð ÷
Mð M÷e ƒ r   r<   )Úx)ro   ÚctypesÚ	functoolsÚloggingra   r—   r]   r   rg   Útypingr   r   r•   r   Úinteraction_agentr   r   r   r	   ÚCDLLr[   Ú	getLoggerr4   Úloggerr\   Ú	lru_cacher    r"   r<   r*   r   r   Ú<module>r¦      s“   ðó$ Û Û Û Û 	Û Û Û Û ß $å ß nÓ nà�Š�DÓ×Ñ€Ø	×	Ò	˜8Ó	$€ØÐ ð ×ÒÓöó ð÷ñ ô<zMÐÐ!3ö zMr   