Ë
    ûeœir\  ã                   ón  — U d dl Z d dlZd dlZd dlmZmZmZmZmZm	Z	m
Z
mZmZ ddlmZ ddlmZmZmZmZmZ ddlmZ dZ ed«      Z G d	„ d
e«      Z G d„ dee   «      Z G d„ d«      Z G d„ d«      Z G d„ de«      Z G d„ de«      Z e«       Z ee   e!d<    G d„ dee   «      Z" G d„ de"e   «      Z#y)é    N)	Ú	AwaitableÚCallableÚDequeÚFinalÚGenericÚListÚOptionalÚTupleÚTypeVaré   )ÚBaseProtocol)Ú_EXC_SENTINELÚBaseTimerContextÚ	TimerNoopÚset_exceptionÚ
set_result)Úinternal_logger)ÚEMPTY_PAYLOADÚ	EofStreamÚStreamReaderÚ	DataQueueÚ_Tc                   ó   — e Zd ZdZy)r   zeof stream indication.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úd/var/www/html/Whatsapp_Customer_Support_Chatbot/venv/lib/python3.12/site-packages/aiohttp/streams.pyr   r   $   s   „ Ú r   r   c                   óD   — e Zd ZdZdeg ee   f   ddfd„Zdd„Zdefd„Z	y)	ÚAsyncStreamIterator©Ú	read_funcr$   ÚreturnNc                 ó   — || _         y ©Nr#   )Úselfr$   s     r    Ú__init__zAsyncStreamIterator.__init__,   s	   € Ø"ˆ�r   c                 ó   — | S r'   r   ©r(   s    r    Ú	__aiter__zAsyncStreamIterator.__aiter__/   ó   € Øˆr   c              ƒ   ó€   K  — 	 | j                  «       ƒ d {  –—† }|dk(  rt        ‚|S 7 Œ# t        $ r t        ‚w xY w­w©Nr   )r$   r   ÚStopAsyncIteration©r(   Úrvs     r    Ú	__anext__zAsyncStreamIterator.__anext__2   sG   è ø€ ð	%Ø—~‘~Ó'×'ˆBð �Š9Ü$Ð$Øˆ	ð (ùÜò 	%Ü$Ð$ð	%üs    ‚>„+ —)˜+ œ>©+ «;»>)r%   zAsyncStreamIterator[_T])
r   r   r   Ú	__slots__r   r   r   r)   r,   r3   r   r   r    r"   r"   (   s9   „ à€Ið# (¨2¨y¸©}Ð+<Ñ"=ð #À$ó #óð ô r   r"   c                   ó6   — e Zd ZdZdd„Zdd„Zdeeef   fd„Z	y)	ÚChunkTupleAsyncStreamIterator©Ú_streamr%   Nc                 ó   — || _         y r'   r7   )r(   Ústreams     r    r)   z&ChunkTupleAsyncStreamIterator.__init__@   s	   € Øˆ�r   c                 ó   — | S r'   r   r+   s    r    r,   z'ChunkTupleAsyncStreamIterator.__aiter__C   r-   r   c              ƒ   ól   K  — | j                   j                  «       ƒ d {  –—† }|dk(  rt        ‚|S 7 Œ­w)N©r   F)r8   Ú	readchunkr0   r1   s     r    r3   z'ChunkTupleAsyncStreamIterator.__anext__F   s3   è ø€ Ø—<‘<×)Ñ)Ó+×+ˆØ�ÒÜ$Ð$Øˆ	ð ,ús   ‚4 2¡4)r:   r   r%   N)r%   r6   )
r   r   r   r4   r)   r,   r
   ÚbytesÚboolr3   r   r   r    r6   r6   <   s&   „ à€Ióóð  u¨d {Ñ!3ô r   r6   c                   óV   — e Zd ZdZdee   fd„Zdedee   fd„Zdee   fd„Z	de
fd„Zy)	ÚAsyncStreamReaderMixinr   r%   c                 ó,   — t        | j                  «      S r'   )r"   Úreadliner+   s    r    r,   z AsyncStreamReaderMixin.__aiter__Q   s   € Ü" 4§=¡=Ó1Ð1r   Únc                 ó$   ‡ ‡— t        ˆˆ fd„«      S )z>Returns an asynchronous iterator that yields chunks of size n.c                  ó&   •— ‰j                  ‰ «      S r'   )Úread)rE   r(   s   €€r    ú<lambda>z5AsyncStreamReaderMixin.iter_chunked.<locals>.<lambda>V   s   ø€ ¨4¯9©9°Q«<€ r   )r"   ©r(   rE   s   ``r    Úiter_chunkedz#AsyncStreamReaderMixin.iter_chunkedT   s   ù€ ä"Ô#7Ó8Ð8r   c                 ó,   — t        | j                  «      S )z3Yield all available data as soon as it is received.)r"   Úreadanyr+   s    r    Úiter_anyzAsyncStreamReaderMixin.iter_anyX   s   € ä" 4§<¡<Ó0Ð0r   c                 ó   — 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.
        )r6   r+   s    r    Úiter_chunksz"AsyncStreamReaderMixin.iter_chunks\   s   € ô -¨TÓ2Ð2r   N)r   r   r   r4   r"   r?   r,   ÚintrK   rN   r6   rP   r   r   r    rB   rB   M   sQ   „ à€Ið2Ð.¨uÑ5ó 2ð9˜cð 9Ð&9¸%Ñ&@ó 9ð1Ð-¨eÑ4ó 1ð3Ð:ô 3r   rB   c                   óÖ  — e Zd ZdZdZdddœdededee   dee	j                     d	df
