3 \��@s�ddddddddgZdd lZdd lZdd lZdd lmZdd lmZe�Zej Z ej Z d d�Z d Z ddd�Zddd�Zddd�Zd S)�choice� randbelow�randbits� SystemRandom� token_bytes� token_hex� token_urlsafe�compare_digest�N)r)rcCs|dkrtd��tj|�S)Nr zUpper bound must be positive.)� ValueError�_sysrandZ _randbelow)Zexclusive_upper_bound�r �/usr/lib64/python3.6/secrets.pyrs� cCs|dkr t}tj|�S)N)�DEFAULT_ENTROPY�os�urandom)�nbytesr r r r#s cCstjt|��jd�S)N�ascii)�binasciiZhexlifyr�decode)rr r r r1s cCst|�}tj|�jd�jd�S)N�=r)r�base64Zurlsafe_b64encode�rstripr)r�tokr r r r>s )N)N)N)�__all__rrrZhmacrZrandomrr Z getrandbitsrrrrrrrr r r r � s