
    ܙd!                     v   d Z ddlZddlZddlmZ ddlmZ ddlmZm	Z	m
Z
mZ ddlmZmZmZmZmZmZmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZ d Zd Z G d de          Z  G d de           Z! G d de           Z" G d de           Z#d Z$ ee%ej&                  d             Z' ee%          d             Z' ee(ej)                  d             Z* edej)                  d             Z+ edej,                   eej-                  d                         Z. eej/        ej)        ej0                  d             Z1 eej2        ej)        ej0        ej3                  d             Z4 eej/        ej)        ej5                  d             Z6 eej2        ej)        ej5        ej3                  d              Z4 eej7        ej)        ej0                  d!             Z8 eej7        ej)        ej5                  d"             Z9 eej:        ej;        ej3                  d#             Z< ee=ej;                  d$             Z> eej?                  d%             Z@ eejA        ej)        ej)                  d&             ZB eejC        ej)        ej)                  d'             ZD eejE        ej)        ej0                   eejE        ej0        ej)                  d(                         ZF eejG        ej)        ej0                  d)             ZH eejI        ej)        ej)                  d*             ZJ eejK        ej)        ej)                  d+             ZLd, ZM eejN                  d-             ZO eejP                  d.             ZQ eejR                  d/             ZS eejT                  d0             ZU eejV                  d1             ZW ed2ej)        ej3                  d3             ZX ed4ej)                  d5             ZY eej)        d6          d7             ZZ eej)        d8          d9             Z[d: Z\ ed;ej)        ej&                  d<             Z]ej^        j_        Z` eej)        d=          de`fd>            Za ed?ej)        ej0        ej3                  d@             Zb edAej)                  dB             Zc edAej)        ej0                  dC             Zc eej)        dD          dE             Zd eej)        dF          dG             ZedH ZV ejf                    jg        Zh ejf        eVI          jg        Zi ejf        dJdJK          jg        Zj ejf        dJeVdJL          jg        ZkdM ZldN Zm eej)        dO          dldQ            Zn eeo          dldR            Zp eej)        ej)                  dS             Zq e
jr        dT          Zs eejt        dU          dV             Zu eejt        dW          dX             Zv eejt        dY          dZ             Zw eejt        dD          d[             Zx eejt        d\          dmd^            Zy eejt        d_          d`             Zz eejt        dO          dlda            Z{ eejt        dF          db             Z|ej^        j_        Z} eejt        d=          de}fdc            Z~ eejt        d8          dd             Z eejt        d6          de             Z eej7                  df             Z eej2                  dg             Z eej/                  dh             Z ee(          di             Z eej:                  dj             Z eejt        ejt                  dk             ZdS )nz'
Support for native homogeneous lists.
    N)cached_property)ir)typestypingerrorscgutils)lower_builtin
lower_castiternext_implimpl_ret_borrowedimpl_ret_new_refimpl_ret_untrackedRefType)overload_methodoverload)	quicksort)slicingliteral_unrollc                    t          j        |          }| j                            ||j                  }|                     |                                          }|                    ||          }|                     |||          S )zy
    Given a list value and type, get its payload structure (as a
    reference, so that mutations are seen by all).
    ref)	r   ListPayloadnrtmeminfo_datameminfoget_data_type
as_pointerbitcastmake_data_helper)contextbuilder	list_typevaluepayload_typepayloadptrtys          5lib/python3.11/site-packages/numba/cpython/listobj.pyget_list_payloadr)      sz    
 $Y//Lk&&w>>G!!,//::<<Eoogu--G##G\w#GGG    c                 `    |                      |j                  }|                     |          S )z7
    Return the item size for the given list type.
    )r   dtypeget_abi_sizeof)r!   r#   lltys      r(   get_itemsizer/   "   s-       11D!!$'''r*   c                       e Zd Zed             Zej        d             Zed             Zed             Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd ZdS )_ListPayloadMixinc                     | j         j        S N_payloadsizeselfs    r(   r6   z_ListPayloadMixin.size,   s    }!!r*   c                     || j         _        d S r3   r4   r8   r$   s     r(   r6   z_ListPayloadMixin.size0   s    "r*   c                     | j         j        S r3   )r5   dirtyr7   s    r(   r<   z_ListPayloadMixin.dirty4   s    }""r*   c                 6    | j                             d          S )Ndata)r5   _get_ptr_by_namer7   s    r(   r>   z_ListPayloadMixin.data8   s    }--f555r*   c                 B    t          j        | j        | j        |          S r3   )r   gep_builderr>   r8   idxs     r(   _gepz_ListPayloadMixin._gep<   s    {4=$)S999r*   c                     |                      |          }| j                            |          }| j                            | j        |          S r3   )rE   rB   load
_datamodel	from_data)r8   rD   ptr	data_items       r(   getitemz_ListPayloadMixin.getitem?   s@    iinnM&&s++	((	BBBr*   c                     | j                             d|t          j        |j        d                    }| j                             || j                  }| j                             |||          S )zp
        Fix negative indices by adding the size to them.  Positive
        indices are left untouched.
        <r   )rB   icmp_signedr   Constanttypeaddr6   select)r8   rD   is_negativewrapped_indexs       r(   	fix_indexz_ListPayloadMixin.fix_indexD   se    
 m//S02CHa0H0HJ J))#ty99}##KDDDr*   c                     | j                             d|t          j        |j        d                    }| j                             d|| j                  }| j                             ||          S )z<
        Return whether the index is out of bounds.
        rN   r   >=)rB   rO   r   rP   rQ   r6   or_)r8   rD   	underflowoverflows       r(   is_out_of_boundsz"_ListPayloadMixin.is_out_of_boundsN   se     M--c3.0k#(A.F.FH H	=,,T3	BB}  H555r*   c                 *   | j         }t          j        ||          }t          j        |j        d          }| j        }| j                             d||          }|                    |d          5  |	                    ||           ddd           n# 1 swxY w Y   | j                             d||          }|                    |d          5  |	                    ||           ddd           n# 1 swxY w Y   |
                    |          S )z/
        Clamp the index in [0, size].
        r   rN   FlikelyNrX   )rB   r   alloca_once_valuer   rP   rQ   r6   rO   if_thenstorerG   )r8   rD   r"   idxptrzeror6   rZ   r[   s           r(   clamp_indexz_ListPayloadMixin.clamp_indexW   s{    -*7C88{38Q''yM--c3==	__Yu_55 	( 	(MM$'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(=,,T3==__Xe_44 	( 	(MM$'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( ||F###s$   1BBBC55C9<C9c                     | j                             |                     |          d          5  | j        j                            | j         t          |f           ddd           dS # 1 swxY w Y   dS )z?
        Raise an error if the index is out of bounds.
        Fr^   N)rB   ra   r\   _context	call_convreturn_user_exc
