+
     h	/  c            
      s   R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^RIHt  ^ RI	t	 ^ RIt ! R R4      t ! R R]4      t ! R R	]4      t ! R
 R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R4      t ! R R4      t ! R R4      t ! R R4      tR]R]R]R]R]/t]	f   ]P3                  R4       ]f   ]P3                  R4       R# R#   ]
 d     ^ RIt	 L  ]
 d    Rt	  Li ; ii ; i  ]
 d    Rt Li ; i)zq
Handlers for Content-Encoding.

See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding
)annotationsN)DecodingErrorc                  s.    ] tR t^$tR R ltR R ltRtR# )ContentDecoderc                    V ^8  d   QhRRRR/#    databytesreturn Zformat   "4/usr/lib/python3.14/site-packages/httpx/_decoders.py__annotate__ContentDecoder.__annotate__%   s     $ $5 $U $    c                	    \        4       hNZNotImplementedErrorselfr      &&r   decodeZContentDecoder.decode%       !##r   c                   V ^8  d   QhRR/# r   r   r   r	   r
   r   r   r   r   (   s     $ $u $r   c                	r   r   r   r      &r   flushZContentDecoder.flush(   r   r   r	   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__r	   r   r   r   r   $   s    $$ $r   r   c                  s2    ] tR t^,tRtR R ltR R ltRtR# )IdentityDecoderz
Handle unencoded data.
c               r   r   r	   r
   r   r   r   IdentityDecoder.__annotate__1   s      5 U r   c                	s    V# r   r	   r   r   r   r   ZIdentityDecoder.decode1   s    r   c               r   r   r	   r
   r   r   r   r#   4   s      u r   c                	s    R # r   r	   r   r   r   r   ZIdentityDecoder.flush4   s    r   r	   N)r   r   r   r    __doc__r   r   r!   r	   r   r   r"   r"   ,   s     r   r"   c                  s>    ] tR t^8tRtR R ltR R ltR R ltRtR	# )
DeflateDecoderzN
Handle 'deflate' decoding.

See: https://stackoverflow.com/questions/1838699
c               r   r   r   Noner	   r
   r   r   r   DeflateDecoder.__annotate__?   s     1 1$ 1r   c                	sH    R V n         \        P                  ! 4       V n        R# )TN)first_attemptzlibdecompressobjdecompressorr   r   r   __init__ZDeflateDecoder.__init__?   s    ! ..0r   c               r   r   r	   r
   r   r   r   r)   C   s     	3 	35 	3U 	3r   c                	sT   V P                   pR V n          V P                  P                  V4      #   \        P                   dc   pT'       dA   \        P
                  ! \        P                  ) 4      T n        T P                  T4      u Rp?# \        \        T4      4      ThRp?ii ; iFN)
r*   r-   
decompressr+   errorr,   	MAX_WBITSr   r   str)r   r   Zwas_first_attemptexcs   &&  r   r   ZDeflateDecoder.decodeC   s     .."	3$$//55zz 	3 $($6$6$G!{{4((C)s2		3s"   0 B'AB"B'B""B'c               r   r   r	   r
   r   r   r   r)   N        3 3u 3r   c                	     V P                   P                  4       #   \        P                   d   p\	        \        T4      4      ThR p?ii ; ir   r-   r   r+   r1   r   r3   r   r4      & r   r   ZDeflateDecoder.flushN   A    	3$$**,,zz 	3C)s2	3    AAA)r-   r*   N	r   r   r   r    r%   r.   r   r   r!   r	   r   r   r&   r&   8   s    1	33 3r   r&   c                  s>    ] tR t^UtRtR R ltR R ltR R ltRtR	# )
GZipDecoderzK
Handle 'gzip' decoding.

