<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]^              	   @   s  d  d d d d d d g Z  d d l Z e e d	  rI e  j d
 d g  d d l m Z d d l m Z d d l m Z d d l m Z d d l m	 Z	 d d l
 m Z d" Z Gd d   d e  Z Gd d   d e  Z e	 d d d d d e d d  Z e	 d d d d d e d d  Z e e d	  rte	 d d d d e d d
  Z e	 d d d d e d d  Z Gd d   d e j  Z Gd d   d e e j  Z Gd  d   d  Z Gd! d    d   Z d S)#StreamReaderStreamWriterStreamReaderProtocolopen_connectionstart_serverIncompleteReadErrorLimitOverrunError    NAF_UNIXopen_unix_connectionstart_unix_server   )
coroutines)compat)events)	protocols)	coroutine)logger      c                   s"   e  Z d  Z   f d d   Z   S)r   c                s6   t    j d t |  | f  | |  _ | |  _ d  S)Nz-%d bytes read on a total of %r expected bytes)super__init__lenpartialexpected)selfr   r   )	__class__ ,/opt/alt/python35/lib64/python3.5/streams.pyr       s    	zIncompleteReadError.__init__)__name__
__module____qualname__r   r   r   )r   r   r      s   c                   s"   e  Z d  Z   f d d   Z   S)r   c                s   t    j |  | |  _ d  S)N)r   r   consumed)r   messager!   )r   r   r   r   -   s    zLimitOverrunError.__init__)r   r   r    r   r   r   )r   r   r   '   s   looplimitc      	      +   s   | d  k r t  j   } t d | d |  } t | d |   | j   f d d   |  | |  Ed  H\ } } t |   | |  } | | f S)Nr$   r#   c                  s     S)Nr   r   )protocolr   r   <lambda>K   s    z!open_connection.<locals>.<lambda>)r   get_event_loopr   r   create_connectionr   )	hostportr#   r$   kwdsreader	transport_writerr   )r%   r   r   2   s    )c            +   sK    d  k r t  j        f d d   }  j | | | |  Ed  HS)Nc                 s.   t  d  d   }  t |    d  } | S)Nr$   r#   )r   r   )r,   r%   )client_connected_cbr$   r#   r   r   factoryk   s    	zstart_server.<locals>.factory)r   r'   Zcreate_server)r0   r)   r*   r#   r$   r+   r1   r   )r0   r$   r#   r   r   P   s    c            +   s   | d  k r t  j   } t d | d |  } t | d |   | j   f d d   |  |  Ed  H\ } } t |   | |  } | | f S)Nr$   r#   c                  s     S)Nr   r   )r%   r   r   r&      s    z&open_unix_connection.<locals>.<lambda>)r   r'   r   r   Zcreate_unix_connectionr   )pathr#   r$   r+   r,   r-   r.   r/   r   )r%   r   r
   w   s    &c            +   sH    d  k r t  j        f d d   }  j | | |  Ed  HS)Nc                 s.   t  d  d   }  t |    d  } | S)Nr$   r#   )r   r   )r,   r%   )r0   r$   r#   r   r   r1      s    	z"start_unix_server.<locals>.factory)r   r'   Zcreate_unix_server)r0   r2   r#   r$   r+   r1   r   )r0   r$   r#   r   r      s    c               @   sU   e  Z d  Z d d d  Z d d   Z d d   Z d d	   Z e d
 d    Z d S)FlowControlMixinNc             C   sF   | d  k r t  j   |  _ n	 | |  _ d |  _ d  |  _ d |  _ d  S)NF)r   r'   _loop_paused_drain_waiter_connection_lost)r   r#   r   r   r   r      s    			zFlowControlMixin.__init__c             C   s,   d |  _  |  j j   r( t j d |   d  S)NTz%r pauses writing)r5   r4   	get_debugr   debug)r   r   r   r   pause_writing   s    	zFlowControlMixin.pause_writingc             C   sc   d |  _  |  j j   r( t j d |   |  j } | d  k	 r_ d  |  _ | j   s_ | j d   d  S)NFz%r resumes writing)r5   r4   r8   r   r9   r6   done
set_result)r   waiterr   r   r   resume_writing   s    			zFlowControlMixin.resume_writingc             C   su   d |  _  |  j s d  S|  j } | d  k r/ d  Sd  |  _ | j   rH d  S| d  k rd | j d   n | j |  d  S)NT)r7   r5   r6   r;   r<   set_exception)r   excr=   r   r   r   connection_lost   s    				z FlowControlMixin.connection_lostc             c   sP   |  j  r t d   |  j s" d  S|  j } |  j j   } | |  _ | Ed  Hd  S)NzConnection lost)r7   ConnectionResetErrorr5   r6   r4   create_future)r   r=   r   r   r   _drain_helper   s    				zFlowControlMixin._drain_helper)	r   r   r    r   r:   r>   rA   r   rD   r   r   r   r   r3      s
   
	r3   c                   s^   e  Z d  Z d d   f d d  Z d d   Z   f d d   Z d d	   Z d
 d   Z   S)r   Nc                s;   t    j d |  | |  _ d  |  _ | |  _ d |  _ d  S)Nr#   F)r   r   _stream_reader_stream_writer_client_connected_cb	_over_ssl)r   Zstream_readerr0   r#   )r   r   r   r      s
    			zStreamReaderProtocol.__init__c             C   s   |  j  j |  | j d  d  k	 |  _ |  j d  k	 r t | |  |  j  |  j  |  _ |  j |  j  |  j  } t j	 |  r |  j j
 |  d  S)NZ