IndexError)r8   rD   msgs      r(   guard_indexz_ListPayloadMixin.guard_indexj   s     ]""4#8#8#=#=e"LL 	H 	HM#33DM4>H H H	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs   -A**A.1A.c                 B    t          j        | j        || j                  S )zo
        Fix slice start and stop to be valid (inclusive and exclusive, resp)
        indexing bounds.
        )r   	fix_slicerB   r6   )r8   slices     r(   rn   z_ListPayloadMixin.fix_slicer   s    
  tyAAAr*   c                 \    | j         j                            | j        | j        |           dS )zIncref an element valueN)rg   r   increfrB   r,   r8   vals     r(   incref_valuez_ListPayloadMixin.incref_valuey   )      
C@@@@@r*   c                 \    | j         j                            | j        | j        |           dS )zDecref an element valueN)rg   r   decrefrB   r,   rr   s     r(   decref_valuez_ListPayloadMixin.decref_value}   ru   r*   N)__name__
__module____qualname__propertyr6   setterr<   r>   rE   rL   rV   r\   re   rl   rn   rt   rx    r*   r(   r1   r1   *   s       " " X" 
[# # [# # # X# 6 6 X6: : :C C C
E E E6 6 6$ $ $&H H HB B BA A AA A A A Ar*   r1   c                       e Zd ZdZd ZdS )ListPayloadAccessorzb
    A helper object to access the list attributes given the pointer to the
    payload type.
    c                 >   || _         || _        || _        |j        |j                 | _        t          j        |          }|                    |          	                                }|
                    ||          }|                    |||          }|| _        d S )Nr   )rg   rB   _tydata_model_managerr,   rH   r   r   r   r   r   r    r5   )r8   r!   r"   r#   payload_ptrr%   r'   r&   s           r(   __init__zListPayloadAccessor.__init__   s    !4Y_E(33%%l33>>@@ook599**7L/: + < <r*   N)ry   rz   r{   __doc__r   r~   r*   r(   r   r      s-         
  
  
  
  
 r*   r   c                      e Zd Zd Zed             Zed             Zed             Zej        d             Zed             Z	ed             Z
d Zd	 ZddZddZd Zed             Zd Zd Zed             Zed             Zd Zd ZdS )ListInstancec                     || _         || _        || _        |                    |||          | _        t          ||          | _        |j        |j                 | _	        d S r3   )
rg   rB   r   make_helper_listr/   	_itemsizer   r,   rH   )r8   r!   r"   r#   list_vals        r(   r   zListInstance.__init__   sV    (()XFF
%gy99!4Y_Er*   c                     | j         j        S r3   )r   r,   r7   s    r(   r,   zListInstance.dtype   s    x~r*   c                 N    t          | j        | j        | j        | j                  S r3   )r)   rg   rB   r   r   r7   s    r(   r5   zListInstance._payload   s       t}dh
SSSr*   c                     | j         j        S r3   r   parentr7   s    r(   r   zListInstance.parent   s    z  r*   c                     || j         _        d S r3   r   r:   s     r(   r   zListInstance.parent   s    !
r*   c                 4    | j                                         S r3   )r   	_getvaluer7   s    r(   r$   zListInstance.value       z##%%%r*   c                     | j         j        S r3   )r   r   r7   s    r(   r   zListInstance.meminfo   s    z!!r*   c                 j    | j         j        r&|rt          j        nt          j        | j        _        d S d S r3   )r   	reflectedr   true_bit	false_bitr5   r<   rr   s     r(   	set_dirtyzListInstance.set_dirty   s<    8 	Q69"P'"2"2w?PDM	Q 	Qr*   c           	          |                      |                     |                     |                     || j                            ||                    d                               dS )z)Remove the value at the location
           N)rx   rL   zfillrB   rR   rQ   rC   s     r(   clear_valuezListInstance.clear_value   sZ     	$,,s++,,,

3))#sxx{{;;<<<<<r*   Tc                 V   |r(|                      |                     |                     |                     |          }| j                            | j        |          }| j                            ||           |                     d           |r|                     |           d S d S )NT)	rx   rL   rE   rH   as_datarB   rb   r   rt   )r8   rD   rs   rq   decref_old_valuerJ   rK   s          r(   setitemzListInstance.setitem   s     	1dll3//000iinnO++DM3??	Is+++t 	#c"""""	# 	#r*   c                     |                      |          }| j                            | j        |          }| j                            ||           |r|                     |           d S d S r3   )rE   rH   r   rB   rb   rt   )r8   rD   rs   rq   rJ   rK   s         r(   inititemzListInstance.inititem   sn    iinnO++DM3??	Is+++ 	#c"""""	# 	#r*   c           	         | j         }|                     |          }|                     |          }| j                            t          j                  }|                    |                    ||          |                    ||                    }t          j	        ||| t          j        d          d                     dS )zjZero-fill the memory at index *start* to *stop*

        *stop* MUST not be smaller than *start*.
           r   N)rB   rE   rg   get_value_typer   intpsubptrtointr   memsetr   IntType)r8   startstopr"   baseend	intaddr_tr6   s           r(   r   zListInstance.zfill   s    
 -yyiiooM00<<	{{7++C;;"++D)<<> >wdMBJqMM!,<,<=====r*   c           	      8   |                     t          j                  }t          |t                    rt          j        ||          }|                    t          j        |                    }|	                    |          }t          ||          }||z  }t          j        |t          j                  }	 | |||d          }
t          j        ||t          j        ||          t          j        ||                    \  }}|                    |d          5  |                    t          j        |	           ddd           n# 1 swxY w Y   |                    |                    |	          d          5  |j                            |||
                                          }|                    t          j        ||          d          5 \  }}|5  |                    t          j        |	           ddd           n# 1 swxY w Y   |5  ||
j        _        |                    t          j                  |
j        _        ||
j        _        t          j        |d          |
j        _        t          j        |
j        _         |
!                    |
j        "                    d          |           ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   |                    |	          |
fS )z
        Allocate a ListInstance with its storage.
        Return a (ok, instance) tuple where *ok* is a LLVM boolean and
        *instance* is a ListInstance object (the object's contents are
        only valid when *ok* is true).
        NFr^   T)r6   dtorr   )#r   r   r   
