ok

Mini Shell

Direktori : /opt/imunify360/venv/lib/python3.11/site-packages/aiohttp/__pycache__/
Upload File :
Current File : //opt/imunify360/venv/lib/python3.11/site-packages/aiohttp/__pycache__/streams.cpython-311.pyc

�

m��fQ����UddlZddlZddlZddlmZmZmZmZmZm	Z	m
Z
mZddlm
Z
ddlmZmZmZddlmZddlmZdZed	��ZGd
�de��ZGd�d
ee��ZGd�d��ZGd�d��ZGd�de��ZGd�de��Ze��Zeee d<Gd�dee��Z!Gd�de!e��Z"dS)�N)�	Awaitable�Callable�Deque�Generic�List�Optional�Tuple�TypeVar�)�BaseProtocol)�BaseTimerContext�
set_exception�
set_result)�internal_logger)�Final)�
EMPTY_PAYLOAD�	EofStream�StreamReader�	DataQueue�FlowControlDataQueue�_Tc��eZdZdZdS)rzeof stream indication.N)�__name__�
__module__�__qualname__�__doc__���F/opt/imunify360/venv/lib64/python3.11/site-packages/aiohttp/streams.pyrrs������ � � � rrc�N�eZdZdegeefddfd�Zdd�Zdefd�ZdS)	�AsyncStreamIterator�	read_func�returnNc��||_dS�N)r")�selfr"s  r�__init__zAsyncStreamIterator.__init__s
��"����r�AsyncStreamIterator[_T]c��|Sr%r�r&s r�	__aiter__zAsyncStreamIterator.__aiter__����rc��K�	|����d{V��}n#t$rt�wxYw|dkrt�|S�Nr)r"r�StopAsyncIteration�r&�rvs  r�	__anext__zAsyncStreamIterator.__anext__!sc����	%��~�~�'�'�'�'�'�'�'�'�B�B���	%�	%�	%�$�$�	%����
��9�9�$�$��	s��1)r#r()	rrrrrrr'r+r2rrrr!r!ss������#�(�2�y��}�+<�"=�#�$�#�#�#�#������������rr!c�:�eZdZdd�Zd	d�Zdeeeffd�ZdS)
�ChunkTupleAsyncStreamIterator�streamrr#Nc��||_dSr%)�_stream)r&r5s  rr'z&ChunkTupleAsyncStreamIterator.__init__,s
������rc��|Sr%rr*s rr+z'ChunkTupleAsyncStreamIterator.__aiter__/r,rc��bK�|j����d{V��}|dkrt�|S)N�rF)r7�	readchunkr/r0s  rr2z'ChunkTupleAsyncStreamIterator.__anext__2sA�����<�)�)�+�+�
+�
+�
+�
+�
+�
+��
����$�$��	r)r5rr#N)r#r4)	rrrr'r+r	�bytes�boolr2rrrr4r4+s`����������������u�d�{�!3������rr4c�f�eZdZdeefd�Zdedeefd�Zdeefd�Zde	fd�Z
dS)�AsyncStreamReaderMixinr#c�*�t|j��Sr%)r!�readliner*s rr+z AsyncStreamReaderMixin.__aiter__:s��"�4�=�1�1�1r�nc�,���t��fd���S)zzReturns an asynchronous iterator that yields chunks of size n.

        Python-3.5 available for Python 3.5+ only
        c�.�������Sr%)�read)rBr&s��r�<lambda>z5AsyncStreamReaderMixin.iter_chunked.<locals>.<lambda>Cs���D�I�I�a�L�L�r)r!�r&rBs``r�iter_chunkedz#AsyncStreamReaderMixin.iter_chunked=s'����
#� � � � � �
�
�	
rc�*�t|j��S)zoYield all available data as soon as it is received.

        Python-3.5 available for Python 3.5+ only
        )r!�readanyr*s r�iter_anyzAsyncStreamReaderMixin.iter_anyFs��
#�4�<�0�0�0rc� �t|��S)z�Yield chunks of data as they are received by the server.

        The yielded objects are tuples
        of (bytes, bool) as returned by the StreamReader.readchunk method.

        Python-3.5 available for Python 3.5+ only
        )r4r*s r�iter_chunksz"AsyncStreamReaderMixin.iter_chunksMs��-�T�2�2�2rN)rrrr!r<r+�intrHrKr4rMrrrr?r?9s�������2�.�u�5�2�2�2�2�
�c�
�&9�%�&@�
�
�
�
�1�-�e�4�1�1�1�1�3�:�3�3�3�3�3�3rr?c���eZdZdZdZddd�dededeedee	j
d	df
d
�Zd	efd�Z
d	eeeffd�Zd	eefd
�Zded	dfd�Zdegdfd	dfd�Zd+d�Zd	efd�Zd	efd�Zd+d�Zded	dfd�Zd,deded	dfd�Zd+d�Zd+d�Zded	dfd�Zd	efd�Z d-d ed	efd!�Z!d.d#ed	efd$�Z"d	efd%�Z#d	eeeffd&�Z$d#ed	efd'�Z%d.d#ed	efd(�Z&d#ed	efd)�Z'd#ed	efd*�Z(dS)/ra*An enhancement of asyncio.StreamReader.

    Supports asynchronous iteration by line, chunk or as available::

        async for line in reader:
            ...
        async for chunk in reader.iter_chunked(1024):
            ...
        async for slice in reader.iter_any():
            ...

    rN)�timer�loop�protocol�limitrPrQr#c�*�||_||_|dz|_|�tj��}||_d|_d|_d|_tj
��|_d|_d|_
d|_d|_d|_||_g|_dS)N�rF)�	_protocol�
_low_water�_high_water�asyncio�get_event_loop�_loop�_size�_cursor�_http_chunk_splits�collections�deque�_buffer�_buffer_offset�_eof�_waiter�_eof_waiter�
_exception�_timer�_eof_callbacks)r&rRrSrPrQs     rr'zStreamReader.__init__hs���"������ �1�9����<��)�+�+�D���
���
����7;���%0�%6�%8�%8��������	�7;���;?���37������8:����rc��|jjg}|jr|�d|jz��|jr|�d��|jdkr$|�d|j|jfz��|jr|�d|jz��|jr|�d|jz��dd�	|��zS)	Nz%d bytes�eofizlow=%d high=%dzw=%rze=%rz<%s>� )
�	__class__rr\�appendrcrWrXrdrf�join)r&�infos  r�__repr__zStreamReader.__repr__�s�����'�(���:�	1��K�K�
�T�Z�/�0�0�0��9�	��K�K������?�e�#�#��K�K�(�D�O�T�=M�+N�N�O�O�O��<�	/��K�K����-�.�.�.��?�	2��K�K����0�1�1�1��������&�&rc��|j|jfSr%)rWrXr*s r�get_read_buffer_limitsz#StreamReader.get_read_buffer_limits�s�����!1�2�2rc��|jSr%�rfr*s r�	exceptionzStreamReader.exception��
����r�excc���||_|j���|j}|�d|_t	||��|j}|�d|_t	||��dSdSr%)rfrh�clearrdrre�r&rw�waiters   rrzStreamReader.set_exception�sv�������!�!�#�#�#�������D�L��&�#�&�&�&��!����#�D���&�#�&�&�&�&�&��r�callbackc��|jr2	|��dS#t$rtjd��YdSwxYw|j�|��dS�N�Exception in eof callback)rc�	Exceptionrrurhrm�r&r|s  r�on_eofzStreamReader.on_eof�sz���9�	1�
G���
�
�
�
�
���
G�
G�
G��)�*E�F�F�F�F�F�F�
G����
��&�&�x�0�0�0�0�0s�
�7�7c�8�d|_|j}|�d|_t|d��|j}|�d|_t|d��|jD]1}	|���#t
$rt
jd��Y�.wxYw|j���dS)NTr)	rcrdrrerhr�rrury)r&r{�cbs   r�feed_eofzStreamReader.feed_eof�s�����	�������D�L��v�t�$�$�$��!����#�D���v�t�$�$�$��%�	G�	G�B�
G���������
G�
G�
G��)�*E�F�F�F�F�F�
G����	
��!�!�#�#�#�#�#s�
A�A>�=A>c��|jS)z&Return True if  'feed_eof' was called.�rcr*s r�is_eofzStreamReader.is_eof�s
���y�rc� �|jo|jS)z=Return True if the buffer is empty and 'feed_eof' was called.�rcrar*s r�at_eofzStreamReader.at_eof�s���y�-���-�-rc��K�|jrdS|j�J�|j���|_	|j�d{V��d|_dS#d|_wxYwr%)rcrer[�
create_futurer*s r�wait_eofzStreamReader.wait_eof�s|�����9�	��F���'�'�'��:�3�3�5�5���	$��"�"�"�"�"�"�"�"�#�D�����t�D��#�#�#�#s�
A
�
	A�datac�\�tjdtd���|sdS|jr)|jd|jd�|jd<d|_|xjt
