a
    0h                     @  s   d dl mZ d dlZd dlZd dlZd dlZddlmZ ddddd	d
ddZ	dd	dddZ
dd	dddZej ej ddZedZejZedejZdd	dddZd	ddddZdS )    )annotationsN   )BadDatautf-8strictzstr | bytesstrbytes)sencodingerrorsreturnc                 C  s   t | tr| ||} | S )N)
isinstancer   encode)r	   r
   r    r   C/var/www/auris/lib/python3.9/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  sh   t | ddd} | dt|  d  7 } zt| W S  ttfyb } ztd|W Y d}~n
d}~0 0 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], tuple[int]]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   )
__future__r   r   r   structtypingtexcr   r   r   r    ascii_lettersdigitsr   Z_base64_alphabetStructZ_int64_structpackr$   castunpackr)   r&   r+   r   r   r   r   <module>   s    	