isinstanceintr   rP   r   r   r-   r/   r   r`   r   muladd_with_overflowra   rb   r   rG   r   "meminfo_new_varsize_dtor_uncheckedget_dtorif_elseis_nullr   r   get_constant_nullpyobjectr   r5   	allocatedr6   r<   r   rQ   )clsr!   r"   r#   nitemsintp_tr%   payload_sizeitemsizeokr8   	allocsizeovfr   if_errorif_oks                   r(   allocate_exzListInstance.allocate_ex   s    ''
33fc"" 	1[00F,,U->y-I-IJJ--l;;33 &w0@AAs7GY55 !5gv68k&(6S6S68k&,6W6WY Y	3 __S_// 	1 	1MM'+R000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 __W\\"--d_;; 	: 	:kDDidmmoo E ? ?G'!B!B(- ! / / :2C8U 9 9MM'"3R8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 : :)0DJ&(/(A(A%.(Q(QDJ%.4DM+)+VQ)?)?DM&*1*;DM'JJty~~a00&999: : : : : : : : : : : : : : :	: : : : : : : : : : : : : : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:  ||B%%s   !EEEAK:K#!!HK#HK#HK#B%K K#KK#KK#K:#K'	'K:*K'	+K::K>K>c                    | j         }| j        }|j        }t          j        t          j                    t          j        g          }t          j        ||d	                    | j
                            }|j        s|S d|_        t          j        |                                          }|j        d         }t!          ||| j        |          }|j        j        }t          j        | |d          |j         |d          |          5 \  }	}
|                    |	          }|j                            || j
        |           ddd           n# 1 swxY w Y   |                                 |S )z,Define the destructor if not already definedz.dtor.list.{}linkonce_odrr   r   )r   r   stepr   N)rg   rB   moduler   FunctionTypeVoidTyper   	voidptr_tget_or_insert_functionformatr,   is_declarationlinkage	IRBuilderappend_basic_blockargsr   r   r6   rQ   for_range_slicerL   r   rw   ret_void)r8   r!   r"   modfntyfnbase_ptrr&   r   rD   _rs   s               r(   define_dtorzListInstance.define_dtor  s   --nr{}}w/@.ABB+C,;,B,B4:,N,NP P  	I#
,r44667771: &gw(KK | $ttAwwW\Q   	9&sA//#&&CKw
C888		9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9
 		s   :EEEc                 x    |                                  }| j                            |t          j                  }|S )zp"Get the element dtor function pointer as void pointer.

        It's safe to be called multiple times.
        )r   rB   r   r   r   )r8   r   
dtor_fnptrs      r(   r   zListInstance.get_dtor1  s5     !!]**41BCC
r*   c                    |                      ||||          \  }}|                    |                    |          d          5  |j                            |t
          d           ddd           n# 1 swxY w Y   |S )z
        Allocate a ListInstance with its storage.  Same as allocate_ex(),
        but return an initialized *instance*.  If allocation failed,
        control is transferred to the caller using the target's current
        call convention.
        Fr^   )zcannot allocate listN)r   ra   not_rh   ri   MemoryError)r   r!   r"   r#   r   r   r8   s          r(   allocatezListInstance.allocate;  s     ??7GYGGD__W\\"--e_<< 	I 	I--g{.GI I I	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I s   "A44A8;A8c                      | |||d          }||j         _        |                    t          j                  |j         _        |j                            |||j                   |S )z
        Allocate a new list instance pointing to an existing payload
        (a meminfo pointer).
        Note the parent field has to be filled by the caller.
        N)	r   r   r   r   r   r   r   rq   r$   )r   r!   r"   r#   r   r8   s         r(   from_meminfozListInstance.from_meminfoI  s^     s7GY55$
#55enEE
7Itz:::r*   c                 B   	
 	
 fd} j         
 j        	|j        t          
 j                   j        j        }t          j        d          }t          j        d          }		                    d||          }		                    d	
                    ||          |          }	                    |d          5   ||           ddd           n# 1 swxY w Y   	                    |d          5  	                    |	                    |	
                    ||                              } ||                                 j        |           ddd           n# 1 swxY w Y   | j        _                             d	           dS )
zE
        Ensure the list is properly sized for the new size.
        c           	      H                        t          j        
j                            }                    |          }|	z  }t          j        | t          j        	          t          j        |                    \  }}	                    |d          5  j
                            t          d           d d d            n# 1 swxY w Y   j                            
j        j        |          }t          j        |d           | 
j        _        d S )NFr^   )cannot resize list)r6   r   )r   r   r   r   r-   r   r   r   rP   ra   rh   ri   r   r   !meminfo_varsize_realloc_uncheckedr   r   guard_memory_errorr5   r   )new_allocatedr%   r   r   r   rJ   r"   r!   r   r   r8   s         r(   _payload_reallocz-ListInstance.resize.<locals>._payload_realloc[  sz   "001B481L1LMML"11,??LH$L$9FH--FL113 3NIs U33 K K!11';2IK K KK K K K K K K K K K K K K K K +??@D
@REN @ P PC &w';= = =&3DM###s   "CCC   r   rN   >Fr^   NT)rg   rB   rQ   r/   r   r5   r   r   rP   rO   ashrra   rR   r   r6   r   )r8   new_sizer   r   twoeightis_too_smallis_too_larger   r"   r!   r   r   s   `        @@@@r(   resizezListInstance.resizeW  s;   	4 	4 	4 	4 	4 	4 	4 	4 	4* --22M+	k&!$$FA&& **3	8DD**3Y0L0LhWW__\%_88 	' 	' X&&&		' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' __\%_88 	1 	1#KK(/H4;LL34O4O)Q )QR RM ]+++JJty-000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 &ts%   C  C$'C$A%E33E7:E7c                     |                      |          }|                      |          }t          j        | j        |||| j                   |                     d           dS )zE
        Move `count` elements from `src_idx` to `dest_idx`.
        )r   TN)rE   r   raw_memmoverB   r   r   )r8   dest_idxsrc_idxcountdest_ptrsrc_ptrs         r(   movezListInstance.move  si     99X&&))G$$DM8W!DN	< 	< 	< 	< 	tr*   N)T)ry   rz   r{   r   r|   r,   r5   r   r}   r$   r   r   r   r   r   r   classmethodr   r   r   r   r   r   r   r~   r*   r(   r   r      s       F F F   X T T XT ! ! X! ]" " ]" & & X& " " X"Q Q Q= = =# # # ## # # #> > > -& -& [-&^  <     [   [7 7 7r	 	 	 	 	r*   r   c                       e Zd Zd Zed             Zed             Zed             Zed             Z	e	j
        d             Z	dS )ListIterInstancec                     || _         || _        || _        |                    |||          | _        |j        |j                 | _        d S r3   )rg   rB   r   r   _iterr   
