Ë
    ÃÓ^jüš  ã                   óª  — 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«      Z8y)#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                 óJ   — t        | j                  «       t        t        f«      S ©N)Ú
issubclassÚpython_typeÚsetÚ	frozenset©r$   s    úg/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_dynamo/variables/sets.pyÚpyanyset_checkr.   6   s   € Ü�c—o‘oÓ'¬#¬yÐ)9Ó:Ð:ó    c                 ó>   — t        | j                  «       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                  |j                  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=   ?   s]   € ô & c¬9×+KÑ+KÔLˆ3�<Š<ÐRU€DØ€|ÜÐ8Ó9Ð9Ø�:‰:Ø�j‰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d6d„Zd7d„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.d8d&„Z/ddd'edefd(„Z0dddefd)„Z1	 d9ddded*edefd+„Z2dddedefd,„Z3	 d9ddded*edefd-„Z4dddedefd.„Z5	 d9ddded*edefd/„Z6dddedefd0„Z7	 d9ddded*edefd1„Z8dddedefd2„Z9dddefd3„Z:ddded4edefd5„Z;ˆ xZ<S ):ÚSetVariablez2Represents a Python set during symbolic execution.r3   Úkwargsr%   Nc                 ó$  •— d|v r|j                  d«       d|v r|j                  d«       t        ‰| �  di |¤Ž g }|D ]L  }t        |t        «      r|j                  |«       Œ%|j                  t	        |j                  «       «      «       ŒN t        j                  |t        j                  «       «      | _        | j                  rt        | j                  «       nd| _        t        j                  |t        j                  «       «      | _        y )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ä‰ÑÑ"˜6Ò"ð
 ˆØò 	GˆDÜ˜$¤Ô0à×%Ñ% dÕ+ð ×%Ñ%¤o°d·l±l³nÓ&EÕFð	Gô —]‘] >´;×3MÑ3MÓ3OÓPˆŒ
