
    sh;a                     <   S r SSKrSSKrSSKrSSKJr  SSKrSSKJ	r	J
r
JrJrJr  SSKJrJrJr  SSKJr  \" \/5      r " S S5      r\" 5       r0 \R2                  S	_\R4                  S
_\R6                  S_\R8                  S_\R:                  S_\R<                  S_\R>                  S_\R@                  S_\RB                  S_\RD                  S_\RF                  S_\RH                  S_\RJ                  S_\RL                  S_\RN                  S_\RP                  S_\RR                  S_\RT                  S\RV                  S\RX                  S\RZ                  S\R\                  S\R^                  S\R`                  S 0Er1S!\1\Rd                  '   S"\1\Rf                  '   \Rh                  S#\Rj                  S$\Rl                  S%\Rn                  S&\Rp                  S'\Rr                  S(\Rt                  S)\Rv                  S*\Rx                  S+0	r= " S, S-\5      r>g).z*
Lowering implementation for object mode.
    N)cached_property)typesutilsir
generatorscgutils)ForbiddenConstructLoweringErrorNumbaNotImplementedError)	BaseLowerc                       \ rS rSrSrS rSrg)
_Undefined   z@
A sentinel value for undefined variable created by Expr.undef.
c                     g)Nz<undefined> selfs    i/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/core/pylowering.py__repr___Undefined.__repr__   s        r   N)__name__
__module____qualname____firstlineno____doc__r   __static_attributes__r   r   r   r   r      s    r   r   )
number_addF)number_subtractF)number_multiplyF)number_truedivideF)number_floordivideF)number_remainderF)number_powerF)number_lshiftF)number_rshiftF)
number_andF)	number_orF)
number_xorF)r   T)r   T)r    T)r!   T)r"   T)r#   T)r$   T)r%   T)r&   T)r'   T)r(   T)r)   T)number_matrix_multiplyF)r*   T==!=<z<=>z>=iszis notinc                     ^  \ rS rSr\R
                  rS rU 4S jrS r	S r
S r\S 5       rS rS	 rS"S
 jrS rS rS rS rS rS rS rS rS#S jrS rS rS rS$S jrS rS rS"S jr S r!S$S jr"S r#S r$S r%S  r&S!r'U =r($ )%PyLowerO   c                 @    [        5       U l        [        5       U l        g N)set_frozen_strings
_live_varsr   s    r   initPyLower.initS   s    "u%r   c                 J   > [         [        U ]  5         U R                  5         g r5   )superr2   	pre_lower
init_pyapi)r   	__class__s    r   r=   PyLower.pre_lowerY   s    gt&(r   c                     g r5   r   r   s    r   
post_lowerPyLower.post_lower]   s    r   c                 &    U R                  U5        g r5   )	init_varsr   blocks     r   	pre_blockPyLower.pre_block`   s    ur   c                    [        U[        R                  5      (       a7  U R                  U5      nU R	                  X!R
                  R                  5        g [        U[        R                  5      (       a  U R                  UR
                  R                  5      nU R                  UR                  R                  5      nU R                  UR                  R                  5      nU R                  R                  X4U5      nU R                  U5        g [        U[        R                  5      (       aw  U R                  UR
                  R                  5      nU R                  UR                  R                  5      nU R                  R                  X45      nU R                  U5        g [        U[        R                   5      (       a  U R                  UR
                  R                  5      nU R                  UR                  R                  5      nU R                  R#                  UU R%                  UR&                  5      U5      nU R                  U5        g [        U[        R(                  5      (       al  U R                  UR
                  R                  5      nU R                  R+                  UU R%                  UR&                  5      5      nU R                  U5        g [        U[        R,                  5      (       a  U R                  UR.                  R                  5      nU R                  UR0                  R                  5      nU R                  UR                  R                  5      nU R                  R3                  XgU5      nU R                  U5        g [        U[        R4                  5      (       a  U R                  UR                  R                  5      nU R6                  (       a7  U R                  R9                  U5        U R:                  R=                  U 5        g U R>                  RA                  U RB                  U5        g [        U[        RD                  5      (       Ga  U R                  URF                  R                  5      n	U	RH                  [J        R                  RM                  S5      :X  a  U	n
OU R                  RO                  U	5      n
[J        R                  RQ                  U
RH                  S 5      nU RB                  RS                  SX5      nU RT                  URV                     nU RT                  URX                     nU RB                  R[                  XU5        g [        U[        R\                  5      (       a5  U RT                  UR
                     nU RB                  R_                  U5        g [        U[        R`                  5      (       a  U Rc                  UR                  5        g [        U[        Rd                  5      (       a  g [        U[        Rf                  5      (       ar  URh                  b7  U R                  URh                  R                  5      nU Rk                  U5        OS nU R                  Rm                  U5        U Ro                  5         g [I        U5       SU 3n[q        U5      e)N   r,   z, )9
isinstancer   Assignlower_assignstorevartargetnameSetItemloadvarindexvaluepyapiobject_setitemcheck_int_statusDelItemobject_delitemSetAttrobject_setattr_freeze_stringattrDelAttrobject_delattrStoreMapdctkeydict_setitemReturngenerator_infodecrefgenlowerreturn_from_generator	call_convreturn_valuebuilderBranchcondtypellvmliteIntTypeobject_istrueConstanticmp_unsignedblkmaptruebrfalsebrcbranchJumpbranchDeldelvarPopBlockRaise	exceptionincrefraise_objectreturn_exception_raisedr   )r   instrU   rP   rT   okrb   rc   retvalrn   istruezeropredtrflexcmsgs                    r   
lower_instPyLower.lower_instc   s   dBII&&%%d+EMM%!1!12bjj))\\$++"2"23FLL1ELL1E**6%@B!!"%bjj))\\$++"2"23FLL1E**69B!!"%bjj))\\$++"2"23FLL1E**6+/+>+>tyy+I+02B !!"%bjj))\\$++"2"23F**6+/+>+>tyy+IKB!!"%bkk**,,txx}}-C,,txx}}-CLL1E((59B!!"%bii((\\$**//2F"" 

!!&)33D9NN''f=bii((<<		/DyyHKK//2211$7;;''T:D<<--dFADT[[)BT\\*BLL  2.bgg&&[[-FLL'bff%%KK

#bkk**bhh''~~)ll4>>#6#67 C JJ##C(((* $ZL4&)C*3//r   c                 v    SSK Jn  U R                  R                  U R                  R	                  U5      5      $ )zUReturn a `OmittedArg` type instance as a LLVM value suitable for
testing at runtime.
r   )
OmittedArg)numba.core.dispatcherr   rV   unserializeserialize_object)r   r   s     r   _omitted_typobjPyLower._omitted_typobj   s0    
 	5zz%%JJ''
35 	5r   c                     UR                   n[        U[        R                  [        R                  45      (       a  U R                  UR                   5      $ [        U[        R                  5      (       a.  U R                  UR                  5      nU R                  U5        U$ [        U[        R                  5      (       a  U R                  U5      $ [        U[        R                  5      (       a&  U R                  UR                  UR                   5      $ [        U[        R                  5      (       a  U R                  U5      $ [        U[        R                   5      (       Ga  U R"                  R$                  R&                  R(                  R+                  UR                  5      nU R,                  UR.                     n[0        R2                  " U R4                  U5      nUbT  UR6                  [8        R:                  R<                  L a-  U R                  U5        U R4                  R?                  XV5        OU R@                  RC                  U5      nU R4                  RE                  SUU RF                  5      nU R4                  RI                  USS9 u  pU
   U R                  U5        U R4                  R?                  XV5        SSS5        U	   U R@                  RK                  US5      nU R4                  R?                  XV5        SSS5        SSS5        U R4                  RM                  U5      $ [O        [Q        U5      U5      e! , (       d  f       N= f! , (       d  f       NW= f! , (       d  f       N`= f)z/
The returned object must have a new reference
Nr+   F)likelyrU   ))rU   rL   r   ConstFreeVarlower_constVarrS   rQ   r   Expr
lower_exprGloballower_globalYieldlower_yieldArgfunc_irfunc_idpysig
parametersgetfnargsrT   r   alloca_once_valuerl   defaultinspect	ParameteremptystorerV   get_typert   r   if_elseobject_getattr_stringloadNotImplementedErrorro   )r   r   rU   valparamobjslottypobj
is_omittedomittedpresents              r   rN   PyLower.lower_assign   sp    

ebhh

344##EKK00rvv&&,,uzz*CKKJrww''??5))ryy))$$UZZ==rxx((##E**rvv&&LL((..99==ejjIE++ekk*C,,T\\3?D U]]g6G6G6M6M%MC ""3- ,,S1!\\77f8<8L8LN
\\))*U)CGY C(**35 ! !"jj>>sGL**35 !	 D <<$$T**%d5k599 ! !	 DCs<   M/-M
M/8MM/
M	M/
M,	(M//
M=c                 <   U R                   R                  UR                     nUR                  UL d   eU R                  R                  U 5        [        R                  " XUR                  UR                  -  5      nUR                  5         U R                  UR                  R                  5      nU R                  R                  U5        U R                   R#                  U R$                  U5        UR'                  5         U R                  R)                  5       $ r5   )rf   yield_pointsrT   r   rh   init_generator_stater   
LowerYield	live_varsweak_live_varslower_yield_suspendrS   rU   rQ   rV   r   rj   rk   rl   lower_yield_resume	make_none)r   r   ypyr   s        r   r   PyLower.lower_yield   s      --djj9ww$**40 !!$BLL2;L;L,LM	ll4::??+

###DLL#6 	
zz##%%r   c                    U R                  UR                  R                  5      nU R                  UR                  R                  5      n[	        U[
        5      (       a   eU[        ;   a)  [        U   u  pc[        U R                  U5      nU" XEUS9nON[        R                  UR                  UR                  5      nUS:X  a  XTpTU R                  R                  XEU5      nU R                  U5        U$ )Ninplacer0   )rS   lhsrQ   rhsrL   strPYTHON_BINOPMAPgetattrrV   PYTHON_COMPAREOPMAPr   fnobject_richcomparecheck_error)	r   expropr   r   r   fnamer   ress	            r   lower_binopPyLower.lower_binop  s    ll488==)ll488==)b#&&&& ,R0NEU+BSw/C %(($'':BTzS**//"=C
r   c                 0   UR                   S:X  a  U R                  XR                  SS9$ UR                   S:X  a  U R                  XR                  SS9$ UR                   S:X  GaW  U R                  UR                  R
                  5      nUR                  [        R                  :X  a  U R                  R                  U5      nOUR                  [        R                  :X  a  U R                  R                  U5      nOUR                  [        R                  :X  aH  U R                  R                  U5      nU R                  U5        U R                  R                  U5      nOEUR                  [        R                   :X  a  U R                  R#                  U5      nO[%        U5      eU R'                  U5        U$ UR                   S:X  Ga  UR(                   Vs/ s H  o@R                  UR
                  5      PM     nnU R                  UR*                  R
                  5      nU R                  R-                  U5      nUR.                  (       a}  U R                  R1                  U R                  UR.                  R
                  5      5      nU R                  R3                  Xx5      n	U R5                  U5        U R5                  U5        U	nUR6                  (       d  U R                  R9                  XgS 5      n
OUR6                   VVs/ s H!  u  pXR                  UR
                  5      4PM#     nnnU R                  R;                  U5      nU R                  R9                  XgU5      n
U R5                  U5        U R5                  U5        U R'                  U
5        U
$ UR                   S:X  al  U R                  UR                  R
                  5      nU R                  R=                  XR?                  UR@                  5      5      nU R'                  U5        U$ UR                   S	:X  ac  URB                   Vs/ s H  nU R                  UR
                  5      PM      nnU R                  R-                  U5      nU R'                  U5        U$ UR                   S
:X  ac  URB                   Vs/ s H  nU R                  UR
                  5      PM      nnU R                  RE                  U5      nU R'                  U5        U$ UR                   S:X  a  U R                  RG                  URH                  5      nU R'                  U5        URB                   Hi  u  pU R                  UR
                  5      nU R                  UR
                  5      nU R                  RK                  UUU5      nU R                  U5        Mk     U$ UR                   S:X  a  URB                   Vs/ s H  nU R                  UR
                  5      PM      nnU R                  RM                  5       nU R'                  U5        U H0  nU R                  RO                  UU5      nU R                  U5        M2     U$ UR                   S:X  aS  U R                  UR                  R
                  5      nU R                  RQ                  U5      nU R'                  U5        U$ UR                   S:X  GaS  U R                  UR                  R
                  5      nU R                  RS                  U5      n[T        RV                  " U RX                  U5      nU R                  R[                  S5      nU RX                  R]                  U5       u  nnU   U R                  R_                  USU5        S S S 5        U   U Ra                  5         U R                  R_                  USU R                  Rc                  5       5        S S S 5        S S S 5        U R                  R_                  USU R                  R                  U5      5        U$ UR                   S:X  aT  U R                  UR                  R
                  5      nU R                  Re                  US5      nU Rg                  U5        U$ UR                   S:X  aT  U R                  UR                  R
                  5      nU R                  Re                  US5      nU Rg                  U5        U$ UR                   S:X  a  U R                  UR                  R
                  5      nU R                  R1                  U5      nU R'                  U5        U R                  Ri                  U5      nU Rj                  Rm                  [n        Rp                  URr                  5      nU RX                  Ru                  SUU5      n[T        Rv                  " U RX                  U5         U Ry                  [z        5        S S S 5        U$ UR                   S:X  ay  U R                  UR                  R
                  5      nU R                  UR|                  R
                  5      n U R                  R                  UU 5      nU R'                  U5        U$ UR                   S:X  a  U R                  UR                  R
                  5      nU Rj                  Rm                  [n        Rp                  UR|                  5      n U R                  R                  U 5      n!U R'                  U!5        U R                  R                  UU!5      nU R5                  U!5        U R'                  U5        U$ UR                   S:X  a  U R                  UR                  R
                  5      n"U R                  UR                  R
                  5      n#U R                  UR                  R
                  5      n$U R                  S5      n%U R                  R                  U%U#U$45      n&U R5                  U%5        U R'                  U&5        U R                  R                  U"U&5      nU R'                  U5        U$ UR                   S:X  a8  U R                  UR                  R
                  5      n'U Rg                  U'5        U'$ UR                   S:X  a  [        S5      eUR                   S:X  a*  [T        R                  " U R                  R                  5      $ UR                   S:X  a  U R                  [        5      $ [%        U5      es  snf s  snnf s  snf s  snf s  snf ! , (       d  f       GN= f! , (       d  f       GN{= f! , (       d  f       GN= f! , (       d  f       U$ = f)NbinopFr   inplace_binopTunarycallr   build_tuple
build_list	build_map	build_setgetiteriternext   r   rK   
pair_firstpair_secondexhaust_iterr,   getitemstatic_getitemgetsliceslicecastphizPHI not strippednullundef)Kr   r   r   rS   rU   rQ   operatornegrV   number_negativeposnumber_positivenot_
object_notrX   bool_from_boolinvertnumber_invertr   r   argsfunc
tuple_packvarargsequence_tuplesequence_concatrg   kwsr   	dict_packobject_getattrr]   r^   items	list_packdict_newsizerd   set_newset_addobject_getiter	iter_nextr   is_not_nullrl   	tuple_newr   tuple_setitemcheck_occurredr   tuple_getitemr   
tuple_sizecontextget_constantr   intpcountrt   if_unlikelyreturn_exception
ValueErrorrT   object_getitemlong_from_ssize_trP   startstopget_builtin_objcall_function_objargsr
   get_null_valuepyobjr   
_UNDEFINED)(r   r   rU   r   aargvalsr   r   varargsnew_argsretkv	keyvaluesr  r   itr  rc   r   iterobjitemis_validpairthen	otherwisefirstsecondtuptup_sizeexpected_sizehas_wrong_sizerT   indexobjrP   r  r  slicefnsliceobjr   s(                                           r   r   PyLower.lower_expr  s	   77g##D''5#AAWW'##D''4#@@WWLL1Eww(,,&jj007HLL(jj007HMM)jj++E2%%c*jj//4HOO+jj..u5)$//S!JWW59YY?Y||AFF+YG?diinn-B::((1D{{**33 $T[[-=-= >@::55dDG$D!88jjoob5 DH88L841aaff!568	Ljj**95jjoob4C KKS!JWW	!,,tzz/C**++C1D1DTYY1OPCS!JWW%59ZZ@ZrT\\"''*ZE@**''.CS!JWW$59ZZ@ZrT\\"''*ZE@**&&u-CS!JWW#**%%dii0CS!

ll166*QVV,ZZ,,S#u=%%b)	 #
 JWW#59ZZ@ZrT\\"''*ZE@**$$&CS!ZZ''R0%%b)  JWW	!,,tzz/C**++C0CS!JWW
"ll4::??3G::''0D**4<<>H::''*D%%h/3DD)JJ,,T1d; '') JJ,,T1djj6J6J6LM	  0 JJ$$T1djj.G.G.QRKWW$<<

0DJJ,,T15EKKLWW%<<

0DZZ--dA6FKKMWW&ll4::??3G**++G4CS!zz,,S1H LL55ejj$**MM!\\77/7HN$$T\\>B%%j1 CJWW	!LL1ELL1E**++E59CS!JWW((LL1ELL--ejj$**EEzz33E:HX&**++E8<CKK!S!JWW
"\\$++"2"23FLL1E<<		/D**73Gzz77%OHKK X&**++FH=CS!JWW,,tzz/CKKJWW 233WW))$***:*:;;WW##J// &d++_ @  M A
 A A$ TY 0/: CBJsg   $t6(t;>%u1%u%%u:u4 u
u4(Au".u4,v
u	u4"
u1	,u44
v
vc                     U R                   R                  U5      nU R                   R                  U5      nU R                  U5        U R	                  U5        U$ r5   )env_manager	add_const
read_constr   r   )r   constrT   r'  s       r   r   PyLower.lower_const  sM      **51))%0C
r   c                 "   U R                  5       nU R                  R                  X0R                  U5      5      nU R	                  U5         U[
        ;   a  [        SU-  U R                  S9e [        [        U5      (       a  U R                  U5      nU R                  R                  nU R                  R                  U5         U R                  R                  UU R                  S5      5      nU R                  Xq5      nU R                  R                  n	SSS5        U R                  R!                  U R                  R"                  5      n
U
R%                  XF5        U
R%                  WW	5        U
$ Un
[&        R(                  " U R                  U R                  U
5      5         U R                  R+                  U5        U R-                  5         SSS5        U
$ ! [         a     GN{f = f! , (       d  f       N= f! , (       d  f       U
$ = f)z
1) Check global scope dictionary.
2) Check __builtins__.
    2a) is it a dictionary (for non __main__ module)
    2b) is it a module (for __main__ module)
zbuiltins %s() is not supported)loc__builtins__N)get_module_dictrV   dict_getitemr]   r   _unsupported_builtinsr	   rC  	TypeErrorhasattrbuiltinsis_nullrl   basic_blockif_thenbuiltin_lookupr   r!  add_incomingr   r  raise_missing_global_errorr   )r   rQ   rU   moddictr   obj_is_nullbbelsemodbuiltinbbifr   s              r   r   PyLower.lower_global  s    &&(jj%%g/B/B4/HIC	--()I+/*059XX? ? . 8T"",,s+K\\--F%%k2jj--g*.*=*=n*MO--c8||//	 3 \\%%djj&6&67F,.  F$$T\\4<<3GH

55d;,,. I 1  		 32 IH s+   !G AG.',G?
G+*G+.
G<?
Hc                 .    U R                   R                  $ r5   )env_bodyglobalsr   s    r   rE  PyLower.get_module_dict  s    }}$$$r   c                     U R                  5       nU R                  R                  UU R                  S5      5      nU R	                  X15      $ )NrD  )rE  rV   rF  r]   rN  )r   rQ   rQ  rT  s       r   r  PyLower.get_builtin_obj  sF    &&(jj%%g&*&9&9.&IK""3--r   c                 J   U R                   R                  XR                  U5      5      nU R                  U5        U R                  R
                  n[        R                  " U R                  U R                  U5      5         U R                   R                  XR                  U5      5      n[        R                  " U R                  U R                  U5      5         U R                   R                  U5        U R                  5         SSS5        U R                  R
                  nSSS5        U R                  R                  U R                   R                  5      nUR                  X45        UR                  WW5        U$ ! , (       d  f       N= f! , (       d  f       Ns= f)z
Args
----
mod:
    The __builtins__ dictionary or module, as looked up in
    a module's globals.
name: str
    The object to lookup
N)rV   rF  r]   r   rl   rL  r   r  rK  r  rP  r   r   r!  rO  )r   rT  rQ   fromdictbbifdictfrommodbbifmodrU  s           r   rN  PyLower.builtin_lookup  s)    ::**30C0CD0IJH<<++  t||H/EFjj//5H5H5NOG$$T\\4<<3HI

55d;,,. J ll..G G ,,""4::#3#34X0Wg. JI	 GFs%   AF,F	F
F	F
F"c                    [         R                  " U R                  U R                  R	                  5       5      n[         R
                  " U R                  U5         U R                  5         SSS5        g! , (       d  f       g= f)z"
Return if an exception occurred.
N)r   r  rl   rV   err_occurredr  r   )r   re  s     r   r  PyLower.check_occurred  sY     **4<<+/::+B+B+DF   |<((* =<<s   A55
Bc                     [         R                  " U R                  U R                  U5      5         U R	                  5         SSS5        U$ ! , (       d  f       U$ = f)z
Return if *obj* is NULL.
N)r   r  rl   rK  r   r   r   s     r   r   PyLower.check_error"  sK       t||C/@A((* B 
 BA 
s   A
Ac                 &   [         R                  R                  UR                  U5      nU R                  R                  SX5      n[        R                  " U R                  U5         U R                  5         SSS5        g! , (       d  f       g= f)z9
Raise an exception if *num* is smaller than *ok_value*.
r-   N)	rp   r   rs   ro   rl   icmp_signedr   r  r   )r   numok_valuer   r   s        r   rX   PyLower.check_int_status+  s`     [[!!#((H5||''S5  t4((* 544s   (B
Bc                 D    [         R                  " U R                  U5      $ r5   )r   rK  rl   rh  s     r   rK  PyLower.is_null4  s    t||S11r   c                 n    U R                  5         U R                  R                  U R                  5        g)z-
Return with the currently raised exception.
N)cleanup_varsrj   
return_excrl   r   s    r   r   PyLower.return_exception_raised7  s&     	!!$,,/r   c                 V    [        U R                  R                  U5      5      U l        g)z(
Initialize live variables for *block*.
N)r6   r   get_block_entry_varsr8   rF   s     r   rE   PyLower.init_vars>  s     dll??FGr   c                 v    XR                   ;  a  U R                  XS9U R                   U'   U R                   U   $ )Nltype)varmapalloca)r   rQ   rz  s      r   _getvarPyLower._getvarD  s4    {{" $D >DKK{{4  r   c                 r   XR                   ;   d   U5       eU R                  U   nU R                  R                  U5      n[        R
                  " U R                  U R                  U5      5         U R                  R                  U5        U R                  5         SSS5        U$ ! , (       d  f       U$ = f)z3
Load the llvm value of the variable named *name*.
N)
r8   r{  rl   r   r   r  rK  rV   raise_missing_name_errorr   )r   rQ   ptrr   s       r   rS   PyLower.loadvarI  s    
 &,,&kk$ll$  t||C/@AJJ//5((* B 
 BA 
s   1,B''
B6c                 8   U R                   R                  U5        U R                  U5      nU R                  U R                  R                  U5      5        U R                  R                  [        R                  " UR                  R                  5      U5        g)za
Delete the variable slot with the given name. This will decref
the corresponding Python object.
N)r8   remover}  rg   rl   r   r   r   r   ro   pointeer   rQ   r  s      r   r|   PyLower.delvarV  sj     	t$ll4 DLL%%c*+ 	711#((2B2BCSIr   c                    X R                   ;   =(       a    U(       + nU R                  X!R                  S9nU(       a  U R                  R	                  U5      nOU R                   R                  U5        UR                  UR                  R                  :X  d9   [        UR                  5      [        UR                  R                  5      45       eU R                  R                  X5        U(       a  U R                  W5        gg)zd
Stores a llvm value and allocate stack slot if necessary.
The llvm value can be of arbitrary type.
ry  N)
r8   r}  ro   rl   r   addr  r   r   rg   )r   rU   rQ   clobberis_redefiner  olds          r   rO   PyLower.storevard  s    
 oo-=g+ll4zzl2,,##C(COO%zzSXX--- 	GEJJ03CHH4D4D0E0G 	G-5&KK r   c                     U R                    H>  nU R                  U5      nU R                  U R                  R	                  U5      5        M@     g)z
Cleanup live variables.
N)r8   r}  rg   rl   r   r  s      r   rr  PyLower.cleanup_varsv  s;     OOD,,t$CKK))#./ $r   c                 p   Uc)  U R                   R                  [        R                  5      nU R                  R                  U R                  5         U R                  R                  X!S9nU R                  R                  [        R                  " U5      U5        SSS5        U$ ! , (       d  f       W$ = f)z|
Allocate a stack slot and initialize it to NULL.
The default is to allocate a pyobject pointer.
Use ``ltype`` to override.
N)rQ   )r  get_value_typer   pyobjectrl   
goto_blockentry_blockr|  r   r   r   )r   rQ   rz  r  s       r   r|  PyLower.alloca~  s     =LL//?E\\$$T%5%56,,%%e%7CLLw55e<cB 7 
 76 
s   A
B&&
B5c                 $    U R                  U5      $ r5   )r|  )r   rQ   fetypes      r   _alloca_varPyLower._alloca_var  s     {{4  r   c                 :    U R                   R                  U5        g r5   )rV   r   )r   rU   s     r   r   PyLower.incref  s    

% r   c                     U R                   R                  [        R                  5      nUR                  U:X  a  U R
                  R                  U5        gg)zX
This is allow to be called on non pyobject pointer, in which case
no code is inserted.
N)r  r  r   r  ro   rV   rg   )r   rU   lpyobjs      r   rg   PyLower.decref  s?    
 ,,U^^<::JJe$  r   c                 $    U R                  U5      $ )z.
Freeze a Python string object into the code.
)r   )r   strings     r   r]   PyLower._freeze_string  s     ''r   )r7   r8   )F)r   r5   ))r   r   r   r   r   PyGeneratorLowerGeneratorLowerr9   r=   rB   rH   r   r   r   rN   r   r   r   r   r   rE  r  rN  r  r   rX   rK  r   rE   r}  rS   r|   rO   rr  r|  r  r   rg   r]   r   __classcell__)r?   s   @r   r2   r2   O   s    00N V0p 5 5+:Z&("e,N'V%.<++20H!
J$0!
!%( (r   r2   )?r   rJ  r   r   	functoolsr   llvmlite.irrp   
numba.corer   r   r   r   r   numba.core.errorsr	   r
   r   numba.core.loweringr   r6   localsrG  r   r"  r  submultruedivfloordivrT  powlshiftrshiftand_or_xoriaddisubimulitruediv	ifloordivimodipowilshiftirshiftiandiorixorr   matmulimatmuleqneltlegtgeis_is_notcontainsr   r2   r   r   r   <module>r     sX  
    %  < <9 9 )
 VH   \
LL'LL, LL, 2	
 4 LL- LL) OO- OO- MM( LL& LL' MM' MM,  MM,!" 2#$ 4%& MM-MM)--MM'LL%MM'38 $E  $D   ! KKKKKKKKKKKKLL$OOXt
 Q	(i Q	(r   