
    sh                        S r SSKrSSKrSSKrSSKJr  SSKJrJ	r	  SSK
Jr  SSKJrJrJrJr  SSKJrJrJr  SSKJr  SS	KJr  SS
KJr  \R6                  R9                  S5      =rr\" \\R>                  5      r\R@                  4S-  r!S r"S r#S r$S r%S r&SGS jr'SGS jr(S r)S r*\" \/ SQ5      r+\" \/ SQ5      r,\" \/ SQ5      r-\" \/ SQ5      r.\" \R^                  5      \" \R@                  5      S 5       5       r0\" \Rb                  \R@                  5      S 5       r2\" \Rf                  \R@                  5      S 5       r4\" \5\R@                  5      S 5       r6S r7\" \Rp                  /\!Q76 \" \Rr                  /\!Q76 S 5       5       r:\" \Rv                  /\!Q76 \" \Rx                  /\!Q76 S  5       5       r=S! r>\" \R~                  \R@                  \R                  5      \" \R                  \R@                  \R                  5      \" \R~                  \R@                  \R                  5      \" \R                  \R@                  \R                  5      S" 5       5       5       5       rC\" \R~                  \R                  \R@                  5      \" \R                  \R                  \R@                  5      \" \R~                  \R                  \R@                  5      \" \R                  \R                  \R@                  5      S# 5       5       5       5       rD\" \R                  \R@                  \R                  5      \" \R                  \R@                  \R                  5      \" \R                  \R@                  \R                  5      \" \R                  \R@                  \R                  5      \" \R                  \R@                  \R                  5      \" \R                  \R@                  \R                  5      \" \R                  \R@                  \R                  5      \" \R                  \R@                  \R                  5      S$ 5       5       5       5       5       5       5       5       rI\" \R                  /\!Q76 \" \R                  /\!Q76 S% 5       5       rJ\" \R                  /\!Q76 S& 5       rKS' rLS( rMS) rN\M" S*\	R                  5      rP\M" S+\	R                  5      rR\N" S,5      rS\N" S-5      rT\N" S.5      rU\N" S/5      rV\R                  \P4\R                  \R4\R                  \S4\R                  \T4\R                  \U4\R                  \V44 H  u  r]r^\" \]/\!Q76 " \^5        M     S0 r_S1 r`S2 raS3 rbS4 rc\c" S55      rd\c" S65      re\" \Rp                  \R^                  \R@                  5      \" \Rr                  \R^                  \R@                  5      S7 5       5       rf\" \Rp                  \R@                  \R^                  5      \" \Rr                  \R@                  \R^                  5      S8 5       5       rg\" \Rv                  \R^                  \R@                  5      \" \Rx                  \R^                  \R@                  5      S9 5       5       rh\" \Rv                  \R^                  \R^                  5      S: 5       riS; rj\j" S*5      rk\j" S+5      rl\j" S,5      rm\j" S-5      rn\j" S.5      ro\j" S/5      rp\R                  \k4\R                  \l4\R                  \m4\R                  \n4\R                  \o4\R                  \p44 H#  u  rqr^\" \q/\R^                  /S-  Q76 " \^5        M%     S< rr\r" S=5      rs\r" S>5      rtS? ru\u" S=5      rv\u" S>5      rwS@ rx\x" S=5      ry\x" S>5      rzSA r{\{" S=5      r|\{" S>5      r}SB r~\" \R                  \R^                  5      \" \R                  \R@                  5      SC 5       5       r\" \R^                  \R                  5      \" \R@                  \R                  5      SD 5       5       r\" \R@                  SE5      \" \R^                  SE5      SF 5       5       r\" \GR                  \R^                  \R^                  5      " \v5        \" \GR                  \R@                  \R@                  5      " \v5        \" \GR                  \R^                  \R^                  5      " \s5        \" \GR                  \R@                  \R@                  5      " \s5        g)Hz4
Implementation of operations on numpy timedelta64.
    N)Constant)typescgutils)create_constant_array)lower_builtinlower_constantimpl_ret_untracked
