o
    ~f                     @   s   d dl Z d dlZd dlmZmZmZ d dlmZmZ e	dZ
dd edD ZdZd	Zed
 Zee Zee d Zee ZedZedZe dZG dd dZG dd dZdS )    N)ascii_lettersascii_lowercasedigits)Optionalcastasciic                 C   s   h | ]}d |d dqS )%02Xr   )encode).0i r   R/var/www/html/stripe-gateway/venv/lib/python3.10/site-packages/yarl/_quoting_py.py	<setcomp>   s    r      z:/?#[]@z!$'()*,+&=;z-._~s   [A-Z0-9][A-Z0-9]z[A-Fa-f0-9][A-Fa-f0-9]zutf-8c                   @   sP   e Zd Zddddddedededed	d
f
ddZdee d	ee fddZd
S )_Quoter FT)safe	protectedqsrequoter   r   r   r   returnNc                C   s   || _ || _|| _|| _d S )N)_safe
_protected_qs_requote)selfr   r   r   r   r   r   r   __init__   s   
z_Quoter.__init__valc                 C   sr  |d u rd S t |tstd|sdS tt|jddd}t }t }| j}|t7 }| js1|d7 }|| j	7 }|d}d}|t
|k r+|| }|d	7 }|r|tv rV|d
 }|| t
|dkr|d	d  }	t|	sz|d |  |d8 }q=ztt|d	d  ddd}
W n ty   |d |  |d8 }Y q=w |
| j	v r|| n|
|v r|t|
 n|| |  nt
|dkr|t
|kr|d |  |d	8 }q=|tdkr| jr|  || |t
|kr|d q=| jr|tdkr|td q=||v r|| q=|d|dd |t
|k sD|d}||kr7|S |S )NArgument should be strr   utf8ignore)errorsr   r   r             s   %25      baser    +r	   )
isinstancestr	TypeErrorr   r
   	bytearrayr   ALLOWEDr   r   lenBASCII_LOWERCASEappend_IS_HEXmatchextendclearchrintdecode
ValueErrorordr   )r   r   bvalretpctr   bsafeidxchbufunquotedret2r   r   r   __call__$   s   





"









;
z_Quoter.__call____name__
__module____qualname__r.   boolr   r   rG   r   r   r   r   r      s"    
r   c                   @   sD   e Zd Zddddededdfdd	Zd
ee dee fddZdS )	_Unquoterr   F)unsafer   rN   r   r   Nc                C   s$   || _ || _t | _tdd| _d S )NT)r   )_unsafer   r   _quoter
_qs_quoter)r   rN   r   r   r   r   r   w   s   z_Unquoter.__init__r   c                 C   s  |d u rd S t |tstd|sdS ttjt }g }d}|t|k r<|| }|d7 }|dkr|t|d kr|||d  }t	|rt
t|ddg}|d7 }z||}W n@ ty   |d	 t|jd	  }	|||	|d	   |  z||}W n ty   |||d	 |  Y Y qw Y nw |sq| jr|d
v r| |}
|
d u rtd||
 n|| jv r| |}
|
d u rtd||
 n|| q|jr|d t|jd	  }	|||	|d   |  |dkr| jr|| jv r|d n|d q|| jv r1|d tt| dd  }|D ]}|| q'q|| |t|k s%|jrO||t|j d	 d   d|}||kr[|S |S )Nr    r   r   r$   r   r'   r(   r)   r&   z+=&;zCannot quote Noner,   r+   )r-   r.   r/   r   codecsBufferedIncrementalDecoderutf8_decoderr2   _IS_HEX_STR	fullmatchbytesr:   r;   UnicodeDecodeErrorbufferr4   resetr   rQ   RuntimeErrorrO   rP   hexr=   upperjoin)r   r   decoderr?   rB   rC   r@   brE   	start_pctto_addhrF   r   r   r   rG   }   s   

	







8

z_Unquoter.__call__rH   r   r   r   r   rM   v   s    rM   )rR   restringr   r   r   typingr   r   r
   r3   rangeBPCT_ALLOWED
GEN_DELIMSSUB_DELIMS_WITHOUT_QS
SUB_DELIMSRESERVED
UNRESERVEDr1   compiler5   rU   getincrementaldecoderrT   r   rM   r   r   r   r   <module>   s"    



`