+
     Bi.                        ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt. RpOt. RqOt	. RrOt
. RsOt. RtOt. RuOt. RvOtR
tRt. RwOtR tRtRtR t]]3R lt]]3R ltR 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#]n"        R$]PF                  n"        R%]PH                  n"        R&] n"        R'] PJ                  n"        R(] PL                  n"        R)] PN                  n"        R*] PP                  n"        R+] PH                  n"        R,]!n"        ] PJ                  PD                  ]!PJ                  n"        ] PL                  PD                  ]!PL                  n"        ] PN                  PD                  ]!PN                  n"        R-]!PR                  n"        ] PP                  PD                  ]!PP                  n"        ] PH                  PD                  ]!PH                  n"        ]t* ! R. R]]4      t+ ! R/ R] ]4      t, ! R0 R]!]4      t- ! R1 R]]4      t. ! R2 R] ]4      t/ ! R3 R]!]4      t0R4 t1]1! 4        A1RxR6 lt2RyR7 lt3RzR9 lt4R{R: lt5R; t6R< t7R= t8]Pr                  ! R5R>7      RxR? l4       t:RyR@ lt;RA t<RB t=RC t>R|RD lt?RE t@RFtARsBRG tCRH RI ltD]P                  ! RJ4      tFRK tGR}RL ltHR~RM ltIR~RN^/RO lltJR}RP ltK]L! RQ4      tM]N! ]M4      tO ! RR RS]P4      tQRRT ltRRRU ltS]Pr                  RV 4       tTRRW ltUR8R	RR]S3RX ltVRY tWRZ tXR[ tYR\ tZRs[R] t\R^ t]Rs^R_ t_R` t`Ra taRb tbRc tcRd tdRseRe tfRRf ltgRRg lthRh tiRi tjRj tkRk tlRl tmRm tnRn toRo tpR# )    )
namedtupleNDefragResultParseResultSplitResultDefragResultBytesParseResultBytesSplitResultBytes zAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.z! 	
 c                  V    \         P                  4        \        P                  4        R # N)urlsplitcache_clear_byte_quoter_factory     #/usr/lib/python3.14/urllib/parse.pyclear_cacher   ^   s    $$&r   asciistrictc                     V # r   r   )objs   &r   _noopr   l   s    Jr   c                 $    V P                  W4      # r   encode)r   encodingerrorss   &&&r   _encode_resultr   o   s    ::h''r   c                 n   aa \         ;QJ d    . VV3R  lV  4       F  NK  	  5# ! VV3R  lV  4       4      # )c              3   Z   <"   T F   q'       d   VP                  SS4      MR x  K"  	  R# 5i)r
   Ndecode.0xr   r   s   & r   	<genexpr>_decode_args.<locals>.<genexpr>u   s#     G$Qq(F+b8$s   (+)tuple)argsr   r   s   &ffr   _decode_argsr*   s   s%    5G$G5G5G$GGGr   c                      \        V ^ ,          \        4      pV R,           F-  pV'       g   K  \        V\        4      V8w  g   K$  \        R4      h	  V'       d   V \        3,           # \	        V 4      \
        3,           # )r      NNz$Cannot mix str and non-str arguments)
isinstancestr	TypeErrorr   r*   r   )r)   	str_inputargs   *  r   _coerce_argsr3   w   si     47C(IBxx 3:c3'94BCC	 
 uh 111r   c                   .   a  ] tR t^t o RtRR ltRtV tR# )_ResultMixinStrc                <   aa V P                   ! VV3R  lV  4       !  # )c              3   F   <"   T F  qP                  SS4      x  K  	  R # 5ir   r   r#   s   & r   r&   )_ResultMixinStr.encode.<locals>.<genexpr>        *Tt!88Hf+E+Et   !)_encoded_counterpartselfr   r   s   &ffr   r   _ResultMixinStr.encode       ((*Tt*TUUr   r   Nr   r   )__name__
