§
    ïŽ’j�<  ã                  ó0  — U d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	m
Z
 	 ddlZn# e$ r 	 ddlZn# e$ r dZY nw xY wY nw xY wej        r"ej        dk    r	ddlmZmZ nddlmZmZ ded	<   n-	 ej        dk    r	ddlmZmZ nddlmZmZ d
Zn# e$ r dZY nw xY wdZ G d„ dej        ¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z  G d„ d ¦  «        Z! G d!„ d"¦  «        Z" G d#„ d$¦  «        Z# G d%„ d&¦  «        Z$eeeeed'œZ%d(ed)<   e€e% &                    d*¦  «         ese% &                    d+¦  «         dS dS ),zq
Handlers for Content-Encoding.

See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding
é    )ÚannotationsNé   )ÚDecodingError)é   é   )ÚZstdDecompressorÚ	ZstdErrorÚboolÚ_zstandard_installedTFi   c                  ó6   — e Zd Zed
d„¦   «         Zdd„Zd
d„Zd	S )ÚDecompressorÚreturnÚbytesc                ó   — d S ©N© ©Úselfs    ú>C:\Projects\DSCons\.venv\Lib\site-packages\httpx2\_decoders.pyÚunconsumed_tailzDecompressor.unconsumed_tail8   s   € Ø(+¨ó    ÚdataÚ
max_lengthÚintc                ó   — d S r   r   )r   r   r   s      r   Ú
decompresszDecompressor.decompress;   ó   € € € r   c                ó   — d S r   r   r   s    r   ÚflushzDecompressor.flush=   r   r   N©r   r   )r   r   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Úpropertyr   r   r   r   r   r   r   r   7   s>   € € € € € ØØ+Ð+Ð+ñ „XØ+àDÐDÐDÐDà!Ð!Ð!Ð!Ð!Ð!r   r   c                  ó*   — e Zd ZdZdd„Zdd
„Zdd„ZdS )ÚZlibDecompressorz–
    Drain a `zlib`/`gzip` decompressor in bounded pieces so a small compressed
    input cannot inflate to an unbounded buffer in a single call.
    Údecompressorr   r   ÚNonec                ó   — || _         d S r   )r'   )r   r'   s     r   Ú__init__zZlibDecompressor.__init__F   s   € Ø(ˆÔÐÐr   r   r   útyping.Iterator[bytes]c              #  ó²   K  — | j                              |t          ¦  «        }|r2|V — | j                              | j         j        t          ¦  «        }|°0d S d S r   )r'   r   ÚMAX_DECODE_CHUNK_SIZEr   )r   r   Údecompresseds      r   r   zZlibDecompressor.decompressI   sv   è è € ØÔ(×3Ò3°DÕ:OÑPÔPˆØð 	rØÐÐÐØÔ,×7Ò7¸Ô8IÔ8YÕ[pÑqÔqˆLð ð 	rð 	rð 	rð 	rð 	rr   c                ó4   — | j                              ¦   «         S r   )r'   r   r   s    r   r   zZlibDecompressor.flushO   s   € ØÔ ×&Ò&Ñ(Ô(Ð(r   N)r'   r   r   r(   ©r   r   r   r+   r    )r!   r"   r#   Ú__doc__r*   r   r   r   r   r   r&   r&   @   s^   € € € € € ðð ð
)ð )ð )ð )ðrð rð rð rð)ð )ð )ð )ð )ð )r   r&   c                  ó   — e Zd Zdd„Zd	d„ZdS )
ÚContentDecoderr   r   r   r+   c                ó   — t          ¦   «         ‚r   ©ÚNotImplementedError©r   r   s     r   ÚdecodezContentDecoder.decodeT   ó   € Ý!Ñ#Ô#Ð#r   c                ó   — t          ¦   «         ‚r   r5   r   s    r   r   zContentDecoder.flushW   r9   r   Nr0   ©r   r+   )r!   r"   r#   r8   r   r   r   r   r3   r3   S   s<   € € € € € ð$ð $ð $ð $ð$ð $ð $ð $ð $ð $r   r3   c                  ó"   — e Zd ZdZd	d„Zd
d„ZdS )ÚIdentityDecoderz 
    Handle unencoded data.
    r   r   r   r+   c              #  ó   K  — |V — d S r   r   r7   s     r   r8   zIdentityDecoder.decode`   s   è è € Øˆ
