
    xKg;a                     <   d Z ddlZddlZddlZddlmZ ddlZddlm	Z	m
Z
mZmZmZ ddlmZmZmZ ddlmZ  eeg      Z G d d      Z e       Zi ej2                  d	ej4                  d
ej6                  dej8                  dej:                  dej<                  dej>                  dej@                  dejB                  dejD                  dejF                  dejH                  dejJ                  dejL                  dejN                  dejP                  dejR                  dejT                  dejV                  dejX                  dejZ                  dej\                  dej^                  dej`                  d iZ1d!e1ejd                  <   d"e1ejf                  <   ejh                  d#ejj                  d$ejl                  d%ejn                  d&ejp                  d'ejr                  d(ejt                  d)ejv                  d*ejx                  d+i	Z= G d, d-e      Z>y).z*
Lowering implementation for object mode.
    N)cached_property)typesutilsir
generatorscgutils)ForbiddenConstructLoweringErrorNumbaNotImplementedError)	BaseLowerc                       e Zd ZdZd Zy)
_UndefinedzH
    A sentinel value for undefined variable created by Expr.undef.
    c                      y)Nz<undefined> selfs    Y/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/core/pylowering.py__repr__z_Undefined.__repr__   s        N)__name__
__module____qualname____doc__r   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                        e Zd Zej                  Zd Z fdZd Zd Z	d Z
ed        Zd Zd Zd d	Zd
 Zd Zd Zd Zd Zd Zd Zd Zd!dZd Zd Zd Zd"dZd Zd Zd dZd Z d"dZ!d Z"d Z#d Z$d Z% xZ&S )#PyLowerc                 @    t               | _        t               | _        y N)set_frozen_strings
_live_varsr   s    r   initzPyLower.initS   s    "u%r   c                 J    t         t        |           | j                          y r0   )superr.   	pre_lower
init_pyapi)r   	__class__s    r   r7   zPyLower.pre_lowerY   s    gt&(r   c                      y r0   r   r   s    r   
post_lowerzPyLower.post_lower]   s    r   c                 &    | j                  |       y r0   )	init_varsr   blocks     r   	pre_blockzPyLower.pre_block`   s    ur   c                 .   t        |t        j                        r8| j                  |      }| j	                  ||j
                  j                         y t        |t        j                        r| j                  |j
                  j                        }| j                  |j                  j                        }| j                  |j                  j                        }| j                  j                  |||      }| j                  |       y t        |t        j                        rx| j                  |j
                  j                        }| j                  |j                  j                        }| j                  j                  ||      }| j                  |       y t        |t        j                         r| j                  |j
                  j                        }| j                  |j                  j                        }| j                  j#                  || j%                  |j&                        |      }| j                  |       y t        |t        j(                        rl| j                  |j
                  j                        }| j                  j+                  || j%                  |j&                              }| j                  |       y t        |t        j,                        r| j                  |j.                  j                        }| j                  |j0                  j                        }| j                  |j                  j                        }| j                  j3                  |||      }| j                  |       y t        |t        j4                        r| j                  |j                  j                        }| j6                  r7| j                  j9                  |       | j:                  j=                  |        y | j>                  jA                  | jB                  |       y t        |t        jD                        r| j                  |jF                  j                        }	|	jH                  tJ        j                  jM                  d      k(  r|	}
