o
    @g                     @   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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)Unioncastoverloadasciic                 C   s   h | ]}d |d dqS )%02Xr   )encode).0i r   W/var/www/html/development/chatbot/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                   @   s|   e Zd Zddddddedededed	d
f
ddZeded	efddZedddZdeed
f d	eed
f 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      d S r   r   r   r!   r   r   r   __call__$      z_Quoter.__call__c                 C   r"   r   r   r#   r   r   r   r$   &   r%   c                 C   sl  |d u rd S t |tstd|sdS |jddd}t }t }| j}|t7 }| js.|d7 }|| j7 }|d}d}|t	|k r(|| }|d	7 }|r|t
v rS|d
 }|| t	|dkr|d	d  }	t|	sw|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 sA|d}||kr4|S |S )NArgument should be strr   utf8ignore)errorsr   r   r             s   %25      baser	    +r
   )
isinstancestr	TypeErrorr   	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   r$   (   s   





"









:
r!   Nr   N	__name__
__module____qualname__r4   boolr    r   r$   r   r   r   r   r   r      s*    
&r   c                   @   s|   e Zd Zddddddededededd	f
d
dZededefddZedddZdeed	f deed	f fddZd	S )	_Unquoterr   F)r(   unsafer   plusr(   rT   r   rU   r   Nc                C   s0   || _ || _|| _|| _t | _tdd| _d S )NT)r   )_ignore_unsafer   _plusr   _quoter
_qs_quoter)r   r(   rT   r   rU   r   r   r   r    z   s   z_Unquoter.__init__r!   c                 C   r"   r   r   r#   r   r   r   r$      r%   z_Unquoter.__call__c                 C   r"   r   r   r#   r   r   r   r$      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 rE|| }|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 s|| jv r| |}
|
d u rtd||
 n|| q|jr|d t|jd	  }	|||	|d   |  |dkr| js| jr|| jv r|d n|d q|| jv r:|d tt| dd  }|D ]}|| q0q|| |t|k s%|jrX||t|j d	 d   d|}||krd|S |S )Nr&   r   r   r*   r	   r-   r.   r/   r,   z+=&;zCannot quote Noner2   r1   )r3   r4   r5   r   codecsBufferedIncrementalDecoderutf8_decoderr8   _IS_HEX_STR	fullmatchbytesr@   rA   UnicodeDecodeErrorbufferr:   resetr   rZ   RuntimeErrorrW   rV   rY   rX   hexrC   upperjoin)r   r!   decoderrE   rH   rI   rF   brK   	start_pctto_addhrL   r   r   r   r$      s   

	






8

rM   rN   r   r   r   r   rS   y   s*    
&rS   )r[   restringr   r   r   typingr   r   r   r   r9   rangeBPCT_ALLOWED
GEN_DELIMSSUB_DELIMS_WITHOUT_QS
SUB_DELIMSRESERVED
UNRESERVEDr7   compiler;   r^   getincrementaldecoderr]   r   rS   r   r   r   r   <module>   s"    



c