ˆ
ˆ
ˆ
ˆ
r   c              #  ó   K  — dE d {V —† d S ©Nr   r   r   s    r   r   zIdentityDecoder.flushc   s   è è € Øˆˆˆˆˆˆˆˆˆr   Nr0   r;   )r!   r"   r#   r1   r8   r   r   r   r   r=   r=   [   sF   € € € € € ðð ðð ð ð ðð ð ð ð ð r   r=   c                  ó*   — e Zd ZdZdd„Zdd„Zdd	„Zd
S )ÚDeflateDecoderzZ
    Handle 'deflate' decoding.

    See: https://stackoverflow.com/questions/1838699
    r   r(   c                ó^   — d| _         t          t          j        ¦   «         ¦  «        | _        d S )NT)Úfirst_attemptr&   ÚzlibÚdecompressobjr'   r   s    r   r*   zDeflateDecoder.__init__n   s)   € Ø!ˆÔÝ,­TÔ-?Ñ-AÔ-AÑBÔBˆÔÐÐr   r   r   r+   c              #  óz  K  — | j         }d| _         	 | j                             |¦  «        E d {V —† d S # t          j        $ rw}|rMt          t          j        t          j         ¦  «        ¦  «        | _        |                      |¦  «        E d {V —† nt          t          |¦  «        ¦  «        |‚Y d }~d S d }~ww xY w©NF)rD   r'   r   rE   Úerrorr&   rF   Ú	MAX_WBITSr8   r   Ústr)r   r   Úwas_first_attemptÚexcs       r   r8   zDeflateDecoder.decoder   sä   è è € Ø Ô.ÐØ"ˆÔð	7ØÔ(×3Ò3°DÑ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9øÝŒzð 	7ð 	7ð 	7Ø ð 7Ý$4µTÔ5GÍÌÈÑ5XÔ5XÑ$YÔ$Y�Ô!ØŸ;š; tÑ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,å#¥C¨¡H¤HÑ-Ô-°3Ð6ð -Ð,Ð,Ð,Ð,Ð,øøøøð	7øøøs   ’ 4 ´B:ÁA,B5Â5B:c              #  óª   K  — 	 | j                              ¦   «         V — d S # t          j        $ r"}t	          t          |¦  «        ¦  «        |‚d }~ww xY wr   ©r'   r   rE   rI   r   rK   ©r   rM   s     r   r   zDeflateDecoder.flush~   óc   è è € ð	3ØÔ#×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+øÝŒzð 	3ð 	3ð 	3Ý¥ C¡¤Ñ)Ô)¨sÐ2øøøøð	3øøøó   „! ¡A°AÁAN©r   r(   r0   r;   ©r!   r"   r#   r1   r*   r8   r   r   r   r   rB   rB   g   s^   € € € € € ðð ðCð Cð Cð Cð
7ð 
7ð 
7ð 
7ð3ð 3ð 3ð 3ð 3ð 3r   rB   c                  ó*   — e Zd ZdZdd„Zdd„Zdd	„Zd
S )ÚGZipDecoderzW
    Handle 'gzip' decoding.

    See: https://stackoverflow.com/questions/1838699
    r   r(   c                ól   — t          t          j        t          j        dz  ¦  «        ¦  «        | _        d S )Né   )r&   rE   rF   rJ   r'   r   s    r   r*   zGZipDecoder.__init__Œ   s+   € Ý,­TÔ-?ÅÄÐQSÑ@SÑ-TÔ-TÑUÔUˆÔÐÐr   r   r   r+   c              #  ó´   K  — 	 | j                              |¦  «        E d {V —† d S # t          j        $ r"}t	          t          |¦  «        ¦  «        |‚d }~ww xY wr   )r'   r   rE   rI   r   rK   )r   r   rM   s      r   r8   zGZipDecoder.decode�   sq   è è € ð	3ØÔ(×3Ò3°DÑ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9øÝŒzð 	3ð 	3ð 	3Ý¥ C¡¤Ñ)Ô)¨sÐ2øøøøð	3øøøs   „ & ¦AµAÁAc              #  óª   K  — 	 | j                              ¦   «         V — d S # t          j        $ r"}t	          t          |¦  «        ¦  «        |‚d }~ww xY wr   rO   rP   s     r   r   zGZipDecoder.flush•   rQ   rR   NrS   r0   r;   rT   r   r   r   rV   rV   …   s^   € € € € € ðð ðVð Vð Vð Vð3ð 3ð 3ð 3ð3ð 3ð 3ð 3ð 3ð 3r   rV   c                  ó*   — e Zd ZdZdd„Zdd„Zdd	„Zd