n| j                  jO                  |	      }
tJ        j                  jQ                  |
jH                  d       }| jB                  jS                  d|
|      }| jT                  |jV                     }| jT                  |jX                     }| jB                  j[                  |||       y t        |t        j\                        r5| jT                  |j
                     }| jB                  j_                  |       y t        |t        j`                        r| jc                  |j                         y t        |t        jd                        ry t        |t        jf                        rq|jh                  7| j                  |jh                  j                        }| jk                  |       nd }| j                  jm                  |       | jo                          y tI        |       d| }tq        |      )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   instrL   rG   rK   okrY   rZ   retvalre   istruezeropredtrflexcmsgs                    r   
lower_instzPyLower.lower_instc   so   dBII&%%d+EMM%!1!12bjj)\\$++"2"23FLL1ELL1E**65%@B!!"%bjj)\\$++"2"23FLL1E**65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((c59B!!"%bii(\\$**//2F"" 

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

#bkk*bhh'~~)ll4>>#6#67 C JJ##C(((* $ZL4&)C*3//r   c                 v    ddl m} | j                  j                  | j                  j	                  |            S )zeReturn a `OmittedArg` type instance as a LLVM value suitable for
        testing at runtime.
        r   )
OmittedArg)numba.core.dispatcherr   rM   unserializeserialize_object)r   r   s     r   _omitted_typobjzPyLower._omitted_typobj   s0    
 	5zz%%JJ''
35 	5r   c                    |j                   }t        |t        j                  t        j                  f      r| j                  |j                         S t        |t        j                        r.| j                  |j                        }| j                  |       |S t        |t        j                        r| j                  |      S t        |t        j                        r&| j                  |j                  |j                         S t        |t        j                        r| j                  |      S t        |t        j                         r| j"                  j$                  j&                  j(                  j+                  |j                        }| j,                  |j.                     }t1        j2                  | j4                  |      }|T|j6                  t8        j:                  j<                  u r.| j                  |       | j4                  j?                  ||       n| j@                  jC                  |      }| j4                  jE                  d|| jF                        }| j4                  jI                  |d      5 \  }	}
|
5  | j                  |       | j4                  j?                  ||       ddd       |	5  | j@                  jK                  |d      }| j4                  j?                  ||       ddd       ddd       | j4                  jM                  |      S tO        tQ        |      |      # 1 sw Y   xY w# 1 sw Y   MxY w# 1 sw Y   QxY w)z?
        The returned object must have a new reference
        Nr'   F)likelyrL   ))rL   rC   r   ConstFreeVarlower_constVarrJ   rH   rw   Expr
lower_exprGloballower_globalYieldlower_yieldArgfunc_irfunc_idpysig
parametersgetfnargsrK   r   alloca_once_valuerc   defaultinspect	ParameteremptystorerM   get_typerk   r   if_elseobject_getattr_stringloadNotImplementedErrorrf   )r   rz   rL   valparamobjslottypobj
is_omittedomittedpresents              r   rE   zPyLower.lower_assign   sg    

ebhh

3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QX C(**35 ! !"jj>>sGL**35 !	 D <<$$T**%d5k599 ! !	 DCs<   <M.L30
M:9L?3M3L<	8M?M	MMc                 :   | j                   j                  |j                     }|j                  |u sJ | j                  j                  |        t        j                  | ||j                  |j                  z        }|j                          | j                  |j                  j                        }| j                  j                  |       | j                   j#                  | j$                  |       |j'                          | j                  j)                         S r0   )r]   yield_pointsrK   rz   r_   init_generator_stater   
LowerYield	live_varsweak_live_varslower_yield_suspendrJ   rL   rH   rM   rw   ra   rb   rc   lower_yield_resume	make_none)r   rz   ypyr   s        r   r   zPyLower.lower_yield   s      --djj9ww$**40 !!$BLL2;L;L,LM	ll4::??+

###DLL#6 	
zz##%%r   c                    | j                  |j                  j                        }| j                  |j                  j                        }t	        |t
              rJ |t        v r.t        |   \  }}t        | j                  |      } ||||      }nPt        j                  |j                  |j                        }|dk(  r||}}| j                  j                  |||      }| j                  |       |S )Ninplacer,   )rJ   lhsrH   rhsrC   strPYTHON_BINOPMAPgetattrrM   PYTHON_COMPAREOPMAPr   fnobject_richcomparecheck_error)	r   expropr   r   r   fnamer   ress	            r   lower_binopzPyLower.lower_binop  s    ll488==)ll488==)b#&&& ,R0NE7U+BS#w/C %(($'':BTzS**//S"=C
r   c                    |j                   dk(  r| j                  ||j                  d      S |j                   dk(  r| j                  ||j                  d      S |j                   dk(  rS| j                  |j                  j
                        }|j                  t        j                  k(  r| j                  j                  |      }n|j                  t        j                  k(  r| j                  j                  |      }n|j                  t        j                  k(  rH| j                  j                  |      }| j                  |       | j                  j                  |      }nD|j                  t        j                   k(  r| j                  j#                  |      }nt%        |      | j'                  |       |S |j                   dk(  r|j(                  D cg c]  }| j                  |j
                         }}| j                  |j*                  j
                        }| j                  j-                  |      }|j.                  r~| j                  j1                  | j                  |j.                  j
                              }| j                  j3                  ||      }	| j5                  |       | j5                  |       |	}|j6                  s| j                  j9                  ||d       }
n|j6                  D cg c]"  \  }}|| j                  |j
                        f$ }}}| j                  j;                  |      }| j                  j9                  |||      }
| j5                  |       | j5                  |       | j'                  |
       |
S |j                   dk(  rm| j                  |j                  j
                        }| j                  j=                  || j?                  |j@                              }| j'                  |       |S |j                   d	k(  r`|jB                  D cg c]  }| j                  |j
                         }}| j                  j-                  |      }| j'                  |       |S |j                   d