yield_typerH   )r8   r!   r"   	iter_typeiter_vals        r(   r   zListIterInstance.__init__  sF    (()XFF
!4Y5IJr*   c                     t          |||j        |          } | |||d           }|                    t          j        d          }t          j        ||          |j        _        |j	        |j        _	        |S Nr   )
r   	containerget_constantr   r   r   r`   r  indexr   )r   r!   r"   r  r   	list_instr8   r  s           r(   	from_listzListIterInstance.from_list  sm     '93FQQ	s7GY55$$UZ33"4WeDD
&.
r*   c                 X    t          | j        | j        | j        j        | j                  S r3   )r)   rg   rB   r   r  r  r7   s    r(   r5   zListIterInstance._payload  s-      t} $ 2DJ@ @ 	@r*   c                 4    | j                                         S r3   )r  r   r7   s    r(   r$   zListIterInstance.value  r   r*   c                 J    | j                             | j        j                  S r3   )rB   rG   r  r  r7   s    r(   r  zListIterInstance.index  s    }!!$*"2333r*   c                 P    | j                             || j        j                   d S r3   )rB   rb   r  r  r:   s     r(   r  zListIterInstance.index  s%    E4:#344444r*   N)ry   rz   r{   r   r  r  r|   r5   r$   r  r}   r~   r*   r(   r  r    s        K K K   [ @ @ X@
 & & X& 4 4 X4 \5 5 \5 5 5r*   r  c                 h   t          |          }t                              | |||          }|                     t          j        |          |_        t          |          D ];\  }}|                    |                     t          j        |          |d           <t          | |||j
                  S )zE
    Build a list of the given type, containing the given items.
    Trq   )lenr   r   r  r   r   r6   	enumerater   r   r$   )r!   r"   r#   itemsr   instirs   s           r(   
build_listr    s     ZZF  '9fEED$$UZ88DIE"" L L3W))%*a88#dKKKKGWiDDDr*   c                 8    d }|                      ||||          S )Nc                 4    g }|                     |            |S r3   )extend)iterableress     r(   	list_implz#list_constructor.<locals>.list_impl  s    

8
r*   compile_internal)r!   r"   sigr   r!  s        r(   list_constructorr%    s-      
 ##GYTBBBr*   c                 |    |j         }d}t                              | |||          }t          | |||j                  S r
  )return_typer   r   r   r$   )r!   r"   r$  r   r#   list_lenr  s          r(   r%  r%    s=    IH  '9hGGDGWiDDDr*   c                 V    t          | ||j        d         |d                   }|j        S r
  )r   r   r6   r!   r"   r$  r   r  s        r(   r(  r(    s'    #(1+tAw??D9r*   getiterc                     t                               | ||j        |d                   }t          | ||j        |j                  S r
  )r  r  r'  r   r$   r*  s        r(   getiter_listr-    s9    %%gwaQQDWgs
KKKr*   iternextc                    t          | ||j        d         |d                   }|j        }|j        }|                    d||          }|                    |           |                    |          5  |                    |                    |                     |	                    || 
                    t          j        d                    |_        d d d            d S # 1 swxY w Y   d S )Nr   rN   r   )r  r   r  r6   rO   	set_validra   yield_rL   rR   r  r   r   )	r!   r"   r$  r   resultr  r  r   is_valids	            r(   iternext_listiterr4    s)    GWchqk47CCDJEYF""3v66H
X		"	" M Mdll5))***[[(<(<UZ(K(KLL
M M M M M M M M M M M M M M M M M Ms   3A"C""C&)C&c                    t          | ||j        d         |d                   }|d         }|                    |          }|                    |d           |                    |          }t          | ||j        |          S )Nr   r   zgetitem out of rangerk   )r   r   rV   rl   rL   r   r'  )r!   r"   r$  r   r  r  r2  s          r(   getitem_listr7    sz    #(1+tAw??DGENN5!!EU 6777\\%  FWgsGGGr*   c                    t          | ||j        d         |d                   }|d         }|d         }|                    |          }|                    |d           |                    ||d           |                                 S )Nr   r   r   zsetitem out of ranger6  Tr  )r   r   rV   rl   r   get_dummy_value)r!   r"   r$  r   r  r  r$   s          r(   setitem_listr:  	  s    #(1+tAw??DGEGENN5!!EU 6777LLdL+++""$$$r*   c                 d   t          | ||j        d         |d                   }|                     ||j        d         |d                   }t          j        | ||j        d         |           |                    |           t          j        ||          }t                               | ||j        |          }||_	        t          j        ||j        |j        |j                  5 \  }}	|5 \  }
}|                    |
          }|                    ||d           d d d            n# 1 swxY w Y   |	5 \  }
}|                    |
          }|                    ||d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t#          | ||j        |j                  S Nr   r   Tr  )r   r   r   r   guard_invalid_slicern   get_slice_lengthr   r'  r6   r   for_range_slice_genericr   r   r   rL   r   r   r$   )r!   r"   r$  r   r  ro   result_sizer2  	pos_range	neg_rangerD   r   r$   s                r(   getslice_listrC    sI   #(1+tAw??D!d1g>>E#(1+uEEENN5 *7E::K""7GS_#.0 0FFK		(%+uz).
5 
5 78NI 	7,3LL%%EOOE5O666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7  	7,3LL%%EOOE5O666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	77 7 7 7 7 7 7 7 7 7 7 7 7 7 7 GWcov|LLLsZ   'F-1D*F*D.	.F1D.	2F71E4(F4E8	8F;E8	<FFFc           	      	   t          | ||j        d         |d                   }t          | ||j        d         |d                   }|                     ||j        d         |d                   }t          j        | ||j        d         |           |                    |           |j        }t          j        ||          }|                    |j        |          }	t          j
        |	j        d          }
t          j
        |	j        d          }|                    |                    d|j        |                    5 \  }}|5  |                    |j        |          }|                    |j        |          }|                    |                    d|	|
                    5  |                    |                    |j        |	                     |                    |                    ||	          ||           d d d            n# 1 swxY w Y   |                    |                    d|	|
                    5  |                    |                    ||	          ||           |                    |                    |j        |	                     d d d            n# 1 swxY w Y   |j        }t)          j        ||          5 }|                    |j                  }|                    |                    |j        |          |d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |5  |                    |                    d	|	|
                    5  d
}| j                            |t6          |f           d d d            n# 1 swxY w Y   t)          j        ||j        |j        |j                  5 \  }}|5 \  }}|                    |          }|                    ||d           d d d            n# 1 swxY w Y   |5 \  }}|                    |          }|                    ||d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                                 S )Nr   r   r   ==r   rN   Tr  !=z0cannot resize extended list slice with step != 1)r   r   r   r   r=  rn   r6   r>  r   r   rP   rQ   r   rO   r   rR   r   ra   r   r   r   	for_rangerL   r  r   rh   ri   
ValueErrorr?  r   r9  )r!   r"   r$  r   destsrcro   src_size
avail_size
size_deltard   onethen	otherwise	real_stop	tail_sizedest_offsetloopr$   rk   rA  rB  r  r   s                           r(   r:  r:  ,  s   #(1+tAw??D
w!d1g
>
>C!d1g>>E#(1+uEEENN5xH)'599JSXz22J;z**D
+joq
)
)C	,,T5:sCC	D	D '<HYy 	W 	W  EK<<IDIy99I!4!4S*d!K!KLL % %GKK	:>>???		'++i<<i#% % %% % % % % % % % % % % % % % % !4!4S*d!K!KLL @ @		'++i<<i#% % %GKK	:>>???	@ @ @ @ @ @ @ @ @ @ @ @ @ @ @  +K"7H55 WDJ//W[[[AA5QUVVVW W W W W W W W W W W W W W W-	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W4  	< 	<!4!4T:t!L!LMM O OH!11':vNNNO O O O O O O O O O O O O O O 0ej%*> > <AW)Y <.5%KK..ELLdL;;;< < < < < < < < < < < < < < <  <.5%KK..ELLdL;;;< < < < < < < < < < < < < < << < < < < < < < < < < < < < <	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<7'< '< '< '< '< '< '< '< '< '< '< '< '< '< '<R ""$$$sZ   R*A!L>'AHL>HL>H-L>AJ(L>(J,,L>/J,0L>AL'L>'L++L>.L+/L>2R*>M	R*M	R*+R6%N'R'N++R.N+/)RQ<1P	Q<PQ<"P#Q<(1Q%	Q<%Q))Q<,Q)-Q<0R<R  RR RR*R	R*R	R**R.1R.c                 8    d }|                      ||||          S )Nc                 0    |                      |           d S r3   )pop)lstr  s     r(   list_delitem_implz-delitem_list_index.<locals>.list_delitem_impll  s    




r*   r"  )r!   r"   r$  r   rY  s        r(   delitem_list_indexrZ  i  s.       ##G->TJJJr*   c                 :   t          | ||j        d         |d                   }|                     ||j        d         |d                   }t          j        | ||j        d         |           |                    |           t          j        ||          }t          j        |j	        d          }|
                    |                    d|j        |          d          5  d}| j                            |t          |f           d d d            n# 1 swxY w Y   |j        }	|                    |	|          }
t%          j        ||	|
|		                    d                    5 \  }}|                    |                    |                     d d d            n# 1 swxY w Y   |                    |j        |
          }|                    |	|
|           |                    |                    |j        |                     |                                 S )Nr   r   rF  Fr^   z4unsupported del list[start:stop:step] with step != 1)r   r   r   r   r=  rn   r>  r   rP   rQ   ra   rO   r   rh   ri   NotImplementedErrorr   rR   r   r   rx   rL   r   r6   r   r   r9  )r!   r"   r$  r   r  ro   	slice_lenrN  rk   r   rQ  rD   r   rR  s                 r(   delitem_listr^  r  sa   #(1+tAw??D!d1g>>E#(1+uEEENN5(%88I
+ina
(
(C	,,T5:sCCE	R	R P PD))'3FOOOP P P P P P P P P P P P P P P
 KEE9--I		 UIuzz!}}
 
 -#q$,,s++,,,- - - - - - - - - - - - - - - DIy11IIIeY	***KKDIy11222""$$$s$   #%DDD&,FF"%F"c                 8    d }|                      ||||          S )Nc                 "    | D ]}||k    r dS dS NTFr~   )rX  r$   elems      r(   seq_contains_implz!in_seq.<locals>.seq_contains_impl  s+     	 	Du}}tt ur*   r"  )r!   r"   r$  r   rc  s        r(   in_seqrd    s.       ##G->TJJJr*   c                 8    d }|                      ||||          S )Nc                 (    t          |           dk    S r
  r  seqs    r(   sequence_bool_implz)sequence_bool.<locals>.sequence_bool_impl  s    3xx1}r*   r"  )r!   r"   r$  r   rj  s        r(   sequence_boolrk    s.       ##G-?dKKKr*   c                 D    t          | t          j                  rd }|S d S )Nc                 (    t          |           dk    S r
  rg  rh  s    r(   implzsequence_truth.<locals>.impl  s    s88q= r*   )r   r   Sequence)ri  rn  s     r(   sequence_truthrp    s4    #u~&& 	! 	! 	! r*   c                    t          | ||j        d         |d                   }t          | ||j        d         |d                   }|j        }|j        }|                    ||          }t                               | ||j        |          }	||	_        t          j        ||          5 }
|                    |
j	                  }| 
                    |||j        |	j                  }|	                    |
j	        |d           d d d            n# 1 swxY w Y   t          j        ||          5 }
|                    |
j	                  }| 
                    |||j        |	j                  }|	                    |                    |
j	        |          |d           d d d            n# 1 swxY w Y   t          | ||j        |	j                  S r<  )r   r   r6   rR   r   r'  r   rG  rL   r  castr,   r   r   r$   )r!   r"   r$  r   aba_sizeb_sizer   rI  rT  r$   s               r(   list_addrw    s   Wgsx{DG<<AWgsx{DG<<AVFVF[[((F  '3?FKKDDI		7F	+	+ 5t		$*%%WeQWdjAATZt4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
	7F	+	+ Jt		$*%%WeQWdjAAW[[V44eDIIIJ J J J J J J J J J J J J J J
 GWcotzJJJs&   )ADDD/A.F))F-0F-c                     |j         d         j        |j        j        k    sJ t          | |||          }t	          | ||j        |j                  S r
  )r   r,   r'  _list_extend_listr   r$   )r!   r"   r$  r   rI  s        r(   list_add_inplacerz    sL    8A; 55555WgsD99DWgs
KKKr*   c                 \   t          |j        d         t          j                  rd\  }}nd\  }}t	          | ||j        |         ||                   }|j        }||         }t          j        |j        d          }	|	                    t          j        ||          |	|          }|                    ||          }
t                              | ||j        |
          }|
|_        t          j        ||	|
|d          5 \  }}t          j        ||          5 }|                    |j                  }|                    |                    |j        |          |d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t+          | ||j        |j                  S )Nr   )r   r   )r   r   Tincr  )r   r   r   Listr   r6   r   rP   rQ   rS   r   
is_neg_intmulr   r'  r   rG  rL   r  r   rR   r   r$   )r!   r"   r$  r   list_idxint_idxrJ  rK  multrd   r   rI  rS  r   rT  r$   s                   r(   list_mulr    s    #(1+uz** ! '' '
w();T(^
L
LCxH=D;ty!$$D>>',Wd;;T4HHD[[x((F  '3?FKKDDI		 $d	K	K	K SO_P[]^w11 	STKK
++ELLTZ==uTLRRR	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	SS S S S S S S S S S S S S S S
 GWcotzJJJs7   ?FAE0$F0E4	4F7E4	8FFFc                    t          | ||j        d         |d                   }|j        }|d         }t          j        |j        d          }|                    t          j        ||          ||          }|	                    ||          }|
                    |           t          j        ||||d          5 \  }	}
t          j        ||          5 }|                    |j                  }|                    |                    |j        |	          |d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t#          | ||j        |j                  S )Nr   r   Tr|  r  )r   r   r6   r   rP   rQ   rS   r   r  r  r   r   rG  rL   r  r   rR   r   r'  r$   )r!   r"   r$  r   r  rK  r  rd   r   rS  r   rT  r$   s                r(   list_mul_inplacer    s   #(1+tAw??DyH7D;ty!$$D>>',Wd;;T4HHD[[x((FKK		 (FH$	O	O	O SScT_abw11 	STLL,,ELLTZ==uTLRRR	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	SS S S S S S S S S S S S S S S
 Wgs
KKKs7   ;EAD, E,D0	0E3D0	4EE
Ec                 P   t          | ||j        d         |d                   }t          | ||j        d         |d                   }|                    |j        t          j                  }|                    |j        t          j                  }|                    d||          S Nr   r   rE  )r   r   r   r   r   r   rO   )r!   r"   r$  r   rs  rt  mambs           r(   list_isr    s    Wgsx{DG<<AWgsx{DG<<A			!)W^	4	4B			!)W^	4	4BtR,,,r*   c           	      t   |j         \  }}t          | |||d                   }t          | |||d                   }|j        }|                    d||j                  }	t	          j        ||	          }
|                    |	          5  t	          j        ||          5 }|                    |j	                  }|                    |j	                  }| 
                    |t          j        |j        |j        f||f          }|                    |                    |                    5  |                    t          j        |
           |                                 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                    |
          S r  )r   r   r6   rO   r   r`   ra   rG  rL   r  generic_compareoperatoreqr,   r   rb   r   do_breakrG   )r!   r"   r$  r   atybtyrs  rt  ru  	same_sizer   rT  vwitemress                  r(   list_eqr    s9   xHCWgsDG44AWgsDG44AVF##D&!&99I