à59·[²[Ô$ T§[¡[Ó1Ñ1Àdð 	Ô#ô #Ÿm™mØœK×6Ñ6Ó8ó
ˆÕr/   c                 óä   — | j                   syg }| j                   D ]<  }t        |t        «      r|j                  n|}t	        |«      }|j                  |«       Œ> ddj                  |«      z   dz   S )Núset()ú{ú, ú})r3   r6   r   Úvtr   rH   Újoin)rM   r3   ÚvrV   Úval_strs        r-   Ú
debug_reprzSetVariable.debug_repr}   si   € Ø�zŠzØà!ˆEØ—Z‘Zò &�Ü'¨¬?Ô;�Q—T’TÀ�Ü*¨2Ó.�Ø—‘˜WÕ%ð&ð ˜Ÿ™ 5Ó)Ñ)¨CÑ/Ð/r/   r   c                 óH   — t        | j                  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                 óp   — | j                   D �ch c]  }|j                  j                  «       ’Œ c}S c c}w r'   )r_   rV   Úas_proxy©rM   Úks     r-   rd   zSetVariable.as_proxy‘   s$   € Ø)-¯©Ö8 A�—‘—‘•Ò8Ð8ùÒ8ó   �!3c                 ó   — t         S r'   )r*   r^   s    r-   r)   zSetVariable.python_type”   s   € Üˆ
r/   c                 óp   — | j                   D �ch c]  }|j                  j                  «       ’Œ c}S c c}w r'   )r_   rV   Úas_python_constantre   s     r-   rj   zSetVariable.as_python_constant—   s'   € Ø37·>±>ÖB¨a�—‘×'Ñ'Õ)ÒBÐBùÒBrg   Útxr"   c                 óÈ   ‡— | j                   st        j                  ‰d«      S dj                  ˆfd„| j                  D «       «      }t        j                  ‰d|z   dz   «      S )NrR   rT   c              3   óJ   •K  — | ]  }t        ‰|j                  «      –— Œ y ­wr'   ©r   rV   ©Ú.0rO   rk   s     €r-   ú	<genexpr>z(SetVariable.repr_impl.<locals>.<genexpr>ž   ó   øè ø€ ÒO¸œ, r¨4¯7©7×3ÑOùó   ƒ #rS   rU   ©r3   r   ÚbuildrW   r_   ©rM   rk   r3   s    ` r-   Ú	repr_implzSetVariable.repr_implš   sQ   ø€ à�zŠzÜ"×(Ñ(¨¨WÓ5Ð5Ø—	‘	ÓOÀÇÁÔOÓOˆÜ×$Ñ$ R¨¨u©°sÑ):Ó;Ð;r/   c                 óÒ   — |j                  | j                  D �cg c]  }|j                  ‘Œ c}«       |j                  t	        dt        | j                  «      ¬«      «       y c c}w )NÚ	BUILD_SET©Úarg)Úforeachr_   rV   Úappend_outputr   Úlen©rM   ÚcodegenÚxs      r-   ÚreconstructzSetVariable.reconstruct¡   sE   € Ø�‰ t§~¡~Ö6 !˜Ÿ›Ò6Ô7Ø×ÑÔ0°Ä#ÀdÇnÁnÓBUÔVÕWùò 7s   šA$rV   c                 óš   — t        |t        «      st        dt        |«      › �«      ‚t	        |«      syt        |«      }|| j                  v S )NzExpected VariableTracker, got F)r6   r   r9   Útyper    r   r3   )rM   rV   Úkeys      r-   Ú__contains__zSetVariable.__contains__¥   sH   € Ü˜"œoÔ.Ü Ð#AÄ$ÀrÃ(ÀÐ!LÓMÐMô ˜2ŒØÜ˜bÓ!ˆØ�d—j‘jÐ Ð r/   c                 óx   ‡ — ‰ j                   xs, t        ˆ fd„‰ j                  j                  «       D «       «      S )Nc              3   óŽ   •K  — | ]<  \  }}‰j                  ‰j                  j                  |j                  «      |«      –— Œ> y ­wr'   )Úis_new_itemrB   ÚgetrV   )rp   r…   ÚvaluerM   s      €r-   rq   z,SetVariable.has_new_items.<locals>.<genexpr>±   sA   øè ø€ ò 2
ñ ��Uð ×Ñ˜T×0Ñ0×4Ñ4°S·V±VÓ<¸e×Dñ2
ùs   ƒAA)rC   Úanyr3   r^   s   `r-   Úhas_new_itemszSetVariable.has_new_items°   s9   ø€ Ø×*Ñ*ò 
¬có 2
ð #Ÿj™j×.Ñ.Ó0ô2
ó /
ð 	
r/   r‹   Úotherc                 óÚ   — |rS|j                  «       rC|j                  «       r3t        |j                  «       «      t        |j                  «       «      k7  S t        |«      t        |«      k7  S r'   )Úis_realizedÚidrI   )rM   r‹   rŽ   s      r-   r‰   zSetVariable.is_new_item·   sQ   € ñ �U×&Ñ&Ô(¨U×->Ñ->Ô-@Ü�e—m‘m“oÓ&¬"¨U¯]©]«_Ó*=Ñ=Ð=Ü�%‹yœB˜u›IÑ%Ð%r/   c                 óT   — | j                   D �cg c]  }|j                  ‘Œ c}S c c}w r'   )r3   rV   )rM   rk   r�   s      r-   Úunpack_var_sequencezSetVariable.unpack_var_sequence¾   s    € ð #Ÿj™jÖ)˜�—“Ò)Ð)ùÒ)s   �%c                 óv   •— ddl m}m} t        |j	                  d«      ||f«      rd |d<   t        ‰| �  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Ã   sA   ø€ ßWäØ�J‰J�Ó'Ð*:Ð<PÐ)Qô
ð  $ˆF�8ÑÜ‰w‰}Ñ&˜vÑ&Ð&r/   c                  ó   — y)NFrD   r^   s    r-   r    zSetVariable.is_hashableÌ   s   € Ør/   c                 óF   — ddl m}  ||d| j                  «       › d�«       y )Nr   )r   úunhashable type: 'ú')Úexcr   Úpython_type_name)rM   rk   r   s      r-   Ú	hash_implzSetVariable.hash_implÏ   s#   € Ý*á˜Ð1°$×2GÑ2GÓ2IÐ1JÈ!ÐLÕMr/   Únamec                 óv   •— |dk(  r$t        j                  || j                  «       «      S t        ‰| �  ||«      S )NrP   )r   ru   r)   rF   Úvar_getattr)rM   rk   rž   rP   s      €r-   r    zSetVariable.var_getattrÔ   s9   ø€ Ø�;ÒÜ"×(Ñ(¨¨T×-=Ñ-=Ó-?Ó@Ð@Ü‰wÑ" 2 tÓ,Ð,r/   c                 óJ   — t        j                  |t        t        |«      «      S r'   )r   ru   Úhasattrr*   )rM   rk   rž   s      r-   Úcall_obj_hasattrzSetVariable.call_obj_hasattrÙ   s   € ô ×$Ñ$ R¬´°dÓ);Ó<Ð<r/   Úargsc           	      ó˜  — | j                   sy |j                  j                  j                  | «      ry |d   | v }|d   j                   €�|d   j	                  «       rm|rt        | «      j                  nt        | «      j                  }t        | j                  t        j                  ||d   j                  «       ¬«      «      «       y y y )Nr   )r…   )r5   ÚoutputÚside_effectsÚis_modifiedÚis_python_constantr„   ÚCONTAINS_GUARDÚNOT_CONTAINS_GUARDr   Ú
make_guardÚ	functoolsÚpartialrj   )rM   rk   r¤   ÚcontainsÚguard_fns        r-   Úinstall_set_contains_guardz&SetVariable.install_set_contains_guardÞ   s³   € ð �{Š{Øà�9‰9×!Ñ!×-Ñ-¨dÔ3Øà˜‘7˜d�?ˆØ�‰7�>‰>Ð! d¨1¡g×&@Ñ&@Ô&Bá-5”�T“
×)Ò)¼4À»:×;XÑ;Xð ô Ø—‘Ü×%Ñ%Ø Ø  ™G×6Ñ6Ó8ôóõð	 'CÐ!r/   Úfnc                 ót  — 	  || g|¢D �cg c]  }|j                  «       ‘Œ c}i |j                  «       D ��ci c]  \  }}||j                  «       “Œ c}}¤Ž}t        j                  |«      S c c}w c c}}w # t        $ r4}	t        t	        |	«      |t        |	j                  «      ¬«       Y d }	~	ŒYd }	~	ww xY w)N©r¤   )	rj   r3   Ú	Exceptionr   r„   Úlistr¤   r   ru   )
rM   rk   r²   r¤   r@   r�   rf   rX   Úresr›   s
             r-   Ú_fast_set_methodzSetVariable._fast_set_methodõ   s¥   € ð	IÙØ37°-¸$°-Ö@¨Q�!×&Ñ&Õ(Ò@ðà9?¿¹»×H±°°A�1�a×*Ñ*Ó,Ñ,ÓHñˆCô ×$Ñ$ R¨Ó-Ð-ùò AùÛHøäò 	IÜ$¤T¨#£Y°¼¸c¿h¹h»×HÒHûð	Iús2   ‚	A: ‹A/¢A: ¸A4ÁA: Á/A: Á:	B7Â*B2Â2B7rO   c                 óî   — t        |«      s>t        |«      st        |d|j                  «       › d�«       t	        |j
                  «      }| j                  ||g«       || v }t        j                  ||«      S )Nr™   rš   )	r    r1   r   rœ   ÚFrozensetVariabler3   r±   r   ru   )rM   rk   rO   r¯   s       r-   Úsq_containszSetVariable.sq_contains  ss   € ô ˜4Ô ô ˜tÔ$Ü  Ð'9¸$×:OÑ:OÓ:QÐ9RÐRSÐ%TÔUô
 % T§Z¡ZÓ0ˆDØ×'Ñ'¨¨T¨FÔ3Ø˜4�<ˆÜ×$Ñ$ R¨Ó2Ð2r/   c                 óâ  •— ddl m} ddlm} |dv rM |||«      rD| j	                  «       t
        u r.| j	                  «       }| j                  |t        ||«      ||«      S ddlm	}m
}	 |dk(  r£ |j                  |t
        «      j                  |g|¢­i |¤Ž}
|j                  j                  j                  | «       | j                   j#                  «        | j                   j%                  |
j                   «       t'        j                  d «      S |dk(  r�|st)        |«      dk7  r&t+        ||d	t)        |«      › d
t)        |«      › d�«       |j                  j                  j                  | «       t,        j/                  «       | j                   t1        |d   «      <   t'        j                  d «      S |dk(  r¡|s|r&t+        ||dt)        |«      › d
t)        |«      › d�«       	 | j2                  j5                  «       j6                  }d| _         |j                  j                  j                  | «       | j                   j5                  t1        «      «       |S |dk(  rl|st)        |«      dk7  r&t+        ||d	t)        |«      › d
t)        |«      › d�«       |j                  |tB        jD                  «      jG                  || |d   gi «      S |dk(  r`|rt+        ||dt)        |«      › d�«       |j                  |tB        jH                  «      jG                  || g|¢d| jK                  «       i«      S |dk(  rP|rt+        ||dt)        |«      › d�«       |j                  |tB        jL                  «      jG                  || g|¢i «      S |dk(  r`|rt+        ||dt)        |«      › d�«       |j                  |tB        jN                  «      jG                  || g|¢d| jK                  «       i«      S |dk(  r`|rt+        ||dt)        |«      › d�«       |j                  |tB        jP                  «      jG                  || g|¢d| jK                  «       i«      S |dk(  rP|rt+        ||dt)        |«      › d�«       |j                  |tB        jR                  «      jG                  || g|¢i «      S |dk(  rz|st)        |«      dk7  r&t+        ||d	t)        |«      › d
t)        |«      › d�«       |j                  |tB        jT                  «      jG                  || g|¢d| jK                  «       i«      S |dk(  rj|st)        |«      dk7  r&t+        ||d	t)        |«      › d
t)        |«      › d�«       |j                  |tB        jV                  «      jG                  || g|¢i «      S |dk(  r`| jY                  «       rP|rt+        ||dt)        |«      › d�«       |j                  |tB        jZ                  «      jG                  || g|¢i «      S |dk(  r·|st)        |«      dk7  r&t+        ||d	t)        |«      › d
t)        |«      › d�«       |d   | vrt;        t8        ||¬«       d| _         |j                  j                  j                  | «       | j                   j5                  t1        |d   «      «       t'        j                  d «      S |dk(  r¥|st)        |«      dk7  r&t+        ||d	t)        |«      › d
t)        |«      › d�«       |d   | v rSd| _         |j                  j                  j                  | «       | j                   j5                  t1        |d   «      «       t'        j                  d «      S |dv rÈt)        |«      dk7  rt+        ||d t)        |«      › d!�«       t\        j^                  t\        j`                  dœ}|d   jc                  «       }te        |t,        «      s(|j                  |t
        «      jG                  ||gi «      }|j                  ||jg                  |«      «      jG                  || |gi «      S |d"v ršdddd"œjg                  |«      }ti        |d   t,        tj        jl                  ||	f«      s<t;        tn        |d#|› d$| jq                  «       › d%|d   jq                  «       › d&�g¬«       |€ts        d'|› �«      ‚| ju                  ||||«      S |d(v ržd)d*d+d(œjg                  |«      }ti        |d   t,        tj        jl                  ||	f«      s<t;        tn        |d#|› d$|d   jq                  «       › d%| jq                  «       › d&�g¬«       |€ts        d,|› �«      ‚|d   ju                  ||| g|«      S |d-v r�ti        |d   t,        tj        jl                  ||	f«      s<t;        tn        |d#|› d$| jq                  «       › d%|d   jq                  «       › d&�g¬«       ddddd-œjg                  |«      }|€ts        d.|› �«      ‚| ju                  ||||«       | S |d/k(  rS|s|r&t+        ||dt)        |«      › d
