+
    :i                     B   R t ^ RIHt ^ RIHt ^ RIt^ RIt^ RIHt ^ RI	H
t
HtHt ^ RIHtHt ]! RRR	.4      t]! R
R4      t]P$                  ! ^ 4      t]P$                  ! ^@4      t]tR t]! ^ 4      t]! R4      t]! R4      t]! R 4      t^t]! ]4      t ! R R]4      t ! R R]4      t ! R R]4      t ^ t!^t"^t#^t$^t%]PL                  ! ]]]]].4      t']PP                  ! ]'4      t) ! R R]4      t* ! R R]4      t+ ! R R]+4      t, ! R R]+4      t-R],R]-/t.R t/R# )!z3
Calling conventions for Numba-compiled functions.
)
namedtuple)IterableN)ir)typescgutilserrors)PYOBJECTGENERIC_POINTER	TryStatusin_tryexcinfoStatusc                 8    \         P                  ! \        V 4      # N)r   Constant	errcode_t)codes   &Q/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/core/callconv.py
_const_intr   +   s    ;;y$''    c                   h   a  ] tR t^:t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tRtV tR# )BaseCallConvc                    Wn         R # r   context)selfr   s   &&r   __init__BaseCallConv.__init__<   s    r   c                B   V\         P                  8X  d   V P                  V4       R# W#8X  d   V P                  P	                  WVR 7      p\
        P                  ! WP                  4      pVP                  V4      ;_uu_ 4        V P                  P                  WP                  VP                  4      pV P                  W4       RRR4       V P                  V4       R# \        V\         P                  4      '       gr   W2P                  8w  d)   V P                  P                  WVVP                  R7      pV P                  P                  WP                  V4      pV P                  W4       R# \!        RP#                  VV4      4      h  + '       g   i     L; i))valueN)fromtytotyzreturning {0} for {1})r   nonereturn_native_noner   make_helperr   as_bool_bitvalidif_thenget_return_valuetypedatareturn_value
isinstanceOptionalcastNotImplementedErrorformat)r   builderrettyvaltyr   optvalvalidbitretvals   &&&&&   r   return_optional_value"BaseCallConv.return_optional_value?   s7   EJJ##G,^\\--gE-JF**7LLAH**66w

7={{D!!'2 +
 ##G,E5>>22

"))'/4zz * ;\\227JJNFg. &&=&D&DUEJ'L M M! +*s   AFF	c                2    V P                  V\        4       R # r   )_return_errcode_rawRETCODE_NONEr   r1   s   &&r   r#   BaseCallConv.return_native_none\   s      ,7r   c                2    V P                  V\        4       R # r   )r:   RETCODE_EXCr<   s   &&r   
return_excBaseCallConv.return_exc_   s      +6r   c                2    V P                  V\        4       R # r   )r:   RETCODE_STOPITr<   s   &&r   return_stop_iteration"BaseCallConv.return_stop_iterationb   s      .9r   c                x    V P                   P                  V,          P                  4       pVP                  4       # )zA
Get the actual type of the return argument for Numba type *ty*.
)r   data_model_managerget_return_type
as_pointer)r   tyrestypes   && r   rH   BaseCallConv.get_return_typee   s0     ,,11"5EEG!!##r   c                4    V P                  V4      pW!n        V# )zC
Initialize and return a call helper object for the given builder.
)_make_call_helper_BaseCallConv__call_helper)r   r1   chs   && r   init_call_helperBaseCallConv.init_call_helperl   s     ##G, "	r   c                    VP                   # r   )rO   r<   s   &&r   _get_call_helperBaseCallConv._get_call_helpert   s    $$$r   c                8    VP                  VP                  4      # r   )unserialize
excinfoptr)r   r1   pyapistatuss   &&&&r   unpack_exceptionBaseCallConv.unpack_exceptionw   s      !2!233r   c           	        VP                   P                  4       pVP                  VP                  4      ;_uu_ 4        VP	                  4        V P                  WV4      p\        P                  ! V\        P                  ! W4      4      ;_uu_ 4        VP                  V4       RRR4       VP                  V4       RRR4       VP                  VP                  4      ;_uu_ 4        VP                  R4       VP                  V4       RRR4       VP                  VP                  4      ;_uu_ 4        VP                  V4       RRR4       VP                  RR4       VP                  V4       VP                  V4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i)zD
Given a non-ok *status*, raise the corresponding Python exception.
NPyExc_StopIterationPyExc_SystemErrorz*unknown error when calling native function)functionappend_basic_blockr'   is_user_exc	err_clearr[   r   	if_likelyis_not_nullraise_objectbranchis_stop_iterationerr_set_noneis_python_excerr_set_stringposition_at_end)r   r1   rY   rZ   bbendexcs   &&&&  r   raise_errorBaseCallConv.raise_errorz   sO      335__V//00 OO''?C""7#*#6#6w#DF F""3'F NN5! 1 __V556645NN5! 7 __V1122NN5! 3 	0I	Ku&#F F 10 76 32s<   AFF	&F*#F.8GFFF+	.F>	G	c                h    V P                  V4      pV P                  V4      pVP                  W4      # )z}
Get the decoded (unpacked) Python arguments with *argtypes*
from LLVM function *func*.  A tuple of LLVM values is returned.
)get_arguments_get_arg_packerfrom_arguments)r   r1   argtypesfuncraw_argsarginfos   &&&&  r   decode_argumentsBaseCallConv.decode_arguments   s5    
 %%d+&&x0%%g88r   c                8    V P                   P                  V4      # )z6