#GY
7
7C		#	# 	  	 w// 	 4		$*%%A		$*%%A--gx{/2y#).Dq!fN NGg!6!677    g/555                             	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  <<s[   FBF+5E, F,E00F3E04F7FF	F
F	FF!Fc                  4    t          d | D                       S )Nc                 B    g | ]}t          |t          j                  S r~   )r   r   r~  ).0typs     r(   
<listcomp>zall_list.<locals>.<listcomp>  s$    <<<
3
++<<<r*   )all)r   s    r(   all_listr    s    <<t<<<===r*   c                 0    t          | |          sd S d }|S )Nc                     | |k     S r3   r~   rs  rt  s     r(   list_ne_implz"impl_list_ne.<locals>.list_ne_impl&  s    F|r*   r  )rs  rt  r  s      r(   impl_list_ner  !  s.    Aq>>    r*   c                 0    t          | |          sd S d }|S )Nc                     t          |           }t          |          }t          t          ||                    D ],}| |         ||         k     r dS | |         ||         k    r dS -||k    S ra  r  rangeminrs  rt  mnr  s        r(   list_le_implz"impl_list_le.<locals>.list_le_impl0  su    FFFFs1ayy!! 	 	Atad{{tt1!uu Avr*   r  )rs  rt  r  s      r(   impl_list_ler  +  s.    Aq>>    r*   c                 0    t          | |          sd S d }|S )Nc                     t          |           }t          |          }t          t          ||                    D ],}| |         ||         k     r dS | |         ||         k    r dS -||k     S ra  r  r  s        r(   list_lt_implz"impl_list_lt.<locals>.list_lt_implA  su    FFFFs1ayy!! 	 	Atad{{tt1!uu 1ur*   r  )rs  rt  r  s      r(   impl_list_ltr  <  s.    Aq>>    r*   c                 0    t          | |          sd S d }|S )Nc                     || k    S r3   r~   r  s     r(   list_ge_implz"impl_list_ge.<locals>.list_ge_implR  s    Avr*   r  )rs  rt  r  s      r(   impl_list_ger  M  s.    Aq>>    r*   c                 0    t          | |          sd S d }|S )Nc                     || k     S r3   r~   r  s     r(   list_gt_implz"impl_list_gt.<locals>.list_gt_impl\  s    1ur*   r  )rs  rt  r  s      r(   impl_list_gtr  W  s.    Aq>>    r*   zlist.appendc                 D   t          | ||j        d         |d                   }|d         }|j        }|                    |t	          j        |j        d                    }|                    |           |                    ||d           | 	                                S r<  )
r   r   r6   rR   r   rP   rQ   r   r   r9  )r!   r"   r$  r   r  itemr  r   s           r(   list_appendr  d  s    #(1+tAw??D7D	A{{1bk!&!4455HKKLLDL&&&""$$$r*   z
list.clearc                     t          | ||j        d         |d                   }|                    |                     t          j        d                     |                                 S r
  )r   r   r   r  r   r   r9  r*  s        r(   
list_clearr  p  sU    #(1+tAw??DKK$$UZ33444""$$$r*   copyc                     d }|S )Nc                      t          |           S r3   )listrX  s    r(   list_copy_implz!list_copy.<locals>.list_copy_implz  s    Cyyr*   r~   )rX  r  s     r(   	list_copyr  x  s       r*   r   c                     d }|S )Nc                 *    d}| D ]}||k    r|dz  }|S Nr   r   r~   )rX  r$   r   rb  s       r(   list_count_implz#list_count.<locals>.list_count_impl  s.     	 	Du}}q
r*   r~   )rX  r$   r  s      r(   
list_countr    s       r*   c                 F   t          | ||j        d         |d                   }t          | ||j        d         |d                   }|j        }|j        }|                    ||          }|                    |           ||_        t          j        ||          5 }	|                    |	j                  }
| 	                    ||
|j
        |j
                  }
