
    Zc	
              
           U d dl mZmZmZ d dlmZmZmZ d dlm	Z
 eez   ZdZdZi Zeeee         f         ed<   dedee         fd	Zefd
ddedededefdZdS )    )ascii_lettersdigits	hexdigits)DictListSequence)quotez;/?:@&=+$,-_.!~*'()#z	-_.!~*'()encode_cacheexcludereturnc                    | t           v rt           |          S g }|t           | <   t          d          D ]z}t          |          }|t          v r|                    |           0|                    ddt          |          dd                                          z   dd          z              {t          t          |                     D ] }| |         |t          | |                   <   !|S )N   %0   )	r
   rangechrASCII_LETTERS_AND_DIGITSappendhexupperlenord)r   cacheichs       -lib/python3.11/site-packages/mdurl/_encode.pyget_encode_cacher      s    , %G$$E!L3ZZ @ @VV)) 	@LLLLc!ffQRRj&6&6&8&8 8"##>>????3w<<   , ,!(c'!*ooL    T)keep_escapedstringr!   c                   d}t          |          }t          |           }d}||k     r#t          | |                   }|rQ|dk    rK|dz   |k     rBt          d | |dz   |dz            D                       r|| ||dz            z  }|dz  }|dz  }o|dk     r|||         z  }|dz  }|d	k    rz|d
k    rt|d	k    rb|dk    r\|dz   |k     rSt          | |dz                      }|dk    r5|d
k    r/|t	          | |         | |dz            z             z  }|dz  }|dz  }|dz  }|dz  }|t	          | |                   z  }|dz  }||k     #|S )N r   %   r   c              3   (   K   | ]}|t           v V  d S )N)r   ).0cs     r   	<genexpr>zencode.<locals>.<genexpr>9   s&      AAa1	>AAAAAAr          r   i   i  i  i   z	%EF%BF%BD)r   r   r   allencode_uri_component)	r"   r   r!   resultr   lr   code	next_codes	            r   encoder2   +   s    FW%%EFA	A
a% 6!9~~  	DDL 	QUQY 	AA6!a%!a%-+@AAAAA &QU++QQ#: 	eDk!FFA6> 
	dfn 
	v~ $&. QUQY q1u..	& 9+> 26!9va!e}3LMMMFFAFAk!FFA&vay111	Q; a% > Mr    N)r"   r   r   r   typingr   r   r   urllib.parser	   r-   r   ENCODE_DEFAULT_CHARSENCODE_COMPONENT_CHARSr
   str__annotations__r   boolr2    r    r   <module>r;      s   3 3 3 3 3 3 3 3 3 3 3 ' ' ' ' ' ' ' ' ' ' 6 6 6 6 6 6(61 - $ %'d3S	>" ' ' '
c hsm    : !5(NR( ( (((GK(( ( ( ( ( (r    