d
„Zd	efd„Zd	eeef   fd„Zd	ee   fd„Zefdeded	dfd„Zdeg df   d	dfd„Zd+d„Zd	efd„Zd	efd„Zd+d„Zed	efd„«       Zded	dfd„Zd,deded	dfd„Zd+d„Z d+d„Z!ded	dfd„Z"d	efd „Z#d-d!ed	efd"„Z$d.d#ed	efd$„Z%d	efd%„Z&d	eeef   fd&„Z'd#ed	efd'„Z(d.d#ed	efd(„Z)d#ed	efd)„Z*d#ed	efd*„Z+y)/r   a*  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():
            ...

    )Ú	_protocolÚ
_low_waterÚ_high_waterÚ_low_water_chunksÚ_high_water_chunksÚ_loopÚ_sizeÚ_cursorÚ_http_chunk_splitsÚ_bufferÚ_buffer_offsetÚ_eofÚ_waiterÚ_eof_waiterÚ
_exceptionÚ_timerÚ_eof_callbacksÚ_eof_counterÚtotal_bytesÚtotal_compressed_bytesN)ÚtimerÚloopÚprotocolÚlimitrg   rh   r%   c                óÒ  — || _         || _        |dz  | _        |€t        j                  «       }t        d|dz  «      | _        t        d| j                  dz  «      | _        || _        d| _	        d| _
        d | _        t        j                  «       | _        d| _        d| _        d | _        d | _        d | _        |€
t)        «       n|| _        g | _        d| _        d| _        d | _        y )Né   é   é   r   F)rS   rT   rU   ÚasyncioÚget_event_loopÚmaxrW   rV   rX   rY   rZ   r[   ÚcollectionsÚdequer\   r]   r^   r_   r`   ra   r   rb   rc   rd   re   rf   )r(   ri   rj   rg   rh   s        r    r)   zStreamReader.__init__Š   sá   € ð "ˆŒØˆŒØ  1™9ˆÔØˆ<Ü×)Ñ)Ó+ˆDä"% a¨°!©Ó"4ˆÔô "% Q¨×(?Ñ(?À1Ñ(DÓ!EˆÔØˆŒ
ØˆŒ
ØˆŒØ8<ˆÔÜ%0×%6Ñ%6Ó%8ˆŒØˆÔØˆŒ	Ø7;ˆŒØ;?ˆÔØ37ˆŒØ%* ]”i”k¸ˆŒØ8:ˆÔØˆÔØˆÔØ59ˆÕ#r   c                 ó   — | j                   j                  g}| j                  r|j                  d| j                  z  «       | j                  r|j                  d«       | j
                  dk7  r*|j                  d| j
                  | j                  fz  «       | j                  r|j                  d| j                  z  «       | j                  r|j                  d| j                  z  «       ddj                  |«      z  S )	Nz%d bytesÚeofi   zlow=%d high=%dzw=%rze=%rú<%s>ú )
Ú	__class__r   rY   Úappendr^   rT   rU   r_   ra   Újoin)r(   Úinfos     r    Ú__repr__zStreamReader.__repr__¬   s»   € Ø—‘×'Ñ'Ð(ˆØ�:Š:Ø�K‰K˜
 T§Z¡ZÑ/Ô0Ø�9Š9Ø�K‰K˜ÔØ�?‰?˜eÒ#Ø�K‰KÐ(¨D¯O©O¸T×=MÑ=MÐ+NÑNÔOØ�<Š<Ø�K‰K˜ §¡Ñ-Ô.Ø�?Š?Ø�K‰K˜ §¡Ñ0Ô1Ø˜Ÿ™ ›Ñ&Ð&r   c                 ó2   — | j                   | j                  fS r'   )rT   rU   r+   s    r    Úget_read_buffer_limitsz#StreamReader.get_read_buffer_limitsº   s   € Ø—‘ ×!1Ñ!1Ð2Ð2r   c                 ó   — | j                   S r'   ©ra   r+   s    r    Ú	exceptionzStreamReader.exception½   ó   € Ø�‰Ðr   ÚexcÚ	exc_causec                 óÐ   — || _         | j                  j                  «        | j                  }|�d | _        t	        |||«       | j
                  }|�d | _        t	        |||«       y y r'   )ra   rc   Úclearr_   r   r`   ©r(   rƒ   r„   Úwaiters       r    r   zStreamReader.set_exceptionÀ   si   € ð
 ˆŒØ×Ñ×!Ñ!Ô#à—‘ˆØÐØˆDŒLÜ˜& # yÔ1à×!Ñ!ˆØÐØ#ˆDÔÜ˜& # yÕ1ð r   Úcallbackc                 ó¬   — | j                   r		  |«        y | j                  j                  |«       y # t        $ r t        j                  d«       Y y w xY w©NúException in eof callback)r^   Ú	Exceptionr   r�   rc   ry   ©r(   r‰   s     r    Úon_eofzStreamReader.on_eofÒ   sL   € Ø�9Š9ðGÙ•
ð ×Ñ×&Ñ& xÕ0øô ò GÜ×)Ñ)Ð*EÖFðGús   Ž2 ²AÁAc                 ó¤  — d| _         | j                  }|�d | _        t        |d «       | j                  }|�d | _        t        |d «       | j                  j
                  r| j                  j                  «        | j                  D ]
  }	  |«        Œ | j                  j                  «        y # t        $ r t        j                  d«       Y ŒHw xY w)NTrŒ   )r^   r_   r   r`   rS   Ú_reading_pausedÚresume_readingrc   r�   r   r�   r†   )r(   rˆ   Úcbs      r    Úfeed_eofzStreamReader.feed_eofÛ   sÁ   € ØˆŒ	à—‘ˆØÐØˆDŒLÜ�v˜tÔ$à×!Ñ!ˆØÐØ#ˆDÔÜ�v˜tÔ$à�>‰>×)Ò)Ø�N‰N×)Ñ)Ô+à×%Ñ%ò 	GˆBðGÙ•ð	Gð 	×Ñ×!Ñ!Õ#øô ò GÜ×)Ñ)Ð*EÖFðGús   Â