lower_cast)npdatetime_helpersnumpy_supportnpyfuncs)overload_method)	IS_32BITS)LoweringError@      c                 B    U R                  U[        [        U5      5      $ )z*
Multiply *val* by the constant *factor*.
)mulr   TIMEDELTA64buildervalfactors      g/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/np/npdatetime.pyscale_by_constantr      s     ;;sH[&9::    c                 B    U R                  U[        [        U5      5      $ )z(
Divide *val* by the constant *factor*.
)sdivr   r   r   s      r   unscale_by_constantr   "   s     <<Xk6:;;r   c                 B    U R                  U[        [        U5      5      $ )z 
Add constant *const* to *val*.
)addr   r   )r   r   consts      r   add_constantr#   )   s     ;;sH[%899r   c                     [         R                  " UR                  UR                  5      nUc'  SUR                   SUR                   3n[        U5      e[	        XU5      $ )z_
Scale the timedelta64 *val* from *srcty* to *destty*
(both numba.types.NPTimedelta instances)
z cannot convert timedelta64 from  to )r   get_timedelta_conversion_factorunitr   r   )contextr   r   srctydesttyr   msgs          r   scale_timedeltar,   0   sX    
  ??

FKK!F~0DNC  W622r   c                    [         R                  " UR                  UR                  5      nUb  [        XU5      U4$ [         R                  " UR                  UR                  5      nUb  U[        XU5      4$ [	        SU< SU< 35      e)zY
Scale either *left* or *right* to the other's unit, in order to have
homogeneous units.
zcannot normalize z and )r   r&   r'   r   RuntimeError)r(   r   leftrightlefttyrighttyr   s          r   normalize_timedeltasr3   >   s    
  ??W\\#F 7>>??fkk#F&wv>>>
vwG
HHr   c                 f    [         R                  " U [        US9nU R                  [        U5        U$ )zE
Allocate a NaT-initialized datetime64 (or timedelta64) result slot.
name)r   alloca_oncer   storeNATr   r6   rets      r   alloc_timedelta_resultr<   O   s+     

g{
>CMM#sJr   c                 l    [         R                  " U [        R                  R	                  S5      US9nU$ )z0
Allocate an uninitialized boolean result slot.
   r5   )r   r7   llvmliteirIntTyper:   s      r   alloc_boolean_resultrB   X   s,     

gx{{':':1'=D
ICJr   c                 0    U R                  SU[        5      $ )z7
Return a predicate which is true if *val* is not NaT.
!=)icmp_unsignedr9   )r   r   s     r   
is_not_natrF   `   s       sC00r   c                     [        U5      S:  d   e[        XS   5      nUSS  H  nU R                  U[        X5      5      nM      U$ )z@
Return a predicate which is true if all of *vals* are not NaT.
r>   r   N)lenrF   and_)r   valspredr   s       r   are_not_natrL   g   sL     t9>>gAw'DABx||D*W":; Kr   )      rM      rM   rO   rM   rM   rO   rM   rO   rM   )rM      rM   rO   rM   rO   rM   rM   rO   rM   rO   rM   )r   rM   ;   Z   x               i  i0  iN  )r   rM   <   [   y               i  i1  iO  c                 R    [        UR                  [        R                  5      5      $ N)
DATETIME64astypenpint64)r(   r   typyvals       r   datetime_constantrg      s     ell288,--r   c                 :    US   n[        XUR                  U5      $ Nr   )r	   return_typer(   r   sigargsress        r   timedelta_pos_implro      s    
q'CgEEr   c                 X    UR                  US   5      n[        XUR                  U5      $ ri   )negr	   rj   rk   s        r   timedelta_neg_implrr      s'    
++d1g
CgEEr   c                    Uu  n[        U5      nUR                  [        R                  " X5      5       u  pgU   UR	                  UR                  U5      U5        S S S 5        U   UR	                  XE5        S S S 5        S S S 5        UR                  U5      n[        XUR                  U5      $ ! , (       d  f       NZ= f! , (       d  f       NO= f! , (       d  f       NX= fr`   )	r<   if_elser   is_scalar_negr8   rq   loadr	   rj   )	r(   r   rl   rm   r   r;   then	otherwisern   s	            r   timedelta_abs_implry      s    DC
 
)C	..w<	=AR$MM'++c*C0 MM##  
>
 ,,s
