Ë
    WV.jrH  ã            
      óN  — 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mZ dZ	dZ
dZ ej                  d	«      Zd
j                   edd«      D � cg c]  } | dvsŒ e| «      ‘Œ c} «      Zd
j                   edd«      D � cg c]  } | dvsŒ e| «      ‘Œ c} «      Zd
j                   edd«      D � cg c]  } | dvr e| «      ‘Œ c} «      Zd
j                   edd«      D � cg c]  } | dvr e| «      ‘Œ c} «      Zd
j                   edd«      D � cg c]  } | dvr e| «      ‘Œ c} «      Zd
j                   edd«      D � cg c]  } | dvr e| «      ‘Œ c} «      Z ej                  dj/                  ddddd¬«      «      Z ej                  dj/                  ddd¬«      «      Z ej                  d«       ej                  d«       ej                  d«       ej                  d«       ej                  d«       ej                  d«       ej                  d«       ej                  d«      dœZ ej                  d«      Z ej                  d «      Z G d!„ d"ej:                  «      Zd+d,d#„Zd-d$„Z d.d%„Z!d/d&„Z"d0d'„Z#d1d(„Z$d2d)„Z%d2d*„Z&yc c} w c c} w c c} w c c} w c c} w c c} w )3aï  
An implementation of `urlparse` that provides URL validation and normalization
as described by RFC3986.

We rely on this implementation rather than the one in Python's stdlib, because:

* It provides more complete URL validation.
* It properly differentiates between an empty querystring and an absent querystring,
  to distinguish URLs with a trailing '?'.
* It handles scheme, hostname, port, and path normalization.
* It supports IDNA hostnames, normalizing them to their encoded form.
* The API supports passing individual components, as well as the complete URL string.

Previously we relied on the excellent `rfc3986` package to handle URL parsing and
validation, but this module provides a simpler alternative, with less indirection
required.
é    )ÚannotationsNé   )Ú
InvalidURLi   zBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~z!$&'()*+,;=z%[A-Fa-f0-9]{2}Ú é    é   )r   é"   é<   é>   é`   )r   r	   é#   r
   r   )	r   r	   r   r
   r   é?   r   é{   é}   )r   r	   r   r
   r   r   r   r   r   é/   é:   é;   é=   é@   é[   é\   é]   é^   é|   )r   r	   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   z‚(?:(?P<scheme>{scheme}):)?(?://(?P<authority>{authority}))?(?P<path>{path})(?:\?(?P<query>{query}))?(?:#(?P<fragment>{fragment}))?z([a-zA-Z][a-zA-Z0-9+.-]*)?z[^/?#]*z[^?#]*z[^#]*z.*©ÚschemeÚ	authorityÚpathÚqueryÚfragmentzA(?:(?P<userinfo>{userinfo})@)?(?P<host>{host}):?(?P<port>{port})?z(\[.*\]|[^:@]*))ÚuserinfoÚhostÚportz[^@]*z(\[.*\]|[^:]*))r   r   r   r   r    r!   r"   r#   z ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$z^\[.*\]$c                  óˆ   — e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   edd„«       Zedd„«       Zdd„Zdd„Zy)ÚParseResultÚstrr   r!   r"   ú
int | Noner#   r   ú
str | Noner   r    c                óð   — dj                  | j                  r| j                  › d�ndd| j                  v rd| j                  › d�n| j                  | j                  �d| j                  › �g«      S dg«      S )Nr   Ú@Ú:Ú[Ú])Újoinr!   r"   r#   ©Úselfs    úQC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\httpx/_urlparse.pyr   zParseResult.authority§   sz   € à�w‰wà'+§}¢}�4—=‘=�/ Ñ#¸"Ø$'¨4¯9©9Ñ$4�!�D—I‘I�;˜aÑ ¸$¿)¹)Ø#'§9¡9Ð#8�!�D—I‘I�;�ðó
ð 	
ð ?Aðó
ð 	
ó    c                ó¸   — dj                  d| j                  v rd| j                  › d�n| j                  | j                  �d| j                  › �g«      S dg«      S )Nr   r+   r,   r-   )r.   r"   r#   r/   s    r1   ÚnetloczParseResult.netloc±   sd   € à�w‰wà$'¨4¯9©9Ñ$4�!�D—I‘I�;˜aÑ ¸$¿)¹)Ø#'§9¡9Ð#8�!�D—I‘I�;�ðó
ð 	
ð ?Aðó
ð 	
r2   c                ó¶   — |s| S | j                   | j                  | j                  | j                  | j                  dœ}|j                  |«       t        di |¤ŽS )Nr   ©r   )r   r   r   r   r    ÚupdateÚurlparse)r0   ÚkwargsÚdefaultss      r1   Ú	copy_withzParseResult.copy_withº   sR   € ÙØˆKð —k‘kØŸ™Ø—I‘IØ—Z‘ZØŸ™ñ
ˆð 	�‰˜ÔÜÑ'˜hÑ'Ð'r2   c                ó  — | j                   }dj                  | j                  r| j                  › d�nd|rd|› �nd| j                  | j                  �d| j                  › �nd| j
                  �d| j
                  › �g«      S dg«      S )Nr   r+   ú//Ú?Ú#)r   r.   r   r   r   r    )r0   r   s     r1   Ú__str__zParseResult.__str__È   s’   € Ø—N‘Nˆ	Ø�w‰wà%)§[¢[�4—;‘;�-˜qÑ!°bÙ$-�"�Y�KÑ °2Ø—	‘	Ø$(§J¡JÐ$:�!�D—J‘J�<Ñ ÀØ'+§}¡}Ð'@�!�D—M‘M�?Ð#ðó
