SILENT KILLERPanel

Current Path: > > opt > > alt > python39 > lib64 > python3.9 > asyncio > __pycache__


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt//alt/python39/lib64/python3.9/asyncio/__pycache__

NameTypeSizeLast ModifiedActions
__init__.cpython-39.opt-1.pyc File 794 bytes June 19 2025 12:11:11.
__init__.cpython-39.opt-2.pyc File 738 bytes June 19 2025 12:11:17.
__init__.cpython-39.pyc File 794 bytes June 19 2025 12:11:11.
__main__.cpython-39.opt-1.pyc File 3225 bytes June 19 2025 12:11:12.
__main__.cpython-39.opt-2.pyc File 3225 bytes June 19 2025 12:11:12.
__main__.cpython-39.pyc File 3225 bytes June 19 2025 12:11:12.
base_events.cpython-39.opt-1.pyc File 52189 bytes June 19 2025 12:11:16.
base_events.cpython-39.opt-2.pyc File 43160 bytes June 19 2025 12:11:17.
base_events.cpython-39.pyc File 52313 bytes June 19 2025 12:11:12.
base_futures.cpython-39.opt-1.pyc File 1923 bytes June 19 2025 12:11:15.
base_futures.cpython-39.opt-2.pyc File 1669 bytes June 19 2025 12:11:17.
base_futures.cpython-39.pyc File 1923 bytes June 19 2025 12:11:15.
base_subprocess.cpython-39.opt-1.pyc File 9355 bytes June 19 2025 12:11:16.
base_subprocess.cpython-39.opt-2.pyc File 9255 bytes June 19 2025 12:11:17.
base_subprocess.cpython-39.pyc File 9425 bytes June 19 2025 12:11:11.
base_tasks.cpython-39.opt-1.pyc File 1959 bytes June 19 2025 12:11:11.
base_tasks.cpython-39.opt-2.pyc File 1959 bytes June 19 2025 12:11:11.
base_tasks.cpython-39.pyc File 1959 bytes June 19 2025 12:11:11.
constants.cpython-39.opt-1.pyc File 596 bytes June 19 2025 12:11:11.
constants.cpython-39.opt-2.pyc File 596 bytes June 19 2025 12:11:11.
constants.cpython-39.pyc File 596 bytes June 19 2025 12:11:11.
coroutines.cpython-39.opt-1.pyc File 6588 bytes June 19 2025 12:11:16.
coroutines.cpython-39.opt-2.pyc File 6356 bytes June 19 2025 12:11:17.
coroutines.cpython-39.pyc File 6652 bytes June 19 2025 12:11:11.
events.cpython-39.opt-1.pyc File 28091 bytes June 19 2025 12:11:16.
events.cpython-39.opt-2.pyc File 18994 bytes June 19 2025 12:11:17.
events.cpython-39.pyc File 28173 bytes June 19 2025 12:11:11.
exceptions.cpython-39.opt-1.pyc File 2568 bytes June 19 2025 12:11:11.
exceptions.cpython-39.opt-2.pyc File 1924 bytes June 19 2025 12:11:17.
exceptions.cpython-39.pyc File 2568 bytes June 19 2025 12:11:11.
format_helpers.cpython-39.opt-1.pyc File 2339 bytes June 19 2025 12:11:11.
format_helpers.cpython-39.opt-2.pyc File 2095 bytes June 19 2025 12:11:17.
format_helpers.cpython-39.pyc File 2339 bytes June 19 2025 12:11:11.
futures.cpython-39.opt-1.pyc File 11640 bytes June 19 2025 12:11:16.
futures.cpython-39.opt-2.pyc File 8134 bytes June 19 2025 12:11:17.
futures.cpython-39.pyc File 11791 bytes June 19 2025 12:11:13.
locks.cpython-39.opt-1.pyc File 14479 bytes June 19 2025 12:11:11.
locks.cpython-39.opt-2.pyc File 8242 bytes June 19 2025 12:11:17.
locks.cpython-39.pyc File 14479 bytes June 19 2025 12:11:11.
log.cpython-39.opt-1.pyc File 241 bytes June 19 2025 12:11:15.
log.cpython-39.opt-2.pyc File 202 bytes June 19 2025 12:11:17.
log.cpython-39.pyc File 241 bytes June 19 2025 12:11:15.
proactor_events.cpython-39.opt-1.pyc File 24199 bytes June 19 2025 12:11:16.
proactor_events.cpython-39.opt-2.pyc File 23799 bytes June 19 2025 12:11:17.
proactor_events.cpython-39.pyc File 24429 bytes June 19 2025 12:11:11.
protocols.cpython-39.opt-1.pyc File 8450 bytes June 19 2025 12:11:11.
protocols.cpython-39.opt-2.pyc File 3370 bytes June 19 2025 12:11:17.
protocols.cpython-39.pyc File 8450 bytes June 19 2025 12:11:11.
queues.cpython-39.opt-1.pyc File 8479 bytes June 19 2025 12:11:11.
queues.cpython-39.opt-2.pyc File 5800 bytes June 19 2025 12:11:17.
queues.cpython-39.pyc File 8479 bytes June 19 2025 12:11:11.
runners.cpython-39.opt-1.pyc File 2222 bytes June 19 2025 12:11:11.
runners.cpython-39.opt-2.pyc File 1540 bytes June 19 2025 12:11:17.
runners.cpython-39.pyc File 2222 bytes June 19 2025 12:11:11.
selector_events.cpython-39.opt-1.pyc File 29687 bytes June 19 2025 12:11:16.
selector_events.cpython-39.opt-2.pyc File 28041 bytes June 19 2025 12:11:17.
selector_events.cpython-39.pyc File 29731 bytes June 19 2025 12:11:11.
sslproto.cpython-39.opt-1.pyc File 21737 bytes June 19 2025 12:11:16.
sslproto.cpython-39.opt-2.pyc File 14786 bytes June 19 2025 12:11:17.
sslproto.cpython-39.pyc File 21901 bytes June 19 2025 12:11:11.
staggered.cpython-39.opt-1.pyc File 4022 bytes June 19 2025 12:11:16.
staggered.cpython-39.opt-2.pyc File 1889 bytes June 19 2025 12:11:17.
staggered.cpython-39.pyc File 4175 bytes June 19 2025 12:11:11.
streams.cpython-39.opt-1.pyc File 20374 bytes June 19 2025 12:11:16.
streams.cpython-39.opt-2.pyc File 14480 bytes June 19 2025 12:11:17.
streams.cpython-39.pyc File 20601 bytes June 19 2025 12:11:11.
subprocess.cpython-39.opt-1.pyc File 7336 bytes June 19 2025 12:11:16.
subprocess.cpython-39.opt-2.pyc File 7208 bytes June 19 2025 12:11:17.
subprocess.cpython-39.pyc File 7350 bytes June 19 2025 12:11:11.
tasks.cpython-39.opt-1.pyc File 24262 bytes June 19 2025 12:11:16.
tasks.cpython-39.opt-2.pyc File 17011 bytes June 19 2025 12:11:17.
tasks.cpython-39.pyc File 24302 bytes June 19 2025 12:11:11.
threads.cpython-39.opt-1.pyc File 993 bytes June 19 2025 12:11:13.
threads.cpython-39.opt-2.pyc File 527 bytes June 19 2025 12:11:17.
threads.cpython-39.pyc File 993 bytes June 19 2025 12:11:13.
transports.cpython-39.opt-1.pyc File 12535 bytes June 19 2025 12:11:16.
transports.cpython-39.opt-2.pyc File 6985 bytes June 19 2025 12:11:17.
transports.cpython-39.pyc File 12549 bytes June 19 2025 12:11:11.
trsock.cpython-39.opt-1.pyc File 8584 bytes June 19 2025 12:11:15.
trsock.cpython-39.opt-2.pyc File 8328 bytes June 19 2025 12:11:17.
trsock.cpython-39.pyc File 8584 bytes June 19 2025 12:11:15.
unix_events.cpython-39.opt-1.pyc File 41739 bytes June 19 2025 12:11:16.
unix_events.cpython-39.opt-2.pyc File 36516 bytes June 19 2025 12:11:17.
unix_events.cpython-39.pyc File 42059 bytes June 19 2025 12:11:15.
windows_events.cpython-39.opt-1.pyc File 24730 bytes June 19 2025 12:11:16.
windows_events.cpython-39.opt-2.pyc File 23623 bytes June 19 2025 12:11:17.
windows_events.cpython-39.pyc File 24746 bytes June 19 2025 12:11:15.
windows_utils.cpython-39.opt-1.pyc File 4450 bytes June 19 2025 12:11:16.
windows_utils.cpython-39.opt-2.pyc File 4016 bytes June 19 2025 12:11:17.
windows_utils.cpython-39.pyc File 4518 bytes June 19 2025 12:11:15.

