+
    O×iÔ  ã                   óR  € ^ RI t ^ RIt^ RIHtHtHt ^RIHt ] P                  ! ]	4      t
 ! R R4      t ! R R]4      tRR	R
RRRRRRRRR/t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      tR  R! ltR" R# lt ! R$ R%]4      tR# )&é    N)ÚClassVarÚMatchÚSequence)ÚAskpassHandlerc                   óŠ   a € ] tR t^
t 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# )ÚAskpassPromptaz  An askpass prompt resulting from a call to ferny-askpass.

stderr: the contents of stderr from before ferny-askpass was called.
        Likely related to previous failed operations.
messages: all but the last line of the prompt as handed to ferny-askpass.
          Usually contains context about the question.
prompt: the last line handed to ferny-askpass.  The prompt itself.
c                ó0   <€ V ^8„  d   QhRS[ RS[ RS[ RR/# )é   ÚpromptÚmessagesÚstderrÚreturnN©Ústr)ÚformatÚ__classdict__s   "€ÚC/usr/lib/python3/dist-packages/cockpit/_vendor/ferny/ssh_askpass.pyÚ__annotate__ÚAskpassPrompt.__annotate__   s)   ø€ ÷ ñ ™sð ©cð ¹3ð À4ñ ó    c                ó*   € W0n         W n        Wn        R # ©N)r   r   r   )Úselfr   r   r   s   &&&&r   Ú__init__ÚAskpassPrompt.__init__   s   € ØŒØ ŒØŽr   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r
   Úresponser   Nr   )r   r   s   "€r   r   r      s   ø€ ÷ ñ ™cð  dñ r   c                ó   € R # r   © )r   r   s   &&r   ÚreplyÚAskpassPrompt.reply   ó   € Ùr   c                ó   <€ V ^8„  d   QhRR/# )r
   r   Nr   )r   r   s   "€r   r   r      s   ø€ ÷ ñ �tñ r   c                ó   € R # r   r   )r   s   &r   ÚcloseÚAskpassPrompt.close   r"   r   c                ó"   <€ V ^8„  d   QhRRRR/# )r
   Ú	responderÚSshAskpassResponderr   Nr   )r   r   s   "€r   r   r   "   s   ø€ ÷ ñ Ð*?ð ÀDñ r   c              ƒ  óº   "  €  V P                  V4      G R j  x€L
 pVe   V P                  V4       V P                  4        R #  L+  T P                  4        i ; i5ir   )Údispatchr    r%   )r   r(   r   s   && r   Ú
handle_viaÚAskpassPrompt.handle_via"   sG   é € ð	Ø!Ÿ]™]¨9Ó5×5ˆHØÒ#Ø—
‘
˜8Ô$à�J‰JŽLñ	 6øð �J‰J�Lüs+   ‚A„A ˜A™A ²AÁA ÁAÁAc                ó"   <€ V ^8„  d   QhRRRR/# ©r
   r(   r)   r   ú
str | Noner   )r   r   s   "€r   r   r   *   s   ø€ ÷ /ñ /Ð(=ð /À,ñ /r   c              ƒ  ó@   "  € VP                  V 4      G R j  x€L
 #  L5ir   ©Ú	do_prompt©r   r(   s   &&r   r+   ÚAskpassPrompt.dispatch*   s   é € Ø×(Ñ(¨Ó.×.Ð.Ñ.ùó   ‚—˜c                ó>   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   # )r
   r   r   r   r   )r   r   s   "€r   r   r   
   s)   ø‡ ‚ ñ �Kñ ñ �Mñ ñ �Kò r   )r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r    r%   r,   r+   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r   
   sD   ø‡ € ñ÷ð ÷