ð 	
ð GIðó
ð 	
r2   N)Úreturnr&   )r9   r(   rA   r%   )	Ú__name__Ú
__module__Ú__qualname__Ú__annotations__Úpropertyr   r4   r;   r@   © r2   r1   r%   r%   ž   sX   … ØƒKØƒMØ
ƒIØ
ÓØ
ƒIØÓØÓàò
ó ð
ð ò
ó ð
ó(ô

r2   r%   c           	     ó8  — t        | «      t        kD  rt        d«      ‚t        d„ | D «       «      r7t	        d„ | D «       «      }| j                  |«      }d|›d|› d�}t        |«      ‚d|v r%|d   }t        |t        «      rt        |«      n||d<   d|v r0|j                  d«      xs d	}|j                  d
«      \  |d<   }|d<   d|v sd|v rXt        |j                  dd	«      xs d	t        ¬«      }t        |j                  dd	«      xs d	t        ¬«      }	|	r|› d
|	› �n||d<   d|v r7|j                  d«      xs d	}
|
j                  d«      \  |d<   }|d<   |sd |d<   d|v rD|j                  d«      xs d	}d
|v r+|j                  d«      r|j!                  d«      s	d|› d�|d<   |j#                  «       D ]œ  \  }}|€Œ	t        |«      t        kD  rt        d|› d�«      ‚t        d„ |D «       «      r:t	        d„ |D «       «      }|j                  |«      }d|› d|›d|› d�}t        |«      ‚t$        |   j'                  |«      rŒ�t        d|› d�«      ‚ t(        j+                  | «      }|€J ‚|j-                  «       }|j                  d|d   «      xs d	}|j                  d|d   «      xs d	}|j                  d|d   «      xs d	}|j                  d|d   «      }|j                  d |d    «      }t.        j+                  |«      }|€J ‚|j-                  «       }|j                  d|d   «      xs d	}|j                  d|d   «      xs d	}|j                  d|d   «      }|j1                  «       }t        |t2        ¬«      }t5        |«      }t7        ||«      }|d	k7  }|d	k7  xs |d	k7  xs |d u}t9        |||¬!«       |s|rt;        |«      }t        |t<        ¬«      }|€d nt        |t>        ¬«      } |€d nt        |t@        ¬«      }!tC        |||||| |!«      S )"NzURL too longc              3  ób   K  — | ]'  }|j                  «       xr |j                  «        –— Œ) y ­w©N©ÚisasciiÚisprintable©Ú.0Úchars     r1   Ú	<genexpr>zurlparse.<locals>.<genexpr>ß   s+   è ø€ Ð
EÁ¸ˆ4�<‰<‹>Ò4 $×"2Ñ"2Ó"4Ð4Ó4Áùó   ‚-/c              3  ód   K  — | ](  }|j                  «       sŒ|j                  «       rŒ%|–— Œ* y ­wrJ   rK   rN   s     r1   rQ   zurlparse.<locals>.<genexpr>à   s$   è ø€ ÐV¡S˜T¨D¯L©L­NÀ4×CSÑCSÕCU”D¡Sùó   ‚0˜0©0z.Invalid non-printable ASCII character in URL, z at position Ú.r#   r4   r   r+   r"   ÚusernameÚpassword©Úsafer!   Úraw_pathr>   r   r   r,   r-   zURL component 'z
' too longc              3  ób   K  — | ]'  }|j                  «       xr |j                  «        –— Œ) y ­wrJ   rK   rN   s     r1   rQ   zurlparse.<locals>.<genexpr>  s+   è ø€ ÐOÉÀ�4—<‘<“>Ò<¨$×*:Ñ*:Ó*<Ð&<Ó<ÉùrR   c              3  ód   K  — | ](  }|j                  «       sŒ|j                  «       rŒ%|–— Œ* y ­wrJ   rK   rN   s     r1   rQ   zurlparse.<locals>.<genexpr>  s'   è ø€ ð Ù%*˜T¨d¯l©l­nÀT×EUÑEUÕEW”D¡UùrT   z-Invalid non-printable ASCII character in URL z component, zInvalid URL component 'Ú'r   r   r    )Ú
has_schemeÚhas_authority)"ÚlenÚMAX_URL_LENGTHr   ÚanyÚnextÚfindÚ
isinstanceÚintr&   ÚpopÚ	partitionÚquoteÚUSERNAME_SAFEÚPASSWORD_SAFEÚgetÚ
startswithÚendswithÚitemsÚCOMPONENT_REGEXÚ	fullmatchÚ	URL_REGEXÚmatchÚ	groupdictÚAUTHORITY_REGEXÚlowerÚUSERINFO_SAFEÚencode_hostÚnormalize_portÚvalidate_pathÚnormalize_pathÚ	PATH_SAFEÚ
QUERY_SAFEÚ	FRAG_SAFEr%   )"Úurlr9   rP   ÚidxÚerrorr#   r4   Ú_rV   rW   rZ   Ú	seperatorr"   ÚkeyÚvalueÚ	url_matchÚurl_dictr   r   r   r   ÚfragÚauthority_matchÚauthority_dictr!   Úparsed_schemeÚparsed_userinfoÚparsed_hostÚparsed_portr^   r_   Úparsed_pathÚparsed_queryÚparsed_frags"                                     r1   r8   r8   Õ   s{  € ô
 ˆ3ƒx”.Ò Ü˜Ó(Ð(ô Ñ
EÁÓ
EÔEÜÑV¡SÓVÓVˆØ�h‰h�t‹nˆà<¸T¸HÀMÐRUÐQVÐVWÐXð 	ô ˜ÓÐð �ÑØ�f‰~ˆÜ&0°´sÔ&;œ˜TœÀˆˆv‰ð �6ÑØ—‘˜HÓ%Ò+¨ˆØ,2×,<Ñ,<¸SÓ,AÑ)ˆˆv‰˜˜6 &™>ð �VÑ˜z¨VÑ3Ü˜Ÿ™ J°Ó3Ò9°rÄÔNˆÜ˜Ÿ™ J°Ó3Ò9°rÄÔNˆÙ9A ˜z¨¨8¨*Ñ5ÀxˆˆzÑð �VÑØ—:‘:˜jÓ)Ò/¨RˆØ5=×5GÑ5GÈÓ5LÑ2ˆˆv‰˜	 6¨'¡?ÙØ"ˆF�7‰Oð �ÑØ�z‰z˜&Ó!Ò' RˆØ�$‰; §¡°Ô 4¸¿¹ÀsÔ9KØ    a˜[ˆF�6‰Nð
 —l‘l–n‰
ˆˆUØÑÜ�5‹zœNÒ*Ü  ?°3°%°zÐ!BÓCÐCô ÑOÉÓOÔOÜñ Ù%*óó �ð —j‘j Ó&�àCÀCÀ5ÈØ�h˜m¨C¨5°ð3ð ô ! Ó'Ð'ô # 3Ñ'×1Ñ1°%Õ8Ü Ð#:¸3¸%¸qÐ!AÓBÐBð) %ô. —‘ Ó$€IØÐ Ð Ð Ø×"Ñ"Ó$€Hð �Z‰Z˜ (¨8Ñ"4Ó5Ò;¸€FØ—
‘
˜;¨°Ñ(=Ó>ÒDÀ"€IØ�:‰:�f˜h vÑ.Ó/Ò5°2€DØ�J‰J�w ¨Ñ 1Ó2€EØ�:‰:�j (¨:Ñ"6Ó7€Dô &×+Ñ+¨IÓ6€OØÐ&Ð&Ð&Ø$×.Ñ.Ó0€Nð �z‰z˜* n°ZÑ&@ÓAÒGÀR€HØ�:‰:�f˜n¨VÑ4Ó5Ò;¸€DØ�:‰:�f˜n¨VÑ4Ó5€Dð
  Ÿ™›€MÜ  ´Ô>€OÜ" 4Ó(€KÜ,¨T°6Ó:€Kà "Ñ$€Jà˜2ÑÒM °Ñ!2ÒM°kÈÐ6Mð ô �$ :¸]ÕKÙ‘]Ü˜dÓ#ˆä˜T¬	Ô2€KØ', }™t¼%ÀÌJÔ:W€LØ&* l™d¼¸dÌÔ8S€Kô ØØØØØØØóð r2   c                ót  — | syt         j                  | «      r	 t        j                  | «       | S t        j                  | «      r	 t        j                  | dd «       | dd S | j                  «       r$d}t        | j                  «       t        |z   ¬«      S 	 t        j                  | j                  «       «      j                  d«      S # t        j                  $ r t        d| ›�«      ‚w xY w# t        j                  $ r t        d| ›�«      ‚w xY w# t        j                  $ r t        d	| ›�«      ‚w xY w)