t)        |«      › d�«       tw        jx                  |t)        | j                   «      «      S |d0k(  r5|s|r&t+        ||dt)        |«      › d
t)        |«      › d�«       t{        | «      S |d1k(  r…|s|r&t+        ||dt)        |«      › d
t)        |«      › d�«       d| _         |j                  j                  j                  | «       | j                   j#                  «        t'        j                  d «      S t|        ‰| �é  ||||«      S # t8        $ r0}t;        t8        |t=        |j>                  «      ¬«       Y d }~�	Œdd }~ww xY w)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   ru   r=   rF   )rM   rk   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Ø× Ñ Ó"¤cÑ)à×&Ñ&Ó(ˆGØ×(Ñ(¨¬W°W¸dÓ-CÀTÈ6ÓRÐR÷ 	?à�:ÒØDÐ+×2Ñ2°2´sÓ;×DÑDØðØòØ#ñˆKð �I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J×ÑÔØ�J‰J×Ñ˜k×/Ñ/Ô0Ü#×*Ñ*¨4Ó0Ð0Ø�UŠ]Ùœ˜T› ašÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð �I‰I×"Ñ"×+Ñ+¨DÔ1Ü3>×3MÑ3MÓ3OˆD�J‰J” t¨A¡wÓ/Ñ0Ü#×*Ñ*¨4Ó0Ð0Ø�UŠ]Ù™Ü#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ðJØ*.¯.©.×*<Ñ*<Ó*>×*AÑ*A�ð +/ˆDÔ'Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J�N‰Nœ?¨6Ó2Ô3ØˆMØ�\Ò!Ùœ˜T› ašÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð %×+Ñ+¨B´	×0HÑ0HÓI×WÑWØ�T˜4 ™7�O Róð ð �^Ò#ÙÜ# B¨¨j¼SÀ»[¸MÈÐ:QÔRØ$×+Ñ+Ø”I×.Ñ.óç‰mØØ�˜�Ø˜×,Ñ,Ó.Ð/óðð Ð*Ò*ÙÜ# B¨¨j¼SÀ»[¸MÈÐ:QÔRØ$×+Ñ+Ø”I×5Ñ5óç‰m˜B  ¨ ¨rÓ2ð3ð �WŠ_ÙÜ# B¨¨j¼SÀ»[¸MÈÐ:QÔRØ$×+Ñ+¨B´	×0CÑ0CÓD×RÑRØØ�˜�Ø˜×,Ñ,Ó.Ð/óð ð
 �\Ò!ÙÜ#Ø˜Ð :¼3¸v»;¸-ÀwÐOôð %×+Ñ+¨B´	×0HÑ0HÓI×WÑWØØ�˜�Ø˜×,Ñ,Ó.Ð/óð ð
 Ð(Ò(ÙÜ# B¨¨j¼SÀ»[¸MÈÐ:QÔRØ$×+Ñ+Ø”I×3Ñ3óç‰m˜B  ¨ ¨rÓ2ð3ð Ð+Ò+Ùœ˜T› ašÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð %×+Ñ+Ø”I×6Ñ6óç‰mØØ�˜�Ø˜×,Ñ,Ó.Ð/óðð Ð2Ò2Ùœ˜T› ašÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð %×+Ñ+Ø”I×=Ñ=óç‰m˜B  ¨ ¨rÓ2ð3ð �XÒ $§/¡/Ô"3ÙÜ# B¨¨j¼SÀ»[¸MÈÐ:QÔRØ$×+Ñ+¨B´	×0DÑ0DÓE×SÑSØ�T�M˜D�M 2óð ð �XÒÙœ˜T› ašÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð �A‰w˜dÑ"Ü(¬°2¸DÕAØ*.ˆDÔ'Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J�N‰Nœ?¨4°©7Ó3Ô4Ü#×*Ñ*¨4Ó0Ð0Ø�YÒÙœ˜T› ašÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð �A‰w˜$‰Ø.2�Ô+Ø—	‘	×&Ñ&×/Ñ/°Ô5Ø—
‘
—‘œ¨t°A©wÓ7Ô8Ü#×*Ñ*¨4Ó0Ð0ØÐ/Ñ/Ü�4‹y˜AŠ~Ü# B¨¨h¼3¸t»9¸+ÀUÐ8KÔLô %ŸK™KÜ&Ÿk™kñˆBð ˜‘G—O‘OÓ%ˆEÜ˜%¤Ô-Ø)×0Ñ0°´SÓ9×GÑGÈÈUÈGÐUWÓX�Ø$×+Ñ+¨B°·±°t³Ó=×KÑKØ�T˜5�M 2óð ð Ð6Ñ6à)Ø1Ø'ñ÷ ‰c�$‹ið	 ô
 Ø�Q‘äÜ×4Ñ4Ø%Ø$ð	ôô )ÜØà:¸4¸&ÀÀD×DYÑDYÓD[ÐC\Ð\cÐdhÐijÑdk×d|Ñd|Ód~Ðcð  @Að  Bðõð ˆyÜ$Ð'CÀDÀ6Ð%JÓKÐKØ×#Ñ# B¨¨4°Ó8Ð8ØÐ9Ñ9à%Ø%Ø%ñ÷ ‰c�$‹ið	 ô
 Ø�Q‘äÜ×4Ñ4Ø%Ø$ð	ôô )ÜØà:¸4¸&ÀÀDÈÁG×D\ÑD\ÓD^ÐC_Ð_fÐgk×g|Ñg|Óg~Ðfð  @Að  Bðõð ˆyÜ$Ð'KÈDÈ6Ð%RÓSÐSØ˜‘7×&Ñ& r¨1¨t¨f°fÓ=Ð=ØÐDÑDÜØ�Q‘äÜ×4Ñ4Ø%Ø$ð	ôô )ÜØà:¸4¸&ÀÀD×DYÑDYÓD[ÐC\Ð\cÐdhÐijÑdk×d|Ñd|Ód~Ðcð  @Að  Bðõð 2Ø#Ø9Ø/ñ	÷
 ‰c�$‹ið ð ˆyÜ$Ð'KÈDÈ6Ð%RÓSÐSØ×Ñ˜R  D¨&Ô1ØˆKØ�YÒÙ‘vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ô #×(Ñ(¨¬S°·±«_Ó=Ð=Ø�VŠ^Ù‘vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ô ˜D“>Ð!Ø�WŠ_Ù‘vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð +/ˆDÔ'Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J×ÑÔÜ#×*Ñ*¨4Ó0Ð0Ü‰wÑ" 2 t¨T°6Ó:Ð:øô[ ò JÜ(¬°2¼DÀÇÁ»L×IÓIûðJús   Ç!$l5 ì5	m.ì>%m)í)m.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   rk   r{   s      r-   Úgetitem_constzSetVariable.getitem_constE  s   € ô Ð8Ó9Ð9r/   c                 óÒ   — ddl m} | j                  rDt        | j                  «      s/|j                  j
                  j                  | j                  «        || j                  «      S )Nr   )ÚSetIterator)Úiterr  r5   r   r¦   Úguard_on_key_orderrÆ   r3   )rM   rk   r  s      r-   Útp_iter_implzSetVariable.tp_iter_implJ  sC   € Ý%à�;Š;Ô1°$·+±+Ô>Ø�I‰I×(Ñ(×,Ñ,¨T¯[©[Ô9Ù˜4Ÿ:™:Ó&Ð&r/   Úreversec                 óê   — |r|| fn| |f\  }}t        |«      rt        |«      st        j                  t        «      S t	        |«      }||u r|S |j
                  j                  |j
                  «       |S r'   )r.   r   rb   ÚNotImplementedr=   r3   rÎ   )rM   rk   rŽ   r  Úself_Úother_rù   s          r-   Ú
nb_or_implzSetVariable.nb_or_implQ  si   € ñ *1˜ ™°t¸U°m‰ˆˆvä˜eÔ$¬N¸6Ô,BÜ#×*Ñ*¬>Ó:Ð:ä˜%“ˆØ�F‰?ØˆMØ�‰×Ñ˜FŸL™LÔ)Øˆr/   c                 óâ   — t        |«      st        j                  t        «      S |j                  j
                  j                  | «       | j                  j                  |j                  «       | S r'   )	r.   r   rb   r  r¦   r§   rä   r3   rÎ   ©rM   rk   rŽ   s      r-   Únb_inplace_or_implzSetVariable.nb_inplace_or_implc  sP   € ô ˜eÔ$Ü#×*Ñ*¬>Ó:Ð:à
�	‰	×Ñ×'Ñ'¨Ô-Ø�
‰
×Ñ˜%Ÿ+™+Ô&Øˆr/   c                 ó  — |r|| fn| |f\  }}t        |«      rt        |«      st        j                  t        «      S t	        |«      }t        |j                  j                  «       «      D ]  }|j                  j                  |d «       Œ  |S r'   )	r.   r   rb   r  r=   r¶   r3   r]   rE   )rM   rk   rŽ   r  r	  r
  rù   rf   s           r-   Únb_subtract_implzSetVariable.nb_subtract_impln  s|   € ñ *1˜ ™°t¸U°m‰ˆˆvä˜eÔ$¬N¸6Ô,BÜ#×*Ñ*¬>Ó:Ð:ä˜%“ˆÜ�f—l‘l×'Ñ'Ó)Ó*ò 	&ˆAØ�L‰L×Ñ˜Q Õ%ð	&àˆr/   c                 ó   — t        |«      st        j                  t        «      S |j                  j
                  j                  | «       t        |j                  j                  «       «      D ]  }| j                  j                  |d «       Œ  | S r'   )r.   r   rb   r  r¦   r§   rä   r¶   r3   r]   rE   )rM   rk   rŽ   rf   s       r-   Únb_inplace_subtract_implz$SetVariable.nb_inplace_subtract_impl  sm   € ô ˜eÔ$Ü#×*Ñ*¬>Ó:Ð:à
