+
    :i                     .
   R t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
HtHt ^ RIHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHtHt ^ R	IHtH t H!t! R
 t"R t#R[t$R\t%R]t&^t'^t(Rt)R t*]!R 4       t+R t,R t-R t.R t/]P`                  ! RR^4      t1 ! R R]24      t3 ! R R]24      t4 ! R R]24      t5R t6]! ]74      R 4       t8]! ]7]
Pr                  4      R 4       t:]! ];]
Px                  4      R 4       t=]! ]P|                  ]
Px                  ]
P~                  4      R 4       t@]! R]
Px                  4      R  4       tA]! R!]
P                  4      ]! ]P                  4      R" 4       4       tD]! R#]
Px                  ]
P~                  4      R$ 4       tE]!R% 4       tF] ! ]
Px                  R&4      R' 4       tG]!R( 4       tH] ! ]
Px                  R)4      R* 4       tI]!R+ 4       tJ] ! ]
Px                  R,4      R- 4       tK]!R. 4       tL] ! ]
Px                  R/4      R0 4       tM]!R1 4       tN] ! ]
Px                  R24      R3 4       tOR4 tP]!R5 4       tQ] ! ]
Px                  R64      R7 4       tRR8 tS]!R9 4       tT] ! ]
Px                  R:4      R; 4       tUR< tV]!R= 4       tW] ! ]
Px                  R>4      R? 4       tX]! R@]
Px                  ]
Pr                  4      RA 4       tYRB tZ]P                  ]S3]P                  ]Y3]P                  ]P3]P                  ]V33 F  w  t_t`]Z! ]_]`4       K  	  ]! ]P                  4      ] ! ]
Px                  RC4      RD 4       4       tb]! ]P                  4      ] ! ]
Px                  RE4      RF 4       4       td]! ]P                  4      ] ! ]
Px                  RG4      RH 4       4       tf]! ]P                  4      ] ! ]
Px                  RI4      RJ 4       4       th]!RK 4       ti] ! ]
Px                  RL4      RM 4       tj]!RN 4       tk]! ]P                  4      ] ! ]
Px                  RO4      RP 4       4       tm]! ]P                  4      ] ! ]
Px                  RQ4      RR 4       4       to]!RS 4       tp]! ]P                  4      RT 4       tr]! ]P                  4      RU 4       tt]!RV 4       tu]! ]P                  4      RW 4       tw]! ]P                  4      RX 4       ty]! ]P                  ]
Px                  ]
Px                  4      RY 4       t{]! ]
Px                  ]
Px                  4      RZ 4       t|R# )_z&
Support for native homogeneous sets.
N)cached_property)ir)typestypingcgutils)	lower_builtin
lower_castiternext_implimpl_ret_borrowedimpl_ret_new_refimpl_ret_untrackedfor_itercall_lenRefType)	quicksort)slicing)NumbaValueErrorTypingError)overloadoverload_method	intrinsicc                    \         P                  ! V4      pV P                  V4      P                  4       pVP	                  W54      pV P                  WVR7      # )zl
Given a set value and type, get its payload structure (as a
reference, so that mutations are seen by all).
ref)r   
SetPayloadget_data_type
as_pointerbitcastmake_data_helper)contextbuilderset_typeptrpayload_typeptrtypayloads   &&&&   R/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/cpython/setobj.pyget_payload_structr'      sQ    
 ##H-L!!,/::<Eooc)G##Gw#GG    c                n    V P                  \        P                  ! V4      4      pV P                  V4      # )z/
Return the entry size for the given set type.
)r   r   SetEntryget_abi_sizeof)r   r!   lltys   && r&   get_entry_sizer-   #   s.       !9:D!!$''r(   Fc                $   V P                   pVP                  \        4      pVP                  WB3/ 4      pV P	                  WV4      pV! W34      p\        WV4      p	\        P                  ! VP                  \        4      p
VP                  WV
4      # )z&
Compute the hash of the given value.
)typing_contextresolve_value_typehashget_call_typeget_functionis_hash_usedr   ConstanttypeFALLBACKselect)r   r    typvalue	typingctxfntysigfnhis_okfallbacks   &&&&       r&   get_hash_valuerB   ;   s     &&I''-D


Y
3C			d	(B
7HA1-E{{1668,H>>%H--r(   c                 h   a V3R  lpV P                  \        4      pVP                  V S3/ 4      pWB3# )c                 ,   < \        WSV^ ,          4      #     )rB   )r   r    r9   argsr:   s   &&&&r&   impl'_get_hash_value_intrinsic.<locals>.implL   s    gtAw??r(   )r0   r1   r2   )r;   r:   rH   r<   r=   s   &f   r&   _get_hash_value_intrinsicrJ   J   s7    @''-D


Y"
5C9r(   c                p    \         P                  ! VP                  \        4      pVP	                  RW#4      # )z0
Whether the hash value denotes an empty entry.
==)r   r5   r6   EMPTYicmp_unsigned)r   r    r?   emptys   &&& r&   is_hash_emptyrP   S   s+     KK&E  q00r(   c                p    \         P                  ! VP                  \        4      pVP	                  RW#4      # )z1
Whether the hash value denotes a deleted entry.
rL   r   r5   r6   DELETEDrN   r   r    r?   deleteds   &&& r&   is_hash_deletedrV   Z   s+     kk!&&'*G  q22r(   c                p    \         P                  ! VP                  \        4      pVP	                  RW#4      # )z1
Whether the hash value denotes an active entry.
<rR   rT   s   &&& r&   r4   r4   a   s+    
 kk!&&'*G  a11r(   c            	      @   \        V  Uu. uF  p\        V\        P                  4      NK  	  up4      '       g   \	        R V  24      h\        V  Uu. uF"  q ^ ,          P
                  VP
                  8H  NK$  	  up4      '       g   \	        RV  24      hR# u upi u upi )z All arguments must be Sets, got z'All Sets must be of the same type, got N)all
isinstancer   Setr   dtype)rG   r9   ss   *  r&   check_all_setr_   j   s    d;ds
3		*d;<<<TFCDD$7$QQ($788CD6JKK 9 < 8s   #B(BSetLoopc                     a  ] tR t^ut o R t]R 4       t]P                  R 4       t]R 4       t]P                  R 4       t]R 4       t	]	P                  R 4       t	]R 4       t
]
P                  R	 4       t
]R
 4       t]P                  R 4       t]R 4       t]R 4       tR tRR lt]P"                  RR l4       t]P"                  R 4       tRtV tR# )_SetPayloadc                    \        WW44      pWn        W n        W0n        WPn        VP                  R 4      V n        W@n        R# )entriesN)r'   _context_builder_ty_payload_get_ptr_by_name_entries_ptr)selfr   r    r!   r"   r%   s   &&&&& r&   __init___SetPayload.__init__w   s9    $WxE00;	r(   c                .    V P                   P                  # Nrh   maskrl   s   &r&   rr   _SetPayload.mask       }}!!!r(   c                &    WP                   n        R # rp   rq   rl   r:   s   &&r&   rr   rt      s     #r(   c                .    V P                   P                  # rp   rh   usedrs   s   &r&   rz   _SetPayload.used   ru   r(   c                &    WP                   n        R # rp   ry   rw   s   &&r&   rz   r{          "r(   c                .    V P                   P                  # rp   rh   fillrs   s   &r&   r   _SetPayload.fill   ru   r(   c                &    WP                   n        R # rp   r   rw   s   &&r&   r   r      r}   r(   c                .    V P                   P                  # rp   rh   fingerrs   s   &r&   r   _SetPayload.finger   s    }}###r(   c                &    WP                   n        R # rp   r   rw   s   &&r&   r   r      s    $r(   c                .    V P                   P                  # rp   rh   dirtyrs   s   &r&   r   _SetPayload.dirty   s    }}"""r(   c                &    WP                   n        R # rp   r   rw   s   &&r&   r   r      s    #r(   c                    V P                   # )z.
