+
    PV-j]   ã                  ó  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIHt ^RIH	t	 ]P                  '       d   ^RIHt R R ltR R	 ltRR
 R lltRR R lltR R ltR R ltR R lt ! R R4      tR R ltR R ltR# )é    )ÚannotationsN)Ú
getproxies)ÚPrimitiveData©ÚURLc               ó    € V ^8„  d   QhRRRR/# )é   Úvaluer   ÚreturnÚstr© )Úformats   "Ú]/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/httpx/_utils.pyÚ__annotate__r      s   € ÷ ñ  -ð °Cñ ó    c                óD   € V RJ d   R# V RJ d   R# V f   R# \        V 4      # )z{
Coerce a primitive data type into a string value.

Note that we prefer JSON-style 'true'/'false' for boolean values here.
TÚtrueFÚfalseÚ )r   ©r
   s   &r   Úprimitive_value_to_strr      s*   € ð �ƒ}ÙØ	�%‹ÙØ	ŠÙÜˆu‹:Ðr   c               ó   € V ^8„  d   QhRR/# )r	   r   zdict[str, str | None]r   )r   s   "r   r   r      s   € ÷ .ñ .Ð!6ñ .r   c                 ó.  € \        4       p / pR F7  pV P                  V4      '       g   K  W,          pRV9   d   TMRV 2W R2&   K9  	  V P                  RR4      P                  R4       Uu. uF  qDP                  4       NK  	  ppV Fƒ  pVR8X  d   / u # V'       g   K  RV9   d   RW&   K%  \	        V4      '       d   RVRV 2&   K@  \        V4      '       d   RVR	V R
2&   K\  VP                  4       R8X  d   RVRV 2&   K{  RVRV 2&   K…  	  V# u upi )z+Gets proxy information from the environmentz://zhttp://Únor   Ú,Ú*Nzall://zall://[Ú]Ú	localhostzall://*)ÚhttpÚhttpsÚall)r   ÚgetÚsplitÚstripÚis_ipv4_hostnameÚis_ipv6_hostnameÚlower)Ú
proxy_infoÚmountsÚschemeÚhostnameÚhostÚno_proxy_hostss         r   Úget_environment_proxiesr.      s-  € ô “€JØ$&€Fã*ˆØ�>‰>˜&×!Ô!Ø!Õ)ˆHà! XÔ-‘°W¸X¸JÐ3Gð �X˜S�>Ó"ñ +ð 0:¯~©~¸dÀBÓ/G×/MÑ/MÈcÔ/RÓSÑ/R t—j‘j–lÑ/R€NÐSÛ"ˆð �sŒ?ð
 ŠIß‰Xð ˜Ô Ø#'�Ó Ü! (×+Ò+Ø.2�˜ ˜zÐ*Ó+Ü! (×+Ò+Ø04�˜  
¨!Ð,Ó-Ø—‘Ó! [Ô0Ø.2�˜ ˜zÐ*Ó+à/3�˜  
Ð+Ó,ñ5 #ð8 €Mùò; Ts   Á-Dc               ó$   € V ^8„  d   QhRRRRRR/# )r	   r
   ústr | bytesÚencodingr   r   Úbytesr   )r   s   "r   r   r   O   s&   € ÷ Gñ G�Kð G¨3ð G¸Uñ Gr   c                óT   € \        V \        4      '       d   V P                  V4      # T # ©N©Ú