sslcontext)rE   set_transportget_extra_inforH   rG   r   r4   rF   r   ZiscoroutineZcreate_task)r   r-   resr   r   r   connection_made   s    	z$StreamReaderProtocol.connection_madec                sa   |  j  d  k	 r; | d  k r+ |  j  j   n |  j  j |  t   j |  d  |  _  d  |  _ d  S)N)rE   feed_eofr?   r   rA   rF   )r   r@   )r   r   r   rA      s    	z$StreamReaderProtocol.connection_lostc             C   s   |  j  j |  d  S)N)rE   	feed_data)r   datar   r   r   data_received   s    z"StreamReaderProtocol.data_receivedc             C   s   |  j  j   |  j r d Sd S)NFT)rE   rM   rH   )r   r   r   r   eof_received   s    	z!StreamReaderProtocol.eof_received)r   r   r    r   rL   rA   rP   rQ   r   r   )r   r   r      s
   	
c               @   s   e  Z d  Z d d   Z d d   Z e d d    Z d d   Z d	 d
   Z d d   Z	 d d   Z
 d d   Z d d d  Z e d d    Z d S)r   c             C   s(   | |  _  | |  _ | |  _ | |  _ d  S)N)
_transport	_protocol_readerr4   )r   r-   r%   r,   r#   r   r   r   r     s    			zStreamWriter.__init__c             C   sM   |  j  j d |  j g } |  j d  k	 r< | j d |  j  d d j |  S)Nztransport=%rz	reader=%rz<%s> )r   r   rR   rT   appendjoin)r   infor   r   r   __repr__  s    zStreamWriter.__repr__c             C   s   |  j  S)N)rR   )r   r   r   r   r-   !  s    zStreamWriter.transportc             C   s   |  j  j |  d  S)N)rR   write)r   rO   r   r   r   rZ   %  s    zStreamWriter.writec             C   s   |  j  j |  d  S)N)rR   
writelines)r   rO   r   r   r   r[   (  s    zStreamWriter.writelinesc             C   s   |  j  j   S)N)rR   	write_eof)r   r   r   r   r\   +  s    zStreamWriter.write_eofc             C   s   |  j  j   S)N)rR   can_write_eof)r   r   r   r   r]   .  s    zStreamWriter.can_write_eofc             C   s   |  j  j   S)N)rR   close)r   r   r   r   r^   1  s    zStreamWriter.closeNc             C   s   |  j  j | |  S)N)rR   rJ   )r   namedefaultr   r   r   rJ   4  s    zStreamWriter.get_extra_infoc             c   si   |  j  d  k	 r0 |  j  j   } | d  k	 r0 |  |  j d  k	 rS |  j j   rS d  V|  j j   Ed  Hd  S)N)rT   	exceptionrR   Z
is_closingrS   rD   )r   r@   r   r   r   drain7  s    	zStreamWriter.drain)r   r   r    r   rY   propertyr-   rZ   r[   r\   r]   r^   rJ   r   rb   r   r   r   r   r   	  s   
c               @   s0  e  Z d  Z e d d d  Z d d   Z d d   Z d d	   Z d
 d   Z d d   Z	 d d   Z
 d d   Z d d   Z d d   Z e d d    Z e d d    Z e d d d   Z e d' d d   Z e d  d!    Z e j re d" d#    Z e d$ d%    Z e j r,d& d#   Z d S)(r   Nc             C   s   | d k r t  d   | |  _ | d  k r? t j   |  _ n	 | |  _ t   |  _ d |  _ d  |  _ d  |  _	 d  |  _
 d |  _ d  S)Nr   zLimit cannot be <= 0F)
