+
    -i                         ^ RI H t Ht ^ RIHt ^RIHt R R ltR R ltR R	 ltR
 R lt	R R lt
R R ltR R ltR# )    )datetimetimezone)Optional)settingsc                \    V ^8  d   QhR\         \        ,          R\         \        ,          /#    dtreturn)r   r   )formats   "server/app/utils.py__annotate__r      s$      hx  Xh%7     c                 n    V f   R # V P                   f!   V P                  \        P                  R7      # V # )N)tzinfo)r   replacer   utc)r
   s   &r   awarer      s.    	z	yyzzz..Ir   c                F    V ^8  d   QhR\         \        ,          R\        /# r   r   r   str)r   s   "r   r   r      s     ) )hx( )S )r   c                 l   \        V 4      p V f   R# \        P                  ! \        P                  4      V ,
          P                  4       pV^ 8  d   R# V^<8  d   \        V4       R2# VR8  d   \        V^<,          4       R2# VR8  d   \        VR,          4       R2# \        VR,          4       R2# )	Nneverzin the futurezs ago  zm agoQ zh agozd ago)r   r   nowr   r   total_secondsint)r
   deltas   & r   relative_timer       s    	rB	z\\(,,'",;;=Eqyrze*U##t|erk"#5))u}etm$%U++%5.!"%((r   c                F    V ^8  d   QhR\         \        ,          R\        /# r	   	last_seenr   )r   r   bool)r   s   "r   r   r      s     3 3(+ 3 3r   c                     \        V 4      p V f   R# \        P                  ! \        P                  4      V ,
          P                  4       pV\        P                  8*  # )NFr   r   r   r   r   r   r   offline_after_secondsr#   r   s   & r   	is_onliner)      sF    i I\\(,,')3BBDEH2222r   c                F    V ^8  d   QhR\         \        ,          R\        /# r"   r   )r   s   "r   r   r   '   s     	 	HX. 	3 	r   c                    \        V 4      p V f   R# \        P                  ! \        P                  4      V ,
          P                  4       pV\        P                  8:  d   R# V\        P                  ^,          8:  d   R# R# )Nofflineonlinestaler&   r(   s   & r   status_labelr/   '   s_    i I\\(,,')3BBDE.....22r   c                0    V ^8  d   QhR\         R\        /# )r	   secondsr   r   r   )r   s   "r   r   r   3   s     
 
3 
3 
r   c                     V ^ 8:  d   R# \        V R4      w  r\        VR4      w  r2\        V^<4      w  rEV'       d	   V RV R2# V'       d	   V RV R2# V R2# )r   u   —r   r   zd hzh m)divmod)r1   daysremhoursminutes_s   &     r   format_uptimer<   3   sm    !|w&IDT"JERJGr%""7)1%%Ya=r   c                0    V ^8  d   QhR\         R\        /# )r	   gbr   r2   )r   s   "r   r   r   @   s        r   c                 4    V R 8  d   V R ,          R R2# V  R2# )i   z.1fz TBz GB )r>   s   &r   format_bytes_gbrA   @   s(    	Tzt)C$$T:r   c                0    V ^8  d   QhR\         R\         /# )r	   textr   )r   )r   s   "r   r   r   F   s     G G# G# Gr   c                     V '       g   R # \        V 4      \        P                  8:  d   V # V R\        P                   R,           # ) Nu   
…[truncated])lenr   max_task_output_chars)rC   s   &r   truncate_outputrH   F   s9    
4yH2220(0014FFFr   N)r   r   typingr   configr   r   r    r)   r/   r<   rA   rH   r@   r   r   <module>rK      s2    '  ) 3	
Gr   