Qf gdZddlZddlmZddlmZeZejZejZ dZ dZ d dZ d dZ d d Zy) )choice randbelowrandbits SystemRandom token_bytes token_hex token_urlsafecompare_digestN)r )rcN |dkr tdtj|S)Nr zUpper bound must be positive.) ValueError_sysrand _randbelow)exclusive_upper_bounds ./opt/alt/python312/lib64/python3.12/secrets.pyrrs+2!899   4 55 c> |t}tj|SN)DEFAULT_ENTROPYr randbytesnbytess rrr!s$~    f %%rc6 t|jSr)rhexrs rrr/s  v  " " $$rc t|}tj|jdj dS)N=ascii)rbase64urlsafe_b64encoderstripdecode)rtoks rrr<s: f C  # #C ( / / 5 < r(sS   >    6  & % Fr