§
    ŠŠtjüš  ã                   óÊ  — d Z ddlZddlZddlmZ ddlmZmZ ddlm	Z	 ddl
mZmZ ddlmZmZ dd	lmZmZ dd
lmZ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! ddl"m#Z#m$Z$ ddl%m&Z& ddl'm(Z(m)Z) erddl*m+Z+ ddl,m-Z- ddl.m/Z/ de$de0fd„Z1de$de0fd„Z2de$de$fd„Z3 G d„ de$¦  «        Z4 G d„ de$¦  «        Z5 G d„ de4¦  «        Z6 G d„ d e4¦  «        Z7 G d!„ d"e4¦  «        Z8dS )#a‰  
Set-related variable tracking classes for PyTorch Dynamo.

This module implements variable tracking for different types of set-like objects:
- Regular Python sets (set)
- Frozen sets (frozenset)
- Ordered sets (torch.utils._ordered_set.OrderedSet)
- Dictionary key sets (dict_keys views used as sets)

These classes are responsible for tracking set operations during graph compilation,
maintaining proper guards for set mutations and element existence checks.

The implementation uses a special HashableTracker wrapper to handle set elements
while preserving proper aliasing semantics. Sets are modeled internally as
dictionaries with None values.
é    N)ÚIterable)ÚAnyÚTYPE_CHECKING©Ú
OrderedSeté   )Ú	polyfillsÚ	variables)Úcreate_call_functionÚcreate_instruction)Úraise_observed_exceptionÚraise_type_error)ÚGuardBuilderÚinstall_guard)Ú
AttrSourceÚis_constant_sourceÚis_from_local_source)Ú_item_debug_reprÚcmp_name_to_op_mappingÚistypeÚraise_args_mismatchÚset_methodsÚtracked_reprÚunpack_iterableé   )ÚValueMutationNewÚVariableTracker)ÚConstantVariable)ÚHashableTrackerÚis_hashable)Ú	PyCodegen)ÚInstructionTranslatorBase)ÚBuiltinVariableÚobjÚreturnc                 ó^   — t          |                      ¦   «         t          t          f¦  «        S ©N)Ú
issubclassÚpython_typeÚsetÚ	frozenset©r$   s    úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_dynamo/variables/sets.pyÚpyanyset_checkr.   6   s!   € Ý�c—o’oÑ'Ô'­#­yÐ)9Ñ:Ô:Ð:ó    c                 óP   — t          |                      ¦   «         t          ¦  «        S r'   )r(   r)   r*   r,   s    r-   Úpyset_checkr1   :   s   € å�c—o’oÑ'Ô'­Ñ-Ô-Ð-r/   c                 óà   — t          | t          j        ¦  «        r| j        n| }|€t	          d¦  «        ‚|                     |j                             ¦   «         t          ¦   «         d¬¦  «        S )a^  Mirrors CPython's internal `set_copy` (Objects/setobject.c).

    Always allocates a fresh set/frozenset with a shallow-copied items dict.
    Distinct from the user-visible `.copy()` method, which preserves identity
    for exact frozenset (`frozenset_copy`).  Use this for binary-op scratch
    storage so mutations don't bleed into the input.
    Nz_base_vt must not be None)ÚitemsÚmutation_typeÚsource)	Ú
isinstancer
   ÚUserDefinedSetVariableÚ_base_vtÚAssertionErrorÚcloner3   Úcopyr   )r$   Úbases     r-   Úset_copyr=   ?   sl   € õ & c­9Ô+KÑLÔLÐUˆ3Œ<ˆ<ÐRU€DØ€|ÝÐ8Ñ9Ô9Ð9Ø�:Š:ØŒj�oŠoÑÔÝ&Ñ(Ô(Øð ñ ô ð r/   c            
       ó\  ‡ — e Zd ZdZeZej        Zej	        Z
deeez           deddfˆ fd„Zdefd„Zeded         fd	„¦   «         Zedefd
„¦   «         Zdefd„Zdefd„Zdefd„Zd;d„Zd<d„Zdedefd„Zdefd„Zdedz  dedefd„Zddde e         fd„Z!dedefˆ fd„Z"defd„Z#ddde$e%ef         fd„Z&dddefˆ fd „Z'dddede(fd!„Z)ddd"e e         ddfd#„Z*ddd$ed"e e         de+eef         def
d%„Z,ddd&edefd'„Z-ddded"e e         de+eef         def
ˆ fd(„Z.d=d*„Z/ddd+edefd,„Z0dddefd-„Z1	 d>ddded/edefd0„Z2dddedefd1„Z3	 d>ddded/edefd2„Z4dddedefd3„Z5	 d>ddded/edefd4„Z6dddedefd5„Z7	 d>ddded/edefd6„Z8dddedefd7„Z9dddefd8„Z:ddded9edefd:„Z;ˆ xZ<S )?ÚSetVariablez2Represents a Python set during symbolic execution.r3   Úkwargsr%   Nc                 óŒ  •— d|v r|                      d¦  «         d|v r|                      d¦  «          t          ¦   «         j        di |¤Ž g }|D ]a}t          |t          ¦  «        r|                     |¦  «         Œ-|                     t	          |                     ¦   «         ¦  «        ¦  «         Œbt                               |t           
                    ¦   «         ¦  «        | _        | j        rt          | j        ¦  «         nd| _        t                               |t           
                    ¦   «         ¦  «        | _        d S )NÚoriginal_itemsÚshould_reconstruct_allT© )ÚpopÚsuperÚ__init__r6   r   ÚappendÚrealizeÚdictÚfromkeysr?   Ú_default_valuer3   r5   r   rC   rB   )Úselfr3   r@   Úhashable_itemsÚitemÚ	__class__s        €r-   rG   zSetVariable.__init__Z   s@  ø€ ð ˜vÐ%Ð%Ø�JŠJÐ'Ñ(Ô(Ð(Ø# vÐ-Ð-Ø�JŠJÐ/Ñ0Ô0Ð0à�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ð
 ˆØð 	Gð 	GˆDÝ˜$¥Ñ0Ô0ð Gà×%Ò% dÑ+Ô+Ð+Ð+ð ×%Ò%¥o°d·l²l±n´nÑ&EÔ&EÑFÔFÐFÐFõ —]’] >µ;×3MÒ3MÑ3OÔ3OÑPÔPˆŒ
