
    shv                        S SK Jr  S SKrS SKJ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JrJrJrJrJrJrJrJrJr  S SKJrJrJrJr  S SKJrJr  S SKJ r   S S	K!J"r"J#r#J$r$  S S
K%J&r&J'r'J(r(J)r)J*r*J+r+  S SK,J-r-  S SK.J/r/  \" \R`                  5      S 5       r1\" \Rd                  \Rf                  \Rf                  5      S 5       r4\" \Rj                  \Rf                  \Rf                  5      S 5       r6\" \Rj                  \Rn                  \Rn                  5      S 5       r8\" \Rj                  \Rr                  \Rr                  5      S 5       r:\" \Rv                  \Rx                  \Rx                  5      \" \Rv                  \Rz                  \Rz                  5      S 5       5       r>\" \R~                  \Rx                  \Rx                  5      \" \R~                  \Rz                  \Rz                  5      S 5       5       r@S rA\" \Rv                  5      " \A" S5      5        \" \R~                  5      " \A" S5      5        \" \R                  5      S 5       rC\" \Rf                  \R                  5      \" \R                  \R                  5      \" \Rr                  \R                  5      S 5       5       5       rE\" \R                  \Rf                  5      \" \R                  \Rr                  5      \" \R                  \R                  5      S 5       5       5       rF\" \R                  \R                  \R                  5      S 5       rJ\" \R                  \R                  \R                  \Rf                  5      S 5       rLS rM\" \N\R                  5      S 5       rP\" \N\R                  " \Rf                  5      5      S 5       rR\" \S\R                  5      S 5       rT\" \S\R                  " \Rf                  5      5      S  5       rUS! rV\" \W\R                  5      S" 5       rY\" \W\R                  \R                  5      S# 5       rZ\" \[\Rf                  5      \" \\\Rf                  5      S$ 5       5       r]\" \\\R                  5      S% 5       r_\" \`\R                  " \Rf                  5      5      S& 5       ra\" \R                  \Rf                  5      S' 5       rc\" \R                  5      S( 5       re\" \R                  5      S) 5       rg\" \R                  5      S* 5       rh\" \i\Rf                  5      S+ 5       rj\" \k\R                  5      S, 5       rm\" \n\R                  5      S- 5       rp\" S.\Rf                  \Rf                  5      S/ 5       rq\" \r\R                  5      S0 5       rt\" \u\R                  5      S1 5       rw\" \x5      S2 5       ry\" \x\R                  5      S3 5       rz\" \u5      S4 5       r{\" \uS5S69S7 5       r|S8 r}S9 r~\#" \~5      \#" \}5       " S: S;\"5      5       5       r\" \~\R                  5      \" \~\GR                   5      S< 5       5       r\" \}\R                  5      \" \}\GR                   5      S= 5       5       rS S>KJrJr  S S?KJrJr  \" \\GR                  \GR                  5      \" \\GR                  \GR                  5      \" \\GR                  \GR                  5      S@ 5       5       5       r\" \S5      SA 5       r\" \S5      SB 5       r\" \N5      SC 5       r\" \N5      SD 5       r\" SE 5      r\" SF 5      r\SG 5       r\" \S5      SH 5       r\" \N5      SI 5       r\" \GR,                  \R                  " \Rf                  5      5      SJ 5       r\" \5      S[SK j5       r\" \5      SL 5       r\" \5      SM 5       r\" \5      SN 5       rSO r\" \5      SP 5       r\SQ 5       r\" SRSS5      r\" 5       r\" \SST9SU 5       r\" \5      SV 5       r\SW 5       r\" \5      SX 5       r\" \5      SY 5       r\" \5      S\SZ j5       rg)]    )
namedtupleN)reduce)ir)lower_builtinlower_getattrlower_getattr_generic
lower_castlower_constantiternext_implcall_getitercall_iternextimpl_ret_borrowedimpl_ret_untrackednumba_typeref_ctor)typingtypesutilscgutils)overload	intrinsic)
Conversion)AbstractTemplateinfer_global	signature)TypingErrorLoweringErrorNumbaExperimentalFeatureWarningNumbaTypeErrorRequireLiteralValueNumbaPerformanceWarning)literal_unroll)as_numba_typec                 L    [        U [        R                  5      (       a  S nU$ g )Nc                     U $ N )vals    n/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cpython/new_builtins.pyimplol_truth.<locals>.impl    s    J    
isinstancer   Boolean)r'   r)   s     r(   ol_truthr/      s"    #u}}%%	 &r+   c                 p    U R                  [        R                  U5      nUR                  U" X5      5      $ )z+
Implement `x is not y` as `not (x is y)`.
)get_functionoperatoris_not_)contextbuildersigargsis_impls        r(   generic_is_notr:   %   s.    
 ""8<<5G<<.//r+   c                    UR                   u  pEXE:X  aG  UR                  (       a  Sn[        U5      e U R                  [        R
                  U5      nU" X5      $ [        R                  $ ! [         a    [        R                  s $ f = f)z%
Default implementation for `x is y`
zno default `is` implementation)	r8   mutabler   r1   r2   eqNotImplementedErrorr   	false_bit)r5   r6   r7   r8   lhs_typerhs_typemsgeq_impls           r(   
generic_isrD   .   s    
 H6#C((2%228;;DG
 #711    + -",,,-s    A+ +BBc                     UR                   u  pEXE:X  aX  UR                  US   [        R                  5      nUR                  US   [        R                  5      nUR	                  SXg5      $ [        R
                  $ )z/