S )ÚBrotliDecoderaT  
    Handle 'brotli' decoding.

    Requires `pip install brotlipy`. See: https://brotlipy.readthedocs.io/
        or   `pip install brotli`. See https://github.com/google/brotli
    Supports both 'brotlipy' and 'Brotli' packages since they share an import
    name. The top branches are for 'brotlipy' and bottom branches for 'Brotli'
    r   r(   c                óè   — t           €t          d¦  «        d ‚t          j        ¦   «         | _        d| _        |  t          | j        d¦  «        r| j        j        | _        d S | j        j        | _        d S )NzžUsing 'BrotliDecoder', but neither of the 'brotlicffi' or 'brotli' packages have been installed. Make sure to install httpx using `pip install httpx[brotli]`.Fr   )	ÚbrotliÚImportErrorr   r'   Ú	seen_dataÚhasattrr   Ú_decompressÚprocessr   s    r   r*   zBrotliDecoder.__init__¦   sƒ   € Ýˆ>ÝðPñô ð ð	õ #Ô/Ñ1Ô1ˆÔØˆŒØÐ5Ý�4Ô$ lÑ3Ô3ð 	9à#Ô0Ô;ˆDÔÐÐð  $Ô0Ô8ˆDÔÐÐr   r   r   r+   c              #  ó  K  — |sd S d| _         	 t          dz  }|                      ||¬¦  «        }|r|V — |                      d|¬¦  «        }|°d S d S # t          j        $ r"}t          t          |¦  «        ¦  «        |‚d }~ww xY w)NTé   )Úoutput_buffer_limitr   )r`   r-   rb   r^   rI   r   rK   )r   r   rf   r.   rM   s        r   r8   zBrotliDecoder.decode¸   sÍ   è è € Øð 	ØˆFØˆŒð	3å"7¸1Ñ"<ÐØ×+Ò+¨DÐFYÐ+ÑZÔZˆLØð ^Ø"Ð"Ð"Ð"Ø#×/Ò/°ÐI\Ð/Ñ]Ô]�ð ð ^ð ^ð ^ð ^ð ^øõ Œ|ð 	3ð 	3ð 	3Ý¥ C¡¤Ñ)Ô)¨sÐ2øøøøð	3øøøs   �A A ÁBÁ"A?Á?Bc              #  óô   K  — | j         sd S 	 t          | j        d¦  «        r| j                             ¦   «          n4# t          j        $ r"}t          t          |¦  «        ¦  «        |‚d }~ww xY wdE d {V —† d S )NÚfinishr   )r`   ra   r'   rh   r^   rI   r   rK   rP   s     r   r   zBrotliDecoder.flushÆ   s“   è è € ØŒ~ð 	ØˆFð		3Ý�tÔ(¨(Ñ3Ô3ð +ð Ô!×(Ò(Ñ*Ô*Ð*øøÝŒ|ð 	3ð 	3ð 	3Ý¥ C¡¤Ñ)Ô)¨sÐ2øøøøð	3øøøàˆˆˆˆˆˆˆˆˆs   �.< ¼A-ÁA(Á(A-NrS   r0   r;   rT   r   r   r   r\   r\   œ   sZ   € € € € € ðð ð9ð 9ð 9ð 9ð$3ð 3ð 3ð 3ðð ð ð ð ð r   r\   c                  ó*   — e Zd ZdZdd„Zdd„Zdd	„Zd
S )ÚZStandardDecoderznHandle 'zstd' RFC 8878 decoding.

    On Python 3.13 and below, this requires `pip install httpx2[zstd]`.
    r   r(   c                óh   — t           st          d¦  «        d ‚t          ¦   «         | _        d| _        d S )NzXUsing 'ZStandardDecoder', ...Make sure to install httpx using `pip install httpx[zstd]`.F)r   r_   r   r'   r`   r   s    r   r*   zZStandardDecoder.__init__Ý   s=   € Ý#ð 	ÝØjñô àðõ -Ñ.Ô.ˆÔØˆŒˆˆr   r   r   r+   c              #  ó  K  — |sd S d| _         	 | j        j        r"| j        j        |z   }t	          ¦   «         | _        	 | j                             |t          ¦  «        }|r?|V — | j        j        s| j        j        rn"| j                             dt          ¦  «        }|°?| j        j        r| j        j        sd S | j        j        }t	          ¦   «         | _        Œ›# t          $ r"}t          t          |¦  «        ¦  «        |‚d }~ww xY w)NTr   )r`   r'   ÚeofÚunused_datar   r   r-   Úneeds_inputr	   r   rK   )r   r   r.   rM   s       r   r8   zZStandardDecoder.decodeæ   s7  è è € Øð 	ØˆFØˆŒð	3ØÔ Ô$ð 7ØÔ(Ô4°tÑ;�Ý$4Ñ$6Ô$6�Ô!ð
7Ø#Ô0×;Ò;¸DÕBWÑXÔX�Ø"ð \Ø&Ð&Ð&Ð&ØÔ(Ô4ð ¸Ô8IÔ8Mð ØØ#'Ô#4×#?Ò#?ÀÕEZÑ#[Ô#[�Lð	 #ð \ð
 Ô)Ô-ð °$Ô2CÔ2Oð Ø�EØÔ(Ô4�Ý$4Ñ$6Ô$6�Ô!ð
7øõ ð 	3ð 	3ð 	3Ý¥ C¡¤Ñ)Ô)¨sÐ2øøøøð	3øøøs   �B(C Â9 C Ã
DÃ#D Ä Dc              #  ób   K  — | j         sd S | j        j        st          d¦  «        ‚dE d {V —† d S )NzZstandard data is incompleter   )r`   r'   rm   r   r   s    r   r   zZStandardDecoder.flushü   sH   è è € ØŒ~ð 	ØˆFØÔ Ô$ð 	@ÝÐ >Ñ?Ô?Ð?Øˆˆˆˆˆˆˆˆˆr   NrS   r0   r;   rT   r   r   r   rj   rj   Ö   sZ   € € € € € ðð ðð ð ð ð3ð 3ð 3ð 3ð,ð ð ð ð ð r   rj   c                  óR   — e Zd ZU dZdZded<   dd	„Zdd„Zdd„Ze	dd„¦   «         Z
dS )ÚMultiDecoderzE
    Handle the case where multiple encodings have been applied.
    é   ztyping.ClassVar[int]Úmax_decode_linksÚ	encodingsútyping.Sequence[str]r   r(   c                óº   — d„ |D ¦   «         }t          |¦  «        | j        k    rt          d| j        › d�¦  «        ‚d„ t          |¦  «        D ¦   «         | _        dS )zk
        'encodings' should be the content codings in the order in which
        each was applied.
        c                ó$   — g | ]}|t           v ¯|‘ŒS r   ©ÚSUPPORTED_DECODERS)Ú.0Úencodings     r   ú
