+
    i.  c                   s   ^ 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                  sV    \         P                  4        \        P                  4        R # N)urlsplitZcache_clear_byte_quoter_factory     %/usr/lib64/python3.14/urllib/parse.pyclear_cacher   ^   s    $$&r   asciistrictc                 s    V # r	   r   )obj   &r   _noopr   l   s    Jr   c                 s$    V P                  W4      # r	   encode)r   encodingerrors   &&&r   _encode_resultr   o   s    ::h''r   c                 sn   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   sZ   <"   T F   q'       d   VP                  SS4      MR x  K"  	  R# 5i)r   NdecodeZ.0xr   r      & r   	<genexpr>Z_decode_args.<locals>.<genexpr>u   s#     G$Qq(F+b8$s   (+)tuple)argsr   r      &ffr   _decode_argsr$   s   s%    5G$G5G5G$GGGr   c                  s    \        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"   Z	str_inputZargs   *  r   _coerce_argsr*   w   si     47C(IBxx 3:c3'94BCC	 
 uh 111r   c                   s.   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   r   r   r    Z)_ResultMixinStr.encode.<locals>.<genexpr>        *Tt!88Hf+E+Et   !)_encoded_counterpartselfr   r   r#   r   r   Z_ResultMixinStr.encode       ((*Tt*TUUr   r   Nr   r   )__name__
__module____qualname____firstlineno__	__slots__r   __static_attributes____classdictcell__Z__classdict__   @r   r+   r+           IV Vr   r+   c                   s.   a  ] tR t^t o RtRR ltRtV tR# )_ResultMixinBytesc                r,   )c              3   r-   r	   r   r   r   r   r    Z+_ResultMixinBytes.decode.<locals>.<genexpr>   r.   r/   )_decoded_counterpartr1   r#   r   r   Z_ResultMixinBytes.decode   r3   r   r   Nr4   )r5   r6   r7   r8   r9   r   r:   r;   r<   r=   r   r?   r?      r>   r   r?   c                   s   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                s(    V P                   ^ ,          # r    	_userinfor2   r   r   usernameZ_NetlocResultMixinBase.username       ~~a  r   c                s(    V P                   ^,          # )r&   rC   rE   r   r   passwordZ_NetlocResultMixinBase.password   rG   r   c                s    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)r2   hostname	separatorZpercentZzone   &    r   rN   Z_NetlocResultMixinBase.hostname   sW    >>!$ &h44C$	"*"4"4Y"?4~~')D00r   c                s    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)rK   isdigitisasciiint
ValueError)r2   port   & r   rU   Z_NetlocResultMixinBase.port   se    ~~a ||~~$,,..4y #Nth!WXX&& !<==r   r   N)r5   r6   r7   r8   r9   propertyrF   rH   rN   rU   ZclassmethodtypesZGenericAliasZ__class_getitem__r:   r;   r<   r=   r   rA   rA      sk     I! ! ! ! 1 1 	 	 $E$6$67r   rA   c                   sD   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
rpartitionrL   r2   r^   ZuserinfoZ	have_infohostinforF   Zhave_passwordrH      &       r   rD   Z_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# )r[   []r\   Nr]   r2   r^   _ra   have_open_br	bracketedrN   rU   rb   r   rK   Z_NetlocResultMixinStr._hostinfo   s    **3/1%-%7%7%<" ) 3 3C 8H,JAq$ ( 2 23 7HD~r   r   N
r5   r6   r7   r8   r9   rW   rD   rK   r:   r;   r<   r=   r   rY   rY      0     I	" 	"  r   rY   c                   sD   a  ] tR t^t o Rt]R 4       t]R 4       tRtV t	R# )_NetlocResultMixinBytesc                rZ   )r=      :Nr]   r`   rb   r   rD   Z!_NetlocResultMixinBytes._userinfo   s^    (.(9(9$(?%X080B0B40H-HX  !! #'&H!!r   c                rc   )r=   s   [s   ]rm   Nr]   rf   rb   r   rK   Z!_NetlocResultMixinBytes._hostinfo   s    **401%-%7%7%=" ) 3 3D 9H-JAq$ ( 2 24 8HD~r   r   Nrj   r<   r=   r   rl   rl      rk   r   rl   _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urlrE   r   r   geturlZDefragResult.geturlE  s+    ===88c>DMM1188Or   r   Nr5   r6   r7   r8   r9   rw   r:   r;   r<   r=   r   r   r   C       I r   c                   rq   )r   iK  c                    \        V 4      # r	   
urlunsplitrE   r   r   rw   ZSplitResult.geturlM      $r   r   Nrx   r<   r=   r   r   r   K       I   r   c                   rq   )r   iP  c                rz   r	   
urlunparserE   r   r   rw   ZParseResult.geturlR  r}   r   r   Nrx   r<   r=   r   r   r   P  r~   r   c                   rq   )r   iV  c                rr   )s   #rt   rE   r   r   rw   ZDefragResultBytes.geturlX  s+    ===88d?T]]2288Or   r   Nrx   r<   r=   r   r   r   V  ry   r   c                   rq   )r   i^  c                rz   r	   r{   rE   r   r   rw   ZSplitResultBytes.geturl`  r}   r   r   Nrx   r<   r=   r   r   r   ^  r~   r   c                   rq   )r   ic  c                rz   r	   r   rE   r   r   rw   ZParseResultBytes.geturle  r}   r   r   Nrx   r<   r=   r   r   r   c  r~   r   c                  sz    \         \        3\        \        3\        \
        33p V  F  w  rW!n        Wn        K  	  R # r	   )r   r   r   r   r   r   r0   r@   )Z_result_pairsZ_decodedZ_encodeds      r   _fix_result_transcodingr   i  s?    	()	&'	&'M
 ,(0%(0% ,r   Tc           	      s    \        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   )r*   	_urlparser   )	rv   schemeallow_fragments_coerce_resultr^   paramsqueryru   Zresult	   &&&      r   urlparser   v  sf    ( #/s";C3<S/3Z0FC2v||S,,BQSU]UcUcacdF&!!r   c                 s    \        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)rv   r   r   r^   r   ru   r      &&&    r   r   r     sK    +4S/+R(FC"$"348VC99r   Fc                 s    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   )findZrfind)rv   r   i   && r   r   r     sj    
s{HHS#))C.)q5
2222  HHSMr7C!Ir   c                 s    \        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   Zmin)rv   startdelimcZwdelim   &&   r   _splitnetlocr     sJ    HE!#Q;&E  US[((r   c                 sp   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 # )Nr[   r   r\   rs   ?ZNFKCz/?#@:znetloc 'z' contains invalid z#characters under NFKC normalization)rR   unicodedatareplaceZ	normalizerT   )r^   r   nZnetloc2r   rP   r   _checknetlocr     s    V^^%% sBA			#rA			#rA			#rA##FA.G|<Z&03HHBC D D r   c                 sP   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# )r[   rd   Invalid IPv6 URLre   r\   N)r_   rL   rT   
startswith_check_bracketed_host)r^   Zhostname_and_portZbefore_bracketrh   ri   rN   rg   rU   rb   r   _check_bracketed_netlocr     s     ))#.q1.?.I.I#.N+N)/00%//4T,,/00-77<T(#r   c                 s
   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matchrT   	ipaddressZ
