+
    :i                        R t ^ RIHt ^ RIHtHt ^ RIHtHtH	t	H
t
 ^ RIHtHt ^ RIHtHt ^ RIHtHt ^ RIHt ^ RIHtHt ]! ]P2                  4      R	 4       t]! ]P2                  4      R
 4       t]! ]P8                  4      ]! ]P:                  4      R 4       4       t]! ]P>                  4      R 4       t ]! ]P>                  4      R 4       t!]! ]PD                  4      R 4       t#]! ]PD                  4      R 4       t$]! ]PJ                  4      R 4       t&]! ]PJ                  4      R 4       t']! ]PP                  4      R 4       t)]! ]PP                  4      ]! ]PT                  4      R 4       4       t+]! ]PX                  4      R 4       t-]! ]PX                  4      R 4       t.]! ]P^                  4      R 4       t0]! ]P^                  4      R 4       t1]! ]Pd                  4      R 4       t3]! ]Ph                  4      R 4       t5]! ]Ph                  4      R 4       t6]! ]Pn                  4      R 4       t8]! ]Pr                  4      R 4       t:]! ]Pr                  4      R 4       t;]! ]Px                  4      R 4       t=]! ]Px                  4      R 4       t>]! ]P~                  4      R  4       t@]! ]P                  4      R! 4       tB]! ]P                  4      R" 4       tC]! ]P                  4      R# 4       tE]! ]P                  4      R$ 4       tF]! ]P                  4      R% 4       tH]! ]P                  4      R& 4       tJ]! ]P                  4      R' 4       tL]! ]P                  4      R( 4       tN]! ]P                  4      R) 4       tP]! ]P                  4      R* 4       tQ]! ]P                  4      ]! ]P                  4      R+ 4       4       tT]! ]P                  4      ]! ]P                  4      R, 4       4       tW]! ]P                  4      R- 4       tY]! ]P                  4      R. 4       t[ ! R/ R0]\4      t]R1 t^]! ]P                  4      R2 4       t_]	! ]P                  4      R3 4       t`R4 ta]! ]P                  4      R5 4       tcR6 td]! ]P                  4      R7 4       te]	! ]P                  4      R8 4       tf]! ]P                  4      R9 4       th]! ]P                  4      R: 4       ti]! ]P                  4      R; 4       tk]! ]P                  4      R< 4       tl]! ]P                  4      R= 4       tn]! ]P                  4      R> 4       to]! ]P                  4      ]! ]P                  4      R? 4       4       tr]! ]P                  4      ]! ]P                  4      R@ 4       4       ts]! ]P                  4      RA 4       tu]! ]P                  4      RB 4       tw]! ]P                  4      RC 4       tx]! ]P                  4      RD 4       tz]! ]P                  4      RE 4       trRF t{RG t|]! ]P                  4      RH 4       t~]! ]P                  4      RI 4       t]! ]P                  4      RJ 4       t]! ]EP                  4      RK 4       t]! ]EP                  4      RL 4       t]! ]EP                  4      RM 4       t]EP                  ! RN4      t]! ]EP                  4      RO 4       t]! ]EP                  4      RP 4       tRQ# )RzG
Boxing and unboxing of native Numba values to / from CPython objects.
)ir)typescgutils)boxunboxreflectNativeValue)NumbaNotImplementedErrorTypingError)typeofPurpose)setobjlistobj)numpy_support)contextmanager	ExitStackc                 8    VP                   P                  V4      # N)pyapibool_from_booltypvalcs   &&&O/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/core/boxing.pybox_boolr      s    77!!#&&    c                     VP                   P                  V4      p\        P                  ! VP                  ^ 4      pVP
                  P                  RW44      p\        WRP                   P                  4       R7      # )    !=is_error)	r   object_istruer   Constanttypebuildericmp_signedr   c_api_error)r   objr   istruezeror   s   &&&   r   unbox_booleanr+      sX    WW""3'F;;v{{A&D
))

f
3CsWW%8%8%:;;r   c                     VP                   P                  VP                  WV P                  4      pVP	                  V P                  V4      # r   )contextcastr%   literal_typer   r   s   &&&r   box_literal_integerr0   !   s;     ))..Cc.>.>
?C55!!3''r   c                 N   V P                   '       dK   VP                  P                  WP                  P                  4      pVP                  P                  V4      # VP                  P                  WP                  P                  4      pVP                  P                  V4      # r   )	signedr%   sextr   longlonglong_from_longlongzext	ulonglonglong_from_ulonglong)r   r   r   ivalullvals   &&&  r   box_integerr;   (   sm    
zzzyy~~c77#3#34ww))$//WW%6%67ww**622r   c                    VP                   P                  V 4      p\        P                  ! VP                  V4      pVP
                  P                  V4      pVP
                  P                  V4      ;_uu_ 4        V P                  '       d   VP
                  P                  V4      pMVP
                  P                  V4      pVP
                  P                  V4       VP                  P                  VP                  P                  Wc4      V4       R R R 4       \        VP                  P                  V4      VP
                  P!                  4       R7      #   + '       g   i     LN; i)Nr    )r-   get_argument_typer   alloca_oncer%   r   number_longif_object_okr2   long_as_longlonglong_as_ulonglongdecrefstoretruncr   loadr'   )r   r(   r   ll_typer   longobjllvals   &&&    r   unbox_integerrJ   1   s    ii))#.G


aii
1Cgg!!#&G	
		g	&	&:::GG,,W5EGG--g6E	w					7= 
' qyy~~c* ! 3 3 57 7 
'	&s   ;BEE+	c                     V \         P                  8X  d1   VP                  P                  WP                  P
                  4      pMV \         P                  8X  g   Q hTpVP                  P                  V4      # r   )r   float32r%   fpextr   doublefloat64float_from_double)r   r   r   dbvals   &&& r   	box_floatrR   A   sT    
emm		WW^^4emm###77$$U++r   c                    VP                   P                  V4      pVP                   P                  V4      pVP                   P                  V4       V \        P
                  8X  d7   VP                  P                  VVP                  P                  V 4      4      pMV \        P                  8X  g   Q hTp\        WRP                   P                  4       R 7      # r    )r   number_floatfloat_as_doublerC   r   rL   r%   fptruncr-   r=   rO   r   r'   )r   r(   r   fobjrQ   r   s   &&&   r   unbox_floatrY   J   s    77$DGG##D)EGGNN4
emmii !		 ; ;C @B emm###sWW%8%8%:;;r   c                    VP                   P                  VP                  WR 7      pV \        P                  8X  dv   VP                  P                  VP                  VP                  P                  4      pVP                  P                  VP                  VP                  P                  4      pM.V \        P                  8X  g   Q hVP                  VP                  rTVP                  P                  WE4      # value)r-   make_complexr%   r   	complex64rM   realr   rN   imag
complex128complex_from_doubles)r   r   r   cvalfrealfimags   &&&   r   box_complexrg   X   s    99!!!))S!<D
eoo				177>>:				177>>:e&&&&&yy$))u77''55r   c                    VP                   P                  VP                  \        P                  4      pVP
                  P                  WP                  4       4      p\        P                  ! VP                  V4      p\        P                  ! VP                  V4      ;_uu_ 4        VP
                  P                  R RV : R24       RRR4       V \        P                  8X  d   VP                   P                  VP                  V 4      pVP                   P                  VP                  VP                  \        P                  \        P                   4      Vn        VP                   P                  VP                  VP"                  \        P                  \        P                   4      Vn        MV \        P                  8X  g   Q hTp\%        VP'                  4       VR7      #   + '       g   i     EL'; i)PyExc_TypeErrorzconversion to z failedNr    )r-   r^   r%   r   rb   r   complex_adaptor_getpointerr   is_falseif_unlikelyerr_set_stringr_   r.   r`   rO   rL   ra   r   	_getvalue)r   r(   r   c128okfailedcplxs   &&&    r   unbox_complexrt   d   sN    99!!!))U-=-=>D	
	 	 &6&6&8	9Baii,F			QYY	/	/	0<?A	C 