B.Â.CÃCc                 ó   — | j                   S )z&Return True if  'feed_eof' was called.©r^   r+   s    r    Úis_eofzStreamReader.is_eofó   s   € à�y‰yÐr   c                 ó8   — | j                   xr | j                   S )z=Return True if the buffer is empty and 'feed_eof' was called.©r^   r\   r+   s    r    Úat_eofzStreamReader.at_eof÷   s   € à�y‰yÒ- §¡Ð-Ð-r   c              ƒ   óÔ   K  — | j                   ry | j                  �J ‚| j                  j                  «       | _        	 | j                  ƒ d {  –—†  d | _        y 7 Œ# d | _        w xY w­wr'   )r^   r`   rX   Úcreate_futurer+   s    r    Úwait_eofzStreamReader.wait_eofû   sa   è ø€ Ø�9Š9Øà×ÑÐ'Ð'Ð'ØŸ:™:×3Ñ3Ó5ˆÔð	$Ø×"Ñ"×"Ð"à#ˆDÕð #ùà#ˆDÕüs.   ‚;A(¾A ÁAÁA ÁA(ÁA Á	A%Á%A(c                 óJ   — | j                   €| j                  S | j                   S r'   )rf   re   r+   s    r    Útotal_raw_byteszStreamReader.total_raw_bytes  s&   € à×&Ñ&Ð.Ø×#Ñ#Ð#Ø×*Ñ*Ð*r   Údatac                 óv  — t        j                  dt        d¬«       |sy| j                  r0| j                  d   | j                  d | j                  d<   d| _        | xj
                  t        |«      z  c_        | xj                  t        |«      z  c_        | j                  j                  |«       d| _	        y)zDrollback reading some data from stream, inserting it to buffer head.zJunread_data() is deprecated and will be removed in future releases (#3260)rl   )Ú
stacklevelNr   )
ÚwarningsÚwarnÚDeprecationWarningr]   r\   rY   ÚlenrZ   Ú
appendleftrd   )r(   r    s     r    Úunread_datazStreamReader.unread_data  s“   € ä�‰ð=äØõ		
ñ Øà×ÒØ"Ÿl™l¨1™o¨d×.AÑ.AÐ.CÐDˆD�L‰L˜‰OØ"#ˆDÔØ�
Š
”c˜$“iÑ�
Ø�Šœ˜D›	Ñ!�Ø�‰×Ñ Ô%ØˆÕr   Úsizec                 ó¨  — | j                   rJ d«       ‚|sy t        |«      }| xj                  |z  c_        | j                  j	                  |«       | xj
                  |z  c_        | j                  }|�d | _        t        |d «       | j                  | j                  kD  r2| j                  j                  s| j                  j                  «        y y y )Nzfeed_data after feed_eof)r^   r¦   rY   r\   ry   re   r_   r   rU   rS   r‘   Úpause_reading)r(   r    r©   Údata_lenrˆ   s        r    Ú	feed_datazStreamReader.feed_data   s«   € Ø—9’9Ð8Ð8Ó8ˆ}áØä�t“9ˆØ�
Š
�hÑ�
Ø�‰×Ñ˜DÔ!Ø×Ò˜HÑ$Õà—‘ˆØÐØˆDŒLÜ�v˜tÔ$à�:‰:˜×(Ñ(Ò(°·±×1OÒ1OØ�N‰N×(Ñ(Õ*ð 2PÐ(r   c                 ó~   — | j                   €1| j                  rt        d«      ‚t        j                  «       | _         y y )Nz@Called begin_http_chunk_receiving when some data was already fed)r[   re   ÚRuntimeErrorrr   rs   r+   s    r    Úbegin_http_chunk_receivingz'StreamReader.begin_http_chunk_receiving3  s?   € Ø×"Ñ"Ð*Ø×ÒÜ"ØVóð ô '2×&7Ñ&7Ó&9ˆDÕ#ð +r   c                 ó¾  — | j                   €t        d«      ‚| j                   r| j                   d   nd}| j                  |k(  ry | j                   j                  | j                  «       t	        | j                   «      | j
                  kD  r0| j                  j                  s| j                  j                  «        | j                  }|�d | _	        t        |d «       y y )NzFCalled end_chunk_receiving without calling begin_chunk_receiving firstéÿÿÿÿr   )r[   r¯   re   ry   r¦   rW   rS   r‘   r«   r_   r   )r(   Úposrˆ   s      r    Úend_http_chunk_receivingz%StreamReader.end_http_chunk_receiving;  sÈ   € Ø×"Ñ"Ð*Üð.óð ð .2×-DÒ-Dˆd×%Ñ% bÒ)È!ˆà×Ñ˜sÒ"ð à×Ñ×&Ñ& t×'7Ñ'7Ô8ô �×'Ñ'Ó(¨4×+BÑ+BÒBØ—N‘N×2Ò2à�N‰N×(Ñ(Ô*ð —‘ˆØÐØˆDŒLÜ�v˜tÕ$ð r   Ú	func_namec              ƒ   óF  K  — | j                   j                  st        d«      ‚| j                  �t        d|z  «      ‚| j                  j                  «       x}| _        	 | j                  5  |ƒ d {  –—†  d d d «       d | _        y 7 Œ# 1 sw Y   ŒxY w# d | _        w xY w­w)NzConnection closed.zH%s() called while another coroutine is already waiting for incoming data)rS   Ú	connectedr¯   r_   rX   rœ   rb   )r(   rµ   rˆ   s      r    Ú_waitzStreamReader._waitb  s¡   è ø€ Ø�~‰~×'Ò'ÜÐ3Ó4Ð4ð �<‰<Ð#Üð4Ø6?ñ@óð ð
 !%§
¡
× 8Ñ 8Ó :Ð:ˆ�”ð	 Ø—‘ñ Ø—�÷ð  ˆD�Lð ø÷ð ûð  ˆD�LüsH   ‚AB!Á B Á,B	Á2BÁ3B	Á7B Á?B!ÂB	Â	BÂB Â	BÂB!c              ƒ   ó>   K  — | j                  «       ƒ d {  –—† S 7 Œ­wr'   )Ú	readuntilr+   s    r    rD   zStreamReader.readlinew  s   è ø€ Ø—^‘^Ó%×%Ð%Ð%ús   ‚–—Ú	separatorc              ƒ   ó  K  — t        |«      }|dk(  rt        d«      ‚| j                  �| j                  ‚d}d}d}|rÇ| j                  rŽ|rŒ| j                  }| j                  d   j                  ||«      dz   }| j                  |r||z
  |z   dz
  nd«      }||z  }|t        |«      z  }|rd}|| j                  kD  rt        d«      ‚| j                  r|rŒŒ| j                  r	 |S |r| j                  d	«      ƒ d {  –—†  |rŒÇ|S 7 Œ	­w)
Nr   z,Separator should be at least one-byte stringr   Tr   r²   FzChunk too bigrº   )
r¦   Ú
ValueErrorra   r\   r]   ÚfindÚ_read_nowait_chunkrU   r^   r¸   )	r(   r»   ÚseplenÚchunkÚ
chunk_sizeÚ
not_enoughÚoffsetÚicharr    s	            r    rº   zStreamReader.readuntilz  s   è ø€ Ü�Y“ˆØ�QŠ;ÜÐKÓLÐLà�?‰?Ð&Ø—/‘/Ð!àˆØˆ
Øˆ
áØ—,’,¡:Ø×,Ñ,�ØŸ™ Q™×,Ñ,¨Y¸Ó?À!ÑC�à×.Ñ.Ù38�E˜F‘N VÑ+¨aÒ/¸bó�ð ˜‘�Øœc $›iÑ'�
ÙØ!&�Jà × 0Ñ 0Ò0Ü$ _Ó5Ð5ð —,’,¢:ð �yŠyØð
 ˆñ Ø—j‘j Ó-×-Ð-ò) ð, ˆð .ús   ‚CD	Ã%D	Ã=DÃ>D	ÄD	rE   c              ƒ   ó2  K  — | j                   �| j                   ‚	 | j                  rG| j                  s;t        | dd«      dz   | _        | j                  dkD  rt        j                  dd¬«       |sy|dk  rAg }	 | j                  «       ƒ d {  –—† }|sn|j                  |«       Œ-dj                  |«      S | j                  s>| j                  s2| j                  d	«      ƒ d {  –—†  | j                  s| j                  sŒ2| j                  |«      S 7 Œ…7 Œ0­w)