�	‰	×Ñ×'Ñ'¨Ô-Ü�e—k‘k×&Ñ&Ó(Ó)ò 	$ˆAØ�J‰J�N‰N˜1˜dÕ#ð	$àˆr/   c                 ó¤   — |r|| fn| |f\  }}t        |«      rt        |«      st        j                  t        «      S |j	                  |d|gi «      S ©NrÁ   ©r.   r   rb   r  rö   ©rM   rk   rŽ   r  r	  r
  s         r-   Únb_and_implzSetVariable.nb_and_impl‹  sR   € ñ *1˜ ™°t¸U°m‰ˆˆvä˜eÔ$¬N¸6Ô,BÜ#×*Ñ*¬>Ó:Ð:à× Ñ   ^°f°X¸rÓBÐBr/   c                 óx   — t        |«      st        j                  t        «      S | j	                  |d|gi «       | S )NrË   r  r  s      r-   Únb_inplace_and_implzSetVariable.nb_inplace_and_impl™  s9   € ô ˜eÔ$Ü#×*Ñ*¬>Ó:Ð:à×Ñ˜Ð2°U°G¸RÔ@Øˆr/   c                 ó¤   — |r|| fn| |f\  }}t        |«      rt        |«      st        j                  t        «      S |j	                  |d|gi «      S ©NrÃ   r  r  s         r-   Únb_xor_implzSetVariable.nb_xor_impl£  sS   € ñ *1˜ ™°t¸U°m‰ˆˆvä˜eÔ$¬N¸6Ô,BÜ#×*Ñ*¬>Ó:Ð:à× Ñ  Ð%;¸f¸XÀrÓJÐJr/   c                 óx   — t        |«      st        j                  t        «      S | j	                  |d|gi «       | S )NrÍ   r  r  s      r-   Únb_inplace_xor_implzSetVariable.nb_inplace_xor_impl±  s9   € ô ˜eÔ$Ü#×*Ñ*¬>Ó:Ð:à×Ñ˜Ð:¸U¸GÀRÔHØˆr/   c                 óT   — t        j                  |t        | j                  «      «      S r'   )r   ru   r~   r_   )rM   rk   s     r-   Ú	sq_lengthzSetVariable.sq_length»  s   € Ü×$Ñ$ R¬¨T¯^©^Ó)<Ó=Ð=r/   rû   c                 ó’  — t        |t        «      s@	 |j                  «       }t        |t        t        f«      st	        j
                  t        «      S | j                  }|j                  }|dk(  rEt        |«      t        |«      k7  rt	        j
                  d«      S t        j                  |||k  «      S |dk(  rFt        |«      t        |«      k7  rt	        j
                  d«      S t        j                  |||k   «      S t        j                  |t        |   ||«      «      S # t        $ r t	        j
                  t        «      cY S w xY w)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   ru   r   )rM   rk   rŽ   rû   Ú
