
    d?i                         S SK JrJr  S SKJrJr  S\S\4S jrS\S\4S jrS\	S\4S jr
S	\S\	4S
 jrS\	S\4S jrS\S\	4S jrg)    )urlsafe_b64decodeurlsafe_b64encode)datetimetimezonesreturnc                 ^    [        U 5      nUR                  SS5      nUR                  S5      $ )N   =    ascii)r   replacedecoder   s_bins     M/var/www/html/livechat/backend/venv/lib/python3.13/site-packages/jwt/utils.py	b64encoder      s+    a EMM$$E<<  r   c                 h    U R                  S5      nUSS[        U5      S-  -
  -  -  n[        U5      $ )Nr   r
      )encodelenr   r   s     r   	b64decoder      s7    HHWE	TQUa'((EU##r   valuec                 |    SnU S-	  nU(       a  US-  nUS-  nU(       a  M  U R                  USSS9n[        U5      $ )N      bigF)signed)to_bytesr   )r   lengthremuint_bins       r   uint_b64encoder"   %   sM    F
1*C
!	 # ~~feE~:HXr   uint_b64c                 X    [        U 5      nSnU H  nUS-  nU[        U5      -  nM     U$ )Nr   r   )r   int)r#   r!   r   bs       r   uint_b64decoder'   0   s8    "HE!Q  Lr   c                     [        U [        5      (       d  [        S5      e[        R                  " U [
        R                  5      $ )z9
:param value: seconds since the Epoch
:return: datetime
zan int is required)
isinstancer%   	TypeErrorr   fromtimestampr   utcr   s    r   get_time_from_intr.   :   s4    
 eS!!,--!!%66r   c                 t    [        U [        5      (       d  [        S5      e[        U R	                  5       5      $ )z
:param value: datetime with or without timezone, if don't contains timezone
              it will managed as it is UTC
:return: Seconds since the Epoch
za datetime is required)r)   r   r*   r%   	timestampr-   s    r   get_int_from_datetimer1   D   s/     eX&&011u !!r   N)base64r   r   r   r   bytesstrr   r   r%   r"   r'   r.   r1    r   r   <module>r6      s   ! !3 !$ $ $# # S S 7S 7X 7" "c "r   