Implementation for `x is y` for Opaque types.
r      z==)r8   ptrtointr   intp_ticmp_unsignedr?   )r5   r6   r7   r8   r@   rA   lhs_ptrrhs_ptrs           r(   	opaque_isrL   H   si    
 H""47GNN;""47GNN;$$T7<<   r+   c                 ~   Uu  pEUR                   u  pgU R                  XU[        R                  5      nU R                  XU[        R                  5      n	U R	                  [
        R                  [        R                  " [        R                  [        R                  [        R                  5      5      n
U
" XU	45      $ )z
Implementation for `x is y` for types derived from types.Boolean
(e.g. BooleanLiteral), and cross-checks between literal and non-literal
booleans, to satisfy Python's behavior preserving identity for bools.
)	r8   castr   booleanr1   r2   r=   r   r   )r5   r6   r7   r8   arg1arg2	arg1_type	arg2_type_arg1_arg2rC   s              r(   bool_is_implrV   X   s     JD88ILL	5==AELL	5==AE""u}}EG 7EN++r+   c                     UR                   u  pESnUR                  UR                  :X  a  Sn[        R                  " [        R                  " S5      U5      n[        XUR                  U5      $ Nr   rF   r8   literal_valuer   ConstantIntTyper   return_typer5   r6   r7   r8   rP   rQ   r'   ress           r(   const_eq_implr`   k   X     JD
CT///
++bjjmS
)CgEEr+   c                     UR                   u  pESnUR                  UR                  :w  a  Sn[        R                  " [        R                  " S5      U5      n[        XUR                  U5      $ rX   rY   r^   s           r(   const_ne_implrc   w   ra   r+   c                    ^  U 4S jnU$ )Nc                    > [        U [        R                  5      n[        U[        R                  5      nU(       a  U(       a  U4S jnU$ X#-  (       a  U4S jnU$ g )Nc                    > T$ r%   r&   abr'   s     r(   r)   /gen_non_eq.<locals>.none_equality.<locals>.impl   s    
r+   c                    > T(       + $ r%   r&   rg   s     r(   r)   rj      s
    wr+   r-   r   NoneType)rh   ri   a_noneb_noner)   r'   s        r(   none_equality!gen_non_eq.<locals>.none_equality   sF    Au~~.Au~~.fK_K r+   r&   )r'   rp   s   ` r(   
gen_non_eqrr      s    
 r+   TFc                 |    UR                  5       nU R                  XX%5      nU R                  XT5      nU" XXVU5      $ )z6
Deferred.__getattr__ => redirect to the actual type.
)getrN   get_getattr)r5   r6   typvalueattr
inner_typer'   imps           r(   deferred_getattrr{      s>    
 J
,,ws
7C


j
/Cw$77r+   c                     U R                  XX#R                  5       5      nU R                  U   nUR                  XR	                  5       U5      $ r%   )rN   rt   data_model_managersetmake_uninitialized)r5   r6   fromtytotyr'   actualmodels          r(   any_to_deferredr      sD     \\'
;F&&t,E99W668&AAr+   c                     U R                   U   nUR                  X5      nU R                  XUR                  5       U5      $ r%   )r}   rt   rN   )r5   r6   r   r   r'   r   s         r(   deferred_to_anyr      s;     &&v.E
))G
!C<<fjjlD99r+   c                 ~    Uu  pEUR                  XE/5      nUR                  U5      n[        XUR                  U5      $ r%   )geploadr   r]   )r5   r6   r7   r8   base_ptridxelem_ptrr_   s           r(   getitem_cpointerr      s:    MH{{8U+H
,,x
 CWsDDr+   c                 T    Uu  pEnUR                  XE/5      nUR                  Xg5        g r%   )r   store)r5   r6   r7   r8   r   r   r'   r   s           r(   setitem_cpointerr      s(    H3{{8U+HMM# r+   c                    ^ ^^ [        U5      [        U5      :X  d   X#45       e[        U5      S:  d   eUUU 4S jn[        X#5      n[        XV5      u  pxU$ )Nr   c                 L  > U u  p#Uu  pETR                   R                  X$5      nUc   eTR                  TX2U5      nTR                  TXTU5      n[        R                  " [
        R                  Xf5      nTR                  TU5      nU" TXS45      n	TR                  XU5      n
Xj4$ r%   )	typing_contextunify_typesrN   r   r   r   py_boolr1   select)accumulatorrw   acctyaccvtyvtycmpsiggepredr_   r6   cmpopr5   s              r(   binary_minmax do_minmax.<locals>.binary_minmax   s     !
##//;~~ll7C3LL!"-!!%--8!!%0'A8$nnTc*wr+   )lenzipr   )	r5   r6   argtysr8   r   r   typvalsrestyresvals	   ``  `    r(   	do_minmaxr      sR    v;#d)#3f^3#t9q== &G=2MEMr+   c                     [        UR                  S   5      n[        R                  " XS   5      n[	        XXC[
        R                  5      $ Nr   )listr8   r   unpack_tupler   r2   gtr5   r6   r7   r8   r   s        r(   max_iterabler      ;    #((1+Fa1DWvX[[AAr+   c                 N    [        XUR                  U[        R                  5      $ r%   )r   r8   r2   r   r5   r6   r7   r8   s       r(   
max_varargr          Wsxxx{{CCr+   c                     [        UR                  S   5      n[        R                  " XS   5      n[	        XXC[
        R                  5      $ r   )r   r8   r   r   r   r2   ltr   s        r(   min_iterabler      r   r+   c                 N    [        XUR                  U[        R                  5      $ r%   )r   r8   r2   r   r   s       r(   
min_varargr      r   r+   c                 "    SU R                   4-  $ )Nzllvm.rint.f%d)bitwidth)tps    r(   _round_intrinsicr      s    bkk^++r+   c                 l   UR                   S   nU R                  U5      nUR                  n[        R                  " XU/5      n[
        R                  " Xg[        U5      5      nUR                  X5      n	UR                  XR                  UR                  5      5      n	[        XUR                  U	5      $ r   )r8   get_value_typemoduler   FunctionTyper   get_or_insert_functionr   callfptosir]   r   )
r5   r6   r7   r8   flttylltyr   fntyfnr_   s
             r(   round_impl_unaryr      s    HHQKE!!%(D^^F??4(D		'	'6Fu6M	NB
,,r
 C
..44S__E
FCgEEr+   c                    ^ UR                   S   n[        R                  " [        U5      [        R
                  " XD5      5      mU4S jnU R                  XX#5      n[        XUR                  U5      $ )Nr   c                 >  > [         R                  " U 5      (       d  [         R                  " U 5      (       a  U $ US:  aJ  US:  a  SUS-
  -  nSnOSU-  nSnX-  U-  n[         R                  " U5      (       a  U $ T" U5      U-  U-  $ SU* -  nX-  nT" U5      U-  $ )Nr      g      $@gMDg      ?)mathisinfisnan)xndigitspow1pow2y_rounds        r(   round_ndigits(round_impl_binary.<locals>.round_ndigits  s    ::a==DJJqMMHa<| "-wT!Azz!}}1I$,, WH%DA!9t##r+   )	r8   r   ExternalFunctionr   r   r   compile_internalr   r]   )r5   r6   r7   r8   r   r   r_   r   s          @r(   round_impl_binaryr      sd    HHQKE ##!1!1%!?AF$. 
"
"73
ECgEEr+   c                     UR                   u  nUu  nU R                  XXBR                  5      n[        XUR                  U5      $ r%   )r8   rN   r]   r   )r5   r6   r7   r8   r   r'   r_   s          r(   int_implr   &  s=     88DRES
,,wR
9CgEEr+   c                     UR                   u  nU R                  UR                  [        UR                  5      5      n[        XUR                  U5      $ r%   )r8   get_constantr]   floatrZ   r   )r5   r6   r7   r8   r   r_   s         r(   float_literal_implr   /  sA    88DR


sb6F6F0G
HCgEEr+   c                    UR                   nUR                  n[        UR                  5      S:X  a  UR                  u  nUu  n[	        U[
        R                  5      (       a)  U R                  XXd5      n[        XUR                   U5      $ U R                  XXe5      n	U R                  US5      n
OO[        UR                  5      S:X  a6  UR                  u  pUu  pU R                  XX5      n	U R                  XX5      n
U R                  X5      nW	Ul        W
Ul        UR                  5       n[        XUR                   U5      $ )NrF   r      )r]   underlying_floatr   r8   r-   r   ComplexrN   r   r   make_complexrealimag	_getvalue)r5   r6   r7   r8   complex_type
float_typeargtyargr_   r   r   realtyimagtycmplxs                 r(   complex_implr   6  s   ??L..J
388}((eU]]++,,wUAC%gMM<<e@D''
A6D	SXX!	88||G6>||G6>  7EEJEJ
//
CgEEr+   c                 <  ^ [        UR                  [        R                  5      (       aE  UR                  R                  mU4S jnU R                  XX#5      n[        XUR                  U5      $ Uu  nUR                  u  nU R                  XXrR                  5      $ )z)
Call a number class, e.g. np.int32(...)
c                  .   > [         R                  " U TS9$ )N)dtype)nparray)arg_hackdts    r(   foonumber_constructor.<locals>.fooZ  s    88HB//r+   )	r-   r]   r   Arrayr   r   r   r8   rN   )	r5   r6   r7   r8   r   r_   r'   valtyr   s	           @r(   number_constructorr   R  s|    
 #//5;;//__""	0&&wS?!'COOSII ((||G%AAr+   c                 "    U R                  5       $ r%   get_dummy_valuer5   r6   r   pyvals       r(   constant_dummyr  h  s     ""$$r+   c                     U R                  U5      nU R                  XR                  U5      [        U5      S9nUR	                  XT5      $ )N)info)get_function_pointer_typeadd_dynamic_addrget_pointerstrbitcast)r5   r6   r   r  ptrtyptrvals         r(   constant_function_pointerr  m  sH    --b1E%%g~~e/D+.u: & 7F??6))r+   c                 v    Uc  U R                  XR                  5      $ U R                  XR                  U5      $ r%   )make_optional_nonetypemake_optional_valuer  s       r(   constant_optionalr  u  s3    }))'77;;**7GGUCCr+   c                 "    U R                  5       $ )z
One-argument type() builtin.
r   r   s       r(   	type_implr    s    
 ""$$r+   c                 B    UR                   u  nUu  n[        XXE5      nU$ r%   )r8   r   )r5   r6   r7   r8   r   r'   itervals          r(   	iter_implr    s%    
((CBDC7R5GNr+   c                 L   UR                   u  nUu  n[        XXE5      nUR                  UR                  UR	                  5       5      SS9   U R
                  R                  U[        S5        S S S 5        UR                  5       $ ! , (       d  f       UR                  5       $ = f)NF)likelyr&   )	r8   r   if_thenr4   is_valid	call_convreturn_user_excStopIterationyielded_value)r5   r6   r7   r8   itertyr  r_   s          r(   	next_implr!    s    hhGFHG
&
:C	clln5e	D))'="E 
E  
E	D s   "B
B#znot inc                 N    S nU R                  XX#5      nUR                  U5      $ )Nc                 .    [         R                  " X5      $ r%   )r2   containsrh   ri   s     r(   in_implnot_in.<locals>.in_impl  s      &&r+   )r   r4   )r5   r6   r7   r8   r&  r_   s         r(   not_inr(    s*    ' 
"
"7S
?C<<r+   c                     UR                   u  nUR                  nU R                  U[        UR                  5      5      n[        XUR                  U5      $ r%   )r8   r]   r   r   r   r   )r5   r6   r7   r8   r   rettyr_   s          r(   constsized_lenr+    sC    88DROOE


uc"((m
4CgEEr+   c                 ~    UR                   u  n[        U5      (       a  [        R                  $ [        R                  $ r%   )r8   r   r   true_bitr?   )r5   r6   r7   r8   r   s        r(   
sized_boolr.    s.    88DR
2ww   r+   c                 j    UR                   nU R                  U5      n[        XUR                   U5      $ r%   )r]   get_constant_undefr   )r5   r6   r7   r8   r*  r_   s         r(   lower_empty_tupler1    s.    OOE

$
$U
+CgEEr+   c                 8    Uu  n[        XUR                  U5      $ r%   )r   r]   )r5   r6   r7   r8   r'   s        r(   lower_tupler3    s    DCWsDDr+   c                     [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  4n[        X5      (       a  S nU$ g )Nc                     [        U 5      S:  $ r   )r   r   s    r(   	bool_impl bool_sequence.<locals>.bool_impl  s    q6A:r+   )r   CharSeqUnicodeCharSeqDictTypeListTypeUnicodeTypeSetr-   )r   valid_typesr7  s      r(   bool_sequencer@    sV     			K !!!	 "r+   always)inlinec                 N    [        U [        R                  5      (       d  U c  S $ g )Nc                     gNFr&   r6  s    r(   <lambda>bool_none.<locals>.<lambda>  s    r+   rl   r6  s    r(   	bool_nonerH    s"    !U^^$$	 )2r+   c                     [        U [        R                  5      (       a  [        R                  $ [        U [        R
                  5      (       a  U R                  $ [        S5      eNzUnsupported type)r-   r   Floatr   infIntegermaxvalr   rv   s    r(   get_type_max_valuerP    sC    #u{{##vv#u}}%%zz
+
,,r+   c                     [        U [        R                  5      (       a  [        R                  * $ [        U [        R
                  5      (       a  U R                  $ [        S5      erJ  )r-   r   rK  r   rL  rM  minvalr   rO  s    r(   get_type_min_valuerS    sE    #u{{##w#u}}%%zz
+
,,r+   c                       \ rS rSrS rSrg)MinValInferi  c                     U(       a   e[        U5      S:X  d   e[        US   [        R                  [        R                  45      (       a  [        US   R                  /UQ76 $ g )NrF   r   )r   r-   r   DTypeNumberClassr   r   )selfr8   kwss      r(   genericMinValInfer.generic  sW    w4yA~~d1gU->->?@@T!W]]2T22 Ar+   r&   N)__name__
__module____qualname____firstlineno__r[  __static_attributes__r&   r+   r(   rU  rU    s    3r+   rU  c                 t   UR                   S   R                  n[        U[        R                  5      (       aF  UR
                  n[        R                  " U5      nUR                  n[        R                  " Xg5      nGO.[        U[        R                  5      (       a  UR
                  nUS:X  a  [        R                  " 5       nO'US:X  a  [        R                  " 5       nO[        S5      e[        [        SR!                  U5      5      n	[        R                  " U[        R"                  * 5      nOz[        U[        R$                  [        R&                  45      (       aK  Sn[        R                  " U5      n[        R(                  R                  S-   n[        R                  " Xg5      n[+        XWW5      $ )Nr       @   +llvmlite only supports 32 and 64 bit floatsfloat{}rF   )r8   r   r-   r   rM  r   r   r\   rR  r[   rK  	FloatType
DoubleTyper>   getattrr   formatrL  
NPDatetimeNPTimedeltaint64r   
r5   r6   r7   r8   rv   bwltyr'   r_   nptys
             r(   lower_get_type_min_valuerr    s-    ((1+

C#u}}%%\\jjnjjkk##	C	%	%\\8,,.C2X--/C%&STTr9++B/0kk#w'	C%**E,=,=>	?	?jjnkk  1$kk##gS99r+   c                 l   UR                   S   R                  n[        U[        R                  5      (       aF  UR
                  n[        R                  " U5      nUR                  n[        R                  " Xg5      nGO*[        U[        R                  5      (       a  UR
                  nUS:X  a  [        R                  " 5       nO'US:X  a  [        R                  " 5       nO[        S5      e[        [        SR!                  U5      5      n	[        R                  " U[        R"                  5      nOw[        U[        R$                  [        R&                  45      (       aH  Sn[        R                  " U5      n[        R(                  R                  n[        R                  " Xg5      n[+        XWW5      $ )Nr   rc  rd  re  rf  )r8   r   r-   r   rM  r   r   r\   rN  r[   rK  rg  rh  r>   ri  r   rj  rL  rk  rl  rm  r   rn  s
             r(   lower_get_type_max_valuert    s&    ((1+

C#u}}%%\\jjnjjkk##	C	%	%\\8,,.C2X--/C%&STTr9++B/0kk#rvv&	C%**E,=,=>	?	?jjnkk  kk##gS99r+   )
IndexValueIndexValueType)r   register_jitablec                     UR                   nUu  pV[        R                  " U5      " X5      nXWl        Xgl        UR                  5       $ r%   )r]   r   create_struct_proxyindexrw   r   )r5   r6   r7   r8   rv   rz  rw   index_values           r(   impl_index_valuer|  -  sD     //CLE--c27DK  ""r+   c                 d    [        U [        5      (       a  [        U[        5      (       a  S nU$ g g )Nc                    [         R                  " U R                  5      (       aE  [         R                  " UR                  5      (       a  U R                  UR                  :  a  U $ U$ U $ [         R                  " UR                  5      (       a  U$ U R                  UR                  :  a  U$ U R                  UR                  :X  a  U R                  UR                  :  a  U $ U$ U $ r%   r   r   rw   rz  indval1indval2s     r(   min_implindval_min.<locals>.min_impl=      xx&&88GMM**}}w}}4&& #N'--((.'--/==7==0"N"NNr+   r-   rv  )r  r  r  s      r(   
indval_minr  9  2    '>**'>**	, / + +r+   c                     [        U [        R                  5      (       a%  [        U[        R                  5      (       a  S nU$ g g )Nc                     U =(       a    U$ r%   r&   val1val2s     r(   bool_min_impl"boolval_min.<locals>.bool_min_implZ  s    =D r+   r,   )r  r  r  s      r(   boolval_minr  V  s9    $&&$&&	! ' 'r+   c                 d    [        U [        5      (       a  [        U[        5      (       a  S nU$ g g )Nc                    [         R                  " U R                  5      (       aE  [         R                  " UR                  5      (       a  U R                  UR                  :  a  U $ U$ U $ [         R                  " UR                  5      (       a  U$ UR                  U R                  :  a  U$ U R                  UR                  :X  a  U R                  UR                  :  a  U $ U$ U $ r%   r  r  s     r(   max_implindval_max.<locals>.max_implc  r  r+   r  )r  r  r  s      r(   
indval_maxr  _  r  r+   c                     [        U [        R                  5      (       a%  [        U[        R                  5      (       a  S nU$ g g )Nc                     U =(       d    U$ r%   r&   r  s     r(   bool_max_impl"boolval_max.<locals>.bool_max_impl  s    <4r+   r,   )r  r  r  s      r(   boolval_maxr  |  s9    $&&$&&	  ' 'r+   c                 
    X:  $ r%   r&   r%  s     r(   rF  rF    s    QUr+   c                 
    X:  $ r%   r&   r%  s     r(   rF  rF    s    !%r+   c                 T   ^ [        U [        R                  5      (       a  U4S jnU$ g )Nc                 h   > [        U 5      n[        U5      nU H  nT" X25      (       d  M  UnM     U$ r%   )iternext)iterableit
return_valr'   ops       r(   r)   min_max_impl.<locals>.impl  s7    hBbJc&&!$J  r+   )r-   r   IterableType)r  r  r)   s    ` r(   min_max_implr    s'    (E..//	  0r+   c                 "    [        U [        5      $ r%   )r  	less_thanr  s    r(   iterable_minr    s    ),,r+   c                 "    [        U [        5      $ r%   )r  greater_thanr  s    r(   iterable_maxr    s    ,//r+   c                    UR                   nS n[        R                  R                  UR                  5      n[
        R                  " U[        R                  " U5      U5      n[        U5      S:  a#  U R                  5       U R                  XU5      4nO"U R                  5       U R                  XS5      4nU R                  XX#5      $ )aI  Redirect constructor implementation to `numba_typeref_ctor(cls, *args)`,
which should be overloaded by the type's implementation.

For example:

    d = Dict()

`d` will be typed as `TypeRef[DictType]()`.  Thus, it will call into this
implementation.  We need to redirect the lowering to a function
named ``numba_typeref_ctor``.
c                     [        U /UQ76 $ r%   )r   )clsr8   s     r(   	call_ctor%redirect_type_ctor.<locals>.call_ctor  s    !#---r+   r   r&   )r]   r   Tuple
from_typesr8   r   r   TypeRefr   r   
make_tupler   )r5   r6   r7   r8   r  r  	ctor_argss          r(   redirect_type_ctorr    s     //C. &&sxx0I


3c 2I
>C
9~'')""7t<> '')""7r:< ##GBBr+   c                 \  ^ S n[        U[        R                  5      (       a  SnOC[        U[        R                  5      (       a  SnO![        U[        R                  5      (       a  SnUb  SR
                  " U6 n[        U5      e[        U [        R                  R                  [        R                  [        R                  [        R                  [        R                  45      (       a  [        mO1[        U [        R                  R                  5      (       a  [        mOg SU4S jjnU$ )N)strings )bytesri   )	bytearrayri   z/sum() can't sum {} [use {}''.join(seq) instead]c                 2   > UnT" U 5       H  nX#-   nM	     U$ r%   r&   )r  startr   r   iterators       r(   r)   ol_sum.<locals>.impl  s%    (#A'C $ 
r+   r   )r-   r   r=  Bytes	ByteArrayrj  r   
containers_HomogeneousTupleListr<  r   	RangeTyper  _HeterogeneousTupler!   )r  r  errorrB   r)   r  s        @r(   ol_sumr    s     E%**++	E5;;	'	'	E5??	+	+"?FFN# (U--??"^^U[[%//K L L	Hu//CC	E	E " Kr+   c                     S nU$ )Nc              7   @   #    [        U/UQ76  H
  nU " U6 v   M     g 7fr%   )r   )funcr  r8   r   s       r(   r)   ol_map.<locals>.impl  s"     X%%A(N &s   r&   )r  r  r8   r)   s       r(   ol_mapr    s     Kr+   c                 Z    U b  [        U [        R                  5      (       a  S nU$ S nU$ )Nc              3   8   #    U H  nU(       d  M  Uv   M     g 7fr%   r&   r  r  r   s      r(   r)   ol_filter.<locals>.impl  s     1G s   	c              3   D   #    U H  nU " U5      (       d  M  Uv   M     g 7fr%   r&   r  s      r(   r)   r    s     77G s    	 rl   )r  r  r)   s      r(   	ol_filterr    s/    D%..99	 K		 Kr+   c                 	   S nS n[        U 5      n[        U[        R                  5      (       a  SU S3n[	        U5      e[        R
                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                   [        R"                  [        R$                  [        R&                  [        R(                  [        R*                  [        R,                  [        R.                  [        R0                  [        R2                  [        R4                  4n[        XF5      (       d  SU S3n[	        U5      eUn[        U[        R                  5      (       a  UR6                  S   n[        U[        R                  5      (       d  U4nU GH  n[        U[        R                  5      (       a  UR6                  S   n	O.[        U[        R                   5      (       a  Un	OUR6                  n	[8        [        R                  [:        [        R                  [<        [        R                  [        R                  4[>        [        R                  [@        [        RB                  [D        [        R                  0n
X;   a  [        XJU	   5      (       a  Us  $ GM
  [        U[        RF                  5      (       aG  U	[        R                  [        R                  4;  a  Sn[	        U5      e[I        U5      U	L a  Us  $ Us  $ [        U	5      nXK:X  a  Us  $ [        U[        R2                  [        R4                  45      (       a!  [        U[I        U5      5      (       a  Us  $ GM  [        U[        R                   5      (       aG  [        U[        R$                  5      (       a(  UR6                  URJ                  R6                  :X  a  Us  $ [        U[        RL                  5      (       d  GM\  UR6                  S   [        RN                  :X  d  GM  [        XKRP                  5      (       dD  [        U[        RB                  5      (       d  GM  [        U[        RB                  5      (       d  GM  Us  $    U$ )	Nc                     g)NTr&   vartypss     r(   	true_impl ol_isinstance.<locals>.true_impl  s    r+   c                     grE  r&   r  s     r(   
false_impl!ol_isinstance.<locals>.false_impl  s    r+   z1isinstance cannot handle optional types. Found: ""z1isinstance() does not support variables of type "z".r   zLNumba type classes (except numba.typed.* container types) are not supported.))r"   r-   r   Optionalr   Numberr  r  r;  LiteralStrKeyDictr  r<  r  UniTupler>  Function	ClassTyper=  ClassInstanceTyperm   r   r.   rK  r:  r   rk  rl  keyr  rangedictr   tuple	BaseTupler~   r  r  instance_type	Container	undefined	__class__)r  r  r  r  var_tyrB   supported_var_tyt_typsrv   r  types_not_registered	numba_typs               r(   ol_isinstancer    sG    3F&%..))A&KS!! ekk5??(?(?U^^UYY9J9J//u{{E4H4Hu'7'79J9JM f//A&LS!!F &%..))**Q-fekk**c5>>**''!*CU__--C''C
 5;;5??5>>5#:#:;%**5?? 
 &&s";<<  c5==)) 5>>5>>::3$S)) !%V 39CC%c*I"  I(8(8%:K:K'LMMfd9o66$$ 7Iu77vu'>'>??JJ)"9"9"="==  Iu77MM!$7f&9&9::88"9eoo>>$$k n r+   c                     g r%   r&   objnames     r(   _getattr_raise_attr_excr  f  s     	r+   c                    ^ [        U[        R                  5      (       d  [        S5      eUR                  nSU  SU S3mU4S jnU$ )N(argument 'name' must be a literal string'z' has no attribute 'c                    > [        T5      er%   )AttributeError)r  r  messages     r(   r)   (ol__getattr_raise_attr_exc.<locals>.impls  s    W%%r+   )r-   r   StringLiteralr   rZ   )r  r  lnamer)   r  s       @r(   ol__getattr_raise_attr_excr  l  sL    dE//00!"LMME#*5'3G&Kr+   c                   ^^^^^	^
^ [        U[        R                  5      (       d  [        S5      eUR                  m
U R                  TT
5      m[        T[        R                  5      (       a  ST ST
 ST S3n[        U5      eTc  [        T[        R                  5      (       a  TR                  [        :X  d  T" TUT5      nU4S jnXV4$ U R                  [        5      m	T	R                  U TU40 5      m[        R                  " TUT5      nU	U4S jn XV4$ T" TUT5      n[        T[        R                  5      (       a
  UU4S jnXV4$ U R                  TT
5      mUUU
U4S	 jnXV4$ )
Nr  zQReturning function objects is not implemented. getattr() was requested to return z from attribute 'z' of .c                 L   > US   nU R                   R                  UTU5        U$ N)nrtincref)cgctxr6   r7   llargstmpdefaults        r(   r)   resolve_getattr.<locals>.impl  s'    Rj		  '37
r+   c                 >   > U R                  TT5      nU" XS S 5      $ r  )r1   )r  r6   r7   r  native_implr   	raise_sigs        r(   r)   r    s&    #00yA"73BK88r+   c                    > TR                   nU R                  XS   TU5      nU R                  XU5      nU R                  R	                  UTU5        U$ r   )thisrN   get_bound_functionr  r  )	r  r6   r7   ll_args	cast_typecastedr_   r   r  s	          r(   r)   r    sO    GG	GQZiH..w	J		  "c2
r+   c                    > U R                  T
T	5      nU" XT
US   T	5      nU R                  XTT5      nU R                  R                  UTU5        U$ r   )ru   rN   r  r  )r  r6   r7   r  	attr_implr_   r  attrtyr   r  r  s          r(   r)   r    sV    !--c59	WQZGG&"=		  "f5r+   )r-   r   r  r   rZ   resolve_getattrr  r   
NamedTupleinstance_class_getattr_default_typeresolve_value_typer  get_call_typenoneBoundFunction)tyctxr  r  r  rB   r7   r)   r  r   r   r  r  s    ` `   @@@@@r(   r   r   x  so   dE//00!"LMME			sE	*B "enn%%4464 8'se1& #	z 7E$4$455&&*??#tW-CB 97 ++,CDD**53+rBI**S$0C90 9' dG$b%--..  9 **36F  9r+   r#  r  )prefer_literalc                     S nU$ )Nc                 "    [        X[        5      $ r%   )r   _getattr_defaultr  s     r(   r)   ol_getattr_2.<locals>.impl  s    s*:;;r+   r&   r  r  r)   s      r(   ol_getattr_2r/    s    <Kr+   c                     S nU$ )Nc                     [        XU5      $ r%   )r   )r  r  r  s      r(   r)   ol_getattr_3.<locals>.impl  s    s'22r+   r&   )r  r  r  r)   s       r(   ol_getattr_3r3    s    3Kr+   c                   ^ [        U[        R                  5      (       d  [        S5      eUR                  nU R                  X5      mTc  [        R                  " S5      nO[        R                  " S5      nU" X5      nU4S jnXV4$ )Nr  FTc                 J   > Tc  [         R                  $ [         R                  $ r%   )r   r?   r-  )r  r6   r7   r  r   s       r(   r)   resolve_hasattr.<locals>.impl  s    #%:gC73C3CCr+   )r-   r   r  r   rZ   r   literal)r(  r  r  r  r*  r7   r)   r   s          @r(   resolve_hasattrr8    sx    dE//00!"LMME			s	*B 
ze$d#

CD9r+   c                     S nU$ )Nc                     [        X5      $ r%   )r8  r  s     r(   r)   ol_hasattr.<locals>.impl  s    s))r+   r&   r.  s      r(   
ol_hasattrr<    s    *Kr+   c                     ^ SU  S3mU4S jnU$ )Nz<object type:>c                 J   > Sn[        X5      S:X  a  [        X5      " 5       $ T$ )N__repr__T)hasattrri  )r  rx   missing_repr_formats     r(   r)   ol_repr_generic.<locals>.impl  s+    3%3%'' '&r+   r&   )r  r)   rB  s     @r(   ol_repr_genericrD    s    )#a0' Kr+   c                     SS jnU$ )Nc                 Z    Sn[        X5      S:X  a  [        X5      " 5       $ [        U 5      $ )N__str__T)rA  ri  repr)objectrx   s     r(   r)   ol_str_generic.<locals>.impl  s,    6 D(6(**<r+   r  r&   )rI  r)   s     r(   ol_str_genericrL    s      Kr+   r  rK  )collectionsr   r   	functoolsr   numpyr   r2   warningsllvmliter   numba.core.imputilsr   r   r   r	   r
   r   r   r   r   r   r   
numba.corer   r   r   r   numba.core.extendingr   r   numba.core.typeconvr   numba.core.typing.templatesr   r   r   numba.core.errorsr   r   r   r   r   r    numba.misc.specialr!   numba.core.typing.asnumbatyper"   truthr/   is_notAnyr:   r3   rD   OpaquerL   r.   rV   r=   LiteralIntegerLiteralr`   nerc   rr   DeferredTyper{   r  r   r   getitemCPointerrM  r   setitemr   r   maxr  r   VarArgr   minr   r   r   roundrK  r   r   intr   r   r  r   complexr   rX  r   Dummyr  ExternalFunctionPointerr  r  r  r  r  r  r  r  IteratorTyper!  r(  r   
ConstSizedr+  boolSizedr.  r  r1  r3  r@  rH  rP  rS  rU  rW  rr  rt  numba.core.typing.builtinsru  rv  numba.extendingrw  py_intTypenp_intpnp_uintpr|  r  r  r  r  r  r  r  r  r  r  r  sumr  mapr  filterr  r-   r  r  r  r   r#  r,  ri  r/  r3  r8  rA  r<  rH  rD  r	  rL  r&   r+   r(   <module>rz     sn	   "      I I I I
 5 4 4 *4 48 8 . 7 
(..  x		59950 60 x||UYY		2! 3!2 x||U\\5<<8! 9! x||U]]EMM:, ;,$ x{{EMM5==9x{{E00%2F2FGF H :F x{{EMM5==9x{{E00%2F2FGF H :F 	 j& '  j' ( u))*8 +8 EIIu))*ENNE../EMM5--.B / 0 +B
 E		*E.E/: 0 / +: x?E @E x		J! K!0 sEOO$B %B
 sELL+,D -D sEOO$B %B
 sELL+,D -D, uekk"	F #	F uekk5==1F 2FJ sEIIueii F ! F ue))*F +F wUYY/0F 1F6 u  %)),B -B* % % --.* /* D  D tUYY%  % tU''( ) tU''(	 )	 xEII. / sE$$%F &F tU[[!! "! uF F
 ueoo&E 'E 
$  
$x  !--  ! !3" 3 " "3 !5#4#45!5;;/: 0 6:2 !5#4#45!5;;/: 0 6:6 B 6z5<<4z5==%**5z5>>5::6# 7 6 5# 
# 8 
#  
# 8 
#    23/0	 	 	 
#- - 
#0 0 u}}ell59956C 7C> 
#   N 
#  
&  
*a aL	 

!" # 5 5r ##:B? (*  
'$' ( 
'   2 
'  
$
 
 
# r+   