Get an argument packer for the given argument types.
)r   get_arg_packer)r   ru   s   &&r   rs   BaseCallConv._get_arg_packer   s     ||**844r   r   N)__name__
__module____qualname____firstlineno__r   r7   r#   r@   rD   rH   rQ   rT   r[   ro   ry   rs   __static_attributes____classdictcell____classdict__s   @r   r   r   :   sG     M:87:$%4'<95 5r   r   c                   h   a  ] tR t^t o RtR tR tRR ltR tR t	R t
R	 tRR
 ltR tR tRtV tR# )MinimalCallConva  
A minimal calling convention, suitable for e.g. GPU targets.
The implemented function signature is:

    retcode_t (<Python return type>*, ... <Python arguments>)

The return code will be one of the RETCODE_* constants or a
function-specific user exception id (>= RETCODE_USEREXC).

Caller is responsible for allocating a slot for the return value
(passed as a pointer in the first argument).
c                    \        4       # r   )_MinimalCallHelperr<   s   &&r   rN   !MinimalCallConv._make_call_helper   s    !##r   c                J   VP                   P                  ^ ,          pVP                  VP                  P                  8X  g:   Q \	        VP                  4      \	        VP                  P                  4      34       hVP                  W#4       V P                  V\        4       R# )    N)r`   argsr)   pointeestrstorer:   
RETCODE_OKr   r1   r6   retptrs   &&& r   r+   MinimalCallConv.return_value   sw    !!&&q){{fkk111 	9s6;;#6#678	91f%  *5r   Nc                   Ve&   \        V\        4      '       g   \        RV: 24      hVe&   \        V\        4      '       g   \        RV: 24      hVe9   VP                  4       pVf   TpWdP                  VP                  3pR V9   d   R pMR pV P                  V4      pVP                  W#V4      p	V P                  V\        V	4      4       R # )N+exc should be None or exception class, got &exc_args should be None or tuple, got )
issubclassBaseException	TypeErrorr,   tuple_raw_function_namefilenamelinerT   _add_exceptionr:   r   )
r   r1   rn   exc_argsloc	func_namefnamelocinfocall_helperexc_ids
   &&&&&&    r   return_user_excMinimalCallConv.return_user_exc   s    ?:c=#A#A"% & &
8U(C(C'* + + ?**,E}!llCHH5GwG++G4++C7C  *V*<=r   c                <    V P                  WP                  4       R # r   )r:   r   )r   r1   rZ   s   &&&r   return_status_propagate'MinimalCallConv.return_status_propagate   s      ++6r   c                j    \        V\        4      '       d   \        V4      pVP                  V4       R # r   )r,   intr   retr   r1   r   s   &&&r   r:   #MinimalCallConv._return_errcode_raw   s%    dC  d#DDr   c                V   VP                  RV\        4      pVP                  RV\        4      pVP                  W44      pVP	                  V4      pVP                  RV\
        4      pVP                  RV\        4      pVP                  RV\        4      p	\        VVVVVV	VRR7      p
V
# )z/
Given a return *code*, get a Status instance.
==>=Nr   is_okis_errorrj   is_nonerb   rh   rX   )	icmp_signedr   r;   or_not_r?   rC   RETCODE_USEREXCr   )r   r1   r   normr"   okerrrn   rh   rb   rZ   s   &&&        r   _get_return_status"MinimalCallConv._get_return_status   s     ""4z:""4|<[[$ll2!!$k:#//dNK))$oFT !$&) $$/*;#') r   c                    V P                  V4      p\        VP                  4      pV P                  V4      p\        P
                  ! \        V.V,           4      pV# zA
Get the implemented Function type for *restype* and *argtypes*.
)rs   listargument_typesrH   r   FunctionTyper   r   rK   ru   rx   resptrfntys   &&&   r   get_function_type!MinimalCallConv.get_function_type   sP     &&x0../%%g.y6(X*=>r   c                    V'       d   Q hV P                  V4      pTP                  V P                  V4      V Uu. uF  pRV,           NK  	  up4       RVP                  ^ ,          n        R# u upi )z1
Set names and attributes of function arguments.
arg.z.retN)rs   assign_namesrr   r   name)r   fnr   fe_argtypesnoaliasrx   as   &&&&&  r   decorate_function!MinimalCallConv.decorate_function  sc     {&&{3T//3267$Qfqjj$7	9 
 8s   A.
c                (    VP                   R,          # )0
Get the Python-level arguments of LLVM *func*.
:   NNr   r   rv   s   &&r   rr   MinimalCallConv.get_arguments       yy}r   c                   VP                   ^ ,          P                  P                  p\        P                  ! W4      pVP                  \        P                  ! V4      V4       V P                  V4      pVP                  W4      pV.\        V4      ,           p	VP                  W)4      p
V P                  W4      pVP                  V4      pV P                  P                  WV4      pW3# )z#
Call the Numba-compiled *callee*.
)r   r)   r   r   alloca_oncer   get_null_valuers   as_argumentsr   callr   loadr   get_returned_value)r   r1   calleerestyargtysr   r2   	retvaltmprx   realargsr   rZ   r6   outs   &&&&&&        r   call_functionMinimalCallConv.call_function  s     A##++''7	g,,U3Y?&&v.##G2;d+||F-((7i(ll--gfE{r    NNNF)r~   r   r   r   __doc__rN   r+   r   r   r:   r   r   r   rr   r   r   r   r   s   @r   r   r      sA     $6>47
,! r   r   c                   6   a  ] tR tRt o RtR tR tR tRtV t	R# )r   i%  z
A call helper object for the "minimal" calling convention.
User exceptions are represented as integer codes and stored in
a mapping for retrieval from the caller.
c                    / V n         R # r   
exceptions)r   s   &r   r   _MinimalCallHelper.__init__,  s	    r   c                h    \        V P                  4      \        ,           pWV3V P                  V&   V# )z
Add a new user exception to this helper. Returns an integer that can be
used to refer to the added exception in future.