NTrd   r   r   é   zEMultiple access to StreamReader in eof state, might be infinite loop.)Ú
stack_infor   rH   )ra   r^   r\   Úgetattrrd   r   ÚwarningrM   ry   rz   r¸   Ú_read_nowait)r(   rE   ÚblocksÚblocks       r    rH   zStreamReader.readž  s  è ø€ Ø�?‰?Ð&Ø—/‘/Ð!ð Ø�yŠy §¢Ü$+¨D°.À!Ó$DÀqÑ$H�Ô!Ø×$Ñ$ qÒ(Ü#×+Ñ+ð2à#'õñ ØàˆqŠ5ð
 ˆFØØ"Ÿl™l›n×,�ÙØØ—‘˜eÔ$ð	 ð
 —8‘8˜FÓ#Ð#ð
 —,’, t§y¢yØ—*‘*˜VÓ$×$Ð$ð —,’, t§y£yð × Ñ  Ó#Ð#ð -øð %ús+   ‚BDÂDÂADÃ$DÃ%DÄDÄDc              ƒ   óô   K  — | j                   �| j                   ‚| j                  s>| j                  s2| j                  d«      ƒ d {  –—†  | j                  s| j                  sŒ2| j	                  d«      S 7 Œ.­w)NrM   r²   )ra   r\   r^   r¸   rË   r+   s    r    rM   zStreamReader.readanyÈ  sb   è ø€ Ø�?‰?Ð&Ø—/‘/Ð!ð
 —,’, t§y¢yØ—*‘*˜YÓ'×'Ð'ð —,’, t§y£yð × Ñ  Ó$Ð$ð (ús   ‚AA8ÁA6ÁA8Á%A8c              ƒ   óÚ  K  — 	 | j                   �| j                   ‚| j                  r{| j                  j                  «       }|| j                  k(  ry|| j                  kD  r | j	                  || j                  z
  «      dfS t        j                  d«       | j                  rŒ{| j                  r| j                  d«      dfS | j                  ry| j                  d«      ƒ d{  –—†  Œå7 Œ­w)	a  Returns 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.
        TN©r   TzESkipping HTTP chunk end due to data consumption beyond chunk boundaryr²   Fr=   r>   )ra   r[   ÚpopleftrZ   rË   r   rÊ   r\   r¿   r^   r¸   )r(   r³   s     r    r>   zStreamReader.readchunkÔ  sÝ   è ø€ ð Ø�‰Ð*Ø—o‘oÐ%à×)Ò)Ø×-Ñ-×5Ñ5Ó7�Ø˜$Ÿ,™,Ò&Ø&Ø˜Ÿ™Ò%Ø ×-Ñ-¨c°D·L±LÑ.@ÓAÀ4ÐHÐHÜ×'Ñ'ð8ôð ×)Ó)ð �|Š|Ø×/Ñ/°Ó3°UÐ;Ð;ð �yŠyð $à—*‘*˜[Ó)×)Ð)ð1 ð0 *ús   ‚B C+Â#A C+Ã#C)Ã$C+c              ƒ   óT  K  — | j                   �| j                   ‚g }|dkD  rs| j                  |«      ƒ d {  –—† }|s3dj                  |«      }t        j                  |t        |«      |z   «      ‚|j                  |«       |t        |«      z  }|dkD  rŒsdj                  |«      S 7 Œo­w)Nr   r   )ra   rH   rz   ro   ÚIncompleteReadErrorr¦   ry   )r(   rE   rÌ   rÍ   Úpartials        r    ÚreadexactlyzStreamReader.readexactlyö  s›   è ø€ Ø�?‰?Ð&Ø—/‘/Ð!à ˆØ�!ŠeØŸ)™) A›,×&ˆEÙØŸ(™( 6Ó*�Ü×1Ñ1°'¼3¸w»<È!Ñ;KÓLÐLØ�M‰M˜%Ô Ø”�U“‰OˆAð �!‹eð �x‰x˜ÓÐð 'ús   ‚4B(¶B&·AB(ÂB(c                 ó¶   — | j                   �| j                   ‚| j                  r%| j                  j                  «       st        d«      ‚| j	                  |«      S )Nz9Called while some coroutine is waiting for incoming data.)ra   r_   Údoner¯   rË   rJ   s     r    Úread_nowaitzStreamReader.read_nowait  sQ   € ð
 �?‰?Ð&Ø—/‘/Ð!à�<Š< §¡× 1Ñ 1Ô 3ÜØKóð ð × Ñ  Ó#Ð#r   c                 ó  — | j                   d   }| j                  }|dk7  r/t        |«      |z
  |kD  r||||z    }| xj                  |z  c_        nC|r'| j                   j                  «        ||d  }d| _        n| j                   j                  «       }t        |«      }| xj                  |z  c_        | xj
                  |z  c_        | j                  }|r7|d   | j
                  k  r%|j                  «        |r|d   | j
                  k  rŒ%| j                  j                  ra| j                  | j                  k  rH| j                  �"t        | j                  «      | j                  k  r| j                  j                  «        |S )Nr   r²   )r\   r]   r¦   rÑ   rY   rZ   r[   rS   r‘   rT   rV   r’   )r(   rE   Úfirst_bufferrÄ   r    r¬   Úchunk_splitss          r    r¿   zStreamReader._read_nowait_chunk  sK  € Ø—|‘| A‘ˆØ×$Ñ$ˆØ�Š7”s˜<Ó(¨6Ñ1°AÒ5Ø ¨°!©Ð4ˆDØ×Ò 1Ñ$ÖáØ�L‰L× Ñ Ô"Ø  Ð(ˆDØ"#ˆDÕð —<‘<×'Ñ'Ó)ˆDä�t“9ˆØ�
Š
�hÑ�
Ø�Š˜Ñ �à×.Ñ.ˆá˜|¨A™°·±Ò=Ø× Ñ Ô"ñ ˜|¨A™°·±Ó=ð �N‰N×*Ò*Ø—
‘
˜TŸ_™_Ò,à×'Ñ'Ð/Ü�t×.Ñ.Ó/°$×2HÑ2HÒHð �N‰N×)Ñ)Ô+Øˆr   c                 ó  — | j                   j                  «        g }| j                  rH| j                  |«      }|j	                  |«       |dk7  r|t        |«      z  }|dk(  rn| j                  rŒH|rdj                  |«      S dS )z6Read not more than n bytes, or whole buffer if n == -1r²   r   r   )rb   Úassert_timeoutr\   r¿   ry   r¦   rz   )r(   rE   ÚchunksrÁ   s       r    rË   zStreamReader._read_nowait7  sy   € à�‰×"Ñ"Ô$àˆØ�lŠlØ×+Ñ+¨AÓ.ˆEØ�M‰M˜%Ô Ø�BŠwØ”S˜“Z‘�Ø˜’6Øð �l‹lñ $*ˆs�x‰x˜ÓÐ2¨sÐ2r   ©r%   N©r   )ó   
©r²   ),r   r   r   r   r4   r   rQ   r	   r   ro   ÚAbstractEventLoopr)   Ústrr|   r
   r~   ÚBaseExceptionr�   r   r   r   r�   r”   r@   r—   rš   r�   ÚpropertyrŸ   r?   r¨   r­   r°   r´   r¸   rD   rº   rH   rM   r>   rÕ   rØ   r¿   rË   r   r   r    r   r   e   sû  „ ñð€Ið8 -1Ø48ò :àð :ð ð :ð
 Ð(Ñ)ð :ð �w×0Ñ0Ñ1ð :ð 