Reading File: //opt//alt/python39/lib64/python3.9/asyncio/__pycache__/streams.cpython-39.pyc

a

XC?h h�@s&dZddlZddlZddlZddlZeed�r6ed7ZddlmZddlmZddlm	Z	dd	lm
Z
dd
lmZddlm
Z
ddlmZd
Zdded�dd�Zd ded�dd�Zeed�r�d!ded�dd�Zd"ded�dd�ZGdd�dej�ZGdd�deej�ZGdd�d�ZGdd�d�ZdS)#)�StreamReader�StreamWriter�StreamReaderProtocol�open_connection�start_server�NZAF_UNIX)�open_unix_connection�start_unix_server�)�
coroutines)�events)�
exceptions)�format_helpers)�	protocols)�logger)�sleepi)�loop�limitc	�sx|durt��}ntjdtdd�t||d�}t||d��|j�fdd�||fi|��IdH\}}t|�||�}||fS)	a�A wrapper for create_connection() returning a (reader, writer) pair.

    The reader returned is a StreamReader instance; the writer is a
    StreamWriter instance.

    The arguments are all the usual arguments to create_connection()
    except protocol_factory; most common are positional host and port,
    with various optional keyword arguments following.

    Additional optional keyword arguments are loop (to set the event loop
    instance to use) and limit (to set the buffer limit passed to the
    StreamReader).

    (If you want to customize the StreamReader and/or
    StreamReaderProtocol classes, just copy the code -- there's
    really nothing special here except some convenience.)
    N�[The loop argument is deprecated since Python 3.8, and scheduled for removal in Python 3.10.���
stacklevel�rr�rcs�S�N�r��protocolr�4/opt/alt/python39/lib64/python3.9/asyncio/streams.py�<lambda>5�z!open_connection.<locals>.<lambda>)	r�get_event_loop�warnings�warn�DeprecationWarningrrZcreate_connectionr)	�host�portrr�kwds�reader�	transport�_�writerrrrrs
���rc�sN�durt���ntjdtdd����fdd�}�j|||fi|��IdHS)a�Start a socket server, call back for each client connected.

    The first parameter, `client_connected_cb`, takes two parameters:
    client_reader, client_writer.  client_reader is a StreamReader
    object, while client_writer is a StreamWriter object.  This
    parameter can either be a plain callback function or a coroutine;
    if it is a coroutine, it will be automatically converted into a
    Task.

    The rest of the arguments are all the usual arguments to
    loop.create_server() except protocol_factory; most common are
    positional host and port, with various optional keyword arguments
    following.  The return value is the same as loop.create_server().

    Additional optional keyword arguments are loop (to set the event loop
    instance to use) and limit (to set the buffer limit passed to the
    StreamReader).

    The return value is the same as loop.create_server(), i.e. a
    Server object which can be used to stop the service.
    Nrrrcst��d�}t|��d�}|S�Nrr�rr�r'r��client_connected_cbrrrr�factoryXs