ip_addressr'   ZIPv4Address)rN   ZiprV   r   r   r     sl    3xx0(;;;== < !!(+b)//00DFF 1r   )Ztypedc                 s    \        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   )r*   r   r   )rv   r   r   r   r^   r   ru   r   s   &&&     r   r
   r
     sY    , #/s";C+4S/+R(FCFLLb&,,B[[b(..bQA!r   c                 s^   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   Nr\   N   N//rd   re   r   rs   r   )Zlstrip_WHATWG_C0_CONTROL_OR_SPACE_UNSAFE_URL_BYTES_TO_REMOVEr   stripZboolr   rR   Zisalphascheme_charsrM   r   rT   r   splitr   )	rv   r   r   br^   r   ru   r   r   r   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           
      s   \        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   r*   uses_netloc_urlunsplit)
componentsr   r^   rv   r   r   ru   r   rb   r   r   r     s~     3?
2K AFC.f+SCGsNFFf%+fnnf&+mmtX5E5EG H Hr   c           
      s    \        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^   rv   r   ru   r      &      r   r|   r|   &  sn     +7
*C 9FCf+SCGsNFF+fnnf&+mmtX5E5EG H Hr   c                 s   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   r\   r   rs   r   )r   r^   rv   r   ru   s   &&&&&r   r   r   6  s}    3r7c>s3Vmc!	RDSjslS Ci%Ci("Jr   c           	      s   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   )r*   r   uses_relativer   r   r   ZfilterZpopZ
IndexErrorappendjoin)Zbaserv   r   r   ZbschemeZbnetlocZbpathZbqueryZ	bfragmentr   r^   pathr   ru   Z
base_partsZsegmentsZresolved_pathZ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                 s    \        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      # )rs   Nr   )r*   r   r   r   )rv   r   sr   ZpZqZfragZdefragrb   r   	urldefragr     sV     's+C
cz$S>aDQ1.,vzzr:;;r   Z0123456789ABCDEFabcdefc                 s*    \        \        V 4      4      # r	   )bytes_unquote_impl)stringr   r   unquote_to_bytesr     s    v&''r   c                sr    V ^8  d   QhR\         \        ,          \        ,          R\         \        ,          /# )r   r   Zreturn)r   	bytearrayr(   )formats   "r   __annotate__r     s)      %)+c1 ei6G r   c           
      s|   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-8rJ   r%   r   :r   NN)r   r'   r(   r   r   r   Zextend
