Ë
    èÿæižß  ã                   ó(
  — d Z ddlZddl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 ddlmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZ dd	lmZmZ dd
lmZm Z m!Z! d„ Z"d„ Z#dZ$dZ%dZ&dZ'dZ(dZ)d„ Z*e!d„ «       Z+d„ Z,d„ Z-d„ Z.d„ Z/ ej`                  dd«      Z1 G d„ de2«      Z3 G d„ de2«      Z4 G d„ d e2«      Z5d!„ Z6 ee7«      d"„ «       Z8 ee7e
jr                  «      d#„ «       Z: ee;e
jx                  «      d$„ «       Z= eej|                  e
jx                  e
j~                  «      d%„ «       Z@ ed&e
jx                  «      d'„ «       ZA ed(e
j„                  «       eej†                  «      d)„ «       «       ZD ed*e
jx                  e
j~                  «      d+„ «       ZEe!d,„ «       ZF e e
jx                  d-«      d.„ «       ZGe!d/„ «       ZH e e
jx                  d0«      d1„ «       ZIe!d2„ «       ZJ e e
jx                  d3«      d4„ «       ZKe!d5„ «       ZL e e
jx                  d6«      d7„ «       ZMe!d8„ «       ZN e e
jx                  d9«      d:„ «       ZOd;„ ZPe!d<„ «       ZQ e e
jx                  d=«      d>„ «       ZRd?„ ZSe!d@„ «       ZT e e
jx                  dA«      dB„ «       ZUdC„ ZVe!dD„ «       ZW e e
jx                  dE«      dF„ «       ZX edGe
jx                  e
jr                  «      dH„ «       ZYdI„ ZZej¶                  eSfej¸                  eYfejº                  ePfej¼                  eVffD ]  \  Z_Z` eZe_e`«       Œ  eejÂ                  «       e e
jx                  dJ«      dK„ «       «       Zb eejÆ                  «       e e
jx                  dL«      dM„ «       «       Zd eejÊ                  «       e e
jx                  dN«      dO„ «       «       Zf eejÎ                  «       e e
jx                  dP«      dQ„ «       «       Zhe!dR„ «       Zi e e
jx                  dS«      dT„ «       Zje!dU„ «       Zk eejØ                  «       e e
jx                  dV«      dW„ «       «       Zm eejÜ                  «       e e
jx                  dX«      dY„ «       «       Zoe!dZ„ «       Zp eejâ                  «      d[„ «       Zr eejæ                  «      d\„ «       Zte!d]„ «       Zu eejì                  «      d^„ «       Zw eejð                  «      d_„ «       Zy eejô                  e
jx                  e
jx                  «      d`„ «       Z{ ee
jx                  e
jx                  «      da„ «       Z|y)bz&
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                 ó¶   — t        j                  |«      }| j                  |«      j                  «       }|j	                  ||«      }| j                  |||¬«      S )zx
    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          úi/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/cpython/setobj.pyÚget_payload_structr(      sU   € ô
 ×#Ñ# HÓ-€LØ×!Ñ! ,Ó/×:Ñ:Ó<€EØ�o‰o˜c 5Ó)€GØ×#Ñ# G¨\¸wÐ#ÓGÐGó    c                 ól   — | j                  t        j                  |«      «      }| j                  |«      S )z7
    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)   éÿÿÿÿéþÿÿÿiÕÿÿÿé   é   Fc                 ó,  — | j                   }|j                  t        «      }|j                  ||fi «      }| j	                  ||«      } |||f«      }t        | ||«      }	t        j                  |j                  t        «      }
|j                  |	||
«      S )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_valuerG   ;   sŠ   € ð ×&Ñ&€IØ×'Ñ'¬Ó-€DØ
×
Ñ
˜Y¨¨°Ó
3€CØ	×	Ñ	˜d CÓ	(€BÙ
ˆ7�U�HÓ€Aä˜ '¨1Ó-€EÜ�{‰{˜1Ÿ6™6¤8Ó,€HØ�>‰>˜%  HÓ-Ð-r)   c                 óh   ‡— ˆfd„}| j                  t        «      }|j                  | ‰fi «      }||fS )Nc                 ó&   •— t        | |‰|d   «      S ©Nr   )rG   )r    r!   r>   Úargsr?   s       €r'   Úimplz'_get_hash_value_intrinsic.<locals>.implL   s   ø€ Ü˜g w°°t¸A±wÓ?Ð?r)   )r5   r6   r7   )r@   r?   rL   rA   rB   s    `   r'   Ú_get_hash_value_intrinsicrM   J   s9   ø€ ô@à×'Ñ'¬Ó-€DØ
×
Ñ
˜Y¨¨°"Ó
5€CØ�ˆ9Ðr)   c                 óp   — t        j                  |j                  t        «      }|j	                  d||«      S )z8
    Whether the hash value denotes an empty entry.
    ú==)r   r:   r;   ÚEMPTYÚicmp_unsigned)r    r!   rD   Úemptys       r'   Úis_hash_emptyrS   S   s-   € ô �K‰K˜Ÿ™¤Ó&€EØ× Ñ   q¨%Ó0Ð0r)   c                 óp   — t        j                  |j                  t        «      }|j	                  d||«      S )z9
    Whether the hash value denotes a deleted entry.
    rO   ©r   r:   r;   ÚDELETEDrQ   ©r    r!   rD   Údeleteds       r'   Úis_hash_deletedrY   Z   s-   € ô �k‰k˜!Ÿ&™&¤'Ó*€GØ× Ñ   q¨'Ó2Ð2r)   c                 óp   — t        j                  |j                  t        «      }|j	                  d||«      S )z9
    Whether the hash value denotes an active entry.
    Ú<rU   rW   s       r'   r9   r9   a   s-   € ô
 �k‰k˜!Ÿ&™&¤'Ó*€GØ× Ñ   a¨Ó1Ð1r)   c            	      ó  — t        | D �cg c]  }t        |t        j                  «      ‘Œ c}«      st	        d| › �«      ‚t        | D �cg c]  }| d   j
                  |j
                  k(  ‘Œ  c}«      st	        d| › �«      ‚y c c}w c c}w )Nz All arguments must be Sets, got r   z'All Sets must be of the same type, got )ÚallÚ
isinstancer   ÚSetr   Údtype)rK   r>   Úss      r'   Úcheck_all_setrb   j   s�   € Ü±dÓ;±d¨s”
˜3¤§	¡	Õ*°dÑ;Ô<ÜÐ<¸T¸FÐCÓDÐDä±$Ó7±$¨Q��Q‘—‘ §¡Ó(°$Ñ7Ô8ÜÐCÀDÀ6ÐJÓKÐKð 9ùò <ùò 8s   Š!BÁ	#BÚSetLoop©ÚindexÚentryÚdo_breakc                   óŽ  — e Zd Zd„ Zed„ «       Zej                  d„ «       Zed„ «       Zej                  d„ «       Zed„ «       Zej                  d„ «       Zed„ «       Z	e	j                  d	„ «       Z	ed
„ «       Z
e
j                  d„ «       Z
ed„ «       Zed„ «       Zd„ Zdd„Zej                   dd„«       Zej                   d„ «       Zy)Ú_SetPayloadc                 ó’   — t        ||||«      }|| _        || _        || _        || _        |j                  d«      | _        || _        y )NÚentries)r(   Ú_contextÚ_builderÚ_tyÚ_payloadÚ_get_ptr_by_nameÚ_entriesÚ_ptr)Úselfr    r!   r"   r#   r&   s         r'   Ú__init__z_SetPayload.__init__w   sG   € Ü$ W¨g°xÀÓEˆØˆŒØˆŒØˆŒØˆŒØ×0Ñ0°Ó;ˆŒØˆ�	r)   c                 ó.   — | j                   j                  S ©N©ro   Úmask©rs   s    r'   rx   z_SetPayload.mask€   ó   € à�}‰}×!Ñ!Ð!r)   c                 ó&   — || j                   _        y rv   rw   ©rs   r?   s     r'   rx   z_SetPayload.mask„   s   € ð #ˆ�‰Õr)   c                 ó.   — | j                   j                  S rv   ©ro   Úusedry   s    r'   r   z_SetPayload.used‰   rz   r)   c                 ó&   — || j                   _        y rv   r~   r|   s     r'   r   z_SetPayload.used�   ó   € à"ˆ�‰Õr)   c                 ó.   — | j                   j                  S rv   ©ro   Úfillry   s    r'   r„   z_SetPayload.fill‘   rz   r)   c                 ó&   — || j                   _        y rv   rƒ   r|   s     r'   r„   z_SetPayload.fill•   r�   r)   c                 ó.   — | j                   j                  S rv   ©ro   Úfingerry   s    r'   rˆ   z_SetPayload.finger™   s   € à�}‰}×#Ñ#Ð#r)   c                 ó&   — || j                   _        y rv   r‡   r|   s     r'   rˆ   z_SetPayload.finger�   s   € à$ˆ�‰Õr)   c                 ó.   — | j                   j                  S rv   ©ro   Údirtyry   s    r'   rŒ   z_SetPayload.dirty¡   s   € à�}‰}×"Ñ"Ð"r)   c                 ó&   — || j                   _        y rv   r‹   r|   s     r'   rŒ   z_SetPayload.dirty¥   s   € à#ˆ�‰Õr)   c                 ó   — | j                   S )z>
        A pointer to the start of the entries array.
        )rq   ry   s    r'   rk   z_SetPayload.entries©   s   € ð
 �}‰}Ðr)   c                 ó   — | j                   S )zC
        A pointer to the start of the NRT-allocated area.
        )rr   ry   s    r'   r#   z_SetPayload.ptr°   s   € ð
 �y‰yÐr)   c                 óæ   — t        j                  | j                  | j                  |«      }| j                  j                  | j                  t        j                  | j                  «      |¬«      }|S )z)
        Get entry number *idx*.
        r   )	r   Úgeprm   rq   rl   r   r   r+   rn   )rs   ÚidxÚ	entry_ptrrf   s       r'   Ú	get_entryz_SetPayload.get_entry·   sW   € ô —K‘K §¡¨t¯}©}¸cÓBˆ	Ø—‘×.Ñ.¨t¯}©}Ü/4¯~©~¸d¿h¹hÓ/GØ3<ð /ó >ˆð ˆr)   c                 ó²  ‡ ‡‡‡‡‡‡‡‡‡‡— ‰ j                   Š‰ j                  Š‰j                  }‰ j                  }‰ j                  j
                  }‰j                  }|j                  t        j                  «      }|j                  |||fi «      }	‰j                  ||	«      Št        j                  |d«      }
t        j                  |d«      }t        j                  ‰‰«      }t        j                  ‰‰j!                  ‰|«      «      }‰r'|j                  d«      Št        j                  ‰‰«      Š‰j#                  d«      }‰j#                  d«      Š‰j#                  d«      Š‰j#                  d«      }ˆˆˆˆˆˆˆˆˆˆˆ fd„}t        j$                  ‰t        j                  |t&        «      «      5  ‰j)                  |«      } ||«       ‰j+                  ||
«      }‰j!                  ||«      }‰j-                  ||«       d	d	d	«       ‰j/                  |«       ‰j1                  |«      5  ‰j)                  |«      } ||«       ‰j)                  |«      }‰j3                  ||«      }‰j+                  |
‰j5                  ||«      «      }‰j!                  |‰j+                  ||«      «      }‰j-                  ||«       ‰j-                  ||«       ‰j/                  |«       d	d	d	«       ‰j1                  ‰«      5  ‰rX‰j)                  |«      }‰j)                  ‰«      }‰j7                  ‰j9                  d
|‰«      ||«      }‰j-                  ||«       ‰j/                  |«       d	d	d	«       ‰j1                  ‰«      5  ‰j/                  |«       d	d	d	«       ‰j;                  |«       ‰j=                  t        j>                  d«      d«      }|jA                  t        jB                  ‰«       |jA                  t        jD                  ‰«       |‰j)                  |«      fS # 1 sw Y   �Œ#xY w# 1 sw Y   �ŒPxY w# 1 sw Y   Œ×xY w# 1 sw Y   Œ¸xY w)ag  
        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)
        é   é   r/   zlookup.bodyzlookup.foundzlookup.not_foundz
lookup.endc                 óÀ  •— ‰j                  | «      }|j                  }‰j                  ‰j                  d‰|«      «      5   ‰	‰‰|j                  f«      }‰j                  |«      5  ‰j                  ‰«       ddd«       ddd«       ‰j                  t        ‰‰|«      «      5  ‰j                  ‰«       ddd«       ‰
rm‰j                  t        ‰‰|«      «      5  ‰j                  ‰«      }‰j                  ‰j                  d|‰«      | |«      }‰j                  |‰«       ddd«       yy# 1 sw Y   Œ·xY w# 1 sw Y   Œ»xY w# 1 sw Y   Œ‘xY w# 1 sw Y   yxY w)zO
            Check entry *i* against the value being searched for.
            rO   N)r”   r6   Úif_thenrQ   ÚkeyÚbranchrS   rY   Úloadr=   Ústore)Úirf   Ú