0 eooyy%%aii5IINN199dii#(==%--A	IINN199dii#(==%--A	 e&&&&&t~~'&99 
0	/	/s   ("G((G9	c                 6    VP                   P                  4       # r   )r   	make_noner   s   &&&r   box_nonerw   |   s    77r   c                 H    \        VP                  P                  4       4      # r   r   r-   get_dummy_valuer   s   &&&r   
unbox_noner{           qyy00233r   c                 L    VP                   P                  WP                  4      # r   )r   create_np_datetime	unit_coder   s   &&&r   box_npdatetimer      s    77%%c==99r   c                     VP                   P                  V4      p\        W2P                   P                  4       R 7      # rT   )r   extract_np_datetimer   r'   r   r(   r   r   s   &&& r   unbox_npdatetimer      s.    
''
%
%c
*CsWW%8%8%:;;r   c                 L    VP                   P                  WP                  4      # r   )r   create_np_timedeltar   r   s   &&&r   box_nptimedeltar      s    77&&sMM::r   c                     VP                   P                  V4      p\        W2P                   P                  4       R 7      # rT   )r   extract_np_timedeltar   r'   r   s   &&& r   unbox_nptimedeltar      s.    
''
&
&s
+CsWW%8%8%:;;r   c                    VP                   P                  \        P                  4      pVP                  P                  W4      pVP                  \        P                  V4      # )z(
Convert a raw pointer to a Python int.
)r-   get_value_typer   uintpr%   ptrtointr   )r   r   r   ll_intpaddrs   &&&  r   box_raw_pointerr      sE    
 ii&&u{{3G99c+D55d##r   c                    VP                  V P                  V4      pVP                  P                  VP                  P	                  V P
                  4      4      pVP                  P                  WC34      # )z.
Fetch an enum member given its native value.
)r   dtyper   unserializeserialize_objectinstance_classcall_function_objargs)r   r   r   valobjcls_objs   &&&  r   box_enumr      sX    
 UU399c"Fgg!!!''":":3;M;M"NOG77(()<<r   c                r    VP                   P                  VR4      pVP                  V P                  V4      # )z5
Convert an enum member's value to its native value.
r]   )r   object_getattr_stringr   r   )r   r(   r   r   s   &&& r   
unbox_enumr      s/    
 WW**38F77399f%%r   c                    Rp\        V4      h)z7This type cannot be boxed, there's no Python equivalentzJUndefVar type cannot be boxed, there is no Python equivalent of this type.)r
   )r   r   r   msgs   &&& r   box_undefvarr      s    C
c
r   c                 ~   \         P                  ! \         P                  ! ^ 4      VP                  P                  P
                  4      pVP                  P                  V\         P                  ! \         P                  ! ^4      4      4      pVP                  P                  WCV P                  VP                  4      # )    )r   r#   IntTyper$   pointeecountr%   bitcastPointerTyper   recreate_recordr   env_manager)r   r   r   sizeptrs   &&&  r   
box_recordr      st     ;;rzz"~sxx'7'7'='=>D
))

C

1!>
?C77""3ciiGGr   c                 H  aa SP                   P                  4       oSP                   P                  VS4      p\        P                  ! SP
                  V4      pSP                  P                  V 4      pSP
                  P                  W54      pVV3R  lp\        WgVR7      # )c                  >   < SP                   P                  S 4       R # r   r   release_bufferbufr   s   r   cleanupunbox_record.<locals>.cleanup       	s#r   r   r!   )
r   alloca_bufferextract_record_datar   is_nullr%   r-   r   r   r   )	r   r(   r   r   r!   ltypr   r   r   s	   &&f     @r   unbox_recordr      sy    
''


!C
''
%
%c3
/Cqyy#.H99##C(D
))

C
&C$sh??r   c                    ^VP                   P                  ^VP                   P                  ^VP                   P                  /\        P
                  ,          pVP                  P                  \        P                  V4      p\        P                  ! VP                  VR7      pVP                  P                  WRP                   P                  4      pVP                  P                  \        P                  V P                   4      pVP#                  ^ 4      pVP#                  ^4      p	VP#                  \        P
                  4      p
\        P                  ! VP                  V4      p\        P$                  ! VP                  V.VP"                  4      ;_uu_ 4       w  pVP                  P'                  VP                  P)                  WbP                  P+                  W4      .4      4      pVP                  P-                  \        P.                  ! VP                  V4      4      ;_uu_ 4        VP                  P1                  VP                  P3                  W4      V4       RRR4       RRR4       VP                  P'                  V4      pVP                   P5                  WFV4      #   + '       g   i     LO; i  + '       g   i     LZ; i)   r\   N)r   py_unicode_1byte_kindpy_unicode_2byte_kindpy_unicode_4byte_kindr   sizeof_unicode_charr-   get_constantr   int32r   alloca_once_valuer%   r   cstringintpr   r$   	loop_nestrF   gepmulif_thenis_not_nullrD   addstring_from_kind_and_data)r   r   r   unicode_kindkindrawptrstrptrfullsizer*   onestepr   idxchstrlens   &&&            r   box_unicodecharseqr      s    	
177((	177((	177((* +8*K*KML 99!!%++|<D&&qyy<FYYvww7Fyy%%ejj#))<H==D
--
C==::;D%%aii6E			199xj(--	@	@ESYY^^AIIMM&99==3K2LMNYYw22199bABBIIOOAIIMM#3U; C	 
A YY^^E"F77,,T6BB CB	 
A	@s%    BK36J0	)K0K ;KK	c           	      @   VP                   P                  V 4      pVP                  P                  V4      w  rErgr\        P
                  ! VP                  V4      ;_uu_ 4        \        P                  ! VP                  V P                  4      p
VP                  P                  R Wj4      pVP                  P                  WV
4      p\        P                  ! VR4      p\        P                  ! VP                  V4      p\        P                  ! VP                  VP                  P                  WP                  4      WV4       RRR4       VP                  P!                  X4      p\#        WP                  P%                  V4      R7      #   + '       g   i     LP; iz<=Nr    )r-   r   r   string_as_string_size_and_kindr   	if_likelyr%   r   r#   r$   r   icmp_unsignedselectr   memcpyr   rF   r   not_)r   r(   r   ltyrq   bufferr   r   is_asciihashvstorage_size	size_fitsnull_stringoutspacerets   &&&            r   unbox_unicodecharseqr      s#   
))
"
"3
'C 	
..s3 ,BH 
		199b	)	){{499cii8II++D$E	 yy	> kk#t,--aiiE 	qyy		))(KK@	& 
*$ ))..
"CsYY^^B%788' 
*	)s   $C!FF	c                    VP                   P                  VP                  W4      pVP                  P	                  VP
                  VP                  4      pVP                   P                  P                  VP                  W4       V# r   )	r-   make_helperr%   r   bytes_from_string_and_sizedatanitemsnrtrC   )r   r   r   r(   r   s   &&&  r   	box_bytesr     s[    
))

		3
4C
''
,
,SXXszz
BCIIMMC-Jr   c           
      4   \         P                  ! VP                  VR 7      pVP                  P                  W2P                  P
                  4      pVP                  P                  \        P                  V P                  4      pVP                  ^ 4      pVP                  ^4      p\         P                  ! VP                  V4      p\         P                  ! VP                  V.VP                  4      ;_uu_ 4       w  p	VP                  P                  VP                  P                  WI.4      4      p