_hextobyte_hexdigr   ZfromhexZKeyError)r   Zbitsresr   Zar   Zitemr   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              #   s   "   ^ 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)_asciireZfinditerZspanr   r   )r   r   r   Zprevious_match_endZascii_matchr   Zendr   r   _generate_unquoted_partsr     si     ((0 %%'
..KN+228DD  1 $
%%s   A$A&c                 s    \        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      # )rI   r   r   r   )r'   r   r   r   r   r   r   r   r   r   r   r   unquoter     sg     &%  V$++H==
&~77+FfEFFr   c                 s    / 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_fieldsrO   _stacklevel)	parse_qslr   )qskeep_blank_valuesstrict_parsingr   r   r   rO   Zparsed_resultZpairsnamevalues   &&&&&&&    r   parse_qsr     sW    < Mb^'%3"#%E  &&u-#('M	 
 r   r   c                s  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                 s    < \        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Z
stacklevels   =c                 s8    \        V P                  R R4      4      # )s   +    )r   r   )r   r   r   r   r   E  s    #AIIdD$9::r   zMax number of fields exceededzbad query field: )r'   r(   r   rT   Z
memoryviewr)   warningswarnZtyper5   DeprecationWarningZcountr   rL   r   )r   r   r   r   r   r   rO   r   Zeqr   Z
num_fieldsZrZ
name_valuer   Zhas_eqr   s   &&&ff&&$        r   r   r     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                 s>    V P                  R R4      p \        WV4      # )+ )r   r   r   r   r   r   r   _  s!     ^^C%F6V,,r   sB   ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~c                   s2   a  ] tR tRt o R tR tR tRtV tR# )_Quoterio  c                s:    \         P                  V4      V n        R # r	   )_ALWAYS_SAFEZunionsafe)r2   r      &&r   __init__Z_Quoter.__init__w  s     &&t,	r   c                s"    R \        V 4      : R2# )z<Quoter >)dictrE   r   r   __repr__Z_Quoter.__repr__{  s    $t*q))r   c                sf    WP                   9   d   \        V4      MR P                  V4      pW V&   V# )z%{:02X})r   Zchrr   )r2   r   r   r   r   __missing__Z_Quoter.__missing__~  s,    YYc!fI,<,<Q,?Q
r   r   N)	r5   r6   r7   r8   r   r   r   r:   r;   r<   r=   r   r   r   o  s     -* r   r   c                 s    \        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      # )Nr   r   z,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)r'   r(   r   r)   quote_from_bytes)r   r   r   r   s   &&&&r   quoter     sl    N &#MH>Fx0JKKHIIF))r   c                 s   \        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      # )r   r   r   )r'   r(   r   r   r   )r   r   r   r   Zspaces   &&&& r   
quote_plusr     sq     
FC	 	 S%6	FE	"	"t6'9V844$6%<:F>>#s##r   c                 s,    \        V 4      P                  # r	   )r   Z__getitem__r   r   r   r   r     s    4=$$$r   c                 s   \        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   Zignorei@ )r'   r   r   r)   r(   r   Zrstrip_ALWAYS_SAFE_BYTESr   r   r   r   ZmapmathZisqrtZrange)Zbsr   r   ZquoterZbs_lenZ
chunk_sizer   Z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                 s   \        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 objectNr   &)
Zhasattrr   r   r'   r!   r)   r   r(   r   r   )r   Zdoseqr   r   r   Z	quote_viaZerrZlZkr   r   Z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   )r   r   r   	_to_bytesrv   r   r   to_bytesr   ;  s     MMC$4S>r   c                 s    \        V \        4      '       d#    V P                  R 4      P                  4       p V # V #   \         d$    \	        R\        T 4      ,           R,           4      hi ; i)ZASCIIzURL z contains non-ASCII characters)r'   r(   r   r   ZUnicodeErrorZreprr   r   r   r   r   A  so    
 #s	A**W%,,.C J3J  	AvS	1? @ A A	As	   ; .A)c                 s    \        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   Z<Nr   :N   NzURL::r   NNr   )r(   r   r   r   r   unwrapr   O  s]    
 c(..
C
2w#~#bc(c/!Bioo
2w&"gmmoJr   c                 r   )zUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   )r   r   r   
_splittyper   r   r   	splittyper   \  $    MM 8$4 c?r   c                 s    \         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   groupsrM   )rv   r   r   Zdata   &   r   r   r   d  sW     JJ		:	OOC E||~||~t##9r   c                 r   )zUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   )r   r   r   
_splithostr   r   r   	splithostr  q  r   r   c                 s   \         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  )rv   r   Z	host_portr   r  r   r  r  y  se     JJ0"))<	OOC E,,.	DGsN:D9r   c                 r   )zUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   )r   r   r   
_splituserhostr   r   	splituserr
    %    MM 8$4 dr   c                 sH    V P                  R 4      w  rp V'       d   W3# RV 3# )r[   Nr_   )r	  userr      &  r   r  r    s*    ,DD**td**r   c                 r   )zWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   )r   r   r   _splitpasswd)r  r   r   splitpasswdr    s%    MM 8$4 r   c                 F    V P                  R 4      w  rpY'       d   V3# R3# r\   NrL   )r  r   Zpasswdr  r   r  r    s*    ..-DE&,,t,,r   c                 r   )zUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   )r   r   r   