k(  r`|jB                  D cg c]  }| j                  |j
                         }}| j                  jE                  |      }| j'                  |       |S |j                   dk(  r| j                  jG                  |jH                        }| j'                  |       |jB                  D ]i  \  }}| j                  |j
                        }| j                  |j
                        }| j                  jK                  |||      }| j                  |       k |S |j                   dk(  r|jB                  D cg c]  }| j                  |j
                         }}| j                  jM                         }| j'                  |       |D ]/  }| j                  jO                  ||      }| j                  |       1 |S |j                   dk(  rS| j                  |j                  j
                        }| j                  jQ                  |      }| j'                  |       |S |j                   dk(  rR| j                  |j                  j
                        }| j                  jS                  |      }tU        jV                  | jX                  |      }| j                  j[                  d      }| jX                  j]                  |      5 \  }}|5  | j                  j_                  |d|       d d d        |5  | ja                          | j                  j_                  |d| j                  jc                                d d d        d d d        | j                  j_                  |d| j                  j                  |             |S |j                   dk(  rT| j                  |j                  j
                        }| j                  je                  |d      }| jg                  |       |S |j                   dk(  rT| j                  |j                  j
                        }| j                  je                  |d      }| jg                  |       |S |j                   dk(  r| j                  |j                  j
                        }| j                  j1                  |      }| j'                  |       | j                  ji                  |      }| jj                  jm                  tn        jp                  |jr                        }| jX                  ju                  d||      }tU        jv                  | jX                  |      5  | jy                  tz               d d d        |S |j                   dk(  ry| j                  |j                  j
                        }| j                  |j|                  j
                        } | j                  j                  ||       }| j'                  |       |S |j                   dk(  r| j                  |j                  j
                        }| jj                  jm                  tn        jp                  |j|                        } | j                  j                  |       }!| j'                  |!       | j                  j                  ||!      }| j5                  |!       | j'                  |       |S |j                   dk(  r| j                  |j                  j
                        }"| j                  |j                  j
                        }#| j                  |j                  j
                        }$| j                  d      }%| j                  j                  |%|#|$f      }&| j5                  |%       | j'                  |&       | j                  j                  |"|&      }| j'                  |       |S |j                   dk(  r8| j                  |j                  j
                        }'| jg                  |'       |'S |j                   dk(  rt        d      |j                   dk(  r)tU        j                  | j                  j                        S |j                   dk(  r| j                  t              S t%        |      c c}w c c}}w c c}w c c}w c c}w # 1 sw Y   xY w# 1 sw Y   exY w# 1 sw Y   jxY w# 1 sw Y   |S xY w)NbinopFr   inplace_binopTunarycallr   build_tuple
build_list	build_map	build_setgetiteriternext   r   rB   
pair_firstpair_secondexhaust_iterr(   getitemstatic_getitemgetsliceslicecastphizPHI not strippednullundef)Kr   r   r   rJ   rL   rH   operatornegrM   number_negativeposnumber_positivenot_
object_notrO   bool_from_boolinvertnumber_invertr   r   argsfunc
tuple_packvarargsequence_tuplesequence_concatr^   kwsr   	dict_packobject_getattrrT   rU   items	list_packdict_newsizer[   set_newset_addobject_getiter	iter_nextr   is_not_nullrc   	tuple_newr   tuple_setitemcheck_occurredr   tuple_getitemrw   
tuple_sizecontextget_constantr   intpcountrk   if_unlikelyreturn_exception
ValueErrorrK   object_getitemlong_from_ssize_trG   startstopget_builtin_objcall_function_objargsr
   get_null_valuepyobjr   
_UNDEFINED)(r   r   rL   r   aargvalsr   r   varargsnew_argsretkv	keyvaluesr   r   itr   rZ   r{   iterobjitemis_validpairthen	otherwisefirstsecondtuptup_sizeexpected_sizehas_wrong_sizerK   indexobjrG   r  r  slicefnsliceobjr   s(                                           r   r   z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t||AFF+YG?diinn-B::((1D{{**33 $T[[-=-= >@::55dGDG$D!88jjoob$5 DH88L841aaaff!568	Ljj**95jjoob$4C KKS!JWW	!,,tzz/C**++C1D1DTYY1OPCS!JWW%59ZZ@ZrT\\"''*ZE@**''.CS!JWW$59ZZ@ZrT\\"''*ZE@**&&u-CS!JWW#**%%dii0CS!

1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Jsg   "t't3"t""t"t"u#t'
uAt4uu't1	,u4t>	9uuuc                     | j                   j                  |      }| j                   j                  |      }| j                  |       | j	                  |       |S r0   )env_manager	add_const
read_constr   rw   )r   constrK   r  s       r   r   zPyLower.lower_const  sM      **51))%0C
r   c                    | j                         }| j                  j                  || j                  |            }| j	                  |       	 |t
        v rt        d|z  | j                        	 t        t        |      r| j                  |      }| j                  j                  }| j                  j                  |      5  | j                  j                  || j                  d            }| j                  ||      }| j                  j                  }	ddd       | j                  j!                  | j                  j"                        }
|
j%                  ||       |
j%                  	       |
S |}
t'        j(                  | j                  | j                  |
            5  | j                  j+                  |       | j-                          ddd       |
S # t        $ r Y vw xY w# 1 sw Y   xY w# 1 sw Y   |
S xY w)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_dictrM   dict_getitemrT   rw   _unsupported_builtinsr	   r3  	TypeErrorhasattrbuiltinsis_nullrc   basic_blockif_thenbuiltin_lookupr   r  add_incomingr   r	  raise_missing_global_errorry   )r   rH   rL   moddictr   obj_is_nullbbelsemodbuiltinbbifr|   s              r   r   zPyLower.lower_global  s    &&(jj%%gt/B/B4/HIC	--()I+/*059XX? ? . 8T",,s+K\\--F%%k2jj--g*.*=*=n*MO--c48||//	 3 \\%%djj&6&67FV,.  F$$T\\4<<3GH

55d;,,. I 1  		 32 I s+   "G AG+%,G7	G('G(+G47Hc                 .    | j                   j                  S r0   )env_bodyglobalsr   s    r   r5  zPyLower.get_module_dict  s    }}$$$r   c                     | j                         }| j                  j                  || j                  d            }| j	                  ||      S )Nr4  )r5  rM   r6  rT   r>  )r   rH   rA  rD  s       r   r  zPyLower.get_builtin_obj  sH    &&(jj%%g&*&9&9.&IK""3--r   c                 8   | j                   j                  || j                  |            }| j                  |       | j                  j
                  }t        j                  | j                  | j                  |            5  | j                   j                  || j                  |            }t        j                  | j                  | j                  |            5  | j                   j                  |       | j                          ddd       | j                  j
                  }ddd       | j                  j                  | j                   j                        }|j                  ||       |j                         |S # 1 sw Y   |xY w# 1 sw Y   jxY w)z
        Args
        ----
        mod:
            The __builtins__ dictionary or module, as looked up in
            a module's globals.
        name: str
            The object to lookup
        N)rM   r6  rT   rw   rc   r<  r   r	  r;  r   r@  ry   r   r  r?  )r   rD  rH   fromdictbbifdictfrommodbbifmodrE  s           r   r>  zPyLower.builtin_lookup  s/    ::**30C0CD0IJH<<++  t||H/EFjj//T5H5H5NOG$$T\\4<<3HI

55d;,,. J ll..G G ,,""4::#3#34Xx0Wg. JI	 GFs%   AF,F	FF		FFc                     t        j                  | j                  | j                  j	                               }t        j
                  | j                  |      5  | j                          ddd       y# 1 sw Y   yxY w)z2
        Return if an exception occurred.
        N)r   r   rc   rM   err_occurredr	  ry   )r   rQ  s     r   r  zPyLower.check_occurred  sY     **4<<+/::+B+B+DF   |<((* =<<s   A33A<c                     t        j                  | j                  | j                  |            5  | j	                          ddd       |S # 1 sw Y   |S xY w)z*
        Return if *obj* is NULL.
        N)r   r	  rc   r;  ry   r   r   s     r   r   zPyLower.check_error"  sH       t||C/@A((* B 
 B 
s   AAc                    t         j                  j                  |j                  |      }| j                  j                  d||      }t        j                  | j                  |      5  | j                          ddd       y# 1 sw Y   yxY w)zI
        Raise an exception if *num* is smaller than *ok_value*.
        r)   N)	rg   r   rj   rf   rc   icmp_signedr   r	  ry   )r   numok_valuer{   r   s        r   rO   zPyLower.check_int_status+  sb     [[!!#((H5||''S"5  t4((* 544s   (BBc                 B    t        j                  | j                  |      S r0   )r   r;  rc   rS  s     r   r;  zPyLower.is_null4  s    t||S11r   c                 n    | j                          | j                  j                  | j                         y)z=
        Return with the currently raised exception.
        N)cleanup_varsra   
return_excrc   r   s    r   ry   zPyLower.return_exception_raised7  s&     	!!$,,/r   c                 V    t        | j                  j                  |            | _        y)z8
        Initialize live variables for *block*.
        N)r1   r   get_block_entry_varsr3   r>   s     r   r=   zPyLower.init_vars>  s     dll??FGr   c                 |    || j                   vr | j                  ||      | j                   |<   | j                   |   S )Nltype)varmapalloca)r   rH   r`  s      r   _getvarzPyLower._getvarD  s8    t{{" $D >DKK{{4  r   c                 d   || j                   v sJ |       | j                  |   }| j                  j                  |      }t	        j
                  | j                  | j                  |            5  | j                  j                  |       | j                          ddd       |S # 1 sw Y   |S xY w)zC
        Load the llvm value of the variable named *name*.
        N)
r3   ra  rc   r   r   r	  r;  rM   raise_missing_name_errorry   )r   rH   ptrr   s       r   rJ   zPyLower.loadvarI  s    
 t&,,&kk$ll$  t||C/@AJJ//5((* B 
 B 
s   /,B%%B/c                 6   | j                   j                  |       | j                  |      }| j                  | j                  j                  |             | j                  j                  t        j                  |j                  j                        |       y)zy
        Delete the variable slot with the given name. This will decref
        the corresponding Python object.
        N)r3   removerc  r^   rc   r   r   r   r  rf   pointeer   rH   rf  s      r   rs   zPyLower.delvarV  sj     	t$ll4 DLL%%c*+ 	711#((2B2BCSIr   c                    || j                   v xr | }| j                  ||j                        }|r| j                  j	                  |      }n| j                   j                  |       |j                  |j                  j                  k(  s9J t        |j                        t        |j                  j                        f       | j                  j                  ||       |r| j                         yy)z|
        Stores a llvm value and allocate stack slot if necessary.
        The llvm value can be of arbitrary type.
        r_  N)