à59´[ÐJÕ$ T¤[Ñ1Ô1Ð1Ð1Àdð 	Ô#õ #ŸmšmØ�K×6Ò6Ñ8Ô8ñ
ô 
ˆÔÐÐr/   c                 óæ   — | j         sdS g }| j         D ]D}t          |t          ¦  «        r|j        n|}t	          |¦  «        }|                     |¦  «         ŒEdd                     |¦  «        z   dz   S )Núset()Ú{ú, Ú})r3   r6   r   Úvtr   rH   Újoin)rM   r3   ÚvrV   Úval_strs        r-   Ú
debug_reprzSetVariable.debug_repr}   s   € ØŒzð 	0Ø�7à!ˆEØ”Zð &ð &�Ý'¨­?Ñ;Ô;ÐB�Q”T�TÀ�Ý*¨2Ñ.Ô.�Ø—’˜WÑ%Ô%Ð%Ð%Ø˜Ÿš 5Ñ)Ô)Ñ)¨CÑ/Ð/r/   r   c                 óN   — t          | j                             ¦   «         ¦  «        S r'   ©r*   r3   Úkeys©rM   s    r-   Ú	set_itemszSetVariable.set_itemsˆ   ó   € å�4”:—?’?Ñ$Ô$Ñ%Ô%Ð%r/   c                  ó*   — t          j        d ¦  «        S r'   )r   ÚcreaterD   r/   r-   rL   zSetVariable._default_valueŒ   s   € õ  Ô& tÑ,Ô,Ð,r/   c                 ó$   — d„ | j         D ¦   «         S )Nc                 ó@   — h | ]}|j                              ¦   «         ’ŒS rD   )rV   Úas_proxy©Ú.0Úks     r-   ú	<setcomp>z'SetVariable.as_proxy.<locals>.<setcomp>’   s"   € Ð8Ð8Ð8 A�”—’‘”Ð8Ð8Ð8r/   ©r_   r^   s    r-   re   zSetVariable.as_proxy‘   s   € Ø8Ð8¨¬Ð8Ñ8Ô8Ð8r/   c                 ó   — t           S r'   )r*   r^   s    r-   r)   zSetVariable.python_type”   s   € Ýˆ
r/   c                 ó$   — d„ | j         D ¦   «         S )Nc                 ó@   — h | ]}|j                              ¦   «         ’ŒS rD   ©rV   Úas_python_constantrf   s     r-   ri   z1SetVariable.as_python_constant.<locals>.<setcomp>˜   s&   € ÐBÐBÐB¨a�”×'Ò'Ñ)Ô)ÐBÐBÐBr/   rj   r^   s    r-   ro   zSetVariable.as_python_constant—   s   € ØBÐB°4´>ÐBÑBÔBÐBr/   Útxr"   r   c                 ó¾   ‡— | j         st          j        ‰d¦  «        S d                     ˆfd„| j        D ¦   «         ¦  «        }t          j        ‰d|z   dz   ¦  «        S )NrR   rT   c              3   óB   •K  — | ]}t          ‰|j        ¦  «        V — Œd S r'   ©r   rV   ©rg   rO   rp   s     €r-   ú	<genexpr>z(SetVariable.repr_impl.<locals>.<genexpr>ž   ó/   øè è € ÐOÐO¸�, r¨4¬7Ñ3Ô3ÐOÐOÐOÐOÐOÐOr/   rS   rU   ©r3   r   ÚbuildrW   r_   ©rM   rp   r3   s    ` r-   Ú	repr_implzSetVariable.repr_implš   sd   ø€ àŒzð 	6Ý"Ô(¨¨WÑ5Ô5Ð5Ø—	’	ÐOÐOÐOÐOÀÄÐOÑOÔOÑOÔOˆÝÔ$ R¨¨u©°sÑ):Ñ;Ô;Ð;r/   Úcodegenr!   c                 óº   — |                      d„ | j        D ¦   «         ¦  «         |                     t          dt	          | j        ¦  «        ¬¦  «        ¦  «         d S )Nc                 ó   — g | ]	}|j         ‘Œ
S rD   ©rV   ©rg   Úxs     r-   ú
<listcomp>z+SetVariable.reconstruct.<locals>.<listcomp>¢   ó   € Ð6Ð6Ð6 !˜œÐ6Ð6Ð6r/   Ú	BUILD_SET©Úarg)Úforeachr_   Úappend_outputr   Úlen©rM   r{   s     r-   ÚreconstructzSetVariable.reconstruct¡   sW   € Ø�ŠÐ6Ð6 t¤~Ð6Ñ6Ô6Ñ7Ô7Ð7Ø×ÒÕ0°Å#ÀdÄnÑBUÔBUÐVÑVÔVÑWÔWÐWÐWÐWr/   rV   c                 ó¼   — t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚t	          |¦  «        sdS t          |¦  «        }|| j        v S )NzExpected VariableTracker, got F)r6   r   r9   Útyper    r   r3   )rM   rV   Úkeys      r-   Ú__contains__zSetVariable.__contains__¥   sa   € Ý˜"�oÑ.Ô.ð 	NÝ Ð!LÅ$ÀrÁ(Ä(Ð!LÐ!LÑMÔMÐMõ ˜2‰Œð 	Ø�5Ý˜bÑ!Ô!ˆØ�d”jÐ Ð r/   c                 óv   ‡ — ‰ j         p1t          ˆ fd„‰ j                             ¦   «         D ¦   «         ¦  «        S )Nc              3   ó„   •K  — | ]:\  }}‰                      ‰j                             |j        ¦  «        |¦  «        V — Œ;d S r'   )Úis_new_itemrB   ÚgetrV   )rg   r�   ÚvaluerM   s      €r-   ru   z,SetVariable.has_new_items.<locals>.<genexpr>±   s`   øè è € ð 2
ð 2
ñ ��Uð ×Ò˜TÔ0×4Ò4°S´VÑ<Ô<¸eÑDÔDð2
ð 2
ð 2
ð 2
ð 2
ð 2
r/   )rC   Úanyr3   r^   s   `r-   Úhas_new_itemszSetVariable.has_new_items°   sU   ø€ ØÔ*ð 
­cð 2
ð 2
ð 2
ð 2
ð #œj×.Ò.Ñ0Ô0ð2
ñ 2
ô 2
ñ /
ô /
ð 	
r/   r“   Úotherc                 ó  — |rl|                      ¦   «         rX|                      ¦   «         rDt          |                     ¦   «         ¦  «        t          |                     ¦   «         ¦  «        k    S t          |¦  «        t          |¦  «        k    S r'   )Úis_realizedÚidrI   )rM   r“   r–   s      r-   r‘   zSetVariable.is_new_item·   st   € ð ð 	>�U×&Ò&Ñ(Ô(ð 	>¨U×->Ò->Ñ-@Ô-@ð 	>Ý�e—m’m‘o”oÑ&Ô&­"¨U¯]ª]©_¬_Ñ*=Ô*=Ò=Ð=Ý�%‰yŒy�B˜u™IœIÒ%Ð%r/   c                 ó$   — d„ | j         D ¦   «         S )Nc                 ó   — g | ]	}|j         ‘Œ
S rD   r~   r   s     r-   r�   z3SetVariable.unpack_var_sequence.<locals>.<listcomp>Á   s   € Ð)Ð)Ð)˜�”Ð)Ð)Ð)r/   ©r3   ©rM   rp   s     r-   Úunpack_var_sequencezSetVariable.unpack_var_sequence¾   s   € ð *Ð)˜dœjÐ)Ñ)Ô)Ð)r/   c                 óš   •— ddl m}m} t          |                     d¦  «        ||f¦  «        rd |d<    t          ¦   «         j        di |¤ŽS )Nr   )ÚAttributeMutationNewr   r4   r5   rD   )Útorch._dynamo.variables.baser    r   r6   r’   rF   r:   )rM   r@   r    r   rP   s       €r-   r:   zSetVariable.cloneÃ   sm   ø€ ØWÐWÐWÐWÐWÐWÐWÐWåØ�JŠJ�Ñ'Ô'Ð*:Ð<PÐ)Qñ
ô 
ð 	$ð  $ˆF�8ÑØ�u‰wŒwŒ}Ð&Ð&˜vÐ&Ð&Ð&r/   c                 ó   — dS )NFrD   r^   s    r-   r    zSetVariable.is_hashableÌ   s   € Øˆur/   c                 óV   — ddl m}  ||d|                      ¦   «         › d�¦  «         d S )Nr   )r   úunhashable type: 'ú')Úexcr   Úpython_type_name)rM   rp   r   s      r-   Ú	hash_implzSetVariable.hash_implÏ   sE   € Ø*Ð*Ð*Ð*Ð*Ð*àÐ˜ÐL°$×2GÒ2GÑ2IÔ2IÐLÐLÐLÑMÔMÐMÐMÐMr/   Únamec                 ó¢   •— |dk    r't          j        ||                      ¦   «         ¦  «        S t          ¦   «                              ||¦  «        S )NrP   )r   rx   r)   rF   Úvar_getattr)rM   rp   r©   rP   s      €r-   r«   zSetVariable.var_getattrÔ   sG   ø€ Ø�;ÒÐÝ"Ô(¨¨T×-=Ò-=Ñ-?Ô-?Ñ@Ô@Ð@Ý‰wŒw×"Ò" 2 tÑ,Ô,Ð,r/   c                 óR   — t          j        |t          t          |¦  «        ¦  «        S r'   )r   rx   Úhasattrr*   )rM   rp   r©   s      r-   Úcall_obj_hasattrzSetVariable.call_obj_hasattrÙ   s!   € õ Ô$ R­µ°dÑ);Ô);Ñ<Ô<Ð<r/   Úargsc           	      ó´  — | j         sd S |j        j                             | ¦  «        rd S |d         | v }|d         j         €”|d                              ¦   «         r||rt          | ¦  «        j        nt          | ¦  «        j        }t          |  	                    t          j        ||d                              ¦   «         ¬¦  «        ¦  «        ¦  «         d S d S d S )Nr   )r�   )r5   ÚoutputÚside_effectsÚis_modifiedÚis_python_constantrŒ   ÚCONTAINS_GUARDÚNOT_CONTAINS_GUARDr   Ú
make_guardÚ	functoolsÚpartialro   )rM   rp   r¯   ÚcontainsÚguard_fns        r-   Úinstall_set_contains_guardz&SetVariable.install_set_contains_guardÞ   sí   € ð Œ{ð 	ØˆFàŒ9Ô!×-Ò-¨dÑ3Ô3ð 	ØˆFà˜”7˜d�?ˆØ�Œ7Œ>Ð! d¨1¤g×&@Ò&@Ñ&BÔ&BÐ!à-5ÐX•�T‘
”
Ô)Ð)½4À¹:¼:Ô;Xð õ Ø—’ÝÔ%Ø Ø  œG×6Ò6Ñ8Ô8ðñ ô ñô ñô ð ð ð ð	 "Ð!Ð!Ð!r/   Úfnc                 ó"  — 	  |d„ | g|¢D ¦   «         i d„ |                      ¦   «         D ¦   «         ¤Ž}nH# t          $ r;}t          t          |¦  «        |t	          |j        ¦  «        ¬¦  «         Y d }~nd }~ww xY wt          j        ||¦  «        S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS rD   ©ro   r   s     r-   r�   z0SetVariable._fast_set_method.<locals>.<listcomp>þ   s$   € Ð@Ð@Ð@¨Q�!×&Ò&Ñ(Ô(Ð@Ð@Ð@r/   c                 ó>   — i | ]\  }}||                      ¦   «         “ŒS rD   rÀ   )rg   rh   rX   s      r-   ú
<dictcomp>z0SetVariable._fast_set_method.<locals>.<dictcomp>ÿ   s*   € ÐHÐHÐH±°°A�1�a×*Ò*Ñ,Ô,ÐHÐHÐHr/   ©r¯   )r3   Ú	Exceptionr   rŒ   Úlistr¯   r   rx   )rM   rp   r½   r¯   r@   Úresr¦   s          r-   Ú_fast_set_methodzSetVariable._fast_set_methodõ   sº   € ð	IØ�"Ø@Ð@°4°-¸$°-Ð@Ñ@Ô@ðàHÐH¸¿º¹¼ÐHÑHÔHðð ˆCˆCøõ ð 	Ið 	Ið 	IÝ$¥T¨#¡Y¤Y°½¸c¼h¹¼ÐHÑHÔHÐHÐHÐHÐHÐHÐHøøøøð	IøøøåÔ$ R¨Ñ-Ô-Ð-s   ‚14 ´
A9¾1A4Á4A9rO   c                 ó  — t          |¦  «        sIt          |¦  «        s&t          |d|                     ¦   «         › d�¦  «         t	          |j        ¦  «        }|                      ||g¦  «         || v }t          j        ||¦  «        S )Nr¤   r¥   )	r    r1   r   r§   ÚFrozensetVariabler3   r¼   r   rx   )rM   rp   rO   rº   s       r-   Úsq_containszSetVariable.sq_contains  s”   € õ ˜4Ñ Ô ð 
	1õ ˜tÑ$Ô$ð VÝ  Ð%T¸$×:OÒ:OÑ:QÔ:QÐ%TÐ%TÐ%TÑUÔUÐUõ
 % T¤ZÑ0Ô0ˆDØ×'Ò'¨¨T¨FÑ3Ô3Ð3Ø˜4�<ˆÝÔ$ R¨Ñ2Ô2Ð2r/   c                 óF  •— ddl m} ddlm} |dv ra |||¦  «        rU|                      ¦   «         t
          u r:|                      ¦   «         }|                      |t          ||¦  «        ||¦  «        S ddlm	}m
}	 |dk    r• |                     |t
          ¦  «        j        |g|¢R i |¤Ž}
|j        j                             | ¦  «         | j                             ¦   «          | j                             |
j        ¦  «         t'          j        d ¦  «        S |dk    r®|st)          |¦  «        dk    r2t+          ||d	t)          |¦  «        › d
t)          |¦  «        › d�¦  «         |j        j                             | ¦  «         t,                               ¦   «         | j        t1          |d         ¦  «        <   t'          j        d ¦  «        S |dk    rå|s|r2t+          ||dt)          |¦  «        › d
t)          |¦  «        › d�¦  «         	 | j                             ¦   «         j        }n@# t8          $ r3}t;          t8          |t=          |j        ¦  «        ¬¦  «         Y d }~nd }~ww xY wd| _         |j        j                             | ¦  «         | j                             t1          |¦  «        ¦  «         |S |dk    r„|st)          |¦  «        dk    r2t+          ||d	t)          |¦  «        › d
t)          |¦  «        › d�¦  «         |                     |tB          j"        ¦  «         #                    || |d         gi ¦  «        S |dk    rp|r"t+          ||dt)          |¦  «        › d�¦  «         |                     |tB          j$        ¦  «         #                    || g|¢d|  %                    ¦   «         i¦  «        S |dk    r\|r"t+          ||dt)          |¦  «        › d�¦  «         |                     |tB          j&        ¦  «         #                    || g|¢i ¦  «        S |dk    rp|r"t+          ||dt)          |¦  «        › d�¦  «         |                     |tB          j'        ¦  «         #                    || g|¢d|  %                    ¦   «         i¦  «        S |dk    rp|r"t+          ||dt)          |¦  «        › d�¦  «         |                     |tB          j(        ¦  «         #                    || g|¢d|  %                    ¦   «         i¦  «        S |dk    r\|r"t+          ||dt)          |¦  «        › d�¦  «         |                     |tB          j)        ¦  «         #                    || g|¢i ¦  «        S |dk    r“|st)          |¦  «        dk    r2t+          ||d	t)          |¦  «        › d
t)          |¦  «        › d�¦  «         |                     |tB          j*        ¦  «         #                    || g|¢d|  %                    ¦   «         i¦  «        S |dk    r|st)          |¦  «        dk    r2t+          ||d	t)          |¦  «        › d
t)          |¦  «        › d�¦  «         |                     |tB          j+        ¦  «         #                    || g|¢i ¦  «        S |dk    rp|  ,                    ¦   «         r\|r"t+          ||dt)          |¦  «        › d�¦  «         |                     |tB          j-        ¦  «         #                    || g|¢i ¦  «        S |dk    rÏ|st)          |¦  «        dk    r2t+          ||d	t)          |¦  «        › d
t)          |¦  «        › d�¦  «         |d         | vrt;          t8          ||¬¦  «         d| _         |j        j                             | ¦  «         | j                             t1          |d         ¦  «        ¦  «         t'          j        d ¦  «        S |dk    r¸|st)          |¦  «        dk    r2t+          ||d	t)          |¦  «        › d
t)          |¦  «        › d�¦  «         |d         | v rSd| _         |j        j                             | ¦  «         | j                             t1          |d         ¦  «        ¦  «         t'          j        d ¦  «        S |dv rît)          |¦  «        dk    r"t+          ||d t)          |¦  «        › d!�¦  «         t\          j/        t\          j0        dœ}|d          1                    ¦   «         }te          |t,          ¦  «        s1|                     |t
          ¦  «         #                    ||gi ¦  «        }|                     || 3                    |¦  «        ¦  «         #                    || |gi ¦  «        S |d"v rºdddd"œ 3                    |¦  «        }ti          |d         t,          tj          j6        ||	f¦  «        sLt;          tn          |d#|› d$|  8                    ¦   «         › d%|d          8                    ¦   «         › d&�g¬¦  «         |€ts          d'|› �¦  «        ‚|  :                    ||||¦  «        S |d(v rÁd)d*d+d(œ 3                    |¦  «        }ti          |d         t,          tj          j6        ||	f¦  «        sLt;          tn          |d#|› d$|d          8                    ¦   «         › d%|  8                    ¦   «         › d&�g¬¦  «         |€ts          d,|› �¦  «        ‚|d          :                    ||| g|¦  «        S |d-v r½ti          |d         t,          tj          j6        ||	f¦  «        sLt;          tn          |d#|› d$|  8                    ¦   «         › d%|d          8                    ¦   «         › d&�g¬¦  «         ddddd-œ 3                    |¦  «        }|€ts          d.|› �¦  «        ‚|  :                    ||||¦  «         | S |d/k    r]|s|r2t+          ||dt)          |¦  «        › d
t)          |¦  «        › d�¦  «         tw          j<        |t)          | j        ¦  «        ¦  «        S |d0k    rE|s|r2t+          ||dt)          |¦  «        › d
t)          |¦  «        › d�¦  «         t{          | ¦  «        S |d1k    r‰|s|r2t+          ||dt)          |¦  «        › d
t)          |¦  «        › d�¦  «         d| _         |j        j                             | ¦  «         | j                             ¦   «          t'          j        d ¦  «        S t}          ¦   «          :                    ||||¦  «        S )2Nr   )Úcheck_constant_argsr   )ÚSourcelessBuilder)Ú
isdisjointÚunionÚintersectionÚ
differenceÚsymmetric_difference)ÚDictItemsVariableÚDictKeysVariablerG   Úaddz1 args and 0 kwargsú
 args and ú kwargsr   rE   ú0 args and 0 kwargsrÃ   TrÎ   rÐ   z0 kwargsÚclsÚintersection_updaterÏ   rÑ   zExpect: 0 kwargs, Actual: Údifference_updaterÒ   Úsymmetric_difference_updateÚupdateÚremoveÚdiscard)ÚissubsetÚ
issupersetz1 argsz args)Ú__and__Ú__xor__Ú__sub__z unsupported operand type(s) for z: 'z' and 'r¥   zUnexpected set method name: )Ú__rand__Ú__rxor__Ú__rsub__râ   rã   rä   z$Unexpected reverse set method name: )Ú__iand__Ú__ior__Ú__ixor__Ú__isub__z$Unexpected inplace set method name: Ú__len__r;   Úclear)?ÚutilsrÌ   ÚbuilderrÍ   r)   r*   rÇ   ÚgetattrÚdictsrÓ   rÔ   rb   Úcall_setr±   r²   Úmutationr3   rí   rÝ   r   rˆ   r   r?   rL   r   r_   rE   rV   ÚKeyErrorr   rÅ   r¯   rC   r	   Úset_isdisjointÚcall_functionÚset_intersectionÚpython_type_varÚset_intersection_updateÚ	set_unionÚset_differenceÚset_difference_updateÚset_symmetric_differenceÚset_symmetric_difference_updateÚ
is_mutableÚ
set_updateÚoperatorÚleÚgerI   r   r’   r6   r
   r7   Ú	TypeErrorr§   r9   Úcall_methodr   rx   r=   rF   )rM   rp   r©   r¯   r@   rÌ   rÍ   Úpy_typerÓ   rÔ   Útemp_set_vtÚresultÚeÚopr–   ÚmrP   s                   €r-   r  zSetVariable.call_method  s,  ø€ ð 	0Ð/Ð/Ð/Ð/Ð/Ø.Ð.Ð.Ð.Ð.Ð.ð ððð ð $Ð# D¨&Ñ1Ô1ðð × Ò Ñ"Ô"¥cÐ)Ð)à×&Ò&Ñ(Ô(ˆGØ×(Ò(¨­W°W¸dÑ-CÔ-CÀTÈ6ÑRÔRÐRð 	?Ð>Ð>Ð>Ð>Ð>Ð>Ð>à�:ÒÐØDÐ+×2Ò2°2µsÑ;Ô;ÔDØðØðð ð Ø#ðð ˆKð ŒIÔ"×+Ò+¨DÑ1Ô1Ð1ØŒJ×ÒÑÔÐØŒJ×Ò˜kÔ/Ñ0Ô0Ð0Ý#Ô*¨4Ñ0Ô0Ð0Ø�UŠ]ˆ]Øð �˜T™œ aš˜Ý#ØØØ)Ý˜4‘y”yÐ@Ð@­C°©K¬KÐ@Ð@Ð@ñ	ô ð ð ŒIÔ"×+Ò+¨DÑ1Ô1Ð1Ý3>×3MÒ3MÑ3OÔ3OˆDŒJ• t¨A¤wÑ/Ô/Ñ0Ý#Ô*¨4Ñ0Ô0Ð0Ø�UŠ]ˆ]Øð ˜ð Ý#ØØØ)Ý˜4‘y”yÐ@Ð@­C°©K¬KÐ@Ð@Ð@ñ	ô ð ðJØ*.¬.×*<Ò*<Ñ*>Ô*>Ô*A��øÝð Jð Jð JÝ(­°2½DÀÄ¹L¼LÐIÑIÔIÐIÐIÐIÐIÐIÐIøøøøðJøøøà*.ˆDÔ'ØŒIÔ"×+Ò+¨DÑ1Ô1Ð1ØŒJ�NŠN�?¨6Ñ2Ô2Ñ3Ô3Ð3ØˆMØ�\Ò!Ð!Øð �˜T™œ aš˜Ý#ØØØ)Ý˜4‘y”yÐ@Ð@­C°©K¬KÐ@Ð@Ð@ñ	ô ð ð %×+Ò+¨Bµ	Ô0HÑIÔI×WÒWØ�T˜4 œ7�O Rñô ð ð �^Ò#Ð#Øð SÝ# B¨¨j½SÀ¹[¼[Ð:QÐ:QÐ:QÑRÔRÐRØ$×+Ò+Ø•IÔ.ñô çŠmØØ�˜�Ø˜×,Ò,Ñ.Ô.Ð/ñô ðð Ð*Ò*Ð*Øð SÝ# B¨¨j½SÀ¹[¼[Ð:QÐ:QÐ:QÑRÔRÐRØ$×+Ò+Ø•IÔ5ñô çŠm˜B  ¨ ¨rÑ2Ô2ð3ð �WŠ_ˆ_Øð SÝ# B¨¨j½SÀ¹[¼[Ð:QÐ:QÐ:QÑRÔRÐRØ$×+Ò+¨Bµ	Ô0CÑDÔD×RÒRØØ�˜�Ø˜×,Ò,Ñ.Ô.Ð/ñô ð ð
 �\Ò!Ð!Øð Ý#Ø˜ÐO½3¸v¹;¼;ÐOÐOÐOñô ð ð %×+Ò+¨Bµ	Ô0HÑIÔI×WÒWØØ�˜�Ø˜×,Ò,Ñ.Ô.Ð/ñô ð ð
 Ð(Ò(Ð(Øð SÝ# B¨¨j½SÀ¹[¼[Ð:QÐ:QÐ:QÑRÔRÐRØ$×+Ò+Ø•IÔ3ñô çŠm˜B  ¨ ¨rÑ2Ô2ð3ð Ð+Ò+Ð+Øð �˜T™œ aš˜Ý#ØØØ)Ý˜4‘y”yÐ@Ð@­C°©K¬KÐ@Ð@Ð@ñ	ô ð ð %×+Ò+Ø•IÔ6ñô çŠmØØ�˜�Ø˜×,Ò,Ñ.Ô.Ð/ñô ðð Ð2Ò2Ð2Øð �˜T™œ aš˜Ý#ØØØ)Ý˜4‘y”yÐ@Ð@­C°©K¬KÐ@Ð@Ð@ñ	ô ð ð %×+Ò+Ø•IÔ=ñô çŠm˜B  ¨ ¨rÑ2Ô2ð3ð �XÒÐ $§/¢/Ñ"3Ô"3ÐØð SÝ# B¨¨j½SÀ¹[¼[Ð:QÐ:QÐ:QÑRÔRÐRØ$×+Ò+¨Bµ	Ô0DÑEÔE×SÒSØ�T�M˜D�M 2ñô ð ð �XÒÐØð �˜T™œ aš˜Ý#ØØØ)Ý˜4‘y”yÐ@Ð@­C°©K¬KÐ@Ð@Ð@ñ	ô ð ð �AŒw˜dÐ"Ð"Ý(­°2¸DÐAÑAÔAÐAØ*.ˆDÔ'ØŒIÔ"×+Ò+¨DÑ1Ô1Ð1ØŒJ�NŠN�?¨4°¬7Ñ3Ô3Ñ4Ô4Ð4Ý#Ô*¨4Ñ0Ô0Ð0Ø�YÒÐØð �˜T™œ aš˜Ý#ØØØ)Ý˜4‘y”yÐ@Ð@­C°©K¬KÐ@Ð@Ð@ñ	ô ð ð �AŒw˜$ˆˆØ.2�Ô+Ø”	Ô&×/Ò/°Ñ5Ô5Ð5Ø”
—’�¨t°A¬wÑ7Ô7Ñ8Ô8Ð8Ý#Ô*¨4Ñ0Ô0Ð0ØÐ/Ð/Ð/Ý�4‰yŒy˜AŠ~ˆ~Ý# B¨¨h½3¸t¹9¼9Ð8KÐ8KÐ8KÑLÔLÐLõ %œKÝ&œkðð ˆBð ˜”G—O’OÑ%Ô%ˆEÝ˜%¥Ñ-Ô-ð YØ)×0Ò0°µSÑ9Ô9×GÒGÈÈUÈGÐUWÑXÔX�Ø$×+Ò+¨B°·²°t±´Ñ=Ô=×KÒKØ�T˜5�M 2ñô ð ð Ð6Ð6Ð6à)Ø1Ø'ðð ÷ Šc�$‰iŒið	 õ
 Ø�Q”åÝÔ4Ø%Ø$ð	ñô ð õ )ÝØð B¸4ð  Bð  BÀD×DYÒDYÑD[ÔD[ð  Bð  BÐdhÐijÔdk×d|Òd|Ñd~Ôd~ð  Bð  Bð  Bððñ ô ð ð ˆyÝ$Ð%JÀDÐ%JÐ%JÑKÔKÐKØ×#Ò# B¨¨4°Ñ8Ô8Ð8ØÐ9Ð9Ð9à%Ø%Ø%ðð ÷ Šc�$‰iŒið	 õ
 Ø�Q”åÝÔ4Ø%Ø$ð	ñô ð õ )ÝØð B¸4ð  Bð  BÀDÈÄG×D\ÒD\ÑD^ÔD^ð  Bð  BÐgk×g|Òg|Ñg~Ôg~ð  Bð  Bð  Bððñ ô ð ð ˆyÝ$Ð%RÈDÐ%RÐ%RÑSÔSÐSØ˜”7×&Ò& r¨1¨t¨f°fÑ=Ô=Ð=ØÐDÐDÐDÝØ�Q”åÝÔ4Ø%Ø$ð	ñô ð õ )ÝØð B¸4ð  Bð  BÀD×DYÒDYÑD[ÔD[ð  Bð  BÐdhÐijÔdk×d|Òd|Ñd~Ôd~ð  Bð  Bð  Bððñ ô ð ð 2Ø#Ø9Ø/ð	ð ÷
 Šc�$‰iŒið ð ˆyÝ$Ð%RÈDÐ%RÐ%RÑSÔSÐSØ×Ò˜R  D¨&Ñ1Ô1Ð1ØˆKØ�YÒÐØð �vð Ý#ØØØ)Ý˜4‘y”yÐ@Ð@­C°©K¬KÐ@Ð@Ð@ñ	ô ð õ #Ô(¨­S°´©_¬_Ñ=Ô=Ð=Ø�VŠ^ˆ^Øð �vð Ý#ØØØ)Ý˜4‘y”yÐ@Ð@­C°©K¬KÐ@Ð@Ð@ñ	ô ð õ ˜D‘>”>Ð!Ø�WŠ_ˆ_Øð �vð Ý#ØØØ)Ý˜4‘y”yÐ@Ð@­C°©K¬KÐ@Ð@Ð@ñ	ô ð ð +/ˆDÔ'ØŒIÔ"×+Ò+¨DÑ1Ô1Ð1ØŒJ×ÒÑÔÐÝ#Ô*¨4Ñ0Ô0Ð0Ý‰wŒw×"Ò" 2 t¨T°6Ñ:Ô:Ð:s   ÈH& È&
I#È0)IÉI#r#   c                 ó4   — t          j        t          ¦  «        S r'   )r
   r#   r*   r^   s    r-   rø   zSetVariable.python_type_varB  s   € ÝÔ(­Ñ-Ô-Ð-r/   r…   c                 ó    — t          d¦  «        ‚)NzIllegal to getitem on a set)ÚRuntimeError)rM   rp   r…   s      r-   Úgetitem_constzSetVariable.getitem_constE  s   € õ Ð8Ñ9Ô9Ð9r/   c                 ó¬   — ddl m} | j        r8t          | j        ¦  «        s$|j        j                             | j        ¦  «          || j        ¦  «        S )Nr   )ÚSetIterator)Úiterr  r5   r   r±   Úguard_on_key_orderrÕ   r3   )rM   rp   r  s      r-   Útp_iter_implzSetVariable.tp_iter_implJ  s]   € Ø%Ð%Ð%Ð%Ð%Ð%àŒ;ð 	:Õ1°$´+Ñ>Ô>ð 	:ØŒIÔ(×,Ò,¨T¬[Ñ9Ô9Ð9Øˆ{˜4œ:Ñ&Ô&Ð&r/   FÚreversec                 óö   — |r|| fn| |f\  }}t          |¦  «        rt          |¦  «        st          j        t          ¦  «        S t	          |¦  «        }||u r|S |j                             |j        ¦  «         |S r'   )r.   r   rb   ÚNotImplementedr=   r3   rÝ   )rM   rp   r–   r  Úself_Úother_r  s          r-   Ú
nb_or_implzSetVariable.nb_or_implQ  s„   € ð *1ÐC˜ ˜˜°t¸U°m‰ˆˆvå˜eÑ$Ô$ð 	;­N¸6Ñ,BÔ,Bð 	;Ý#Ô*­>Ñ:Ô:Ð:å˜%‘”ˆØ�Fˆ?ˆ?ØˆMØŒ×Ò˜FœLÑ)Ô)Ð)Øˆr/   c                 óÒ   — t          |¦  «        st          j        t          ¦  «        S |j        j                             | ¦  «         | j                             |j        ¦  «         | S r'   )	r.   r   rb   r  r±   r²   ró   r3   rÝ   ©rM   rp   r–   s      r-   Únb_inplace_or_implzSetVariable.nb_inplace_or_implc  s[   € õ ˜eÑ$Ô$ð 	;Ý#Ô*­>Ñ:Ô:Ð:à
Œ	Ô×'Ò'¨Ñ-Ô-Ð-ØŒ
×Ò˜%œ+Ñ&Ô&Ð&Øˆr/   c                 ó4  — |r|| fn| |f\  }}t          |¦  «        rt          |¦  «        st          j        t          ¦  «        S t	          |¦  «        }t          |j                             ¦   «         ¦  «        D ]}|j                             |d ¦  «         Œ|S r'   )	r.   r   rb   r  r=   rÅ   r3   r]   rE   )rM   rp   r–   r  r  r  r  rh   s           r-   Únb_subtract_implzSetVariable.nb_subtract_impln  sž   € ð *1ÐC˜ ˜˜°t¸U°m‰ˆˆvå˜eÑ$Ô$ð 	;­N¸6Ñ,BÔ,Bð 	;Ý#Ô*­>Ñ:Ô:Ð:å˜%‘”ˆÝ�f”l×'Ò'Ñ)Ô)Ñ*Ô*ð 	&ð 	&ˆAØŒL×Ò˜Q Ñ%Ô%Ð%Ð%Øˆr/   c                 ó  — t          |¦  «        st          j        t          ¦  «        S |j        j                             | ¦  «         t          |j         	                    ¦   «         ¦  «        D ]}| j         
                    |d ¦  «         Œ| S r'   )r.   r   rb   r  r±   r²   ró   rÅ   r3   r]   rE   )rM   rp   r–   rh   s       r-   Únb_inplace_subtract_implz$SetVariable.nb_inplace_subtract_impl  s�   € õ ˜eÑ$Ô$ð 	;Ý#Ô*­>Ñ:Ô:Ð:à
Œ	Ô×'Ò'¨Ñ-Ô-Ð-Ý�e”k×&Ò&Ñ(Ô(Ñ)Ô)ð 	$ð 	$ˆAØŒJ�NŠN˜1˜dÑ#Ô#Ð#Ð#Øˆr/   c                 ó¼   — |r|| fn| |f\  }}t          |¦  «        rt          |¦  «        st          j        t          ¦  «        S |                     |d|gi ¦  «        S ©NrÐ   ©r.   r   rb   r  r  ©rM   rp   r–   r  r  r  s         r-   Únb_and_implzSetVariable.nb_and_impl‹  sj   € ð *1ÐC˜ ˜˜°t¸U°m‰ˆˆvå˜eÑ$Ô$ð 	;­N¸6Ñ,BÔ,Bð 	;Ý#Ô*­>Ñ:Ô:Ð:à× Ò   ^°f°X¸rÑBÔBÐBr/   c                 óˆ   — t          |¦  «        st          j        t          ¦  «        S |                      |d|gi ¦  «         | S )NrÚ   r$  r  s      r-   Únb_inplace_and_implzSetVariable.nb_inplace_and_impl™  sG   € õ ˜eÑ$Ô$ð 	;Ý#Ô*­>Ñ:Ô:Ð:à×Ò˜Ð2°U°G¸RÑ@Ô@Ð@Øˆr/   c                 ó¼   — |r|| fn| |f\  }}t          |¦  «        rt          |¦  «        st          j        t          ¦  «        S |                     |d|gi ¦  «        S ©NrÒ   r$  r%  s         r-   Únb_xor_implzSetVariable.nb_xor_impl£  sk   € ð *1ÐC˜ ˜˜°t¸U°m‰ˆˆvå˜eÑ$Ô$ð 	;­N¸6Ñ,BÔ,Bð 	;Ý#Ô*­>Ñ:Ô:Ð:à× Ò  Ð%;¸f¸XÀrÑJÔJÐJr/   c                 óˆ   — t          |¦  «        st          j        t          ¦  «        S |                      |d|gi ¦  «         | S )NrÜ   r$  r  s      r-   Únb_inplace_xor_implzSetVariable.nb_inplace_xor_impl±  sG   € õ ˜eÑ$Ô$ð 	;Ý#Ô*­>Ñ:Ô:Ð:à×Ò˜Ð:¸U¸GÀRÑHÔHÐHØˆr/   c                 óP   — t          j        |t          | j        ¦  «        ¦  «        S r'   )r   rx   rˆ   r_   r�   s     r-   Ú	sq_lengthzSetVariable.sq_length»  s   € ÝÔ$ R­¨T¬^Ñ)<Ô)<Ñ=Ô=Ð=r/   r
  c                 óÐ  — t          |t          ¦  «        st	 |                     ¦   «         }n)# t          $ r t	          j        t          ¦  «        cY S w xY wt          |t          t          f¦  «        st	          j        t          ¦  «        S | j
        }|j
        }|dk    rMt          |¦  «        t          |¦  «        k    rt	          j        d¦  «        S t          j        |||k    ¦  «        S |dk    rNt          |¦  «        t          |¦  «        k    rt	          j        d¦  «        S t          j        |||k     ¦  «        S t          j        |t          |         ||¦  «        ¦  «        S )zëset_richcompare: subset/superset comparisons for all 6 ops.

        https://github.com/python/cpython/blob/e76aa128fe/Objects/setobject.c#L2097
        CPython uses PyAnySet_Check: only accepts set/frozenset (not dict views).
        Ú__eq__FÚ__ne__T)r6   r?   r)   ÚNotImplementedErrorr   rb   r  r(   r*   r+   r_   rˆ   r   rx   r   )rM   rp   r–   r
  Ú
other_typeÚ
self_itemsÚother_itemss          r-   Úrichcompare_implzSetVariable.richcompare_impl¾  s[  € õ ˜%¥Ñ-Ô-ð 	?ð?Ø"×.Ò.Ñ0Ô0�
�
øÝ&ð ?ð ?ð ?Ý'Ô.­~Ñ>Ô>Ð>Ð>Ð>ð?øøøå˜j­3µ	Ð*:Ñ;Ô;ð ?Ý'Ô.­~Ñ>Ô>Ð>ð ”^ˆ
Ø”oˆØ�Š>ˆ>å�:‰Œ¥# kÑ"2Ô"2Ò2Ð2Ý'Ô.¨uÑ5Ô5Ð5Ý"Ô(¨¨Z¸;Ò-FÑGÔGÐGØ�8Š^ˆ^Ý�:‰Œ¥# kÑ"2Ô"2Ò2Ð2Ý'Ô.¨tÑ4Ô4Ð4Ý"Ô(¨°*ÀÒ2KÐ-LÑMÔMÐMå"Ô(ØÝ& rÔ*¨:°{ÑCÔCñô ð s   —, ¬#AÁA©rp   r"   r%   r   ©r{   r!   r%   N©r%   r#   ©F)=Ú__name__Ú
__module__Ú__qualname__Ú__doc__r*   Ú_cpython_typer   ÚSET_CONTAINSrµ   ÚSET_NOT_CONTAINSr¶   r   r   r   r   rG   ÚstrrZ   Úpropertyr_   ÚstaticmethodrL   re   rŒ   r)   ro   rz   rŠ   ÚboolrŽ   r•   r‘   rÅ   rž   r:   r    ÚtupleÚintr¨   r«   r   r®   r¼   rJ   rÇ   rÊ   r  rø   r  r  r  r  r  r!  r&  r(  r+  r-  r/  r7  Ú__classcell__©rP   s   @r-   r?   r?   Q   s‡  ø€ € € € € Ø<Ð<ð €Mà!Ô.€NØ%Ô6Ðð!
à˜¨/Ñ9Ô:ð!
ð ð!
ð 
ð	!
ð !
ð !
ð !
ð !
ð !
ðF	0˜Cð 	0ð 	0ð 	0ð 	0ð ð&˜3Ð0Ô1ð &ð &ð &ñ „Xð&ð ð-˜Oð -ð -ð -ñ „\ð-ð9˜#ð 9ð 9ð 9ð 9ð˜Tð ð ð ð ðC Cð Cð Cð Cð Cð<ð <ð <ð <ðXð Xð Xð Xð	!˜ð 	!°4ð 	!ð 	!ð 	!ð 	!ð
˜tð 
ð 
ð 
ð 
ð&Ø$ tÑ+ð&Ø4Cð&à	ð&ð &ð &ð &ð*Ø-ð*à	ˆoÔ	ð*ð *ð *ð *ð
'˜cð ' oð 'ð 'ð 'ð 'ð 'ð 'ð˜Tð ð ð ð ðNÐ7ð N¸EÀ#ÀtÀ)Ô<Lð Nð Nð Nð Nð
-Ð9ð -Àð -ð -ð -ð -ð -ð -ð
=Ø-ð=Ø58ð=à	ð=ð =ð =ð =ð
Ø-ðØ59¸/Ô5Jðà	ðð ð ð ð..à'ð.ð ð.ð �?Ô#ð	.ð
 �S˜/Ð)Ô*ð.ð 
ð.ð .ð .ð .ð 3Ø-ð3Ø5Dð3à	ð3ð 3ð 3ð 3ð&h;à'ðh;ð ðh;ð �?Ô#ð	h;ð
 �S˜/Ð)Ô*ðh;ð 
ðh;ð h;ð h;ð h;ð h;ð h;ðT	.ð .ð .ð .ð:Ø-ð:Ø4Cð:à	ð:ð :ð :ð :ð
'Ð:ð '¸ð 'ð 'ð 'ð 'ð ð	ð à'ðð ðð ð	ð
 
ðð ð ð ð$	Ø-ð	Ø6Eð	à	ð	ð 	ð 	ð 	ð ð	ð à'ðð ðð ð	ð
 
ðð ð ð ð"
Ø-ð
Ø6Eð
à	ð
ð 
ð 
ð 
ð  ð	Cð Cà'ðCð ðCð ð	Cð
 
ðCð Cð Cð CðØ-ðØ6Eðà	ðð ð ð ð ð	Kð Kà'ðKð ðKð ð	Kð
 
ðKð Kð Kð KðØ-ðØ6Eðà	ðð ð ð ð>Ð7ð >¸Oð >ð >ð >ð >ð&à'ð&ð ð&ð ð	&ð
 
ð&ð &ð &ð &ð &ð &ð &ð &r/   r?   c            
       óÔ   ‡ — e Zd Zdeddfˆ fd„Zdeee                  fd„Zdddede	fˆ fd	„Z
ddded
ee	         deee	f         de	f
ˆ fd„Zddd
ee	         deee	f         ddfd„Zˆ xZS )ÚOrderedSetClassVariabler@   r%   Nc                 ó:   •—  t          ¦   «         j        di |¤Ž d S )NrD   )rF   rG   )rM   r@   rP   s     €r-   rG   z OrderedSetClassVariable.__init__è  s&   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ð"Ð"r/   c                 ó   — t           S r'   r   r^   s    r-   ro   z*OrderedSetClassVariable.as_python_constantë  ó   € ÝÐr/   rp   r"   r©   c           
      óü   •— |dk    rTddl m} | j        rt          | j        |¦  «        }nd } || |t	          t          t          |¦  «        ¦  «        |¬¦  «        S t          ¦   «                              ||¦  «        S )NÚ__new__r   )ÚGetAttrVariable)r  r5   )	ÚmiscrR  r5   r   rŒ   rð   r   rF   r«   )rM   rp   r©   rR  Úattr_sourcerP   s        €r-   r«   z#OrderedSetClassVariable.var_getattrî  s”   ø€ ð �9ÒÐØ-Ð-Ð-Ð-Ð-Ð-àŒ{ð #Ý(¨¬°dÑ;Ô;��à"�Ø"�?Ø�d¥D­µ¸TÑ)BÔ)BÑ$CÔ$CÈKðñ ô ð õ ‘7”7×&Ò& r¨4Ñ0Ô0Ð0r/   r¯   c           
      óò  •— |dk    rit          |¦  «        dk    s|r2t          ||dt          |¦  «        › dt          |¦  «        › d�¦  «         t          j        g t	          ¦   «         ¬¦  «        S t          t          |¦  «        }|t          v rFt          |d         t          j	        ¦  «        r&|d          
                    |||dd …         |¦  «        S t          ¦   «          
                    ||||¦  «        S )	NrQ  r   z'OrderedSet.__new__ only accepts one argrÖ   r×   ©r4   r   r   )rˆ   r   r
   ÚOrderedSetVariabler   rð   r*   r   r6   r?   r  rF   )rM   rp   r©   r¯   r@   Úresolved_fnrP   s         €r-   r  z#OrderedSetClassVariable.call_methodþ  s  ø€ ð �9ÒÐÝ�4‰yŒy˜AŠ~ˆ~ ˆ~Ý#ØØðAÝ˜4‘y”yðAð AÝ,/°©K¬KðAð Að Añô ð õ Ô/°ÕBRÑBTÔBTÐUÑUÔUÐUå�c 4Ñ(Ô(ˆØ�+Ð%Ð%­*°T¸!´W½iÔ>SÑ*TÔ*TÐ%Ø˜”7×&Ò& r¨4°°a°b°b´¸6ÑBÔBÐBå‰wŒw×"Ò" 2 t¨T°6Ñ:Ô:Ð:r/   rW  c           
      ó,  — t          |¦  «        dk    s|r2t          |ddt          |¦  «        › dt          |¦  «        › d�¦  «         t          |¦  «        dk    rg }nt          ||d         ¦  «        }t          j        |t          ¦   «         ¬¦  «        S )Nr   r   zOrderedSet only accepts one argrÖ   r×   r   rV  )rˆ   r   r   r
   rW  r   )rM   rp   r¯   r@   r3   s        r-   rö   z%OrderedSetClassVariable.call_function  s§   € õ ˆt‰9Œ9�qŠ=ˆ=˜Fˆ=ÝØØð=Ý�t‘9”9ð=ð =Ý(+¨F©¬ð=ð =ð =ñô ð õ ˆt‰9Œ9˜Š>ˆ>àˆEˆEå# B¨¨Q¬Ñ0Ô0ˆEÝÔ+¨EÕAQÑASÔASÐTÑTÔTÐTr/   )r<  r=  r>  r   rG   rŒ   r   ro   rC  r   r«   rÅ   rJ   r  rö   rI  rJ  s   @r-   rL  rL  ç  sW  ø€ € € € € ð# ð #¨ð #ð #ð #ð #ð #ð #ð D¨°C¬Ô$9ð ð ð ð ð1Ø-ð1Ø58ð1à	ð1ð 1ð 1ð 1ð 1ð 1ð ;à'ð;ð ð;ð �?Ô#ð	;ð
 �S˜/Ð)Ô*ð;ð 
ð;ð ;ð ;ð ;ð ;ð ;ð0Uà'ðUð �?Ô#ðUð �S˜/Ð)Ô*ð	Uð
 
ðUð Uð Uð Uð Uð Uð Uð Ur/   rL  c            	       ó  ‡ — e Zd Zdefd„Zdd„Zdee         fd„Zde	ee                  fd„Z
defd	„Zdd„Z	 ddddededefˆ fd„Z	 ddddededefˆ fd„Z	 ddddededefˆ fd„Z	 ddddededefd„Zdddedefd„Zˆ xZS )rW  r%   c                 ó´   — | j         sdS g }| j         D ]+}t          |j        ¦  «        }|                     |¦  «         Œ,dd                     |¦  «        z   dz   S )NzOrderedSet([])úOrderedSet([rT   ú])©r3   r   rV   rH   rW   ©rM   r3   rh   Úkey_strs       r-   rZ   zOrderedSetVariable.debug_repr-  sh   € ØŒzð 	<Ø#Ð#à!ˆEØ”Zð &ð &�Ý*¨1¬4Ñ0Ô0�Ø—’˜WÑ%Ô%Ð%Ð%Ø! D§I¢I¨eÑ$4Ô$4Ñ4°tÑ;Ð;r/   rp   r"   r   c                 ó‚   ‡— d                      ˆfd„| j        D ¦   «         ¦  «        }t          j        ‰d|› d�¦  «        S )NrT   c              3   óB   •K  — | ]}t          ‰|j        ¦  «        V — Œd S r'   rs   rt   s     €r-   ru   z/OrderedSetVariable.repr_impl.<locals>.<genexpr>8  rv   r/   r\  r]  )rW   r_   r   rx   ry   s    ` r-   rz   zOrderedSetVariable.repr_impl7  sJ   ø€ Ø—	’	ÐOÐOÐOÐOÀÄÐOÑOÔOÑOÔOˆÝÔ$ RÐ)A¸Ð)AÐ)AÐ)AÑBÔBÐBr/   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc                 ó@   — g | ]}|j                              ¦   «         ‘ŒS rD   rn   rf   s     r-   r�   z9OrderedSetVariable.as_python_constant.<locals>.<listcomp><  s&   € ÐMÐMÐM¸˜1œ4×2Ò2Ñ4Ô4ÐMÐMÐMr/   )r   r_   r^   s    r-   ro   z%OrderedSetVariable.as_python_constant;  s!   € ÝÐMÐM¸d¼nÐMÑMÔMÑNÔNÐNr/   c                 ó   — t           S r'   r   r^   s    r-   r)   zOrderedSetVariable.python_type>  rO  r/   c                 ó   — t          ¦   «         S r'   )rL  r^   s    r-   rø   z"OrderedSetVariable.python_type_varB  s   € Ý&Ñ(Ô(Ð(r/   r{   r!   Nc                 ó2  ‡— ‰                      ˆfd„¦  «         ‰                     d„ | j        D ¦   «         ¦  «         ‰                     t	          dt          | j        ¦  «        ¬¦  «        ¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  ó0   •— ‰                       dd¦  «        S )Nztorch.utils._ordered_setr   )Úload_import_from©r{   s   €r-   ú<lambda>z0OrderedSetVariable.reconstruct.<locals>.<lambda>G  s   ø€ �G×,Ò,Ð-GÈÑVÔV€ r/   c                 ó   — g | ]	}|j         ‘Œ
S rD   r~   r   s     r-   r�   z2OrderedSetVariable.reconstruct.<locals>.<listcomp>I  r‚   r/   Ú
BUILD_LISTr„   r   F)Úadd_push_nullr†   r_   r‡   r   rˆ   Úextend_outputr   r‰   s    `r-   rŠ   zOrderedSetVariable.reconstructE  s�   ø€ Ø×ÒØVÐVÐVÐVñ	
ô 	
ð 	
ð 	�ŠÐ6Ð6 t¤~Ð6Ñ6Ô6Ñ7Ô7Ð7Ø×ÒÕ0°Å3ÀtÄ~ÑCVÔCVÐWÑWÔWÑXÔXÐXØ×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r/   Fr–   r  c                 óN   •— t          ¦   «                              |d|gi ¦  «        S )NrÏ   ©rF   r  ©rM   rp   r–   r  rP   s       €r-   r  zOrderedSetVariable.nb_or_implM  s%   ø€ õ ‰wŒw×"Ò" 2 w°°¸Ñ<Ô<Ð<r/   c                 óN   •— t          ¦   «                              |d|gi ¦  «        S r#  rq  rr  s       €r-   r&  zOrderedSetVariable.nb_and_implW  s%   ø€ õ ‰wŒw×"Ò" 2 ~¸°wÀÑCÔCÐCr/   c                 óN   •— t          ¦   «                              |d|gi ¦  «        S r*  rq  rr  s       €r-   r+  zOrderedSetVariable.nb_xor_impla  s&   ø€ õ ‰wŒw×"Ò" 2Ð'=À¸wÈÑKÔKÐKr/   c                 óN   — |r|| fn| |f\  }}|                      |d|gi ¦  «        S )NrÑ   )r  r%  s         r-   r  z#OrderedSetVariable.nb_subtract_implk  s:   € ð *1ÐC˜ ˜˜°t¸U°m‰ˆˆvØ× Ò   \°F°8¸RÑ@Ô@Ð@r/   c                 óv   — |j         j                             | ¦  «         |                      |d|gi ¦  «         | S )NrÛ   )r±   r²   ró   r  r  s      r-   r!  z+OrderedSetVariable.nb_inplace_subtract_implt  s?   € ð 	Œ	Ô×'Ò'¨Ñ-Ô-Ð-Ø×Ò˜Ð0°5°'¸2Ñ>Ô>Ð>Øˆr/   r8  r9  r;  )r<  r=  r>  rC  rZ   rz   r   r   ro   rŒ   r)   rL  rø   rŠ   r   rF  r  r&  r+  r  r!  rI  rJ  s   @r-   rW  rW  ,  sC  ø€ € € € € ð<˜Cð <ð <ð <ð <ðCð Cð Cð CðO J¨s¤Oð Oð Oð Oð Oð˜T *¨S¤/Ô2ð ð ð ð ð)Ð!8ð )ð )ð )ð )ð>ð >ð >ð >ð ð	=ð =à'ð=ð ð=ð ð	=ð
 
ð=ð =ð =ð =ð =ð =ð ð	Dð Dà'ðDð ðDð ð	Dð
 
ðDð Dð Dð Dð Dð Dð ð	Lð Là'ðLð ðLð ð	Lð
 
ðLð Lð Lð Lð Lð Lð ð	Að Aà'ðAð ðAð ð	Að
 
ðAð Að Að AðØ-ðØ6Eðà	ðð ð ð ð ð ð ð r/   rW  c            
       óø   ‡ — e Zd ZeZdZdefd„Zede	d         fd„¦   «         Z
defd„Zdd„Zdefd	„Zdd„Zdd„Zd
ddedee         deeef         def
ˆ fd„Zdefd„Zd
ddeeef         fd„Zdedefd„Zˆ xZS )rÉ   Nr%   c                 ó´   — | j         sdS g }| j         D ]+}t          |j        ¦  «        }|                     |¦  «         Œ,dd                     |¦  «        z   dz   S )Núfrozenset()úfrozenset({rT   ú})r^  r_  s       r-   rZ   zFrozensetVariable.debug_repr‚  sg   € ØŒzð 	;Ø �=à!ˆEØ”Zð &ð &�Ý*¨1¬4Ñ0Ô0�Ø—’˜WÑ%Ô%Ð%Ð%Ø  4§9¢9¨UÑ#3Ô#3Ñ3°dÑ:Ð:r/   r   c                 óN   — t          | j                             ¦   «         ¦  «        S r'   r\   r^   s    r-   r_   zFrozensetVariable.set_itemsŒ  r`   r/   c                 ó   — t           S r'   )r+   r^   s    r-   r)   zFrozensetVariable.python_type�  s   € ÝÐr/   r#   c                 ó4   — t          j        t          ¦  «        S r'   )r
   r#   r+   r^   s    r-   rø   z!FrozensetVariable.python_type_var“  s   € ÝÔ(­Ñ3Ô3Ð3r/   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc                 ó@   — h | ]}|j                              ¦   «         ’ŒS rD   rn   rf   s     r-   ri   z7FrozensetVariable.as_python_constant.<locals>.<setcomp>—  s&   € ÐLÐLÐL¸˜!œ$×1Ò1Ñ3Ô3ÐLÐLÐLr/   )r+   r_   r^   s    r-   ro   z$FrozensetVariable.as_python_constant–  s!   € ÝÐLÐL¸T¼^ÐLÑLÔLÑMÔMÐMr/   rp   r"   r   c                 óº   ‡— | j         st          j        ‰d¦  «        S d                     ˆfd„| j        D ¦   «         ¦  «        }t          j        ‰d|› d�¦  «        S )Nry  rT   c              3   óB   •K  — | ]}t          ‰|j        ¦  «        V — Œd S r'   rs   rt   s     €r-   ru   z.FrozensetVariable.repr_impl.<locals>.<genexpr>�  rv   r/   rz  r{  rw   ry   s    ` r-   rz   zFrozensetVariable.repr_impl™  sg   ø€ àŒzð 	<Ý"Ô(¨¨]Ñ;Ô;Ð;Ø—	’	ÐOÐOÐOÐOÀÄÐOÑOÔOÑOÔOˆÝÔ$ RÐ)B¸Ð)BÐ)BÐ)BÑCÔCÐCr/   r{   r!   c                 ó  ‡— ‰                      ˆfd„¦  «         ‰                     d„ | j        D ¦   «         ¦  «         ‰                     t	          dt          | j        ¦  «        ¬¦  «        gt          dd¦  «        ¢¦  «         d S )Nc                  óV   •— ‰                       ‰                      d¦  «        g¦  «        S )Nr+   )ro  Úcreate_load_globalrj  s   €r-   rk  z/FrozensetVariable.reconstruct.<locals>.<lambda>¢  s-   ø€ �G×)Ò)à×.Ò.¨{Ñ;Ô;ðñô € r/   c                 ó   — g | ]	}|j         ‘Œ