__module____qualname____firstlineno__	__slots__r   __static_attributes____classdictcell____classdict__s   @r   r5   r5           IV Vr   r5   c                   .   a  ] tR t^t o RtRR ltRtV tR# )_ResultMixinBytesc                <   aa V P                   ! VV3R  lV  4       !  # )c              3   F   <"   T F  qP                  SS4      x  K  	  R # 5ir   r!   r#   s   & r   r&   +_ResultMixinBytes.decode.<locals>.<genexpr>   r9   r:   )_decoded_counterpartr<   s   &ffr   r"   _ResultMixinBytes.decode   r?   r   r   Nr@   )rA   rB   rC   rD   rE   r"   rF   rG   rH   s   @r   rL   rL      rJ   r   rL   c                      a  ] tR t^t o Rt]R 4       t]R 4       t]R 4       t]R 4       t	]
! ]P                  4      tRtV tR# )_NetlocResultMixinBasec                (    V P                   ^ ,          # r   	_userinfor=   s   &r   username_NetlocResultMixinBase.username       ~~a  r   c                (    V P                   ^,          # )r-   rV   rX   s   &r   password_NetlocResultMixinBase.password   r[   r   c                    V P                   ^ ,          pV'       g   R# \        V\        4      '       d   RMRpVP                  V4      w  rpVP	                  4       V,           V,           # )r   N%   %)	_hostinfor.   r/   	partitionlower)r=   hostname	separatorpercentzones   &    r   re   _NetlocResultMixinBase.hostname   sW    >>!$ &h44C$	"*"4"4Y"?4~~')D00r   c                    V P                   ^,          pVed   VP                  4       '       d#   VP                  4       '       d   \        V4      pM\	        RV: 24      h^ Tu;8:  d   R8:  g   M \	        R4      hV# )r-   z+Port could not be cast to integer value as i  zPort out of range 0-65535)rb   isdigitisasciiint
ValueError)r=   ports   & r   ro   _NetlocResultMixinBase.port   se    ~~a ||~~$,,..4y #Nth!WXX&& !<==r   r   N)rA   rB   rC   rD   rE   propertyrY   r]   re   ro   classmethodtypesGenericAlias__class_getitem__rF   rG   rH   s   @r   rS   rS      sk     I! ! ! ! 1 1 	 	 $E$6$67r   rS   c                   D   a  ] tR t^t o Rt]R 4       t]R 4       tRtV t	R# )_NetlocResultMixinStrc                    V P                   pVP                  R 4      w  r#pV'       d"   VP                  R4      w  rVpV'       g   RpWW3# R;rWWW3# )@:Nnetloc
rpartitionrc   r=   r|   userinfo	have_infohostinforY   have_passwordr]   s   &       r   rW   _NetlocResultMixinStr._userinfo   s^    (.(9(9#(>%X080B0B30G-HX  !! #'&H!!r   c                   V P                   pVP                  R 4      w   r#VP                  R4      w  r$pV'       d*   VP                  R4      w  rbpVP                  R4      w   r'MVP                  R4      w  rbpV'       g   RpWg3# )ry   []rz   Nr{   r=   r|   _r   have_open_br	bracketedre   ro   s   &       r   rb   _NetlocResultMixinStr._hostinfo   s    **3/1%-%7%7%<" ) 3 3C 8H,JAq$ ( 2 23 7HD~r   r   N
rA   rB   rC   rD   rE   rq   rW   rb   rF   rG   rH   s   @r   rw   rw      0     I	" 	"  r   rw   c                   D   a  ] tR t^t o Rt]R 4       t]R 4       tRtV t	R# )_NetlocResultMixinBytesc                    V P                   pVP                  R 4      w  r#pV'       d"   VP                  R4      w  rVpV'       g   RpWW3# R;rWWW3# )   @   :Nr{   r~   s   &       r   rW   !_NetlocResultMixinBytes._userinfo   s^    (.(9(9$(?%X080B0B40H-HX  !! #'&H!!r   c                   V P                   pVP                  R 4      w   r#VP                  R4      w  r$pV'       d*   VP                  R4      w  rbpVP                  R4      w   r'MVP                  R4      w  rbpV'       g   RpWg3# )r      [   ]r   Nr{   r   s   &       r   rb   !_NetlocResultMixinBytes._hostinfo   s    **401%-%7%7%=" ) 3 3D 9H-JAq$ ( 2 24 8HD~r   r   Nr   rH   s   @r   r   r      r   r   r   _DefragResultBasezurl fragment_SplitResultBasez!scheme netloc path query fragment_ParseResultBasez(scheme netloc path params query fragmentz
DefragResult(url, fragment)

A 2-tuple that contains the url without fragment identifier and the fragment
identifier as a separate argument.
z$The URL with no fragment identifier.z
Fragment identifier separated from URL, that allows indirect identification of a
secondary resource by reference to a primary resource and additional identifying
information.
z
SplitResult(scheme, netloc, path, query, fragment)