<listcomp>z)MultiDecoder.__init__.<locals>.<listcomp>  s#   € ÐXÐXÐX ¸ÕEWÐ9WÐ9W�8Ð9WÐ9WÐ9Wr   zCannot apply more than z content encodings.c                ó6   — g | ]}t          |         ¦   «         ‘ŒS r   ry   )r{   Úcodings     r   r}   z)MultiDecoder.__init__.<locals>.<listcomp>  s%   € Ð.lÐ.lÐ.lÐPVÕ/AÀ&Ô/IÑ/KÔ/KÐ.lÐ.lÐ.lr   N)Úlenrt   r   ÚreversedÚchildren)r   ru   Úcodingss      r   r*   zMultiDecoder.__init__  sl   € ð
 YÐX¨IÐXÑXÔXˆÝˆw‰<Œ<˜$Ô/Ò/Ð/ÝÐ d¸$Ô:OÐ dÐ dÐ dÑeÔeÐeà.lÐ.lÕZbÐcjÑZkÔZkÐ.lÑ.lÔ.lˆŒˆˆr   r   r   r+   c              #  ó„   K  — t          |f¦  «        }| j        D ]}|                      |j        |¦  «        }Œ|E d {V —† d S r   )Úiterr‚   Ú_piper8   )r   r   ÚstreamsÚchilds       r   r8   zMultiDecoder.decode  sY   è è € Ý*.°¨w©-¬-ˆØ”]ð 	8ð 	8ˆEØ—j’j ¤¨wÑ7Ô7ˆGˆGØÐÐÐÐÐÐÐÐÐr   c              #  óÌ   K  — t          d¦  «        }| j        D ]B}t          j        |                      |j        |¦  «        |                     ¦   «         ¦  «        }ŒC|E d {V —† d S r@   )r…   r‚   Ú	itertoolsÚchainr†   r8   r   )r   r‡   rˆ   s      r   r   zMultiDecoder.flush  sm   è è € Ý*.¨r©(¬(ˆØ”]ð 	Xð 	XˆEÝ”o d§j¢j°´¸wÑ&GÔ&GÈÏÊÉÌÑWÔWˆGˆGØÐÐÐÐÐÐÐÐÐr   r8   ú0typing.Callable[[bytes], typing.Iterator[bytes]]Úupstreamc              #  ó6   K  — |D ]} | |¦  «        E d {V —† Œd S r   r   )r8   r�   Úchunks      r   r†   zMultiDecoder._pipe"  sD   è è € ð
 ð 	%ð 	%ˆEØ�v˜e‘}”}Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ð	%ð 	%r   N)ru   rv   r   r(   r0   r;   )r8   rŒ   r�   r+   r   r+   )r!   r"   r#   r1   rt   Ú__annotations__r*   r8   r   Ústaticmethodr†   r   r   r   rr   rr     s”   € € € € € € ðð ð ./ÐÐ.Ð.Ð.Ñ.ð	mð 	mð 	mð 	mðð ð ð ðð ð ð ð ð%ð %ð %ñ „\ð%ð %ð %r   rr   c                  ó,   — e Zd ZdZddd„Zdd„Zdd„ZdS )ÚByteChunkerz>
    Handles returning byte content in fixed-size chunks.
    NÚ
