U
    ËZj‹  ã                   @   sÊ   d dl Z d dlZd dlZd dlZddlmZ ejee	f Z
de
eee	dœdd„Ze
e	d	œd
d„Ze
e	d	œdd„Zej› ej› d� d¡Ze d¡ZejZe dej¡Zee	dœdd„Ze	edœdd„ZdS )é    Né   )ÚBadDataúutf-8Ústrict)ÚsÚencodingÚerrorsÚreturnc                 C   s   t | tƒr|  ||¡} | S )N)Ú
isinstanceÚstrÚencode)r   r   r   © r   úX/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/itsdangerous/encoding.pyÚ
want_bytes   s    
r   )Ústringr	   c                 C   s   t | ƒ} t | ¡ d¡S )z^Base64 encode a string of bytes or text. The resulting bytes are
    safe to use in URLs.
    ó   =)r   Úbase64Úurlsafe_b64encodeÚrstrip)r   r   r   r   Úbase64_encode   s    r   c              
   C   sf   t | ddd�} | dt| ƒ d  7 } zt | ¡W S  ttfk
r` } ztdƒ|‚W 5 d}~X Y nX dS )zOBase64 decode a URL-safe string of bytes or text. The result is
    bytes.
    ÚasciiÚignore)r   r   r   é   zInvalid base64-encoded dataN)r   Úlenr   Úurlsafe_b64decodeÚ	TypeErrorÚ
ValueErrorr   )r   Úer   r   r   Úbase64_decode   s    r   z-_=r   z>Qz#_t.Callable[[bytes], _t.Tuple[int]])Únumr	   c                 C   s   t | ƒ d¡S )Nó    )Ú_int_to_bytesÚlstrip)r   r   r   r   Úint_to_bytes1   s    r#   )Úbytestrr	   c                 C   s   t |  dd¡ƒd S )Né   r    r   )Ú_bytes_to_intÚrjust)r$   r   r   r   Úbytes_to_int5   s    r(   )r   r   )r   r   ÚstructÚtypingZ_tÚexcr   ÚUnionr   ÚbytesZ_t_str_bytesr   r   r   Úascii_lettersÚdigitsr   Z_base64_alphabetÚStructZ_int64_structÚpackr!   ÚcastÚunpackr&   Úintr#   r(   r   r   r   r   Ú<module>   s*      ÿ  þ	