VP                  P                  \         P                   ! VP                  V
4      4      ;_uu_ 4        VP                  P#                  VP                  P%                  W4      V4       RRR4       RRR4       VP                  P                  V4      pVP                  P'                  WK4      #   + '       g   i     LN; i  + '       g   i     LY; i)r\   N)r   r   r%   r   r   r   r-   r   r   r   r   r$   r   rF   r   r   r   rD   r   r   )r   r   r   r   r   r   r*   r   r   r   r   r   s   &&&         r   box_charseqr     sX   &&qyy<FYYvww7Fyy%%ejj#))<H==D
--
C%%aii6E
 
		199xj(--	@	@ESYY^^AIIMM&%89YYw22199bABBIIOOAIIMM#3U; C	 
A YY^^E"F77--f==	 CB	 
A	@s%   >A:H86G4	.H4H?HH	c           	      >   VP                   P                  V 4      pVP                  P                  V4      w  rEp\        P
                  ! VP                  V4      ;_uu_ 4        \        P                  ! VP                  V P                  4      pVP                  P                  R Wg4      pVP                  P                  WV4      p\        P                  ! VR4      p	\        P                  ! VP                  V	4      p
\        P                  ! VP                  VP                  P                  WP                  4      WV4       RRR4       VP                  P!                  X
4      p\#        WP                  P%                  V4      R7      #   + '       g   i     LP; ir   )r-   r   r   string_as_string_and_sizer   r   r%   r   r#   r$   r   r   r   r   r   r   rF   r   r   )r   r(   r   r   rq   r   r   r   r   r   r   r   s   &&&         r   unbox_charseqr   1  s   
))
"
"3
'Cww88=B 
		199b	)	){{499cii8II++D$E	 yy	> kk#t,--aiiE 	qyyyy((;;?	% 
*$ ))..
"CsYY^^B%788' 
*	)s   #C!FF	c           	         VP                   P                  VP                  W4      p\        P                  ! VP                  VP
                  P                  4       4      pVP                  P                  VP                  4      ;_uu_ 4       w  rVV;_uu_ 4        VP                  V P                  VP                  4      pVP                  P                  Wt4       R R R 4       V;_uu_ 4        VP                  P                  VP
                  P                  4       V4       R R R 4       R R R 4       VP                  P                  V4      #   + '       g   i     Lz; i  + '       g   i     LF; i  + '       g   i     LQ; ir   )r-   r   r%   r   r   r   borrow_noneif_elsevalidr   r$   r   rD   rv   rF   )r   r   r   optvalr   then	otherwisevalidress   &&&     r   box_optionalr   M  s    YY""199c7F

#
#AIIqww/B/B/D
EC	
		6<<	(	(,=TTuuSXXv{{3HIIOOH*  YIIOOAGG--/5 	 
) 99>># T Y	 
)	(s=   E4AE	E4.5E!	#E4EE4!E1,E44F	c           	       aaa SP                   P                  SP                  V P                  4      pSP                  P	                  RVSP
                  P                  4       4      o\        P                  ! SP                  VP                  4      p\        P                  ! SP                  \        P                  4      pSP                  P                  S4      ;_uu_ 4       w  rgV;_uu_ 4        SP                  V P                  V4      oSP                   P                  SP                  V P                  SP                  4      pSP                  P                  W4       SP                  P                  SP                   V4       RRR4       V;_uu_ 4        SP                  P                  W44       RRR4       RRR4       SP"                  e
   VVV3R lp	MRp	SP                  P%                  V4      p
\'        V
SP                  P%                  V4      V	R7      #   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i)z6
Convert object *obj* to a native optional structure.
r   Nc                     < S P                   P                  S4      ;_uu_ 4        SP                  4        R R R 4       R #   + '       g   i     R # ; ir   )r%   r   r   )r   is_not_nonenatives   r   r   unbox_optional.<locals>.cleanupq  s1    "";//  0///s   A  A	r!   r   )r-   make_optional_noner%   r$   r&   r   r   r   r>   r   	false_bitr   r   make_optional_valuer]   rD   r!   r   rF   r   )r   r(   r   nonevalretptrerrptrr   orelsejustr   r   r  r  s   &&f        @@r   unbox_optionalr  Z  s   
 ii**199chh?G))''c1773F3F3HIK  GLL9F&&qyy'2C2CDF	
		;	'	'>DTWWSXXs+F9900146<<IDIIOOD)IIOOFOOV4  VIIOOG,  
( ~~!	! 	! 
))..
 CsQYY^^F%;&( (% T V 
(	's=   &I3BH%	IH8	:I%H50I8III	c                "   ^ RI Hp VP                  P                  V4      w  rErgVP                  P                  VP                  V 4      pWXn        Whn        Wxn	        \        VP                  4       VP                  P                  V4      R7      # )z3
Convert object *obj* to a native slice structure.
)slicingr    )numba.cpythonr  r   slice_as_intsr-   r   r%   startstopr   r   ro   r   )	r   r(   r   r  rq   r  r  r   slis	   &&&      r   unbox_slicer  |  si    
 &GG11#6Bt
))

		3
/CIHHs}}1CDDr   c           
         V P                   pR F7  p\        W44      p\        V\        4      '       g   K&   \	        V\
        4       K9  	  V P                   P                  4       w  rxVP                  P                  V4      p	VP                  P                  V4      p
VP                  P                  V	4      pVP                  P                  V
4      pVP                  P                  W4      pVP                  P                  V4       VP                  P                  V4       V#   \         d    p\        RT R\        T4       24      hRp?ii ; i)r  z7Unable to create literal slice. Error encountered with z attribute. N)r  r  r   )literal_valuegetattr
isinstanceintr   r   
ValueErrorstr
__reduce__r   r   r   callrC   )r   r   r   	slice_lit
field_name	field_objepy_ctorpy_argsserialized_ctorserialized_argsctorargsr(   s   &&&           r   box_slice_literalr*    s    !!I/
I2	i%%y'*	 0 ((335Ggg..w7Ogg..w7O77/D77/D
'',,t
"CGGNN4GGNN4J   ..8\ :""%a&+ s   D%%E0E

Ec                 H    \        VP                  P                  4       4      # r   ry   r   r(   r   s   &&&r   unbox_string_literalr-    r|   r   c                 D   VP                   P                  V 4      pV! VP                   VP                  VR 7      pVP                   P                  '       d   \        P
                  ! V P                  4      pVP                  P                  VP                  P                  V4      4      pVP                  P                  WV4      pVP                   P                  P                  VP                  W4       V# VP                  pVP                  P                  V4       V# r[   )r-   
make_arrayr%   
enable_nrtr   as_dtyper   r   
read_const	add_constr   nrt_adapt_ndarray_to_pythonr   rC   parentincref)	r   r   r   nativearycls	nativearynp_dtypedtypeptrnewaryr5  s	   &&&      r   	box_arrayr<    s    99'',LQYY		=Iyy ))#))4==++AMM,C,CH,MN44SxH			QYY1!!	vr   c                f  aa
 SP                   P                  4       o
SP                   P                  VS
4      p\        P                  ! SP
                  V4      pSP                  P                  V 4      pV! SP                  SP
                  4      pVP                  4       p\        P                  ! SP
                  SP
                  P                  V4      4      ;_uu_ 4        SP
                  P                  VSP                   P                  4      pSP                  P                  '       d   SP                   P                  S
V4       MSP                   P                  S
V4       RRR4       V
V3R lp	\!        SP
                  P#                  V4      VV	R7      #   + '       g   i     L>; i)zC