other_typeÚ
self_itemsÚother_itemss          r-   Úrichcompare_implzSetVariable.richcompare_impl¾  s#  € ô ˜%¤Ô-ð?Ø"×.Ñ.Ó0�
ô ˜j¬3´	Ð*:Ô;Ü'×.Ñ.¬~Ó>Ð>ð —^‘^ˆ
Ø—o‘oˆØ�Š>ä�:‹¤# kÓ"2Ò2Ü'×.Ñ.¨uÓ5Ð5Ü"×(Ñ(¨¨Z¸;Ñ-FÓGÐGØ�8Š^Ü�:‹¤# kÓ"2Ò2Ü'×.Ñ.¨tÓ4Ð4Ü"×(Ñ(¨°*ÀÑ2KÐ-LÓMÐMä"×(Ñ(ØÜ& rÑ*¨:°{ÓCóð øô+ 'ò ?Ü'×.Ñ.¬~Ó>Ò>ð?ús   ’D! Ä!"EÅE©rk   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   rd   r„   r)   rj   rw   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   r(  Ú__classcell__©rP   s   @r-   r?   r?   Q   s  ø„ Ù<ð €Mà!×.Ñ.€NØ%×6Ñ6Ðð!
à˜¨/Ñ9Ñ:ð!
ð ð!
ð 
õ	!
ðF	0˜Có 	0ð ð&˜3Ð0Ñ1ò &ó ð&ð ð-˜Oò -ó ð-ð9˜#ó 9ð˜Tó ðC Có Có<óXð	!˜ð 	!°4ó 	!ð
˜tó 
ð&Ø$ tÑ+ð&Ø4Cð&à	ó&ð*Ø-ð*à	ˆoÑ	ó*ð
'˜cð ' oõ 'ð˜Tó ðNÐ7ð N¸EÀ#ÀtÀ)Ñ<Ló Nð
-Ð9ð -Àõ -ð
=Ø-ð=Ø58ð=à	ó=ð
Ø-ðØ59¸/Ñ5Jðà	óð..à'ð.ð ð.ð �?Ñ#ð	.ð
 �S˜/Ð)Ñ*ð.ð 