entry_hashÚeqÚjÚbb_foundÚbb_not_foundr!   r    ÚeqfnÚ
for_insertÚ
free_indexÚfree_index_sentinelrD   Úitemrs   s        €€€€€€€€€€€r'   Úcheck_entryz(_SetPayload._lookup.<locals>.check_entryé   s*  ø€ ð —N‘N 1Ó%ˆEØŸ™ˆJà—‘ ×!6Ñ!6°t¸QÀ
Ó!KÕLñ ˜' D¨%¯)©)Ð#4Ó5�Ø—_‘_ RÕ(Ø—N‘N 8Ô,÷ )÷	 Mð —‘¤¨w¸ÀÓ!LÕMØ—‘˜|Ô,÷ Nñ à—_‘_¤_°W¸gÀzÓ%RÕSØŸ™ ZÓ0�AØŸ™ w×'<Ñ'<¸TÀ1ÐFYÓ'ZØ'(¨!ó-�Aà—M‘M ! ZÔ0÷	 TÐSð ÷ )Ð(ú÷	 MÐLú÷ NÐMú÷
 TÐSús=   Á'D<Á(D0Á:D<Â&EÃAEÄ0D9	Ä5D<Ä<EÅEÅENrO   Úfound)#rl   rm   r;   rx   rn   r`   r4   r5   Úoperatorr    r7   r8   r   r:   r   Úalloca_once_valueÚand_Úappend_basic_blockÚ	for_rangeÚLINEAR_PROBESrœ   Úaddr�   r›   Ú
goto_blockÚlshrÚmulr=   rQ   Úposition_at_endÚphiÚIntTypeÚadd_incomingÚtrue_bitÚ	false_bit)rs   r¨   rD   r¥   Úintp_trx   r`   ÚtyctxrA   rB   ÚoneÚfiveÚperturbre   Úbb_bodyÚbb_endr©   rž   Úpr¡   rª   r¢   r£   r!   r    r¤   r¦   r§   s   ````                 @@@@@@@r'   Ú_lookupz_SetPayload._lookupÁ   s‚  ÿú€ ð —-‘-ˆØ—-‘-ˆà—‘ˆà�y‰yˆØ—‘—‘ˆØ×&Ñ&ˆØ×'Ñ'¬¯©Ó4ˆØ× Ñ  ¨°¨¸Ó;ˆØ×#Ñ# D¨#Ó.ˆä�k‰k˜& !Ó$ˆÜ�{‰{˜6 1Ó%ˆô ×+Ñ+¨G°QÓ7ˆä×)Ñ)¨'Ø*1¯,©,°q¸$Ó*?óAˆáà"&§)¡)¨B£-ÐÜ ×2Ñ2°7Ð<OÓPˆJà×,Ñ,¨]Ó;ˆØ×-Ñ-¨nÓ=ˆØ×1Ñ1Ð2DÓEˆØ×+Ñ+¨LÓ9ˆ÷	1ö 	1ô8 ×Ñ˜w¬¯©°F¼MÓ(JÕKØ—‘˜UÓ#ˆAÙ˜ŒNØ—‘˜A˜sÓ#ˆAØ—‘˜Q Ó%ˆAØ�M‰M˜!˜UÔ#÷ Lð 	�‰�wÔØ×Ñ Õ(Ø—‘˜UÓ#ˆAÙ˜ŒNð
 —‘˜WÓ%ˆAØ—‘˜Q Ó%ˆAØ—‘˜C §¡¨Q°Ó!5Ó6ˆAØ—‘˜T 7§;¡;¨q°!Ó#4Ó5ˆAØ�M‰M˜!˜UÔ#Ø�M‰M˜!˜WÔ%à�N‰N˜7Ô#÷ )ð  ×Ñ Õ-Ùð —L‘L Ó'�Ø—L‘L Ó,�Ø—N‘N 7×#8Ñ#8¸¸qÐBUÓ#VØ#$ aó)�à—‘˜a Ô'Ø�N‰N˜6Ô"÷ .ð ×Ñ Õ)Ø�N‰N˜6Ô"÷ *ð 	×Ñ Ô'à—‘œBŸJ™J q›M¨7Ó3ˆØ×Ñœ7×+Ñ+¨XÔ6Ø×Ñœ7×,Ñ,¨lÔ;à�g—l‘l 5Ó)Ð)Ð)÷a LÑKú÷ )Ñ(ú÷  .Ð-ú÷ *Ð)ús3   Æ6AP'È0B6P4Ë?A,QÎQÐ'P1Ð4P>ÑQ
ÑQNc              #   ó4  K  — | j                   }| j                  }|j                  t        j                  «      }t        j                  |d«      }|j                  | j                  |«      }t        j                  |||¬«      5 }| j                  |j                  «      }t        |||j                  «      }	|j                  |	«      5  t!        |j                  ||j"                  ¬«      }
|
–— ddd«       ddd«       y# 1 sw Y   ŒxY w# 1 sw Y   yxY w­w)zG
        Iterate over the payload's entries.  Yield a SetLoop.
        r–   ©Ústartrd   N)rl   rm   Úget_value_typer   Úintpr   r:   r±   rx   r   r¯   r”   re   r9   r6   r™   rc   rg   )rs   rÆ   r    r!   r»   r½   ÚsizeÚ
range_looprf   Úis_usedÚloops              r'   Ú_iteratez_SetPayload._iterate7  sØ   è ø€ ð
 —-‘-ˆØ—-‘-ˆà×'Ñ'¬¯
©
Ó3ˆÜ�k‰k˜& !Ó$ˆØ�{‰{˜4Ÿ9™9 cÓ*ˆä×Ñ˜w¨°EÕ:¸jØ—N‘N :×#3Ñ#3Ó4ˆEÜ" 7¨G°U·Z±ZÓ@ˆGØ—‘ Õ)Ü Z×%5Ñ%5¸UØ(2×(;Ñ(;ô=�à’
÷ *÷ ;Ð:÷ *Ð)ú÷ ;Ð:üs7   ‚BDÂADÃ'D Ã/DÃ7	DÄ D		ÄDÄDÄDc              #   óT  K  — | j                   }| j                  }|j                  t        j                  «      }t        j                  |d«      }t        j                  |d«      }| j                  }|j                  d«      }|j                  d«      }t        j                  || j                  «      }	|j                  |«       |j                  |«      5  |j                  |	«      }
|j                  ||j!                  |
|«      «      }
|j#                  |
|	«       | j%                  |
«      }t'        |||j(                  «      }|j+                  |||«       ddd«       |j-                  |«       |j                  |	«      }
|
| _        | j%                  |
«      –— y# 1 sw Y   ŒFxY w­w)z‹
        Yield a random entry from the payload.  Caller must ensure the
        set isn't empty, otherwise the function won't end.
        r   r–   Únext_entry_bodyÚnext_entry_endN)rl   rm   rÇ   r   rÈ   r   r:   rx   r®   r   r¬   rˆ   r›   r²   rœ   r­   r±   r�   r”   r9   r6   Úcbranchrµ   )rs   r    r!   r»   Úzeror½   rx   rÀ   rÁ   re   rž   rf   rË   s                r'   Ú_next_entryz_SetPayload._next_entryK  sU  è ø€ ð —-‘-ˆØ—-‘-ˆà×'Ñ'¬¯
©
Ó3ˆÜ�{‰{˜6 1Ó%ˆÜ�k‰k˜& !Ó$ˆØ�y‰yˆð
 ×,Ñ,Ð->Ó?ˆØ×+Ñ+Ð,<Ó=ˆä×)Ñ)¨'°4·;±;Ó?ˆØ�‰�wÔà×Ñ Õ(Ø—‘˜UÓ#ˆAà—‘˜T 7§;¡;¨q°#Ó#6Ó7ˆAØ�M‰M˜!˜UÔ#Ø—N‘N 1Ó%ˆEÜ" 7¨G°U·Z±ZÓ@ˆGØ�O‰O˜G V¨WÔ5÷ )ð 	×Ñ Ô'ð �L‰L˜ÓˆØˆŒØ�n‰n˜QÓÓ÷ )Ð(üs    ‚CF(ÃBFÅAF(ÆF%Æ!F(©Frv   )Ú__name__Ú
__module__Ú__qualname__rt   Úpropertyrx   Úsetterr   r„   rˆ   rŒ   rk   r#   r”   rÃ   Ú
contextlibÚcontextmanagerrÍ   rÓ   © r)   r'   ri   ri   u   sK  „ òð ñ"ó ð"ð 
‡[�[ñ#ó ð#ð ñ"ó ð"ð 
‡[�[ñ#ó ð#ð ñ"ó ð"ð 
‡[�[ñ#ó ð#ð ñ$ó ð$ð ‡]�]ñ%ó ð%ð ñ#ó ð#ð ‡\�\ñ$ó ð$ð ñó ðð ñó ðòót*ðl ×Ñòó ðð& ×Ññ% ó ñ% r)   ri   c                   óŽ  — e Zd Zd„ Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z	e	j                  d„ «       Z	d„ Zd	„ Zd+d
„Zd,d„Zd,d„Zd+d„Zd+d„Zd+d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd-d„Zd„ Zd„ Zed.d„«       Z ed.d„«       Z!ed„ «       Z"ed „ «       Z#d!„ Z$d"„ Z%d#„ Z&d$„ Z'd-d%„Z(d&„ Z)d'„ Z*d(„ Z+d)„ Z,d*„ Z-y)/ÚSetInstancec                 ó€   — || _         || _        || _        t        ||«      | _        |j                  |||«      | _        y rv   )rl   rm   rn   r.   Ú
_entrysizeÚmake_helperÚ_set)rs   r    r!   r"   Úset_vals        r'   rt   zSetInstance.__init__v  s;   € ØˆŒØˆŒØˆŒÜ(¨°(Ó;ˆŒØ×'Ñ'¨°¸7ÓCˆ�	r)   c                 ó.   — | j                   j                  S rv   )rn   r`   ry   s    r'   r`   zSetInstance.dtype}  s   € à�x‰x�~‰~Ðr)   c                 óÂ   — | j                   }| j                  }| j                   j                  j                  || j                  «      }t        ||| j                  |«      S )z/
        The _SetPayload for this set.
        )rl   rm   ÚnrtÚmeminfo_dataÚmeminfori   rn   )rs   r    r!   r#   s       r'   r&   zSetInstance.payload�  sK   € ð —-‘-ˆØ—-‘-ˆà�m‰m×Ñ×,Ñ,¨W°d·l±lÓCˆÜ˜7 G¨T¯X©X°sÓ;Ð;r)   c                 ó6   — | j                   j                  «       S rv   )râ   Ú	_getvaluery   s    r'   r?   zSetInstance.value�  s   € à�y‰y×"Ñ"Ó$Ð$r)   c                 ó.   — | j                   j                  S rv   )râ   rè   ry   s    r'   rè   zSetInstance.meminfo‘  s   € à�y‰y× Ñ Ð r)   c                 ó.   — | j                   j                  S rv   ©râ   Úparentry   s    r'   rî   zSetInstance.parent•  s   € à�y‰y×ÑÐr)   c                 ó&   — || j                   _        y rv   rí   r|   s     r'   rî   zSetInstance.parent™  s   € à ˆ�	‰	Õr)   c                 ó.   — | j                   j                  S )z<
        Return the number of elements in the size.
        )r&   r   ry   s    r'   Úget_sizezSetInstance.get_size�  s   € ð �|‰|× Ñ Ð r)   c                 ó”   — | j                   j                  r2|rt        j                  nt        j                  | j
                  _        y y rv   )rn   Ú	reflectedr   r¹   rº   r&   rŒ   ©rs   Úvals     r'   Ú	set_dirtyzSetInstance.set_dirty£  s0   € Ø�8‰8×ÒÙ58¤×!1Ò!1¼g×>OÑ>OˆD�L‰LÕð r)   c                 ó  — | j                   }| j                  }|j                  }||_        | j                  |«       ||_        |j
                  }	t        j                  |	j                  d«      }