Parameters
----------
exc :
    exception type
exc_args : None or tuple
    exception args
locinfo : tuple
    location information
)lenr   FIRST_USEREXC)r   rn   r   r   r   s   &&&& r   r   !_MinimalCallHelper._add_exception/  s/     T__%5"%"8r   c                |     V P                   V,          #   \         d    RT,          p\        pT3pRpY4T3u # i ; i)z
Get information about a user exception. Returns a tuple of
(exception type, exception args, location information).

Parameters
----------
id : integer
    The ID of the exception to look up
z#unknown error %d in native functionN)r   KeyErrorSystemError)r   r   msgrn   r   r   s   &&    r   get_exception _MinimalCallHelper.get_exceptionA  sK    	*??6** 	*7&@CCvHG'))	*s    #;;r   N)
r~   r   r   r   r   r   r   r   r   r   r   s   @r   r   r   %  s     $* *r   r   c                      a  ] tR tRt o Rt]P                  ! ^4      tR tR t	R t
RR ltRR ltR	 tR
 tR tR tRR ltRR ltR tR tR tR tR tR tR tR tRR ltR tR tR tR R ltRt V t!R# )!CPUCallConvia  a  
The calling convention for CPU targets.
The implemented function signature is:

    retcode_t (<Python return type>*, excinfo **, ... <Python arguments>)