A pointer to the start of the entries array.
)rj   rs   s   &r&   rd   _SetPayload.entries   s    
 }}r(   c                    V P                   # )z3
A pointer to the start of the NRT-allocated area.
)rk   rs   s   &r&   r"   _SetPayload.ptr   s    
 yyr(   c                    \         P                  ! V P                  V P                  V4      pV P                  P                  V P                  \        P                  ! V P                  4      VR7      pV# )z
Get entry number *idx*.
r   )	r   geprf   rj   re   r   r   r*   rg   )rl   idx	entry_ptrentrys   &&  r&   	get_entry_SetPayload.get_entry   sW     KKt}}cB	..t}}/4~~dhh/G3< / > r(   c                P	  a aaaaaaaaaa S P                   oS P                  oSP                  pS P                  pS P                  P
                  pSP                  pVP                  \        P                  4      pVP                  WvV3/ 4      p	SP                  W4      o\        P                  ! V^4      p
\        P                  ! V^4      p\        P                  ! SS4      p\        P                  ! SSP!                  SV4      4      pS'       d)   VP                  R	4      o\        P                  ! SS4      oSP#                  R4      pSP#                  R4      oSP#                  R4      oSP#                  R4      pVVVVVVVVVVV 3R lp\        P$                  ! S\        P                  ! V\&        4      4      ;_uu_ 4        SP)                  V4      pV! V4       SP+                  VV
4      pSP!                  VV4      pSP-                  VV4       RRR4       SP/                  V4       SP1                  V4      ;_uu_ 4        SP)                  V4      pV! V4       SP)                  V4      pSP3                  VV4      pSP+                  V
SP5                  VV4      4      pSP!                  VSP+                  VV4      4      pSP-                  VV4       SP-                  VV4       SP/                  V4       RRR4       SP1                  S4      ;_uu_ 4        S'       dY   SP)                  V4      pSP)                  S4      pSP7                  SP9                  RVS4      VV4      pSP-                  VV4       SP/                  V4       RRR4       SP1                  S4      ;_uu_ 4        SP/                  V4       RRR4       SP;                  V4       SP=                  \        P>                  ! ^4      R4      pVPA                  \        PB                  S4       VPA                  \        PD                  S4       VSP)                  V4      3#   + '       g   i     ELI; i  + '       g   i     ELu; i  + '       g   i     L; i  + '       g   i     L; i)
a/  
Lookup the *item* with the given hash values in the entries.

Return a (found, entry index) tuple:
- If found is true, <entry index> points to the entry containing
  the item.
- If found is false, <entry index> points to the empty entry that
  the item can be written to (only if *for_insert* is true)
zlookup.bodyzlookup.foundzlookup.not_foundz
lookup.endc           	     H  < SP                  V 4      pVP                  pSP                  SP                  RSV4      4      ;_uu_ 4        S	! SSVP                  34      pSP                  V4      ;_uu_ 4        SP                  S4       RRR4       RRR4       SP                  \        SSV4      4      ;_uu_ 4        SP                  S4       RRR4       S
'       dv   SP                  \        SSV4      4      ;_uu_ 4        SP                  S4      pSP                  SP                  RVS4      W4      pSP                  VS4       RRR4       R# R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)z7
Check entry *i* against the value being searched for.
rL   N)r   r1   if_thenrN   keybranchrP   rV   loadr8   store)ir   
entry_hasheqjbb_foundbb_not_foundr    r   eqfn
for_insert
free_indexfree_index_sentinelr?   itemrl   s   &    r&   check_entry(_SetPayload._lookup.<locals>.check_entry   s7    NN1%EJ!6!6tQ
!KLL 'D%))#45__R((NN8, )	 M w!LMM|, N ___Wgz%RSSZ0Aw'<'<T1FY'Z'(-AMM!Z0	 TS  )(	 ML NM
 TSSs=   	/E*8E	
E*>E=AFE'"E**E:	=F	F!	NrL   found)#re   rf   r6   rr   rg   r]   r/   r0   operatorr   r2   r3   r   r5   r   alloca_once_valueand_append_basic_block	for_rangeLINEAR_PROBESr   addr   r   
goto_blocklshrmulr8   rN   position_at_endphiIntTypeadd_incomingtrue_bit	false_bit)rl   r   r?   r   intp_trr   r]   tyctxr<   r=   onefiveperturbindexbb_bodybb_endr   r   pr   r   r   r   r    r   r   r   r   s   ffff                 @@@@@@@r&   _lookup_SetPayload._lookup   s    ----yy&&''4  ;##D.kk&!${{61% ++GQ7))'*1,,q$*?A"&))B- 227<OPJ,,];--n=112DE++L9	1 	18 wFM(JKKU#ANAs#AQ%AMM!U# L 	w((U#AN
 W%AQ%ACQ!56AT7;;q!#45AMM!U#MM!W%NN7# )  -- LL'LL,NN7#8#8qBU#V#$a)a'NN6" . ))NN6" * 	'BJJqM737++X67,,l;gll5)))a LKK )((  .- *)s3   
AQB6Q.#A2R6RQ+	.Q?	R	R%	Nc           
   #  t  "   V P                   pV P                  pVP                  \        P                  4      p\
        P                  ! V^4      pVP                  V P                  V4      p\        P                  ! W6VR7      ;_uu_ 4       pV P                  VP                  4      p\        W#VP                  4      p	VP                  V	4      ;_uu_ 4        \!        VP                  VVP"                  R7      p
