+
    üÐjÏ  ã                  óò   € R t ^ RIHt ^ RIt^ RIHtHt ^ RIHt ^ RI	H
t
 ^ RIHt . ROtR R ltRR	 R
 lltR R lt]R R l4       t]R R l4       tRR R lltR t]
! ]! R^^^ 4      4      R 4       tR# )z'
Common functions for the SSH classes.
)ÚannotationsN)ÚSequenceÚoverload)Úint_to_bytes)Ú
deprecated)ÚVersionc               ó    € V ^8„  d   QhRRRR/# )é   Útzbytes | strÚreturnÚbytes© )Úformats   "Ú:/usr/lib/python3/dist-packages/twisted/conch/ssh/common.pyÚ__annotate__r      s   € ÷ )ñ )ˆ+ð )˜%ñ )ó    c                óž   € \        V \        4      '       d   V P                  R4      p \        P                  ! R\        V 4      4      V ,           # )z
net string
zutf-8ú!L)Ú
isinstanceÚstrÚencodeÚstructÚpackÚlen)r
   s   &r   ÚNSr      s9   € ô �!”S×ÒØ�H‰H�WÓˆÜ�;Š;�tœS ›VÓ$ qÕ(Ð(r   c               ó$   € V ^8„  d   QhRRRRRR/# )r	   Úsr   ÚcountÚintr   zSequence[bytes]r   )r   s   "r   r   r      s!   € ÷ 
 ñ 
 ˆUð 
 ˜3ð 
  ñ 
 r   c                ó  € . p^ p\        V4       F]  p\        P                  ! RWV^,            4      w  pVP                  W^,           ^V,           V,            4       V^V,           ,          pK_  	  \	        V4      WR 3,           # )z
get net string
r   N)Úranger   ÚunpackÚappendÚtuple)r   r   ÚnsÚcÚiÚls   &&    r   ÚgetNSr(      sw   € ð 
€BØ	€AÜ�5Ž\ˆÜ�}Š}˜T 1¨¨Q­ <Ó0‰ˆØ
�	‰	�!˜•E˜A �E A�IÐ&Ô'Ø	ˆQ��U�
Šñ ô �‹9˜˜"˜�xÕÐr   c               ó    € V ^8„  d   QhRRRR/# )r	   Únumberr   r   r   r   )r   s   "r   r   r   +   s   € ÷ +ñ +ˆsð +�uñ +r   c                óÚ   € V ^ 8X  d   R# V ^ 8”  g   Q h\        V 4      p\        VR,          4      ^€,          '       d
   RV,           p\        P                  ! R\	        V4      4      V,           # )é    ó    :r,   é   Nú>Ls       )r   Úordr   r   r   )r*   Úbns   & r   ÚMPr2   +   s[   € Ø�„{ØÐØ�AŒ:Ðˆ:Ü	�fÓ	€BÜ
ˆ2ˆc�7ƒ|�c×ÔØ�r�\ˆÜ�;Š;�tœS ›WÓ%¨Õ*Ð*r   c               ó    € V ^8„  d   QhRRRR/# )r	   Údatar   r   ztuple[int, bytes]r   )r   s   "r   r   r   6   s   € ÷ ñ �ð Ð+ñ r   c                ó   € R # ©Nr   )r4   s   &r   ÚgetMPr7   5   ó   € ár   c               ó$   € V ^8„  d   QhRRRRRR/# ©r	   r4   r   r   r   r   zSequence[int | bytes]r   )r   s   "r   r   r   ;   s"   € ÷ ñ �ð ˜cð Ð&;ñ r   c                ó   € R # r6   r   )r4   r   s   &&r   r7   r7   :   r8   r   c               ó$   € V ^8„  d   QhRRRRRR/# r:   r   )r   s   "r   r   r   ?   s"   € ÷ #ñ #�ð #˜cð #Ð*?ñ #r   c           	     ó4  € . p^ p\        V4       Fq  p\        P                  ! RWV^,            4      w  pVP                  \        P                  W^,           V^,           V,            R4      4       V^V,           ,          pKs  	  \        V4      WR 3,           # )a%  
Get multiple precision integer out of the string.  A multiple precision
integer is stored as a 4-byte length followed by length bytes of the
integer.  If count is specified, get count integers out of the string.
The return value is a tuple of count integers followed by the rest of
the data.
r/   ÚbigN)r    r   r!   r"   r   Ú
from_bytesr#   )r4   r   Úmpr%   r&   Úlengths   &&    r   r7   r7   ?   s‚   € ð 
€BØ	€AÜ�5Ž\ˆÜ—M’M $¨°°Qµ¨Ó8‰	ˆØ
�	‰	”#—.‘. ¨!¥e¨a°!­e°f­nÐ!=¸uÓEÔFØ	ˆQ��Z�Šñ ô �‹9˜˜R˜�{Õ"Ð"r   c                ó,   € V  F  pW!9   g   K  Vu # 	  R# )zg
first from second
goes through the first list, looking for items in the second, returns the first one
Nr   )r%   r   r&   s   && r   ÚffsrC   P   s   € ó
 ˆØŽ6ØŠHó r   ÚTwistedc                 ó   € R # r6   r   r   r   r   ÚinstallrF   Z   s   € ñ 	r   )r   r(   r2   r7   rC   )r.   )Ú__doc__Ú
__future__r   r   Útypingr   r   Úcryptography.utilsr   Útwisted.python.deprecater   Útwisted.python.versionsr   Ú__all__r   r(   r2   r7   rC   rF   r   r   r   Ú<module>rN      sˆ   ðñ
õ #ã ß %å +å /Ý +â
/€õ)÷
 õ+ð 
ôó 
ðð 
ôó 
ð÷#ò"ñ ‰G�I˜r 1 aÓ(Ó)ñ	ó *ò	r   