Convert a Py_buffer-providing object to a native array structure.
Nc                  >   < SP                   P                  S 4       R # r   r   r   s   r   r   unbox_buffer.<locals>.cleanup  r   r   r  )r   r   
get_bufferr   r   r%   r-   r/  rk   r   r   r   voidptrr0  nrt_adapt_buffer_from_pythonnumba_buffer_adaptorr   rF   )r   r(   r   resr!   r7  r8  aryptrr   r   r   s   &&f       @r   unbox_bufferrF    s+   
 ''


!C
''

S#
&C""199c2H99'',LQYY		2I""$F			199aiinnX&>	?	?ii899GG00c:GG((c2 
@$ qyy~~f-&( ( 
@	?s   $BF  F0	c                .   VP                   P                  V 4      pV! VP                   VP                  4      pVP                  4       pVP                  P	                  WRP
                  P                  4      pVP                   P                  '       d   VP
                  P                  W4      pMVP
                  P                  W4      p \        P                  ! V P                  4      P                  pVP                  P                  V4      pVP                  P                  RVP                  V4      p	VP                  P'                  \"        P(                  ! VP                  V4      V	4      p
VP                  P+                  V
RR7      ;_uu_ 4        VP
                  P-                  RR4       RRR4       \/        VP                  P1                  V4      V
R7      #   \          d    \"        P$                  p	 Li ; i  + '       g   i     LW; i)z;
Convert a Numpy array object to a native array structure.
r   Flikelyri   zXcan't unbox array from PyObject into native value.  The object maybe of a different typeNr    )r-   r/  r%   rk   r   r   rA  r0  nrt_adapt_ndarray_from_pythonnumba_array_adaptorr   r1  r   itemsizer$   r   r	   r   r  or_r   r   rn   r   rF   )r   r(   r   r7  r8  rE  r   errcodeexpected_itemsizeitemsize_mismatchrr   s   &&&        r   unbox_arrayrQ    s    99'',LQYY		2I""$F
))

FGGOO
4Cyy''77A''--c7)22399=FF
 &..334EFII33 YY]]AIIw/F
 
		6%		0	0	0 0	1 
1
 qyy~~f-??+ $ .#--.  
1	0s   *G# H#H HH	c                   VP                   P                  V P                  4      p\        V 4       FM  w  rEVP                  P                  W4      pVP                  WV4      pVP                   P                  W4V4       KO  	  V# )z<
Convert native array or structure *val* to a tuple object.
)r   	tuple_newr   	enumerater%   extract_valuer   tuple_setitem)r   r   r   	tuple_valir   itemr(   s   &&&     r   	box_tuplerZ  
  sj     !!#)),IcNyy&&s.eeE 	iC0 #
 r   c                <   VP                   P                  VP                   P                  V P                  4      4      p\	        WV4      pVP                   P                  W44      pVP                   P                  V4       VP                   P                  V4       V# )zA
Convert native array or structure *val* to a namedtuple object.
)r   r   r   r   rZ  r  rC   )r   r   r   r   	tuple_objr(   s   &&&   r   box_namedtupler]    sp     gg!!!''":":3;M;M"NOG#A&I
'',,w
*CGGNN7GGNN9Jr   c                  a \        V 4      p. p. oVP                  P                  V 4      p\        P                  ! VP
                  \        P                  4      p\        P                  ! VP
                  V4      pVP                  P                  V4      pVP
                  P                  RV\        P                  ! VP                  V4      4      p	VP
                  P                  VP
                  P                  V	4      RR7      ;_uu_ 4        VP                  P!                  RRV3,          V4       VP
                  P#                  \        P$                  V4       RRR4       \'        V 4       F  w  rVP                  P)                  W4      pVP+                  W4      pVP-                  VP.                  4       VP
                  P                  VP0                  RR7      ;_uu_ 4        VP
                  P#                  \        P$                  V4       RRR4       VP2                  f   K  SP-                  VP2                  4       K  	  VP                  P5                  VP
                  W4      pVP
                  P#                  W4       S'       d6   VP
                  P                  V	RR7      ;_uu_ 4        V3R lpRRR4       MRp\7        VP
                  P9                  V4      XVP
                  P9                  V4      R	7      #   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     Lx; i)
zF
Convert tuple *obj* to a native array (if homogeneous) or structure.
z==FrH  PyExc_ValueErrorz<size mismatch for tuple, expected %d element(s) but got %%zdNTc                  :   < \        S4       F
  p V ! 4        K  	  R # r   )reversed)funccleanupss    r   r   unbox_tuple.<locals>.cleanupO  s    $X.DF /r   r   )lenr-   r   r   r   r%   r  r>   r   
tuple_sizer   r   r#   r$   r   r   
err_formatrD   true_bitrT  tuple_getitemr   appendr]   r!   r   
make_tupler   rF   )r   r(   r   nvaluesr   is_error_ptr	value_ptractual_sizesize_matchesrX  eltypeelemr  r]   r   rc  s   &&&             @r   unbox_tuplert  '  sP   
 	CAFH
))
"
"3
'C,,QYY8I8IJL##AIIs3I ''$$S)K99**4,.KK8H8H!,LNL	
		199>>,7		F	F	JaTQ	 	
		((,7 
G s^	ww$$S,&fll#YYvu==IIOOG,,l; >>>%OOFNN+ $ II  C8EIIOOE%YY|D99 :9
 qyy~~i0' !		| <> >; 
G	F	F >== :9s%   AL/+L%?L9L"	%L69M		c                   \         P                  ! VP                  VP                  W4      pVP                  p\
        P                  ! VP                  V4      pVP                  P                  \
        P                  ! VP                  V4      4      ;_uu_ 4       w  rgV;_uu_ 4        VP                  P                  V4       RRR4       T;_uu_ 4        VP                  pVP                  P                  V4      pVP                  P                  \
        P                  ! VP                  V4      RR7      ;_uu_ 4        \
        P                  ! VP                  V4      ;_uu_ 4       p	VP                  V	P                   4      p
VP#                  V
4       VP%                  V P&                  V
4      pVP                  P)                  WIP                   V4       RRR4       RRR4       VP                  P+                  WE4       RRR4       RRR4       VP                  P,                  P/                  VP                  W4       VP                  P1                  V4      #   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i)z-
Convert native list *val* to a list object.
NTrH  )r   ListInstancer-   r%   r5  r   r   r   r   r   r6  r   list_newr   	for_rangegetitemindexincref_valuer   r   list_setitemrD   r   rC   rF   )r   r   r   listr(   rD  
has_parentr   r   looprY  itemobjs   &&&         r   box_listr  Y  s   
 		199c?D
++C

#
#AIIs
3C	
		7..qyy#>	?	?CZJZ GGNN3	  YYYF''""6*C""7#6#6qyy##F*. # 0 0&&qyy&99T<<

3D%%d+eeCIIt4GGG((jj'B	 :0 IIOOC%  
@, IIMMC-99>>#- ZZ :90 0	 Y 
@	?sn   J/)I"	J/A,J	*J	-A/I6J	$#J	J/"I3-	J/6JJ		JJ	J,'J//J?	c                   <   a  ] tR tRt o RtR tR tR tR tRt	V t
R# )	_NumbaTypeHelperi{  a  A helper for acquiring `numba.typeof` for type checking.

Usage
-----

    # `c` is the boxing context.
    with _NumbaTypeHelper(c) as nth:
        # This contextmanager maintains the lifetime of the `numba.typeof`
        # function.
        the_numba_type = nth.typeof(some_object)
        # Do work on the type object
        do_checks(the_numba_type)
        # Cleanup
        c.pyapi.decref(the_numba_type)
    # At this point *nth* should not be used.
c                    Wn         R # r   )r   )selfr   s   &&r   __init___NumbaTypeHelper.__init__  s    r   c                .   V P                   pVP                  P                  VP                  P                  R 4      pVP
                  P                  V4      pVP
                  P                  VR4      pW@n        VP
                  P                  V4       V # )numbar   )
r   r-   insert_const_stringr%   moduler   import_moduler   	typeof_fnrC   )r  r   
numba_name	numba_modr  s   &    r   	__enter___NumbaTypeHelper.__enter__  so    FFYY221993C3CWM
GG))*5	GG11)XF	"	y!r   c                h    V P                   pVP                  P                  V P                  4       R # r   )r   r   rC   r  )r  r)  kwargsr   s   &*, r   __exit___NumbaTypeHelper.__exit__  s    FF	t~~&r   c                h    V P                   P                  P                  V P                  V.4      pV# r   )r   r   r   r  )r  r(   rD  s   && r   r   _NumbaTypeHelper.typeof  s'    ffll00#G
r   )r   r  N)__name__
__module____qualname____firstlineno____doc__r  r  r  r   __static_attributes____classdictcell__)__classdict__s   @r   r  r  {  s#      ' r   r  c                f	  aaa VVV3R lp\         P                  P                  SP                  SP                  W4      w  rxSP                  P                  VRR7      ;_uu_ 4       w  rT	;_uu_ 4        W8n        \        P                  ! VP                  ^ 4      pSP                  P                  SP                  P                  RW;4      RR7      ;_uu_ 4        \        S4      ;_uu_ 4       pVP                  SP                  P                  W4      4      p\         P"                  ! SP                  V4      ;_uu_ 4       oSP                  P                  VSP$                  4      pV! WV4       SP'                  V P(                  V4      pSP                  P                  VP*                  RR7      ;_uu_ 4        SP                  P-                  \         P.                  S4       SP1                  4        RRR4       VP3                  SP$                  VP4                  RR7       RRR4       SP                  P7                  V4       RRR4       RRR4       V P8                  '       d   Wn        SP                  P                  SP                  P=                  SP                  P?                  S4      4      RR7      ;_uu_ 4        SP                  PA                  WPB                  4       RRR4       VPE                  R4       SP                  P-                  VP4                  V4       RRR4       V
;_uu_ 4        SP                  P-                  \         P.                  S4       RRR4       RRR4       SP                  P                  SP                  P?                  S4      4      ;_uu_ 4        SP                  PF                  P7                  SP                  WP4                  4       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELf; i  + '       g   i     EL;; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     R# ; i)z1
Construct a new native list from a Python list.
c                 2  < V P                  V4      pSP                  P                  \        P                  ! SP                  V4      R R7      ;_uu_ 4        SP                  P                  \        P                  S4       SP                  4        RRR4       SP                  P                  RW24      pSP                  P                  VR R7      ;_uu_ 4        SP                  P                  \        P                  S4       SP                  P                  RRW#4       SP                  P                  V4       SP                  4        RRR4       SP                  P                  V4       R#   + '       g   i     L; i  + '       g   i     L@; i)FrH  Nr   ri   z(can't unbox heterogeneous list: %S != %S)r   r%   r   r   r   rD   rh  do_breakr&   r   rg  rC   )nthr  expected_typobjtypobjtype_mismatchr   errorptrr  s   &&&  r   check_element_type2_python_list_to_native.<locals>.check_element_type  s   G$YY		62    IIOOG,,h7MMO 		--dFLYY}U;;IIOOG,,h7GG!:
 GGNN6"MMO < 	
v%  <;s   ;E3A3F3F	F	TrH  >FN)r6  )$r   rv  allocate_exr-   r%   r   r   r   r#   r$   r   r&   r  r   r   list_getitemr   rx  rz  r   r   r!   rD   rh  r  setitemr]   rC   	reflectedr5  r   rF   object_set_private_datameminfo	set_dirtyr   )r   r(   r   r   listptrr  r  rq   r}  if_ok	if_not_okr*   r  r  r  r  r  s   &&f&&f          @r   _python_list_to_nativer    s!   0 ##//		199cPHB	
		2d		+	+/AUI;;tyy!,D""199#8#8d#I*. # 0 0 &a((C&)jj1E1Ec1P&QO **199d;;t"#''"6"6sDJJ"G*3I "#G!<YY..vu.MMIIOOG,<,<hG MMO N TZZeL < GGNN?3 )0& }}}! ""199>>!))..2J#K9> # @ @//\\B@ NN5!IIOODJJ0= @ YIIOOG,,h7 C 