|j                  |	|
«      x}	|_        |j                  t        |||«      d¬«      5  |j                  |j                  |
«      |_        d d d «       |r| j                  |	«       | j                  d«       y # 1 sw Y   Œ.xY w)Nr–   T©Úlikely)rl   rm   r6   Úincref_valuerš   r   r   r:   r;   r±   r™   rS   r„   Úupsizerö   )rs   r&   rf   r¨   rD   Ú	do_resizer    r!   Úold_hashr   r½   s              r'   Ú
_add_entryzSetInstance._add_entry§  sÏ   € Ø—-‘-ˆØ—-‘-ˆà—:‘:ˆØˆŒ
Ø×Ñ˜$ÔØˆŒ	à�|‰|ˆÜ�k‰k˜$Ÿ)™) QÓ'ˆØ%Ÿk™k¨$°Ó4Ð4ˆˆwŒ|à�_‰_œ]¨7°G¸XÓFØ$(ð õ *à"Ÿ;™; w§|¡|°SÓ9ˆGŒL÷*ñ Ø�K‰K˜ÔØ�‰�tÕ÷*ð *ús   Â'"C6Ã6C?c                 óÆ  — | j                   }| j                  }|j                  ||d¬«      \  }}	|j                  |«      }
|j	                  |
«      5  |j                  |	«      }|j                  }||_        |r| j                  |«       ||_        |j                  }t        j                  |j                  d«      }|j                  ||«      x}|_	        |j	                  t        |||«      d¬«      5  |j                  |j                  |«      |_        d d d «       |r| j!                  |«       | j#                  d«       d d d «       y # 1 sw Y   Œ6xY w# 1 sw Y   y xY w)NT©r¥   r–   rø   )rl   rm   rÃ   Únot_r™   r”   r6   rú   rš   r   r   r:   r;   r±   rS   r„   rû   rö   )rs   r&   r¨   rD   rü   Ú	do_increfr    r!   rª   rž   Ú	not_foundrf   rý   r   r½   s                  r'   Ú_add_keyzSetInstance._add_key¼  s%  € Ø—-‘-ˆØ—-‘-ˆà—?‘? 4¨°t�?Ó<‰ˆˆqØ—L‘L Ó'ˆ	à�_‰_˜YÕ'à×%Ñ% aÓ(ˆEØ—z‘zˆHØˆEŒJÙØ×!Ñ! $Ô'ØˆEŒIà—<‘<ˆDÜ—+‘+˜dŸi™i¨Ó+ˆCØ")§+¡+¨d°CÓ"8Ð8ˆD�7”<à—‘¤¨w¸ÀÓ!JØ(,ð !õ .à&Ÿ{™{¨7¯<©<¸Ó=�”÷.ñ Ø—‘˜DÔ!Ø�N‰N˜4Ô ÷' (Ð'÷.ð .ú÷ (Ð'ús%   ÁB"EÃ4"EÄ,EÅE	ÅEÅE c                 óŠ  — t        j                  |j                  j                  t        «      |_        |r| j                  |j                  «       |j                  }t        j                  |j                  d«      }| j                  j                  ||«      x}|_        |r| j                  |«       | j                  d«       y )Nr–   T)r   r:   r6   r;   rV   Údecref_valuerš   r   rm   ÚsubÚdownsizerö   )rs   r&   rf   rü   Ú	do_decrefr   r½   s          r'   Ú_remove_entryzSetInstance._remove_entryØ  s†   € ä—[‘[ §¡§¡´'Ó:ˆŒ
ÙØ×Ñ˜eŸi™iÔ(à�|‰|ˆÜ�k‰k˜$Ÿ)™) QÓ'ˆØ"Ÿm™m×/Ñ/°°cÓ:Ð:ˆˆwŒ|áØ�M‰M˜$ÔØ�‰�tÕr)   c                 óö   — | j                   }| j                  }|j                  ||«      \  }}|j                  |«      5  |j	                  |«      }	| j                  ||	|«       d d d «       |S # 1 sw Y   |S xY wrv   )rl   rm   rÃ   r™   r”   r
  )
rs   r&   r¨   rD   rü   r    r!   rª   rž   rf   s
             r'   Ú_remove_keyzSetInstance._remove_keyæ  so   € Ø—-‘-ˆØ—-‘-ˆà—?‘? 4¨Ó+‰ˆˆqà�_‰_˜UÕ#Ø×%Ñ% aÓ(ˆEØ×Ñ˜w¨¨yÔ9÷ $ð ˆ÷	 $ð ˆús   ¿%A.Á.A8c                 ó¸   — | j                   }| j                  }| j                  }t        ||| j                  j
                  |«      }| j                  ||||«       y rv   )rl   rm   r&   rG   rn   r`   r  )rs   r¨   rü   r    r!   r&   rD   s          r'   r±   zSetInstance.addò  sG   € Ø—-‘-ˆØ—-‘-ˆà—,‘,ˆÜ˜7 G¨T¯X©X¯^©^¸TÓBˆØ�‰�g˜t Q¨	Õ2r)   c                 óœ   — | j                   }| j                  }| j                  }| j                  ||||«      }| j	                  ||||«       y)z`A version of .add for use inside functions following Python calling
        convention.
        N)rl   rm   r&   Ú_pyapi_get_hash_valuer  )rs   Úpyapir¨   rü   r    r!   r&   rD   s           r'   Ú	add_pyapizSetInstance.add_pyapiú  sG   € ð —-‘-ˆØ—-‘-ˆà—,‘,ˆØ×&Ñ& u¨g°wÀÓEˆØ�‰�g˜t Q¨	Õ2r)   c                 óH  — | j                   j                  g}t        j                  }d„ }|g}t	        j
                  |g|¢­Ž }	|j                  ||	|«      \  }
}|j                  |
d¬«      5  |j                  |j                  «       «       ddd«       |S # 1 sw Y   |S xY w)z=Python API compatible version of `get_hash_value()`.
        c                 ó   — t        | «      S rv   )rM   )rõ   s    r'   Úwrapperz2SetInstance._pyapi_get_hash_value.<locals>.wrapper  s   € Ü,¨SÓ1Ð1r)   Frø   N)
rn   r`   r   rÈ   r   Ú	signatureÚcall_jit_coder™   ÚretÚget_null_object)rs   r  r    r!   r¨   ÚargtypesÚrestyr  rK   rB   Úis_errorÚretvals               r'   r  z!SetInstance._pyapi_get_hash_value  s—   € ð —H‘H—N‘NÐ#ˆÜ—
‘
ˆò	2ð ˆvˆÜ×Ñ˜uÐ0 xÒ0ˆØ ×.Ñ.¨w¸¸TÓBÑˆ�&à�_‰_˜X¨eˆ_Õ4à�K‰K˜×-Ñ-Ó/Ô0÷ 5ð ˆ÷ 5ð ˆús   Á- BÂB!c                 ó¼   — | j                   }| j                  }| j                  }t        ||| j                  j
                  |«      }|j                  ||«      \  }}|S rv   )rl   rm   r&   rG   rn   r`   rÃ   )rs   r¨   r    r!   r&   rD   rª   rž   s           r'   ÚcontainszSetInstance.contains  sN   € Ø—-‘-ˆØ—-‘-ˆà—,‘,ˆÜ˜7 G¨T¯X©X¯^©^¸TÓBˆØ—?‘? 4¨Ó+‰ˆˆqØˆr)   c                 ó¸   — | j                   }| j                  }| j                  }t        ||| j                  j
                  |«      }| j                  |||«      }|S rv   )rl   rm   r&   rG   rn   r`   r  )rs   r¨   r    r!   r&   rD   rª   s          r'   ÚdiscardzSetInstance.discard   sN   € Ø—-‘-ˆØ—-‘-ˆà—,‘,ˆÜ˜7 G¨T¯X©X¯^©^¸TÓBˆØ× Ñ  ¨$°Ó2ˆØˆr)   c                 óŒ  — | j                   }| j                  }|j                  | j                  j                  «      }t        j                  ||«      }| j                  }|j                  «       5 }|j                  |j                  |«       | j                  ||d¬«       d d d «       |j                  |«      S # 1 sw Y   ŒxY w)NF)r	  )rl   rm   rÇ   rn   r`   r   Úalloca_oncer&   rÓ   r�   rš   r
  rœ   )rs   r    r!   Últyrš   r&   rf   s          r'   ÚpopzSetInstance.pop)  s›   € Ø—-‘-ˆØ—-‘-ˆà×$Ñ$ T§X¡X§^¡^Ó4ˆÜ×!Ñ! '¨3Ó/ˆà—,‘,ˆØ× Ñ Ô" eØ�M‰M˜%Ÿ)™) SÔ)à×Ñ˜w¨¸ÐÔ?÷ #ð
 �|‰|˜CÓ Ð ÷ #Ð"ús   Á01B:Â:Cc                 óê   — | j                   }| j                  }|j                  t        j                  «      }t        j                  |t        «      }| j                  |«       | j                  d«       y )NT)
rl   rm   rÇ   r   rÈ   r   r:   ÚMINSIZEÚ_replace_payloadrö   )rs   r    r!   r»   Úminsizes        r'   ÚclearzSetInstance.clear8  sR   € Ø—-‘-ˆØ—-‘-ˆà×'Ñ'¬¯
©
Ó3ˆÜ—+‘+˜f¤gÓ.ˆØ×Ñ˜gÔ&Ø�‰�tÕr)   c           	      ó*  — | j                   }| j                  }| j                  }|j                  }|j                  } t        | «      ||| j                  d«      }|j                  d||«      }|j                  |d¬«      5 \  }}	|5  |j                  |«      }
|j                  |j                  |
«      d¬«      5  |j                  j                  |t        d«       ddd«       ddd«       |	5  | j                  |||«      }|j!                  |«      }
|j                  |j                  |
«      d¬«      5  |j                  j                  |t        d«       ddd«       |j                  }|j#                  «       5 }|j$                  }|j'                  ||j(                  |j*                  d¬«       ddd«       ddd«       ddd«       |S # 1 sw Y   ŒðxY w# 1 sw Y   ŒôxY w# 1 sw Y   Œ�xY w# 1 sw Y   Œ?xY w# 1 sw Y   ŒCxY w# 1 sw Y   |S xY w)z,
        Return a copy of this set.
        NrO   Trø   F)zcannot copy set©rü   )rl   rm   r&   r   r„   r;   rn   rQ   Úif_elseÚ_copy_payloadr™   r  Ú	call_convÚreturn_user_excÚMemoryErrorÚchoose_alloc_sizeÚ_allocate_payloadrÍ   rf   r  rš   r6   )rs   r    r!   r&   r   r„   ÚotherÚno_deleted_entriesÚif_no_deletedÚ
if_deletedÚokÚnentriesÚother_payloadrÌ   rf   s                  r'   ÚcopyzSetInstance.copyA  sÃ  € ð —-‘-ˆØ—-‘-ˆà—,‘,ˆØ�|‰|ˆØ�|‰|ˆà”�T“
˜7 G¨T¯X©X°tÓ<ˆà$×2Ñ2°4¸¸tÓDÐØ�_‰_Ð/¸ˆ_Ô=Ù*�˜zÚà×(Ñ(¨Ó1�Ø—_‘_ W§\¡\°"Ó%5¸e�_ÕDØ×%Ñ%×5Ñ5°g¼{Ø6JôL÷ E÷ ò à×1Ñ1°'¸7ÀDÓI�Ø×,Ñ,¨XÓ6�Ø—_‘_ W§\¡\°"Ó%5¸e�_ÕDØ×%Ñ%×5Ñ5°g¼{Ø6JôL÷ Eð !&§¡�Ø×%Ñ%Ô'¨4Ø ŸJ™J�EØ—N‘N =°%·)±)¸U¿Z¹ZØ-2ð #ô 4÷ (÷ ÷ >ð. ˆ÷% EÐDú÷ �ú÷ EÐDú÷
 (Ð'ú÷ �ú÷ >ð. ˆús…   ÂHÂ4GÂ;"GÃGÃ%
HÃ/AG<Ä6"G$Å$G<Å<6G0Æ2G<Æ:HÇGÇGÇG!	ÇHÇ$G-Ç)G<Ç0G9Ç5G<Ç<H	ÈHÈHc                 óà  — | j                   }| j                  }| j                  }|j                  }|j                  «       5 }|j                  }|j                  |j                  |j                  «      \  }}	|j                  |j                  |«      «      5  | j                  ||d¬«       ddd«       ddd«       | j                  |j                  «       y# 1 sw Y   Œ-xY w# 1 sw Y   Œ1xY w)z9
        In-place intersection with *other* set.
        Fr+  N)rl   rm   r&   rÍ   rf   rÃ   rš   r6   r™   r  r
  r  r   )
rs   r3  r    r!   r&   r9  rÌ   rf   rª   Ú_s
             r'   Ú	intersectzSetInstance.intersecth  sµ   € ð —-‘-ˆØ—-‘-ˆØ—,‘,ˆØŸ™ˆà×ÑÔ 4Ø—J‘JˆEØ$×,Ñ,¨U¯Y©Y¸¿
¹
ÓC‰HˆE�1Ø—‘ §¡¨eÓ!4Õ5Ø×"Ñ" 7¨E¸UÐ"ÔC÷ 6÷  ð 	�‰�g—l‘lÕ#÷	 6Ð5ú÷  Ðús%   ÁAC$ÂCÂ,C$ÃC!	ÃC$Ã$C-c                 óN  — | j                   }| j                  }| j                  }|j                  }|j                  «       5 }|j                  }| j                  ||j                  |j                  d¬«       ddd«       | j                  |j                  «       y# 1 sw Y   Œ%xY w)z7
        In-place difference with *other* set.
        Fr+  N)
rl   rm   r&   rÍ   rf   r  rš   r6   r  r   )rs   r3  r    r!   r&   r9  rÌ   rf   s           r'   Ú
differencezSetInstance.differencez  s~   € ð —-‘-ˆØ—-‘-ˆØ—,‘,ˆØŸ™ˆà×#Ñ#Ô%¨Ø—J‘JˆEØ×Ñ˜W e§i¡i°·±ÀuÐÔM÷ &ð
 	�‰�g—l‘lÕ#÷ &Ð%ús   Á6BÂB$c           	      óž  — | j                   }| j                  }|j                  }|j                  «       5 }|j                  j
                  }|j                  j                  }| j                  }|j                  ||d¬«      \  }	}