Nr   zInvalid IPv4 address: r   éÿÿÿÿzInvalid IPv6 address: z"`{}%|\rX   ÚasciizInvalid IDNA hostname: )ÚIPv4_STYLE_HOSTNAMErs   Ú	ipaddressÚIPv4AddressÚAddressValueErrorr   ÚIPv6_STYLE_HOSTNAMEÚIPv6AddressrL   ri   rv   Ú
SUB_DELIMSÚidnaÚencodeÚdecodeÚ	IDNAError)r"   ÚWHATWG_SAFEs     r1   rx   rx   \  s2  € ÙØä	×	"Ñ	" 4Ô	(ð	@Ü×!Ñ! $Ô'ð ˆä	×	"Ñ	" 4Ô	(ð	@Ü×!Ñ! $ q¨ *Ô-ð �A�bˆzÐà	�‰Œð !ˆÜ�T—Z‘Z“\¬
°[Ñ(@ÔAÐAð=Ü�{‰{˜4Ÿ:™:›<Ó(×/Ñ/°Ó8Ð8øô= ×*Ñ*ò 	@ÜÐ5°d°XÐ>Ó?Ð?ð	@ûô ×*Ñ*ò 	@ÜÐ5°d°XÐ>Ó?Ð?ð	@ûô  �>‰>ò =ÜÐ2°4°(Ð;Ó<Ð<ð=ús#   šC ÁC0 Â1D Ã"C-Ã0"DÄ"D7c                óž   — | �| dk(  ry 	 t        | «      }ddddddœj                  |«      }||k(  ry |S # t        $ r t        d| ›�«      ‚w xY w)Nr   zInvalid port: é   éP   i»  )ÚftpÚhttpÚhttpsÚwsÚwss)rf   Ú
ValueErrorr   rl   )r#   r   Úport_as_intÚdefault_ports       r1   ry   ry   ‹  sv   € ð €|�t˜r’zØð4Ü˜$“iˆð
  r°C¸rÈ#ÑN×RÑRØó€Lð �lÒ"ØØÐøô ò 4Ü˜>¨$¨Ð2Ó3Ð3ð4ús	   Š4 ´Ac                óÀ   — |r| r| j                  d«      st        d«      ‚|s<|s9| j                  d«      rt        d«      ‚| j                  d«      rt        d«      ‚yyy)z¯
    Path validation rules that depend on if the URL contains
    a scheme or authority component.

    See https://datatracker.ietf.org/doc/html/rfc3986.html#section-3.3
    Ú/z7For absolute URLs, path must be empty or begin with '/'r=   z3Relative URLs cannot have a path starting with '//'r+   z2Relative URLs cannot have a path starting with ':'N)rm   r   )r   r^   r_   s      r1   rz   rz   ¦  sh   € ñ ñ ˜Ÿ™¨Ô,ÜÐVÓWÐWá™mð �?‰?˜4Ô ÜÐRÓSÐSð �?‰?˜3ÔÜÐQÓRÐRð  ð ,ˆ:r2   c                óæ   — d| vr| S | j                  d«      }d|vrd|vr| S g }|D ]9  }|dk(  rŒ	|dk(  r|sŒ|dgk7  sŒ|j                  «        Œ)|j                  |«       Œ; dj                  |«      S )zˆ
    Drop "." and ".." segments from a URL path.

    For example:

        normalize_path("/path/./to/somewhere/..") == "/path/to"
    rU   r­   z..r   )Úsplitrg   Úappendr.   )r   Ú