ó.ð 3Ø-ð3Ø5Dð3à	ó3ð&h;à'ðh;ð ðh;ð �?Ñ#ð	h;ð
 �S˜/Ð)Ñ*ðh;ð 
õh;óT	.ð:Ø-ð:Ø4Cð:à	ó:ð
'Ð:ð '¸ó 'ð ñ	à'ðð ðð ð	ð
 
óð$	Ø-ð	Ø6Eð	à	ó	ð ñ	à'ðð ðð ð	ð
 
óð"
Ø-ð
Ø6Eð
à	ó
ð  ñ	Cà'ðCð ðCð ð	Cð
 
óCðØ-ðØ6Eðà	óð ñ	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        ‰| �  di |¤Ž y )NrD   )rF   rG   )rM   r@   rP   s     €r-   rG   z OrderedSetClassVariable.__init__è  s   ø€ Ü‰ÑÑ"˜6Ó"r/   c                 ó   — t         S r'   r   r^   s    r-   rj   z*OrderedSetClassVariable.as_python_constantë  ó   € ÜÐr/   rk   r"   rž   c           
      óÊ   •— |dk(  rNddl m} | j                  rt        | j                  |«      }nd } || |t	        t        t        |«      «      |¬«      S t        ‰| �!  ||«      S )NÚ__new__r   )ÚGetAttrVariable)r÷   r5   )	ÚmiscrC  r5   r   r„   rá   r   rF   r    )rM   rk   rž   rC  Úattr_sourcerP   s        €r-   r    z#OrderedSetClassVariable.var_getattrî  sb   ø€ ð �9ÒÝ-à�{Š{Ü(¨¯©°dÓ;‘à"�Ù"Ø�d¤D¬´¸TÓ)BÓ$CÈKôð ô ‘7Ñ& r¨4Ó0Ð0r/   r¤   c           
      óz  •— |dk(  rUt        |«      dk7  s|r&t        ||dt        |«      › dt        |«      › d�«       t        j                  g t	        «       ¬«      S t        t        |«      }|t        v r7t        |d   t        j                  «      r|d   j                  |||dd  |«      S t        ‰| �)  ||||«      S )	NrB  r   z'OrderedSet.__new__ only accepts one argrÇ   rÈ   ©r4   r   r   )r~   r   r
   ÚOrderedSetVariabler   rá   r*   r   r6   r?   rö   rF   )rM   rk   rž   r¤   r@   Úresolved_fnrP   s         €r-   rö   z#OrderedSetClassVariable.call_methodþ  s½   ø€ ð �9ÒÜ�4‹y˜AŠ~¡Ü#ØØØ=Ü˜4“y�k ¬C°«K¨=¸ðAôô ×/Ñ/°ÔBRÓBTÔUÐUäœc 4Ó(ˆØœ+Ñ%¬*°T¸!±W¼i×>SÑ>SÔ*TØ˜‘7×&Ñ& r¨4°°a°b°¸6ÓBÐBä‰wÑ" 2 t¨T°6Ó:Ð:r/   rH  c           
      óì   — t        |«      dkD  s|r&t        |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   rG  )r~   r   r   r
   rH  r   )rM   rk   r¤   r@   r3   s        r-   rç   z%OrderedSetClassVariable.call_function  su   € ô ˆt‹9�qŠ=™FÜØØØ1Ü�t“9�+˜Z¬¨F« }°Gð=ôô ˆt‹9˜Š>à‰Eä# B¨¨Q©Ó0ˆEÜ×+Ñ+¨EÔAQÓASÔTÐTr/   )r-  r.  r/  r   rG   r„   r   rj   r4  r   r    r¶   rJ   rö   rç   r:  r;  s   @r-   r=  r=  ç  sË   ø„ ð# ð #¨õ #ð D¨°C©Ñ$9ó ð1Ø-ð1Ø58ð1à	õ1ð ;à'ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
õ;ð0Uà'ðUð �?Ñ#ðUð �S˜/Ð)Ñ*ð	Uð
 