S rD   r~   r   s     r-   r�   z1FrozensetVariable.reconstruct.<locals>.<listcomp>¨  r‚   r/   rm  r„   r   F)rn  r†   r_   ro  r   rˆ   r   r‰   s    `r-   rŠ   zFrozensetVariable.reconstruct   s§   ø€ Ø×Òðð ð ð ñ	
ô 	
ð 	
ð 	�ŠÐ6Ð6 t¤~Ð6Ñ6Ô6Ñ7Ô7Ð7Ø×Òå" <µS¸¼Ñ5HÔ5HÐIÑIÔIðå% a¨Ñ/Ô/ðñ	
ô 	
ð 	
ð 	
ð 	
r/   r©   r¯   r@   c           
      ó  •— |dv rt          d|› d�¦  «        ‚|dk    rt          j        d ¦  «        S |dk    rr|s|r2t          ||dt	          |¦  «        › dt	          |¦  «        › d�¦  «         t          | ¦  «        t          u r| S t          ¦   «                              ||||¦  «        S |d	v r8t          ¦   «                              ||||¦  «        }t          |j	        ¦  «        S t          ¦   «                              ||||¦  «        S )
N©rÕ   rE   rÝ   rÞ   rß   rí   úIllegal call_method z on a frozensetrG   r;   rØ   rÖ   r×   )rÑ   rÐ   rÒ   )
r  r   rb   r   rˆ   rŒ   rÉ   rF   r  r3   )rM   rp   r©   r¯   r@   ÚrrP   s         €r-   r  zFrozensetVariable.call_method°  s0  ø€ ð ÐIÐIÐIÝÐK°dÐKÐKÐKÑLÔLÐLØ�ZÒÐå#Ô*¨4Ñ0Ô0Ð0Ø�VŠ^ˆ^Øð �vð Ý#ØØØ)Ý˜4‘y”yÐ@Ð@­C°©K¬KÐ@Ð@Ð@ñ	ô ð õ �D‰zŒzÕ.Ð.Ð.Ø�Ý‘7”7×&Ò& r¨4°°vÑ>Ô>Ð>Øð 
ð 
ð 
õ
 ‘”×#Ò# B¨¨d°FÑ;Ô;ˆAÝ$ Q¤WÑ-Ô-Ð-Ý‰wŒw×"Ò" 2 t¨T°6Ñ:Ô:Ð:r/   c                 ó   — dS )NTrD   r^   s    r-   r    zFrozensetVariable.is_hashableÐ  s   € Øˆtr/   c                 óL  — ddl m} ddlm} |                      ¦   «         r#t          |                      ¦   «         ¦  «        dfS d}g }| j        D ]8} |||j        ¦  «        \  }}|p|}| 	                     ||¦  «        ¦  «         Œ9t          t          |¦  «        ¦  «        |fS )Nr   )ÚRawHash)Úgeneric_hash_implF)Úhashabler�  Úobject_protocolrŽ  r´   Úhashro   r_   rV   rH   r+   )	rM   rp   r�  rŽ  Úis_fakeÚ
raw_hashesrO   ÚhÚfakes	            r-   r¨   zFrozensetVariable.hash_implÓ  sÑ   € ð 	&Ð%Ð%Ð%Ð%Ð%Ø6Ð6Ð6Ð6Ð6Ð6à×"Ò"Ñ$Ô$ð 	:Ý˜×/Ò/Ñ1Ô1Ñ2Ô2°EÐ9Ð9ØˆØˆ
Ø”Nð 	*ð 	*ˆDØ'Ð'¨¨D¬GÑ4Ô4‰GˆAˆtØ�o ˆGØ×Ò˜g˜g a™jœjÑ)Ô)Ð)Ð)Ý•I˜jÑ)Ô)Ñ*Ô*¨GÐ3Ð3r/   r–   c                 ó€   — t          |t          ¦  «        o)|                      ¦   «         |                     ¦   «         k    S r'   )r6   r   ro   )rM   r–   s     r-   Úis_python_equalz!FrozensetVariable.is_python_equalã  s:   € å�u�oÑ.Ô.ð HØ×'Ò'Ñ)Ô)¨U×-EÒ-EÑ-GÔ-GÒGð	
r/   r:  r8  r9  )r<  r=  r>  r+   r@  r!  rC  rZ   rD  r*   r_   rŒ   r)   rø   r   ro   rz   rŠ   rÅ   r   rJ   r  rF  r    rG  rH  r¨   Úobjectr—  rI  rJ  s   @r-   rÉ   rÉ   |  s´  ø€ € € € € à€Mà#Ðð;˜Cð ;ð ;ð ;ð ;ð ð&˜3Ð0Ô1ð &ð &ð &ñ „Xð&ð˜Tð ð ð ð ð4ð 4ð 4ð 4ðN Cð Nð Nð Nð NðDð Dð Dð Dð
ð 
ð 
ð 
ð ;à'ð;ð ð;ð �?Ô#ð	;ð
 �S˜/Ð)Ô*ð;ð 
ð;ð ;ð ;ð ;ð ;ð ;ð@˜Tð ð ð ð ð4Ð7ð 4¸EÀ#ÀtÀ)Ô<Lð 4ð 4ð 4ð 4ð 
 Vð 
°ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r/   rÉ   c            
       ó°   ‡ — e Zd Zdefd„Zdddee         ddfd„Zede	fd„¦   «         Z
defd	„Zde	fd
„Zdddedee         deeef         def
ˆ fd„Zˆ xZS )ÚDictKeySetVariabler%   c                 ó´   — | j         sdS g }| j         D ]+}t          |j        ¦  «        }|                     |¦  «         Œ,dd                     |¦  «        z   dz   S )Nzdict_keys([])zdict_keys([rT   r]  r^  r_  s       r-   rZ   zDictKeySetVariable.debug_reprë  sg   € ØŒzð 	;Ø"�?à!ˆEØ”Zð &ð &�Ý*¨1¬4Ñ0Ô0�Ø—’˜WÑ%Ô%Ð%Ð%Ø  4§9¢9¨UÑ#3Ô#3Ñ3°dÑ:Ð:r/   rp   r"   r¯   Nc                 ó   — d S r'   rD   )rM   rp   r¯   s      r-   r¼   z-DictKeySetVariable.install_set_contains_guardõ  s	   € ð 	ˆr/   c                 ó   — | j         S r'   rœ   r^   s    r-   r_   zDictKeySetVariable.set_itemsû  s
   € àŒzÐr/   c                 ó   — ddl m} |S )Nr   )Ú	dict_keys)rî   rŸ  )rM   rŸ  s     r-   r)   zDictKeySetVariable.python_typeÿ  s   € Ø%Ð%Ð%Ð%Ð%Ð%àÐr/   c                 óz   — t                                d„ | j        D ¦   «         d ¦  «                             ¦   «         S )Nc                 ó@   — h | ]}|j                              ¦   «         ’ŒS rD   rn   rf   s     r-   ri   z8DictKeySetVariable.as_python_constant.<locals>.<setcomp>  s&   € Ð?Ð?Ð?¨1ˆQŒT×$Ò$Ñ&Ô&Ð?Ð?Ð?r/   )rJ   rK   r_   r]   r^   s    r-   ro   z%DictKeySetVariable.as_python_constant  s6   € Ý�}Š}Ø?Ð?°´Ð?Ñ?Ô?Àñ
ô 
ç
Š$‰&Œ&ð	r/   r©   r@   c                 óz   •— |dv rt          d|› d�¦  «        ‚t          ¦   «                              ||||¦  «        S )Nrˆ  r‰  z on a dict_keys)r  rF   r  )rM   rp   r©   r¯   r@   rP   s        €r-   r  zDictKeySetVariable.call_method	  sI   ø€ ð ÐIÐIÐIÝÐK°dÐKÐKÐKÑLÔLÐLÝ‰wŒw×"Ò" 2 t¨T°6Ñ:Ô:Ð:r/   )r<  r=  r>  rC  rZ   rÅ   r   r¼   rD  r   r_   rŒ   r)   ro   rJ   r  rI  rJ  s   @r-   rš  rš  ê  s%  ø€ € € € € ð;˜Cð ;ð ;ð ;ð ;ðØ-ðØ59¸/Ô5Jðà	ðð ð ð ð ð˜3ð ð ð ñ „Xðð˜Tð ð ð ð ð
 Cð ð ð ð ð
	;à'ð	;ð ð	;ð �?Ô#ð		;ð
 �S˜/Ð)Ô*ð	;ð 
ð	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;r/   rš  )9r?  r¸   r  Úcollections.abcr   Útypingr   r   Útorch.utils._ordered_setr   Ú r	   r
   Úbytecode_transformationr   r   r¦   r   r   Úguardsr   r   r5   r   r   r   rî   r   r   r   r   r   r   r   r<   r   r   Úconstantr   r�  r   r    Útorch._dynamo.codegenr!   Útorch._dynamo.symbolic_convertr"   Útorch._dynamo.variables.builtinr#   rF  r.   r1   r=   r?   rL  rW  rÉ   rš  rD   r/   r-   ú<module>r­     s-  ððð ð" Ð Ð Ð Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à /Ð /Ð /Ð /Ð /Ð /à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ Iðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø &Ð &Ð &Ð &Ð &Ð &Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2ð ð @Ø/Ð/Ð/Ð/Ð/Ð/ØHÐHÐHÐHÐHÐHØ?Ð?Ð?Ð?Ð?Ð?ð;˜ð ;¨Dð ;ð ;ð ;ð ;ð.�_ð .¨ð .ð .ð .ð .ð
�/ð  oð ð ð ð ð$S
ð S
ð S
ð S
ð S
�/ñ S
ô S
ð S
ðlBUð BUð BUð BUð BU˜oñ BUô BUð BUðJMð Mð Mð Mð M˜ñ Mô Mð Mð`k
ð k
ð k
ð k
ð k
˜ñ k
ô k
ð k
ð\(;ð (;ð (;ð (;ð (;˜ñ (;ô (;ð (;ð (;ð (;r/   