The return code will be one of the RETCODE_* constants.
If RETCODE_USEREXC, the exception info pointer will be filled with
a pointer to a constant struct describing the raised exception.

Caller is responsible for allocating slots for the return value
and the exception info pointer (passed as first and second arguments,
respectively).
c                    R # r   r   r<   s   &&r   rN   CPUCallConv._make_call_helperr  s    r   c                F   V P                  VP                  4      pVP                  VP                  P                  8X  g:   Q \	        VP                  4      \	        VP                  P                  4      34       hVP                  W#4       V P                  V\        4       R # r   )_get_return_argumentr`   r)   r   r   r   r:   r   r   s   &&& r   r+   CPUCallConv.return_valueu  sw    **7+;+;<{{fkk111 	9s6;;#6#678	91f%  *5r   c                    Ve9   VP                  4       pVf   TpWSP                  VP                  3pR V9   d   R pMR pWV3pV# r   )r   r   r   )r   rn   r   r   r   r   r   s   &&&&&  r   build_excinfo_struct CPUCallConv.build_excinfo_struct|  sR    ?**,E}!llCHH5GwGg&
r   Nc                *   Ve&   \        V\        4      '       g   \        RV: 24      hVe&   \        V\        4      '       g   \        RV: 24      hVf   \	        4       pV P
                  P                  V4      pV P                  W#WE4      pVP                  V4      pV P                  VP                  4      pVP                  Wx4      p	VP                  P                  \        P                  ! ^4      ! ^4      .4      p