ð ÷ð ÷ð ÷/ð /÷A ƒ r   r   c                   óR   a a€ ] tR t^.t oRtRtV3R lV 3R lltV3R ltRtVt	V ;t
# )ÚSSHAskpassPromptNc          
      ó4   <€ V ^8„  d   QhRS[ RS[ RS[ RRRR/# )r
   r   r   r   Úmatchz
Match[str]r   Nr   )r   r   s   "€r   r   ÚSSHAskpassPrompt.__annotate__:   s1   ø€ ÷ >ñ >™sð >©cð >¹3ð >À|ð >ÐX\ñ >r   c                ó\  <€ \         SV `  WV4       V P                  P                  VP	                  4       4       V P
                   Fa  p\        P                  ! \        V4      V\        P                  4      pVf   K8  V P                  P                  VP	                  4       4       Kc  	  R # r   )
Úsuperr   Ú__dict__ÚupdateÚ	groupdictÚ_extra_patternsÚreÚsearchÚwith_helpersÚM)r   r   r   r   rD   ÚpatternÚextra_matchÚ	__class__s   &&&&&  €r   r   ÚSSHAskpassPrompt.__init__:   sw   ø€ Ü‰Ñ˜¨6Ô2Ø�‰×Ñ˜UŸ_™_Ó.Ô/à×+Ô+ˆGÜŸ)š)¤L°Ó$9¸8ÄRÇTÁTÓJˆKØÔ&Ø—‘×$Ñ$ [×%:Ñ%:Ó%<Ö=ó ,r   c                ól   <€ V ^8„  d   Qh/ R;R&   S[ S[,          ;R&   S[ S[S[,          ,          ;R&   # )r
   zClassVar[Sequence[str] | None]ÚanswersÚ_patternrK   )r   r   r   )r   r   s   "€r   r   rE   .   s9   ø‡ ‚ ð
 .Ñ4ñ ñ ‘s�mÑñ ñ ™h¡s�mÕ,Ñ1ò r   r   )r8   r9   r:   r;   rU   rK   r   r=   r>   r?   Ú__classcell__)rR   r   s   @@r   rB   rB   .   s$   ù‡ € ð
 15€Gð
 02€O÷>ó >÷ … r   rB   z%{algorithm}z(?P<algorithm>\b[-\w]+\b)z%{filename}z(?P<filename>.+)z%{fingerprint}z)(?P<fingerprint>SHA256:[0-9A-Za-z+/]{43})z%{hostname}z(?P<hostname>[^ @']+)z%{pkcs11_id}z(?P<pkcs11_id>.+)z%{username}z(?P<username>[^ @']+)c                   óJ   a € ] tR t^Ot o RtRtRtV 3R lR ltV 3R ltRt	V t