÷Ur/   r=  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 )rH  r%   c                 ó¼   — | j                   syg }| j                   D ](  }t        |j                  «      }|j                  |«       Œ* ddj	                  |«      z   dz   S )NzOrderedSet([])úOrderedSet([rT   ú])©r3   r   rV   rH   rW   ©rM   r3   rf   Úkey_strs       r-   rZ   zOrderedSetVariable.debug_repr-  sY   € Ø�zŠzØ#à!ˆEØ—Z‘Zò &�Ü*¨1¯4©4Ó0�Ø—‘˜WÕ%ð&ð " D§I¡I¨eÓ$4Ñ4°tÑ;Ð;r/   rk   r"   c                 ó€   ‡— dj                  ˆfd„| j                  D «       «      }t        j                  ‰d|› d�«      S )NrT   c              3   óJ   •K  — | ]  }t        ‰|j                  «      –— Œ y ­wr'   rn   ro   s     €r-   rq   z/OrderedSetVariable.repr_impl.<locals>.<genexpr>8  rr   rs   rM  rN  )rW   r_   r   ru   rv   s    ` r-   rw   zOrderedSetVariable.repr_impl7  s7   ø€ Ø—	‘	ÓOÀÇÁÔOÓOˆÜ×$Ñ$ R¨<¸°w¸bÐ)AÓBÐBr/   c                 ó‚   — t        | j                  D �cg c]  }|j                  j                  «       ‘Œ c}«      S c c}w r'   )r   r_   rV   rj   re   s     r-   rj   z%OrderedSetVariable.as_python_constant;  s,   € Ü¸d¿n¹nÖM¸˜1Ÿ4™4×2Ñ2Õ4ÒMÓNÐNùÒMó   ”!<c                 ó   — t         S r'   r   r^   s    r-   r)   zOrderedSetVariable.python_type>  r@  r/   c                 ó   — t        «       S r'   )r=  r^   s    r-   ré   z"OrderedSetVariable.python_type_varB  s   € Ü&Ó(Ð(r/   c                 ó2  ‡— ‰j                  ˆfd„«       ‰j                  | j                  D �cg c]  }|j                  ‘Œ c}«       ‰j	                  t        dt        | j                  «      ¬«      «       ‰j                  t        dd«      «       y c c}w )Nc                  ó(   •— ‰ j                  dd«      S )Nztorch.utils._ordered_setr   )Úload_import_from©r€   s   €r-   ú<lambda>z0OrderedSetVariable.reconstruct.<locals>.<lambda>G  s   ø€ �G×,Ñ,Ð-GÈÓV€ r/   Ú
BUILD_LISTrz   r   F)	Úadd_push_nullr|   r_   rV   r}   r   r~   Úextend_outputr   r   s    ` r-   r‚   zOrderedSetVariable.reconstructE  so   ø€ Ø×ÑÛVô	
ð 	�‰ t§~¡~Ö6 !˜Ÿ›Ò6Ô7Ø×ÑÔ0°Ä3ÀtÇ~Á~ÓCVÔWÔXØ×ÑÔ2°1°eÓ<Õ=ùò 7s   ¯BrŽ   r  c                 ó*   •— t         ‰| �  |d|gi «      S )NrÀ   ©rF   rö   ©rM   rk   rŽ   r  rP   s       €r-   r  zOrderedSetVariable.nb_or_implM  s   ø€ ô ‰wÑ" 2 w°°¸Ó<Ð<r/   c                 ó*   •— t         ‰| �  |d|gi «      S r  ra  rb  s       €r-   r  zOrderedSetVariable.nb_and_implW  s   ø€ ô ‰wÑ" 2 ~¸°wÀÓCÐCr/   c                 ó*   •— t         ‰| �  |d|gi «      S r  ra  rb  s       €r-   r  zOrderedSetVariable.nb_xor_impla  s   ø€ ô ‰wÑ" 2Ð'=À¸wÈÓKÐKr/   c                 óF   — |r|| fn| |f\  }}|j                  |d|gi «      S )NrÂ   )rö   r  s         r-   r  z#OrderedSetVariable.nb_subtract_implk  s2   € ñ *1˜ ™°t¸U°m‰ˆˆvØ× Ñ   \°F°8¸RÓ@Ð@r/   c                 óz   — |j                   j                  j                  | «       | j                  |d|gi «       | S )NrÌ   )r¦   r§   rä   rö   r  s      r-   r  z+OrderedSetVariable.nb_inplace_subtract_implt  s8   € ð 	�	‰	×Ñ×'Ñ'¨Ô-Ø×Ñ˜Ð0°5°'¸2Ô>Øˆr/   r)  r*  r,  )r-  r.  r/  r4  rZ   rw   r   r   rj   r„   r)   r=  ré   r‚   r   r7  r  r  r  r  r  r:  r;  s   @r-   rH  rH  ,  s:  ø„ ð<˜Có <óCðO J¨s¡Oó Oð˜T *¨S¡/Ñ2ó ð)Ð!8ó )ó>ð ñ	=à'ð=ð ð=ð ð	=ð
 
õ=ð ñ	Dà'ðDð ðDð ð	Dð
 
õDð ñ	Là'ðLð ðLð ð	Lð
 
õLð ñ	Aà'ðAð ðAð ð	Að
 
óAðØ-ðØ6Eðà	÷r/   rH  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yg }| j                   D ](  }t        |j                  «      }|j                  |«       Œ* ddj	                  |«      z   dz   S )Núfrozenset()úfrozenset({rT   ú})rO  rP  s       r-   rZ   zFrozensetVariable.debug_repr‚  sY   € Ø�zŠzØ à!ˆEØ—Z‘Zò &�Ü*¨1¯4©4Ó0�Ø—‘˜WÕ%ð&ð ! 4§9¡9¨UÓ#3Ñ3°dÑ:Ð:r/   r   c                 óH   — t        | j                  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/   c                 ó4   — t        j                  t        «      S r'   )r
   r#   r+   r^   s    r-   ré   z!FrozensetVariable.python_type_var“  s   € Ü×(Ñ(¬Ó3Ð3r/   c                 ó‚   — t        | j                  D �ch c]  }|j                  j                  «       ’Œ c}«      S c c}w r'   )r+   r_   rV   rj   re   s     r-   rj   z$FrozensetVariable.as_python_constant–  s,   € Ü¸T¿^¹^ÖL¸˜!Ÿ$™$×1Ñ1Õ3ÒLÓMÐMùÒLrU  rk   r"   c                 óÄ   ‡— | j                   st        j                  ‰d«      S dj                  ˆfd„| j                  D «       «      }t        j                  ‰d|› d�«      S )Nri  rT   c              3   óJ   •K  — | ]  }t        ‰|j                  «      –— Œ y ­wr'   rn   ro   s     €r-   rq   z.FrozensetVariable.repr_impl.<locals>.<genexpr>�  rr   rs   rj  rk  rt   rv   s    ` r-   rw   zFrozensetVariable.repr_impl™  sQ   ø€ à�zŠzÜ"×(Ñ(¨¨]Ó;Ð;Ø—	‘	ÓOÀÇÁÔOÓOˆÜ×$Ñ$ R¨<¸°w¸cÐ)BÓCÐCr/   c                 ó  ‡— ‰j                  ˆfd„«       ‰j                  | j                  D �cg c]  }|j                  ‘Œ c}«       ‰j	                  t        dt        | j                  «      ¬«      gt        dd«      ¢«       y c c}w )Nc                  óF   •— ‰ j                  ‰ j                  d«      g«      S )Nr+   )r_  Úcreate_load_globalr[  s   €r-   r\  z/FrozensetVariable.reconstruct.<locals>.<lambda>¢  s%   ø€ �G×)Ñ)à×.Ñ.¨{Ó;ðó€ r/   r]  rz   r   F)r^  r|   r_   rV   r_  r   r~   r   r   s    ` r-   r‚   zFrozensetVariable.reconstruct   sq   ø€ Ø×Ñóô	