chunk_sizeú
int | Noner   r(   c                óD   — t          j        ¦   «         | _        || _        d S r   )ÚioÚBytesIOÚ_bufferÚ_chunk_size©r   r”   s     r   r*   zByteChunker.__init__0  s   € Ý”z‘|”|ˆŒØ%ˆÔÐÐr   Úcontentr   úlist[bytes]c                ó�  ‡ ‡— ‰ j         €|r|gng S ‰ j                             |¦  «         ‰ j                             ¦   «         ‰ j         k    rù‰ j                             ¦   «         Šˆ ˆfd„t          dt          ‰¦  «        ‰ j         ¦  «        D ¦   «         }t          |d         ¦  «        ‰ j         k    r5‰ j                             d¦  «         ‰ j                             ¦   «          |S ‰ j                             d¦  «         ‰ j                             |d         ¦  «         ‰ j                             ¦   «          |d d…         S g S )Nc                ó4   •— g | ]}‰||‰j         z   …         ‘ŒS r   ©rš   ©r{   Úir   Úvalues     €€r   r}   z&ByteChunker.decode.<locals>.<listcomp>;  ó+   ø€ ÐfÐfÐf¸!�e˜A  DÔ$4Ñ 4Ð4Ô5ÐfÐfÐfr   r   éÿÿÿÿ©	rš   r™   ÚwriteÚtellÚgetvalueÚranger€   ÚseekÚtruncate©r   rœ   Úchunksr£   s   `  @r   r8   zByteChunker.decode4  ó3  øø€ ØÔÐ#Ø 'Ð/�G�9�9¨RÐ/àŒ×Ò˜7Ñ#Ô#Ð#ØŒ<×ÒÑÔ $Ô"2Ò2Ð2Ø”L×)Ò)Ñ+Ô+ˆEØfÐfÐfÐfÐf½uÀQÍÈEÉ
Ì
ÐTXÔTdÑ?eÔ?eÐfÑfÔfˆFÝ�6˜"”:‰Œ $Ô"2Ò2Ð2Ø”×!Ò! !Ñ$Ô$Ð$Ø”×%Ò%Ñ'Ô'Ð'Ø�à”×!Ò! !Ñ$Ô$Ð$Ø”×"Ò" 6¨"¤:Ñ.Ô.Ð.Ø”×%Ò%Ñ'Ô'Ð'Ø˜c˜r˜c”{Ð"àˆIr   c                ó¨   — | j                              ¦   «         }| j                              d¦  «         | j                              ¦   «          |r|gng S ©Nr   ©r™   r©   r«   r¬   ©r   r£   s     r   r   zByteChunker.flushH  óP   € Ø”×%Ò%Ñ'Ô'ˆØŒ×Ò˜!ÑÔÐØŒ×ÒÑÔÐØÐ'�ˆwˆw RÐ'r   r   ©r”   r•   r   r(   )rœ   r   r   r�   )r   r�   rT   r   r   r   r“   r“   +  ó_   € € € € € ðð ð&ð &ð &ð &ð &ðð ð ð ð((ð (ð (ð (ð (ð (r   r“   c                  ó,   — e Zd ZdZddd„Zdd„Zdd„ZdS )ÚTextChunkerz>
    Handles returning text content in fixed-size chunks.
    Nr”   r•   r   r(   c                óD   — t          j        ¦   «         | _        || _        d S r   )r—   ÚStringIOr™   rš   r›   s     r   r*   zTextChunker.__init__T  s   € Ý”{‘}”}ˆŒØ%ˆÔÐÐr   rœ   rK   ú	list[str]c                ó�  ‡ ‡— ‰ j         €|r|gng S ‰ j                             |¦  «         ‰ j                             ¦   «         ‰ j         k    rù‰ j                             ¦   «         Šˆ ˆfd„t          dt          ‰¦  «        ‰ j         ¦  «        D ¦   «         }t          |d         ¦  «        ‰ j         k    r5‰ j                             d¦  «         ‰ j                             ¦   «          |S ‰ j                             d¦  «         ‰ j                             |d         ¦  «         ‰ j                             ¦   «          |d d…         S g S )Nc                ó4   •— g | ]}‰||‰j         z   …         ‘ŒS r   r    r¡   s     €€r   r}   z&TextChunker.decode.<locals>.<listcomp>_  r¤   r   r   r¥   r¦   r­   s   `  @r   r8   zTextChunker.decodeX  r¯   r   c                ó¨   — | j                              ¦   «         }| j                              d¦  «         | j                              ¦   «          |r|gng S r±   r²   r³   s     r   r   zTextChunker.flushl  r´   r   r   rµ   )rœ   rK   r   r»   ©r   r»   rT   r   r   r   r¸   r¸   O  r¶   r   r¸   c                  ó,   — e Zd ZdZddd„Zdd