V	P!                  RV
4       R # )Nr   r   numba_exception_output)r   r   r   r,   r   r   get_python_apir  serialize_object_get_excinfo_argumentr`   r   moduleadd_metadatar   IntTypeset_metadata)r   r1   rn   r   r   r   rY   	struct_gvexcptrr   mds   &&&&&&     r   set_static_user_excCPUCallConv.set_static_user_exc  s    ?:c=#A#A"% & &
8U(C(C'* + +
 wHJ ++G4''sF**3/	++G,<,<=i0^^(("**Q-*:);<3R8r   c                    \        VR R4      pV P                  WVWER7       V P                  V4       V'       d   VP                  VR,          4       R# V P	                  V\
        4       R# )_in_try_blockF)r   r   r   targetN)getattrr  check_try_statusrg   r:   r   )r   r1   rn   r   r   r   try_infos   &&&&&& r   r   CPUCallConv.return_user_exc  s`    7OU;  %( 	! 	?g& NN8H-. $$Wo>r   c                   VP                   pVP                  VP                  V4      \        4      pVP                  VP                  V4      \        4      pVP                  WQP                  WbP                  4      4      pVP                  VP                  V4      \        4      pVP                  VP                  V4      \        4      p	\        P                  ! \        \        .4      p
VP                  WP                  4       4      pVP!                  W.4      p\"        P$                  ! W4      p\"        P&                  ! W4      ;_uu_ 4        R pVP)                  RV4       VP*                  P,                  p
\/        V
P0                  \        P2                  4      '       g1   VP5                  \"        P6                  ! V
P0                  4      4       MVP9                  4        RRR4       VP;                  W|4      pV P<                  P>                  '       d?   V P<                  P@                  PC                  WP                  WBPD                  4      4       V#   + '       g   i     L}; i)z<Error creating Python tuple from runtime exception argumentsPyExc_RuntimeErrorN)#rX   extract_valuer   PICKLE_BUF_IDXPICKLE_BUFSZ_IDXbytes_from_string_and_sizesext
py_ssize_tHASH_BUF_IDXUNWRAP_FUNC_IDXr   r   r   r	   bitcastrI   r   r   is_nullif_unlikelyrk   r`   function_typer,   return_typeVoidTyper   r   ret_voidbuild_dynamic_excinfo_structr   
enable_nrtnrtfreevoidptr)r   r1   rY   rZ   excinfo_ptr	picklebufpicklebuf_szstatic_exc_bytesdyn_argsfunc_ptrr   r   py_tuplefailedr   r   s   &&&&            r   unpack_dynamic_exception$CPUCallConv.unpack_dynamic_exception  s   '' ))LL%~7	,,LL%'79 ;;||L2B2BCE ((LL%|5((LL%8 x/):;__X'89<<J/
 3  11C  !5s;##11Dd..<<G2243C3CDE  " 2 445EP <<""" LL!!mmDF+ 21s   BII*	c           	        VP                   pVP                  VP                  V4      \        4      pVP	                  R V\        ^ 4      4      pVP                  V4      ;_uu_ 4       w  rxV;_uu_ 4        V P                  WV4      p	VP                  p
RRR4       V;_uu_ 4        VP                  V4      pVP                  pRRR4       RRR4       VP                  XP                  4      pVP                  X	X
4       VP                  VX4       V#   + '       g   i     L; i  + '       g   i     Ll; i  + '       g   i     Lw; i)>N)rX   r  r   ALLOC_FLAG_IDXr   int32_tif_elser;  blockrW   phir)   add_incoming)r   r1   rY   rZ   r3  
alloc_flaggtthen	otherwisedyn_excbb_then
static_excbb_elserC  s   &&&&          r   r[   CPUCallConv.unpack_exception  s     ''**7<<+D+9;
  j'!*=__R  $5T77O!--  "..{;
!-- 	 ! kk*//*'*W-
  	 ! s<   'D:4D	D:%D'	D:D$D:'D72D::E
	c                   \         P                  ! \        V4      P                  4       4      P	                  4       pR V 2pWQP
                  9   d   VP
                  P                  V4      # \        P                  ! \        \        .4      p\        P                  ! WV4      pRVn        VP                  P                  R4       VP                  P                  R4       VP                  R4      p\        P                  ! V4      p	V P                   P#                  V	4      p
VP%                  4       pV	P'                  VP(                  ^ ,          V4      pV Uu. uF
  qf   K  VNK  	  pp. pV P                   P+                  V	RR7      p\-        V4       F  w  ppV	P/                  V	P1                  V4      V4      pV
P3                  VVVR7      pV\4        P6                  ! VP8                  4      8X  d   RV R	2p\:        P<                  ! V4      hVP?                  V4       K  	  V P                   P@                  PC                  V	V PE                  V	PF                  4      4       V
PI                  V4      pV	PK                  V4       V# u upi )
__excinfo_unwrap_argsexternalnounwindnoinline T)return_pyobject)env_managerzCannot convert native z to a Python object.)&hashlibsha1r   encode	hexdigestglobalsgetr   r   r	   Functionlinkage
attributesaddra   	IRBuilderr   r
  rI   r'  r   get_env_manager	enumerater  r   from_native_valuer   r   r)   r   TypingErrorappendr0  r1  r  r`   
tuple_packr   )r   r  st_typenb_types_hashr   r   r   bb_entryr1   rY   st_type_ptrst_ptrtypobjsrU  ivalobjr   tups   &&&&                 r    emit_unwrap_dynamic_exception_fn,CPUCallConv.emit_unwrap_dynamic_exception_fn   s     S\0023==?&ug.>>!>>%%d++0AB[[t,
 	*%
*%((,,,x(++G4 ((*[9#+?8CCC8? ll227CG 3 I)FAs''V(<a@C))#s)LC g,,SXX66.se3GH((--KK * 	g"778H8HI	K t$C	5 @s   J	#J	c                   VP                  V P                  P                  V4      4      pVP                  V P                  P                  P                  W4      VP                  4       4      pV Uu. uF'  p\        V\        P                  4      '       g   K%  VNK)  	  pp\        ^ 4      p\        V4       F0  w  rVP                  WqP                  Wh\        V	4      .4      4       K2  	  V# u upi )z@
Create an anonymous struct containing the given LLVM *values*.
)r$  r   get_abi_sizeofr'  r0  allocaterI   r,   r   Valuer@  rb  r   gep)
r   r1   rY   struct_typer   st_sizerl  argzeroidxs
   &&&&&     r   emit_wrap_args_insts CPUCallConv.emit_wrap_args_instsb  s     ""4<<#>#>{#KLLL%%g7""$&
 $,I8Cz#rxx/HCC8Iqz!(+HCMM#{{6'#,3GHI ,  Js   2"C-C-c                   \        V\        4      '       g   \        RV: 24      hVe&   \        V\        4      '       g   \        RV: 24      hV P
                  P                  V4      pV P
                  P                  4       p\	        V U	u. uF'  p	\        V	\        P                  4      '       d   TMT	NK)  	  up	4      p
V P                  W*WV4      pV P                  VP                  4      pVP                  VP                  V4      4      p\        P                  ! V U	u. uF1  p	\        V	\        P                  4      '       g   K%  V	P                   NK3  	  up	4      pV P#                  WVV4      pV P%                  VP&                  W4      pVP)                  V P
                  P+                  \,        4      4      pVP/                  V P
                  P0                  P3                  VV4      \4        4      p\7        ^ 4      pVP9                  V\:        4      VP9                  V\<        4      VP/                  V\>        4      VP/                  V\>        4      \7        \A        V4      4      3p\C        V4       F2  w  pp	VPE                  WPG                  VV\7        V4      .4      4       K4  	  VPE                  VV4       R# u up	i u up	i )zN
Compute the required bits to emit an exception with dynamic (runtime)
values
z&exc should be an exception class, got Nr   )$r   r   r   r,   r   r   r
  get_dummy_valuer   rx  r  r  r`   r   r  LiteralStructTyper)   r  rs  r  r$  rv  	excinfo_tr'  r0  rw  excinfo_ptr_tr@  r  r   r!  r	   r   rb  r   ry  )r   r1   rn   r   rh  r   r   rY   dummyr|  exc_args_static
excinfo_ppr  rz  rl  	unwrap_fnexc_size	excinfo_pr}  
exc_fieldsr~  s   &&&&&&&              r   set_dynamic_user_exc CPUCallConv.set_dynamic_user_excu  sQ    #}--"% & &
8U(C(C'* + +b ++G4,,.DLMHSjbhh//US8HMO''cM//0@0@A
LL!7!7!<=	 ** ,G,6sBHH,E -5CHH ,G H**7;+3599NNK3	 ##DLL$?$?	$JKOOLL%%gx8	
 qz++I~F++I7GHoofo>ooiAc+./	1

 "*-HCMM#{{9tWS\6JKL .i,; N,Gs   -K ""K	Kc           	     Z    V P                  WW4WVR7       V P                  V\        4       R# )z6
Same as ::return_user_exc but for dynamic exceptions
)r   r   N)r  r:   r   )r   r1   rn   r   rh  r   r   s   &&&&&&&r   return_dynamic_user_exc#CPUCallConv.return_dynamic_user_exc  s/    
 	!!'&) 	" 	@  /:r   c                     VP                   #   \         d4    \        P                  ! T\        P                  R RR7      pY!n         Tu # i ; i)	try_stateT)r   zfill)_CPUCallConv__eh_try_stateAttributeErrorr   r   intp_t)r   r1   ptrs   && r   _get_try_stateCPUCallConv._get_try_state  sL    	))) 	%%kC &)"J	s    ;AAc                    V P                  V4      pVP                  V4      pVP                  R W3P                  ^ 4      4      pV P	                  VP
                  4      pVP                  V4      p\        WFR7      # )r>  )r   r   )r  r   icmp_unsignedr)   r  r`   r
   )r   r1   try_state_ptr	try_depthr   rX   r   s   &&     r   r  CPUCallConv.check_try_status  sj    ++G4LL/	&&sI~~a7HI//0@0@A
,,z*88r   c                    V P                  V4      pVP                  V4      pVP                  W3P                  ^4      4      pVP	                  WB4       R# r   N)r  r   r_  r)   r   )r   r1   r  oldnews   &&   r   set_try_statusCPUCallConv.set_try_status  sB    ++G4ll=)kk#xx{+c)r   c                X   V P                  V4      pVP                  V4      pVP                  W3P                  ^4      4      pVP	                  WB4       V P                  VP                  4      p\        P                  ! VP                  P                  4      pVP	                  We4       R# r  )
r  r   subr)   r   r  r`   r   r   r   )r   r1   r  r  r  rX   nulls   &&     r   unset_try_statusCPUCallConv.unset_try_status  s    ++G4ll=)kk#xx{+c) //0@0@A
%%joo&=&=>d'r   c                j   V P                  V4      pV P                  VP                  4      pVP                  VP                  V4       VP                  VP                  VP                  4      4      ;_uu_ 4        V P                  WP                  4       R R R 4       R #   + '       g   i     R # ; ir   )
r  r  r`   r   rX   r'   r   r   r:   r   )r   r1   rZ   	trystatusr  s   &&&  r   r   #CPUCallConv.return_status_propagate  s{    ))'2	++G,<,<=f''0__W\\)*:*:;<<$$Wkk: =<<<s   ;B!!B2	c                (    VP                  V4       R # r   )r   r   s   &&&r   r:   CPUCallConv._return_errcode_raw  s    Dr   c                   VP                  RV\        4      pVP                  RV\        4      pVP                  RV\        4      pVP                  RV\        4      pVP                  WE4      pVP                  V4      p	VP                  RV\        4      p
VP                  W\        P                  ! \        \        P                  4      4      p\        VVV	VVV
VVR7      pV# )z@
Given a return *code* and *excinfoptr*, get a Status instance.
r   r   r   )r   r   r;   r?   rC   r   r   r   selectr   r   r  	Undefinedr   )r   r1   r   rX   r   r"   rn   rh   r   r   rb   rZ   s   &&&&        r   r   CPUCallConv._get_return_status  s     ""4z:""4|<!!$k:#//dNK[[$ll2))$oF^^K$&KKr||$LN
 T !$&) $$/*;#-/ r   c                    V P                  V4      p\        VP                  4      pV P                  V4      p\        P
                  ! \        V\        P                  ! \        4      .V,           4      pV# r   )	rs   r   r   rH   r   r   r   PointerTyper  r   s   &&&   r   r   CPUCallConv.get_function_type&  sd     &&x0../%%g.y &}(EF!) *+ r   c                @  a  S P                  V4      pTP                  S P                  V4      V Uu. uF  pRV,           NK  	  up4       S P                  V4      pRVn        VP                  R4       VP                  R4       S P                  V4      pRVn        VP                  R4       VP                  R4       V'       di   S P                  V4      pV FQ  p\        VP                  \        P                  4      '       g   K/  VP                  R4       VP                  R4       KS  	  V 3R lp	\        \        W4      4      p
V
'       dI   VP                  P                  R4      pVP                  VP                  P!                  V.4      4       R# R# u upi )	zE
Set names of function arguments, and add useful attributes to them.
r   r   	nocapturer   r   c                    < \        V \        P                  4      '       g5   SP                  P                  pW,          P                  4       '       d   R # R# TF)r,   r   Arrayr   rG   contains_nrt_meminfo)rJ   dmmr   s   & r   type_may_always_need_nrt?CPUCallConv.decorate_function.<locals>.type_may_always_need_nrtK  s:    b%++..ll557//11r   numba_args_may_always_need_nrtN)rs   r   rr   r  r   add_attributer  r,   r)   r   r  anymapr  add_named_metadatar_  r  )r   r   r   r   r   rx   r   retargexcargr  args_may_always_need_nrtnmds   f&&&&       r   r   CPUCallConv.decorate_function2  sX    &&{3T//3267$Qfqjj$7	9**2.[)Y'++B/[)Y'%%b)Daffbnn55OOK0OOI. 	 $'(6$
  $))..0C GGBII**B401	 $? 8s   F
c                (    VP                   R,          # )r   :   NNr   r   s   &&r   rr   CPUCallConv.get_arguments]  r   r   c                (    VP                   ^ ,          # )r   r   r   s   &&r   r   CPUCallConv._get_return_argumentc      yy|r   c                (    VP                   ^,          # )r   r   r   s   &&r   r  !CPUCallConv._get_excinfo_argumentf  r  r   c                V   V P                  V4      P                  pV P                  VP                  4      P                  pWx8w  d   RV RV 2p	\	        V	4      h\
        P                  ! W4      p
VP                  \
        P                  ! V4      V
4       \
        P                  ! V\        P                  ! \        4      RR7      pV P                  V4      p\        VP                  W4      4      pW.V,           pVf   RpMC\        V\         4      '       d#   \        V\"        4      '       g   \%        V4      pM\'        R4      hVP)                  W-VR7      pV P+                  WVP-                  V4      4      pVP-                  V
4      pV P.                  P1                  WV4      pVV3# )a  
Call the Numba-compiled *callee*.
Parameters:
-----------
attrs: LLVM style string or iterable of individual attributes, default
       is None which specifies no attributes. Examples:
       LLVM style string: "noinline fast"
       Equivalent iterable: ("noinline", "fast")
zFunction type returns z but resty=r   )r   z,attrs must be an iterable of strings or None)attrsr   )rH   r   r  r*  
ValueErrorr   r   r   r   r   r  r  rs   r   r   r,   r   r   r   r   r   r   r   r   r   )r   r1   r   r   r   r   r  r2   actual_rettymr   rX   rx   r   _attrsr   rZ   r6   r   s   &&&&&&&            r   r   CPUCallConv.call_functioni  sn    $$U+33001E1EFNN (k%IAQ-''7	g,,U3Y?(("..2K.79
 &&v.G((78*T1 =Fx((E31G1G5\FJKK||FF|;(()0j)ACi(ll--gfEs{r   r   r   NNr   r   )"r~   r   r   r   r   	itertoolscount_status_idsrN   r+   r  r  r   r;  r[   rs  r  r  r  r  r  r  r  r   r:   r   r   r   rr   r  r  r   r   r   r   s   @r   r   r   a  s      //!$K6"79r?2h0@D&[-z;	9*(;0
)2V) )r   r   c                   0   a  ] tR tRt o R tRR ltRtV tR# )
ErrorModeli  c                    Wn         R # r   	call_conv)r   r  s   &&r   r   ErrorModel.__init__  s    "r   Nc                r    V P                   '       d%   V P                  P                  V\        VV4       R # R# r  )raise_on_fp_zero_divisionr  r   ZeroDivisionError)r   r1   r   r   s   &&&&r   fp_zero_divisionErrorModel.fp_zero_division  s0    )))NN**74Ex+.0r   r  r  )r~   r   r   r   r   r  r   r   r   s   @r   r  r    s     # r   r  c                       ] tR tRtRtRtRtR# )PythonErrorModeli  zD
The Python error model.  Any invalid FP input raises an exception.
Tr   Nr~   r   r   r   r   r  r   r   r   r   r  r    s     !%r   r  c                       ] tR tRtRtRtRtR# )NumpyErrorModeli  a  
In the Numpy error model, floating-point errors don't raise an
exception.  The FPU exception state is inspected by Numpy at the
end of a ufunc's execution and a warning is raised if appropriate.

Note there's no easy way to set the FPU exception state from LLVM.
Instructions known to set an FP exception can be optimized away:
    https://llvm.org/bugs/show_bug.cgi?id=6050
    http://lists.llvm.org/pipermail/llvm-dev/2014-September/076918.html
    http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20140929/237997.html
Fr   Nr  r   r   r   r  r    s    
 !&r   r  pythonnumpyc                <    \         V ,          ! VP                  4      # )z>
Create an error model instance for the given target context.
)error_modelsr  )
model_namer   s   &&r   create_error_modelr    s     
#G$5$566r   )r   r   r   r   rh   rj   rb   rX   )0r   collectionsr   collections.abcr   r  rV  llvmliter   
numba.corer   r   r   numba.core.baser   r	   r
   r   r  r@  int64_tr   r   r   r?   r;   rC   r   r   objectr   r   r   r   r!  r%  r&  r?  r  r  r  r  r   r  r  r  r  r  r   r   r   <module>r     se   # $    - - 5 {Xy$9:	 
H
& **R.
**R.	( ]
n"~B]+k56 k5\zl zz-* -*d    gIK	y)q, qh %z %&j &  _7r   