|j                  |
«      }|j                  |	«      5 \  }}|5  | j                  ||d¬«       ddd«       |5  | j                  ||||«       ddd«       ddd«       ddd«       | j                  | j                  j                  «       y# 1 sw Y   Œ^xY w# 1 sw Y   ŒKxY w# 1 sw Y   ŒOxY w# 1 sw Y   ŒSxY w)zA
        In-place symmetric difference with *other* set.
        Tr   Fr+  N)rl   rm   r&   rÍ   rf   rš   r6   rÃ   r”   r,  r
  rþ   r  r   )rs   r3  r    r!   r9  rÌ   rš   rD   r&   rª   rž   rf   Ú	if_commonÚif_not_commons                 r'   Úsymmetric_differencez SetInstance.symmetric_differenceŠ  s  € ð —-‘-ˆØ—-‘-ˆØŸ™ˆà×#Ñ#Ô%¨Ø—*‘*—.‘.ˆCØ—
‘
—‘ˆAà—l‘lˆGØ—‘ s¨A¸$�Ó?‰HˆE�1Ø×%Ñ% aÓ(ˆEØ—‘ Ô'Ñ+E¨I°}ÚØ×&Ñ& w°ÀÐ&ÔG÷ â"Ø—O‘O G¨U°C¸Ô;÷ #÷ (÷ &ð 	�‰�d—l‘l×'Ñ'Õ(÷ �Yúç"�]ú÷ (Ð'ú÷ &Ð%úsT   µA2EÂ'D7Â-DÃ
D7ÃD+Ã!D7Ã)EÄD(Ä$D7Ä+D4Ä0D7Ä7E 	Ä<EÅEc           	      óŽ  — | j                   }| j                  }| j                  }|j                  }|rdnd}t        j                  |t        j
                  «      }|j                  |j                  ||j                  |j                  «      «      5 \  }	}
|
5  |j                  t        j                  |«       d d d «       |	5  |j                  «       5 }|j                  }|j                  |j                  |j                  «      \  }}|j!                  |j#                  |«      «      5  |j                  t        j                  |«       |j%                  «        d d d «       d d d «       d d d «       d d d «       |j'                  |«      S # 1 sw Y   ŒÔxY w# 1 sw Y   Œ>xY w# 1 sw Y   ŒBxY w# 1 sw Y   ŒFxY w# 1 sw Y   ŒJxY w)Nr[   ú<=)rl   rm   r&   r   r¬   r¹   r,  rQ   r   r�   rº   rÍ   rf   rÃ   rš   r6   r™   r  rg   rœ   )rs   r3  Ústrictr    r!   r&   r9  Úcmp_opÚresÚ
if_smallerÚ	if_largerrÌ   rf   rª   r<  s                  r'   ÚissubsetzSetInstance.issubset¢  sP  € Ø—-‘-ˆØ—-‘-ˆØ—,‘,ˆØŸ™ˆá‘ Dˆä×'Ñ'¨´×1AÑ1AÓBˆØ�_‰_Ø×!Ñ! &¨'¯,©,¸×8JÑ8JÓKôá(�*˜iÚà—‘œg×/Ñ/°Ô5÷ ò à×%Ñ%Ô'¨4Ø ŸJ™J�EØ,×4Ñ4°U·Y±YÀÇ
Á
ÓK‘H�E˜1Ø Ÿ™¨¯©°eÓ)<Õ=ØŸ™¤g×&7Ñ&7¸Ô=ØŸ™œ÷ >÷ (÷ ÷ð �|‰|˜CÓ Ð ÷ �ú÷ >Ð=ú÷ (Ð'ú÷ �ú÷ð úsm   ÂF;Â!FÂ8
F;ÃF/ÃAF#Ä)1F	ÅF#Å"F/Å*F;ÆF	ÆF;ÆF ÆF#Æ#F,Æ(F/Æ/F8	Æ4F;Æ;Gc                 óø  ‡‡	— | j                   }| j                  Š| j                  }|j                  }t        j                  ‰t        j
                  «      Š	ˆˆ	fd„}‰j                  ‰j                  d|j                  |j                  «      «      5 \  }}|5   |||«       d d d «       |5   |||«       d d d «       d d d «       ‰j                  ‰	«      S # 1 sw Y   Œ6xY w# 1 sw Y   Œ.xY w# 1 sw Y   Œ2xY w)Nc                 óf  •— | j                  «       5 }|j                  }|j                  |j                  |j                  «      \  }}‰j                  |«      5  ‰j                  t        j                  ‰«       |j                  «        d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY wrv   )
rÍ   rf   rÃ   rš   r6   r™   r�   r   rº   rg   )ÚsmallerÚlargerrÌ   rf   rª   r<  r!   rH  s         €€r'   Úcheckz%SetInstance.isdisjoint.<locals>.checkÄ  s~   ø€ à×!Ñ!Ô# tØŸ
™
�Ø!Ÿ>™>¨%¯)©)°U·Z±ZÓ@‘��qØ—_‘_ UÕ+Ø—M‘M¤'×"3Ñ"3°SÔ9Ø—M‘M”O÷ ,÷ $Ð#÷ ,Ð+ú÷ $Ð#ús$   ’AB'Á1BÂ
B'ÂB$	Â B'Â'B0Ú>)
rl   rm   r&   r   r¬   r¹   r,  rQ   r   rœ   )
rs   r3  r    r&   r9  rP  rJ  Ú	otherwiser!   rH  s
           @@r'   Ú
isdisjointzSetInstance.isdisjoint¼  sÌ   ù€ Ø—-‘-ˆØ—-‘-ˆØ—,‘,ˆØŸ™ˆä×'Ñ'¨´×1AÑ1AÓBˆõ	$ð �_‰_Ø×!Ñ! # w§|¡|°]×5GÑ5GÓHôá'�)˜Yâá�m WÔ-÷ ò á�g˜}Ô-÷ ÷ð �|‰|˜CÓ Ð ÷ �ú÷ �ú÷ð ús<   ÂC0Â
CÂ#
C0Â-
C$Â7C0ÃC!	ÃC0Ã$C-	Ã)C0Ã0C9c           	      ó‚  — | j                   }| j                  }| j                  }|j                  }t        j                  |t        j
                  «      }|j                  |j                  d|j                  |j                  «      «      5 \  }}|5  |j                  «       5 }	|	j                  }
|j                  |
j                  |
j                  «      \  }}|j                  |j                  |«      «      5  |j!                  t        j"                  |«       |	j%                  «        d d d «       d d d «       d d d «       |5  |j!                  t        j"                  |«       d d d «       d d d «       |j'                  |«      S # 1 sw Y   Œ]xY w# 1 sw Y   ŒaxY w# 1 sw Y   ŒexY w# 1 sw Y   ŒFxY w# 1 sw Y   ŒJxY w)NrO   )rl   rm   r&   r   r¬   r¹   r,  rQ   r   rÍ   rf   rÃ   rš   r6   r™   r  r�   rº   rg   rœ   )rs   r3  r    r!   r&   r9  rH  Úif_same_sizerR  rÌ   rf   rª   r<  s                r'   ÚequalszSetInstance.equalsÛ  sG  € Ø—-‘-ˆØ—-‘-ˆØ—,‘,ˆØŸ™ˆä×'Ñ'¨´×1AÑ1AÓBˆØ�_‰_Ø×!Ñ! $¨¯©°m×6HÑ6HÓIôá*�, 	Úà×%Ñ%Ô'¨4Ø ŸJ™J�EØ,×4Ñ4°U·Y±YÀÇ
Á
ÓK‘H�E˜1Ø Ÿ™¨¯©°eÓ)<Õ=ØŸ™¤g×&7Ñ&7¸Ô=ØŸ™œ÷ >÷ (÷ ò à—‘œg×/Ñ/°Ô5÷ ÷ð �|‰|˜CÓ Ð ÷ >Ð=ú÷ (Ð'ú÷ �ú÷ �ú÷ð úsm   ÂF5ÂFÂ"AFÃ81F	Ä)FÄ1FÄ9
F5Å!F)Å$F5ÆFÆ
FÆFÆFÆF&	Æ"F5Æ)F2	Æ.F5Æ5F>Nc                 ó,  — |j                  t        j                  «      }|€t        j                  |t
        «      }n9t        |t        «      rt        j                  ||«      }| j                  |||«      } | |||d«      }|j                  |«      }||fS )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   r:   r&  r^   Úintr1  r2  )	Úclsr    r!   r"   Únitemsr»   r8  rs   r7  s	            r'   Úallocate_exzSetInstance.allocate_exó  s„   € ð ×'Ñ'¬¯
©
Ó3ˆàˆ>Ü—{‘{ 6¬7Ó3‰Hä˜&¤#Ô&ÜŸ™ V¨VÓ4�Ø×,Ñ,¨W°g¸vÓFˆHá�7˜G X¨tÓ4ˆØ×#Ñ# HÓ-ˆØ�4ˆxˆr)   c                 óæ   — | j                  ||||«      \  }}|j                  |j                  |«      d¬«      5  |j                  j	                  |t
        d«       ddd«       |S # 1 sw Y   |S xY w)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ø   )zcannot allocate setN)r[  r™   r  r.  r/  r0  )rY  r    r!   r"   rZ  r7  rs   s          r'   ÚallocatezSetInstance.allocate  sj   € ð —?‘? 7¨G°X¸vÓF‰ˆˆDØ�_‰_˜WŸ\™\¨"Ó-°eˆ_Õ<Ø×Ñ×-Ñ-¨g´{Ø.FôH÷ =ð ˆ÷ =ð ˆús   º"A&Á&A0c                 óè   —  | |||d«      }||j                   _        |j                  t        j                  «      |j                   _        |j                  j                  |||j                  «       |S )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?   )rY  r    r!   r"   rè   rs   s         r'   Úfrom_meminfozSetInstance.from_meminfo  sZ   € ñ �7˜G X¨tÓ4ˆØ#ˆ�	‰	ÔØ"×4Ñ4´U·^±^ÓDˆ�	‰	ÔØ�‰×Ñ˜7 H¨d¯j©jÔ9àˆr)   c                 óä  — |j                   }t        j                  |d«      }t        j                  |t        «      }|j	                  ||«      }t        j                  ||«      }|j                  d«      }	|j                  d«      }
|j                  |	«       |j                  |	«      5  |j                  |«      }|j                  d||«      }|j                  |d¬«      5  |j                  |
«       ddd«       |j	                  ||«      }|j                  ||«       |j                  |	«       ddd«       |j                  |
«       |j                  |«      S # 1 sw Y   ŒhxY w# 1 sw Y   Œ7xY w)zT
        Choose a suitable number of entries for the given number of items.
        r–   úcalcsize.bodyúcalcsize.endú>=Frø   N)r;   r   r:   r&  Úshlr   r¬   r®   r›   r²   rœ   rQ   r™   r�   rµ   )rY  r    r!   rZ  r»   r½   r(  Úmin_entriesÚsize_prÀ   rÁ   rÉ   Úis_large_enoughÚ	next_sizes                 r'   r1  zSetInstance.choose_alloc_size$  s0  € ð
 —‘ˆÜ�k‰k˜& !Ó$ˆÜ—+‘+˜f¤gÓ.ˆð —k‘k &¨#Ó.ˆä×*Ñ*¨7°GÓ<ˆà×,Ñ,¨_Ó=ˆØ×+Ñ+¨NÓ;ˆà�‰�wÔà×Ñ Õ(Ø—<‘< Ó'ˆDØ%×3Ñ3°D¸$ÀÓLˆOØ—‘ ¸�Õ?Ø—‘˜vÔ&÷ @àŸ™ D¨#Ó.ˆIØ�M‰M˜) VÔ,Ø�N‰N˜7Ô#÷ )ð 	×Ñ Ô'Ø�|‰|˜FÓ#Ð#÷ @Ð?ú÷ )Ð(ús$   Â)8E&Ã!EÃ3=E&ÅE#	ÅE&Å&E/c           	      óÄ  — | j                   }| j                  }|j                  }t        j                  |d«      }t        j                  |d«      }| j
                  }|j                  ||«      }|j                  |j                  |«      }	|j                  d||	«      }
|j                  |
d¬«      5  t        j                  ||	«      }|j                  d«      }|j                  d«      }|j                  |«       |j                  |«      5  |j!                  |«      }|j                  ||«      }|j#                  ||«       |j                  d||«      }|j%                  |||«       ddd«       |j'                  |«       |j!                  |«      }t(        r|j+                  |d	||	||«       | j-                  ||d
«       ddd«       y# 1 sw Y   ŒcxY w# 1 sw Y   yxY w)zs
        When adding to the set, ensure it is properly sized for the given
        number of used entries.
        r–   é   rf  Frø   rd  re  NzKupsize to %zd items: current size = %zd, min entries = %zd, new size = %zd