„Zdd„ZdS )ÚTextDecoderz8
    Handles incrementally decoding bytes into text
    úutf-8r|   rK   r   r(   c                óL   —  t          j        |¦  «        d¬¦  «        | _        d S )NÚreplace)Úerrors)ÚcodecsÚgetincrementaldecoderÚdecoder)r   r|   s     r   r*   zTextDecoder.__init__x  s%   € Ø=•vÔ3°HÑ=Ô=ÀYÐOÑOÔOˆŒˆˆr   r   r   c                ó6   — | j                              |¦  «        S r   ©rÈ   r8   r7   s     r   r8   zTextDecoder.decode{  s   € ØŒ|×"Ò" 4Ñ(Ô(Ð(r   c                ó8   — | j                              dd¦  «        S )Nr   TrÊ   r   s    r   r   zTextDecoder.flush~  s   € ØŒ|×"Ò" 3¨Ñ-Ô-Ð-r   N)rÂ   )r|   rK   r   r(   )r   r   r   rK   )r   rK   rT   r   r   r   rÁ   rÁ   s  sd   € € € € € ðð ðPð Pð Pð Pð Pð)ð )ð )ð )ð.ð .ð .ð .ð .ð .r   rÁ   c                  ó*   — e Zd ZdZdd„Zdd„Zdd	„Zd
S )ÚLineDecoderz—
    Handles incrementally reading lines from text.

    Has the same behaviour as the stdllib splitlines,
    but handling the input iteratively.
    r   r(   c                ó"   — g | _         d| _        d S rH   )ÚbufferÚtrailing_crr   s    r   r*   zLineDecoder.__init__Š  s   € Ø!#ˆŒØ!&ˆÔÐÐr   ÚtextrK   r»   c                óà  — d}| j         rd|z   }d| _         |                     d¦  «        rd| _         |d d…         }|sg S |d         |v }|                     ¦   «         }t          |¦  «        dk    r$|s"| j                             |d         ¦  «         g S | j        r6d                     | j        ¦  «        |d         z   g|dd …         z   }g | _        |s|                     ¦   «         g| _        |S )	Nu   