,J 
		199>>(3	4	4			QYYZZ8 
5	4) NMM <;; )((0 0 0.@ @ @5 UU@ YYC 
,	+	+J 
5	4	4s   (R5A'Q#	P;0AP'A;P?;O?:0P*#P'P;Q#	/AQ#	&Q2?Q#	1R+Q7	.R:;R?P
	PP$	P''P82	P;;Q	Q#	Q 	Q#	#Q4.	R7R	RR	R0	c                <  aa SP                   P                  S4      p\        P                  ! SP                  \        P
                  4      p\        P                  ! SP                  SP                  P                  V 4      4      pSP                   P                  S4      pSP                  P                  \        P                  ! SP                  V4      4      ;_uu_ 4       w  rxT;_uu_ 4        \        P                  P                  SP                  SP                  W4      p	W9n        V P                   '       d   SV	n        SP                  P%                  V	P&                  V4       RRR4       V;_uu_ 4        \)        V SSW5V4       RRR4       RRR4       VV3R lp
\+        SP                  P-                  V4      SP                  P-                  V4      V
R7      #   + '       g   i     L; i  + '       g   i     Lr; i  + '       g   i     L}; i)z
Convert list *obj* to a native list.

If list was previously unboxed, we reuse the existing native list
to ensure consistency.
Nc                  >   < S P                   P                  S4       R # r   r   object_reset_private_datar   r(   s   r   r   unbox_list.<locals>.cleanup      	))#.r   r  )r   	list_sizer   r   r%   r  r>   r-   r   object_get_private_datar   r   r   rv  from_meminfor   r  r5  rD   r]   r  r   rF   )r   r(   r   r   r  r  r   has_meminfor   r}  r   s   &ff        r   
unbox_listr    sd    77S!D((G4E4EFH!!!))QYY-E-Ec-JKG ''
)
)#
.C	
		7..qyy#>	?	?#K[''44QYY		3TDI}}}!IIOODJJ0  Y"3QxH  
@/ qyy~~g. !		x 8&( ( [ Y 
@	?s=   $H1A;G%	,H>G8	H%G50H8HHH	c                   V P                   '       g   R# V P                  P                   '       d   RP                  V 4      p\        V4      h\        P
                  ! VP                  VP                  W4      pVP                  P                  VP                  RR7      ;_uu_ 4        VP                  pVP                  P                  V4      pVP                  pVP                  P                  Wv4      pVP                  P                  RV\         P"                  ! VP$                  ^ 4      4      p	VP                  P'                  V	4      ;_uu_ 4       w  rT
;_uu_ 4        \(        P*                  ! VP                  V4      ;_uu_ 4       pVP-                  VP.                  4      pVP1                  V4       VP3                  V P                  V4      pVP                  P5                  W\P.                  V4       RRR4       \(        P*                  ! VP                  V4      ;_uu_ 4       pVP                  P7                  WlP.                  4      pVP-                  V4      pVP1                  V4       VP3                  V P                  V4      pVP                  P9                  W^4       VP                  P;                  V4       RRR4       RRR4       T;_uu_ 4        VP                  P=                  WWVR4       \(        P*                  ! VP                  V4      ;_uu_ 4       pVP-                  VP.                  4      pVP1                  V4       VP3                  V P                  V4      pVP                  P5                  W\P.                  V4       RRR4       RRR4       RRR4       VP?                  R4       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL ; i  + '       g   i     EL,; i  + '       g   i     Lw; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)z<
Reflect the native list's contents into the Python object.
Nz2cannot reflect element of reflected container: {}
FrH  z>=) r  r   format	TypeErrorr   rv  r-   r%   r   dirtyr5  r   r  r   subr&   r   r#   r$   r   r   rx  ry  rz  r{  r   r|  r   list_appendrC   list_setslicer  )r   r   r   r   r}  r(   r   new_sizediff	diff_gt_0if_grow	if_shrinkr  rY  r  r   s   &&&             r   reflect_listr    s   
 ===
yyCJJ3On		199c?D	
		4::e		4	4kkww  %99yy}}X,II))$*,++dii*CE	YYy))-Ag&&qyy$774<<