zcannot grow set)rl   rm   r;   r   r:   r&   rg  r±   rx   rQ   r™   r   r¬   r®   r›   r²   rœ   r�   rÑ   rµ   ÚDEBUG_ALLOCSÚprintfÚ_resize)rs   rZ  r    r!   r»   r½   Útwor&   rh  rÉ   Úneed_resizeÚ
new_size_prÀ   rÁ   Únew_sizeÚis_too_smalls                   r'   rû   zSetInstance.upsizeC  sŸ  € ð
 —-‘-ˆØ—-‘-ˆØ—‘ˆä�k‰k˜& !Ó$ˆÜ�k‰k˜& !Ó$ˆà—,‘,ˆð —k‘k &¨#Ó.ˆØ�{‰{˜7Ÿ<™<¨Ó-ˆØ×+Ñ+¨D°+¸tÓDˆà�_‰_˜[°ˆ_Õ7ä ×2Ñ2°7¸DÓAˆJà×0Ñ0°ÓAˆGØ×/Ñ/°Ó?ˆFà�N‰N˜7Ô#à×#Ñ# GÕ,à"Ÿ<™<¨
Ó3�Ø"Ÿ;™; x°Ó5�Ø—‘˜h¨
Ô3Ø&×4Ñ4°T¸;ÈÓQ�Ø—‘ ¨g°vÔ>÷ -ð ×#Ñ# FÔ+à—|‘| JÓ/ˆHÝØ—‘˜wð Eà% t¨[¸(ôDð �L‰L˜ (Ð,=Ô>÷3 8Ð7÷ -Ð,ú÷ 8Ð7ús'   Â1AGÄAG
Å(AGÇ
G	ÇGÇGc           	      ó  — | j                   }| j                  }|j                  }t        j                  |d«      }t        j                  |d«      }t        j                  |t
        «      }| j                  }|j                  ||«      }	|j                  |j                  d|	|«      |	|«      }	|j                  |	|«      }
|j                  |j                  |«      }|j                  |j                  d|
|«      |j                  d||«      «      }|j                  |d¬«      5  t        j                  ||«      }|j!                  d«      }|j!                  d	«      }|j#                  |«       |j%                  |«      5  |j'                  |«      }|j)                  ||«      }|j                  d
|	|«      }|j                  |«      5  |j#                  |«       ddd«       |j+                  ||«       |j#                  |«       ddd«       |j-                  |«       |j'                  |«      }t.        r|j1                  |d|||	|«       | j3                  ||d«       ddd«       y# 1 sw Y   ŒŽxY w# 1 sw Y   ŒoxY w# 1 sw Y   yxY w)zw
        When removing from the set, ensure it is properly sized for the given
        number of used entries.
        r–   rm  rf  rE  r[   Frø   rd  re  rQ  NzMdownsize to %zd items: current size = %zd, min entries = %zd, new size = %zd
zcannot shrink set)rl   rm   r;   r   r:   r&  r&   rg  r=   rQ   r±   rx   r­   r™   r   r¬   r®   r›   r²   rœ   r³   r�   rµ   rn  ro  rp  )rs   rZ  r    r!   r»   r½   rq  r(  r&   rh  Úmax_sizerÉ   rr  rs  rÀ   rÁ   rt  ru  s                     r'   r  zSetInstance.downsizeq  s,  € ð
 —-‘-ˆØ—-‘-ˆØ—‘ˆä�k‰k˜& !Ó$ˆÜ�k‰k˜& !Ó$ˆÜ—+‘+˜f¤gÓ.ˆà—,‘,ˆð —k‘k &¨#Ó.ˆØ—n‘n W×%:Ñ%:¸4ÀÈgÓ%VØ%0°'ó;ˆð —;‘;˜{¨CÓ0ˆØ�{‰{˜7Ÿ<™<¨Ó-ˆØ—l‘lØ×!Ñ! $¨°$Ó7Ø×!Ñ! # w°Ó5ó7ˆð �_‰_˜[°ˆ_Õ7ä ×2Ñ2°7¸DÓAˆJà×0Ñ0°ÓAˆGØ×/Ñ/°Ó?ˆFà�N‰N˜7Ô#à×#Ñ# GÕ,à"Ÿ<™<¨
Ó3�Ø"Ÿ<™<¨°#Ó6�à&×4Ñ4°S¸+ÀxÓP�Ø—_‘_ \Õ2Ø—N‘N 6Ô*÷ 3à—‘˜h¨
Ô3Ø—‘˜wÔ'÷ -ð ×#Ñ# FÔ+ð —|‘| JÓ/ˆHõ Ø—‘˜wð Eà% t¨[¸(ôDð �L‰L˜ (Ð,?Ô@÷A 8Ð7÷ 3Ð2ú÷ -Ð,ú÷ 8Ð7ús?   Ä"AI<Å=AI0ÇI$Ç+I0ÈAI<É$I-É)I0É0I9	É5I<É<Jc                 ó  — | j                   }| j                  }|}| j                  |d¬«      }|j                  |j	                  |«      d¬«      5  |j
                  j                  |t        |f«       ddd«       | j                  }|j                  «       5 }|j                  }	| j                  ||	j                  |	j                  dd¬«       ddd«       | j                  |j                  «       y# 1 sw Y   Œ€xY w# 1 sw Y   Œ1xY w)zw
        Resize the payload to the given number of entries.

        CAUTION: *nentries* must be a power of 2!
        T©ÚreallocFrø   N)rü   r  )rl   rm   r2  r™   r  r.  r/  r0  r&   rÍ   rf   r  rš   r6   Ú_free_payloadr#   )
rs   r&   r8  Úerrmsgr    r!   Úold_payloadr7  rÌ   rf   s
             r'   rp  zSetInstance._resize­  sÞ   € ð —-‘-ˆØ—-‘-ˆð ˆà×#Ñ# H°dÐ#Ó;ˆØ�_‰_˜WŸ\™\¨"Ó-°eˆ_Õ<Ø×Ñ×-Ñ-¨g´{Ø/5¨iô9÷ =ð —,‘,ˆØ×!Ñ!Ô# tØ—J‘JˆEØ�M‰M˜' 5§9¡9¨e¯j©jØ$)°Uð ô <÷ $ð
 	×Ñ˜;Ÿ?™?Õ+÷ =Ð<ú÷ $Ð#ús   Á#C2Â7C>Ã2C;Ã>Dc                 ó   — | j                   }| j                  }| j                  j                  «       5 }|j                  }| j                  |j                  «       ddd«       | j                  | j                  j                  «       | j                  |d¬«      }|j                  |j                  |«      d¬«      5  |j                  j                  |t        d«       ddd«       y# 1 sw Y   ŒŽxY w# 1 sw Y   yxY w)z›
        Replace the payload with a new empty payload with the given number
        of entries.

        CAUTION: *nentries* must be a power of 2!
        NTry  Frø   )zcannot reallocate set)rl   rm   r&   rÍ   rf   r  rš   r{  r#   r2  r™   r  r.  r/  r0  )rs   r8  r    r!   rÌ   rf   r7  s          r'   r'  zSetInstance._replace_payloadÈ  sÈ   € ð —-‘-ˆØ—-‘-ˆð �\‰\×"Ñ"Ô$¨Ø—J‘JˆEØ×Ñ˜eŸi™iÔ(÷ %ð
 	×Ñ˜4Ÿ<™<×+Ñ+Ô,à×#Ñ# H°dÐ#Ó;ˆØ�_‰_˜WŸ\™\¨"Ó-°eˆ_Õ<Ø×Ñ×-Ñ-¨g´{Ø.HôJ÷ =Ð<÷ %Ð$ú÷ =Ð<ús   ³(C(Â="C4Ã(C1Ã4C=c           
      óD  — | j                   }| j                  }t        j                  |t        j                  «      }|j                  t        j                  «      }t        j                  |d«      }t        j                  |d«      }|j                  t        j                  | j                  «      «      }	|j                  |	«      }
| j                  }|
|z  }
t        j                  ||t        j                  ||«      t        j                  ||
«      «      \  }}|j!                  |d¬«      5  |j#                  t        j$                  |«       ddd«       |j!                  |j'                  |«      d¬«      5  |rK| j(                  j*                  }|j,                  j/                  |||¬«      }t        j0                  ||«      }nm| j3                  ||j4                  «      }|j,                  j7                  |||j9                  |t        j:                  «      «      }t        j0                  ||«      }|j=                  |d¬«      5 \  }}|5  |j#                  t        j$                  |«       ddd«       |5  |s?|| j(                  _        |j?                  t        j@                  «      | j(                  _!        | jD                  }t        jF                  ||jH                  |d«       ||_%        ||_&        ||_'        |jQ                  ||«      }||_)        tT        r|jW                  |d	||jH                  |«       ddd«       ddd«       ddd«       |j'                  |«      S # 1 sw Y   �ŒxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒDxY w# 1 sw Y   ŒHxY w# 1 sw Y   ŒLxY w)
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!
        r   r–   Frø   NT)rÉ   éÿ   ú.allocated %zd bytes for set at %p: mask = %zd
),rl   rm   r   r¬   r¹   rÇ   r   rÈ   r   r:   r   r   rn   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_tr,  r_  r`  rî   r&   Úmemsetr#   r   r„   rˆ   r  rx   rn  ro  )rs   r8  rz  r    r!   r7  r»   rÒ   r½   r$   Úpayload_sizeÚ
entry_sizeÚ	allocsizeÚovfrè   r#   Úalloc_okÚdtorÚif_errorÚif_okr&   Únew_masks                         r'   r2  zSetInstance._allocate_payloadß  sÙ  € ð —-‘-ˆØ—-‘-ˆä×&Ñ& w´×0@Ñ0@ÓAˆà×'Ñ'¬¯
©
Ó3ˆÜ�{‰{˜6 1Ó%ˆÜ�k‰k˜& !Ó$ˆà×,Ñ,¬U×-=Ñ-=¸d¿h¹hÓ-GÓHˆØ×-Ñ-¨lÓ;ˆØ—_‘_ˆ
à˜
Ñ"ˆô !×5Ñ5°g¸xÜ68·k±kÀ&È*Ó6UÜ68·k±kÀ&È,Ó6WóY‰ˆ	�3ð �_‰_˜S¨ˆ_Õ/Ø�M‰Mœ'×+Ñ+¨RÔ0÷ 0ð �_‰_˜WŸ\™\¨"Ó-°dˆ_Õ;ÙØŸ)™)×+Ñ+�Ø—k‘k×AÑAÀ'ØBIØ=Fð Bó H�ô #Ÿ?™?¨7°CÓ8‘ð —~‘~ g¨w¯~©~Ó>�Ø!Ÿ+™+×HÑHØ˜Y¨¯©¸¼g×>OÑ>OÓ(PóR�ä"Ÿ?™?¨7°GÓ<�à—‘ Ø(-ð !ô /Ù2C°8¸UÚØ—M‘M¤'×"3Ñ"3°RÔ8÷ âÙ"Ø,3˜Ÿ	™	Ô)Ø+2×+DÑ+DÄUÇ^Á^Ó+T˜Ÿ	™	Ô(Ø"Ÿl™l�Gä—N‘N 7¨G¯K©K¸ÀDÔIØ#'�G”LØ#'�G”LØ%)�G”NØ&Ÿ{™{¨8°SÓ9�HØ#+�G”Lå#ØŸ™ wØ'XØ'0°'·+±+¸xôI÷ ÷	/÷ <ðH �|‰|˜BÓÐ÷O 0Ñ/ú÷& ‘Xúç�Uú÷	/ð /ú÷ <Ð;úsb   Ä.!M$Å9CNÉN
É!M1É.
N
É8CM>Ì;N
ÍNÍ$M.Í1M;Í6N
Í>NÎN
Î
N	ÎNÎNc                 óz   — | j                   j                  j                  | j                  | j                  |«       y)z9
        Free an allocated old payload at *ptr*.
        N)rl   ræ   Úmeminfo_varsize_freerm   rè   )rs   r#   s     r'   r{  zSetInstance._free_payload"  s(   € ð 	�‰×Ñ×.Ñ.¨t¯}©}¸d¿l¹lÈCÕPr)   c           
      ó°  — | j                   }| j                  }t        j                  |t        j                  «      }|j                  t        j                  «      }t        j                  |d«      }t        j                  |d«      }|j                  t        j                  | j                  «      «      }|j                  |«      }	| j                  }
|	|
z  }	|j                  }|j!                  ||«      }|j!                  t        j                  ||	«      |j#                  t        j                  ||
«      |«      «      }|j%                  |j'                  |«      d¬«      5  | j)                  ||j*                  «      }|j,                  j/                  |||j1                  |t        j2                  «      «      }t        j4                  ||«      }|j7                  |d¬«      5 \  }}|5  |j9                  t        j:                  |«       ddd«       |5  || j<                  _        | j@                  }|jB                  |_!        |jD                  |_"        ||_#        ||_        t        jH                  ||jJ                  |jJ                  ||
«       |jM                  «       5 }| jO                  |jP                  jR                  «       ddd«       tT        r|jW                  |d||jX                  |«       ddd«       ddd«       ddd«       |j'                  |«      S # 1 sw Y   �ŒxY w# 1 sw Y   ŒdxY w# 1 sw Y   ŒCxY w# 1 sw Y   ŒGxY w# 1 sw Y   ŒKxY w)z7
        Raw-copy the given payload into self.
        r   r–   Trø   FNr�  )-rl   rm   r   r¬   r¹   rÇ   r   rÈ   r   r:   r   r   rn   r,   rà   rx   r±   r´   r™   rœ   r…  r†  ræ   r‡  r   rˆ  r„  r,  r�   rº   râ   rè   r&   r   r„   rˆ   Ú
raw_memcpyrk   rÍ   rú   rf   rš   rn  ro  r#   )rs   Úsrc_payloadr    r!   r7  r»   rÒ   r½   r$   rŠ  r‹  rx   r8  rŒ  r�  rè   rŽ  r�  r‘  r&   rÌ   s                        r'   r-  zSetInstance._copy_payload(  s–  € ð —-‘-ˆØ—-‘-ˆä×&Ñ& w´×0@Ñ0@ÓAˆà×'Ñ'¬¯
©
Ó3ˆÜ�{‰{˜6 1Ó%ˆÜ�k‰k˜& !Ó$ˆà×,Ñ,¬U×-=Ñ-=¸d¿h¹hÓ-GÓHˆØ×-Ñ-¨lÓ;ˆØ—_‘_ˆ
à˜
Ñ"ˆà×ÑˆØ—;‘;˜s DÓ)ˆð
 —K‘K¤§¡¨F°LÓ AØ '§¡¬B¯K©K¸À
Ó,KØ,4ó!6ó7ˆ	ð �_‰_˜WŸ\™\¨"Ó-°dˆ_Õ;à—>‘> '¨7¯>©>Ó:ˆDØ—k‘k×DÑDØ˜ G§O¡O°D¼'×:KÑ:KÓ$LóNˆGä—‘ w°Ó8ˆHà—‘ °%�Ô8Ñ<M¸XÀuÚØ—M‘M¤'×"3Ñ"3°RÔ8÷ âØ(/�D—I‘IÔ%Ø"Ÿl™l�GØ#.×#3Ñ#3�G”LØ#.×#3Ñ#3�G”LØ%)�G”NØ#'�G”Lô
 ×&Ñ& w°·±Ø'2×':Ñ':¸HØ'1ô3ð
 %×-Ñ-Ô/°4Ø×)Ñ)¨$¯*©*¯.©.Ô9÷ 0õ $ØŸ™ wØ'XØ'0°'·+±+¸tôE÷) ÷ 9÷ <ðD �|‰|˜BÓÐ÷5 ‘Xú÷$ 0Ð/ú÷! �Uú÷ 9Ð8ú÷ <Ð;úsn   Å"BMÇ#M Ç)!LÈ

M ÈBL4Ê&L(	Ë-L4Ë2M Ë:MÌL%Ì M Ì(L1Ì-L4Ì4L=Ì9M Í M		ÍMÍMc                 óÊ  — t         j                  }|j                  t        j                  «      }t        j                  t        j                  «       |||g«      }d| j                  j                  › �}t        j                  |||¬«      }|j                  r¿d|_        t        j                  |j                  «       «      }t        ||| j                  |j                   d   «      }	|	j#                  «       5 }
|
j$                  }|j&                  j)                  || j                  j                  |j*                  «       ddd«       |j-                  «        |S # 1 sw Y   ŒxY w)z Define the dtor for set
        z
.dtor.set.)ÚnameÚlinkonce_odrr   N)r   rˆ  rÇ   r   Úsize_tr   ÚFunctionTypeÚVoidTypern   r`   Úget_or_insert_functionÚis_declarationÚlinkageÚ	IRBuilderr®   ri   rK   rÍ   rf   ræ   Údecrefrš   Úret_void)rs   r    r†  Ú	llvoidptrÚllsize_trA   ÚfnamerC   r!   r&   rÌ   rf   s               r'   r…  zSetInstance._imp_dtori  s  € ô ×%Ñ%ˆ	Ø×(Ñ(¬¯©Ó6ˆä�‰Ü�K‰K‹MØ˜ )Ð,ó
ˆð
 ˜TŸX™XŸ^™^Ð,Ð-ˆä×+Ñ+¨F°D¸uÔEˆà×Òà'ˆBŒJä—l‘l 2×#8Ñ#8Ó#:Ó;ˆGÜ! '¨7°D·H±H¸b¿g¹gÀa¹jÓIˆGØ×!Ñ!Ô# tØŸ