Â…â€¨â€©úFTr¥   r   r   Ú )rÐ   ÚendswithÚ
splitlinesr€   rÏ   ÚappendÚjoinÚpop)r   rÑ   ÚNEWLINE_CHARSÚtrailing_newlineÚliness        r   r8   zLineDecoder.decodeŽ  s  € àBˆð Ôð 	%Ø˜$‘;ˆDØ$ˆDÔØ�=Š=˜ÑÔð 	Ø#ˆDÔØ˜˜˜”9ˆDàð 	ð ˆIà œ8 }Ð4ÐØ—’Ñ!Ô!ˆåˆu‰:Œ:˜Š?ˆ?Ð#3ˆ?àŒK×Ò˜u QœxÑ(Ô(Ð(ØˆIàŒ;ð 	ð —W’W˜Tœ[Ñ)Ô)¨E°!¬HÑ4Ð5¸¸a¸b¸b¼	ÑAˆEØˆDŒKàð 	(ð !Ÿ9š9™;œ;˜-ˆDŒKàˆr   c                óx   — | j         s	| j        sg S d                     | j         ¦  «        g}g | _         d| _        |S )NrÔ   F)rÏ   rÐ   rØ   )r   rÜ   s     r   r   zLineDecoder.flush´  sE   € ØŒ{ð 	 4Ô#3ð 	ØˆIà—’˜œÑ%Ô%Ð&ˆØˆŒØ ˆÔØˆr   NrS   )rÑ   rK   r   r»   r¿   rT   r   r   r   rÍ   rÍ   ‚  s[   € € € € € ðð ð'ð 'ð 'ð 'ð$ð $ð $ð $ðLð ð ð ð ð r   rÍ   )ÚidentityÚgzipÚdeflateÚbrÚzstdzdict[str, type[ContentDecoder]]rz   rá   râ   )'r1   Ú
__future__r   rÆ   r—   rŠ   ÚsysÚtypingrE   Ú_exceptionsr   r^   r_   Ú
brotlicffiÚTYPE_CHECKINGÚversion_infoÚcompression.zstdr   r	   Úbackports.zstdr�   r   r-   ÚProtocolr   r&   r3   r=   rB   rV   r\   rj   rr   r“   r¸   rÁ   rÍ   rz   rÙ   r   r   r   ú<module>rí      sL  ððð ð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø €€€à &Ð &Ð &Ð &Ð &Ð &ð	à€M€M€M€MøØð ð ð ðð 	$Ð#Ð#Ð#Ð#øØð ð ð Øˆˆˆðøøøøøðøøøð 
Ôð %Ø
Ô˜7Ò"Ð"Ø@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@à>Ð>Ð>Ð>Ð>Ð>Ð>Ð>àÐÐÑÐð%ØÔ˜wÒ&Ð&ØDÐDÐDÐDÐDÐDÐDÐDÐDàBÐBÐBÐBÐBÐBÐBÐBà#ÐÐøØð %ð %ð %Ø$ÐÐÐð%øøøð Ð ð"ð "ð "ð "ð "�6”?ñ "ô "ð "ð)ð )ð )ð )ð )ñ )ô )ð )ð&$ð $ð $ð $ð $ñ $ô $ð $ð	ð 	ð 	ð 	ð 	�nñ 	ô 	ð 	ð3ð 3ð 3ð 3ð 3�^ñ 3ô 3ð 3ð<3ð 3ð 3ð 3ð 3�.ñ 3ô 3ð 3ð.7ð 7ð 7ð 7ð 7�Nñ 7ô 7ð 7ðt+ð +ð +ð +ð +�~ñ +ô +ð +ð\$%ð $%ð $%ð $%ð $%�>ñ $%ô $%ð $%ðN!(ð !(ð !(ð !(ð !(ñ !(ô !(ð !(ðH!(ð !(ð !(ð !(ð !(ñ !(ô !(ð !(ðH.ð .ð .ð .ð .ñ .ô .ð .ð9ð 9ð 9ð 9ð 9ñ 9ô 9ð 9ðz  ØØØ
Øð7ð 7Ð ð ð ð ñ ð 
€>Ø×Ò˜4Ñ Ô Ð Øð #Ø×Ò˜6Ñ"Ô"Ð"Ð"Ð"ð#ð #sA   ©. ®A	´9¸A	¹AÁ A	ÁAÁA	ÁA	Á6B ÂBÂB