|��z
c_|xjt
|��zc_|j�|��d|_	dS)zDrollback reading some data from stream, inserting it to buffer head.zJunread_data() is deprecated and will be removed in future releases (#3260)rU)�
stacklevelNr)
�warnings�warn�DeprecationWarningrbrar\�lenr]�
appendleft�_eof_counter)r&r�s  r�unread_datazStreamReader.unread_data�s����
�
=���		
�	
�	
�	
��	��F���	$�"�l�1�o�d�.A�.C�.C�D�D�L��O�"#�D���
�
�c�$�i�i��
�
�����D�	�	�!��������%�%�%�����r�sizec��|jr
Jd���|sdS|xjt|��z
c_|j�|��|xjt|��z
c_|j}|�d|_t|d��|j|jkr'|j	j
s|j	���dSdSdS)Nzfeed_data after feed_eof)rcr\r�rarm�total_bytesrdrrXrV�_reading_paused�
pause_reading�r&r�r�r{s    r�	feed_datazStreamReader.feed_data�s����9�8�8�8�8�8�}��	��F��
�
�c�$�i�i��
�
�����D�!�!�!����C��I�I�%���������D�L��v�t�$�$�$��:��(�(�(���1O�(��N�(�(�*�*�*�*�*�)�(�(�(rc�R�|j�|jrtd���g|_dSdS)Nz?Called begin_http_chunk_receiving whensome data was already fed)r^r��RuntimeErrorr*s r�begin_http_chunk_receivingz'StreamReader.begin_http_chunk_receiving�sC���"�*���
�"�X����')�D�#�#�#�+�*rc��|j�td���|jr
|jdnd}|j|krdS|j�|j��|j}|�d|_t|d��dSdS)NzFCalled end_chunk_receiving without calling begin_chunk_receiving first���r)r^r�r�rmrdr)r&�posr{s   r�end_http_chunk_receivingz%StreamReader.end_http_chunk_receivings����"�*��.���
�.2�-D�K�d�%�b�)�)�!����s�"�"�
�F���&�&�t�'7�8�8�8�������D�L��v�t�$�$�$�$�$��r�	func_namec��K�|j�td|z���|j���x}|_	|jr(|j5|�d{V��ddd��n#1swxYwYn|�d{V��d|_dS#d|_wxYw)NzH%s() called while another coroutine is already waiting for incoming data)rdr�r[r�rg)r&r�r{s   r�_waitzStreamReader._wait!s�����
�<�#��4�6?�@���
�
!%�
� 8� 8� :� :�:����	 ��{�
��[�!�!� �L�L�L�L�L�L�L�!�!�!�!�!�!�!�!�!�!�!����!�!�!�!�����������D�L�L�L��4�D�L����s/�A=�	A �A=� A$�$A=�'A$�(A=�=	Bc��:K�|����d{V��Sr%)�	readuntilr*s rrAzStreamReader.readline6s(�����^�^�%�%�%�%�%�%�%�%�%r�
�	separatorc���K�t|��}|dkrtd���|j�|j�d}d}d}|r�|jr�|r�|j}|jd�||��dz}|�|r||z
nd��}||z
}|t|��z
}|rd}||jkrtd���|jr|��|jrn|r|�	d	���d{V��|��|S)
Nrz,Separator should be at least one-byte stringrTrr�Fz
Chunk too bigr�)
r��
ValueErrorrfrarb�find�_read_nowait_chunkrXrcr�)	r&r��seplen�chunk�
chunk_size�
not_enough�offset�icharr�s	         rr�zStreamReader.readuntil9sJ�����Y�����Q�;�;��K�L�L�L��?�&��/�!����
��
��	.��,�
6�:�
6��,����Q��,�,�Y��?�?�!�C���.�.��/N�u�v�~�~�B�O�O����
���c�$�i�i�'�
��'�!&�J��� 0�0�0�$�_�5�5�5��,�
6�:�
6��y�
���
.��j�j��-�-�-�-�-�-�-�-�-�%�	.�(�rr�rBc��K�|j�|j�	|jrA|js:t|dd��dz|_|jdkrtjdd���|sdS|dkrKg}	|����d{V��}|sn|�|���3d�	|��S|js0|js)|�
d	���d{V��|js|j�)|�|��S)
NTr�rr�zEMultiple access to StreamReader in eof state, might be infinite loop.)�
stack_inforrE)rfrcra�getattrr�r�warningrJrmrnr��_read_nowait)r&rB�blocks�blocks    rrEzStreamReader.read[sT�����?�&��/�!�	��y�
���
�$+�D�.�!�$D�$D�q�$H��!��$�q�(�(�#�+�2�#'������	��3��q�5�5�
�F�
%�"�l�l�n�n�,�,�,�,�,�,������
�
�e�$�$�$�	
%�
�8�8�F�#�#�#�
�,�	%�t�y�	%��*�*�V�$�$�$�$�$�$�$�$�$��,�	%�t�y�	%�� � ��#�#�#rc��K�|j�|j�|js0|js)|�d���d{V��|js|j�)|�d��S)NrJr�)rfrarcr�r�r*s rrJzStreamReader.readany�sz�����?�&��/�!�
�,�	(�t�y�	(��*�*�Y�'�'�'�'�'�'�'�'�'��,�	(�t�y�	(�� � ��$�$�$rc��K�	|j�|j�|jrl|j�d��}||jkrdS||jkr|�||jz
��dfStjd��|j�l|jr|�d��dfS|j	rdS|�
d	���d{V����)
aReturns a tuple of (data, end_of_http_chunk).

        When chunked transfer
        encoding is used, end_of_http_chunk is a boolean indicating if the end
        of the data corresponds to the end of a HTTP chunk , otherwise it is
        always False.
        TNr�rTzESkipping HTTP chunk end due to data consumption beyond chunk boundaryr�Fr:r;)rfr^�popr]r�rr�rar�rcr�)r&r�s  rr;zStreamReader.readchunk�s����	*���*��o�%��)�	
��-�1�1�!�4�4���$�,�&�&�&�;����%�%� �-�-�c�D�L�.@�A�A�4�H�H��'�8����
�)�	
��|�
<��/�/��3�3�U�;�;��y�
$�$�|��*�*�[�)�)�)�)�)�)�)�)�)�1	*rc��dK�|j�|j�g}|dkr�|�|���d{V��}|s:d�|��}tj|t|��|z���|�|��|t|��z}|dk��d�|��S)Nrr)rfrErnrY�IncompleteReadErrorr�rm)r&rBr�r��partials     r�readexactlyzStreamReader.readexactly�s������?�&��/�!� ���!�e�e��)�)�A�,�,�&�&�&�&�&�&�E��
M��(�(�6�*�*���1�'�3�w�<�<�!�;K�L�L�L��M�M�%� � � �
��U���O�A�
�!�e�e��x�x����rc��|j�|j�|jr(|j���std���|�|��S)Nz9Called while some coroutine is waiting for incoming data.)rfrd�doner�r�rGs  r�read_nowaitzStreamReader.read_nowait�s^��
�?�&��/�!��<�	��� 1� 1� 3� 3�	��K���
�� � ��#�#�#rc��|jd}|j}|dkr4t|��|z
|kr||||z�}|xj|z
c_nF|r+|j���||d�}d|_n|j���}|xjt|��zc_|xjt|��z
c_|j}|r9|d|jkr(|�d��|r|d|jk�(|j|jkr%|j	j
r|j	���|S)Nrr�)rarbr��popleftr\r]r^r�rWrVr��resume_reading)r&rB�first_bufferr�r��chunk_splitss      rr�zStreamReader._read_nowait_chunk�sW���|�A����$����7�7�s�<�(�(�6�1�A�5�5����!�� 3�4�D����1�$����
�	*��L� � �"�"�"�����(�D�"#�D����<�'�'�)�)�D��
�
�c�$�i�i��
�
�����D�	�	�!����.���	 �|�A����=�=����Q�����	 �|�A����=�=��:���'�'�D�N�,J�'��N�)�)�+�+�+��rc���g}|jrP|�|��}|�|��|dkr|t|��z}|dkrn|j�P|rd�|��ndS)z6Read not more than n bytes, or whole buffer if n == -1r�rr)rar�rmr�rn)r&rB�chunksr�s    rr�zStreamReader._read_nowait�s������l�	��+�+�A�.�.�E��M�M�%� � � ��B�w�w��S��Z�Z�����6�6��
�l�	�$*�2�s�x�x�����s�2r�r#N�r)r��r�))rrrrr�rrNrr
rY�AbstractEventLoopr'�strrpr	rr�
BaseExceptionrurrr�r�r=r�r�r�r<r�r�r�r�r�rAr�rErJr;r�r�r�r�rrrrrXsd���������K�-1�48�
;�;�;��;��;�
�(�)�;��w�0�1�
;�
�;�;�;�;�4'�#�'�'�'�'�3��c�3�h��3�3�3�3��8�M�2�����'��'�4�'�'�'�'�1�x��D��1�1�d�1�1�1�1�$�$�$�$�*������.��.�.�.�.�	$�	$�	$�	$����$�����(+�+�e�+�3�+�t�+�+�+�+�$)�)�)�)�%�%�%�%�< �S� �T� � � � �*&��&�&�&�&� � �� �5� � � � �D($�($�C�($��($�($�($�($�T
%�u�
%�
%�
%�
%� *��u�d�{�!3� *� *� *� *�D
 �3�
 �5�
 �
 �
 �
 �
$�
$�S�
$�%�
$�
$�
$�
$��C��E�����63�c�3�e�3�3�3�3�3�3rrc��eZdZdd�Zdeefd�Zdeddfd�Zdegdfddfd�Z	dd	�Z
defd
�Zdefd�Z
dd�Zddededdfd�Zdefd�Zddedefd�Zdefd�Zdeeeffd�Zdedefd�Zddedefd�ZdS)�EmptyStreamReaderr#Nc��dSr%rr*s rr'zEmptyStreamReader.__init__�����rc��dSr%rr*s rruzEmptyStreamReader.exception�����trrwc��dSr%r)r&rws  rrzEmptyStreamReader.set_exceptionr�rr|c�f�	|��dS#t$rtjd��YdSwxYwr~)r�rrur�s  rr�zEmptyStreamReader.on_eofsQ��	C��H�J�J�J�J�J���	C�	C�	C��%�&A�B�B�B�B�B�B�	C���s�
�0�0c��dSr%rr*s rr�zEmptyStreamReader.feed_eofr�rc��dS�NTrr*s rr�zEmptyStreamReader.is_eofr�rc��dSr�rr*s rr�zEmptyStreamReader.at_eofr�rc��
K�dSr%rr*s rr�zEmptyStreamReader.wait_eofs�����rrr�rBc��dSr%r)r&r�rBs   rr�zEmptyStreamReader.feed_datar�rc��
K�dSr.rr*s rrAzEmptyStreamReader.readline������srr�c��
K�dSr.rrGs  rrEzEmptyStreamReader.readr�rc��
K�dSr.rr*s rrJzEmptyStreamReader.readany"r�rc��
K�dS)Nr�rr*s rr;zEmptyStreamReader.readchunk%s�����{rc��0K�tjd|���r.)rYr�rGs  rr�zEmptyStreamReader.readexactly(s�����)�#�q�1�1�1rc��dSr.rrGs  rr�zEmptyStreamReader.read_nowait+s���srr�r�r�)rrrr'rr�rurrr�r�r=r�r�r�r<rNr�rArErJr	r;r�r�rrrr�r��s�������
�
�
�
��8�M�2�����
��
�4�
�
�
�
�C�x��D��1�C�d�C�C�C�C�
�
�
�
�����������������
�
�e�
��
�D�
�
�
�
���������C�������
�u�������u�d�{�!3�����2�3�2�5�2�2�2�2���S��%������rr�rc��eZdZdZdejddfd�Zdefd�Zde	fd�Z
de	fd�Zdee
fd	�Zd
e
ddfd�Zdd
ededdfd�Zdd�Zdefd�Zdeefd�ZdS)rz>DataQueue is a general-purpose blocking queue with one reader.rQr#Nc�|�||_d|_d|_d|_d|_tj��|_dS)NFr)r[rcrdrfr\r_r`ra)r&rQs  rr'zDataQueue.__init__5s9����
���	�7;���37�����
�.9�.?�.A�.A����rc�*�t|j��Sr%)r�rar*s r�__len__zDataQueue.__len__=s���4�<� � � rc��|jSr%r�r*s rr�zDataQueue.is_eof@s
���y�rc� �|jo|jSr%r�r*s rr�zDataQueue.at_eofCs���y�-���-�-rc��|jSr%rtr*s rruzDataQueue.exceptionFrvrrwc�f�d|_||_|j}|�d|_t||��dSdSr�)rcrfrdrrzs   rrzDataQueue.set_exceptionIsB����	����������D�L��&�#�&�&�&�&�&��rrr�r�c��|xj|z
c_|j�||f��|j}|�d|_t	|d��dSdSr%)r\rarmrdrr�s    rr�zDataQueue.feed_dataRs^���
�
�d��
�
�����T�4�L�)�)�)�������D�L��v�t�$�$�$�$�$��rc�X�d|_|j}|�d|_t|d��dSdSr�)rcrdr)r&r{s  rr�zDataQueue.feed_eof[s;����	�������D�L��v�t�$�$�$�$�$��rc��pK�|jsd|js]|jrJ�|j���|_	|j�d{V��n'#t
jt
jf$r	d|_�wxYw|jr.|j���\}}|xj	|zc_	|S|j
�|j
�t�r%)rarcrdr[r�rY�CancelledError�TimeoutErrorr�r\rfr)r&r�r�s   rrEzDataQueue.readcs������|�	�D�I�	��|�#�#�#��:�3�3�5�5�D�L�
��l�"�"�"�"�"�"�"�"���*�G�,@�A�
�
�
�#����
�����<�	 ���-�-�/�/�J�D�$��J�J�$��J�J��K���*��o�%��s�
A�$A+c�*�t|j��Sr%)r!rEr*s rr+zDataQueue.__aiter__ws��"�4�9�-�-�-rr�r�)rrrrrYr�r'rNr�r=r�r�rr�rurrr�r�rEr!r+rrrrr2sV������H�H�B�W�6�B�4�B�B�B�B�!��!�!�!�!�������.��.�.�.�.��8�M�2�����'��'�4�'�'�'�'�%�%�b�%��%�D�%�%�%�%�%�%�%�%� �B� � � � �(.�.�r�2�.�.�.�.�.�.rrc�h��eZdZdZdededejddf�fd�Zd
d	e	d
eddf�fd�
Z
de	f�fd�Z�xZS)rzlFlowControlDataQueue resumes and pauses an underlying stream.

    It is a destination for parsed data.
    rRrSrQr#Nc�n��t���|���||_|dz|_dS)N)rQrU)�superr'rV�_limit)r&rRrSrQrls    �rr'zFlowControlDataQueue.__init__�s6���	�����d��#�#�#�!����a�i����rrr�r�c���t���||��|j|jkr'|jjs|j���dSdSdSr%)r�r�r\r�rVr�r�)r&r�r�rls   �rr�zFlowControlDataQueue.feed_data�s^���
�����$��%�%�%��:���#�#�D�N�,J�#��N�(�(�*�*�*�*�*�$�#�#�#rc��>�K�	t������d{V��	|j|jkr&|jjr|j���SSS#|j|jkr&|jjr|j���wwwxYwr%)r�rEr\r�rVr�r�)r&rls �rrEzFlowControlDataQueue.read�s������	0��������'�'�'�'�'�'�'��z�D�K�'�'�D�N�,J�'���-�-�/�/�/�/�(�'��t�z�D�K�'�'�D�N�,J�'���-�-�/�/�/�/�(�'���s�%A#�#9Br�)
rrrrrrNrYr�r'rr�rE�
__classcell__)rls@rrr{s����������
 �$� �-0� �;B�;T� �	
� � � � � � �+�+�b�+��+�D�+�+�+�+�+�+�0�B�0�0�0�0�0�0�0�0�0�0rr)#rYr_r��typingrrrrrrr	r
�
base_protocolr�helpersr
rr�logr�typedefsr�__all__rr�rr!r4r?rr�r�__annotations__rrrrr�<module>r	sa���������������V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�'�'�'�'�'�'�@�@�@�@�@�@�@�@�@�@� � � � � � ���������
�W�T�]�]��!�!�!�!�!�	�!�!�!������'�"�+����"��������3�3�3�3�3�3�3�3�>`3�`3�`3�`3�`3�)�`3�`3�`3�F
1�1�1�1�1��1�1�1�h&7�%6�%8�%8�
�u�\�"�8�8�8�F.�F.�F.�F.�F.����F.�F.�F.�R0�0�0�0�0�9�R�=�0�0�0�0�0r

Zerion Mini Shell 1.0