ó :ðD'˜#ó 'ð3¨¨c°3¨h©ó 3ð˜8 MÑ2ó ð $1ñ2àð2ð !ð2ð 
ó	2ð$1˜x¨¨D¨Ñ1ð 1°dó 1ó$ð0˜ó ð.˜ó .ó	$ð ð+ ò +ó ð+ð
 ð ¨$ó ñ(+˜eð +¨3ð +°tó +ó&:ó%%ðN  Sð  ¨Tó  ð*& ó &ñ"¨ð "¸5ó "ñH($˜Cð ($¨ó ($ðT
%˜uó 
%ð *  u¨d {Ñ!3ó  *ðD  3ð  ¨5ó  ñ$˜Sð $¨%ó $ð! Cð !¨Eó !ðF3˜cð 3 eô 3r   r   c                   ó  — e Zd ZdZdd„Zdefd„Zdee   fd„Z	e
fdededdfd	„Zd
eg df   ddfd„Zdd„Zdefd„Zdefd„Zdd„Zddededdfd„Zdefd„Zddedefd„Zdefd„Zdeeef   fd„Zdedefd„Zddedefd„Zy)ÚEmptyStreamReader©Ú_read_eof_chunkr%   Nc                 ó    — d| _         d| _        y )NFr   )rê   re   r+   s    r    r)   zEmptyStreamReader.__init__K  s   € Ø$ˆÔØˆÕr   c                 ó4   — d| j                   j                  z  S )Nrv   )rx   r   r+   s    r    r|   zEmptyStreamReader.__repr__O  s   € Ø˜Ÿ™×/Ñ/Ñ/Ð/r   c                  ó   — y r'   r   r+   s    r    r�   zEmptyStreamReader.exceptionR  ó   € Ør   rƒ   r„   c                  ó   — y r'   r   )r(   rƒ   r„   s      r    r   zEmptyStreamReader.set_exceptionU  s   € ð
 	r   r‰   c                 ó\   — 	  |«        y # t         $ r t        j                  d«       Y y w xY wr‹   )r�   r   r�   rŽ   s     r    r�   zEmptyStreamReader.on_eof\  s-   € ð	CÙ�JøÜò 	CÜ×%Ñ%Ð&AÖBð	Cús   ‚
 Š+ª+c                  ó   — y r'   r   r+   s    r    r”   zEmptyStreamReader.feed_eofb  ó   € Ør   c                  ó   — y©NTr   r+   s    r    r—   zEmptyStreamReader.is_eofe  rî   r   c                  ó   — yrô   r   r+   s    r    rš   zEmptyStreamReader.at_eofh  rî   r   c              ƒ   ó   K  — y ­wr'   r   r+   s    r    r�   zEmptyStreamReader.wait_eofk  s	   è ø€ Øùó   ‚r    rE   c                  ó   — y r'   r   )r(   r    rE   s      r    r­   zEmptyStreamReader.feed_datan  rò   r   c              ƒ   ó   K  — y­wr/   r   r+   s    r    rD   zEmptyStreamReader.readlineq  ó	   è ø€ Øùr÷   c              ƒ   ó   K  — y­wr/   r   rJ   s     r    rH   zEmptyStreamReader.readt  rú   r÷   c              ƒ   ó   K  — y­wr/   r   r+   s    r    rM   zEmptyStreamReader.readanyy  rú   r÷   c              ƒ   ó4   K  — | j                   sd| _         yy­w)NTr=   rÐ   ré   r+   s    r    r>   zEmptyStreamReader.readchunk|  s   è ø€ Ø×#Ò#Ø#'ˆDÔ Øàùs   ‚c              ƒ   ó6   K  — t        j                  d|«      ‚­wr/   )ro   rÓ   rJ   s     r    rÕ   zEmptyStreamReader.readexactlyƒ  s   è ø€ Ü×)Ñ)¨#¨qÓ1Ð1ùs   ‚c                  ó   — yr/   r   rJ   s     r    rØ   zEmptyStreamReader.read_nowait†  s   € Ør   rß   rà   râ   )r   r   r   r4   r)   rä   r|   r	   rå   r�   r   r   r   r�   r”   r@   r—   rš   r�   r?   rQ   r­   rD   rH   rM   r
   r>   rÕ   rØ   r   r   r    rè   rè   G  s  „ à$€Ióð0˜#ó 0ð˜8 MÑ2ó ð $1ñàðð !ðð 