componentsÚoutputÚ	components       r1   r{   r{   ¿  sˆ   € ð �$�Øˆà—‘˜C“€Jð �*Ñ ¨ZÑ!7Øˆð €FÛˆ	Ø˜ÒØØ˜$ÒÚ˜& R D›.Ø—
‘
•à�M‰M˜)Õ$ð  ð �8‰8�FÓÐr2   c                óp   — dj                  | j                  d«      D �cg c]  }d|d›�‘Œ
 c}«      S c c}w )Nr   zutf-8Ú%Ú02X)r.   r�   )ÚstringÚbytes     r1   ÚPERCENTr¹   Þ  s6   € Ø�7‰7¨v¯}©}¸WÔ/EÓFÑ/E t�a˜˜S�z’NÐ/EÑFÓGÐGùÒFs   Ÿ3c                ó    — t         |z   }| j                  |«      s| S dj                  | D �cg c]  }||v r|n
t        |«      ‘Œ c}«      S c c}w )z1
    Use percent-encoding to quote a string.
    r   )ÚUNRESERVED_CHARACTERSÚrstripr.   r¹   )r·   rY   ÚNON_ESCAPED_CHARSrP   s       r1   Úpercent_encodedr¾   â  sZ   € ô .°Ñ4Ðð �=‰=Ð*Ô+Øˆà�7‰7ÙJPÓQÉ&À$�Ð*Ñ*‰´¸³Ñ	=È&ÑQóð ùÚQs   ¬Ac                óœ  — g }d}t        j                  t        | «      D ]l  }|j                  «       |j	                  «       }}|j                  d«      }||k7  r!| || }|j                  t        ||¬«      «       |j                  |«       |}Œn |t        | «      k7  r!| |d }	|j                  t        |	|¬«      «       dj                  |«      S )a®  
    Use percent-encoding to quote a string, omitting existing '%xx' escape sequences.

    See: https://www.rfc-editor.org/rfc/rfc3986#section-2.1

    * `string`: The string to be percent-escaped.
    * `safe`: A string containing characters that may be treated as safe, and do not
        need to be escaped. Unreserved characters are always treated as safe.
        See: https://www.rfc-editor.org/rfc/rfc3986#section-2.3
    r   rX   Nr   )