V
x  RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i5i)z7
Iterate over the payload's entries.  Yield a SetLoop.
startr   r   do_breakN)re   rf   get_value_typer   intpr   r5   r   rr   r   r   r   r   r4   r1   r   r`   r   )rl   r   r   r    r   r   size
range_loopr   is_usedloops   &&         r&   _iterate_SetPayload._iterate7  s     
 ----''

3kk&!${{499c*wE::jNN:#3#34E"7UZZ@G))Z%5%5U(2(;(;=
 * ;: *) ;::s7   BD8AD$'D	?D$
D8D!D$$D5	/	D8c           	   #  l  "   V P                   pV P                  pVP                  \        P                  4      p\
        P                  ! V^ 4      p\
        P                  ! V^4      pV P                  pVP                  R4      pVP                  R4      p\        P                  ! W P                  4      p	VP                  V4       VP                  V4      ;_uu_ 4        VP                  V	4      p
VP                  WbP!                  W4      4      p
VP#                  W4       V P%                  V
4      p\'        WVP(                  4      pVP+                  WV4       RRR4       VP-                  V4       VP                  V	4      p
Wn        V P%                  V
4      x  R#   + '       g   i     LM; i5i)zs
Yield a random entry from the payload.  Caller must ensure the
set isn't empty, otherwise the function won't end.
next_entry_bodynext_entry_endN)re   rf   r   r   r   r   r5   rr   r   r   r   r   r   r   r   r   r   r   r   r4   r1   cbranchr   )rl   r   r    r   zeror   rr   r   r   r   r   r   r   s   &            r&   _next_entry_SetPayload._next_entryK  sI     ----''

3{{61%kk&!$yy
 ,,->?++,<=))';;?w((U#AT;;q#67AMM!#NN1%E"7UZZ@GOOGW5 ) 	' LLnnQ )(s    CF4 A<F!AF4!F1	,F4)rf   re   rj   rh   rk   rg   r   Frp   )__name__
__module____qualname____firstlineno__rm   propertyrr   setterrz   r   r   r   rd   r"   r   r   
contextlibcontextmanagerr   r   __static_attributes____classdictcell____classdict__s   @r&   rb   rb   u   sN     " " 
[[# # " " 
[[# # " " 
[[# # $ $ ]]% % # # \\$ $    t*l  & %  % r(   rb   c                     a  ] tR tRt o R t]R 4       t]R 4       t]R 4       t]R 4       t	]R 4       t
]
P                  R 4       t
R	 tR
 tR-R ltR.R ltR.R ltR-R ltR-R ltR-R ltR tR tR tR tR tR tR tR tR tR/R ltR tR t] R0R l4       t!] R0R l4       t"] R  4       t#] R! 4       t$R" t%R# t&R$ t'R% t(R/R& lt)R' t*R( t+R) t,R* t-R+ t.R,t/V t0R# )1SetInstanceit  c                x    Wn         W n        W0n        \        W4      V n        VP                  W#V4      V n        R # rp   )re   rf   rg   r-   
_entrysizemake_helper_set)rl   r   r    r!   set_vals   &&&&&r&   rm   SetInstance.__init__v  s1    (;''7C	r(   c                .    V P                   P                  # rp   )rg   r]   rs   s   &r&   r]   SetInstance.dtype}  s    xx~~r(   c                    V P                   pV P                  pV P                   P                  P                  W P                  4      p\        WV P                  V4      # )z
The _SetPayload for this set.
)re   rf   nrtmeminfo_datameminforb   rg   )rl   r   r    r"   s   &   r&   r%   SetInstance.payload  sG     ----mm,,WllC7TXXs;;r(   c                6    V P                   P                  4       # rp   )r   	_getvaluers   s   &r&   r:   SetInstance.value  s    yy""$$r(   c                .    V P                   P                  # rp   )r   r   rs   s   &r&   r   SetInstance.meminfo  s    yy   r(   c                .    V P                   P                  # rp   r   parentrs   s   &r&   r   SetInstance.parent  s    yyr(   c                &    WP                   n        R # rp   r   rw   s   &&r&   r   r    s     		r(   c                .    V P                   P                  # )z,
Return the number of elements in the size.
)r%   rz   rs   s   &r&   get_sizeSetInstance.get_size  s     ||   r(   c                    V P                   P                  '       d:   V'       d   \        P                  M\        P                  V P
                  n        R # R # rp   )rg   	reflectedr   r   r   r%   r   rl   vals   &&r&   	set_dirtySetInstance.set_dirty  s3    8858!1!1g>O>ODLL r(   c                (   V P                   pV P                  pVP                  pWBn        V P                  V4       W2n        VP
                  p	\        P                  ! V	P                  ^4      p
VP                  W4      ;qn        VP                  \        WgV4      RR7      ;_uu_ 4        VP                  VP                  V
4      Vn        RRR4       V'       d   V P                  V	4       V P                  R4       R#   + '       g   i     L<; i)   TlikelyN)re   rf   r1   incref_valuer   rz   r   r5   r6   r   r   rP   r   upsizer
  )rl   r%   r   r   r?   	do_resizer   r    old_hashrz   r   s   &&&&&&     r&   
_add_entrySetInstance._add_entry  s    ----::
$	||kk$))Q'%kk$44|__]7XF$(  * *";;w||S9GL* KKt* *s   +"DD	c           	        V P                   pV P                  pVP                  W#R R7      w  rVP                  V4      p
VP	                  V
4      ;_uu_ 4        VP                  V	4      pVP                  pW;n        V'       d   V P                  V4       W+n        VP                  p\        P                  ! VP                  ^4      pVP                  W4      ;qn	        VP	                  \        WgV4      R R7      ;_uu_ 4        VP                  VP                  V4      Vn        RRR4       V'       d   V P!                  V4       V P#                  R 4       RRR4       R#   + '       g   i     LD; i  + '       g   i     R# ; i)Tr   r  N)re   rf   r   not_r   r   r1   r  r   rz   r   r5   r6   r   rP   r   r  r
  )rl   r%   r   r?   r  	do_increfr   r    r   r   	not_foundr   r  rz   r   s   &&&&&&         r&   _add_keySetInstance._add_key  s"   ----??4t?<LL'	__Y''%%a(EzzHJ!!$'I<<D++dii+C")++d"88D<w!J(, ! . .&{{7<<=. D!NN4 ' ('. . (''s+   B,E5"E"	&E56"E5"E2-E55F	c                   \         P                  ! VP                  P                  \        4      Vn        V'       d   V P                  VP                  4       VP                  p\         P                  ! VP                  ^4      pV P                  P                  WV4      ;qQn        V'       d   V P                  V4       V P                  R4       R# )r  TN)r   r5   r1   r6   rS   decref_valuer   rz   rf   subdownsizer
  )rl   r%   r   r  	do_decrefrz   r   s   &&&&&  r&   _remove_entrySetInstance._remove_entry  s    [[':
eii(||kk$))Q'"mm//::|MM$tr(   c                   V P                   pV P                  pVP                  W#4      w  rxVP                  V4      ;_uu_ 4        VP	                  V4      p	V P                  WV4       R R R 4       V#   + '       g   i     T# ; irp   )re   rf   r   r   r   r"  )
rl   r%   r   r?   r  r   r    r   r   r   s
   &&&&&     r&   _remove_keySetInstance._remove_key  so    ----??4+__U##%%a(Ewy9 $ 	 $# s   $A33B	c                    V P                   pV P                  pV P                  p\        W4V P                  P
                  V4      pV P                  WQWb4       R # rp   )re   rf   r%   rB   rg   r]   r  )rl   r   r  r   r    r%   r?   s   &&&    r&   r   SetInstance.add  sA    ----,,7TXX^^TBgQ2r(   c                    V P                   pV P                  pV P                  pV P                  WWR4      pV P	                  WbWs4       R# )zPA version of .add for use inside functions following Python calling
convention.
N)re   rf   r%   _pyapi_get_hash_valuer  )rl   pyapir   r  r   r    r%   r?   s   &&&&    r&   	add_pyapiSetInstance.add_pyapi  s?     ----,,&&uwEgQ2r(   c                f   V P                   P                  .p\        P                  pR pV.p\        P
                  ! V.VO5!  p	VP                  WyV4      w  rVP                  V
RR7      ;_uu_ 4        VP                  VP                  4       4       RRR4       V#   + '       g   i     T# ; i)z=Python API compatible version of `get_hash_value()`.
        c                     \        V 4      # rp   )rJ   )r	  s   &r&   wrapper2SetInstance._pyapi_get_hash_value.<locals>.wrapper  s    ,S11r(   Fr  N)
rg   r]   r   r   r   	signaturecall_jit_coder   retget_null_object)rl   r+  r   r    r   argtypesrestyr0  rG   r=   is_errorretvals   &&&&&       r&   r*  !SetInstance._pyapi_get_hash_value  s     HHNN#

	2 vu0x0 ..wTB__Xe_44KK--/0 5  54 s   5 BB0	c                    V P                   pV P                  pV P                  p\        W#V P                  P
                  V4      pVP                  W4      w  rgV# rp   )re   rf   r%   rB   rg   r]   r   )rl   r   r   r    r%   r?   r   r   s   &&      r&   containsSetInstance.contains  sH    ----,,7TXX^^TB??4+r(   c                    V P                   pV P                  pV P                  p\        W#V P                  P
                  V4      pV P                  WAV4      pV# rp   )re   rf   r%   rB   rg   r]   r%  )rl   r   r   r    r%   r?   r   s   &&     r&   discardSetInstance.discard   sJ    ----,,7TXX^^TB  2r(   c                   V P                   pV P                  pVP                  V P                  P                  4      p\
        P                  ! W#4      pV P                  pVP                  4       ;_uu_ 4       pVP                  VP                  V4       V P                  WVR R7       RRR4       VP                  V4      #   + '       g   i     L!; i)F)r!  N)re   rf   r   rg   r]   r   alloca_oncer%   r   r   r   r"  r   )rl   r   r    ltyr   r%   r   s   &      r&   popSetInstance.pop)  s    ----$$TXX^^4!!'/,,  ""eMM%))S)w? #
 ||C   #"s   80CC	c                    V P                   pV P                  pVP                  \        P                  4      p\
        P                  ! V\        4      pV P                  V4       V P                  R 4       R# )TN)
re   rf   r   r   r   r   r5   MINSIZE_replace_payloadr
  )rl   r   r    r   minsizes   &    r&   clearSetInstance.clear8  sR    ----''

3++fg.g&tr(   c                   V P                   pV P                  pV P                  pVP                  pVP                  p\        V 4      ! WV P                  R4      pVP                  RWE4      pVP                  VRR7      ;_uu_ 4       w  rT;_uu_ 4        VP                  V4      p
VP                  VP                  V
4      RR7      ;_uu_ 4        VP                  P                  V\        R4       RRR4       RRR4       T	;_uu_ 4        V P                  WV4      pVP!                  V4      p
VP                  VP                  V
4      RR7      ;_uu_ 4        VP                  P                  V\        R4       RRR4       VP                  pVP#                  4       ;_uu_ 4       pVP$                  pVP'                  WP(                  VP*                  RR7       RRR4       RRR4       RRR4       V#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L]; i  + '       g   i     Lh; i  + '       g   i     T# ; i)z
Return a copy of this set.
NrL   Tr  Fr  )zcannot copy set)re   rf   r%   rz   r   r6   rg   rN   if_else_copy_payloadr   r  	call_convreturn_user_excMemoryErrorchoose_alloc_size_allocate_payloadr   r   r  r   r1   )rl   r   r    r%   rz   r   otherno_deleted_entriesif_no_deleted
if_deletedoknentriesother_payloadr   r   s   &              r&   copySetInstance.copyA  s    ----,,||||T
7TXXt<$224D__/_==*((1__W\\"%5e_DD%%55g{6JL E  11'DI,,X6__W\\"%5e_DD%%55g{6JL E !&%%''4 JJENN=))UZZ-2 # 4 (  >. % EDD  ED
 ('  >=. s   I<H	"G72H	:IAI	"H<,I	(5H2I	%I7H	H	H	IH/*I	2I=I	III)	c           
        V P                   pV P                  pV P                  pVP                  pVP                  4       ;_uu_ 4       pVP                  pVP                  VP                  VP                  4      w  rVP                  VP                  V4      4      ;_uu_ 4        V P                  WGRR7       RRR4       RRR4       V P                  VP                  4       R#   + '       g   i     L5; i  + '       g   i     L@; i)z)
In-place intersection with *other* set.
FrM  N)re   rf   r%   r   r   r   r   r1   r   r  r"  r   rz   )
rl   rU  r   r    r%   r[  r   r   r   _s
   &&        r&   	intersectSetInstance.intersecth  s     ----,,4JJE$,,UYY

CHEe!455""7U"C 6   	gll#	 65  s%   	AC:&C'	:C:'C72C::D
	c           	     l   V P                   pV P                  pV P                  pVP                  pVP                  4       ;_uu_ 4       pVP                  pV P                  WGP                  VP                  RR7       RRR4       V P                  VP                  4       R#   + '       g   i     L-; i)z'
In-place difference with *other* set.
FrM  N)
re   rf   r%   r   r   r%  r   r1   r   rz   )rl   rU  r   r    r%   r[  r   r   s   &&      r&   
differenceSetInstance.differencez  s     ----,,##%%JJEWiiuM &
 	gll# &%s   	5B##B3	c                   V P                   pV P                  pVP                  pVP                  4       ;_uu_ 4       pVP                  P
                  pVP                  P                  pV P                  pVP                  WgRR7      w  rVP                  V
4      pVP                  V	4      ;_uu_ 4       w  rV;_uu_ 4        V P                  WRR7       RRR4       V;_uu_ 4        V P                  WWg4       RRR4       RRR4       RRR4       V P                  V P                  P                  4       R#   + '       g   i     Ll; i  + '       g   i     LZ; i  + '       g   i     Le; i  + '       g   i     Lp; i)z1
In-place symmetric difference with *other* set.
Tr  FrM  N)re   rf   r%   r   r   r   r1   r   r   rN  r"  r  r   rz   )rl   rU  r   r    r[  r   r   r?   r%   r   r   r   	if_commonif_not_commons   &&            r&   symmetric_difference SetInstance.symmetric_difference  s    ----##%%**..C

AllGs$?HE%%a(E''+EIY&&w&G "]OOGC; # ( & 	dll''( Y"] (' &%sT   A8E35E 	D:E 	(E;E 	E3:E
E 	EE 	 E0+E33F	c                ,   V P                   pV P                  pV P                  pVP                  pV'       d   R MRp\        P                  ! V\        P
                  4      pVP                  VP                  WuP                  VP                  4      4      ;_uu_ 4       w  rV
;_uu_ 4        VP                  \        P                  V4       RRR4       T	;_uu_ 4        VP                  4       ;_uu_ 4       pVP                  pVP                  VP                  VP                  4      w  rVP!                  VP#                  V4      4      ;_uu_ 4        VP                  \        P                  V4       VP%                  4        RRR4       RRR4       RRR4       RRR4       VP'                  V4      #   + '       g   i     L; i  + '       g   i     LL; i  + '       g   i     LW; i  + '       g   i     Lb; i  + '       g   i     Lm; i)rX   <=N)re   rf   r%   r   r   r   rN  rN   rz   r   r   r   r   r   r   r1   r   r  r   r   )rl   rU  strictr   r    r%   r[  cmp_opres
if_smaller	if_largerr   r   r   r_  s   &&&            r&   issubsetSetInstance.issubset  sY   ----,,D''1A1AB__!!&,,8J8JK (*g//5  %%''4 JJE,44UYY

KHE e)<==g&7&7= > (  ||C    >= ('  sm   H,!F7	HG0	8AG1G
GG0	H7GH
GGG-(G0	0H ;HH	c           	     P  aa	 V P                   pV P                  oV P                  pVP                  p\        P                  ! S\        P
                  4      o	VV	3R  lpSP                  SP                  RVP                  VP                  4      4      ;_uu_ 4       w  rgV;_uu_ 4        V! WC4       RRR4       V;_uu_ 4        V! W44       RRR4       RRR4       SP                  S	4      #   + '       g   i     LD; i  + '       g   i     L<; i  + '       g   i     LG; i)c           	        < V P                  4       ;_uu_ 4       pVP                  pVP                  VP                  VP                  4      w  rESP                  V4      ;_uu_ 4        SP                  \        P                  S4       VP                  4        R R R 4       R R R 4       R #   + '       g   i     L; i  + '       g   i     R # ; irp   )
r   r   r   r   r1   r   r   r   r   r   )smallerlargerr   r   r   r_  r    rn  s   &&    r&   check%SetInstance.isdisjoint.<locals>.check  s    !!##t

!>>%))UZZ@__U++MM'"3"3S9MMO , $# ,+ $##s$   AB>(1B+	B>+B;6B>>C	>N)
re   rf   r%   r   r   r   rN  rN   rz   r   )
rl   rU  r   r%   r[  rw  rp  	otherwiser    rn  s
   &&      @@r&   
isdisjointSetInstance.isdisjoint  s    ----,,''1A1AB	$ __!!#w||]5G5GH ')m-  g-  ||C     s<   D*	C/	3D	D	D/C?:DDDD%	c                   V P                   pV P                  pV P                  pVP                  p\        P                  ! V\        P
                  4      pVP                  VP                  R VP                  VP                  4      4      ;_uu_ 4       w  rxT;_uu_ 4        VP                  4       ;_uu_ 4       p	V	P                  p
VP                  V
P                  V
P                  4      w  rVP                  VP                  V4      4      ;_uu_ 4        VP!                  \        P"                  V4       V	P%                  4        RRR4       RRR4       RRR4       V;_uu_ 4        VP!                  \        P"                  V4       RRR4       RRR4       VP'                  V4      #   + '       g   i     Ll; i  + '       g   i     Lw; i  + '       g   i     L; i  + '       g   i     Lb; i  + '       g   i     Lm; i)rL   N)re   rf   r%   r   r   r   rN  rN   rz   r   r   r   r   r1   r   r  r   r   r   r   )rl   rU  r   r    r%   r[  rn  if_same_sizerz  r   r   r   r_  s   &&           r&   equalsSetInstance.equals  sR   ----,,''1A1AB__!!$m6H6HI *,%%''4 JJE,44UYY

KHE e)<==g&7&7= > (  g//5  ||C   >= ('   sm   G8!G	:AF?1F,F?G	G8*!G%	G8,F<7F??G
G	G"G8%G50G88H	Nc                8   VP                  \        P                  4      pVf   \        P                  ! V\
        4      pM>\        V\        4      '       d   \        P                  ! WT4      pV P                  WV4      pV ! WVR4      pVP                  V4      pW3# )z
Allocate a SetInstance with its storage.
Return a (ok, instance) tuple where *ok* is a LLVM boolean and
*instance* is a SetInstance object (the object's contents are
only valid when *ok* is true).
N)
r   r   r   r   r5   rG  r[   intrS  rT  )	clsr   r    r!   nitemsr   rZ  rl   rY  s	   &&&&&    r&   allocate_exSetInstance.allocate_ex  s     ''

3>{{673H&#&&V4,,WvFH7Xt4##H-xr(   c                    V P                  WW44      w  rVVP                  VP                  V4      RR7      ;_uu_ 4        VP                  P	                  V\
        R4       RRR4       V#   + '       g   i     T# ; i)z
Allocate a SetInstance 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  N)zcannot allocate set)r  r   r  rP  rQ  rR  )r  r   r    r!   r  rY  rl   s   &&&&&  r&   allocateSetInstance.allocate  sj     ??7XF__W\\"-e_<<--g{.FH =  =< s   "A++A<	c                    V ! WVR4      pWEP                   n        VP                  \        P                  4      VP                   n        VP                  P                  W#VP                  4       V# )z
Allocate a new set instance pointing to an existing payload
(a meminfo pointer).
Note the parent field has to be filled by the caller.
N)	r   r   get_constant_nullr   pyobjectr   r   increfr:   )r  r   r    r!   r   rl   s   &&&&& r&   from_meminfoSetInstance.from_meminfo  sT     7Xt4#		"44U^^D		7djj9r(   c           	        VP                   p\        P                  ! V^4      p\        P                  ! V\        4      pVP	                  W54      p\
        P                  ! W&4      pVP                  R4      p	VP                  R4      p
VP                  V	4       VP                  V	4      ;_uu_ 4        VP                  V4      pVP                  RW4      pVP                  VRR7      ;_uu_ 4        VP                  V
4       RRR4       VP	                  W4      pVP                  W4       VP                  V	4       RRR4       VP                  V
4       VP                  V4      #   + '       g   i     Lm; i  + '       g   i     LE; i)zD
Choose a suitable number of entries for the given number of items.
calcsize.bodycalcsize.end>=Fr  N)r6   r   r5   rG  shlr   r   r   r   r   r   rN   r   r   r   )r  r   r    r  r   r   rI  min_entriessize_pr   r   r   is_large_enough	next_sizes   &&&&          r&   rS  SetInstance.choose_alloc_size$  s,   
 kk&!$++fg. kk&.**7<,,_=++N;w((<<'D%33D$LO??v& @D.IMM),NN7# ) 	'||F## @? )(s$   2?E;1E(	;E;(E83E;;F	c           
        V P                   pV P                  pVP                  p\        P                  ! V^4      p\        P                  ! V^4      pV P
                  pVP                  W4      pVP                  VP                  V4      p	VP                  RW4      p
VP                  V
RR7      ;_uu_ 4        \        P                  ! W94      pVP                  R4      pVP                  R4      pVP                  V4       VP                  V4      ;_uu_ 4        VP!                  V4      pVP                  W4      pVP#                  W4       VP                  RW4      pVP%                  WV4       RRR4       VP'                  V4       VP!                  V4      p\(        '       d   VP+                  VRWW4       V P-                  W~R4       RRR4       R#   + '       g   i     Ln; i  + '       g   i     R# ; i)	z[
When adding to the set, ensure it is properly sized for the given
number of used entries.
r  Fr  r  r  NzKupsize to %zd items: current size = %zd, min entries = %zd, new size = %zd
zcannot grow set)re   rf   r6   r   r5   r%   r  r   rr   rN   r   r   r   r   r   r   r   r   r   r   DEBUG_ALLOCSprintf_resize)rl   r  r   r    r   r   twor%   r  r   need_resize
new_size_pr   r   new_sizeis_too_smalls   &&              r&   r  SetInstance.upsizeC  s   
 ----kk&!$kk&!$,, kk&.{{7<<-++D+D__[_77 227AJ00AG//?FNN7###G,,"<<
3";;x5h3&44T;Qv> - ##F+||J/H|w E%[D LL,=>3 87 -, 877s,   9A#G-AG	45G-*&G-G*%G--G>	c                r   V P                   pV P                  pVP                  p\        P                  ! V^4      p\        P                  ! V^4      p\        P                  ! V\
        4      pV P                  pVP                  W4      p	VP                  VP                  RW4      W4      p	VP                  W4      p
VP                  VP                  V4      pVP                  VP                  RW4      VP                  RW{4      4      pVP                  VRR7      ;_uu_ 4        \        P                  ! W;4      pVP!                  R4      pVP!                  R4      pVP#                  V4       VP%                  V4      ;_uu_ 4        VP'                  V4      pVP)                  VV4      pVP                  RV	V4      pVP                  V4      ;_uu_ 4        VP#                  V4       R	R	R	4       VP+                  VV4       VP#                  V4       R	R	R	4       VP-                  V4       VP'                  V4      p\.        '       d   VP1                  VR
WV	V4       V P3                  VVR4       R	R	R	4       R	#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R	# ; i)z_
When removing from the set, ensure it is properly sized for the given
number of used entries.
r  rk  rX   Fr  r  r  ry  NzMdownsize to %zd items: current size = %zd, min entries = %zd, new size = %zd
zcannot shrink set)re   rf   r6   r   r5   rG  r%   r  r8   rN   r   rr   r   r   r   r   r   r   r   r   r   r   r   r  r  r  )rl   r  r   r    r   r   r  rI  r%   r  max_sizer   r  r  r   r   r  r  s   &&                r&   r   SetInstance.downsizeq  s*   
 ----kk&!$kk&!$++fg.,, kk&.nnW%:%:4%V%0; ;;{0{{7<<-ll!!$7!!#w57 __[_77 227AJ00AG//?FNN7###G,,"<<
3"<<#6&44S+xP__\22NN6* 3h
3w' - ##F+ ||J/H |w E%[(D LL(,?@A 87 32 -, 877sD   'A#J%
AJ	I?,+J	5J%(J%?J
J	J"J%%J6	c           
     P   V P                   pV P                  pTpV P                  VRR7      pVP                  VP	                  V4      RR7      ;_uu_ 4        VP
                  P                  V\        V34       RRR4       V P                  pVP                  4       ;_uu_ 4       pVP                  p	V P                  WP                  V	P                  RRR7       RRR4       V P                  VP                  4       R#   + '       g   i     L; i  + '       g   i     L@; i)z_
Resize the payload to the given number of entries.

CAUTION: *nentries* must be a power of 2!
TreallocFr  N)r  r  )re   rf   rT  r   r  rP  rQ  rR  r%   r   r   r  r   r1   _free_payloadr"   )
rl   r%   rZ  errmsgr   r    old_payloadrY  r   r   s
   &&&&      r&   r  SetInstance._resize  s     ---- ##Hd#;__W\\"-e_<<--g{/5i9 = ,,!!##tJJEMM'99ejj$)U  < $
 	;??+ =< $#s   #D'6DD	D%	c                @   V P                   pV P                  pV P                  P                  4       ;_uu_ 4       pVP                  pV P                  VP                  4       RRR4       V P                  V P                  P                  4       V P                  VRR7      pVP                  VP                  V4      RR7      ;_uu_ 4        VP                  P                  V\        R4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)z{
Replace the payload with a new empty payload with the given number
of entries.

CAUTION: *nentries* must be a power of 2!
NTr  Fr  )zcannot reallocate set)re   rf   r%   r   r   r  r   r  r"   rT  r   r  rP  rQ  rR  )rl   rZ  r   r    r   r   rY  s   &&     r&   rH  SetInstance._replace_payload  s     ---- \\""$$JJEeii( %
 	4<<++,##Hd#;__W\\"-e_<<--g{.HJ =< %$ =<<s   (C9"D9D		D	c                   V P                   pV P                  p\        P                  ! V\        P                  4      pVP                  \        P                  4      p\        P                  ! V^ 4      p\        P                  ! V^4      pVP                  \        P                  ! V P                  4      4      p	VP                  V	4      p
V P                  pW,          p
\        P                  ! WA\        P                  ! Wk4      \        P                  ! Wj4      4      w  rVP!                  VRR7      ;_uu_ 4        VP#                  \        P$                  V4       RRR4       VP!                  VP'                  V4      RR7      ;_uu_ 4        V'       dL   V P(                  P*                  pVP,                  P/                  VVVR7      p\        P0                  ! WO4      pMkV P3                  W4P4                  4      pVP,                  P7                  WLVP9                  V\        P:                  4      4      p\        P0                  ! WN4      pVP=                  VRR7      ;_uu_ 4       w  ppV;_uu_ 4        VP#                  \        P$                  V4       RRR4       T;_uu_ 4        V'       g?   WP(                  n        VP?                  \        P@                  4      V P(                  n!        V PD                  p\        PF                  ! VVPH                  V^4       VVn%        VVn&        VVn'        VPQ                  W4      pVVn)        \T        '       d    VPW                  VRVVPH                  V4       RRR4       RRR4       RRR4       VP'                  V4      #   + '       g   i     ELM; i  + '       g   i     EL&; i  + '       g   i     LY; i  + '       g   i     Ld; i  + '       g   i     Lo; i)z
Allocate and initialize payload for the given number of entries.
If *realloc* is True, the existing meminfo is reused.

CAUTION: *nentries* must be a power of 2!
Fr  NT)r   .allocated %zd bytes for set at %p: mask = %zd
),re   rf   r   r   r   r   r   r   r   r5   r   r   rg   r+   r   muladd_with_overflowr   r   r   r   r   r   r   meminfo_varsize_alloc_uncheckedis_null	_imp_dtormodule"meminfo_new_varsize_dtor_uncheckedr   	voidptr_trN  r  r  r   r%   memsetr"   rz   r   r   r  rr   r  r  )rl   rZ  r  r   r    rY  r   r   r   r#   payload_size
entry_size	allocsizeovfr   r"   alloc_okdtorif_errorif_okr%   new_masks   &&&                   r&   rT  SetInstance._allocate_payload  s    ----&&w0@0@A''

3{{61%kk&!$,,U-=-=dhh-GH--l;__
" !55g68kk&6U68kk&6WY	 __S_//MM'++R0 0 __W\\"-d_;;))++kkAA'BI=F B H #??78 ~~g~~>!++HHg>O>O(PR"??7<(- ! / /2C8UXMM'"3"3R8 U",3		)+2+D+DU^^+T		("llGNN7GKKDI#'GL#'GL%)GN&{{89H#+GL#|w'X'0'++xI 	/ <H ||BO 0//& XXU	/ / <;sb   <!N!CO/)O	7!N5O	*CO	8O	 O/!N2	5O 	O		OO	O,'O//O?	c                |    V P                   P                  P                  V P                  V P                  V4       R# )z)
Free an allocated old payload at *ptr*.
N)re   r   meminfo_varsize_freerf   r   )rl   r"   s   &&r&   r  SetInstance._free_payload"  s(     	..t}}dllCPr(   c                Z   V P                   pV P                  p\        P                  ! V\        P                  4      pVP                  \        P                  4      p\        P                  ! V^ 4      p\        P                  ! V^4      pVP                  \        P                  ! V P                  4      4      pVP                  V4      p	V P                  p
W,          p	VP                  pVP!                  W{4      pVP!                  \        P                  ! WY4      VP#                  \        P                  ! WZ4      V4      4      pVP%                  VP'                  V4      RR7      ;_uu_ 4        V P)                  W#P*                  4      pVP,                  P/                  W=VP1                  V\        P2                  4      4      p\        P4                  ! W?4      pVP7                  VRR7      ;_uu_ 4       w  ppV;_uu_ 4        VP9                  \        P:                  V4       RRR4       T;_uu_ 4        WP<                  n        V P@                  pVPB                  Vn!        VPD                  Vn"        VVn#        VVn        \        PH                  ! VVPJ                  VPJ                  VV
4       VPM                  4       ;_uu_ 4       pV PO                  VPP                  PR                  4       RRR4       \T        '       d    VPW                  VRVVPX                  V4       RRR4       RRR4       RRR4       VP'                  V4      #   + '       g   i     EL0; i  + '       g   i     Lx; i  + '       g   i     LX; i  + '       g   i     Lc; i  + '       g   i     Ln; i)z'
Raw-copy the given payload into self.
Tr  FNr  )-re   rf   r   r   r   r   r   r   r   r5   r   r   rg   r+   r   rr   r   r   r   r   r  r  r   r  r   r  r  rN  r   r   r   r   r%   rz   r   r   
raw_memcpyrd   r   r  r   r   r  r  r"   )rl   src_payloadr   r    rY  r   r   r   r#   r  r  rr   rZ  r  r  r   r  r  r  r%   r   s   &&                   r&   rO  SetInstance._copy_payload(  s    ----&&w0@0@A''

3{{61%kk&!$,,U-=-=dhh-GH--l;__
";;s)
 KKF A 'BKK,K,4!67	 __W\\"-d_;;>>'>>:DkkDDGOOD':K:K$LNGw8H%88<MXuXMM'"3"3R8 U(/II%"llG#.#3#3GL#.#3#3GL%)GN#'GL
 &&w'2':':H'13
 %--//4))$**..9 0 $|w'X'0'++tE)  9 <D ||B5 XX$ 0/! U 98 <;st   0BN7N	!M&N	8BM4&M!1M4M4$N	,NM	N	!M1,M44N?N	NNN*	c                   \         P                  pVP                  \        P                  4      p\
        P                  ! \
        P                  ! 4       W4V.4      pRV P                  P                   2p\         P                  ! W%VR7      pVP                  '       d   RVn        \
        P                  ! VP                  4       4      p\        WV P                  VP                   ^ ,          4      p	V	P#                  4       ;_uu_ 4       p
V
P$                  pVP&                  P)                  WP                  P                  VP*                  4       RRR4       VP-                  4        V#   + '       g   i     L"; i)z Define the dtor for set
        z
.dtor.set.)namelinkonce_odrN)r   r  r   r   size_tr   FunctionTypeVoidTyperg   r]   get_or_insert_functionis_declarationlinkage	IRBuilderr   rb   rG   r   r   r   decrefr   ret_void)rl   r   r  	llvoidptrllsize_tr<   fnamer>   r    r%   r   r   s   &&&         r&   r  SetInstance._imp_dtori  s
    %%	((6KKM),

 TXX^^,-++FuE'BJll2#8#8#:;G!'DHHbggajIG!!##t

""7HHNNEIIF $ 	 $#s   
AE++E;	c                    V P                   P                  P                  V P                  V P                  P
                  V4       R# )z Incref an element value
        N)re   r   r  rf   rg   r]   r  s   &&r&   r  SetInstance.incref_value  ,     	  Dr(   c                    V P                   P                  P                  V P                  V P                  P
                  V4       R# )z Decref an element value
        N)re   r   r  rf   rg   r]   r  s   &&r&   r  SetInstance.decref_value  r  r(   )rf   re   r   r   rg   )T)TTr   rp   )1r   r   r   r   rm   r   r]   r%   r:   r   r   r   r  r
  r  r  r"  r%  r   r,  r*  r<  r?  rD  rJ  r\  r`  rc  rh  rq  r{  r  classmethodr  r  r  rS  r  r   r  rH  rT  r  rO  r  r  r  r   r   r   s   @r&   r   r   t  s    D   	< 	< % % ! !     ]]! !!P*!8