R# )ÚSshPasswordPromptz$%{username}@%{hostname}'s password: Nc                ó"   <€ V ^8„  d   QhRRRR/# r/   r   )r   r   s   "€r   r   ÚSshPasswordPrompt.__annotate__T   ó   ø€ ÷ 8ñ 8Ð(=ð 8À,ñ 8r   c              ƒ  ó@   "  € VP                  V 4      G R j  x€L
 #  L5ir   )Údo_password_promptr4   s   &&r   r+   ÚSshPasswordPrompt.dispatchT   ó   é € Ø×1Ñ1°$Ó7×7Ð7Ñ7ùr6   c                ó.   <€ V ^8„  d   Qh/ R;R&   R;R&   # )r
   r0   ÚusernameÚhostnamer   )r   r   s   "€r   r   r[   O   s   ø‡ ‚ àÑ!ñ ð Ñ!ò r   r   )r8   r9   r:   r;   rV   rb   rc   r+   r=   r>   r?   r@   s   @r   rY   rY   O   s%   ø‡ € Ø6€HØ!€HØ!€H÷8ð 8÷ ƒ r   rY   c                   óB   a € ] tR t^Xt o RtV 3R lR ltV 3R ltRtV tR# )ÚSshPassphrasePromptz(Enter passphrase for key '%{filename}': c                ó"   <€ V ^8„  d   QhRRRR/# r/   r   )r   r   s   "€r   r   Ú SshPassphrasePrompt.__annotate__\   ó   ø€ ÷ :ñ :Ð(=ð :À,ñ :r   c              ƒ  ó@   "  € VP                  V 4      G R j  x€L
 #  L5ir   )Údo_passphrase_promptr4   s   &&r   r+   ÚSshPassphrasePrompt.dispatch\   ó   é € Ø×3Ñ3°DÓ9×9Ð9Ñ9ùr6   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )r
   Úfilenamer   )r   r   s   "€r   r   rg   X   s   ø‡ ‚ á�Mò r   r   N©	r8   r9   r:   r;   rV   r+   r=   r>   r?   r@   s   @r   re   re   X   s   ø‡ € Ø:€H÷:ð :÷	 ƒ r   re   c                   óB   a € ] tR t^`t o RtV 3R lR ltV 3R ltRtV tR# )ÚSshFIDOPINPromptz,Enter PIN for %{algorithm} key %{filename}: c                ó"   <€ V ^8„  d   QhRRRR/# )r
   r(   r)   r   zstr  | Noner   )r   r   s   "€r   r   ÚSshFIDOPINPrompt.__annotate__e   s   ø€ ÷ 8ñ 8Ð(=ð 8À-ñ 8r   c              ƒ  ó@   "  € VP                  V 4      G R j  x€L
 #  L5ir   )Údo_fido_pin_promptr4   s   &&r   r+   ÚSshFIDOPINPrompt.dispatche   r`   r6   c                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   # )r
   Ú	algorithmrn   r   )r   r   s   "€r   r   rs   `   s   ø‡ ‚ á�Nñ ñ �Mò r   r   Nro   r@   s   @r   rq   rq   `   s   ø‡ € Ø>€H÷8ð 8÷ ƒ r   rq   c                   óF   a € ] tR t^it o RtRtV 3R lR ltV 3R ltRtV t	R# )ÚSshFIDOUserPresencePromptz9Confirm user presence for key %{algorithm} %{fingerprint}c                ó"   <€ V ^8„  d   QhRRRR/# r/   r   )r   r   s   "€r   r   Ú&SshFIDOUserPresencePrompt.__annotate__o   s    ø€ ÷ Bñ BÐ(=ð BÀ,ñ Br   c              ƒ  ó@   "  € VP                  V 4      G R j  x€L
 #  L5ir   )Údo_fido_user_presence_promptr4   s   &&r   r+   Ú"SshFIDOUserPresencePrompt.dispatcho   s   é € Ø×;Ñ;¸DÓA×AÐAÑAùr6   c                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   # ©r
   rx   Úfingerprintr   )r   r   s   "€r   r   r|   i   s   ø‡ ‚ ñ �Nñ ñ Ñò	 r   r   N)
r8   r9   r:   r;   rV   rU   r+   r=   r>   r?   r@   s   @r   rz   rz   i   s"   ø‡ € ØK€HØ€G÷Bð B÷ ƒ r   rz   c                   óB   a € ] tR t^st o RtV 3R lR ltV 3R ltRtV tR# )ÚSshPKCS11PINPromptzEnter PIN for '%{pkcs11_id}': c                ó"   <€ V ^8„  d   QhRRRR/# r/   r   )r   r   s   "€r   r   ÚSshPKCS11PINPrompt.__annotate__w   rh   r   c              ƒ  ó@   "  € VP                  V 4      G R j  x€L
 #  L5ir   )Údo_pkcs11_pin_promptr4   s   &&r   r+   ÚSshPKCS11PINPrompt.dispatchw   rl   r6   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )r
   Ú	pkcs11_idr   )r   r   s   "€r   r   r†   s   s   ø‡ ‚ á�Nò r   r   Nro   r@   s   @r   r„   r„   s   s   ø‡ € Ø0€H÷:ð :÷	 ƒ r   r„   c                   óN   a € ] tR t^{t o Rt. ROtRtV 3R lR ltV 3R ltRt	V t