isinstancer   Úencode©r
   r1   s   &&r   Úto_bytesr9   O   s"   € Ü%/°´s×%;Ò%;ˆ5�<‰<˜Ó!ÐFÀÐFr   c               ó$   € V ^8„  d   QhRRRRRR/# )r	   r
   r0   r1   r   r   r   )r   s   "r   r   r   S   s&   € ÷ Gñ G�+ð G¨ð G¸3ñ Gr   c                óT   € \        V \        4      '       d   V # V P                  V4      # r4   )r6   r   Údecoder8   s   &&r   Úto_strr=   S   s"   € Ü˜u¤c×*Ò*ˆ5ÐF°·±¸XÓ0FÐFr   c               ó$   € V ^8„  d   QhRRRRRR/# )r	   r
   r   Úmatch_type_ofztyping.AnyStrr   r   )r   s   "r   r   r   W   s&   € ÷ Gñ G˜3ð G¨}ð GÀñ Gr   c                óR   € \        V\        4      '       d   V # V P                  4       # r4   r5   )r
   r?   s   &&r   Úto_bytes_or_strrA   W   s   € Ü˜}¬c×2Ò2ˆ5ÐF¸¿¹»ÐFr   c               ó    € V ^8„  d   QhRRRR/# )r	   r
   r   r   r   )r   s   "r   r   r   [   s   € ÷ Bñ B�3ð B˜3ñ Br   c                óP   € V ^ ,          V R,          u;8X  d   R8X  d	   M MV ^R # T # )r   Ú"éÿÿÿÿr   r   s   &r   ÚunquoterF   [   s'   € Ø �( e¨B¥iÖ6°3×6ˆ5��2ˆ;ÐA¸EÐAr   c               ó    € V ^8„  d   QhRRRR/# )r	   Ústreamú
typing.Anyr   z
int | Noner   )r   s   "r   r   r   _   s   € ÷ ñ  ð °
ñ r   c                óN  €  V P                  4       p\        P                  ! V4      P                  pV#   \        \
        3 d`     T P                  4       pT P                  ^ \        P                  4      pT P                  T4        T#   \        \
        3 d      R# i ; ii ; i)zg
Given a file-like stream object, return its length in number of bytes
without reading it into memory.
N)	ÚfilenoÚosÚfstatÚst_sizeÚAttributeErrorÚOSErrorÚtellÚseekÚSEEK_END)rH   ÚfdÚlengthÚoffsets   &   r   Úpeek_filelike_lengthrW   _   s”   € ð
à�]‰]‹_ˆä—’˜"“×%Ñ%ˆð €Møô œGÐ$ô 
ð	ð —[‘[“]ˆFØ—[‘[ ¤B§K¡KÓ0ˆFØ�K‰K˜Õð
 €Møô	 ¤Ð(ô 	ãð	úð
ús(   ‚04 ´B$ÁAB
Â
B ÂB$ÂB Â B$c                  ól   € ] tR t^xtRtR R ltR R lt]R R l4       tR R	 lt	R
 R lt
R R ltRtR# )Ú
URLPatternaC  
A utility class currently used for making lookups against proxy keys...

# Wildcard matching...
>>> pattern = URLPattern("all://")
>>> pattern.matches(httpx.URL("http://example.com"))
True

# Witch scheme matching...
>>> pattern = URLPattern("https://")
>>> pattern.matches(httpx.URL("https://example.com"))
True
>>> pattern.matches(httpx.URL("http://example.com"))
False

# With domain matching...
>>> pattern = URLPattern("https://example.com")
>>> pattern.matches(httpx.URL("https://example.com"))
True
>>> pattern.matches(httpx.URL("http://example.com"))
False
>>> pattern.matches(httpx.URL("https://other.com"))
False

# Wildcard scheme, with domain matching...
>>> pattern = URLPattern("all://example.com")
>>> pattern.matches(httpx.URL("https://example.com"))
True
>>> pattern.matches(httpx.URL("http://example.com"))
True
>>> pattern.matches(httpx.URL("https://other.com"))
False

# With port matching...
>>> pattern = URLPattern("https://example.com:1234")
>>> pattern.matches(httpx.URL("https://example.com:1234"))
True
>>> pattern.matches(httpx.URL("https://example.com"))
False
c               ó    € V ^8„  d   QhRRRR/# )r	   Úpatternr   r   ÚNoner   )r   s   "r   r   ÚURLPattern.__annotate__¢   s   € ÷ 8ñ 8 ð 8¨ñ 8r   c                	óœ  € ^RI Hp V'       d   RV9  d   \        RV RV R24      hV! V4      pWn        VP                  R8X  d   RMVP                  V n        VP
                  R8X  d   RMVP
                  V n        VP                  V n        VP
                  '       d   VP
                  R8X  d
   R	V n        R	# VP
                  P                  R
4      '       dI   \        P                  ! VP
                  R,          4      p\        P                  ! RV R24      V n        R	# VP
                  P                  R4      '       dI   \        P                  ! VP
                  R,          4      p\        P                  ! RV R24      V n        R	# \        P                  ! VP
                  4      p\        P                  ! RV R24      V n        R	# )é   r   Ú:zUProxy keys should use proper URL forms rather than plain scheme strings. Instead of "z", use "z://"r!   r   r   Nz*.:r	   NNz^.+\.Ú$:r_   NNz^(.+\.)?Ú^)Ú_urlsr   Ú
ValueErrorr[   r*   r,   ÚportÚ
host_regexÚ
startswithÚreÚescapeÚcompile)Úselfr[   r   ÚurlÚdomains   &&   r   Ú__init__ÚURLPattern.__init__¢   sK  € Ýç�s 'Ô)Üðà&˜i x°¨y¸ð>óð ñ �'‹lˆØŒØŸJ™J¨%Ô/‘b°S·Z±ZˆŒØŸ(™( cœ/‘B¨s¯x©xˆŒ	Ø—H‘HˆŒ	Ø�x�xˆx˜3Ÿ8™8 sœ?Ø:>ˆDŽOØ�X‰X× Ñ  ×&Ò&ä—Y’Y˜sŸx™x¨�|Ó,ˆFÜ Ÿjšj¨6°&°¸Ð);Ó<ˆDŽOØ�X‰X× Ñ  ×%Ò%ä—Y’Y˜sŸx™x¨�|Ó,ˆFÜ Ÿjšj¨9°V°H¸AÐ)>Ó?ˆDŽOô —Y’Y˜sŸx™xÓ(ˆFÜ Ÿjšj¨1¨V¨H°A¨Ó7ˆDŽOr   c               ó    € V ^8„  d   QhRRRR/# )r	   Úotherr   r   Úboolr   )r   s   "r   r   r]   À   s   € ÷ ñ ˜Sð  Tñ r   c                	óT  € V P                   '       d   V P                   VP                   8w  d   R # V P                  '       d<   V P                  e.   V P                  P                  VP                  4      '       g   R # V P                  e   V P                  VP                  8w  d   R # R# )FT)r*   r,   rf   Úmatchre   ©rk   rq   s   &&r   ÚmatchesÚURLPattern.matchesÀ   sk   € Ø�;�;ˆ;˜4Ÿ;™;¨%¯,©,Ô6Ùà�I�IˆIØ—‘Ò+Ø—O‘O×)Ñ)¨%¯*©*×5Ò5áØ�9‰9Ò  T§Y¡Y°%·*±*Ô%<ÙÙr   c               ó   € V ^8„  d   QhRR/# )r	   r   ztuple[int, int, int]r   )r   s   "r   r   r]   Î   s   € ÷ ?ñ ?Ð.ñ ?r   c                ó†   € V P                   e   ^ M^p\        V P                  4      ) p\        V P                  4      ) pWV3# )zu
The priority allows URLPattern instances to be sortable, so that
we can match from most specific to least specific.
)re   Úlenr,   r*   )rk   Úport_priorityÚhost_priorityÚscheme_prioritys   &   r   ÚpriorityÚURLPattern.priorityÍ   s?   € ð "ŸY™YÒ2™¸ˆä˜TŸY™Y›˜ˆä˜tŸ{™{Ó+Ð+ˆØ¨oÐ>Ð>r   c               ó   € V ^8„  d   QhRR/# )r	   r   Úintr   )r   s   "r   r   r]   Û   s   € ÷ "ñ "˜#ñ "r   c                	ó,   € \        V P                  4      # r4   )Úhashr[   )rk   s   &r   Ú__hash__ÚURLPattern.__hash__Û   s   € Ü�D—L‘LÓ!Ð!r   c               ó    € V ^8„  d   QhRRRR/# )r	   rq   rY   r   rr   r   )r   s   "r   r   r]   Þ   s   € ÷ .ñ .˜Jð .¨4ñ .r   c                	ó4   € V P                   VP                   8  # r4   )r~   ru   s   &&r   Ú__lt__ÚURLPattern.__lt__Þ   s   € Ø�}‰}˜uŸ~™~Ñ-Ð-r   c               ó    € V ^8„  d   QhRRRR/# )r	   rq   rI   r   rr   r   )r   s   "r   r   r]   á   s   € ÷ Oñ O˜Jð O¨4ñ Or   c                	ód   € \        V\        4      ;'       d    V P                  VP                  8H  # r4   )r6   rY   r[   ru   s   &&r   Ú__eq__ÚURLPattern.__eq__á   s$   € Ü˜%¤Ó,×NÐN°·±ÀÇÁÑ1NÐNr   )r,   rf   r[   re   r*   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rn   rv   Úpropertyr~   r„   rˆ   rŒ   Ú__static_attributes__r   r   r   rY   rY   x   s<   † ñ'õR8õ<ð ô?ó ð?õ"õ.÷Oñ Or   rY   c               ó    € V ^8„  d   QhRRRR/# ©r	   r+   r   r   rr   r   )r   s   "r   r   r   å   ó   € ÷ ñ ˜sð  tñ r   c                ó„   €  \         P                  ! V P                  R 4      ^ ,          4       R#   \         d     R# i ; i©Ú/FT)Ú	ipaddressÚIPv4Addressr#   Ú	Exception©r+   s   &r   r%   r%   å   ó<   € ðÜ×Ò˜hŸn™n¨SÓ1°!Õ4Ô5ñ øô ô Úðúó   ‚,0 °?¾?c               ó    € V ^8„  d   QhRRRR/# r–   r   )r   s   "r   r   r   í   r—   r   c                ó„   €  \         P                  ! V P                  R 4      ^ ,          4       R#   \         d     R# i ; ir™   )r›   ÚIPv6Addressr#   r�   rž   s   &r   r&   r&   í   rŸ   r    )zutf-8)Ú
__future__r   r›   rL   rh   ÚtypingÚurllib.requestr   Ú_typesr   ÚTYPE_CHECKINGrc   r   r   r.   r9   r=   rA   rF   rW   rY   r%   r&   r   r   r   Ú<module>r©      sj   ðÝ "ã Û 	Û 	Û Ý %å !à	××ÐÝõõ.÷bG÷GõGõBõ÷2jOñ jOõZ÷r   