A 5-tuple that contains the different components of a URL. Similar to
ParseResult, but does not split params.
z%Specifies URL scheme for the request.z0
Network location where the request is made to.
z@
The hierarchical path, such as the path to a file to download.
z
The query component, that contains non-hierarchical data, that along with data
in path component, identifies a resource in the scope of URI's scheme and
network location.
z
Fragment identifier, that allows indirect identification of a secondary resource
by reference to a primary resource and additional identifying information.
zq
ParseResult(scheme, netloc, path, params, query, fragment)

A 6-tuple that contains components of a parsed URL.
z
Parameters for last path element used to dereference the URI in order to provide
access to perform some operation on the resource.
c                   *   a  ] tR tRt o RtR tRtV tR# )r   iC  c                    V P                   '       d%   V P                  R ,           V P                   ,           # V P                  # )#fragmenturlrX   s   &r   geturlDefragResult.geturlE  s+    ===88c>DMM1188Or   r   NrA   rB   rC   rD   rE   r   rF   rG   rH   s   @r   r   r   C       I r   c                   *   a  ] tR tRt o RtR tRtV tR# )r   iK  c                    \        V 4      # r   
urlunsplitrX   s   &r   r   SplitResult.geturlM      $r   r   Nr   rH   s   @r   r   r   K       I   r   c                   *   a  ] tR tRt o RtR tRtV tR# )r   iP  c                    \        V 4      # r   
urlunparserX   s   &r   r   ParseResult.geturlR  r   r   r   Nr   rH   s   @r   r   r   P  r   r   c                   *   a  ] tR tRt o RtR tRtV tR# )r   iV  c                    V P                   '       d%   V P                  R ,           V P                   ,           # V P                  # )   #r   rX   s   &r   r   DefragResultBytes.geturlX  s+    ===88d?T]]2288Or   r   Nr   rH   s   @r   r   r   V  r   r   c                   *   a  ] tR tRt o RtR tRtV tR# )r	   i^  c                    \        V 4      # r   r   rX   s   &r   r   SplitResultBytes.geturl`  r   r   r   Nr   rH   s   @r   r	   r	   ^  r   r   c                   *   a  ] tR tRt o RtR tRtV tR# )r   ic  c                    \        V 4      # r   r   rX   s   &r   r   ParseResultBytes.geturle  r   r   r   Nr   rH   s   @r   r   r   c  r   r   c                  z    \         \        3\        \        3\        \
        33p V  F  w  rW!n        Wn        K  	  R # r   )r   r   r   r	   r   r   r;   rP   )_result_pairs_decoded_encodeds      r   _fix_result_transcodingr   i  s?    	()	&'	&'M
 ,(0%(0% ,r   Tc           	          \        W4      w  rp\        WV4      w  rrrg\        T;'       g    R T;'       g    R Y;'       g    R T;'       g    R T;'       g    R 4      pV! V4      # r
   )r3   	_urlparser   )	r   schemeallow_fragments_coerce_resultr|   paramsqueryr   results	   &&&      r   urlparser   v  sf    ( #/s";C3<S/3Z0FC2v||S,,BQSU]UcUcacdF&!!r   c                     \        WV4      w  rrpT;'       g    R \        9   d   RV 9   d   \        V RR7      w  rMRpWWWE3# )r
   ;T)
allow_noneN)	_urlsplituses_params_splitparams)r   r   r   r|   r   r   r   s   &&&    r   r   r     sK    +4S/+R(FC"$"348VC99r   Fc                     R V 9   d8   V P                  RV P                  R 4      4      pV^ 8  d   Y'       d   R3# R3# MV P                  R4      pV RV W^,           R 3# )/r   Nr
   )findrfind)r   r   is   && r   r   r     sj    