™
�Ø—‘×"Ñ" 7¨D¯H©H¯N©N¸E¿I¹IÔF÷ $ð ×ÑÔàˆ	÷ $Ð#ús   Ã7AEÅE"c                 óŽ   — | j                   j                  j                  | j                  | j                  j
                  |«       y)z Incref an element value
        N)rl   ræ   ra  rm   rn   r`   rô   s     r'   rú   zSetInstance.incref_value…  ó,   € ð 	�‰×Ñ× Ñ  §¡°·±·±ÀÕDr)   c                 óŽ   — | j                   j                  j                  | j                  | j                  j
                  |«       y)z Decref an element value
        N)rl   ræ   r¢  rm   rn   r`   rô   s     r'   r  zSetInstance.decref_valueŠ  r¨  r)   )T)TTrÔ   rv   ).rÕ   rÖ   r×   rt   rØ   r`   r&   r?   rè   rî   rÙ   rñ   rö   rþ   r  r
  r  r±   r  r  r  r   r$  r)  r:  r=  r?  rC  rK  rS  rV  Úclassmethodr[  r]  rb  r1  rû   r  rp  r'  r2  r{  r-  r…  rú   r  rÜ   r)   r'   rÞ   rÞ   t  sv  „ òDð ñó ðð ñ	<ó ð	<ð ñ%ó ð%ð ñ!ó ð!ð ñ ó ð ð ‡]�]ñ!ó ð!ò!òPóó*!ó8ó
ó3ó	3òò$òò!òò%òN$ò$$ò )ó0!ò4!ò>!ð0 òó ðð( òó ðð ñó ðð ñ$ó ð$ò<,?ò\:Aòx,ò6Jó.A òFQò? òBò8Eó
E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„ Zy)	ÚSetIterInstancec                 ó  — || _         || _        || _        |j                  |||«      | _        | j                   j
                  j                  || j                  «      }t        ||| j                  j                  |«      | _
        y rv   )rl   rm   rn   rá   Ú_iterræ   rç   rè   ri   Ú	containerro   )rs   r    r!   Ú	iter_typeÚiter_valr#   s         r'   rt   zSetIterInstance.__init__’  si   € ØˆŒØˆŒØˆŒØ×(Ñ(¨°)¸XÓFˆŒ
Ø�m‰m×Ñ×,Ñ,¨W°d·l±lÓCˆÜ# G¨W°d·h±h×6HÑ6HÈ#ÓNˆ�r)   c                 ó  — t        |||j                  |«      } | |||d «      }|j                  t        j                  d«      }t        j                  ||«      |j                  _        |j                  |j                  _	        |S rJ   )
rÞ   r¯  Úget_constantr   rÈ   r   r¬   r®  re   rè   )rY  r    r!   r°  rã   Úset_instrs   re   s           r'   Úfrom_setzSetIterInstance.from_setš  sn   € ä˜w¨°×1DÑ1DÀgÓNˆÙ�7˜G Y°Ó5ˆØ×$Ñ$¤U§Z¡Z°Ó3ˆÜ"×4Ñ4°W¸eÓDˆ�
‰
ÔØ%×-Ñ-ˆ�
‰
ÔØˆr)   c                 ó6   — | j                   j                  «       S rv   )r®  rê   ry   s    r'   r?   zSetIterInstance.value£  s   € à�z‰z×#Ñ#Ó%Ð%r)   c                 ó.   — | j                   j                  S rv   )r®  rè   ry   s    r'   rè   zSetIterInstance.meminfo§  s   € à�z‰z×!Ñ!Ð!r)   c                 ó`   — | j                   j                  | j                  j                  «      S rv   )rm   rœ   r®  re   ry   s    r'   re   zSetIterInstance.index«  s!   € à�}‰}×!Ñ! $§*¡*×"2Ñ"2Ó3Ð3r)   c                 ód   — | j                   j                  || j                  j                  «       y rv   )rm   r�   r®  re   r|   s     r'   re   zSetIterInstance.index¯  s    € à�‰×Ñ˜E 4§:¡:×#3Ñ#3Õ4r)   c                 óÆ  — | j                   }| j                  }t        j                  |j                  d«      }|j                  «        |j                  |¬«      5 }|j                  }|j                  «        |j                  |j                  «       | j                  j                  |j                   |«      | _         |j                  «        d d d «       y # 1 sw Y   y xY w)Nr–   rÅ   )re   ro   r   r:   r;   Úset_exhaustedrÍ   rf   Ú	set_validÚyield_rš   rm   r±   rg   )rs   Úresultre   r&   r½   rÌ   rf   s          r'   ÚiternextzSetIterInstance.iternext³  s�   € Ø—
‘
ˆØ—-‘-ˆÜ�k‰k˜%Ÿ*™* aÓ(ˆà×ÑÔà×Ñ EÐÔ*¨dà—J‘JˆEØ×ÑÔØ�M‰M˜%Ÿ)™)Ô$ØŸ™×*Ñ*¨4¯:©:°sÓ;ˆDŒJØ�M‰MŒO÷ +×*Ñ*ús   ÁA3CÃC N)rÕ   rÖ   r×   rt   rª  rµ  rØ   r?   rè   re   rÙ   r¿  rÜ   r)   r'   r¬  r¬  �  su   „ òOð ñó ðð ñ&ó ð&ð ñ"ó ð"ð ñ4ó ð4ð ‡\�\ñ5ó ð5ór)   r¬  c           	      óô  — t        |«      }t        j                  | |||«      }|dkD  r­t        j                  ||«      }t        j
                  ||«      }| j                  t        j                  |«      }t        j                  ||«      5 }	|j                  t        j                  ||d|	j                  «      «      }
|j                  |
«       ddd«       t        | |||j                  «      S # 1 sw Y   Œ!xY w)zD
    Build a set of the given type, containing the given items.
    r   N)ÚlenrÞ   r]  r   Ú
pack_arrayr¬   r³  r   rÈ   r¯   rœ   r‘   re   r±   r   r?   )r    r!   r"   ÚitemsrZ  ÚinstÚarrayÚ	array_ptrÚcountrÌ   r¨   s              r'   Ú	build_setrÈ  Æ  sÉ   € ô �‹Z€FÜ×Ñ ¨°(¸FÓC€Dà�‚zô ×"Ñ" 7¨EÓ2ˆÜ×-Ñ-¨g°uÓ=ˆ	à×$Ñ$¤U§Z¡Z°Ó8ˆÜ×Ñ˜w¨Ô.°$Ø—<‘<¤§¡¨G°YÀÀ4Ç:Á:Ó NÓOˆDØ�H‰H�TŒN÷ /ô ˜G W¨h¸¿
¹
ÓCÐC÷	 /Ð.ús   ÂAC.Ã.C7c                 óx   — |j                   }t        j                  | ||«      }t        | |||j                  «      S rv   )Úreturn_typerÞ   r]  r   r?   )r    r!   rB   rK   r"   rÄ  s         r'   Úset_empty_constructorrË  Ü  s4   € à�‰€HÜ×Ñ ¨°(Ó;€DÜ˜G W¨h¸¿
¹
ÓCÐCr)   c                 ó˜  — |j                   }|j                  \  }|\  }t        | |||«      }t        j	                  | |||«      }t        | |||«      5 }	|j                  |	j                  «       | j                  j                  ||j                  |	j                  «       d d d «       t        | |||j                  «      S # 1 sw Y   Œ!xY wrv   )rÊ  rK   r   rÞ   r]  r   r±   r?   ræ   r¢  r`   r   )
r    r!   rB   rK   r"   Ú
items_typerÃ  ÚnrÄ  rÌ   s
             r'   Úset_constructorrÏ  â  s¨   € à�‰€HØ—(‘(�K€JØ�F€Eô 	�˜' :¨uÓ5€AÜ×Ñ ¨°(¸AÓ>€DÜ	�'˜7 J°Ô	6¸$Ø�‰�—‘ÔØ�‰×Ñ˜7 H§N¡N°D·J±JÔ?÷ 
7ô ˜G W¨h¸¿
¹
ÓCÐC÷	 
7Ð	6ús   ÁAC Ã C	c                 ó^   — t        | ||j                  d   |d   «      }|j                  «       S rJ   )rÞ   rK   rñ   ©r    r!   rB   rK   rÄ  s        r'   Úset_lenrÒ  ú  s*   € ä�w ¨¯©°!©°d¸1±gÓ>€DØ�=‰=‹?Ðr)   c                 óf   — t        | ||j                  d   |d   «      }|j                  |d   «      S ©Nr   r–   )rÞ   rK   r  rÑ  s        r'   Úin_setrÕ  ÿ  s1   € ä�w ¨¯©°!©°d¸1±gÓ>€DØ�=‰=˜˜a™Ó!Ð!r)   Úgetiterc                 ó�   — t         j                  | ||j                  |d   «      }t        | ||j                  |j                  «      S rJ   )r¬  rµ  rÊ  r   r?   rÑ  s        r'   Úgetiter_setrØ    s9   € ä×#Ñ# G¨W°c·o±oÀtÈAÁwÓO€DÜ˜W g¨s¯©ÀÇ
Á
ÓKÐKr)   r¿  c                 ób   — t        | ||j                  d   |d   «      }|j                  |«       y rJ   )r¬  rK   r¿  )r    r!   rB   rK   r¾  rÄ  s         r'   Úiternext_listiterrÚ  	  s,   € ô ˜7 G¨S¯X©X°a©[¸$¸q¹'ÓB€DØ‡M�M�&Õr)   zset.addc                 óŠ   — t        | ||j                  d   |d   «      }|d   }|j                  |«       | j                  «       S rÔ  )rÞ   rK   r±   Úget_dummy_value©r    r!   rB   rK   rÄ  r¨   s         r'   Úset_addrÞ    sA   € ä�w ¨¯©°!©°d¸1±gÓ>€DØ�‰7€DØ‡H�HˆT„Nà×"Ñ"Ó$Ð$r)   c                 ó<   — t        j                  ||«      }d„ }||fS )Nc                 óŠ   — t        | ||j                  d   |d   «      }|d   }|j                  |«       | j                  «       S rÔ  )rÞ   rK   r   rÜ  rÝ  s         r'   Úset_discardz!_set_discard.<locals>.set_discard"  sB   € Ü˜7 G¨S¯X©X°a©[¸$¸q¹'ÓBˆØ�A‰wˆØ�‰�TÔà×&Ñ&Ó(Ð(r)   ©r   Únone)r@   ra   r¨   rB   rá  s        r'   Ú_set_discardrä    s$   € ä
�*‰*�Q˜Ó
€Cò)ð �ÐÐr)   r   c                 ó   — d„ S )Nc                 ó   — t        | |«      S rv   )rä  ©ra   r¨   s     r'   Ú<lambda>z ol_set_discard.<locals>.<lambda>.  s   € œ<¨¨4Ô0r)   rÜ   rç  s     r'   Úol_set_discardré  ,  s   € á0Ð0r)   c                 ó2   — |j                  |«      }d„ }||fS )Nc                 ób  — t        | ||j                  d   |d   «      }|j                  j                  }|j	                  t        j                  ||«      d¬«      5  | j                  j                  |t        d«       d d d «       |j                  «       S # 1 sw Y   |j                  «       S xY w)Nr   Frø   )zset.pop(): empty set)rÞ   rK   r&   r   r™   r   r„  r.  r/  ÚKeyErrorr$  )r    r!   rB   rK   rÄ  r   s         r'   Úset_popz_set_pop.<locals>.set_pop5  s�   € Ü˜7 G¨S¯X©X°a©[¸$¸q¹'ÓBˆØ�|‰|× Ñ ˆØ�_‰_œWŸ_™_¨W°dÓ;ÀEˆ_ÕJØ×Ñ×-Ñ-¨g´xØ,EôG÷ Kð �x‰x‹zÐ÷	 Kð �x‰x‹zÐús   Á"BÂB.©r`   )r@   ra   rB   rí  s       r'   Ú_set_poprï  1  s    € à
�'‰'�!‹*€Còð �ˆ<Ðr)   r$  c                 ó   — d„ S )Nc                 ó   — t        | «      S rv   )rï  ©ra   s    r'   rè  zol_set_pop.<locals>.<lambda>C  s   € ”X˜a”[r)   rÜ   rò  s    r'   Ú
ol_set_popró  A  s   € á Ð r)   c                 ó<   — t        j                  ||«      }d„ }||fS )Nc                 óX  — t        | ||j                  d   |d   «      }|d   }|j                  |«      }|j                  |j	                  |«      d¬«      5  | j
                  j                  |t        d«       d d d «       | j                  «       S # 1 sw Y   | j                  «       S xY w)Nr   r–   Frø   )zset.remove(): key not in set)	rÞ   rK   r   r™   r  r.  r/  rì  rÜ  )r    r!   rB   rK   rÄ  r¨   rª   s          r'   Ú