|                    |                    |	j        |          |
d           d d d            n# 1 swxY w Y   |S )Nr   r   Tr  )r   r   r6   rR   r   r   rG  rL   r  rr  r,   r   )r!   r"   r$  r   rJ  rI  rK  	dest_sizer   rT  r$   s              r(   ry  ry    sH   
w!d1g
>
>C#(1+tAw??DxH	I[[9--FKKDI		7H	-	- MDJ''WeSY
CCW[[Y77tLLLM M M M M M M M M M M M M M M
 Ks   A.DDDzlist.extendc                     t          |j        d         t          j                  r&t	          | |||           |                                 S d }|                     ||||          S )Nr   c                 4    | j         }|D ]} ||           d S r3   )append)rX  r  methr  s       r(   list_extendz list_extend.<locals>.list_extend  s1    z 	 	ADGGGG	 	r*   )r   r   r   r~  ry  r9  r#  )r!   r"   r$  r   r  s        r(   r  r    sm    #(1+uz** )'7C666&&(((   ##G[#tDDDr*   r  c                 (   t          |t          t          j        t          j        f          st          j        d|           t          |t          t          j        t          j        f          st          j        d|           dt          fd}|S )Nz$arg "start" must be an Integer. Got z#arg "stop" must be an Integer. Got r   c                     t          |           }|dk     r||z  }|dk     rd}|dk     r||z  }||k    r|}t          ||          D ]}| |         |k    r|c S t          d          )Nr   zvalue not in list)r  r  rH  )rX  r$   r   r   r  r  s         r(   list_index_implz#list_index.<locals>.list_index_impl  s    HH199QJEqyy!88AID!88Dud## 	 	A1v  ,---r*   )r   r   r   IntegerOmittedr   TypingErrorintp_max)rX  r$   r   r   r  s        r(   