s{HHS#))C.)q5
2222  HHSMr7C!Ir   c                     \        V 4      pR  F(  pV P                  W14      pV^ 8  g   K  \        W$4      pK*  	  WV WR 3# )z/?#N)lenr   min)r   startdelimcwdelims   &&   r   _splitnetlocr     sJ    HE!#Q;&E  US[((r   c                 p   V '       d   V P                  4       '       d   R # ^ R IpV P                  RR4      pVP                  RR4      pVP                  RR4      pVP                  RR4      pVP                  RV4      pW#8X  d   R # R F)  pWC9   g   K  \	        RV ,           R	,           R
,           4      h	  R # )Nry   r
   rz   r   ?NFKCz/?#@:znetloc 'z' contains invalid z#characters under NFKC normalization)rl   unicodedatareplace	normalizern   )r|   r   nnetloc2r   s   &    r   _checknetlocr     s    V^^%% sBA			#rA			#rA			#rA##FA.G|<Z&03HHBC D D r   c                 P   V P                  R 4      ^,          pVP                  R4      w  r#pV'       dS   V'       d   \        R4      hVP                  R4      w  rVpV'       d#   VP                  R4      '       g   \        R4      hMVP                  R4      w  rVp\	        V4       R# )ry   r   Invalid IPv6 URLr   rz   N)r}   rc   rn   
startswith_check_bracketed_host)r|   hostname_and_portbefore_bracketr   r   re   r   ro   s   &       r   _check_bracketed_netlocr     s     ))#.q1.?.I.I#.N+N)/00%//4T,,/00-77<T(#r   c                 
   V P                  R 4      '       d+   \        P                  ! RV 4      '       g   \        R4      hR# \        P
                  ! V 4      p\        V\        P                  4      '       d   \        R4      hR# )vz\Av[a-fA-F0-9]+\..+\zzIPvFuture address is invalidz%An IPv4 address cannot be in bracketsN)r   rematchrn   	ipaddress
ip_addressr.   IPv4Address)re   ips   & r   r   r     sl    3xx0(;;;== < !!(+b)//00DFF 1r   )typedc                     \        W4      w  rp\        WV4      w  rrp\        T;'       g    R T;'       g    R Y;'       g    R T;'       g    R 4      pV! V4      # r   )r3   r   r   )r   r   r   r   r|   r   r   r   s   &&&     r   r   r     sY    , #/s";C+4S/+R(FCFLLb&,,B[[b(..bQA!r   c                 ^   V P                  \        4      p \         F  pV P                  VR 4      p K  	  Ve5   VP	                  \        4      p\         F  pVP                  VR 4      pK  	  \        V4      pR;p;rVV P                  R4      pV^ 8  dq   V ^ ,          P                  4       '       dT   V ^ ,          P                  4       '       d7   V RV  F  pV\        9  g   K   M	  V RV P                  4       W^,           R rV R,          R8X  dO   \        V ^4      w  r@RV9   d   RV9  g   RV9   d   RV9  d   \        R4      hRV9   d   RV9   d   \        V4       V'       d   RV 9   d   V P                  R^4      w  rR	V 9   d   V P                  R	^4      w  r\        V4       WWV3# )
r
   Nrz   N   N//r   r   r   r   r   )lstrip_WHATWG_C0_CONTROL_OR_SPACE_UNSAFE_URL_BYTES_TO_REMOVEr   stripboolr   rl   isalphascheme_charsrd   r   rn   r   splitr   )	r   r   r   br|   r   r   r   r   s	   &&&      r   r   r     s    **0
1C(kk!R  )9:,A^^Ar*F - ?+O $$F$UA1uQ!!c!fnn&6&6RaA$  bq'--/3st9C
2w$"3*F]s&03f#4/00&=SF]#F+3#:		#q)
czYYsA&
C11r   c           
         \        V !  w  rr4rVpV'       g/   V'       d%   V\        9   d   V'       d   VR ,          R8X  d   RpMRpV'       d
   V: RV: 2pT! \        T;'       g    RY#T;'       g    RT;'       g    R4      4      # )Nr-   Nr   r
   Nr   r3   uses_netloc_urlunsplit)
componentsr   r|   r   r   r   r   r   s   &       r   r   r     s~     3?
2K AFC.f+SCGsNFFf%+fnnf&+mmtX5E5EG H Hr   c           
          \        V !  w  rr4rVV'       g/   V'       d%   V\        9   d   V'       d   VR ,          R8X  d   RpMRpT! \        T;'       g    RY#T;'       g    RT;'       g    R4      4      # )r  r   r
   Nr  )r	  r   r|   r   r   r   r   s   &      r   r   r   &  sn     +7
*C 9FCf+SCGsNFF+fnnf&+mmtX5E5EG H Hr   c                    Ve1   V'       d   VR,          R8w  d
   RV,           pRV,           V,           pMVR,          R8X  d
   RV,           pV '       d   V R,           V,           pVe   VR,           V,           pVe   VR,           V,           pV# )Nr  r   r   r   rz   r   r   r   )r   r|   r   r   r   s   &&&&&r   r  r  6  s}    3r7c>s3Vmc!	RDSjslS Ci%Ci("Jr   c           	         V '       g   V# V'       g   V # \        W4      w  rp\        V R V4      w  rErgp\        VR V4      w  rrpV	f   Tp	W8w  g   V	'       d   V	\        9  d	   V! V4      # V	'       d   V	\        9   d   V