ValueError_limitr   r'   r4   	bytearray_buffer_eof_waiter
_exceptionrR   r5   )r   r$   r#   r   r   r   r   R  s    						zStreamReader.__init__c             C   s   d g } |  j  r, | j d t |  j    |  j rB | j d  |  j t k re | j d |  j  |  j r | j d |  j  |  j r | j d |  j  |  j r | j d |  j  |  j	 r | j d  d	 d
 j
 |  S)Nr   z%d byteseofzl=%dzw=%rze=%rzt=%rZpausedz<%s>rU   )rg   rV   r   rh   re   _DEFAULT_LIMITri   rj   rR   r5   rW   )r   rX   r   r   r   rY   e  s     							zStreamReader.__repr__c             C   s   |  j  S)N)rj   )r   r   r   r   ra   w  s    zStreamReader.exceptionc             C   sD   | |  _  |  j } | d  k	 r@ d  |  _ | j   s@ | j |  d  S)N)rj   ri   	cancelledr?   )r   r@   r=   r   r   r   r?   z  s    			zStreamReader.set_exceptionc             C   s;   |  j  } | d  k	 r7 d  |  _  | j   s7 | j d   d  S)N)ri   rm   r<   )r   r=   r   r   r   _wakeup_waiter  s
    		zStreamReader._wakeup_waiterc             C   s   | |  _  d  S)N)rR   )r   r-   r   r   r   rI     s    zStreamReader.set_transportc             C   s;   |  j  r7 t |  j  |  j k r7 d |  _  |  j j   d  S)NF)r5   r   rg   re   rR   resume_reading)r   r   r   r   _maybe_resume_transport  s    !	z$StreamReader._maybe_resume_transportc             C   s   d |  _  |  j   d  S)NT)rh   rn   )r   r   r   r   rM     s    	zStreamReader.feed_eofc             C   s   |  j  o |  j S)N)rh   rg   )r   r   r   r   at_eof  s    zStreamReader.at_eofc             C   s   | s
 d  S|  j  j |  |  j   |  j d  k	 r |  j r t |  j   d |  j k r y |  j j   Wn t k
 r d  |  _ Yn
 Xd |  _ d  S)Nr   T)	rg   extendrn   rR   r5   r   re   Zpause_readingNotImplementedError)r   rO   r   r   r   rN     s    

zStreamReader.feed_datac             c   sq   |  j  d  k	 r t d |   |  j r> d |  _ |  j j   |  j j   |  _  z |  j  Ed  HWd  d  |  _  Xd  S)NzH%s() called while another coroutine is already waiting for incoming dataF)ri   RuntimeErrorr5   rR   ro   r4   rC   )r   	func_namer   r   r   _wait_for_data  s    

		zStreamReader._wait_for_datac             c   s   d } t  |  } y |  j |  Ed  H} Wn t k
 rX } z | j SWYd  d  } ~ Xn t k
 r } za |  j j | | j  r |  j d  | j |  =n |  j j   |  j	   t
 | j d   WYd  d  } ~ Xn X| S)Ns   
r   )r   	readuntilr   r   r   rg   
startswithr!   clearrp   rd   args)r   sepseplenlineer   r   r   readline  s    
&zStreamReader.readlines   
c             c   sY  t  |  } | d k r$ t d   |  j d  k	 r< |  j  d } x t  |  j  } | | | k r |  j j | |  } | d k r P| d | } | |  j k r t d |   |  j r t |  j  } |  j j	   t
 | d    |  j d  Ed  HqE W| |  j k rt d |   |  j d  | |  } |  j d  | |  =|  j   t |  S)Nr   z,Separator should be at least one-byte stringr   z2Separator is not found, and chunk exceed the limitrw   z2Separator is found, but chunk is longer than limit)r   rd   rj   rg   findre   r   rh   bytesry   r   rv   rp   )r   Z	separatorr|   offsetbuflenZisepchunkr   r   r   rw     s:    			
zStreamReader.readuntilr   c             c   s   |  j  d  k	 r |  j   | d k r( d S| d k  ry g  } x/ |  j |  j  Ed  H} | s[ P| j |  q= Wd j |  S|  j r |  j r |  j d  Ed  Ht |  j d  |   } |  j d  |  =|  j	   | S)Nr       read)
rj   r   re   rV   rW   rg   rh   rv   r   rp   )r   nZblocksblockrO   r   r   r   r   J  s$    	
zStreamReader.readc             c   s  | d k  r t  d   |  j d  k	 r0 |  j  | d k r@ d Sx_ t |  j  | k  r |  j r t |  j  } |  j j   t | |   |  j d  Ed  HqC Wt |  j  | k r t |  j  } |  j j   n) t |  j d  |   } |  j d  |  =|  j	   | S)Nr   z*readexactly size can not be less than zeror   readexactly)
rd   rj   r   rg   rh   r   ry   r   rv   rp   )r   r   Z
incompleterO   r   r   r   r   }  s&    		
zStreamReader.readexactlyc             C   s   |  S)Nr   )r   r   r   r   	__aiter__  s    zStreamReader.__aiter__c             c   s'   |  j    Ed  H} | d k r# t  | S)Nr   )r   StopAsyncIteration)r   valr   r   r   	__anext__  s    zStreamReader.__anext__c             C   s   |  S)Nr   )r   r   r   r   r     s    r   )r   r   r    rl   r   rY   ra   r?   rn   rI   rp   rM   rq   rN   r   rv   r   rw   r   r   r   ZPY35r   r   ZPY352r   r   r   r   r   P  s,   	 [2*		i   )__all__sockethasattrrr    r   r   r   r   r   logr   rl   EOFErrorr   	Exceptionr   r   r   r
   r   ZProtocolr3   r   r   r   r   r   r   r   <module>   s@   				"B3G