o
    9»BiÏ  ã                   @  sÂ   d Z ddlmZ ddlZddlmZmZ ddlmZ ddl	m
Z
 ddlmZ g d¢Zd'dd„Zd(d)dd„Zd*dd„Zed+dd„ƒZed,dd„ƒZd(d,dd„Zd d!„ Ze
ed"d#d$dƒƒd%d&„ ƒZdS )-z'
Common functions for the SSH classes.
é    )ÚannotationsN)ÚSequenceÚoverload)Úint_to_bytes)Ú
deprecated)ÚVersion)ÚNSÚgetNSÚMPÚgetMPÚffsÚtúbytes | strÚreturnÚbytesc                 C  s(   t | tƒr
|  d¡} t dt| ƒ¡|  S )z
    net string
    zutf-8ú!L)Ú
isinstanceÚstrÚencodeÚstructÚpackÚlen)r   © r   úX/var/www/html/Trade-python/venv/lib/python3.10/site-packages/twisted/conch/ssh/common.pyr      s   

r   é   ÚsÚcountÚintúSequence[bytes]c                 C  sp   g }d}t |ƒD ]$}t d| ||d … ¡\}| | |d d| | … ¡ |d| 7 }qt|ƒ| |d… f S )z
    get net string
    r   r   é   N)Úranger   ÚunpackÚappendÚtuple)r   r   ÚnsÚcÚiÚlr   r   r   r	      s   r	   Únumberc                 C  sP   | dkrdS | dksJ ‚t | ƒ}t|dd… ƒd@ rd| }t dt|ƒ¡| S )Nr   s       r   é€   ó    ú>L)r   Úordr   r   r   )r(   Úbnr   r   r   r
   +   s   r
   Údataútuple[int, bytes]c                 C  ó   d S ©Nr   )r.   r   r   r   r   5   ó   r   úSequence[int | bytes]c                 C  r0   r1   r   )r.   r   r   r   r   r   :   r2   c              	   C  sx   g }d}t |ƒD ](}t d| ||d … ¡\}| t | |d |d | … d¡¡ |d| 7 }qt|ƒ| |d… f S )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   r+   r   ÚbigN)r    r   r!   r"   r   Ú
from_bytesr#   )r.   r   Úmpr%   r&   Úlengthr   r   r   r   ?   s   &c                 C  s   | D ]
}||v r|  S qdS )zs
    first from second
    goes through the first list, looking for items in the second, returns the first one
    Nr   )r%   r   r&   r   r   r   r   P   s
   ÿÿr   ÚTwistedé   é   c                   C  r0   r1   r   r   r   r   r   ÚinstallZ   s   r;   )r   r   r   r   )r   )r   r   r   r   r   r   )r(   r   r   r   )r.   r   r   r/   )r.   r   r   r   r   r3   )Ú__doc__Ú
__future__r   r   Útypingr   r   Úcryptography.utilsr   Útwisted.python.deprecater   Útwisted.python.versionsr   Ú__all__r   r	   r
   r   r   r;   r   r   r   r   Ú<module>   s&   
	