set_removez_set_remove.<locals>.set_removeJ  s™   € Ü˜7 G¨S¯X©X°a©[¸$¸q¹'ÓBˆØ�A‰wˆØ—‘˜TÓ"ˆØ�_‰_˜WŸ\™\¨%Ó0¸ˆ_Õ?Ø×Ñ×-Ñ-¨g´xØ,MôO÷ @ð ×&Ñ&Ó(Ð(÷	 @ð ×&Ñ&Ó(Ð(ús   Á"BÂB)râ  )r@   ra   r¨   rB   rö  s        r'   Ú_set_remover÷  F  s#   € ä
�*‰*�Q˜Ó
€Cò)ð �
ˆ?Ðr)   Úremovec                 ó(   — | j                   |k(  rd„ S y )Nc                 ó   — t        | |«      S rv   )r÷  rç  s     r'   rè  zol_set_remove.<locals>.<lambda>Z  s   € œ{¨1¨dÔ3r)   rî  rç  s     r'   Úol_set_removerû  W  s   € à‡w�w�$‚Ù3Ð3ð r)   c                 ó:   — t        j                  |«      }d„ }||fS )Nc                 ó~   — t        | ||j                  d   |d   «      }|j                  «        | j                  «       S rJ   )rÞ   rK   r)  rÜ  rÑ  s        r'   Ú	set_clearz_set_clear.<locals>.set_clearc  s6   € Ü˜7 G¨S¯X©X°a©[¸$¸q¹'ÓBˆØ�
‰
ŒØ×&Ñ&Ó(Ð(r)   râ  )r@   ra   rB   rþ  s       r'   Ú
_set_clearrÿ  _  s    € ä
�*‰*�Q‹-€Cò)ð
 �	ˆ>Ðr)   r)  c                 ó   — d„ S )Nc                 ó   — t        | «      S rv   )rÿ  rò  s    r'   rè  zol_set_clear.<locals>.<lambda>m  s   € ”Z ”]r)   rÜ   rò  s    r'   Úol_set_clearr  k  s   € á"Ð"r)   c                 ó    —  ||«      }d„ }||fS )Nc                 ó¢   — t        | ||j                  d   |d   «      }|j                  «       }t        | ||j                  |j
                  «      S rJ   )rÞ   rK   r:  r   rÊ  r?   ©r    r!   rB   rK   rÄ  r3  s         r'   Úset_copyz_set_copy.<locals>.set_copyt  sB   € Ü˜7 G¨S¯X©X°a©[¸$¸q¹'ÓBˆØ—	‘	“ˆÜ ¨°#·/±/À5Ç;Á;ÓOÐOr)   rÜ   )r@   ra   rB   r  s       r'   Ú	_set_copyr  p  s   € á
ˆA‹$€CòPð
 �ˆ=Ðr)   r:  c                 ó   — d„ S )Nc                 ó   — t        | «      S rv   )r  rò  s    r'   rè  zol_set_copy.<locals>.<lambda>~  s   € ”Y˜q”\r)   rÜ   rò  s    r'   Úol_set_copyr
  |  s   € á!Ð!r)   c                 ó¼   — t        | ||j                  d   |d   «      }t        | ||j                  d   |d   «      }|j                  |«       | j                  «       S rÔ  )rÞ   rK   r?  rÜ  r  s         r'   Úset_difference_updater  �  sU   € Ü�w ¨¯©°!©°d¸1±gÓ>€DÜ˜ ¨#¯(©(°1©+°t¸A±wÓ?€Eà‡O�O�EÔà×"Ñ"Ó$Ð$r)   c                 ó>   — t        j                  ||«      }|t        fS rv   )r   rã  r  ©r@   ÚaÚbrB   s       r'   Ú_set_difference_updater  Š  s   € ä
�*‰*�Q˜Ó
€CØÔ%Ð%Ð%r)   Údifference_updatec                 ó    — t        | |«       d„ S )Nc                 ó   — t        | |«      S rv   )r  ©r  r  s     r'   rè  z,set_difference_update_impl.<locals>.<lambda>“  s   € Ô.¨q°!Ô4r)   ©rb   r  s     r'   Úset_difference_update_implr  �  s   € ä�!�QÔÙ4Ð4r)   c                 ó¼   — t        | ||j                  d   |d   «      }t        | ||j                  d   |d   «      }|j                  |«       | j                  «       S rÔ  )rÞ   rK   r=  rÜ  r  s         r'   Úset_intersection_updater  –  sU   € Ü�w ¨¯©°!©°d¸1±gÓ>€DÜ˜ ¨#¯(©(°1©+°t¸A±wÓ?€EØ‡N�N�5ÔØ×"Ñ"Ó$Ð$r)   c                 ó>   — t        j                  ||«      }|t        fS rv   )r   rã  r  r  s       r'   Ú_set_intersection_updater  �  s   € ä
�*‰*�Q˜Ó
€CØÔ'Ð'Ð'r)   Úintersection_updatec                 ó    — t        | |«       d„ S )Nc                 ó   — t        | |«      S rv   )r  r  s     r'   rè  z.set_intersection_update_impl.<locals>.<lambda>¦  s   € Ô0°°AÔ6r)   r  r  s     r'   Úset_intersection_update_implr  £  s   € ä�!�QÔÙ6Ð6r)   c                 ó¼   — t        | ||j                  d   |d   «      }t        | ||j                  d   |d   «      }|j                  |«       | j                  «       S rÔ  )rÞ   rK   rC  rÜ  r  s         r'   Úset_symmetric_difference_updater!  ©  sW   € Ü�w ¨¯©°!©°d¸1±gÓ>€DÜ˜ ¨#¯(©(°1©+°t¸A±wÓ?€EØ×Ñ˜eÔ$Ø×"Ñ"Ó$Ð$r)   c                 ó>   — t        j                  ||«      }|t        fS rv   )r   rã  r!  r  s       r'   Ú _set_symmetric_difference_updater#  °  s   € ä
�*‰*�Q˜Ó
€CØÔ/Ð/Ð/r)   Úsymmetric_difference_updatec                 ó    — t        | |«       d„ S )Nc                 ó   — t        | |«      S rv   )r#  r  s     r'   rè  z6set_symmetric_difference_update_impl.<locals>.<lambda>¹  s   € Ô8¸¸AÔ>r)   r  r  s     r'   Ú$set_symmetric_difference_update_implr'  ¶  s   € ä�!�QÔÙ>Ð>r)   z
set.updatec                 ó�  — t        | ||j                  d   |d   «      }|j                  d   }|d   }t        | |||«      }|�7|j                  |j                  j
                  |«      }|j                  |«       t        | |||«      5 }	| j                  ||	j                  |j                  |j                  «      }
|j                  |
«       | j                  j                  ||j                  |	j                  «       d d d «       |�%|j                  |j                  j
                  «       | j                  «       S # 1 sw Y   Œ@xY wrÔ  )rÞ   rK   r   r±   r&   r   rû   r   Úcastr?   r`   ræ   r¢  r  rÜ  )r    r!   rB   rK   rÄ  rÍ  rÃ  rÎ  rt  rÌ   Úcasteds              r'   Ú
set_updater+  ¼  s  € ä�w ¨¯©°!©°d¸1±gÓ>€DØ—‘˜!‘€JØ�‰G€Eô 	�˜' :¨uÓ5€AØ€}Ø—;‘;˜tŸ|™|×0Ñ0°!Ó4ˆØ�‰�HÔä	�'˜7 J°Ô	6¸$ð —‘˜g t§z¡z°:×3CÑ3CÀTÇZÁZÓPˆØ�‰�Ôð
 	�‰×Ñ˜7 J×$4Ñ$4°d·j±jÔA÷ 