�zstart_server.<locals>.factory)rr r!r"r#Z
create_server)r/r$r%rrr&r0rr.rr:s
�rc�sv|durt��}ntjdtdd�t||d�}t||d��|j�fdd�|fi|��IdH\}}t|�||�}||fS)	z@Similar to `open_connection` but works with UNIX Domain Sockets.Nrrrrrcs�Srrrrrrrprz&open_unix_connection.<locals>.<lambda>)	rr r!r"r#rrZcreate_unix_connectionr)�pathrrr&r'r(r)r*rrrrds
���rc�sL�durt���ntjdtdd����fdd�}�j||fi|��IdHS)z=Similar to `start_server` but works with UNIX Domain Sockets.Nrrrcst��d�}t|��d�}|Sr+r,r-r.rrr0~s
�z"start_unix_server.<locals>.factory)rr r!r"r#Zcreate_unix_server)r/r1rrr&r0rr.rrts
�rc@sBeZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�FlowControlMixina)Reusable flow control logic for StreamWriter.drain().

    This implements the protocol methods pause_writing(),
    resume_writing() and connection_lost().  If the subclass overrides
    these it must call the super methods.

    StreamWriter.drain() must wait for _drain_helper() coroutine.
    NcCs0|durt��|_n||_d|_d|_d|_dS�NF)rr �_loop�_paused�
_drain_waiter�_connection_lost)�selfrrrr�__init__�szFlowControlMixin.__init__cCs*|jr
J�d|_|j��r&t�d|�dS)NTz%r pauses writing)r5r4�	get_debugr�debug�r8rrr�
pause_writing�s

zFlowControlMixin.pause_writingcCsP|js
J�d|_|j��r&t�d|�|j}|durLd|_|��sL|�d�dS)NFz%r resumes writing)r5r4r:rr;r6�done�
set_result�r8�waiterrrr�resume_writing�s

zFlowControlMixin.resume_writingcCsVd|_|jsdS|j}|dur"dSd|_|��r4dS|durH|�d�n
|�|�dS�NT)r7r5r6r>r?�
set_exception�r8�excrArrr�connection_lost�sz FlowControlMixin.connection_lostc�sP|jrtd��|jsdS|j}|dus2|��s2J�|j��}||_|IdHdS)NzConnection lost)r7�ConnectionResetErrorr5r6�	cancelledr4�
create_futurer@rrr�
_drain_helper�s
zFlowControlMixin._drain_helpercCst�dSr)�NotImplementedError�r8�streamrrr�_get_close_waiter�sz"FlowControlMixin._get_close_waiter)N)
�__name__�
__module__�__qualname__�__doc__r9r=rBrGrKrOrrrrr2�s	
	r2csfeZdZdZdZd�fdd�	Zedd��Zdd�Z�fd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
�ZS)ra=Helper class to adapt between Protocol and StreamReader.

    (This is a helper class instead of making StreamReader itself a
    Protocol subclass, because the StreamReader has other potential
    uses, and to prevent the user of the StreamReader to accidentally
    call inappropriate methods of the protocol.)
    Ncsnt�j|d�|dur,t�|�|_|j|_nd|_|dur@||_d|_d|_d|_	||_
d|_|j�
�|_dS)NrF)�superr9�weakref�ref�_stream_reader_wr�_source_traceback�_strong_reader�_reject_connection�_stream_writer�
_transport�_client_connected_cb�	_over_sslr4rJ�_closed)r8Z
stream_readerr/r��	__class__rrr9�s
zStreamReaderProtocol.__init__cCs|jdurdS|��Sr)rWr<rrr�_stream_reader�s
z#StreamReaderProtocol._stream_readercCs�|jr6ddi}|jr|j|d<|j�|�|��dS||_|j}|durT|�|�|�d�du|_	|j
dur�t||||j�|_|�
||j�}t
�|�r�|j�|�d|_dS)N�messagezpAn open stream was garbage collected prior to establishing network connection; call "stream.close()" explicitly.Zsource_tracebackZ
sslcontext)rZrXr4Zcall_exception_handler�abortr\rb�
set_transport�get_extra_infor^r]rr[r
ZiscoroutineZcreate_taskrY)r8r(�contextr'�resrrr�connection_made�s0�


��
z$StreamReaderProtocol.connection_madecsx|j}|dur*|dur |��n
|�|�|j��sV|durJ|j�d�n|j�|�t��|�d|_d|_	d|_
dSr)rb�feed_eofrDr_r>r?rTrGrWr[r\)r8rFr'r`rrrG
s