list_indexr    s     ec5=%-@AA Q !O!O!OPPPdS%-?@@ O !Mt!M!MNNN*+( . . . . r*   zlist.insertc                 (   t          | ||j        d         |d                   }|                    |d                   }|                    |          }|d         }|j        }t          j        |j        d          }|                    ||          }	|	                    |	           |
                    |                    ||          ||                    ||                     |                    ||dd           |                                 S )Nr   r   r   TF)rq   r   )r   r   rV   re   r6   r   rP   rQ   rR   r   r   r   r   r9  )
r!   r"   r$  r   r  r  r$   r  rN  r   s
             r(   list_insertr    s     #(1+tAw??DNN47##EU##EGE	A
+afa
 
 C{{1c""HKKIIgkk%%%ugkk!U.C.CDDDLLdULCCC""$$$r*   zlist.popc                    t          | ||j        d         |d                   }|j        }t          j        | ||t
          df           |                    |t          j        |j	        d                    }|
                    |          }|                    |           |                    |           |                    |           t          | ||j        |          S )Nr   pop from empty listr   )r   r   r6   r   
guard_zerorj   r   r   rP   rQ   rL   rt   r   r   r   r'  )r!   r"   r$  r   r  r  r   s          r(   list_popr    s    #(1+tAw??D	Aw"$9:< < <Ar{161--..A
,,q//CcQKKNNNGWcosCCCr*   c                    t          | ||j        d         |d                   }|                    |d                   }|j        }t	          j        | ||t          df           |                    |d           |                    |          }t          j
        |j        d          }|                    |t          j
        |j        d                    }|                    ||                    ||          |                    ||                     |                    |           t!          | ||j        |          S )Nr   r   r  zpop index out of range)r   r   rV   r6   r   r  rj   rl   rL   r   rP   rQ   r   r   rR   r   r   r'  )	r!   r"   r$  r   r  rD   r  r   rN  s	            r(   r  r    s   #(1+tAw??D
..a
!
!C	Aw"$9:< < <S2333
,,s

C
+afa
 
 CAr{161--..AIIc7;;sC(('++a*=*=>>>KKNNNGWcosCCCr*   removec                     d }|S )Nc                     t          t          |                     D ]&}| |         |k    r|                     |            d S 't          d          )Nzlist.remove(x): x not in list)r  r  rW  rH  )rX  r$   r  s      r(   list_remove_implz%list_remove.<locals>.list_remove_impl  sV    s3xx 	 	A1v


  8999r*   r~   )rX  r$   r  s      r(   list_remover    s    : : : r*   reversec                     d }|S )Nc                     t          dt          |           dz            D ]}| dz
  }| |         | |         c| |<   | |<    d S )Nr   r   r   )r  r  )rX  rs  rt  s      r(   list_reverse_implz'list_reverse.<locals>.list_reverse_impl  sW    q#c((a-(( 	, 	,AQA VSVNCFCFF	, 	,r*   r~   )rX  r  s     r(   list_reverser  	  s    , , ,
 r*   c                     | |k    S r3   r~   r  s     r(   gtr    s    q5Lr*   )ltT)