7ð 	€}à�‰�d—l‘l×'Ñ'Ô(à×"Ñ"Ó$Ð$÷ 
7Ð	6ús   ÂA5D<Ä<Ec                 óJ   ‡‡— t         ˆfd„«       Št        | «      ˆfd„«       }y )Nc                 ó(   •—  |||«      }ˆfd„}||fS )Nc                 ó’   •— |j                   |j                  d   k(  sJ ‚ ‰| |||«       t        | ||j                  d   |d   «      S rJ   )rÊ  rK   r   )r    r!   rB   rK   rL   s       €r'   Úcodegenz>gen_operator_impl.<locals>._set_operator_intr.<locals>.codegenÞ  sH   ø€ Ø—?‘? c§h¡h¨q¡kÒ1Ð1Ð1Ù�˜' 3¨Ô-Ü$ W¨g°s·x±xÀ±{ÀDÈÁGÓLÐLr)   rÜ   )r@   r  r  rB   r/  rL   s        €r'   Ú_set_operator_intrz-gen_operator_impl.<locals>._set_operator_intrÛ  s    ø€ á��1‹gˆô	Mð �Gˆ|Ðr)   c                 ó&   •— t        | |«       ˆfd„S )Nc                 ó   •—  ‰| |«      S rv   rÜ   ©r  r  r0  s     €r'   rè  z=gen_operator_impl.<locals>._ol_set_operator.<locals>.<lambda>ç  s   ø€ Ñ.¨q°!Ô4r)   r  r3  s     €r'   Ú_ol_set_operatorz+gen_operator_impl.<locals>._ol_set_operatorä  s   ø€ ä�a˜ÔÛ4Ð4r)   )r   r   )ÚoprL   r4  r0  s    ` @r'   Úgen_operator_implr6  Ú  s-   ù€ Üóó ðô ˆbƒ\ó5ó ñ5r)   r?  c                 ó$   — t        | |«       d„ }|S )Nc                 óH   — | j                  «       }|j                  |«       |S rv   )r:  r  ©r  r  ra   s      r'   Údifference_implz,impl_set_difference.<locals>.difference_implú  s    € Ø�F‰F‹HˆØ	×Ñ˜AÔØˆr)   r  )r  r  r:  s      r'   Úimpl_set_differencer;  õ  s   € ô �!�QÔòð
 Ðr)   Úintersectionc                 ó$   — t        | |«       d„ }|S )Nc                 ó¼   — t        | «      t        |«      k  r#| j                  «       }|j                  |«       |S |j                  «       }|j                  | «       |S rv   )rÁ  r:  r  r9  s      r'   Úintersection_implz+set_intersection.<locals>.intersection_impl  sM   € Üˆq‹6”C˜“FŠ?Ø—‘“ˆAØ×!Ñ! !Ô$ØˆHà—‘“ˆAØ×!Ñ! !Ô$ØˆHr)   r  )r  r  r?  s      r'   Úset_intersectionr@    s   € ô �!�QÔòð Ðr)   rC  c                 ó$   — t        | |«       d„ }|S )Nc                 ó¼   — t        | «      t        |«      kD  r#| j                  «       }|j                  |«       |S |j                  «       }|j                  | «       |S rv   )rÁ  r:  r$  r9  s      r'   Úsymmetric_difference_implz;set_symmetric_difference.<locals>.symmetric_difference_impl  sM   € Üˆq‹6”C˜“FŠ?Ø—‘“ˆAØ×)Ñ)¨!Ô,ØˆHà—‘“ˆAØ×)Ñ)¨!Ô,ØˆHr)   r  )r  r  rC  s      r'   Úset_symmetric_differencerD    s   € ô �!�QÔòð %Ð$r)   Úunionc                 ó$   — t        | |«       d„ }|S )Nc                 ó¼   — t        | «      t        |«      kD  r#| j                  «       }|j                  |«       |S |j                  «       }|j                  | «       |S rv   )rÁ  r:  Úupdater9  s      r'   Ú
union_implzset_union.<locals>.union_impl(  sG   € Üˆq‹6”C˜“FŠ?Ø—‘“ˆAØ�H‰H�QŒKØˆHà—‘“ˆAØ�H‰H�QŒKØˆHr)   r  )r  r  rI  s      r'   Ú	set_unionrJ  #  s   € ô �!�QÔòð Ðr)   c                 ó<   — t        j                  ||«      }d„ }||fS )Nc                 óœ   — t        | ||j                  d   |d   «      }t        | ||j                  d   |d   «      }|j                  |«      S rÔ  )rÞ   rK   rS  r  s         r'   r/  z _set_isdisjoint.<locals>.codegen;  sI   € Ü˜7 G¨S¯X©X°a©[¸$¸q¹'ÓBˆÜ˜G W¨c¯h©h°q©k¸4À¹7ÓCˆà�‰˜uÓ%Ð%r)   ©r   Úboolean©r@   r  r  rB   r/  s        r'   Ú_set_isdisjointrP  7  s#   € ä
�-‰-˜˜1Ó
€Cò&ð �ˆ<Ðr)   rS  c                 ó    — t        | |«       d„ S )Nc                 ó   — t        | |«      S rv   )rP  r  s     r'   rè  z set_isdisjoint.<locals>.<lambda>H  s   € œ¨¨1Ô-r)   r  r  s     r'   Úset_isdisjointrS  D  s   € ä�!�QÔá-Ð-r)   c                 ó<   — t        j                  ||«      }d„ }||fS )Nc                 óœ   — t        | ||j                  d   |d   «      }t        | ||j                  d   |d   «      }|j                  |«      S rÔ  ©rÞ   rK   rK  r  s         r'   r/  z_set_issubset.<locals>.codegenO  sI   € Ü˜7 G¨S¯X©X°a©[¸$¸q¹'ÓBˆÜ˜G W¨c¯h©h°q©k¸4À¹7ÓCˆà�}‰}˜UÓ#Ð#r)   rM  rO  s        r'   Ú_set_issubsetrW  K  s#   € ä
�-‰-˜˜1Ó
€Cò$ð �ˆ<Ðr)   rK  c                 ó    — t        | |«       d„ S )Nc                 ó   — t        | |«      S rv   )rW  r  s     r'   rè  zset_issubset.<locals>.<lambda>\  s   € œ a¨Ô+r)   r  r  s     r'   Úset_issubsetrZ  W  s   € ô �!�QÔá+Ð+r)   Ú
issupersetc                 ó$   — t        | |«       d„ }|S )Nc                 ó$   — |j                  | «      S rv   )rK  r  s     r'   Úsuperset_implz%set_issuperset.<locals>.superset_impld  s   € Ø�z‰z˜!‹}Ðr)   r  )r  r  r^  s      r'   Úset_issupersetr_  _  s   € ô �!�QÔòð Ðr)   c                 ó<   — t        j                  ||«      }d„ }||fS )Nc                 óœ   — t        | ||j                  d   |d   «      }t        | ||j                  d   |d   «      }|j                  |«      S rÔ  )rÞ   rK   rV  r  s         r'   r/  z_set_eq.<locals>.codegenm  sI   € Ü˜7 G¨S¯X©X°a©[¸$¸q¹'ÓBˆÜ˜G W¨c¯h©h°q©k¸4À¹7ÓCˆà�{‰{˜5Ó!Ð!r)   rM  rO  s        r'   Ú_set_eqrb  i  s#   € ä
�-‰-˜˜1Ó
€Cò"ð �ˆ<Ðr)   c                 ó    — t        | |«       d„ S )Nc                 ó   — t        | |«      S rv   )rb  r  s     r'   rè  zset_eq.<locals>.<lambda>y  ó
   € œ  1œr)   r  r  s     r'   Úset_eqrf  u  ó   € ä�!�QÔá%Ð%r)   c                 ó$   — t        | |«       d„ }|S )Nc                 ó   — | |k(   S rv   rÜ   r  s     r'   Úne_implzset_ne.<locals>.ne_impl  s   € Ø˜‘6ˆzÐr)   r  )r  r  rj  s      r'   Úset_nerk  {  s   € ä�!�QÔòð €Nr)   c                 ó<   — t        j                  ||«      }d„ }||fS )Nc                 ó    — t        | ||j                  d   |d   «      }t        | ||j                  d   |d   «      }|j                  |d¬«      S )Nr   r–   T)rF  rV  r  s         r'   r/  z_set_lt.<locals>.codegenˆ  sM   € Ü˜7 G¨S¯X©X°a©[¸$¸q¹'ÓBˆÜ˜G W¨c¯h©h°q©k¸4À¹7ÓCˆà�}‰}˜U¨4ˆ}Ó0Ð0r)   rM  rO  s        r'   Ú_set_ltrn  „  s#   € ä
�-‰-˜˜1Ó
€Cò1ð �ˆ<Ðr)   c                 ó    — t        | |«       d„ S )Nc                 ó   — t        | |«      S rv   )rn  r  s     r'   rè  zset_lt.<locals>.<lambda>”  re  r)   r  r  s     r'   Úset_ltrq  �  rg  r)   c                 ó$   — t        | |«       d„ }|S )Nc                 ó   — || k  S rv   rÜ   r  s     r'   Úgt_implzset_gt.<locals>.gt_implš  s   € Ø�1‰uˆr)   r  )r  r  rt  s      r'   Úset_gtru  –  s   € ä�!�QÔòð €Nr)   c                 óH  — t        | ||j                  d   |d   «      }t        | ||j                  d   |d   «      }|j                  |j                  t        j
                  «      }|j                  |j                  t        j
                  «      }|j                  d||«      S )Nr   r–   rO   )rÞ   rK   Úptrtointrè   r   r»   Úicmp_signed)r    r!   rB   rK   r  r  ÚmaÚmbs           r'   Úset_isr{  Ÿ  sƒ   € ä�G˜W c§h¡h¨q¡k°4¸±7Ó;€AÜ�G˜W c§h¡h¨q¡k°4¸±7Ó;€AØ	×	Ñ	˜!Ÿ)™)¤W§^¡^Ó	4€BØ	×	Ñ	˜!Ÿ)™)¤W§^¡^Ó	4€BØ×Ñ˜t R¨Ó,Ð,r)   c                 ó<   — |j                   |j                   k(  sJ ‚|S rv   rî  )r    r!   ÚfromtyÚtotyrõ   s        r'   Ú
set_to_setr  «  s   € ð �<‰<˜4Ÿ:™:Ò%Ð%Ð%Ø€Jr)   )}Ú__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.   rP   rV   r<   r&  r°   rn  rG   rM   rS   rY   r9   rb   Ú
namedtuplerc   Úobjectri   rÞ   r¬  rÈ  ÚsetrË  ÚIterableTyperÏ  rÁ  r_   rÒ  r  ÚAnyrÕ  rØ  ÚSetIterÚBORROWEDrÚ  rÞ  rä  ré  rï  ró  r÷  rû  rÿ  r  r  r
  r  r  r  r  r  r  r!  r#  r'  r+  r6  ÚiandÚiorÚisubÚixorÚop_Úop_implr  r;  r­   r@  ÚxorrD  Úor_rJ  rP  rS  rW  ÚlerZ  Úger_  rb  r    rf  Únerk  rn  Últrq  Úgtru  Úis_r{  r  rÜ   r)   r'   Ú<module>r      se  ðñó
 Û Û Û Ý %å ß -Ñ -÷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ñ
 ˆs�E×&Ñ&Ó'ñDó (ðDñ. ˆs�E—I‘IÓñó ðñ ˆx× Ñ  %§)¡)¨U¯Y©YÓ7ñ"ó 8ð"ñ ˆy˜%Ÿ)™)Ó$ñLó %ðLñ ˆz˜5Ÿ=™=Ó)Ùˆw×ÑÓ ñó !ó *ðñ ˆy˜%Ÿ)™) U§Y¡YÓ/ñ%ó 0ð%ð ñ
ó ð
ñ �—‘˜IÓ&ñ1ó 'ð1ð ñó ðñ �—‘˜EÓ"ñ!ó #ð!ð ñó ðñ  �—‘˜HÓ%ñ4ó &ð4ð ñó ðñ �—‘˜GÓ$ñ#ó %ð#ð ñó ðñ �—‘˜FÓ#ñ"ó $ð"ò%ð ñ&ó ð&ñ
 �—‘Ð/Ó0ñ5ó 1ð5ò
%ð ñ(ó ð(ñ
 �—‘Ð1Ó2ñ7ó 3ð7ò
%ð ñ0ó ð0ñ
 �—‘Ð9Ó:ñ?ó ;ð?ñ
 ˆ|˜UŸY™Y¨×(:Ñ(:Ó;ñ%ó <ð%ò:5ð" ‡]�]Ð+Ð,Ø‡\�\�:ÐØ‡]�]Ð)Ð*Ø‡]�]Ð3Ð4ó	�L€Cˆñ �c˜7Õ#ðñ 
ˆ(�,‰,ÓÙ�—‘˜LÓ)ñó *ó ðñ 
ˆ(�-‰-ÓÙ�—‘˜NÓ+ñó ,ó ðñ 
ˆ(�,‰,ÓÙ�—‘Ð2Ó3ñ%ó 4ó ð%ñ 
ˆ(�,‰,ÓÙ�—‘˜GÓ$ñó %ó ðð$ ñ	ó ð	ñ �—‘˜LÓ)ñ.ó *ð.ð ñ	ó ð	ñ 
ˆ(�+‰+ÓÙ�—‘˜JÓ'ñ,ó (ó ð,ñ 
ˆ(�+‰+ÓÙ�—‘˜LÓ)ñó *ó ðð ñ	ó ð	ñ 
ˆ(�+‰+Óñ&ó ð&ñ
 
ˆ(�+‰+Óñó ðð ñ	ó ð	ñ 
ˆ(�+‰+Óñ&ó ð&ñ
 
ˆ(�+‰+Óñó ðñ ˆx�|‰|˜UŸY™Y¨¯	©	Ó2ñ-ó 3ð-ñ ˆE�I‰I�u—y‘yÓ!ñó "ñr)   