3D%%d+eeCIIt4GGG((jj'B	 8 &&qyy$774))--jj9C<<,D%%d+eeCIIt4GGG''5GGNN7+ 8   %%cT4@&&qyy(;;t<<

3D%%d+eeCIIt4GGG((jj'B	 <	 % *: 	uI 
5	4 877 877 ( <;	 % *) 
5	4	4s   (B.P?P,	#*O2A/O
<1O2-BOO2P,	!AP(A/PPP,	'P?
O	O2O/)	O22P=	P,	PPP)$P,	,P<7P??Q	c                
   \         P                  P                  VP                  VP                  W4      w  rgVP                  P                  VRR7      ;_uu_ 4       w  rT;_uu_ 4        \        P                  ! VP                  \        P                  ! VP                  P                  R4      4      p
VP                  P                  V4      ;_uu_ 4       pVP                  pVP                  P                  V4      pVP                  P                  V
4      pVP                  P                  \        P                   ! VP                  V4      RR7      ;_uu_ 4       w  ppV;_uu_ 4        VP                  P#                  W4       RRR4       T;_uu_ 4        VP                  P%                  RVV4      pVP                  P'                  VRR7      ;_uu_ 4        VP                  P#                  \        P(                  V4       VP                  P+                  RR4       VP-                  4        RRR4       RRR4       RRR4       VP/                  V P0                  V4      pVP                  P'                  VP2                  RR7      ;_uu_ 4        VP                  P#                  \        P(                  V4       RRR4       VP5                  VP                  VP                  RR7       RRR4       V P6                  '       d   Wn        VP                  P'                  VP                  P;                  VP                  P                  V4      4      RR7      ;_uu_ 4        VP                  P=                  WP>                  4       RRR4       VPA                  R4       VP                  P#                  VP                  V4       RRR4       V	;_uu_ 4        VP                  P#                  \        P(                  V4       RRR4       RRR4       VP                  P'                  VP                  P                  V4      4      ;_uu_ 4        VP                  PB                  PE                  VP                  WP                  4       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL3; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELc; i  + '       g   i     EL:; i  + '       g   i     ELF; i  + '       g   i     R# ; i)	z/
Construct a new native set from a Python set.
TrH  NFr   ri   zcan't unbox heterogeneous set)	do_resize)#r   SetInstancer  r-   r%   r   r   r   r   r#   r   pyobjset_iterater]   get_typerF   r   rD   r&   r   rh  rn   r  r   r   r!   	add_pyapir  r5  r   r  r  r  r   rC   )r   r(   r   r   setptrr  rq   instr  r  	typobjptrr  r  r  r  if_firstif_not_firstr  r  s   &&&&&&             r   _python_set_to_nativer  A  s   
 !!--aiiCNHB	
		2d		+	+/AU11!))24++aggmmT2RTI $$S))T**))'2"#))..";YY&&OOAII?  ' " "%=h!		: " &()		(=(=dF>M)OYY..}U.KKIIOOG,<,<hGGG223D3RT MMO	 L	 &"& G4YY&&vu&EEIIOOG$4$4h? FqwwF9 *< }}}!""199>>!))..2J#K*/ # 1 1//\\B1 NN5!IIOODJJ/U X YIIOOG,,h7 [ 
,b 
		199>>(3	4	4			QYYZZ8 
5	4E " LKK	 &" " "( FEE5 *))B1 1 1M UUX YY[ 
,	+	+b 
5	4	4s   U*A.T)	BTS-R	SASAR15S=SAT+S-0T3T)	AT)	*&T?T)	U!+T=	U;U%R.(	S1S<	SS	SS*$	T-S>8	TT	T)	T& 	T)	)T:4	U=U	UU"	%U6	c                0  aa SP                   P                  S4      p\        P                  ! SP                  \        P
                  4      p\        P                  ! SP                  SP                  P                  V 4      4      pSP                   P                  S4      pSP                  P                  \        P                  ! SP                  V4      4      ;_uu_ 4       w  rxT;_uu_ 4        \        P                  P                  SP                  SP                  W4      p	V P                  '       d   SV	n        SP                  P#                  V	P$                  V4       RRR4       V;_uu_ 4        \'        V SSW5V4       RRR4       RRR4       VV3R lp
\)        SP                  P+                  V4      SP                  P+                  V4      V
R7      #   + '       g   i     L; i  + '       g   i     Lr; i  + '       g   i     L}; i)z|
Convert set *obj* to a native set.

If set was previously unboxed, we reuse the existing native set
to ensure consistency.
Nc                  >   < S P                   P                  S4       R # r   r  r  s   r   r   unbox_set.<locals>.cleanup  r  r   r  )r   set_sizer   r   r%   r  r>   r-   r   r  r   r   r   r  r  r  r5  rD   r]   r  r   rF   )r   r(   r   r   r  r  r   r  r   r  r   s   &ff        r   	unbox_setr  |  s_    77C D((G4E4EFH  AII,D,DS,IJF ''
)
)#
.C	
		7..qyy#>	?	?#K[%%22199aiiRD}}}!IIOODJJ/  Y!#sAtXF  