'       d   V! \	        WVW4      4      # Tp
V'       g"   TpVf	   TpVf   TpV! \	        WVW4      4      # VP                  R4      pVR,          R8w  d   VR VR,          R8X  d   VP                  R4      pM)WP                  R4      ,           p\        R V^R 4      V^R% . pV F7  pVR8X  d    VP                  4        K  VR8X  d   K&  VP                  V4       K9  	  VR,          R9   d   VP                  R4       T! \	        YRP                  V4      ;'       g    RW4      4      #   \         d     K  i ; i)Nr   r
   r  ...)r  r  )r3   r   uses_relativer  r  r  filterpop
IndexErrorappendjoin)baser   r   r   bschemebnetlocbpathbquery	bfragmentr   r|   pathr   r   
base_partssegmentsresolved_pathsegs   &&&               r   urljoinr!  D  s    
 ,T 7D~dD/2 /GeY c41 *FD ~Vm(Cc""V{*!+fd.3#? @ @=E$k&$*/; < 	< S!J"~ rN Bx3::c?

3/  hqn52M$;!!#
 CZ  %  |{" 	R +fchh7 7 7u0 1 1   s   ?F::G	G	c                     \        V 4      w  rR V 9   d   \        V 4      w  r#rEp\        W#WER4      pMRpT pT! \        Yv;'       g    R4      4      # )r   Nr
   )r3   r   r  r   )r   r   sr   pqfragdefrags   &       r   	urldefragr(    sV     's+C
cz$S>aDQ1.,vzzr:;;r   0123456789ABCDEFabcdefc                 *    \        \        V 4      4      # r   )bytes_unquote_impl)strings   &r   unquote_to_bytesr.    s    v&''r   c                r    V ^8  d   QhR\         \        ,          \        ,          R\         \        ,          /# )r   r-  return)r+  	bytearrayr/   )formats   "r   __annotate__r3    s)      %)+c1 ei6G r   c           
      |   V '       g   V P                    R # \        V \        4      '       d   V P                  R4      p V P                  R4      p\	        V4      ^8X  d   V # \        V^ ,          4      pVP                  p\        fT   \         UUu/ uF@  p\         F3  pWE,           P                  4       \        P                  WE,           4      bK5  	  KB  	  uppsVR,           F-  p V! \        VR,          ,          4       V! VR,          4       K/  	  V# u uppi   \         d    T! R4       T! T4        KW  i ; i)r   utf-8ra   r,   r   :r   NN)r  r.   r/   r   r   r1  extend
_hextobyte_hexdigr+  fromhexKeyError)r-  bitsresr  ar  items   &      r   r,  r,    s    &#w'<<D
4yA~
DG
CZZF &9&!1 unn&ae(<<07 '&9
R	:d2h'(48  J9  	4L4L	s   AD')DD;:D;z([ -]+)c              #      "   ^ p\         P                  V 4       F@  pVP                  4       w  rVWV x  \        V^,          4      P	                  W4      x  TpKB  	  WR x  R# 5i)r   N)_asciirefinditerspanr,  r"   )r-  r   r   previous_match_endascii_matchr   ends   &&&    r   _generate_unquoted_partsrF    si     ((0 %%'
..KN+228DD  1 $
%%s   A$A&c                     \        V \        4      '       d   \        V 4      P                  W4      # R V 9  d   V P                   V # Vf   RpVf   RpRP                  \        WV4      4      # )r`   r5  r   r
   )r.   r+  r,  r"   r  r  rF  r-  r   r   s   &&&r   unquoterI    sg     &%  V$++H==
&~77+FfEFFr   c                     / p\        WVW4WV^R7      pV F)  w  rW9   d   Wy,          P                  V
4       K$  V
.Wy&   K+  	  V# )r   )r   r   max_num_fieldsrf   _stacklevel)	parse_qslr  )qskeep_blank_valuesstrict_parsingr   r   rK  rf   parsed_resultpairsnamevalues   &&&&&&&    r   parse_qsrU    sW    < Mb^'%3"#%E  &&u-#('M	 
 r   rL  c                  aa V'       d   \        V\        \        34      '       g   \        R 4      h\        V \        4      '       d-   \        V\        4      '       g   \        VR4      pRpVV3R lp	MBV f   . #  \        \	        V 4      4      p \        T\        4      '       d   \        TR4      pRpR p	V '       g   . # Ve*   ^V P                  V4      ,           p