3	3$!%N$$$ )0!4!>!0  (     $ $<,?\:Ax,6J.A FQ? B8E
E Er(   r   c                      a  ] tR tRt o R t]R 4       t]R 4       t]R 4       t	]R 4       t
]
P                  R 4       t
R tR	tV tR
# )SetIterInstancei  c                   Wn         W n        W0n        VP                  W#V4      V n        V P                   P
                  P                  W P                  4      p\        WV P                  P                  V4      V n
        R # rp   )re   rf   rg   r   _iterr   r   r   rb   	containerrh   )rl   r   r    	iter_typeiter_valr"   s   &&&&& r&   rm   SetIterInstance.__init__  s]    ((XF
mm,,WllC#Gdhh6H6H#Nr(   c                   \        WVP                  V4      pV ! WVR 4      pVP                  \        P                  ^ 4      p\
        P                  ! W'4      VP                  n        VP                  VP                  n	        V# rp   )
r   r  get_constantr   r   r   r   r  r   r   )r  r   r    r  r   set_instrl   r   s   &&&&&   r&   from_setSetIterInstance.from_set  sh    w1D1DgN7Y5$$UZZ3"44WD

%--

r(   c                6    V P                   P                  4       # rp   )r  r   rs   s   &r&   r:   SetIterInstance.value  s    zz##%%r(   c                .    V P                   P                  # rp   )r  r   rs   s   &r&   r   SetIterInstance.meminfo  s    zz!!!r(   c                `    V P                   P                  V P                  P                  4      # rp   )rf   r   r  r   rs   s   &r&   r   SetIterInstance.index  s!    }}!!$**"2"233r(   c                d    V P                   P                  WP                  P                  4       R # rp   )rf   r   r  r   rw   s   &&r&   r   r    s    E::#3#34r(   c                   V P                   pV P                  p\        P                  ! VP                  ^4      pVP                  4        VP                  VR7      ;_uu_ 4       pVP                  pVP                  4        VP                  VP                  4       V P                  P                  VP                   V4      V n         VP                  4        RRR4       R#   + '       g   i     R# ; i)r  r   N)r   rh   r   r5   r6   set_exhaustedr   r   	set_validyield_r   rf   r   r   )rl   resultr   r%   r   r   r   s   &&     r&   iternextSetIterInstance.iternext  s    

--kk%**a(E**dJJEMM%))$**4::s;DJMMO +***s   $A3C!!C2	)rf   re   r  rh   rg   r   N)r   r   r   r   rm   r  r  r   r:   r   r   r   r  r   r   r   s   @r&   r  r    s}     O   & & " " 4 4 \\5 5 r(   r  c           
        \        V4      p\        P                  WW$4      pV^ 8  d   \        P                  ! W4      p\        P
                  ! W4      pV P                  \        P                  V4      p\        P                  ! W4      ;_uu_ 4       p	VP                  \        P                  ! W^ V	P                  4      4      p
VP                  V
4       RRR4       \        WW%P                  4      #   + '       g   i     L&; i)z<
Build a set of the given type, containing the given items.
N)lenr   r  r   
pack_arrayr   r  r   r   r   r   r   r   r   r   r:   )r   r    r!   itemsr  instarray	array_ptrcountr   r   s   &&&&       r&   	build_setr    s     ZF(CDz ""72--g=	$$UZZ8w..$<<G4:: NODHHTN / Gh

CC	 /.s   AC44D	c                 r    VP                   p\        P                  WV4      p\        WWEP                  4      # rp   )return_typer   r  r   r:   )r   r    r=   rG   r!   r   s   &&&&  r&   set_empty_constructorr    s.    H(;DGh

CCr(   c                    VP                   pVP                  w  pVw  p\        WWV4      p\        P	                  WWG4      p\        WWV4      ;_uu_ 4       p	VP                  V	P                  4       V P                  P                  WP                  V	P                  4       R R R 4       \        WWHP                  4      #   + '       g   i     L&; irp   )r  rG   r   r   r  r   r   r:   r   r  r]   r   )
r   r    r=   rG   r!   
items_typer  nr   r   s
   &&&&      r&   set_constructorr    s    H((KJFE 	:5A(>D	'J	6	6$7NNDJJ? 
7 Gh

CC	 
7	6s   AB??C	c                 l    \        WVP                  ^ ,          V^ ,          4      pVP                  4       # rE   )r   rG   r  r   r    r=   rG   r   s   &&&& r&   set_lenr    s(    w!d1g>D==?r(   c                 |    \        WVP                  ^ ,          V^ ,          4      pVP                  V^,          4      # rE   )r   rG   r<  r  s   &&&& r&   in_setr    s/    w!d1g>D==a!!r(   getiterc                     \         P                  WVP                  V^ ,          4      p\        WVP                  VP                  4      # rE   )r  r  r  r
   r:   r  s   &&&& r&   getiter_setr    s5    ##GcootAwODWs

KKr(   r  c                 r    \        WVP                  ^ ,          V^ ,          4      pVP                  V4       R# rF   N)r  rG   r  )r   r    r=   rG   r  r   s   &&&&& r&   iternext_listiterr  	  s*     7SXXa[$q'BDMM&r(   zset.addc                     \        WVP                  ^ ,          V^ ,          4      pV^,          pVP                  V4       V P                  4       # rE   )r   rG   r   get_dummy_valuer   r    r=   rG   r   r   s   &&&&  r&   set_addr    s?    w!d1g>D7DHHTN""$$r(   c                 :    \         P                  ! W4      pR  pW43# )c                     \        WVP                  ^ ,          V^ ,          4      pV^,          pVP                  V4       V P                  4       # rE   )r   rG   r?  r  r  s   &&&&  r&   set_discard!_set_discard.<locals>.set_discard"  s@    7SXXa[$q'BAwT&&((r(   r   none)r;   r^   r   r=   r  s   &&&  r&   _set_discardr!    s     
**Q
C) r(   r?  c                     R  # )c                     \        W4      # rp   )r!  r^   r   s   &&r&   <lambda> ol_set_discard.<locals>.<lambda>.  s	    <0r(    r$  s   &&r&   ol_set_discardr(  ,  s    00r(   c                 0    VP                  V4      pR  pW#3# )c                    \        WVP                  ^ ,          V^ ,          4      pVP                  P                  pVP	                  \
        P                  ! W4      RR7      ;_uu_ 4        V P                  P                  V\        R4       RRR4       VP                  4       #   + '       g   i     TP                  4       # ; i)rF   Fr  N)zset.pop(): empty set)r   rG   r%   rz   r   r   r  rP  rQ  KeyErrorrD  )r   r    r=   rG   r   rz   s   &&&&  r&   set_pop_set_pop.<locals>.set_pop5  s    7SXXa[$q'B||  __W__W;E_JJ--gx,EG K xxz	 KJ xxzs   +"B%%C	r]   )r;   r^   r=   r,  s   &&  r&   _set_popr/  1  s    
''!*C <r(   rD  c                     R  # )c                     \        V 4      # rp   )r/  r^   s   &r&   r%  ol_set_pop.<locals>.<lambda>C  s    Xa[r(   r'  r2  s   &r&   
ol_set_popr4  A  s      r(   c                 :    \         P                  ! W4      pR  pW43# )c                    \        WVP                  ^ ,          V^ ,          4      pV^,          pVP                  V4      pVP                  VP	                  V4      RR7      ;_uu_ 4        V P
                  P                  V\        R4       RRR4       V P                  4       #   + '       g   i     T P                  4       # ; i)rF   Fr  N)zset.remove(): key not in set)	r   rG   r?  r   r  rP  rQ  r+  r  )r   r    r=   rG   r   r   r   s   &&&&   r&   
set_remove_set_remove.<locals>.set_removeJ  s    7SXXa[$q'BAwT"__W\\%0_??--gx,MO @ &&((	 @? &&((s   *"B$$C	r  )r;   r^   r   r=   r7  s   &&&  r&   _set_remover9  F  s    
**Q
C) ?r(   removec                 .    V P                   V8X  d   R  # R# )c                     \        W4      # rp   )r9  r$  s   &&r&   r%  ol_set_remove.<locals>.<lambda>Z  s	    {13r(   Nr.  r$  s   &&r&   ol_set_remover>  W  s    ww$33 r(   c                 :    \         P                  ! V4      pR  pW#3# )c                     \        WVP                  ^ ,          V^ ,          4      pVP                  4        V P                  4       # rE   )r   rG   rJ  r  r  s   &&&& r&   	set_clear_set_clear.<locals>.set_clearc  s4    7SXXa[$q'B

&&((r(   r  )r;   r^   r=   rA  s   &&  r&   
_set_clearrC  _  s    
**Q-C)
 >r(   rJ  c                     R  # )c                     \        V 4      # rp   )rC  r2  s   &r&   r%  ol_set_clear.<locals>.<lambda>m  s    Z]r(   r'  r2  s   &r&   ol_set_clearrG  k  s    ""r(   c                     V! V4      pR  pW#3# )c                     \        WVP                  ^ ,          V^ ,          4      pVP                  4       p\        WVP                  VP
                  4      # rE   )r   rG   r\  r   r  r:   r   r    r=   rG   r   rU  s   &&&&  r&   set_copy_set_copy.<locals>.set_copyt  s>    7SXXa[$q'B		#//5;;OOr(   r'  )r;   r^   r=   rK  s   &&  r&   	_set_copyrM  p  s    
A$CP
 =r(   r\  c                     R  # )c                     \        V 4      # rp   )rM  r2  s   &r&   r%  ol_set_copy.<locals>.<lambda>~  s    Yq\r(   r'  r2  s   &r&   ol_set_copyrQ  |  s    !!r(   c                     \        WVP                  ^ ,          V^ ,          4      p\        WVP                  ^,          V^,          4      pVP                  V4       V P                  4       # rE   )r   rG   rc  r  rJ  s   &&&&  r&   set_difference_updaterS    sQ    w!d1g>D#((1+tAw?EOOE""$$r(   c                 >    \         P                  ! W4      pV\        3# rp   )r   r   rS  r;   abr=   s   &&& r&   _set_difference_updaterX    s    
**Q
C%%%r(   difference_updatec                     \        W4       R  # )c                     \        W4      # rp   )rX  rV  rW  s   &&r&   r%  ,set_difference_update_impl.<locals>.<lambda>  s
    .q4r(   r_   r\  s   &&r&   set_difference_update_implr_    s    !44r(   c                     \        WVP                  ^ ,          V^ ,          4      p\        WVP                  ^,          V^,          4      pVP                  V4       V P                  4       # rE   )r   rG   r`  r  rJ  s   &&&&  r&   set_intersection_updatera    sQ    w!d1g>D#((1+tAw?ENN5""$$r(   c                 >    \         P                  ! W4      pV\        3# rp   )r   r   ra  rU  s   &&& r&   _set_intersection_updaterc    s    
**Q
C'''r(   intersection_updatec                     \        W4       R  # )c                     \        W4      # rp   )rc  r\  s   &&r&   r%  .set_intersection_update_impl.<locals>.<lambda>  s
    06r(   r^  r\  s   &&r&   set_intersection_update_implrh    s    !66r(   c                     \        WVP                  ^ ,          V^ ,          4      p\        WVP                  ^,          V^,          4      pVP                  V4       V P                  4       # rE   )r   rG   rh  r  rJ  s   &&&&  r&   set_symmetric_difference_updaterj    sS    w!d1g>D#((1+tAw?Ee$""$$r(   c                 >    \         P                  ! W4      pV\        3# rp   )r   r   rj  rU  s   &&& r&    _set_symmetric_difference_updaterl    s    
**Q
C///r(   symmetric_difference_updatec                     \        W4       R  # )c                     \        W4      # rp   )rl  r\  s   &&r&   r%  6set_symmetric_difference_update_impl.<locals>.<lambda>  s
    8>r(   r^  r\  s   &&r&   $set_symmetric_difference_update_implrq    s    !>>r(   z
set.updatec                    \        WVP                  ^ ,          V^ ,          4      pVP                  ^,          pV^,          p\        WWV4      pVe8   VP                  VP                  P
                  V4      pVP                  V4       \        WWV4      ;_uu_ 4       p	V P                  WP                  VP                  VP                  4      p
VP                  V
4       V P                  P                  WP                  V	P                  4       RRR4       Ve&   VP                  VP                  P
                  4       V P                  4       #   + '       g   i     LI; ir  )r   rG   r   r   r%   rz   r  r   castr:   r]   r   r  r   r  )r   r    r=   rG   r   r	  r  r
  r  r   casteds   &&&&       r&   
set_updateru    s   w!d1g>D!JGE 	:5A};;t||00!4H	'J	6	6$ gzz:3C3CTZZP
 	7$4$4djjA 
7 	}dll''(""$$ 
7	6s   A3EE!	c                 P   aa \         V3R  l4       o\        V 4      V3R l4       pR# )c                 &   < V! W4      pV3R  lpW43# )c                    < VP                   VP                  ^ ,          8X  g   Q hS! WW#4       \        WVP                  ^ ,          V^ ,          4      # rE   )r  rG   r
   )r   r    r=   rG   rH   s   &&&&r&   codegen>gen_operator_impl.<locals>._set_operator_intr.<locals>.codegen  sB    ??chhqk1113-$Wsxx{DGLLr(   r'  )r;   rV  rW  r=   ry  rH   s   &&&  r&   _set_operator_intr-gen_operator_impl.<locals>._set_operator_intr  s    g	M |r(   c                 &   < \        W4       V3R  l# )c                    < S! W4      # rp   r'  rV  rW  r{  s   &&r&   r%  =gen_operator_impl.<locals>._ol_set_operator.<locals>.<lambda>  s    .q4r(   r^  r  s   &&r&   _ol_set_operator+gen_operator_impl.<locals>._ol_set_operator  s    a44r(   N)r   r   )oprH   r  r{  s   &f @r&   gen_operator_implr    s-      b\5 5r(   rc  c                 "    \        W4       R  pV# )c                 H    V P                  4       pVP                  V4       V# rp   )r\  rY  rV  rW  r^   s   && r&   difference_impl,impl_set_difference.<locals>.difference_impl  s     FFH	Ar(   r^  )rV  rW  r  s   && r&   impl_set_differencer    s     !
 r(   intersectionc                 "    \        W4       R  pV# )c                     \        V 4      \        V4      8  d$   V P                  4       pVP                  V4       V# VP                  4       pVP                  V 4       V# rp   )r  r\  rd  r  s   && r&   intersection_impl+set_intersection.<locals>.intersection_impl  sM    q6CF?A!!!$HA!!!$Hr(   r^  )rV  rW  r  s   && r&   set_intersectionr    s     ! r(   rh  c                 "    \        W4       R  pV# )c                     \        V 4      \        V4      8  d$   V P                  4       pVP                  V4       V# VP                  4       pVP                  V 4       V# rp   )r  r\  rm  r  s   && r&   symmetric_difference_impl;set_symmetric_difference.<locals>.symmetric_difference_impl  sM    q6CF?A))!,HA))!,Hr(   r^  )rV  rW  r  s   && r&   set_symmetric_differencer    s     ! %$r(   unionc                 "    \        W4       R  pV# )c                     \        V 4      \        V4      8  d$   V P                  4       pVP                  V4       V# VP                  4       pVP                  V 4       V# rp   )r  r\  updater  s   && r&   
union_implset_union.<locals>.union_impl(  sG    q6CF?AHHQKHAHHQKHr(   r^  )rV  rW  r  s   && r&   	set_unionr  #  s     ! r(   c                 :    \         P                  ! W4      pR  pW43# )c                     \        WVP                  ^ ,          V^ ,          4      p\        WVP                  ^,          V^,          4      pVP                  V4      # rE   )r   rG   r{  rJ  s   &&&&  r&   ry   _set_isdisjoint.<locals>.codegen;  sE    7SXXa[$q'BGchhqk47Cu%%r(   r   booleanr;   rV  rW  r=   ry  s   &&&  r&   _set_isdisjointr  7  s    
--
C& <r(   r{  c                     \        W4       R  # )c                     \        W4      # rp   )r  r\  s   &&r&   r%   set_isdisjoint.<locals>.<lambda>H  s	    -r(   r^  r\  s   &&r&   set_isdisjointr  D  s    !--r(   c                 :    \         P                  ! W4      pR  pW43# )c                     \        WVP                  ^ ,          V^ ,          4      p\        WVP                  ^,          V^,          4      pVP                  V4      # rE   r   rG   rq  rJ  s   &&&&  r&   ry  _set_issubset.<locals>.codegenO  sE    7SXXa[$q'BGchhqk47C}}U##r(   r  r  s   &&&  r&   _set_issubsetr  K  s    
--
C$ <r(   rq  c                     \        W4       R  # )c                     \        W4      # rp   )r  r\  s   &&r&   r%  set_issubset.<locals>.<lambda>\  s	    a+r(   r^  r\  s   &&r&   set_issubsetr  W  s     !++r(   
issupersetc                 "    \        W4       R  pV# )c                 $    VP                  V 4      # rp   )rq  r\  s   &&r&   superset_impl%set_issuperset.<locals>.superset_impld  s    zz!}r(   r^  )rV  rW  r  s   && r&   set_issupersetr  _  s     ! r(   c                 :    \         P                  ! W4      pR  pW43# )c                     \        WVP                  ^ ,          V^ ,          4      p\        WVP                  ^,          V^,          4      pVP                  V4      # rE   )r   rG   r  rJ  s   &&&&  r&   ry  _set_eq.<locals>.codegenm  sE    7SXXa[$q'BGchhqk47C{{5!!r(   r  r  s   &&&  r&   _set_eqr  i  s    
--
C" <r(   c                     \        W4       R  # )c                     \        W4      # rp   )r  r\  s   &&r&   r%  set_eq.<locals>.<lambda>y      r(   r^  r\  s   &&r&   set_eqr  u      !%%r(   c                 "    \        W4       R  pV# )c                     W8X  * # rp   r'  r\  s   &&r&   ne_implset_ne.<locals>.ne_impl  s
    zr(   r^  )rV  rW  r  s   && r&   set_ner  {  s    ! Nr(   c                 :    \         P                  ! W4      pR  pW43# )c                     \        WVP                  ^ ,          V^ ,          4      p\        WVP                  ^,          V^,          4      pVP                  VRR7      # )rF   T)rl  r  rJ  s   &&&&  r&   ry  _set_lt.<locals>.codegen  sI    7SXXa[$q'BGchhqk47C}}U4}00r(   r  r  s   &&&  r&   _set_ltr    s    
--
C1 <r(   c                     \        W4       R  # )c                     \        W4      # rp   )r  r\  s   &&r&   r%  set_lt.<locals>.<lambda>  r  r(   r^  r\  s   &&r&   set_ltr    r  r(   c                 "    \        W4       R  pV# )c                 
    W8  # rp   r'  r\  s   &&r&   gt_implset_gt.<locals>.gt_impl  s	    ur(   r^  )rV  rW  r  s   && r&   set_gtr    s    ! Nr(   c                 b   \        WVP                  ^ ,          V^ ,          4      p\        WVP                  ^,          V^,          4      pVP                  VP                  \        P
                  4      pVP                  VP                  \        P
                  4      pVP                  RWg4      # )rF   rL   )r   rG   ptrtointr   r   r   icmp_signed)r   r    r=   rG   rV  rW  mambs   &&&&    r&   set_isr    s}    Gchhqk47;AGchhqk47;A			!))W^^	4B			!))W^^	4BtR,,r(   c                 @    VP                   VP                   8X  g   Q hV# rp   r.  )r   r    fromtytotyr	  s   &&&&&r&   
set_to_setr    s     <<4::%%%Jr(   r   ir   )}__doc__collectionsr   mathr   	functoolsr   llvmliter   
numba.corer   r   r   numba.core.imputilsr   r   r	   r
   r   r   r   r   r   
numba.miscr   numba.cpythonr   numba.core.errorsr   r   numba.core.extendingr   r   r   r'   r-   rM   rS   r7   rG  r   r  rB   rJ   rP   rV   r4   r_   
namedtupler`   objectrb   r   r  r  setr  IterableTyper  r  r\   r  r<  Anyr  r  SetIterBORROWEDr  r  r!  r(  r/  r4  r9  r>  rC  rG  rM  rQ  rS  rX  r_  ra  rc  rh  rj  rl  rq  ru  r  iandiorisubixorop_op_implr  r  r   r  xorr  or_r  r  r  r  ler  ger  r  r   r  ner  r  ltr  gtr  is_r  r  r'  r(   r&   <module>r     sc  
     %  - -A A A ! ! : E EH( 	
  .  132L 
 
 ,J
K| & | ~YE& YEx0f 0lD, sD D
 sE&&'D (D. sEII  x  %))UYY7" 8" y%))$L %L z5==)w  ! * y%))UYY/% 0% 
 
 I&1 '1   E"! #!    H%4 &4   G$# %#   F#" $"% & &
 /05 15
% ( (
 127 37
% 0 0
 9:? ;?
 |UYY(:(:;% <%:5" ]]+,\\:]])*]]34	LC c7# 
(,,L) *  
(--N+ ,  
(,,23% 4 % 
(,,G$ % $ 	 	 L). *. 	 	 
(++J', ( , 
(++L) *  	 	 
(++& &
 
(++  	 	 
(++& &
 
(++  x||UYY		2- 3- EIIuyy! "r(   