@/ qyy~~f- !		x 8&( ( [ Y 
@	?s=   $H1A5G	&H8G2	HG/*H2H=HH	c                   VP                   pVP                  P                  V4      p\        P                  ! VP
                  V4      pVP
                  P                  VRR7      ;_uu_ 4        \        P                  ! VP
                  \        P                  ! VP                  ^ 4      4      pVP                  4       ;_uu_ 4       pVP
                  P                  V4      pVP                  P                  p	VP                  P                   P#                  VP
                  V P$                  V	4       VP'                  V P$                  V	4      p
VP                  P)                  WHV
4       VP
                  P+                  V\        P                  ! VP                  ^4      4      pVP
                  P-                  W4       RRR4       RRR4       WT3#   + '       g   i     L; i  + '       g   i     YT3# ; i)z1
Create a Python list from a native set's items.
TrH  N)usedr   rw  r   r   r%   r   r   r   r#   r$   _iteraterF   entrykeyr-   r   r6  r   r   r|  r   rD   )r   payloadr   r   r   rq   rz  r  rX  rY  r  s   &&&        r   _native_set_to_python_listr    sW    \\Fggv&G			QYY	0B	
		2d		+	+))!))*,++fkk1*EG4		u%A::>>DIIMM  CIIt<eeCIIt,GGG  W5		aQVVQ!78AIIOOA%   
, ;   
,	+ ;s&   .AG(C;G	G(G% G((G:	c                2   \         P                  ! VP                  VP                  W4      pVP                  p\
        P                  ! VP                  V4      pVP                  P                  \
        P                  ! VP                  V4      4      ;_uu_ 4       w  rgV;_uu_ 4        VP                  P                  V4       RRR4       T;_uu_ 4        VP                  p\        WV4      w  rVP                  P                  V	RR7      ;_uu_ 4        VP                  P                  V
4      pVP                  P                  V
4       VP                  P!                  WE4       RRR4       RRR4       RRR4       VP                  P"                  P                  VP                  W4       VP                  P%                  V4      #   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i)z+
Convert native set *val* to a set object.
NTrH  )r   r  r-   r%   r5  r   r   r   r   r   r6  r  r  r   set_newrC   rD   r   rF   )r   r   r   r  r(   rD  r~  r   r  rq   r   s   &&&        r   box_setr    sV   
 aiiC=D
++C

#
#AIIs
3C	
		7..qyy#>	?	?CZJZ GGNN3	  YllG4S1EKB""2d"33ggoog.w'		) 4	  
@" IIMMC-99>>## ZZ 43	 Y 
@	?sV   H)G	HA G3	AG )G3	1HG	H G0+G3	3H>HH	c           	        V P                   '       g   R# \        P                  ! VP                  VP                  W4      pVP
                  pVP                  P                  VP                  RR7      ;_uu_ 4        VP                  pVP                  P                  V4       \        WV4      w  rgVP                  P                  VRR7      ;_uu_ 4        VP                  P                  WW4       VP                  P                  V4       RRR4       VP                  R4       RRR4       R#   + '       g   i     L+; i  + '       g   i     R# ; i)z;
Reflect the native set's contents into the Python object.
NFrH  T)r  r   r  r-   r%   r  r   r  r5  r   	set_clearr  
set_updaterC   r  )r   r   r   r  r  r(   rq   r   s   &&&     r   reflect_setr    s    
 ===aiiC=DllG	
		7==		7	7kk	# 1qAYYr$//GGs,GGNN7# 0
 	u 
8	7 0/ 
8	7	7s%   <AE7D1	E1E<EE	c                 b    VP                   P                  WVP                  P                  4      # r   )r   from_native_generatorr   env_ptrr   s   &&&r   box_generatorr    s#    77((1==3H3HIIr   c                 8    VP                   P                  W4      # r   )r   to_native_generatorr,  s   &&&r   unbox_generatorr    s    77&&s00r   c                     \         P                  ! V P                  4      pVP                  P	                  VP                  P                  V4      4      # r   r   r1  r   r   r   r   r   r   r   r9  s   &&& r   	box_dtyper    :    %%cii0H77qww77ABBr   c                 H    \        VP                  P                  4       4      # r   ry   r   s   &&&r   unbox_dtyper         qyy00233r   c                     \         P                  ! V P                  4      pVP                  P	                  VP                  P                  V4      4      # r   r  r  s   &&& r   box_number_classr    r  r   c                 H    \        VP                  P                  4       4      # r   ry   r   s   &&&r   unbox_number_classr  
  r  r   c                     V# r    r   s   &&&r   box_pyobjectr    s	     Jr   c                     \        V4      # r   r   r,  s   &&&r   unbox_pyobjectr         sr   c           
         V P                   f   \        V 4      hVP                  P                  V 4      p\        P
                  ! VP                  \        P                  ! VR 4      RR7      pVP                  P                  V P                   4      pVP                  P                  V4      p\        P                  ! VP                  \        P                  ! VP                  V4      4      ;_uu_ 4        VP                  P                  Wa34      pVP                  P                  V4       \        P                  ! VP                  \        P                  ! VP                  V4      4      ;_uu_ 4        VP                  P!                  V4      pVP                  P                  V4       VP                  P#                  VP                  P%                  W4      V4       R R R 4       R R R 4       \'        VP                  P)                  V4      VP                  P+                  4       R7      #   + '       g   i     LV; i  + '       g   i     La; i)Nfnptr)namer    )get_pointerNotImplementedErrorr-   get_function_pointer_typer   r   r%   r   r#   r   r   r   r   r   r   rC   long_as_voidptrrD   r   r   rF   r'   )	r   r(   r   ptrtyr   serr  intobjr   s	   &&&      r   unbox_funcptrr    s   
!#&& II//4E

#
#AII$&KKt$<)02C ''
"
"3??
3C''%%c*K			199"..qyy+F
H 
H..{FC	{#qyy&22199fEG G''))&1CGGNN6"IIOOAII--c93?	G	
H qyy~~c*QWW5H5H5JKKG G	
H 
Hs&   5B I5A,H/	!I/H?:II	c                     VP                   P                  V P                  4       VP                  P	                  V^ .4      VP
                  R7      pV# )r   )r   )r   from_native_valuegetr%   rU  r   )r   r   r   outs   &&& r   box_deferredr  1  sG    
''
#
#CGGI$%II$;$;C!$E01 $ ?C Jr   c                 <   VP                   P                  V P                  4       V4      pVP                  P                  V ,          pVP                  VP                  VP                  4       VP                  4      p\        WSP                  VP                  R 7      # )r  )r   to_native_valuer  r-   data_model_managersetr%   make_uninitializedr]   r   r!   r   )r   r(   r   native_valuemodelrD  s   &&&   r   unbox_deferredr   9  su    77**3779c:LII((-E
))AIIu779<;M;M
NCs%:%:+335 5r   c                     \        V4      # r   r  r,  s   &&&r   unbox_dispatcherr"  B  r  r   c                 <    VP                   P                  V4       V# r   )r   r6  r   s   &&&r   r  r  H  s    GGNN3Jr   c                     VP                   P                  R RP                  V 4      4       VP                  P	                  V 4      p\        V\        P                  R7      # )ri   zcan't unbox {!r} typer    )r   rn   r  r-   get_constant_nullr   r   rh  )r   r(   r   rD  s   &&& r   unbox_unsupportedr&  N  sM    GG,299#>@
))
%
%c
*CsW%5%566r   c                     R V : R2pVP                   P                  RV4       VP                   P                  4       pV# )zcannot convert native z to Python objectri   )r   rn   get_null_object)r   r   r   r   rD  s   &&&  r   box_unsupportedr)  U  s6    9<
>CGG,c2
''
!
!
#CJr   c                     V P                   pVP                  P                  VP                  P                  V4      4      # r   )r  r   r   r   )r   r   r   retvals   &&& r   box_literalr,  \  s3     F77qww77?@@r   c                 8    VP                   P                  V4      # r   )r   nrt_meminfo_as_pyobjectr   s   &&&r   box_meminfo_pointerr/  e  s    77**3//r   c                     VP                   P                  V4      p\        P                  ! VP                  V4      p\        W4R 7      # rT   )r   nrt_meminfo_from_pyobjectr   r   r%   r   )r   r(   r   rD  erroreds   &&&  r   unbox_meminfo_pointerr3  j  s5    
''
+
+C
0Cooaii-Gs--r   c                 h    \        VP                  P                  4       \        P                  R 7      # rT   )r   r-   rz   r   r  r   s   &&&r   unbox_typerefr5  p  s"    qyy002W=N=NOOr   c                     \        WV4      # r   )r)  r   s   &&&r   box_LiteralStrKeyDictr7  u  s    3Q''r   c                n  aa	a
aaaaaaaa \         P                  ! SP                  \         P                  4      o. oVV3R lo	VV	V3R lo\	        4       ;_uu_ 4       oVV3R lo\         P
                  ! V 4      ! SP                  SP                  4      oVSn        S! VR4      o\         P                  ! SP                  SS4      ;_uu_ 4        S! 4        RRR4       S! SR4      p\         P                  ! SP                  SV4      ;_uu_ 4        S! 4        RRR4       \        SRSP                  \        P                  V4      P                  4       S! SR4      p\         P                  ! SP                  SV4      ;_uu_ 4        S! 4        RRR4       S! VR4      p\         P                  ! SP                  SV4      ;_uu_ 4        S! 4        RRR4       \        SRSP                  \        P                  V4      P                  4       SP                  P                  SP                  P                  R4      pSP                   P#                  V4      pSP%                  V4       \         P                  ! SP                  SV4      ;_uu_ 4        S! 4        RRR4       S! VR	4      o
\         P                  ! SP                  SS
4      ;_uu_ 4        S! 4        RRR4       S! VR
4      o\         P                  ! SP                  SS4      ;_uu_ 4        S! 4        RRR4       VV
VVVVVVV3	R lpV! R4       V! R4       V! R4       S	! 4        RRR4       \'        SP)                  4       SP                  P+                  S4      R7      #   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL6; i  + '       g   i     EL; i  + '       g   i     ELP; i  + '       g   i     EL!; i  + '       g   i     L; i  + '       g   i     L; i)aN  
The bit_generator instance has a `.ctypes` attr which is a namedtuple
with the following members (types):
* state_address (Python int)
* state (ctypes.c_void_p)
* next_uint64 (ctypes.CFunctionType instance)
* next_uint32 (ctypes.CFunctionType instance)
* next_double (ctypes.CFunctionType instance)
* bit_generator (ctypes.c_void_p)
c                  P   < S F  p SP                   P                  V 4       K   	  R # r   )r   rC   )_refr   
extra_refss    r   clear_extra_refs9unbox_numpy_random_bitgenerator.<locals>.clear_extra_refs  s    DGGNN4  r   c                  j   < S P                   P                  \        P                  S4       S! 4        R # r   )r%   rD   r   rh  )r   r<  rn  s   r   handle_failure7unbox_numpy_random_bitgenerator.<locals>.handle_failure  s!    			((,7r   c                 `   < SP                   P                  W4      pSP                  V4       V# r   )r   r   rj  )r(   attrattr_objr   r;  s   && r   object_getattr_safely>unbox_numpy_random_bitgenerator.<locals>.object_getattr_safely  s*    ww44S?Hh'Or   ctypesNstate_addressstater]   r.   c_void_pc                 j  <	 SP                   P                  SV 4      pS	P                  V4       \        P                  ! SP
                  SV4      ;_uu_ 4        S
! 4        R R R 4       SP                   P                  VS.4      p\        P                  ! SP
                  SV4      ;_uu_ 4        S
! 4        R R R 4       S	P                  V4       SP                   P                  SV4      pS	P                  V4       S! VR4      p\        P                  ! SP
                  SV4      ;_uu_ 4        S
! 4        R R R 4       \        SRV  2SP                  \        P                  V4      P                  4       R #   + '       g   i     EL#; i  + '       g   i     L; i  + '       g   i     Lq; i)Nr]   fnptr_)r   r   rj  r   early_exit_if_nullr%   
tuple_packr  setattrr   r   r   r]   )r  interface_next_fnr)  interface_next_fn_castedinterface_next_fn_casted_valuer   ct_castct_voidptr_tyctypes_bindingr;  r?  rD  stack
struct_ptrs   &    r   wire_in_fnptrs7unbox_numpy_random_bitgenerator.<locals>.wire_in_fnptrs  sQ    ! = =!& /0++AIIu>OPP  Q
 77%%'8-&HID++AIIudCC  Dd# ()ww||GT'B$67 .C('.3*++AIIu>\]]  ^ J&GGEKK)GHNNP- QPP DC ^]s$   E;0F1F";F	F	"F2	next_doublenext_uint64next_uint32r    )r   r   r%   r  r   create_struct_proxyr-   r5  rL  rN  r   r   r   r]   r  r  r   r  rj  r   ro   rF   )r   r(   r   interface_state_addressinterface_stateinterface_state_valuectypes_namectypes_modulerW  r<  rR  rS  rT  r;  r?  rn  rD  rU  rV  s   &&f      @@@@@@@@@@r   unbox_numpy_random_bitgeneratorrb  {  s    ,,QYY8I8IJLJ! 
	
 005aiiK

 /sH=''		5.II J #8O#-''		5:QRR S 	
O%<=CC	E 0H''		5/JJ K !6W!&''		5:OPP QGG%'',u	. ii33AII4D4DhO--k:-(''		5-HH I (v>''		5'BB C .mZH''		5-HH I	P 	P@ 	}%}%}% 
B z++-		|8TUUk JII SRR KJJ
 QPP  IHH CBB IHo 
s   A3P$N	;P$N-	A0P$O	;P$O	CP$O)	";P$O=	%;P$ P	(5P$N*$	P$-N>8	P$O	P$O& 	P$)O:4	P$=P	P$P!P$$P4	bit_generatorc           	        \         P                  ! VP                  \         P                  4      p\	        4       ;_uu_ 4       p\         P
                  ! V 4      ! VP                  VP                  4      pVP                  P                  VR4      p\         P                  ! VP                  WF4      ;_uu_ 4        VP                  P                  \         P                  V4       RRR4       VP                  \        V4      P                  pWun        Wn        \         P"                  ! R4      pVP                  P%                  VV4      Vn        VP                  P)                  V4       RRR4       \+        XP-                  4       VP                  P/                  V4      R7      #   + '       g   i     L; i  + '       g   i     LW; i)a{  
Here we're creating a NumPyRandomGeneratorType StructModel with following fields:
* ('bit_generator', _bit_gen_type): The unboxed BitGenerator associated with
                                    this Generator object instance.
* ('parent', types.pyobject): Pointer to the original Generator PyObject.
* ('meminfo', types.MemInfoPointer(types.voidptr)): The information about the memory
    stored at the pointer (to the original Generator PyObject). This is useful for
    keeping track of reference counts within the Python runtime. Helps prevent cases
    where deletion happens in Python runtime without NRT being awareness of it.
rc  Nr    )r   r   r%   r  r   r\  r-   r   r   rL  rD   rh  r   _bit_gen_typer]   rc  r5  	voidptr_tnrt_meminfo_new_from_pyobjectr  rC   r   ro   rF   )	r   r(   r   rn  rU  rV  bit_gen_instunboxedNULLs	   &&&      r   unbox_numpy_random_generatorrk    s0    ,,QYY8I8IJL	005aiiK
ww44S/J''		5GGIIOOG,,l; H''-6<<#*   &WWBB


 	
|$ 
  z++-		|8TUU HG 
s&   A7F99+F&	$BF9&F61F99G		c                 t   VP                   P                  VP                  W4      pVP                  p\        P
                  ! VP                  V4      pVP                  P                  V4       VP                   P                  P                  VP                  W4       VP                  P                  V4      # r   )r-   r   r%   r5  r   r   r   r6  r   rC   rF   )r   r   r   r  r(   rD  s   &&&   r   box_numpy_random_generatorrm    sz    99  C5D
++C

#
#AIIs
3CGGNN3IIMMC-99>>#r   N)r  llvmliter   
numba.corer   r   numba.core.pythonapir   r   r   r   numba.core.errorsr	   r
   numba.core.typing.typeofr   r   r  r   r   numba.npr   
contextlibr   r   Booleanr   r+   IntegerLiteralBooleanLiteralr0   Integerr;   rJ   FloatrR   rY   Complexrg   rt   NoneTyperw   EllipsisTyper{   
NPDatetimer   r   NPTimedeltar   r   
RawPointerr   
EnumMemberr   r   UndefVarr   Recordr   r   UnicodeCharSeqr   r   Bytesr   CharSeqr   r   Optionalr   r  	SliceTyper  SliceLiteralr*  StringLiteralr-  Arrayr<  BufferrF  rQ  TupleUniTuplerZ  
NamedTupleNamedUniTupler]  	BaseTuplert  Listr  objectr  r  r  r  r  Setr  r  r  r  	Generatorr  r  DTyper  r  NumberClassr  r  PyObjectObjectr  r  ExternalFunctionPointerr  DeferredTyper  r   
Dispatcherr"  r&  r)  Literalr,  MemInfoPointerr/  r3  TypeRefr5  LiteralStrKeyDictr7  NumPyRandomBitGeneratorTyperb  re  NumPyRandomGeneratorTyperk  rm  r  r   r   <module>r     sc    % A A C 4 ) " 0 U]]' ' u}}< < UU(  (
 U]]3 3 u}}7 7 U[[, , u{{
< 
< U]]	6 	6 u}}: :. U^^  u~~u4  4 U: : u< <
 U; ; u< <
 U$ $ U= = u& & U^^  U\\H H u||
@ 
@ UC C2 u9 9: U[[  U]]> >, u}}9 96 U^^	 	 u~~( (B u
E 
E U 2 u4 4 U[[   u||( (2 u{{,@ ,@^ U[[U^^   UU	  	 u.> .>b UZZ B#v #LC9L uzz#( #(L 	/ /d89v uyy"( "(J, UYY 8 	 8 U__J J u1 1 U[[C C u{{4 4 UC C u4 4 U^^U\\   u~~u||   u$$%L &L, U  u5 5 u 
 U 
7 U]]A A U0 0 u. .
 u}}P P U( (
 u(()xV *xVt 11/Bu%%&V 'V@ U##$ %r   