is_argsortis_list)r  r  r  c                 (   t          | t          j                  r| j        }n$t          | t          j                  r| j        }n| }t          |t          j        t          j        t          t          f          sd| z  }t          j        |          |S )Nz2an integer is required for 'reverse' (got type %s))r   r   r  r$   OptionalrQ   Booleanr  r   boolr   r  )r  rtyrk   s      r(   _sort_check_reverser  "  s    '5=)) m	GU^	,	, lcEM5=#tDEE &BWL %%%Jr*   c                     t          | t          j                  rd}t          j        |          t          j        |           s0t          | t          j                  sd}t          j        |          d S d S )NzoKey must concretely be None or a Numba JIT compiled function, an Optional (union of None and a value) was foundz1Key must be None or a Numba JIT compiled function)r   r   r  r   r  r   is_nonelike
Dispatcher)keyrk   s     r(   _sort_check_keyr  /  s    #u~&& &C %%%$$ &
38H(I(I &A %%%& & & &r*   sortFc                     t          |           t          |           t          j        |          rdt          t
          n*t          |t          j                  rdt          t          dfd	}|S )NFTc                      du rfd D             }n }|du s|dk    r |          }n |          }du r fd|D              d d <   d S d S )NTc                 &    g | ]} |          S r~   r~   )r  xr  s     r(   r  z.ol_list_sort.<locals>.impl.<locals>.<listcomp>J  s!    (((qCCFF(((r*   Fr   c                      g | ]
}|         S r~   r~   )r  r  rX  s     r(   r  z.ol_list_sort.<locals>.impl.<locals>.<listcomp>R  s    ***c!f***r*   r~   )rX  r  r  _lsttmpKEYsort_bsort_fs   ``   r(   rn  zol_list_sort.<locals>.implH  s    $;;((((C(((DDDew!||&,,CC&,,C$;;****c***CFFF ;r*   NF)r  r  r   r  sort_forwardssort_backwardsr   r   r  arg_sort_forwardsarg_sort_backwards)rX  r  r  rn  r  r  r  s       @@@r(   ol_list_sortr  9  s     C   3 $	C)	*	* $"#
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ Kr*   c                     t          | t          j                  sdS t          |           t	          |           dd}|S )NFc                 R    t          |           }|                    ||           |S )N)r  r  )r  r  )r  r  r  rX  s       r(   rn  zol_sorted.<locals>.impl_  s(    8nnS'***
r*   r  )r   r   IterableTyper  r  )r  r  r  rn  s       r(   	ol_sortedr  V  sU     h 233 uC       Kr*   c                 *    |j         |j         k    sJ |S r3   )r,   )r!   r"   fromtytotyrs   s        r(   list_to_listr  h  s     <4:%%%%Jr*   Cannot mutate a literal listr  c                     t           r3   _banned_error)rX  objs     r(   literal_list_banned_appendr  v      
r*   r  c                     t           r3   r  )rX  r  s     r(   literal_list_banned_extendr  {  r  r*   insertc                     t           r3   r  )rX  r  r  s      r(   literal_list_banned_insertr     r  r*   c                     t           r3   r  )rX  r$   s     r(   literal_list_banned_remover"    r  r*   rW  c                     t           r3   r  rX  r  s     r(   literal_list_banned_popr&    r  r*   clearc                     t           r3   r  r  s    r(   literal_list_banned_clearr)    r  r*   c                     t           r3   r  )rX  r  r  s      r(   literal_list_banned_sortr+    r  r*   c                     t           r3   r  r  s    r(   literal_list_banned_reverser-    r  r*   c                 f    t          | t          j                  rd}t          j        |          d S )Nz+list.index is unsupported for literal listsr   r   LiteralListr   r  )rX  r   r   r   rk   s        r(   literal_list_indexr1    s9    
 #u()) &; %%%& &r*   c                 D    t          | t          j                  rd }|S d S )Nc                 D    d}t          |           D ]}||k    r|dz  }|S r  r   )rX  r   r   rs   s       r(   rn  z literal_list_count.<locals>.impl  s6    E%c**  !88QJELr*   r   r   r0  )rX  r   rn  s      r(   literal_list_countr5    s7    #u()) 	 	 	  r*   c                 D    t          | t          j                  rd }|S d S )Nc                     | S r3   r~   r  s    r(   rn  z literal_list_count.<locals>.impl  s    Jr*   r4  )rX  rn  s     r(   r5  r5    s5    #u()) 	 	 	 r*   c                 H    t          | t          j                  rt          d S r3   )r   r   r0  r  r%  s     r(   literal_list_delitemr9    s'    #u())  r*   c                 b    t          | t          j                  rt          j        d          d S )Nr  r/  )rX  r  r$   s      r(   literal_list_setitemr;    s6    #u()) A !?@@@A Ar*   c                 f    t          | t          j                  sd S d}t          j        |          )NzRCannot __getitem__ on a literal list, return type cannot be statically determined.r/  )rX  r   rk   s      r(   literal_list_getitemr=    s4    c5,-- $C

S
!
!!r*   c                 T    t          | t          j                  sd S | j        fdS )Nc                     S r3   r~   rX  ls    r(   <lambda>z"literal_list_len.<locals>.<lambda>  s    q r*   )r   r   r0  r   r@  s    @r(   literal_list_lenrC    s0    c5,-- 	A===r*   c                 D    t          | t          j                  rd }|S d S )Nc                 <    t          |           D ]}||k    r dS dS ra  r   )rX  r  rs   s      r(   rn  z#literal_list_contains.<locals>.impl  s3    %c**    $;;44 5r*   r4  )rX  r  rn  s      r(   literal_list_containsrF    s7    #u()) 	 	 	
  r*   c                     t          |          t          |          k    rt          t          j        |t          |                    } fdt	          |||          D             }                     ||          S )Nc                 H    g | ]\  }}}                     |||          S r~   )rr  )r  r  ftr"   r!   s       r(   r  z.literallist_to_literallist.<locals>.<listcomp>  sA     9 9 9Aq \\'1a++ 9 9 9r*   )r  r\  r   unpack_tuplezip
make_tuple)r!   r"   r  r  rs   olditemsr  s   ``     r(   literallist_to_literallistrO    s    
6{{c$ii!!#GS#f++>>H9 9 9 9 9&$779 9 9EgtU333r*   r  )r#  )r   mathr  	functoolsr   llvmliter   
numba.corer   r   r   r   numba.core.imputilsr	   r
   r   r   r   r   r   numba.core.extendingr   r   
numba.miscr   numba.cpythonr   numbar   r)   r/   objectr1   r   r   r  r  r  r  r%  r  r~  r(  r-  ListIterBORROWEDr4  rL   r  r7  r   Anyr:  	SliceTyperC  delitemrZ  r^  containsro  rd  r  rk  truthrp  rR   rw  iaddrz  r  r  imulr  is_r  r  r  r  ner  ler  r  r  ger  r  r  r  r  r  r  ry  r  r   maxvalr  r  r  r  r  r  make_jit_quicksortrun_quicksortr  r	  r
  r  r  r  r  sortedr  r  r  r  r0  r  r  r   r"  r&  r)  r+  r-  
_index_endr1  r5  r9  r;  r=  rC  rF  rO  r~   r*   r(   <module>rl     s:   
   % % % % % %       5 5 5 5 5 5 5 5 5 5 5 5- - - - - - - - - - - - - - - - - - ; : : : : : : :             ! ! ! ! ! !            	H 	H 	H( ( (UA UA UA UA UA UA UA UAp         +      $E E E E E$ E E EN"5 "5 "5 "5 "5( "5 "5 "5PE E E tU'((C C )(C tE E E sEJ    y%*%%L L &%L z5>**w  
M 
M !  +*
M xU];;H H <;H xU]EIFF% % GF% xU_==M M >=M, xU_eiHH8% 8% IH8%x xU];;K K <;K xU_==% % >=%D x %.%)<<K K =<K tU^$$L L %$L 
(.   x|UZ44K K 54K* x}ej%*55L L 65L x|UZ77x|U]EJ77K K 87 87K. x}ej%-88L L 98L, x|UZ44- - 54- x{EJ
33  430> > > 
(+   
(+    
(+    
(+   
(+   }ej%)44	% 	% 54	% |UZ((% % )(% V$$  %$ W%%	 	 &%	  " }ej%*<==E E >=E : W%%!"    &%2 }ej%-9 % % % z5:&&D D '&D z5:u}55D D 65D" X&&
 
 '&
 Y''  ('   -	,..<--444B0I0D9=? ? ??L 1Y1Tb:>@ @ @@M 
 
 
& & & V$$   %$8 
&   " EJ
##  $# #"#ABB "H--  .- "H--  .- "H--  .- "H--  .- "E**   +* "G,,  -, "F++   ,+ "I..  /. Z
"G,,%&J & & & -,& "G,,  -, "F++  ,+ 
(
   
(
A A A 
(
" " " 
#   
(
   Eu0114 4 214 4 4r*   