CgEE TY 
>	=s:   C"B0
C&C8C0
B>	:C
C	C
C c           
      $   Uu  n[        U5      n[        [        S5      nUR                  UR	                  SXF5      5       u  pxU   UR                  [        [        S5      U5        SSS5        U   UR                  UR                  SXF5      5       u  pU	   UR                  [        [        S5      U5        SSS5        U
   UR                  [        [        S5      U5        SSS5        SSS5        SSS5        SSS5        UR                  U5      n[        XUR                  U5      $ ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Np= f! , (       d  f       Ny= f! , (       d  f       N= f! , (       d  f       N= f)z
np.sign(timedelta64)
r   >r>   N==)
r<   r   r   rt   icmp_signedr8   rE   rv   r	   rj   )r(   r   rl   rm   r   r;   zerogt_zerole_zeroeq_zerolt_zerorn   s               r   timedelta_sign_implr      s!    DC
 
)CK#D	,,S#< 
0wMM(;2C8 !6!6tS!G #&8wMM(;":C@ MM(;";SA 	# 	
 ,,s
CgEE W
 WW	# # W	
 
s   F!D,'
F1"E0E!D=	9
E!E	$E,E04F,
D:	6F=
EE
EE
E-)E00
E>	:F
Fc                    Uu  pEUR                   u  pg[        U5      n[        R                  " U[	        XU/5      5         [        XXFUR                  5      n[        XXWUR                  5      nUR                  UR                  XE5      U5        S S S 5        UR                  U5      n	[        XUR                  U	5      $ ! , (       d  f       N6= fr`   )rm   r<   r   	if_likelyrL   r,   rj   r8   r!   rv   r	   
r(   r   rl   rm   vavbtatbr;   rn   s
             r   timedelta_add_implr           HRxxHR
 
)C			7Kb$B	CWrsGWrsGgkk")3/ 
D ,,s
CgEE 
D	C    AC  
Cc                    Uu  pEUR                   u  pg[        U5      n[        R                  " U[	        XU/5      5         [        XXFUR                  5      n[        XXWUR                  5      nUR                  UR                  XE5      U5        S S S 5        UR                  U5      n	[        XUR                  U	5      $ ! , (       d  f       N6= fr`   )rm   r<   r   r   rL   r,   rj   r8   subrv   r	   r   s
             r   timedelta_sub_implr      r   r   c                    [        U5      n[        R                  " U[        X5      5         [	        U[
        R                  5      (       a9  UR                  X$R                  5      nUR                  X5      n[        XU5      nOUR                  X$5      n[        XXU5      nUR                  X5        S S S 5        UR                  U5      $ ! , (       d  f       N= fr`   )r<   r   r   rF   
isinstancer   Floatsitofptypefmul_cast_to_timedeltar   r,   r8   rv   )	r(   r   td_argtd_type
number_argnumber_typerj   r;   r   s	            r   _timedelta_times_numberr      s    
 
)C			7Jw$?	@k5;;//..9C,,s/C$Ws;C++f1C gkJc 
A << 
A	@s   BC
Cc           	          [        XUS   UR                  S   US   UR                  S   UR                  5      n[        XUR                  U5      $ )Nr   r>   r   rm   rj   r	   rk   s        r   timedelta_times_numberr      M    
 "'"&q'388A;Q!"%//3C gEEr   c           	          [        XUS   UR                  S   US   UR                  S   UR                  5      n[        XUR                  U5      $ Nr>   r   r   rk   s        r   number_times_timedeltar      r   r   c           	         Uu  pEUR                   S   n[        U5      nUR                  [        X5      UR	                  [
        R                  " X5      5      5      n[
        R                  " X5         [        U[        R                  5      (       a9  UR                  XER                  5      n	UR                  X5      n	[        XU	5      n	OUR                  XE5      n	[!        XU	UR                   S   UR"                  5      n	UR%                  X5        S S S 5        UR'                  U5      n
[)        XUR"                  U
5      $ ! , (       d  f       N6= fr   )rm   r<   rI   rF   not_r   is_scalar_zero_or_nanr   r   r   r   r   r   fdivr   r   r,   rj   r8   rv   r	   )r(   r   rl   rm   r   r   r   r;   okr   rn   s              r   timedelta_over_numberr      s    F((1+K
 
)C	j1ll7#@#@#UV
XB			7	'k5;;//..9C,,s/C$Ws;C,,v2C g!hhqk3??<c 
( ,,s
CgEE 
(	's   3B E
Ec           	      >   Uu  pEUR                   u  pg[        XU/5      nU R                  UR                  5      n	[        R
                  " XSS9n
UR                  [        U	[        S5      5      U
5        [        R                  " X5         [        XXEXg5      u  pEUR                  XI5      nUR                  XY5      nUR                  UR                  XE5      U
5        S S S 5        UR                  U
5      n[        XUR                  U5      $ ! , (       d  f       N6= f)Nr;   r5   nan)rm   rL   get_value_typerj   r   r7   r8   r   floatr   r3   r   r   rv   r	   )r(   r   rl   rm   r   r   r   r   not_nanll_ret_typer;   rn   s               r   timedelta_over_timedeltar     s     HRxxHR'8,G((9K


g
?CMM(;e5s;			7	,%gG^^B,^^B,gll2*C0	 
-
 ,,s
CgEE 
-	,s   AD
Dc                 z   Uu  pEUR                   u  pgU R                  UR                  5      n[        XU/5      n	[        R
                  " XSS9n
[        US5      n[        US5      nUR                  X5        [        R                  " X5         [        XXEXg5      u  pEUR                  UR                  SX[5      5      n[        R                  " X5         UR                  SXK5      nUR                  XR                  SX[5      5      nUR                  U5       u  nnU   UR                  U5       u  nnU   UR                  XL5      nUR                  UU5      nUR                  UU
5        S S S 5        U   UR!                  XL5      nUR                  UU5      nUR                  UU
5        S S S 5        S S S 5        S S S 5        U   UR                  XE5      nUR                  UU
5        S S S 5        S S S 5        S S S 5        S S S 5        UR#                  U
5      n[%        XUR                  U5      $ ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)Nr;   r5   r   r>   r|   <)rm   r   rj   rL   r   r7   r   r8   r   r3   r   r~   or_rt   r   r   r!   rv   r	   )r(   r   rl   rm   r   r   r   r   r   r   r;   r   onedenom_okvanegrq   rw   rx   negthennegotherwisetopdivrn   s                          r   timedelta_floor_div_timedeltar   +  s   HRxxHR((9K'8,G


g
?CK#D
;
"CMM$			7	,%gG<< 3 3D" CDw1''R6E++e%8%8b%GHC%):$	 /3JG\$")++b"6C"),,sB"7C#MM#s3 % *")++b"6C"),,sB"7C#MM#s3 * 0  !,,r.CMM#s+  &	 2	 
-, ,,s
CgEE %W *\ 0/ T Y &%	 21	 
-	,s   AJ,AJJ
!I(	3I96H5/
I96I/I7I(	?
J
	$I9	-J
5J=J,5
I?I
II
I%!I(	(
I62J
9
JJ


JJ
J)	%J,,
J:c           
      <   Uu  pEUR                   u  pg[        XU/5      nU R                  UR                  5      n	[	        U5      n
UR                  [        U
5        [        U	S5      n[        R                  " X5         [        XXEXg5      u  pEUR                  UR                  SX[5      5      n[        R                  " X5         UR                  SXK5      nUR                  SX[5      nUR                  XE5      nUR                  UR                  X5      UR                  SX5      5      nUR!                  U5       u  nnU   UR                  X5        S S S 5        U   UR                  UR#                  X5      U
5        S S S 5        S S S 5        S S S 5        S S S 5        UR%                  U
5      n['        XUR                  U5      $ ! , (       d  f       Nz= f! , (       d  f       N_= f! , (       d  f       Nh= f! , (       d  f       Nq= f! , (       d  f       Nz= f)Nr   r|   r{   )rm   rL   r   rj   r<   r8   r9   r   r   r   r3   r   r~   sremr   rI   rt   r!   rv   r	   )r(   r   rl   rm   r   r   r   r   r   r   r;   r   r   vaposvbposremcondrw   rx   rn   s                       r   timedelta_mod_timedeltar   N  s    HRxxHR'8,G((9K
 
)CMM#sK#D			7	,%gG<< 3 3D" CDw1''R6E''R6E,,r&C;;w||E9&224CED&*;4MM#+ MM'++c"6<  ' 2	 
-" ,,s
CgEE TY '& 21	 
-	,sn   >AHA8G<=G+G		
G+"G	G+	G<H	
GG+
G($G++
G95G<<
H
	H
Hc                    ^ ^ UU 4S jnU$ )Nc           
        > Uu  pEUR                   u  pg[        U5      nUR                  [        XU/5      5       u  pU	    [	        XXEXg5      u  pUR                  UR                  TX5      U5        S S S 5        U
   TS:X  a!  UR                  [        R                  U5        O UR                  [        R                  U5        S S S 5        S S S 5        UR                  U5      n[        XUR                  U5      $ ! [         a    UR                  TU5         Nf = f! , (       d  f       N= f! , (       d  f       Nq= f! , (       d  f       Nz= fNrD   )rm   rB   rt   rL   r3   r8   rE   r.   r   true_bit	false_bitrv   r	   rj   )r(   r   rl   rm   r   r   r   r   r;   rw   rx   norm_anorm_brn   default_valuell_ops                 r   impl/_create_timedelta_comparison_impl.<locals>.implt  s   88"7+__[r(;<@QU%9""&:NF MM'"7"7v"NPST   D=MM'"2"2C8MM'"3"3S9  =" ll3!'COOSII $ 6MM-56	   =<s`   E DC="D3
E=AD0E=DDDD
D-	)E0
D>	:E
E )r   r   r   s   `` r   !_create_timedelta_comparison_implr   s  s    J0 Kr   c                    ^  U 4S jnU$ )Nc           
        > Uu  pEUR                   u  pg[        U5      nUR                  [        XU/5      5       u  pU	   [	        XXEXg5      u  pUR                  UR                  TX5      U5        S S S 5        U
   UR                  [        R                  U5        S S S 5        S S S 5        UR                  U5      n[        XUR                  U5      $ ! , (       d  f       Ni= f! , (       d  f       NO= f! , (       d  f       NX= fr`   )rm   rB   rt   rL   r3   r8   r~   r   r   rv   r	   rj   )r(   r   rl   rm   r   r   r   r   r;   rw   rx   r   r   rn   r   s                 r   r   -_create_timedelta_ordering_impl.<locals>.impl  s    88"7+__[r(;<@Q!5bb"6g11%H#N  g//5  = ll3!'COOSII   =<s;   C7 2C2
C7<!C&C7
C#	C7&
C4	0C77
Dr   r   r   s   ` r   _create_timedelta_ordering_implr     s    J Kr   r|   rD   r   <=r{   >=c           
         U R                  U[        [        S5      5      n[        R                  " X R                  U[        [        S5      5      5      n[        R                  " X R                  U[        [        S5      5      5      n[        R                  " X R                  U[        [        S5      5      5      nU R                  UU R                  XE5      5      $ )zS
Return a predicate indicating whether *year_val* (offset by 1970) is a
leap year.
i     d     )	r!   r   ra   r   is_nullrI   is_not_nullr   r   )r   year_valactual_yearmultiple_of_4not_multiple_of_100multiple_of_400s         r   is_leap_yearr     s    
 ++hT(BCKOOk8J+BCEM!--k8J+DEGook8J+DEGO<<$7IK Kr   c           
      p   [         R                  " U [        5      n[        XS5      nU R	                  [         R
                  " X5      5       u  pEU   [        XS5      nU R                  U[        XS5      5      n[        XS5      nU R                  U[        XS5      5      n[        XS5      n	U R                  U[        X	S5      5      nU R                  Xr5        SSS5        U   [        XS	5      n
U R                  U[        X
S5      5      n[        X
S
5      nU R                  U[        XS5      5      nU R                  U[        XS5      5      nU R                  X5        SSS5        SSS5        U R                  U5      $ ! , (       d  f       N= f! , (       d  f       N8= f! , (       d  f       NA= f)z[
Given a year *year_val* (offset to 1970), return the number of days
since the 1970 epoch.
im  r>      D   r   i,  r   Ni)r   r7   r   r   rt   
is_neg_intr#   r!   r   r   r8   rv   )r   r   r;   daysif_negif_pos	from_1968p_days	from_1900	from_1600	from_1972n_days	from_2000s                r   year_to_daysr     s    

g{
3CW4D	++G>	? %W:I[[!4W!KMF %W<I[[!4W!MOF %W=I[[!4W!MOFMM&&% & 
 %W;I[[!4W!KMF %W=I[[!4W!MOF [[!4W!MOFMM&&% + 
@P <<M V& V+ 
@	?s>   F'B
F
F'&A>F$F'
F	F'
F$	 F''
F5c                    [         R                  U   n[         R                  U   nUS:  d  US:  a  X4$ US:X  a  Un[        X5      nGO@[        R                  " U S[
        5      n[        R                  " U S[        5      n	[        R                  " U [        5      n
[        R                  " XS5      u  pU R                  [        X5      5       u  pU   U R                  [        R                  " XSUSS95      nU R                  X5        S S S 5        U   U R                  [        R                  " X	SUSS95      nU R                  X5        S S S 5        S S S 5        [        X5      nU R                  XpR                  U
5      5      nUS:X  a  [        R                  " XS5      u  nnUS	4$ US
4$ ! , (       d  f       N= f! , (       d  f       Nz= f! , (       d  f       N= f)Nr   r   leap_year_months_accnormal_year_months_acc   T)inbounds   WD)r   DATETIME_UNITSr   r   global_constantr   r   r7   r   divmod_by_constantrt   r   rv   gepr8   r!   )r   dt_valsrc_unit	dest_unitdest_unit_codesrc_unit_coder   days_val
leap_arraynormal_arrayr   yearmonthrw   rx   addendweeks_s                     r   reduce_datetime_for_unitr    s   '66yAN&55h?M]a/2 ,,W6L-AC
..w8P/EG ""7K8 00"E __\'89=Nd gkk'23UT'K Lf+   gkk'23UT'K Lf+  :  .;;xd);<--gCqcz}#   :9s<   G8F3
G8GG3
G	=G
G	G
G#c                     [        XX#5      u  p[        R                  " XC5      nUc  [        SU< SU< 35      e[	        XU5      $ )z;
Convert datetime *dt_val* from *src_unit* to *dest_unit*.
zcannot convert datetime64 from r%   )r  r   r&   r   r   )r   r   r  r  dt_unit	dt_factors         r   convert_datetime_for_arithr  )  sS    
 /.OF #BB7VI*2I? @ 	@Wi88r   c                    ^  U 4S jnU$ )Nc                 V  > [        U5      n[        R                  " U[        XU/5      5         [	        XX65      n[
        R                  " XV5      n[        XU5      n[        UT
5      " X$5      n	UR                  X5        S S S 5        UR                  U5      $ ! , (       d  f       N= fr`   )r<   r   r   rL   r  r   r&   r   getattrr8   rv   )r(   r   dt_argr  r   td_unitret_unitr;   	td_factorret_val
ll_op_names             r   r   '_datetime_timedelta_arith.<locals>.impl:  s    $W-wGf=M(NO/07CF*JJ#I&w	BFgz26BGMM'' P ||C   POs   AB
B(r   )r  r   s   ` r   _datetime_timedelta_arithr  9  s    ! Kr   r!   r   c           	          Uu  pEUR                   u  pg[        XXFR                  XWR                  UR                  R                  5      n[	        XUR                  U5      $ r`   rm   _datetime_plus_timedeltar'   rj   r	   	r(   r   rl   rm   r  r   dt_typer   rn   s	            r   datetime_plus_timedeltar"  O  S     NFxxG
"7#)<<#)<<#&??#7#79C gEEr   c           	          Uu  pEUR                   u  pg[        XXWR                  XFR                  UR                  R                  5      n[	        XUR                  U5      $ r`   r  )	r(   r   rl   rm   r   r  r   r!  rn   s	            r   timedelta_plus_datetimer%  [  r#  r   c           	          Uu  pEUR                   u  pg[        XXFR                  XWR                  UR                  R                  5      n[	        XUR                  U5      $ r`   )rm   _datetime_minus_timedeltar'   rj   r	   r   s	            r   datetime_minus_timedeltar(  i  sS     NFxxG
#G$*LL$*LL$'OO$8$8:C gEEr   c                    Uu  pEUR                   u  pgUR                  nUR                  n	UR                  R                  n
[        U5      n[        R
                  " U[        XU/5      5         [        XX5      n[        XX5      nUR                  XE5      nUR                  X5        S S S 5        UR                  U5      n[        XUR                  U5      $ ! , (       d  f       N6= fr`   )rm   r'   rj   r<   r   r   rL   r  r   r8   rv   r	   )r(   r   rl   rm   r   r   r   r   unit_aunit_br  r;   r  rn   s                 r   datetime_minus_datetimer,  w  s    FBXXFBWWFWWF##H
 
)C			7Kb$B	C'VF'VF++b%g#	 
D
 ,,s
CgEE 
D	Cs   .;C
C'c                    ^  U 4S jnU$ )Nc                   > Uu  pEUR                   u  pgUR                  nUR                  n	[        R                  " X5      n
[	        U5      nUR                  [        XU/5      5       u  pU   [        XX5      n[        XX5      nUR                  TX5      nUR                  UU5        S S S 5        U   TS:X  a  [        R                  nO[        R                  nUR                  UU5        S S S 5        S S S 5        UR                  U5      n[        XUR                  U5      $ ! , (       d  f       N= f! , (       d  f       NO= f! , (       d  f       NX= fr   )rm   r'   r   get_best_unitrB   rt   rL   r  r~   r8   r   r   r   rv   r	   rj   )r(   r   rl   rm   r   r   r   r   r*  r+  r  r;   rw   rx   r   r   r  rn   r   s                     r   r   ._create_datetime_comparison_impl.<locals>.impl  s   %33FC"7+__[r(;<@Q3333!--eVDgs+  D=%..G%//Ggs+  = ll3!'COOSII   =<s<   )E	.=D'+
E	5:D8/E	'
D5	1E	8
E	E		
Er   r   s   ` r    _create_datetime_comparison_implr1    s    J0 Kr   c                    ^  U 4S jnU$ )Nc                   > Uu  pE[        X5      n[        X5      nUR                  SXE5      nUR                  XU5      n	T
(       a  XTpTUR                  XiU5      n	UR                  XyU5      n	[        XUR                  U	5      $ Nr   rF   r~   selectr	   rj   r(   r   rl   rm   in1in2in1_not_natin2_not_nat
in1_ge_in2rn   NAT_DOMINATESs             r   datetime_max_impl1_gen_datetime_max_impl.<locals>.datetime_max_impl  }      . .((s8
nnZc2nn[s3nn[s3!'COOSIIr   r   )r=  r>  s   ` r   _gen_datetime_max_implrA        J r   TFc                    ^  U 4S jnU$ )Nc                   > Uu  pE[        X5      n[        X5      nUR                  SXE5      nUR                  XU5      n	T
(       a  XTpTUR                  XiU5      n	UR                  XyU5      n	[        XUR                  U	5      $ Nr   r5  r(   r   rl   rm   r8  r9  r:  r;  
in1_le_in2rn   r=  s             r   datetime_min_impl1_gen_datetime_min_impl.<locals>.datetime_min_impl  r@  r   r   )r=  rH  s   ` r   _gen_datetime_min_implrJ    rB  r   c                    ^  U 4S jnU$ )Nc                   > Uu  pE[        X5      n[        X5      nUR                  SXE5      nUR                  XU5      n	T
(       a  XTpTUR                  XiU5      n	UR                  XyU5      n	[        XUR                  U	5      $ r4  r5  r7  s             r   timedelta_max_impl3_gen_timedelta_max_impl.<locals>.timedelta_max_impl  r@  r   r   )r=  rM  s   ` r   _gen_timedelta_max_implrO        J r   c                    ^  U 4S jnU$ )Nc                   > Uu  pE[        X5      n[        X5      nUR                  SXE5      nUR                  XU5      n	T
(       a  XTpTUR                  XiU5      n	UR                  XyU5      n	[        XUR                  U	5      $ rE  r5  rF  s             r   timedelta_min_impl3_gen_timedelta_min_impl.<locals>.timedelta_min_impl  r@  r   r   )r=  rS  s   ` r   _gen_timedelta_min_implrU    rP  r   c                    UR                  [        5      nUR                  SX"5      nUR                  U5       u  pVU   UR	                  [
        U5        S S S 5        U   UR	                  UR                  U[        5      U5        S S S 5        S S S 5        UR                  U5      $ ! , (       d  f       NX= f! , (       d  f       N8= f! , (       d  f       NA= f)Nuno)allocar   fcmp_unorderedrt   r8   r9   fptosirv   )r(   r   r   temp
val_is_nanrw   elss          r   r   r     s    >>+&D''s8J		$ ) MM#t$  MM'..k:DA  
% << T S 
%	$s:   C	B'
C	'B8C	'
B5	1C	8
C	C		
Cc                 0    [         R                  " XX#5      $ r`   )r   np_datetime_isnat_impl)r(   r   rl   rm   s       r   _np_isnat_implr`    s     **7SGGr   c                 T    UR                   S:w  a  SU SU SU S3n[        U5      eU$ )Nr   zCannot cast r%   z as z is not 64 bits wide.)bitwidth
ValueError)r(   r   fromtytotyr   r+   s         r   _cast_npdatetime_int64rf  !  s:     }}VHDd4&8MNoJr   __hash__c                     [         R                  S:  a;  [        U [        R                  5      (       a  U R
                  (       d  [        S5      e[        (       a  S nU$ S nU$ )N)r   r   zCan't hash generic timedelta64c                 F   [         R                  " U 5      n U S:  a  [         R                  " U 5      nOQ[         R                  " U 5      S-  S-	  n[         R                  " U 5      S-  n[         R                  " USU-  -   5      nUS:X  a  [         R                  " S5      nU$ )Nil            l    iCB r}   r   )rc   rd   int32)xyhilos       r   r    ol_hash_npdatetime.<locals>.impl2  s~    A9}HHQKhhqk$662=hhqk$66HHR7b.01BwHHRLHr   c                     [         R                  " U 5      S:X  a  [         R                  " S5      $ [         R                  " U 5      $ )Nr}   r   )rc   rd   )rl  s    r   r   rp  >  s.    xx{b xx|#88A;r   )r   numpy_versionr   r   NPTimedeltar'   rc  r   )rl  r   s     r   ol_hash_npdatetimert  *  sT     ""f,E--..qvv9::y
	  K		 Kr   )r;   )__doc__numpyrc   operatorllvmlite.irr?   r   
numba.corer   r   numba.core.cgutilsr   numba.core.imputilsr   r   r	   r
   numba.npr   r   r   numba.extendingr   numba.core.configr   numba.core.errorsr   r@   rA   ra   r   r9   rs  TIMEDELTA_BINOP_SIGr   r   r#   r,   r3   r<   rB   rF   rL   normal_year_monthsleap_year_monthsr   r   
NPDatetimerg   posro   rq   rr   absry   r   r!   iaddr   r   isubr   r   r   Integerimulr   r   r   truedivitruedivfloordiv	ifloordivr   r   r   r   r   r   r   timedelta_eq_timedelta_implr   timedelta_ne_timedelta_impltimedelta_lt_timedelta_impltimedelta_le_timedelta_impltimedelta_gt_timedelta_impltimedelta_ge_timedelta_impleqneltlegtgeop_funcr   r   r  r  r  r  r'  r"  r%  r(  r,  r1  datetime_eq_datetime_impldatetime_ne_datetime_impldatetime_lt_datetime_impldatetime_le_datetime_impldatetime_gt_datetime_impldatetime_ge_datetime_imploprA  datetime_maximum_impldatetime_fmax_implrJ  datetime_minimum_impldatetime_fmin_implrO  timedelta_maximum_impltimedelta_fmax_implrU  timedelta_minimum_impltimedelta_fmin_implr   isnatr`  rf  rt  datetime_minimumdatetime_maximumr   r   r   <module>r     s|	        % 4A A @ @ + ' + $;;..r2 2
[{.223((*Q. ;<:3I"1 +46  )46  /;=  -;= 
   !!!". # ". x||U../F 0F
 x||U../F 0F
 sE%%&	F '	FF, x||212x}}323	F 4 3	F x||212x}}323	F 4 3	F" x||U..>x}}e//?x||U..<x}}e//=F > = @ ?F x||U]]E,=,=>x}}emmU->->?x||U[[%*;*;<x}}ekk5+<+<=F > = @ ?F x!2!2EMMBx  %"3"3U]]Cx  %"3"3U]]Cx!!5#4#4emmDx!2!2EKK@x  %"3"3U[[Ax  %"3"3U[[Ax!!5#4#4ekkBF C B B A E D D CF. x6"56x  7#67F 8 7F  x  7#67 F 8 FD FJ8& @'

 ?'

 =cB =dC =cB =dC ;; ;<;; ;<;;!<=;; ;<;;!<=;; ;<>IC #,+,T2>K 3l*Z9   5U; 5e< 
 x||U--u/@/@Ax}}e..0A0ABF C BF x||U..0@0@Ax}}e//1A1ABF C BF x||U--u/@/@Ax}}e..0A0ABF C BF x||U--u/?/?@F AF$8 =TB <TB <SA <TB <SA <TB ++89++89++89++89++89++89;HB ",(()!+,T2;$ /t4 +E2 $ /t4 +E2 $ 16 -e4 $ 16 -e4  rxx))*rxx**+H , +H Eemm,Eu}}- . - ""J/!!:. / 02  1153C3CUEUEU VWl m  1153D3DeFWFW XYn o  1153C3CUEUEU VWl m  1153D3DeFWFW XYn or   