See: https://stackoverflow.com/questions/1838699
c               r   r'   r	   r
   r   r   r   GZipDecoder.__annotate__\   s     D D$ Dr   c                	sf    \         P                  ! \         P                  ^,          4      V n        R# )i   N)r+   r,   r2   r-   r   r   r   r.   ZGZipDecoder.__init__\   s     ..t~~/BCr   c               r   r   r	   r
   r   r   r   r>   _   s     3 35 3U 3r   c                	s     V P                   P                  V4      #   \        P                   d   p\	        \        T4      4      ThR p?ii ; ir   )r-   r0   r+   r1   r   r3   r   r   r4      && r   r   ZGZipDecoder.decode_   sC    	3$$//55zz 	3C)s2	3s    AAAc               r   r   r	   r
   r   r   r   r>   e   r5   r   c                	r6   r   r7   r8   r9   r   r   ZGZipDecoder.flushe   r:   r;   )r-   Nr<   r	   r   r   r=   r=   U   s    D33 3r   r=   c                  s>    ] tR t^ltRtR R ltR R ltR R ltRtR	# )
BrotliDecodera<  
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'
c               r   r'   r	   r
   r   r   r   BrotliDecoder.__annotate__v   s     9 9$ 9r   c                	s   \         f   \        R4      R h\         P                  ! 4       V n        RV n        V  \        V P                  R4      '       d   V P                  P                  V n        R # V P                  P                  V n        R # )NzUsing 'BrotliDecoder', but neither of the 'brotlicffi' or 'brotli' packages have been installed. Make sure to install httpx using `pip install httpx[brotli]`.Fr0   )	brotliImportErrorZDecompressorr-   	seen_datahasattrr0   _decompressZprocessr   r   r   r.   ZBrotliDecoder.__init__v   sy    >P 	 #//14$$l33#00;;D  $0088Dr   c               r   r   r	   r
   r   r   r   rB      s     3 35 3U 3r   c                	s    V'       g   R # RV n          V P                  V4      #   \        P                   d   p\	        \        T4      4      ThRp?ii ; i)r   TN)rE   rG   rC   r1   r   r3   r?   r@   r   r   ZBrotliDecoder.decode   sJ    	3##D))|| 	3C)s2	3s   $ AAAc               r   r   r	   r
   r   r   r   rB      s     3 3u 3r   c                	s    V P                   '       g   R #  \        V P                  R4      '       d   V P                  P                  4        R #   \        P
                   d   p\        \        T4      4      ThRp?ii ; i)r   finishN)rE   rF   r-   rH   rC   r1   r   r3   r8   r9   r   r   ZBrotliDecoder.flush   sb    ~~~
	3t(((33 !!((*|| 	3C)s2	3s   6A A=#A88A=)rG   r-   rE   Nr<   r	   r   r   rA   rA   l   s    9$33 3r   rA   c                  s>    ] tR t^tRtR R ltR R ltR R ltRtR	# )
ZStandardDecoderz
Handle 'zstd' RFC 8878 decoding.

Requires `pip install zstandard`.
Can be installed as a dependency of httpx using `pip install httpx[zstd]`.
c               r   r'   r	   r
   r   r   r   ZStandardDecoder.__annotate__   s      $ r   c                	s    \         f   \        R4      R h\         P                  ! 4       P                  4       V n        RV n        R # )NzXUsing 'ZStandardDecoder', ...Make sure to install httpx using `pip install httpx[zstd]`.F)	zstandardrD   ZstdDecompressorr,   r-   rE   r   r   r   r.   ZZStandardDecoder.__init__   sC    N 
 &668FFHr   c               r   r   r	   r
   r   r   r   rJ      s     ! !5 !U !r   c                	sl   \         f   Q hRV n        \        P                  ! 4       p VP	                  V P
                  P                  V4      4       V P
                  P                  '       d   V P
                  P                  '       dk   V P
                  P                  p\         P                  ! 4       P                  4       V n        VP	                  V P
                  P                  V4      4       K  VP                  4       #   \         P                   d   p\        \        T4      4      ThR p?ii ; i)NT)rK   rE   ioBytesIOwriter-   r0   eofunused_datarL   r,   Z	ZstdErrorr   r3   getvalue)r   r   ZoutputrQ   r4      &&   r   r   ZZStandardDecoder.decode   s    $$$	3LL**55d;<##'''D,=,=,I,I,I"//;;$-$>$>$@$N$N$P!T..99+FG    "" 	3C)s2	3s%   AD .D 
A*D D3D..D3c               r   r   r	   r
   r   r   r   rJ      s      u r   c                	s    V P                   '       g   R # V P                  P                  4       pV P                  P                  '       g   \	        R4      h\        V4      # )r   zZstandard data is incomplete)rE   r-   r   rP   r   r   )r   Zretr9   r   r   ZZStandardDecoder.flush   sJ    ~~~%%'  $$$ >??Szr   )r-   rE   Nr<   r	   r   r   rI   rI      s    ! r   rI   c                  s>    ] tR t^tRtR R ltR R ltR R ltRtR	# )
MultiDecoderz=
Handle the case where multiple encodings have been applied.
c                    V ^8  d   QhRRRR/# )r   childrenztyping.Sequence[ContentDecoder]r   r(   r	   r
   r   r   r   MultiDecoder.__annotate__   s     1 1!@ 1T 1r   c                s8    \        \        V4      4      V n        R# )zU
'children' should be a sequence of decoders in the order in which
each was applied.
N)ZlistZreversedrV   )r   rV   r   r   r.   ZMultiDecoder.__init__   s     Xh/0r   c               r   r   r	   r
   r   r   r   rW      s      5 U r   c                	sN    V P                    F  pVP                  V4      pK  	  V# r   )rV   r   r   r   Zchildr@   r   r   ZMultiDecoder.decode   s#    ]]E<<%D #r   c               r   r   r	   r
   r   r   r   rW      s      u r   c                	s|    R pV P                    F)  pVP                  V4      VP                  4       ,           pK+  	  V# r$   )rV   r   r   rX   s   &  r   r   ZMultiDecoder.flush   s3    ]]E<<%5D #r   )rV   Nr<   r	   r   r   rT   rT      s    1
 r   rT   c                  sB    ] tR t^tRtR