WZ8  d   \        R	4      h. pV P                  V4       F|  pV'       g   V'       g   K  VP                  V4      w  rpV'       g   V'       d   \        R
V: 24      hV'       g   V'       g   KZ  V	! V4      pV	! V4      pVP                  W34       K~  	  V#   \
         dJ    T '       g@   \        P                  ! R\        T 4      P                   R2\        T^,           R7       . u # h i ; i)z*Separator must be of type string or bytes.r   =c                     < \        V SSR 7      # ))r   r   )unquote_plus)r#  r   r   s   &r   _unquoteparse_qsl.<locals>._unquote1  s    HVDDr   z
Accepting zN objects with false value in urllib.parse.parse_qsl() is deprecated as of 3.14
stacklevel   =c                 8    \        V P                  R R4      4      # )   +    )r.  r   )r#  s   &r   rZ  r[  E  s    #AIIdD$9::r   zMax number of fields exceededzbad query field: )r.   r/   r+  rn   
memoryviewr0   warningswarntyperA   DeprecationWarningcountr  rc   r  )rN  rO  rP  r   r   rK  rf   rL  eqrZ  
num_fieldsr
name_valuerS  has_eqrT  s   &&&ff&&$        r   rM  rM    s   : Jy3,??EFF"c)S))Iw/I	E			 z"~&B i%%i1I	; 	
 !),,
&<==
Ahhy)
","6"6r":D%n *!FGG))~ $' * HG  	
48+<+<*= >6 7 1[1_N 		s   ;F G=GGc                 >    V P                  R R4      p \        WV4      # )+ )r   rI  rH  s   &&&r   rY  rY  _  s!     ^^C%F6V,,r   sB   ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~c                   2   a  ] tR tRt o R tR tR tRtV tR# )_Quoterio  c                :    \         P                  V4      V n        R # r   )_ALWAYS_SAFEunionsafe)r=   ru  s   &&r   __init___Quoter.__init__w  s     &&t,	r   c                "    R \        V 4      : R2# )z<Quoter >)dictrX   s   &r   __repr___Quoter.__repr__{  s    $t*q))r   c                f    WP                   9   d   \        V4      MR P                  V4      pW V&   V# )z%{:02X})ru  chrr2  )r=   r  r<  s   && r   __missing___Quoter.__missing__~  s,    YYc!fI,<,<Q,?Q
r   ru  N)	rA   rB   rC   rD   rv  r{  r  rF   rG   rH   s   @r   rq  rq  o  s     -* r   rq  c                     \        V \        4      '       d)   V '       g   V # Vf   RpVf   RpV P                  W#4      p MVe   \        R4      hVe   \        R4      h\	        W4      # )Nr5  r   z,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)r.   r/   r   r0   quote_from_bytes)r-  ru  r   r   s   &&&&r   quoter    sl    N &#MH>Fx0JKKHIIF))r   c                    \        V \        4      '       d   R V 9  g   \        V \        4      '       d   RV 9  d   \        WW#4      # \        V\        4      '       d   R pMRp\        WV,           W#4      p V P	                  R R4      # )ro  ra  rn  )r.   r/   r+  r  r   )r-  ru  r   r   spaces   &&&& r   
quote_plusr    sq     
FC	 	 S%6	FE	"	"t6'9V844$6%<:F>>#s##r   c                 ,    \        V 4      P                  # r   )rq  __getitem__r  s   &r   r   r     s    4=$$$r   c                    \        V \        \        34      '       g   \        R 4      hV '       g   R# \        V\        4      '       d   VP                  RR4      pM#\        V Uu. uF  q"^8  g   K  VNK  	  up4      pV P                  \        V,           4      '       g   V P                  4       # \        V4      p\        V 4      ;pR8  d   RP                  \        W04      4      # \        P                  ! V4      p\        ^ WE4       Uu. uF&  pRP                  \        W0WfV,            4      4      NK(  	  ppRP                  V4      # u upi u upi )z!quote_from_bytes() expected bytesr
   r   ignorei@ )r.   r+  r1  r0   r/   r   rstrip_ALWAYS_SAFE_BYTESr"   r   r   r  mapmathisqrtrange)bsru  r   quoterbs_len