ð 	�‰ t§~¡~Ö6 !˜Ÿ›Ò6Ô7Ø×Ñä" <´S¸¿¹Ó5HÔIðä% a¨Ó/ðõ	
ùò 7s   ¯Brž   r¤   r@   c           
      ó€  •— |dv rt        d|› d�«      ‚|dk(  rt        j                  d «      S |dk(  rO|s|r&t        ||dt	        |«      › dt	        |«      › d�«       t        | «      t        u r| S t        ‰| �!  ||||«      S |d	v r't        ‰| �!  ||||«      }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   rk   rž   r¤   r@   ÚrrP   s         €r-   rö   zFrozensetVariable.call_method°  sä   ø€ ð ÐIÑIÜÐ!5°d°V¸?ÐKÓLÐLØ�ZÒä#×*Ñ*¨4Ó0Ð0Ø�VŠ^Ù‘vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ô �D‹zÔ.Ñ.Ø�Ü‘7Ñ& r¨4°°vÓ>Ð>Øð 
ñ 
ô
 ‘Ñ# B¨¨d°FÓ;ˆAÜ$ Q§W¡WÓ-Ð-Ü‰wÑ" 2 t¨T°6Ó:Ð:r/   c                  ó   — y)NTrD   r^   s    r-   r    zFrozensetVariable.is_hashableÐ  s   € Ør/   c                 ó,  — ddl m} ddlm} | j	                  «       rt        | j                  «       «      dfS d}g }| j                  D ]5  } |||j                  «      \  }}|xs |}|j                   ||«      «       Œ7 t        t        |«      «      |fS )Nr   )ÚRawHash)Úgeneric_hash_implF)Úhashabler{  Úobject_protocolr|  r©   Úhashrj   r_   rV   rH   r+   )	rM   rk   r{  r|  Úis_fakeÚ
raw_hashesrO   ÚhÚfakes	            r-   r�   zFrozensetVariable.hash_implÓ  s’   € õ 	&Ý6à×"Ñ"Ô$Ü˜×/Ñ/Ó1Ó2°EÐ9Ð9ØˆØˆ
Ø—N‘Nò 	*ˆDÙ'¨¨D¯G©GÓ4‰GˆAˆtØ’o ˆGØ×Ñ™g a›jÕ)ð	*ô ”I˜jÓ)Ó*¨GÐ3Ð3r/   rŽ   c                 óh   — t        |t        «      xr! | j                  «       |j                  «       k(  S r'   )r6   r   rj   )rM   rŽ   s     r-   Úis_python_equalz!FrozensetVariable.is_python_equalã  s1   € ä�uœoÓ.ò HØ×'Ñ'Ó)¨U×-EÑ-EÓ-GÑGð	
r/   r+  r)  r*  )r-  r.  r/  r+   r1  r  r4  rZ   r5  r*   r_   r„   r)   ré   r   rj   rw   r‚   r¶   r   rJ   rö   r7  r    r8  r9  r�   Úobjectr…  r:  r;  s   @r-   rº   rº   |  sæ   ø„ à€Mà#Ðð;˜Có ;ð ð&˜3Ð0Ñ1ò &ó ð&ð˜Tó ó4ðN Có NóDó
ð ;à'ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
õ;ð@˜Tó ð4Ð7ð 4¸EÀ#ÀtÀ)Ñ<Ló 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yg }| j                   D ](  }t        |j                  «      }|j                  |«       Œ* ddj	                  |«      z   dz   S )Nzdict_keys([])zdict_keys([rT   rN  rO  rP  s       r-   rZ   zDictKeySetVariable.debug_reprë  sY   € Ø�zŠzØ"à!ˆEØ—Z‘Zò &�Ü*¨1¯4©4Ó0�Ø—‘˜WÕ%ð&ð ! 4§9¡9¨UÓ#3Ñ3°dÑ:Ð:r/   rk   r"   r¤   Nc                  ó   — y r'   rD   )rM   rk   r¤   s      r-   r±   z-DictKeySetVariable.install_set_contains_guardõ  s   € ð 	r/   c                 ó   — | j                   S r'   )r3   r^   s    r-   r_   zDictKeySetVariable.set_itemsû  s   € à�z‰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                 ó´   — t         j                  | j                  D �ch c]  }|j                  j	                  «       ’Œ c}d «      j                  «       S c c}w r'   )rJ   rK   r_   rV   rj   r]   re   s     r-   rj   z%DictKeySetVariable.as_python_constant  s>   € Ü�}‰}Ø04·±Ö?¨1ˆQ�T‰T×$Ñ$Õ&Ò?Àó
ç
‰$‹&ð	ùÚ?s   ž!Arž   r@   c                 óN   •— |dv rt        d|› d�«      ‚t        ‰| �	  ||||«      S )Nrv  rw  z on a dict_keys)rÿ   rF   rö   )rM   rk   rž   r¤   r@   rP   s        €r-   rö   zDictKeySetVariable.call_method	  s9   ø€ ð ÐIÑIÜÐ!5°d°V¸?ÐKÓLÐLÜ‰wÑ" 2 t¨T°6Ó:Ð:r/   )r-  r.  r/  r4  rZ   r¶   r   r±   r5  r   r_   r„   r)   rj   rJ   rö   r:  r;  s   @r-   rˆ  rˆ  ê  s­   ø„ ð;˜Có ;ðØ-ðØ59¸/Ñ5Jðà	óð ð˜3ò ó ðð˜Tó ð
 Có ð
	;à'ð	;ð ð	;ð �?Ñ#ð		;ð
 �S˜/Ð)Ñ*ð	;ð 
÷	;ñ 	;r/   rˆ  )9r0  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#   r7  r.   r1   r=   r?   r=  rH  rº   rˆ  rD   r/   r-   ú<module>rš     sØ   ðñó" Û Ý $ß %å /ç #ß Nß <ß 0ß IÑ I÷÷ ñ ÷ 4Ý &ß 2ñ Ý/ÝHÝ?ð;˜ð ;¨Dó ;ð.�_ð .¨ó .ð
�/ð  oó ô$S
�/ô S
ôlBU˜oô BUôJM˜ô Mô`k
˜ô k
ô\(;˜õ (;r/   