ÚreÚfinditerÚPERCENT_ENCODED_REGEXÚstartÚendÚgroupr°   r¾   r`   r.   )
r·   rY   ÚpartsÚcurrent_positionrs   Ústart_positionÚend_positionÚmatched_textÚleading_textÚtrailing_texts
             r1   ri   ri   ñ  sÁ   € ð €EØÐÜ—‘Ô2°FÖ;ˆØ',§{¡{£}°e·i±i³k˜ˆØ—{‘{ 1“~ˆàÐ-Ò-Ø!Ð"2°>ÐBˆLØ�L‰Lœ¨¸DÔAÔBð 	�‰�\Ô"Ø'Ñð <ð œ3˜v›;Ò&ØÐ/Ð0Ð1ˆØ�‰”_ ]¸Ô>Ô?à�7‰7�5‹>Ðr2   r6   )r   r&   r9   r(   rA   r%   )r"   r&   rA   r&   )r#   zstr | int | Noner   r&   rA   r'   )r   r&   r^   Úboolr_   rÍ   rA   ÚNone)r   r&   rA   r&   )r·   r&   rA   r&   )r·   r&   rY   r&   rA   r&   )'Ú__doc__Ú
__future__r   r–   rÀ   Útypingrœ   Ú_exceptionsr   ra   r»   r›   ÚcompilerÂ   r.   ÚrangeÚchrr~   r}   r|   rj   rk   rw   Úformatrr   ru   rp   r•   r™   Ú
NamedTupler%   r8   rx   ry   rz   r{   r¹   r¾   ri   )Úis   0r1   Ú<module>rÙ      s0  ðñõ$ #ã Û 	Û ã å #à€ð Ið ð €
à"˜Ÿ
™
Ð#4Ó5Ð ð �G‰GÙ˜4 Ô&ÓRÑ&�¨!Ð3QÒ*Q�Sˆ…VÐ&ÑRó€	ð �W‰WÙ˜4 Ô&ÓRÑ&�¨!Ð3QÒ*Q�Sˆ…VÐ&ÑRó€
ð �G‰Gñ �t˜TÔ"óá"ˆAØÐMÑMñ 	ˆA�Ø"ñó€	ð —‘ñ �t˜TÔ"óá"ˆAØðGñGñ 	ˆA�Ø"ñó	€ð —‘ñ �t˜TÔ"óá"ˆAØðGñGñ 	ˆA�Ø"ñó	€ð —‘ñ �t˜TÔ"óá"ˆAØðAñAñ 	ˆA�Ø"ñó	€ð" ˆB�J‰Jð	*÷
 �fØ+ØØØØð ó ó€	ð& �"—*‘*àTß�fØØ àð	 ó ó	€ð  ˆb�j‰jÐ5Ó6Ø�—‘˜IÓ&ØˆB�J‰J�xÓ ØˆR�Z‰Z˜Ó Ø�—
‘
˜4Ó Ø�—
‘
˜7Ó#ØˆB�J‰JÐ)Ó*ØˆB�J‰J�tÓñ	€ð !�b—j‘jÐ!DÓEÐ Ø �b—j‘j Ó-Ð ô4
�&×#Ñ#ô 4
ônDóN,=ó^ó6Só2ó>HóôùòK Sùò Sùòùòùòùòs0   Á	J	Á
J	Á>	JÂ
JÂ/JÃJÄJÄ?J"