ó	ðC˜x¨¨D¨Ñ1ð C°dó Cóð˜ó ð˜ó óñ˜eð ¨ð °Dó ð ó ñ˜Cð ¨ó ð
˜uó ð  u¨d {Ñ!3ó ð2 3ð 2¨5ó 2ñ˜Sð ¨%ô r   rè   r   c                   ó¾   — e Zd ZdZdej
                  ddfd„Zdefd„Zde	fd„Z
de	fd„Zdee   fd	„Zefd
ededdfd„Zddededdfd„Zdd„Zdefd„Zdee   fd„Zy)r   z>DataQueue is a general-purpose blocking queue with one reader.rh   r%   Nc                 ón   — || _         d| _        d | _        d | _        t	        j
                  «       | _        y )NF)rX   r^   r_   ra   rr   rs   r\   )r(   rh   s     r    r)   zDataQueue.__init__�  s.   € ØˆŒ
ØˆŒ	Ø7;ˆŒØ37ˆŒÜ.9×.?Ñ.?Ó.Aˆ�r   c                 ó,   — t        | j                  «      S r'   )r¦   r\   r+   s    r    Ú__len__zDataQueue.__len__—  s   € Ü�4—<‘<Ó Ð r   c                 ó   — | j                   S r'   r–   r+   s    r    r—   zDataQueue.is_eofš  s   € Ø�y‰yÐr   c                 ó8   — | j                   xr | j                   S r'   r™   r+   s    r    rš   zDataQueue.at_eof�  s   € Ø�y‰yÒ- §¡Ð-Ð-r   c                 ó   — | j                   S r'   r€   r+   s    r    r�   zDataQueue.exception   r‚   r   rƒ   r„   c                 óf   — d| _         || _        | j                  x}�d | _        t        |||«       y y rô   )r^   ra   r_   r   r‡   s       r    r   zDataQueue.set_exception£  s9   € ð
 ˆŒ	ØˆŒØ—l‘lÐ"ˆFÐ/ØˆDŒLÜ˜& # yÕ1ð 0r   r    r©   c                 ó‚   — | j                   j                  ||f«       | j                  x}�d | _        t        |d «       y y r'   )r\   ry   r_   r   )r(   r    r©   rˆ   s       r    r­   zDataQueue.feed_data®  s=   € Ø�‰×Ñ˜T 4˜LÔ)Ø—l‘lÐ"ˆFÐ/ØˆDŒLÜ�v˜tÕ$ð 0r   c                 óV   — d| _         | j                  x}�d | _        t        |d «       y y rô   )r^   r_   r   )r(   rˆ   s     r    r”   zDataQueue.feed_eof´  s.   € ØˆŒ	Ø—l‘lÐ"ˆFÐ/ØˆDŒLÜ�v˜tÕ$ð 0r   c              ƒ   ó²  K  — | j                   sN| j                  sB| j                  rJ ‚| j                  j	                  «       | _        	 | j                  ƒ d {  –—†  | j                   r| j                   j                  «       \  }}|S | j                  �| j                  ‚t        ‚7 ŒM# t
        j                  t
        j                  f$ r	 d | _        ‚ w xY w­wr'   )r\   r^   r_   rX   rœ   ro   ÚCancelledErrorÚTimeoutErrorrÑ   ra   r   )r(   r    Ú_s      r    rH   zDataQueue.readº  s±   è ø€ Ø�|Š| D§I¢IØ—|’|Ð#Ð#ØŸ:™:×3Ñ3Ó5ˆDŒLðØ—l‘l×"Ð"ð �<Š<Ø—l‘l×*Ñ*Ó,‰GˆD�!ØˆKØ�?‰?Ð&Ø—/‘/Ð!Üˆð #ùÜ×*Ñ*¬G×,@Ñ,@ÐAò Ø#�”Øðüs1   ‚ACÁ	B( ÁB&ÁB( ÁA	CÂ&B( Â(,CÃCc                 ó,   — t        | j                  «      S r'   )r"   rH   r+   s    r    r,   zDataQueue.__aiter__Ê  s   € Ü" 4§9¡9Ó-Ð-r   rà   rß   )r   r   r   r   ro   rã   r)   rQ   r  r@   r—   rš   r	   rå   r�   r   r   r   r­   r”   rH   r"   r,   r   r   r    r   r   �  s¹   „ ÙHðB˜W×6Ñ6ð B¸4ó Bð!˜ó !ð˜ó ð.˜ó .ð˜8 MÑ2ó ð $1ñ	2àð	2ð !ð	2ð 