_splitportr  r   r   	splitportr    r  r   c                 s    \         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  Z	fullmatchr  )r	  r   rU   r  r   r  r    sS     JJ		:	%E\\^
::r   c                 sR    \         P                  ! R \        ^R7       \        W4      # )zVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   )r   r   r   _splitnport)r	  defportr   r   
splitnportr    s%    MM 8$4 t%%r   c                 s    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_   rQ   rR   rS   )r	  r  r   rU   Znportr   r   r  r    sm    
 ,D = 
<<>>dllnnIE { E{=r   c                 r   )zVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   )r   r   r   _splitqueryr   r   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  )rv   r   r   r   r  r   r  r    s*    ,D{9r   c                 r   )zTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   )r   r   r   	_splittagr   r   r   splittagr    s$    MM 8$4 S>r   c                 r  )rs   Nr  )rv   r   r   Ztagr  r   r  r    s*    ~~c*Dy9r   c                 r   )zUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   )r   r   r   
_splitattrr   r   r   	splitattrr     r   r   c                 sH    V P                  R 4      pV^ ,          VR,          3# )r   r%   )r   )rv   ZwordsrV   r   r  r    s$     IIcNE8U2Yr   c                 r   )zWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() insteadr   )r   r   r   _splitvalue)attrr   r   
splitvaluer#    s%    MM 9$4 tr   c                 r  )r   Nr  )r"  r   r   r  r   r!  r!    s*    ,D5%++d++r   )r   r   r   r   r
   r|   r   r   r   r   r   r   r   r   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/  r0  r1  Zrsyncr3  r4  r2  ZnfsZgitzgit+sshr5  r6  zitms-services)r   r$  hdlr.  r%  r(  r+  r,  r/  r0  r1  sipsipsr-  r2  Ztel)
r&  r9  Zmailtonewsr7  r)  r(  r8  r:  r;  )r   r%  r)  r(  r+  r,  r-  r&  r/  r0  r1  r:  r;  )r   r$  r9  r%  r&  r<  r'  r)  r+  r,  r8  r*  r.  )Z	ZZ
)r   T)NT)FrB   )T)r   r   )FFr   r   Nr   )r   NN)r   NN)r   )r   )qZcollectionsr   Z	functoolsr   r   rX   r   r   Z__all__r   r   r   Znon_hierarchicalZ
uses_queryZuses_fragmentr   r   r   r   Z_implicit_encodingZ_implicit_errorsr   r   r$   r*   Zobjectr+   r?   rA   rY   rl   rn   ro   rp   Z__doc__rv   ru   r   r^   r   r   r   Z
ResultBaser   r   r   r   r   r   r   r   r   r   r   r   r   r   Z	lru_cacher
   r   r   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Z	frozensetr   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   <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   