z$StreamReaderProtocol.connection_lostcCs|j}|dur|�|�dSr)rb�	feed_data)r8�datar'rrr�
data_receivedsz"StreamReaderProtocol.data_receivedcCs$|j}|dur|��|jr dSdS)NFT)rbrjr^)r8r'rrr�eof_received sz!StreamReaderProtocol.eof_receivedcCs|jSr)r_rMrrrrO+sz&StreamReaderProtocol._get_close_waitercCs"|j}|��r|��s|��dSr)r_r>rI�	exception)r8�closedrrr�__del__.szStreamReaderProtocol.__del__)NN)rPrQrRrSrXr9�propertyrbrirGrmrnrOrq�
__classcell__rrr`rr�s
rc@sveZdZdZdd�Zdd�Zedd��Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zddd�Zdd�ZdS)ra'Wraps a Transport.

    This exposes write(), writelines(), [can_]write_eof(),
    get_extra_info() and close().  It adds drain() which returns an
    optional Future on which you can wait for flow control.  It also
    adds a transport property which references the Transport
    directly.
    cCsJ||_||_|dus"t|t�s"J�||_||_|j��|_|j�d�dSr)	r\�	_protocol�
isinstancer�_readerr4rJZ
_complete_futr?)r8r(rr'rrrrr9@szStreamWriter.__init__cCs@|jjd|j��g}|jdur0|�d|j���d�d�|��S)N�
transport=zreader=�<{}>� )rarPr\rv�append�format�join�r8�inforrr�__repr__Js
zStreamWriter.__repr__cCs|jSr�r\r<rrrr(PszStreamWriter.transportcCs|j�|�dSr)r\�write�r8rlrrrr�TszStreamWriter.writecCs|j�|�dSr)r\�
writelinesr�rrrr�WszStreamWriter.writelinescCs
|j��Sr)r\�	write_eofr<rrrr�ZszStreamWriter.write_eofcCs
|j��Sr)r\�
can_write_eofr<rrrr�]szStreamWriter.can_write_eofcCs
|j��Sr)r\�closer<rrrr�`szStreamWriter.closecCs
|j��Sr)r\�
is_closingr<rrrr�cszStreamWriter.is_closingc�s|j�|�IdHdSr)rtrOr<rrr�wait_closedfszStreamWriter.wait_closedNcCs|j�||�Sr)r\rf)r8�name�defaultrrrrfiszStreamWriter.get_extra_infoc�sL|jdur |j��}|dur |�|j��r8td�IdH|j��IdHdS)zyFlush the write buffer.

        The intended use is to write

          w.write(data)
          await w.drain()
        Nr)rvror\r�rrtrK)r8rFrrr�drainls



zStreamWriter.drain)N)rPrQrRrSr9rrrr(r�r�r�r�r�r�r�rfr�rrrrr6s	


rc@s�eZdZdZedfdd�Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zd&dd�Zd'dd�Zd d!�Zd"d#�Zd$d%�ZdS)(rNcCsv|dkrtd��||_|dur*t��|_n||_t�|_d|_d|_d|_	d|_
d|_|j��rrt
�t�d��|_dS)NrzLimit cannot be <= 0Fr	)�
ValueError�_limitrr r4�	bytearray�_buffer�_eof�_waiter�
_exceptionr\r5r:r
�
extract_stack�sys�	_getframerX)r8rrrrrr9�s 
�zStreamReader.__init__cCs�dg}|jr"|�t|j��d��|jr2|�d�|jtkrN|�d|j���|jrf|�d|j���|jr~|�d|j���|jr�|�d|j���|j	r�|�d�d	�
d
�|��S)Nrz bytes�eofzlimit=zwaiter=z
exception=rwZpausedrxry)r�rz�lenr�r��_DEFAULT_LIMITr�r�r\r5r{r|r}rrrr�s 


zStreamReader.__repr__cCs|jSr)r�r<rrrro�szStreamReader.exceptioncCs0||_|j}|dur,d|_|��s,|�|�dSr)r�r�rIrDrErrrrD�szStreamReader.set_exceptioncCs*|j}|dur&d|_|��s&|�d�dS)z1Wakeup read*() functions waiting for data or EOF.N)r�rIr?r@rrr�_wakeup_waiter�s
zStreamReader._wakeup_waitercCs|jdusJd��||_dS)NzTransport already setr�)r8r(rrrre�szStreamReader.set_transportcCs*|jr&t|j�|jkr&d|_|j��dSr3)r5r�r�r�r\�resume_readingr<rrr�_maybe_resume_transport�sz$StreamReader._maybe_resume_transportcCsd|_|��dSrC)r�r�r<rrrrj�szStreamReader.feed_eofcCs|jo|jS)z=Return True if the buffer is empty and 'feed_eof' was called.)r�r�r<rrr�at_eof�szStreamReader.at_eofcCs�|jrJd��|sdS|j�|�|��|jdur||js|t|j�d|jkr|z|j��Wnt	ytd|_Yn0d|_dS)Nzfeed_data after feed_eofrT)
r�r��extendr�r\r5r�r�Z
pause_readingrLr�rrrrk�s
��zStreamReader.feed_datac�sl|jdurt|�d���|jr&Jd��|jr<d|_|j��|j��|_z|jIdHWd|_nd|_0dS)zpWait until feed_data() or feed_eof() is called.

        If stream was paused, automatically resume it.
        NzF() called while another coroutine is already waiting for incoming dataz_wait_for_data after EOFF)r��RuntimeErrorr�r5r\r�r4rJ)r8Z	func_namerrr�_wait_for_data�s	