ó		2ñ%˜bð %¨ð %°Dó %ó%ð˜Bó ð .Ð.¨rÑ2ô .r   r   c                   ón   ‡ — e Zd ZdZdededej                  ddfˆ fd„Zdde	d	eddfˆ fd
„Z
de	fd„Zˆ xZS )ÚFlowControlDataQueuez®FlowControlDataQueue resumes and pauses an underlying stream.

    It is a destination for parsed data.

    This class is deprecated and will be removed in version 4.0.
    ri   rj   rh   r%   Nc                óV   •— t         ‰| �  |¬«       d| _        || _        |dz  | _        y )N)rh   r   rl   )Úsuperr)   rY   rS   Ú_limit)r(   ri   rj   rh   rx   s       €r    r)   zFlowControlDataQueue.__init__Ö  s.   ø€ ô 	‰Ñ˜dÐÔ#ØˆŒ
Ø!ˆŒØ˜a‘iˆ�r   r    r©   c                 óæ   •— t         ‰| �  ||«       | xj                  |z  c_        | j                  | j                  kD  r2| j                  j
                  s| j                  j                  «        y y y r'   )r  r­   rY   r  rS   r‘   r«   )r(   r    r©   rx   s      €r    r­   zFlowControlDataQueue.feed_dataÞ  sU   ø€ Ü‰Ñ˜$ Ô%Ø�
Š
�dÑ�
à�:‰:˜Ÿ™Ò#¨D¯N©N×,JÒ,JØ�N‰N×(Ñ(Õ*ð -KÐ#r   c              ƒ   ón  K  — | j                   sN| j                  sB| j                  rJ ‚| j                  j	                  «       | _        	 | j                  ƒ d {  –—†  | j                   r}| j                   j                  «       \  }}| xj                  |z  c_	        | j                  | j                  k  r0| j                  j                  r| j                  j                  «        |S | j                  �| j                  ‚t        ‚7 Œ«# t
        j                  t
        j                  f$ r	 d | _        ‚ w xY w­wr'   )r\   r^   r_   rX   rœ   ro   r  r  rÑ   rY   r  rS   r‘   r’   ra   r   )r(   r    r©   s      r    rH   zFlowControlDataQueue.readå  së   è ø€ Ø�|Š| D§I¢IØ—|’|Ð#Ð#ØŸ:™:×3Ñ3Ó5ˆDŒLðØ—l‘l×"Ð"ð �<Š<ØŸ™×-Ñ-Ó/‰JˆD�$Ø�JŠJ˜$Ñ�JØ�z‰z˜DŸK™KÒ'¨D¯N©N×,JÒ,JØ—‘×-Ñ-Ô/ØˆKØ�?‰?Ð&Ø—/‘/Ð!Üˆð #ùÜ×*Ñ*¬G×,@Ñ,@ÐAò Ø#�”Øðüs1   ‚AD5Á	D ÁDÁD ÁB'D5ÄD Ä,D2Ä2D5rà   )r   r   r   r   r   rQ   ro   rã   r)   r   r­   rH   Ú__classcell__)rx   s   @r    r  r  Î  sY   ø„ ñð Ø$ð Ø-0ð Ø;B×;TÑ;Tð à	õ ñ+˜bð +¨ð +°Dõ +ð˜B÷ r   r  )$ro   rr   r£   Útypingr   r   r   r   r   r   r	   r
   r   Úbase_protocolr   Úhelpersr   r   r   r   r   Úlogr   Ú__all__r   r�   r   r"   r6   rB   r   rè   r   Ú__annotations__r   r  r   r   r    ú<module>r     sÇ   ðÜ Û Û ÷
÷ 
õ 
õ (÷õ õ !ð€ñ ˆTƒ]€ô!�	ô !ô˜' "™+ô ÷(ñ ÷"3ñ 3ô0_3Ð)ô _3ôD@˜ô @ñF &7Ó%8€ˆu�\Ñ"Ó 8ô>.�˜‘ô >.ôB(˜9 R™=õ (r   