Ë
    ojK  ã                   óV  — d Z ddlmZ ddlmZ ddlmZmZm	Z
 ddlmZ ddlmZmZ ddlmZ  G d„ d	«      Z G d
„ d«      Z ee
j(                  «       G d„ dej*                  «      «       Z G d„ dej.                  ej*                  «      Z G d„ d«      Z G d„ dej4                  «      Zy)z9
insults/SSH integration support.

@author: Jp Calderone
é    )ÚDict)Úimplementer)ÚavatarÚerrorÚ
interfaces)Úinsults)ÚfactoryÚsession)Ú
componentsc                   ó   — e Zd ZdZd„ Zd„ Zy)Ú_Gluez¸
    A feeble class for making one attribute look like another.

    This should be replaced with a real class at some point, probably.
    Try not to write new code that uses it.
    c                 ó:   — | j                   j                  |«       y ©N)Ú__dict__Úupdate)ÚselfÚkws     ú;/usr/lib/python3/dist-packages/twisted/conch/manhole_ssh.pyÚ__init__z_Glue.__init__   s   € Ø�‰×Ñ˜RÕ ó    c                 ó0   — t        | j                  d|«      ‚)Nzhas no attribute)ÚAttributeErrorÚname)r   r   s     r   Ú__getattr__z_Glue.__getattr__    s   € Ü˜TŸY™YÐ(:¸DÓAÐAr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   © r   r   r   r      s   „ ñò!óBr   r   c                   ó   — e Zd Zd„ Zy)ÚTerminalSessionTransportc                 óª  ‡ ‡‡— |‰ _         ‰‰ _        |‰ _        ‰ j                   j                  Š‰ j                   j	                  t        ‰ j                  j                  ˆˆfd„d¬«      «       ˆ fd„}‰ j                  j	                  t        ‰ j                   j                  |d¬«      «       ‰ j                  j                  j                  ||«       y )Nc                  ó:   •— ‰ j                   j                  ‰«      S r   )ÚconnÚ	sendClose)r   ÚprotoSessions   €€r   ú<lambda>z3TerminalSessionTransport.__init__.<locals>.<lambda>/   s   ø€  v§{¡{×'<Ñ'<¸\Ó'J€ r   zSSH Proto Transport)ÚwriteÚloseConnectionr   c                  ó:   •— ‰ j                   j                  «        y r   )Úprotor)   ©r   s   €r   r)   z9TerminalSessionTransport.__init__.<locals>.loseConnection4   s   ø€ Ø�J‰J×%Ñ%Õ'r   zChained Proto Transport)
r+   r   ÚchainedProtocolr
   ÚmakeConnectionr   ÚdataReceivedr(   ÚterminalProtocolÚterminalSize)r   r+   r-   r   ÚwidthÚheightr)   r&   s   `  `   @r   r   z!TerminalSessionTransport.__init__%   s«   ú€ ØˆŒ
ØˆŒØ.ˆÔà—z‘z×)Ñ)ˆà�
‰
×!Ñ!ÜØ×*Ñ*×7Ñ7ÜJØ*ôô	
ô	(ð 	×Ñ×+Ñ+ÜØ—j‘j×&Ñ&Ø-Ø.ôô	
ð 	×Ñ×-Ñ-×:Ñ:¸5À&ÕIr   N©r   r   r   r   r   r   r   r!   r!   $   s   „ ó Jr   r!   c                   óL   — e Zd ZeZej                  Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zy)ÚTerminalSessionc                 ó(   — |d d \  | _         | _        y )Né   )r3   r2   )r   ÚtermÚ
windowSizeÚattrss       r   ÚgetPtyzTerminalSession.getPtyM   s   € Ø",¨R¨a .ÑˆŒ�T•Zr   c                 ó¬   — | j                  || j                  «       t        j                  | j                  «      | j
                  | j                  «       y r   )ÚtransportFactoryÚchainedProtocolFactoryÚiconchÚ