chunk_sizer   chunkss   &&      r   r  r    s   
 b5),--;<<${{7H- 1ASaa1299'$.//yy{!$'Fb'W$wws6'' ZZ'
 F797a ''#fZ<&89:7 	 9wwv 29s   $E
1E
,Ec                    \        V R 4      '       d   V P                  4       p M5 \        V 4      '       d$   \        V ^ ,          \        4      '       g   \
        h. pV'       g   V  F  w  r\        V\        4      '       d
   V! W4      pMV! \        V4      W#V4      p\        V	\        4      '       d
   V! W4      p	MV! \        V	4      W#V4      p	VP                  VR,           V	,           4       K  	  EM$V  EF  w  r\        V\        4      '       d
   V! W4      pMV! \        V4      W#V4      p\        V	\        4      '       d*   V! W4      p	VP                  VR,           V	,           4       Kw  \        V	\        4      '       d+   V! WW44      p	VP                  VR,           V	,           4       K   \        V	4      p
V	 FT  p\        V\        4      '       d
   V! W4      pMV! \        V4      W#V4      pVP                  VR,           V,           4       KV  	  EK   	  RP                  V4      #   \
         d   p\        R4      ThRp?ii ; i  \
         d8    T! \        T	4      Y#T4      p	TP                  TR,           T	,           4        EK  i ; i)itemsz1not a valid non-string sequence or mapping objectNrW  &)
hasattrr  r   r.   r(   r0   r+  r/   r  r  )r   doseqru  r   r   	quote_viaerrlkr   r%   elts   &&&&&&      r   	urlencoder    s   " ug	: 5zz*U1Xu"="= 	ADA!U##a&c!fdf=!U##a&c!fdf=HHQWq[!  DA!U##a&c!fdf=!U##a&S1%As##ax8S1%0AA  !%c511"+C"6C"+CHdf"MCS3/  !- 8 88A;]  	: 0 169:	:D ! *!#a&$&AAHHQWq[))*s)   4H( -I(I3H??I=J	J	c                 R    \         P                  ! R \        ^R7       \        V 4      # )z/urllib.parse.to_bytes() is deprecated as of 3.8r\  )rc  rd  rf  	_to_bytesr   s   &r   to_bytesr  ;  s     MMC$4S>r   c                     \        V \        4      '       d#    V P                  R 4      P                  4       p V # V #   \         d$    \	        R\        T 4      ,           R,           4      hi ; i)ASCIIzURL z contains non-ASCII characters)r.   r/   r   r"   UnicodeErrorreprr  s   &r   r  r  A  so    
 #s	A**W%,,.C J3J  	AvS	1? @ A A	As	   ; .A)c                     \        V 4      P                  4       p V R ,          R8X  d   V RR R8X  d   V ^R P                  4       p V R,          R8X  d   V R,          P                  4       p V # )r  <Nry  :N   NzURL::r  NNr  )r/   r   r  s   &r   unwrapr  O  s]    
 c(..
C
2w#~#bc(c/!Bioo
2w&"gmmoJr   c                 R    \         P                  ! R \        ^R7       \        V 4      # )zUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr\  )rc  rd  rf  
_splittyper  s   &r   	splittyper  \  $    MM 8$4 c?r   c                     \         f&   \        P                  ! R\        P                  4      s \         P	                  V 4      pV'       d%   VP                  4       w  r#VP                  4       V3# R V 3# )Nz([^/:]+):(.*))	_typeprogr   compileDOTALLr   groupsrd   )r   r   r   datas   &   r   r  r  d  sW     JJ		:	OOC E||~||~t##9r   c                 R    \         P                  ! R \        ^R7       \        V 4      # )zUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr\  )rc  rd  rf  
_splithostr  s   &r   	splithostr  q  r  r   c                    \         f&   \        P                  ! R\        P                  4      s \         P	                  V 4      pV'       d5   VP                  4       w  r#V'       d   V^ ,          R8w  d
   RV,           pW#3# R V 3# )Nz//([^/#?]*)(.*)r   )	_hostprogr   r  r  r   r  )r   r   	host_portr  s   &   r   r  r  y  se     JJ0"))<	OOC E,,.	DGsN:D9r   c                 R    \         P                  ! R \        ^R7       \        V 4      # )zUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr\  )rc  rd  rf  
_splituserhosts   &r   	splituserr    %    MM 8$4 dr   c                 H    V P                  R 4      w  rp V'       d   W3# RV 3# )ry   Nr}   )r  userr   s   &  r   r  r    s*    ,DD**td**r   c                 R    \         P                  ! R \        ^R7       \        V 4      # )zWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr\  )rc  rd  rf  _splitpasswd)r  s   &r   splitpasswdr    s%    MM 8$4 r   c                 F    V P                  R 4      w  rpY'       d   V3# R3# rz   Nrc   )r  r   passwds   &  r   r  r    s*    ..-DE&,,t,,r   c                 R    \         P                  ! R \        ^R7       \        V 4      # )zUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr\  )rc  rd  rf  
_splitportr  s   &r   	splitportr    r  r   c                     \         f&   \        P                  ! R\        P                  4      s \         P	                  V 4      pV'       d   VP                  4       w  rV'       d   W3# V R 3# )Nz(.*):([0-9]*))	_portprogr   r  r  	fullmatchr  )r  r   ro   s   &  r   r  r    sS     JJ		:	%E\\^
::r   c                 R    \         P                  ! R \        ^R7       \        W4      # )zVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr\  )rc  rd  rf  _splitnport)r  defports   &&r   
splitnportr    s%    MM 8$4 t%%r   c                     V P                  R 4      w  rpV'       g   Tp W3# V'       d@   VP                  4       '       d%   VP                  4       '       d   \        V4      pW3# RpW3# W3# r  )r}   rk   rl   rm   )r  r  r   ro   nports   &&   r   r  r    sm    
 ,D = 
<<>>dllnnIE { E{=r   c                 R    \         P                  ! R \        ^R7       \        V 4      # )zVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr\  )rc  rd  rf  _splitqueryr  s   &r   
splitqueryr    s%    MM 8$4 sr   c                 H    V P                  R 4      w  rpV'       d   W3# V R3# )r   Nr  )r   r  r   r   s   &   r   r  r    s*    ,D{9r   c                 R    \         P                  ! R \        ^R7       \        V 4      # )zTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr\  )rc  rd  rf  	_splittagr  s   &r   splittagr    s$    MM 8$4 S>r   c                 H    V P                  R 4      w  rpV'       d   W3# V R3# )r   Nr  )r   r  r   tags   &   r   r  r    s*    ~~c*Dy9r   c                 R    \         P                  ! R \        ^R7       \        V 4      # )zUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr\  )rc  rd  rf  
_splitattrr  s   &r   	splitattrr    r  r   c                 H    V P                  R 4      pV^ ,          VR,          3# )r   r,   )r  )r   wordss   & r   r  r    s$     IIcNE8U2Yr   c                 R    \         P                  ! R \        ^R7       \        V 4      # )zWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() insteadr\  )rc  rd  rf  _splitvalue)attrs   &r   
splitvaluer    s%    MM 9$4 tr   c                 F    V P                  R 4      w  rpY'       d   V3# R3# )rW  Nr  )r  r   rT  s   &  r   r  r    s*    ,D5%++d++r   )r   r   r!  r(  r   r   r  rU  rM  r  r  r  rI  rY  r.  r   r   r   r   r   r	   )r
   ftphttpgophernntpimapwaisfilehttpsshttpmmsprosperortsprtspsrtspusftpsvnsvn+sshwswss)r
   r  r  r  r  telnetr  r  r  r  r  r  snewsr  r  r  r  rsyncr  r  r  nfsgitzgit+sshr  r  zitms-services)r
   r  hdlr  r  r  r  r  r  r  r  sipsipsr  r  tel)
r  r  mailtonewsr   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
   T)NT)FrU   )T)r5  r   )FFr5  r   Nr  )r   NN)r
   NN)r   )r  )qcollectionsr   	functoolsr  r   rs   rc  r   __all__r  r  r   non_hierarchical
uses_queryuses_fragmentr  r   r   r   _implicit_encoding_implicit_errorsr   r   r*   r3   objectr5   rL   rS   rw   r   r   r   r   __doc__r   r   r   r|   r  r   r   
ResultBaser   r   r   r   r	   r   r   r   r   r   r   r   r   r   	lru_cacher   r   r   r   r  r!  r(  r8  r7  r.  r,  r  r@  rF  rI  rU  rM  rY  	frozensetrs  r+  r  rz  rq  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   <module>r     sn  D #   	   H0
--F A
%
 \  1 '    "4/( !3.H2"Vf VV V#8V #8L2O <46G < 2NC ;= BD    !K    &    "   #N    #    !    "    %    !
   #3"9"9"A"A    "2"9"9"A"A     0 5 5 = =    #    
 "2!7!7!?!?    $4$=$=$E$E    ! #
$o  "$9  
 "$9  )+<  ')@  
 ')@  1  "2:)D$$&G 4  !4 2DH"H E1P<  #
(: ::&'&G.(VOefOb-  ! " <( d *4*l$$ % %6 !rD"M`
 	
 	+- 	&",r   