r3   rc  rf   rc   r   addri  r   r   r^   )r   rL   rH   clobberis_redefinerf  olds          r   rF   zPyLower.storevard  s    
 doo-=g+ll4uzzl2,,##C(COO%zzSXX--- 	GEJJ03CHH4D4D0E0G 	G-5#&KK r   c                     | j                   D ]=  }| j                  |      }| j                  | j                  j	                  |             ? y)z)
        Cleanup live variables.
        N)r3   rc  r^   rc   r   rj  s      r   rZ  zPyLower.cleanup_varsv  s;     OOD,,t$CKK))#./ $r   c                 j   |)| j                   j                  t        j                        }| j                  j                  | j                        5  | j                  j                  ||      }| j                  j                  t        j                  |      |       ddd       |S # 1 sw Y   S xY w)z
        Allocate a stack slot and initialize it to NULL.
        The default is to allocate a pyobject pointer.
        Use ``ltype`` to override.
        N)rH   )r  get_value_typer   pyobjectrc   
goto_blockentry_blockrb  r   r   r  )r   rH   r`  rf  s       r   rb  zPyLower.alloca~  s     =LL//?E\\$$T%5%56,,%%e$%7CLLw55e<cB 7 
 7 
s   AB((B2c                 $    | j                  |      S r0   )rb  )r   rH   fetypes      r   _alloca_varzPyLower._alloca_var  s     {{4  r   c                 :    | j                   j                  |       y r0   )rM   rw   )r   rL   s     r   rw   zPyLower.incref  s    

% r   c                     | j                   j                  t        j                        }|j                  |k(  r| j
                  j                  |       yy)zp
        This is allow to be called on non pyobject pointer, in which case
        no code is inserted.
        N)r  rr  r   rs  rf   rM   r^   )r   rL   lpyobjs      r   r^   zPyLower.decref  s?    
 ,,U^^<::JJe$  r   c                 $    | j                  |      S )z>
        Freeze a Python string object into the code.
        )r   )r   strings     r   rT   zPyLower._freeze_string  s     ''r   )F)r   r0   )'r   r   r   r   PyGeneratorLowerGeneratorLowerr4   r7   r;   r@   r   r   r   rE   r   r   r   r   r   r5  r  r>  r  r   rO   r;  ry   r=   rc  rJ   rs   rF   rZ  rb  rx  rw   r^   rT   __classcell__)r9   s   @r   r.   r.   O   s    00N V0p 5 5+:Z&("e,N'V%.<++20H!
J$0!
!%(r   r.   )?r   r:  r   r   	functoolsr   llvmlite.irrg   
numba.corer   r   r   r   r   numba.core.errorsr	   r
   r   numba.core.loweringr   r1   localsr7  r   r  rl  submultruedivfloordivrD  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   r.   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   