�
zStreamReader._wait_for_datac
�s�d}t|�}z|�|�IdH}Wn�tjyL}z|jWYd}~Sd}~0tjy�}zP|j�||j�r�|jd|j|�=n
|j�	�|�
�t|jd��WYd}~n
d}~00|S)a�Read chunk of data from the stream until newline (b'
') is found.

        On success, return chunk that ends with newline. If only partial
        line can be read due to EOF, return incomplete line without
        terminating newline. When EOF was reached while no bytes read, empty
        bytes object is returned.

        If limit is reached, ValueError will be raised. In that case, if
        newline was found, complete line including newline will be removed
        from internal buffer. Else, internal buffer will be cleared. Limit is
        compared against part of the line without newline.

        If stream was paused, this function will automatically resume it if
        needed.
        �
Nr)
r��	readuntilr�IncompleteReadError�partial�LimitOverrunErrorr��
startswith�consumed�clearr�r��args)r8�sep�seplen�line�errr�readline	s
$zStreamReader.readliner�c�s�t|�}|dkrtd��|jdur(|j�d}t|j�}|||kr||j�||�}|dkrZq�|d|}||jkr|t�d|��|jr�t	|j�}|j�
�t�|d��|�d�IdHq,||jkr�t�d|��|jd||�}|jd||�=|�
�t	|�S)	aVRead data from the stream until ``separator`` is found.

        On success, the data and separator will be removed from the
        internal buffer (consumed). Returned data will include the
        separator at the end.

        Configured stream limit is used to check result. Limit sets the
        maximal length of data that can be returned, not counting the
        separator.

        If an EOF occurs and the complete separator is still not found,
        an IncompleteReadError exception will be raised, and the internal
        buffer will be reset.  The IncompleteReadError.partial attribute
        may contain the separator partially.

        If the data cannot be read because of over limit, a
        LimitOverrunError exception  will be raised, and the data
        will be left in the internal buffer, so it can be read again.
        rz,Separator should be at least one-byte stringN���r	z2Separator is not found, and chunk exceed the limitr�z2Separator is found, but chunk is longer than limit)r�r�r�r��findr�rr�r��bytesr�r�r�r�)r8Z	separatorr��offsetZbuflenZisep�chunkrrrr�(s<


�


�zStreamReader.readuntilr�c�s�|jdur|j�|dkrdS|dkrVg}|�|j�IdH}|s@qL|�|�q(d�|�S|jsr|jsr|�d�IdHt|jd|��}|jd|�=|�	�|S)a�Read up to `n` bytes from the stream.

        If n is not provided, or set to -1, read until EOF and return all read
        bytes. If the EOF was received and the internal buffer is empty, return
        an empty bytes object.

        If n is zero, return empty bytes object immediately.

        If n is positive, this function try to read `n` bytes, and may return
        less or equal bytes than requested, but at least one byte. If EOF was
        received before any byte is read, this function returns empty byte
        object.

        Returned value is not limited with limit, configured at stream
        creation.

        If stream was paused, this function will automatically resume it if
        needed.
        Nrr�read)
r�r�r�rzr|r�r�r�r�r�)r8�nZblocks�blockrlrrrr��s"

zStreamReader.readc�s�|dkrtd��|jdur |j�|dkr,dSt|j�|krr|jr`t|j�}|j��t�||��|�	d�IdHq,t|j�|kr�t|j�}|j��nt|jd|��}|jd|�=|�
�|S)a�Read exactly `n` bytes.

        Raise an IncompleteReadError if EOF is reached before `n` bytes can be
        read. The IncompleteReadError.partial attribute of the exception will
        contain the partial read bytes.

        if n is zero, return empty bytes object.

        Returned value is not limited with limit, configured at stream
        creation.

        If stream was paused, this function will automatically resume it if
        needed.
        rz*readexactly size can not be less than zeroNr�readexactly)r�r�r�r�r�r�r�rr�r�r�)r8r�Z
incompleterlrrrr��s&



zStreamReader.readexactlycCs|Srrr<rrr�	__aiter__�szStreamReader.__aiter__c�s|��IdH}|dkrt�|S)Nr)r��StopAsyncIteration)r8�valrrr�	__anext__�szStreamReader.__anext__)r�)r�)rPrQrRrXr�r9rrorDr�rer�rjr�rkr�r�r�r�r�r�r�rrrrr�s$	
[
2)r)NN)NN)N)N)�__all__Zsocketr�r!rU�hasattr�r
rrr
r�logrZtasksrr�rrrr�Protocolr2rrrrrrr�<module>s>
�!�'
��DkP

SILENT KILLER Tool