R# )	ÚSshHostKeyPromptzMAre you sure you want to continue connecting \(yes/no(/\[fingerprint\])?\)\? c                ó"   <€ V ^8„  d   QhRRRR/# r/   r   )r   r   s   "€r   r   ÚSshHostKeyPrompt.__annotate__†   r\   r   c              ƒ  ó@   "  € VP                  V 4      G R j  x€L
 #  L5ir   )Údo_host_key_promptr4   s   &&r   r+   ÚSshHostKeyPrompt.dispatch†   r`   r6   c                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   # r�   r   )r   r   s   "€r   r   r�   {   s   ø‡ ‚ ñ �Nñ ñ Ñò r   r   N)z%{fingerprint}[.]$z ^%{algorithm} key fingerprint iszE^The fingerprint for the %{algorithm} key sent by the remote host is$)ÚyesÚno)r8   r9   r:   r;   rV   rK   rU   r+   r=   r>   r?   r@   s   @r   r�   r�   {   s)   ø‡ € Ø_€Hò€Oð
 €G÷8ð 8÷ ƒ r   r�   c                ó0   € V ^8„  d   QhR\         R\         /# )r
   rP   r   r   )r   s   "r   r   r   Š   s   € ÷ ñ œ#ð ¤#ñ r   c                 ót   € \         P                  4        F  w  rV P                  W4      p K  	  R V 9  g   Q hV # )z%{)ÚHELPERSÚitemsÚreplace)rP   ÚnameÚhelpers   &  r   rN   rN   Š   s7   € ÜŸ™ž‰ˆØ—/‘/ $Ó/Šñ (ð �wÔÐÐØ€Nr   c                ó<   € V ^8„  d   QhR\         R\         R\        /# )r
   Ústringr   r   )r   r   )r   s   "r   r   r   ’   s!   € ÷ 4ñ 4¤#ð 4¬sð 4´}ñ 4r   c                 óL  € \         \        \        \        \        \
        .pV P                  R ^ R4      pV^ 8¼  d   W^,           R pV RV^,            pMT pRpV F=  p\        VP                  4      p\        P                  ! Wt4      pVf   K4  V! WEW4      u # 	  \        WEV4      # )Ú
NÚ éÿÿÿÿ)rq   rz   r�   r„   re   rY   ÚrfindrN   rV   rL   Ú	fullmatchr   )	rž   r   ÚclassesÚsecond_last_newlineÚ	last_lineÚextrasÚclsrP   rD   s	   &&       r   Úcategorize_ssh_promptrª   ’   s­   € äÜ!ÜÜÜÜð€Gð !Ÿ,™, t¨Q°Ó3ÐØ˜aÔØ°Õ2Ð3Ð4ˆ	ØÐ0Ð,¨qÕ0Ð1‰àˆ	ØˆãˆÜ˜sŸ|™|Ó,ˆÜ—’˜WÓ0ˆØÔÙ�y¨&Ó8Ò8ñ	 ô ˜¨FÓ3Ð3r   c                   ó°   a € ] tR t^¯t o 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R lt	V 3R lR lt
V 3R lR ltRtV tR# )r)   c                ó0   <€ V ^8„  d   QhRS[ RS[ RS[ RR/# )r
   r   r   Úhintr   r0   r   )r   r   s   "€r   r   Ú SshAskpassResponder.__annotate__°   s/   ø€ ÷ Jñ J¡sð J±Cð J¹sð JÀ|ñ Jr   c              ƒ  óR   "  € \        W!4      P                  V 4      G R j  x€L
 #  L5ir   )rª   r+   )r   r   r   r­   s   &&&&r   Ú