R R lltR R ltR R ltR	tR# )ByteChunkerz6
Handles returning byte content in fixed-size chunks.
Nc               rU   r   
chunk_sizez
int | Noner   r(   r	   r
   r   r   r   ByteChunker.__annotate__        & &: & &r   c                	F    \         P                  ! 4       V n        Wn        R # r   )rM   rN   _buffer_chunk_sizer   r[   r   r   r.   ZByteChunker.__init__   s    zz|%r   c               rU   )r   contentr   r   list[bytes]r	   r
   r   r   r   r\      s      e  r   c                	   V P                   f   V'       d   V.# . # V P                  P                  V4       V P                  P                  4       V P                   8  Ed   V P                  P	                  4       p\        ^ \        V4      V P                   4       Uu. uF  pW#W0P                   ,            NK  	  pp\        VR,          4      V P                   8X  d8   V P                  P                  ^ 4       V P                  P                  4        V# V P                  P                  ^ 4       V P                  P                  VR,          4       V P                  P                  4        VR R # . # u upi N	r`   r_   rO   ZtellrR   Zrangelenseektruncater   rb   valueZiZchunksrS   r   r   ZByteChunker.decode   ,   # 'G9/R/7#<<$"2"22LL))+E q#e*d.>.>??A !.../?   6":$"2"22!!!$%%'!!!$""6":.%%'cr{"I   E2c               r   )r   r   rc   r	   r
   r   r   r   r\     s     ( ({ (r   c                	    V P                   P                  4       pV P                   P                  ^ 4       V P                   P                  4        V'       d   V.# . # i    r_   rR   ri   rj   r   rl   r9   r   r   ZByteChunker.flush  E    %%'!w'R'r   r_   r`   r   r<   r	   r   r   rY   rY          &.( (r   rY   c                  sB    ] tR tRtRtRR R lltR R ltR R	 ltR
tR# )TextChunkeri  z6
Handles returning text content in fixed-size chunks.
Nc               rU   rZ   r	   r
   r   r   r   TextChunker.__annotate__  r]   r   c                	r^   r   )rM   ZStringIOr_   r`   ra   r   r   r.   ZTextChunker.__init__  s    {{}%r   c               rU   )r   rb   r3   r   	list[str]r	   r
   r   r   r   rw     s      c i r   c                	rd   re   rg   rk   rS   r   r   ZTextChunker.decode  rm   rn   c               r   r   r   rx   r	   r
   r   r   r   rw   +  s     ( (y (r   c                	ro   rp   rq   rr   r9   r   r   ZTextChunker.flush+  rs   r   rt   r   r<   r	   r   r   rv   rv     ru   r   rv   c                  sB    ] tR tRtRtRR R lltR R ltR R ltR	tR
# )TextDecoderi2  z0
Handles incrementally decoding bytes into text
c               rU   )r   encodingr3   r   r(   r	   r
   r   r   r   TextDecoder.__annotate__7  s     P P P4 Pr   c                	sJ    \         P                  ! V4      ! R R7      V n        R# )Zreplace)ZerrorsN)codecsZgetincrementaldecoderdecoder)r   r{   r   r   r.   ZTextDecoder.__init__7  s    33H=YOr   c               rU   )r   r   r   r   r3   r	   r
   r   r   r   r|   :  s     ) )5 )S )r   c                	s8    V P                   P                  V4      # r   r~   r   r   r   r   r   ZTextDecoder.decode:  s    ||""4((r   c               r   )r   r   r3   r	   r
   r   r   r   r|   =  s     . .s .r   c                	s:    V P                   P                  R R4      # )r   Tr   r   r   r   r   ZTextDecoder.flush=  s    ||""3--r   )r~   N)zutf-8r<   r	   r   r   rz   rz   2  s    P). .r   rz   c                  s>    ] tR tRtRtR R ltR R ltR R ltR	tR
# )LineDecoderiA  z
Handles incrementally reading lines from text.

Has the same behaviour as the stdllib splitlines,
but handling the input iteratively.
c               r   r'   r	   r
   r   r   r   LineDecoder.__annotate__I  s     ' '$ 'r   c                	s"    . V n         R V n        R# r/   buffertrailing_crr   r   r   r.   ZLineDecoder.__init__I  s    !#!&r   c               rU   )r   textr3   r   rx   r	   r
   r   r   r   r   M  s     $ $3 $9 $r   c                	s6   R pV P                   '       d   RV,           pRV n         VP                  R4      '       d   RV n         VRR pV'       g   . # VR,          V9   pVP                  4       p\        V4      ^8X  d-   V'       g%   V P                  P                  V^ ,          4       . # V P                  '       d@   RP                  V P                  4      V^ ,          ,           .VR,          ,           p. V n        V'       g   VP                  4       .V n        V# )u   
  ZFTN :i   NNrf   )r   ZendswithZ
splitlinesrh   r   Zappendjoinpop)r   r   ZNEWLINE_CHARSZtrailing_newlinelinesrS   r   r   ZLineDecoder.decodeM  s    B $;D$D==#D9D I8}4!u:?#3KKuQx(I;;; WWT[[)E!H45b	AEDK !99;-DKr   c               r   ry   r	   r
   r   r   r   r   s  s      y r   c                	s    V P                   '       g   V P                  '       g   . # R P                  V P                   4      .p. V n         RV n        V# )r   F)r   r   r   )r   r   r9   r   r   ZLineDecoder.flushs  sD    {{{4#3#3#3I%& r   r   Nr<   r	   r   r   r   r   A  s    '$L r   r   ZidentityZgzipZdeflateZbrZzstd)r%   Z
__future__r    r}   rM   Ztypingr+   Z_exceptionsr   rC   rD   Z
brotlicffirK   r   r"   r&   r=   rA   rI   rT   rY   rv   rz   r   ZSUPPORTED_DECODERSr   r	   r   r   <module>r      sD   #  	   &	
$ $	n 	3^ 3:3. 3.23N 23j'~ 'T> 2$( $(N$( $(N. .9 9z 
K~-
  
>4 6" i   	$   Is:   C C9 C6C%%	C2.C61C22C69	DD