IConchUserÚoriginalr2   r3   )r   r+   s     r   Ú	openShellzTerminalSession.openShellP   s?   € Ø×ÑØØ×'Ñ'Ó)Ü×Ñ˜dŸm™mÓ,Ø�J‰JØ�K‰Kõ	
r   c                 ó,   — t        j                  d«      ‚)NzCannot execute commands)ÚeconchÚ
ConchError)r   r+   Úcmds      r   ÚexecCommandzTerminalSession.execCommandY   s   € Ü×ÑÐ 9Ó:Ð:r   c                 ó   — t        d«      ‚)Nz,Unimplemented: TerminalSession.windowChanged©ÚNotImplementedError)r   ÚnewWindowSizes     r   ÚwindowChangedzTerminalSession.windowChanged\   s   € ä!Ð"PÓQÐQr   c                 ó   — t        d«      ‚)Nz*Unimplemented: TerminalSession.eofReceivedrJ   r,   s    r   ÚeofReceivedzTerminalSession.eofReceived`   s   € ä!Ð"NÓOÐOr   c                  ó   — y r   r   r,   s    r   ÚclosedzTerminalSession.closedd   s   € àr   N)r   r   r   r!   r>   r   ÚServerProtocolr?   r<   rC   rH   rM   rO   rQ   r   r   r   r6   r6   H   s4   „ à/ÐØ$×3Ñ3Ðò1ò
ò;òRòPór   r6   c                   ó   — e Zd Zd„ Zy)ÚTerminalUserc                 ó¼   — t         j                  j                  | |«       t        j                  j                  | «       t
        j                  | j                  d<   y )Ns   session)r   ÚAdapterr   r   Ú	ConchUserr
   Ú
SSHSessionÚchannelLookup)r   rB   ÚavatarIds      r   r   zTerminalUser.__init__j   sB   € Ü×Ñ×#Ñ# D¨(Ô3Ü×Ñ×!Ñ! $Ô'Ü)0×);Ñ);ˆ×Ñ˜:Ò&r   Nr4   r   r   r   rT   rT   i   s   „ ó<r   rT   c                   óD   — e Zd ZeZeZeZe	j                  Zd„ Zdd„Zd„ Zy)ÚTerminalRealmc                 ó8  — t        j                  «       }| j                  ||«      }| j                  |«      }| j                  |_        | j
                  |_        |j                  t        j                  |«       |j                  t        j                  |«       |S r   )
r   ÚComponentizedÚuserFactoryÚsessionFactoryr>   r?   ÚsetComponentr@   rA   ÚISession)r   rZ   ÚcompÚuserÚsesss        r   Ú
_getAvatarzTerminalRealm._getAvatarw   s}   € Ü×'Ñ'Ó)ˆØ×Ñ  hÓ/ˆØ×"Ñ" 4Ó(ˆà $× 5Ñ 5ˆÔØ&*×&AÑ&AˆÔ#à×Ñœ&×+Ñ+¨TÔ2Ø×Ñœ&Ÿ/™/¨4Ô0àˆr   Nc                 ó   — |�|| _         y y r   )r>   )r   r>   s     r   r   zTerminalRealm.__init__„   s   € ØÐ'Ø$4ˆDÕ!ð (r   c                 ó’   — |D ]9  }|t         j                  u sŒt         j                  | j                  |«      d„ fc S  t        «       ‚)Nc                   ó   — y r   r   r   r   r   r'   z-TerminalRealm.requestAvatar.<locals>.<lambda>‹   s   � r   )r@   rA   rf   rK   )r   rZ   Úmindr   Úis        r   ÚrequestAvatarzTerminalRealm.requestAvatarˆ   sH   € Øò 	TˆAØ”F×%Ñ%Ò%Ü×)Ñ)¨4¯?©?¸8Ó+DÁlÐSÒSð	Tô "Ó#Ð#r   r   )r   r   r   rT   r_   r6   r`   r!   r>   r   rR   r?   rf   r   rl   r   r   r   r\   r\   p   s-   „ Ø€KØ$€Nà/ÐØ$×3Ñ3Ðòó5ó$r   r\   c                   óD   — e Zd ZU i Zeeef   ed<   i Zeeef   ed<   d„ Zy)ÚConchFactoryÚ
publicKeysÚprivateKeysc                 ó   — || _         y r   )Úportal)r   rr   s     r   r   zConchFactory.__init__“   s	   € Øˆ�r   N)	r   r   r   ro   r   ÚbytesÚ__annotations__rp   r   r   r   r   rn   rn   �   s-   … Ø%'€J��U˜E�\Ñ"Ó'Ø&(€K��e˜U�lÑ#Ó(ór   rn   N)r   Útypingr   Úzope.interfacer   Útwisted.conchr   r   rE   r   r@   Útwisted.conch.insultsr   Útwisted.conch.sshr	   r
   Útwisted.pythonr   r   r!   rb   rV   r6   rW   rT   r\   Ú
SSHFactoryrn   r   r   r   ú<module>r|      s›   ðñ
õ å &ç GÑ GÝ )ß .Ý %÷Bñ B÷!Jñ !JñH ˆV�_‰_Óô�j×(Ñ(ó ó ðô@<�6×#Ñ# Z×%7Ñ%7ô <÷$ñ $ô>�7×%Ñ%õ r   