do_askpassÚSshAskpassResponder.do_askpass°   s!   é € Ü*¨6Ó:×CÑCÀDÓI×IÐIÑIùs   ‚' %¡'c                ó$   <€ V ^8„  d   QhRS[ RR/# ©r
   r   r   r0   )r   )r   r   s   "€r   r   r®   ³   s   ø€ ÷ ñ ¡mð ¸ñ r   c              ƒ  ó   "  € R # 5ir   r   ©r   r   s   &&r   r3   ÚSshAskpassResponder.do_prompt³   s   é € áùs   ‚c                ó$   <€ V ^8„  d   QhRS[ RR/# r³   )rq   )r   r   s   "€r   r   r®   ·   ó   ø€ ÷ ,ñ ,Ñ/?ð ,ÀLñ ,r   c              ƒ  ó@   "  € V P                  V4      G R j  x€L
 #  L5ir   r2   rµ   s   &&r   ru   Ú&SshAskpassResponder.do_fido_pin_prompt·   ó   é € Ø—^‘^ FÓ+×+Ð+Ñ+ùr6   c                ó$   <€ V ^8„  d   QhRS[ RR/# r³   )rz   )r   r   s   "€r   r   r®   º   s   ø€ ÷ ,ñ ,Ñ9Rð ,ÐWcñ ,r   c              ƒ  ó@   "  € V P                  V4      G R j  x€L
 #  L5ir   r2   rµ   s   &&r   r~   Ú0SshAskpassResponder.do_fido_user_presence_promptº   r»   r6   c                ó$   <€ V ^8„  d   QhRS[ RR/# r³   )r�   )r   r   s   "€r   r   r®   ½   r¸   r   c              ƒ  ó@   "  € V P                  V4      G R j  x€L
 #  L5ir   r2   rµ   s   &&r   r‘   Ú&SshAskpassResponder.do_host_key_prompt½   r»   r6   c                ó$   <€ V ^8„  d   QhRS[ RR/# r³   )r„   )r   r   s   "€r   r   r®   À   s   ø€ ÷ ,ñ ,Ñ1Cð ,Èñ ,r   c              ƒ  ó@   "  € V P                  V4      G R j  x€L
 #  L5ir   r2   rµ   s   &&r   rˆ   Ú(SshAskpassResponder.do_pkcs11_pin_promptÀ   r»   r6   c                ó$   <€ V ^8„  d   QhRS[ RR/# r³   )re   )r   r   s   "€r   r   r®   Ã   s   ø€ ÷ ,ñ ,Ñ1Dð ,Èñ ,r   c              ƒ  ó@   "  € V P                  V4      G R j  x€L
 #  L5ir   r2   rµ   s   &&r   rj   Ú(SshAskpassResponder.do_passphrase_promptÃ   r»   r6   c                ó$   <€ V ^8„  d   QhRS[ RR/# r³   )rY   )r   r   s   "€r   r   r®   Æ   s   ø€ ÷ ,ñ ,Ñ/@ð ,À\ñ ,r   c              ƒ  ó@   "  € V P                  V4      G R j  x€L
 #  L5ir   r2   rµ   s   &&r   r^   Ú&SshAskpassResponder.do_password_promptÆ   r»   r6   r   N)r8   r9   r:   r;   r°   r3   ru   r~   r‘   rˆ   rj   r^   r>   r?   r@   s   @r   r)   r)   ¯   sW   ø‡ € ÷Jð J÷ð ÷,ð ,÷,ð ,÷,ð ,÷,ð ,÷,ð ,÷,ö ,r   r)   )ÚloggingrL   Útypingr   r   r   Úinteraction_agentr   Ú	getLoggerr8   Úloggerr   rB   r˜   rY   re   rq   rz   r„   r�   rN   rª   r)   r   r   r   Ú<module>rÐ      sÎ   ðÛ Û 	ß ,Ñ ,å -à	×	Ò	˜8Ó	$€÷!/ñ !/ôH>�}ô >ð0 Ð0ØÐ&ØÐBØÐ+ØÐ(ØÐ+ð€ô8Ð(ô 8ô:Ð*ô :ô8Ð'ô 8ôBÐ 0ô Bô:Ð)ô :ô8Ð'ô 8õõ4ô:,˜.ö ,r   