Ë
    g^(hŠˆ  ã                   ó®  — d Z ddlZddlZddl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 ddlmZmZmZmZ ddlmZmZ ddlm Z  erddl!m"Z" d„ Z# G d„ de«      Z$ G d„ de«      Z% G d„ de$«      Z& G d„ de$«      Z' G d„ de$«      Z( G d„ de(«      Z) G d„ de(«      Z* G d„ d e«      Z+ G d!„ d"e+«      Z, G d#„ d$e+«      Z-y)%a¼  
Dictionary-related variable tracking classes for PyTorch Dynamo.

This module implements variable tracking for different types of dictionary-like objects:
- Regular Python dictionaries (dict)
- Ordered dictionaries (collections.OrderedDict)
- Default dictionaries (collections.defaultdict)
- Dictionary views (keys and values)
- Sets and frozensets (implemented internally using dictionaries)

These classes are responsible for tracking dictionary operations during graph compilation,
maintaining proper guards for dictionary mutations and key existence checks. They handle
dictionary creation, modification, key/value access, and view operations while ensuring
correct behavior in the compiled code through appropriate guard installation.

The implementation uses a special _HashableTracker wrapper to handle dictionary keys
while preserving proper aliasing semantics. Sets are implemented as dictionaries with
None values for efficiency and code reuse.
é    N)ÚOptionalÚTYPE_CHECKING)Úis_fakeé   )Ú	polyfillsÚ	variables)Úcreate_call_functionÚcreate_instruction)Úraise_observed_exceptionÚunimplemented)ÚGuardBuilderÚinstall_guard)Úis_from_local_source)Úcmp_name_to_op_mappingÚ	dict_keysÚdict_valuesÚspecialize_symnodeé   )ÚValueMutationNewÚVariableTracker©ÚConstantVariable)ÚInstructionTranslatorc                 ó„  — t        | t        j                  «      r!| j                  «       s| j	                  «       ryt        | t        j
                  «      r5| j                  «       j                  j                  j                  d«      d uS t        | t        j                  «      rt        d„ | j                  D «       «      S t        | t        j                  t        j                  t        j                  t        j                   t        j"                  j$                  t        j&                  t        j(                  t        j*                  j,                  t        j.                  t        j0                  t        j2                  t        j4                  t        j6                  t        j8                  t        j:                  f«      S )NTÚexample_valuec              3   ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Úis_hashable)Ú.0Úes     ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_dynamo/variables/dicts.pyú	<genexpr>zis_hashable.<locals>.<genexpr>C   s   è ø€ Ò3 a”;˜q—>Ñ3ùs   ‚)Ú
isinstancer   ÚLazyVariableTrackerÚis_realizedr   ÚTensorVariableÚas_proxyÚnodeÚmetaÚgetÚTupleVariableÚallÚitemsÚBuiltinVariableÚSymNodeVariabler   ÚEnumVariableÚuser_definedÚUserDefinedClassVariableÚUserFunctionVariableÚSkipFunctionVariableÚmiscÚNumpyVariableÚNNModuleVariableÚUnspecializedNNModuleVariableÚMethodWrapperVariableÚTorchInGraphFunctionVariableÚTypingVariableÚFunctoolsPartialVariableÚWeakRefVariable)Úxs    r!   r   r   1   s.  € ô 	�1”i×3Ñ3Ô4Ø—‘”Ø�M‰MŒOàä�!”Y×-Ñ-Ô.ð �z‰z‹|× Ñ ×%Ñ%×)Ñ)¨/Ó:À$ÐFÐFÜ	�A”y×.Ñ.Ô	/ÜÑ3¨1¯7©7Ô3Ó3Ð3äØä×)Ñ)Ü×)Ñ)Ü×*Ñ*Ü×&Ñ&Ü×&Ñ&×?Ñ?Ü×.Ñ.Ü×.Ñ.Ü—‘×,Ñ,Ü×*Ñ*Ü×7Ñ7Ü×/Ñ/Ü×6Ñ6Ü×(Ñ(Ü×2Ñ2Ü×)Ñ)ðó
ð 	
ó    c                   ó  ‡ — e Zd Zdhej                  £Z G d„ d«      Zefdeeef   ddfˆ fd„Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zdefd„Zd„ Zd„ Zd„ Zd„ Zdddefd„Zdddefd„Zdefd„Zdefd„Zd„ Zd„ Z	 	 	 	 	 	 dˆ fd„Zd„ Zd„ Zˆ fd„Zˆ xZS ) ÚConstDictVariableÚuser_clsc                   óN   — e Zd ZdZd
d„Zed„ «       Zd„ Zed„ «       Z	dd de
fd	„Zy)ú"ConstDictVariable._HashableTrackeraB  
        Auxiliary opaque internal class that wraps a VariableTracker and makes it hashable
        This should not be seen or touched by anything outside of ConstDictVariable and its children
        Note that it's also fine to put VTs into dictionaries and sets, but doing so does not take into account aliasing
        ÚreturnNc                 ór   — t        |«      }t        |«      st        dt        |«      › d|› �«       || _        y )NzDict key of type z. Key: )r   r   r   ÚtypeÚvt)ÚselfrH   s     r!   Ú__init__z+ConstDictVariable._HashableTracker.__init__h   s6   € ä# BÓ'ˆBô ˜r”?ÜÐ 1´$°r³(°¸7À2À$ÐGÔHØˆD�Gr?   c                 ó¢  ‡— t        | j                  t        j                  «      rN| j                  j	                  «       s4| j                  j                  «       r| j                  j                  «       S t        | j                  t        j                  «      r3| j                  j                  «       j                  j                  d   }|S t        | j                  t        j                  «      r:t        j                  Št        ˆfd„| j                  j                  D «       «      }|S t        | j                  t        j                   «      r| j                  j"                  S t        | j                  t        j$                  «      r| j                  j"                  S t        | j                  t        j&                  «      r| j                  j)                  «       S t        | j                  t        j*                  «      r6t        j                  Š ‰| j                  j,                  «      j.                  S | j                  j1                  «       }|S )Nr   c              3   óB   •K  — | ]  } ‰|«      j                   –— Œ y ­wr   )Úunderlying_value)r   r    ÚHashables     €r!   r"   zFConstDictVariable._HashableTracker.underlying_value.<locals>.<genexpr>}   s   øè ø€ ÒN¸1™( 1›+×6Õ6ÑNùs   ƒ)r#   rH   r   r$   r%   r   Úoriginal_valuer&   r'   r(   r)   r+   rA   Ú_HashableTrackerÚtupler-   r7   Úvaluer8   r3   Úget_functionr=   Úreferent_vtrM   Úas_python_constant)rI   r>   rN   s     @r!   rM   z3ConstDictVariable._HashableTracker.underlying_valueq   sˆ  ø€ ô ˜4Ÿ7™7¤I×$AÑ$AÔBØŸ™×+Ñ+Ô-Ø—G‘G×'Ñ'Ô)à—w‘w×-Ñ-Ó/Ð/Ü˜$Ÿ'™'¤9×#;Ñ#;Ô<Ø—G‘G×$Ñ$Ó&×+Ñ+×0Ñ0°ÑA�ð  ˆHô ˜DŸG™G¤Y×%<Ñ%<Ô=Ü,×=Ñ=�ÜÓNÀÇÁÇÁÔNÓN�ð ˆHô ˜DŸG™G¤Y×%?Ñ%?Ô@Ø—w‘w—}‘}Ð$Ü˜DŸG™G¤Y×%LÑ%LÔMØ—w‘w—}‘}Ð$Ü˜DŸG™G¤Y×%CÑ%CÔDØ—w‘w×+Ñ+Ó-Ð-Ü˜DŸG™G¤Y×%>Ñ%>Ô?ä,×=Ñ=�Ù §¡× 3Ñ 3Ó4×EÑEÐEà—G‘G×.Ñ.Ó0�ØˆHr?   c                 ó,   — t        | j                  «      S r   )ÚhashrM   ©rI   s    r!   Ú__hash__z+ConstDictVariable._HashableTracker.__hash__Œ   s   € Ü˜×-Ñ-Ó.Ð.r?   c                 ó
  ‡— t        | «      t        |«      k7  ryt        | t        «      rGt        j                  Št        | «      t        |«      k(  xr t        ˆfd„t        | |«      D «       «      S t        | «      r| |u S | |k(  S )NFc              3   óH   •K  — | ]  \  }}‰j                  ||«      –— Œ y ­wr   )Ú_eq_impl)r   ÚuÚvrN   s      €r!   r"   z>ConstDictVariable._HashableTracker._eq_impl.<locals>.<genexpr>–   s'   øè ø€ ò 0Ù04°°1�H×%Ñ% a¨×+ñ0ùs   ƒ")	rG   r#   rQ   rA   rP   Úlenr,   Úzipr   )ÚaÚbrN   s     @r!   r\   z+ConstDictVariable._HashableTracker._eq_impl�   s|   ø€ ô �A‹wœ$˜q›'Ò!ØÜ˜AœuÔ%Ü,×=Ñ=�Ü˜1“v¤ Q£Ñ'ò ¬Có 0Ü8;¸A¸q»	ô0ó -ð ô ˜”Ø˜A�v�à˜A‘v�r?   Úotherc                 ó   — t         j                  }t        ||«      s%t        j                  |«      sJ t        |«      «       ‚t        ||«      r&|j                  | j                  |j                  «      S |j                  | j                  |«      S r   )rA   rP   r#   r   Ú
is_literalrG   r\   rM   )rI   rc   rN   s      r!   Ú__eq__z)ConstDictVariable._HashableTracker.__eq__ž   s   € Ü(×9Ñ9ˆHÜ˜e XÔ.Ô2B×2MÑ2MÈeÔ2Tð Ü�U“óÐTô ˜% Ô*Ø×(Ñ(¨×)>Ñ)>À×@VÑ@VÓWÐWð ×$Ñ$ T×%:Ñ%:¸EÓBÐBr?   ©rE   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rJ   ÚpropertyrM   rY   Ústaticmethodr\   Úboolrf   © r?   r!   rP   rD   a   sP   „ ñ	ó	ð 
ñ	ó 
ð	ò4	/ð 
ñ	ó 
ð	ð		CÐ Dð 		CÈô 		Cr?   rP   r-   rE   Nc                 óÄ  •‡— d|v r|j                  d«       d|v r|j                  d«       t        ‰| �  di |¤Ž t        j                  Št        ˆfd„|j                  «       D «       «      sJ ‚ˆfd„}|j                  «       D ��ci c]  \  }} ||«      |“Œ c}}| _        t        | j                  «       | _	        |j                  «       | _        || _        y c c}}w )NÚoriginal_itemsÚshould_reconstruct_allc              3   ól   •K  — | ]+  \  }}t        |t        ‰f«      xr t        |t        «      –— Œ- y ­wr   )r#   r   )r   r>   r^   rN   s      €r!   r"   z-ConstDictVariable.__init__.<locals>.<genexpr>»   s?   øè ø€ ò 
ñ ��1ô �qœ?¨HÐ5Ó6ò /Ü˜1œoÓ.ó/ñ
ùs   ƒ14c                 ó0   •— t        | ‰«      r| S  ‰| «      S r   )r#   )ÚkeyrN   s    €r!   Úmake_hashablez1ConstDictVariable.__init__.<locals>.make_hashableÁ   s   ø€ Ü$ S¨(Ô3�3ÐF¹À#»ÐFr?   ro   )ÚpopÚsuperrJ   rA   rP   r,   r-   r   Úsourcerr   Úcopyrq   rB   )	rI   r-   rB   Úkwargsrv   r>   r^   rN   Ú	__class__s	          @€r!   rJ   zConstDictVariable.__init__©   sÒ   ù€ ð ˜vÑ%Ø�J‰JÐ'Ô(Ø# vÑ-Ø�J‰JÐ/Ô0ä‰ÑÑ"˜6Ò"ä$×5Ñ5ˆô ó 
ð Ÿ™›ô
ô 
ð 	
ð 
ô	Gð 7<·k±k³m×D©d¨a°‘m AÓ&¨Ñ)ÓDˆŒ
ô +?¸t¿{¹{Ó*KÐ&KˆÔ#Ø#Ÿj™j›lˆÔØ ˆ�ùó Es   ÂCc                 ó¶   — | j                   j                  «       D ��ci c].  \  }}|j                  j                  «       |j                  «       “Œ0 c}}S c c}}w r   )r-   rH   r'   ©rI   Úkr^   s      r!   r'   zConstDictVariable.as_proxyË   s<   € Ø:>¿*¹*×:JÑ:JÓ:L×M±$°!°Q�—‘—‘“ §¡£Ñ-ÓMÐMùÓMó   ž3Ac                 ón   — ddj                  d„ | j                  j                  «       D «       «      z   dz   S )Nú{ú, c              3   ó|   K  — | ]4  \  }}|j                   j                  «       › d |j                  «       › �–— Œ6 y­w)z: N©rH   Ú
debug_repr)r   r   r^   s      r!   r"   z/ConstDictVariable.debug_repr.<locals>.<genexpr>Ñ   s7   è ø€ ò Ù=A¸QÀ�1—4‘4—?‘?Ó$Ð% R¨¯©«Ð'7Ô8ñùs   ‚:<ú})Újoinr-   rX   s    r!   r†   zConstDictVariable.debug_reprÎ   s?   € àØ�i‰iñ ØEIÇZÁZ×EUÑEUÓEWôó ñð ñ	ð	
r?   c                 ó¶   — | j                   j                  «       D ��ci c].  \  }}|j                  j                  «       |j                  «       “Œ0 c}}S c c}}w r   )r-   rH   rU   r~   s      r!   rU   z$ConstDictVariable.as_python_constant×   sP   € ð Ÿ
™
×(Ñ(Ó*÷
á��1ð �D‰D×#Ñ#Ó% q×';Ñ';Ó'=Ñ=ó
ð 	
ùó 
r€   c                 óº   — | j                  «        | j                  j                  «       D ��ci c]   \  }}|j                  j                  «       |“Œ" c}}S c c}}w r   )Úinstall_dict_keys_match_guardr-   rH   rU   r~   s      r!   Úkeys_as_python_constantz)ConstDictVariable.keys_as_python_constantÝ   sE   € Ø×*Ñ*Ô,Ø9=¿¹×9IÑ9IÓ9K×L±°°A�—‘×'Ñ'Ó)¨1Ñ,ÓLÐLùÓLs   ®%Ac                 ó   — | j                   S r   )rB   rX   s    r!   Úpython_typezConstDictVariable.python_typeá   s   € Ø�}‰}Ðr?   c                 óè   — t        |t        «      sJ ‚t        j                  }t	        |«      xrD  ||«      | j
                  v xr. t        | j
                   ||«         t        j                  «       S r   )r#   r   rA   rP   r   r-   r   ÚDeletedVariable)rI   rH   rN   s      r!   Ú__contains__zConstDictVariable.__contains__ä   se   € Ü˜"œoÔ.Ð.Ð.Ü$×5Ñ5ˆä˜‹Oò TÙ˜“ §
¡
Ð*òTä˜tŸz™z©(°2«,Ñ7¼×9RÑ9RÓSÐSð	
r?   c           	      ó¢   — t        | j                  j                  «       D �cg c]  }t        |t        j
                  «      s|‘Œ  c}«      S c c}w r   )r_   r-   Úvaluesr#   r   r�   ©rI   r>   s     r!   r_   zConstDictVariable.lení   sI   € Üð Ÿ™×*Ñ*Ó,öàÜ! !¤Y×%>Ñ%>Ô?ò òó
ð 	
ùòs   ¢#Ac                 óv   ‡ — ‰ j                   ryt        ˆ fd„‰ j                  j                  «       D «       «      S )NTc              3   óŽ   •K  — | ]<  \  }}‰j                  ‰j                  j                  |j                  «      |«      –— Œ> y ­wr   )Úis_new_itemrq   r*   rH   )r   ru   rR   rI   s      €r!   r"   z2ConstDictVariable.has_new_items.<locals>.<genexpr>ù   s?   øè ø€ ò 
á��Uð ×Ñ˜T×0Ñ0×4Ñ4°S·V±VÓ<¸e×Dñ
ùs   ƒAA)rr   Úanyr-   rX   s   `r!   Úhas_new_itemszConstDictVariable.has_new_itemsö   s6   ø€ Ø×&Ò&ØÜó 
à"Ÿj™j×.Ñ.Ó0ô
ó 
ð 	
r?   c                 óÚ   — |rS|j                  «       rC|j                  «       r3t        |j                  «       «      t        |j                  «       «      k7  S t        |«      t        |«      k7  S r   )r%   ÚidÚrealize)rI   rR   rc   s      r!   r—   zConstDictVariable.is_new_itemþ   sO   € á�U×&Ñ&Ô(¨U×->Ñ->Ô-@Ü�e—m‘m“oÓ&¬"¨U¯]©]«_Ó*=Ñ=Ð=Ü�%‹yœB˜u›IÑ%Ð%r?   c                 ó8  ‡— | j                   t        j                  u r‰j                  ˆfd„«       d}| j                  j	                  «       D ]h  \  }}| j
                  j                  |j                  «      }| j                  ||«      s| j                  sŒJ ‰|j                  «        ‰|«       |dz  }Œj | j                   t        j                  u r*‰j                  t        d|¬«      gt        dd«      ¢«       y ‰j                  t        d|¬«      «       y )Nc                  ón   •— ‰ j                  ‰ j                  t        «      ‰ j                  d«      g«      S )NÚOrderedDict)Úextend_outputÚcreate_load_python_moduleÚcollectionsÚcreate_load_attr©Úcodegens   €r!   ú<lambda>z/ConstDictVariable.reconstruct.<locals>.<lambda>  s3   ø€ ˜×-Ñ-à×9Ñ9¼+ÓFØ×0Ñ0°Ó?ðó€ r?   r   r   Ú	BUILD_MAP©ÚargF)rB   r¢   rŸ   Úadd_push_nullr-   rq   r*   rH   r—   rr   r    r
   r	   Úappend_output)rI   r¥   Únum_argsru   rR   Úitems    `    r!   ÚreconstructzConstDictVariable.reconstruct  sô   ø€ à�=‰=œK×3Ñ3Ñ3Ø×!Ñ!óôð ˆØŸ*™*×*Ñ*Ó,ò 	‰JˆC�à×&Ñ&×*Ñ*¨3¯6©6Ó2ˆDØ×Ñ  eÔ,°×0KÓ0KÙ˜Ÿ™”Ù˜”Ø˜A‘‘ð	ð �=‰=œK×3Ñ3Ñ3Ø×!Ñ!ä& {¸ÔAðä)¨!¨UÓ3ðõð ×!Ñ!Ô"4°[ÀhÔ"OÕPr?   Útxr   r©   c                 ó†   — t         j                  |«      }|| j                  vrt        t        |«       | j                  |   S r   )rA   rP   r-   r   ÚKeyError©rI   r¯   r©   ru   s       r!   Ú'getitem_const_raise_exception_if_absentz9ConstDictVariable.getitem_const_raise_exception_if_absent%  s8   € ô  ×0Ñ0°Ó5ˆØ�d—j‘jÑ Ü$¤X¨rÔ2Ø�z‰z˜#‰Ðr?   c                 ó–   — t         j                  |«      }|| j                  vrt        d|j                  › �«       | j                  |   S )Nzdict KeyError: )rA   rP   r-   r   rR   r²   s       r!   Úgetitem_constzConstDictVariable.getitem_const-  s?   € Ü×0Ñ0°Ó5ˆØ�d—j‘jÑ Ü˜O¨C¯I©I¨;Ð7Ô8Ø�z‰z˜#‰Ðr?   c                 óh   — t         j                  |«      }|| j                  vry | j                  |   S r   )rA   rP   r-   )rI   r©   ru   s      r!   Úmaybe_getitem_constz%ConstDictVariable.maybe_getitem_const3  s/   € Ü×0Ñ0°Ó5ˆØ�d—j‘jÑ ØØ�z‰z˜#‰Ðr?   c                 ó@  — || v sJ ‚t         j                  |«      }t        | j                  j	                  «       «      j                  |«      }t        | j                  j	                  «       «      |   }t        |t        j                  «      r|j                  «        y y r   )rA   rP   rQ   r-   ÚkeysÚindexrq   r#   r   r$   rœ   )rI   r©   ru   rº   Úoriginal_key_vts        r!   Úrealize_key_vtz ConstDictVariable.realize_key_vt9  s~   € à�d‰{Ðˆ{Ü×0Ñ0°Ó5ˆÜ�d—j‘j—o‘oÓ'Ó(×.Ñ.¨sÓ3ˆÜ × 3Ñ 3× 8Ñ 8Ó :Ó;¸EÑBˆÜ�o¤y×'DÑ'DÔEØ×#Ñ#Õ%ð Fr?   c                 ón   — | j                   r)t        | j                  t        j                  «      «       y y r   )ry   r   Ú
make_guardr   ÚDICT_KEYS_MATCHrX   s    r!   r‹   z/ConstDictVariable.install_dict_keys_match_guardB  s%   € Ø�;Š;Ü˜$Ÿ/™/¬,×*FÑ*FÓGÕHð r?   c           	      óÈ  — ddl m} | j                  sy |j                  j                  j                  | «      ry |d   | v }|d   j                  €\t        |d   |«      rMt        | j                  t        j                  t        j                  |d   j                  | ¬«      «      «       y |d   j                  r(|r| j                  |d   «       y | j                  «        y y )Nr   r   r   )ru   Úinvert)Ú r   ry   ÚoutputÚside_effectsÚis_modifiedr#   r   r¾   Ú	functoolsÚpartialr   ÚDICT_CONTAINSrR   r¼   r‹   )rI   r¯   Úargsr   Úcontainss        r!   Úinstall_dict_contains_guardz-ConstDictVariable.install_dict_contains_guardF  sÃ   € õ 	'à�{Š{Øà�9‰9×!Ñ!×-Ñ-¨dÔ3Øà˜‘7˜d�?ˆØ�‰7�>‰>Ð!¤j°°a±Ð:JÔ&KÜØ—‘Ü×%Ñ%Ü$×2Ñ2Ø  ™GŸM™MØ#+˜|ôóõð �!‰W�^Š^ÙØ×#Ñ# D¨¡GÕ,à×2Ñ2Õ4ð	 r?   c           
      ó®  •— ddl m}m}m} t        j
                  }|xr t        |d   «      }	|dk(  r‰ t        j                  t        «      j                  |g|¢­i |¤Ž}
|j                  j                  j                  | «       | j                  j                  |
j                  «        |j                  d «      S |dk(  r%t!        |«      dk(  sJ ‚| j#                  ||d   «      S |dk(  r¤|s|rJ ‚| j%                  «        | j&                  r=|j                  j(                  j+                  | j&                  j-                  «       «        || j                  j                  «       D ��cg c]  \  }} ||j.                  |g«      ‘Œ c}}«      S |dk(  rj| j%                  «        | j&                  r=|j                  j(                  j+                  | j&                  j-                  «       «       |s|rJ ‚t1        | «      S |dk(  rj| j%                  «        | j&                  r=|j                  j(                  j+                  | j&                  j-                  «       «       |s|rJ ‚t3        | «      S |d	k(  rJ| j%                  «        |s|rJ ‚| j5                  | j                  j7                  «       t9        «       d ¬
«      S |dk(  r;|s|rJ ‚| j%                  «         |j                  t!        | j                  «      «      S |dk(  r†|	r„| j;                  «       rt| j%                  «        |st!        |«      dk(  sJ ‚|j                  j                  j                  | «       |d   | j                   ||d   «      <    |j                  d «      S |dk(  r„|	r‚| j;                  «       rr| j%                  «        d| _        |j                  j                  j                  | «       | j                  j?                   ||d   «      «        |j                  d «      S |dv rVt!        |«      dv rI|d   | vrB| jA                  ||«       t!        |«      dk(  r|dk(  rtC        tD        |«        |d «      S |d   S |dk(  rb|	r`| j;                  «       rPd| _        |j                  j                  j                  | «       | j                  jG                   ||d   «      «      S |dk(  rXd| _        |j                  j                  j                  | «       | j                  jI                  «         |j                  d «      S |dk(  �rM| j;                  «       �r<| j%                  «        t!        |«      dk(  }t!        |«      dkD  }|s|rú|j                  j                  j                  | «       |rktK        |d   t        «      r|d   j%                  «        |d   }n|jM                  |t        |d   «      }| j                  j                  |j                  «       |rT|j                  «       D ��ci c]  \  }} | |j                  |«      «      |“Œ  }}}| j                  j                  |«        |j                  d «      S tN        ‰| �¡  ||||«      S |dv r|d   | v r| jS                  ||d   «      S |dk(  r9t!        |«      dk(  r+| jA                  ||«       |d   | v } |j                  |«      S |dk(  r³|	r±| j;                  «       r¡| j%                  «        |rJ ‚t!        |«      dk  sJ ‚| jU                  |d   «      }|�|S t!        |«      dk(  r |j                  d «      }n|d   }|j                  j                  j                  | «       || j                   ||d   «      <   |S |dk(  r�| j%                  «        |st!        |«      dk(  sJ ‚|j                  j                  j                  | «        ||d   «      }| j                  |   }| j                  jG                  |«       || j                  |<    |j                  d «      S tN        ‰| �¡  ||||«      S c c}}w c c}}w )Nr   )r.   r   r+   r   rJ   Ú__getitem__r-   r¹   r“   rz   )r-   Úmutation_typery   Ú__len__Ú__setitem__r   Ú__delitem__T)rw   r*   )r   r   rw   ÚclearÚupdate)r*   Ú__getattr__r‘   Ú
setdefaultÚmove_to_end)+rÂ   r.   r   r+   rA   rP   r   r   ÚdictÚ	call_dictrÃ   rÄ   Úmutationr-   rÓ   Úcreater_   r³   r‹   ry   Úguard_on_key_orderÚaddÚnamerH   ÚDictKeysVariableÚDictValuesVariableÚclonerz   r   Ú
is_mutablerr   rÑ   rË   r   r±   rw   rÒ   r#   Úcall_custom_dictrx   Úcall_methodrµ   r·   )rI   r¯   rÝ   rÉ   r{   r.   r   r+   rN   Úarg_hashableÚtemp_dict_vtr   r^   Úhas_argÚ
has_kwargsÚdict_vtrÊ   rR   r>   ru   Úvalr|   s                        €r!   rã   zConstDictVariable.call_methodm  sn  ø€ ÷ 	GÑFä$×5Ñ5ˆàÒ4¤¨D°©GÓ 4ˆà�:ÒØDœ9×4Ñ4´TÓ:×DÑDØðØòØ#ñˆLð �I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J×Ñ˜l×0Ñ0Ô1Ø*Ð#×*Ñ*¨4Ó0Ð0Ø�]Ò"ä�t“9 ’>Ð!�>Ø×?Ñ?ÀÀDÈÁGÓLÐLØ�WŠ_Ù¡Ð'Ð'Ø×.Ñ.Ô0Ø�{Š{Ø—	‘	×,Ñ,×0Ñ0°·±×1AÑ1AÓ1CÔDÙ Ø6:·j±j×6FÑ6FÓ6H×I©d¨a°‘ §¡ a˜yÕ)ÓIóð ð �VŠ^Ø×.Ñ.Ô0Ø�{Š{Ø—	‘	×,Ñ,×0Ñ0°·±×1AÑ1AÓ1CÔDÙ¡Ð'Ð'Ü# DÓ)Ð)Ø�XÒØ×.Ñ.Ô0Ø�{Š{Ø—	‘	×,Ñ,×0Ñ0°·±×1AÑ1AÓ1CÔDÙ¡Ð'Ð'Ü% dÓ+Ð+Ø�VŠ^Ø×.Ñ.Ô0Ù¡Ð'Ð'Ø—:‘:Ø—j‘j—o‘oÓ'Ô7GÓ7IÐRVð ó ð ð �YÒÙ¡Ð'Ð'Ø×.Ñ.Ô0Ø*Ð#×*Ñ*¬3¨t¯z©z«?Ó;Ð;Ø�]Ò"¡|¸¿¹Ô8IØ×.Ñ.Ô0Ù¤# d£)¨q¢.Ð0Ð0Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø,0°©GˆD�J‰J‘x  Q¡Ó(Ñ)Ø*Ð#×*Ñ*¨4Ó0Ð0Ø�]Ò"¡|¸¿¹Ô8IØ×.Ñ.Ô0Ø*.ˆDÔ'Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J×"Ñ"¡8¨D°©GÓ#4Ô5Ø*Ð#×*Ñ*¨4Ó0Ð0Ø�^Ñ#¬¨D«	°VÑ(;ÀÀQÁÈtÑ@Sà×,Ñ,¨R°Ô6Ü�4‹y˜AŠ~Ø˜5’=Ü,¬X°rÔ:Ù'¨Ó-Ð-à˜A‘w�Ø�UŠ]™|°·±Ô0AØ*.ˆDÔ'Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø—:‘:—>‘>¡(¨4°©7Ó"3Ó4Ð4Ø�WŠ_Ø*.ˆDÔ'Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J×ÑÔØ*Ð#×*Ñ*¨4Ó0Ð0Ø�XÓ $§/¡/Õ"3ð ×.Ñ.Ô0Ü˜$“i 1‘nˆGÜ˜V› q™ˆJÙ™*Ø—	‘	×&Ñ&×/Ñ/°Ô5ÙÜ! $ q¡'Ô+<Ô=ð ˜Q™×=Ñ=Ô?Ø"& q¡'™à"1×"BÑ"BÀ2ÄtÈTÐRSÉWÓ"U˜Ø—J‘J×%Ñ% g§m¡mÔ4Ùð %+§L¡L£N÷á ˜A˜qñ !Ð!8Ð!1×!8Ñ!8¸Ó!;Ó<¸aÑ?ð�Fñ ð —J‘J×%Ñ% fÔ-Ø.Ð'×.Ñ.¨tÓ4Ð4ä‘wÑ*¨2¨t°T¸6ÓBÐBØÐ+Ñ+°°Q±¸4±à×%Ñ% b¨$¨q©'Ó2Ð2Ø�^Ò#¬¨D«	°QªØ×,Ñ,¨R°Ô6Ø˜A‘w $�ˆHØ*Ð#×*Ñ*¨8Ó4Ð4Ø�\Ò!¡l°t·±Ô7HØ×.Ñ.Ô0ÙÐ�:Ü�t“9 ’>Ð!�>Ø×,Ñ,¨T°!©WÓ5ˆEØÐ Ø�ä�t“9 ’>Ø/Ð(×/Ñ/°Ó5‘Aà˜Q™�AØ—	‘	×&Ñ&×/Ñ/°Ô5Ø01�—
‘
™8 D¨¡GÓ,Ñ-Ø�Ø�]Ò"Ø×.Ñ.Ô0Ù¤# d£)¨q¢.Ð0Ð0Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ù˜4 ™7Ó#ˆCØ—*‘*˜S‘/ˆCØ�J‰J�N‰N˜3ÔØ!ˆD�J‰J�s‰OØ*Ð#×*Ñ*¨4Ó0Ð0ä‘7Ñ& r¨4°°vÓ>Ð>ùóc JùóRs   Å)a
Ø#ac                 ó�   — | j                  «        | j                  j                  «       D �cg c]  }|j                  ‘Œ c}S c c}w r   )r‹   r-   r¹   rH   )rI   r¯   r>   s      r!   Úunpack_var_sequencez%ConstDictVariable.unpack_var_sequence  s1   € Ø×*Ñ*Ô,Ø"Ÿj™jŸo™oÓ/Ö0˜�—“Ò0Ð0ùÒ0s   ­Ac                 óÞ   — | j                   t        u rB|| j                   j                  v rt        j                  d«      S t        j                  d«      S t        d| j                   › d�«       y )NTFzhasattr on z is not supported)rB   r×   Ú__dict__r   rÚ   r   )rI   r¯   rÝ   s      r!   Úcall_obj_hasattrz"ConstDictVariable.call_obj_hasattr	  sZ   € ð �=‰=œDÑ Ø�t—}‘}×-Ñ-Ñ-Ü'×.Ñ.¨tÓ4Ð4Ü#×*Ñ*¨5Ó1Ð1Ü˜ D§M¡M ?Ð2CÐDÕEr?   c                 óB   •— | j                  «        t        ‰| �  di |¤ŽS ©Nro   )r‹   rx   rà   )rI   r{   r|   s     €r!   rà   zConstDictVariable.clone  s!   ø€ Ø×*Ñ*Ô,Ü‰w‰}Ñ&˜vÑ&Ð&r?   ©rÉ   zlist[VariableTracker]r{   zdict[str, VariableTracker]rE   r   )rh   ri   rj   r   Ú_nonvar_fieldsrP   r×   rJ   r'   r†   rU   rŒ   rŽ   rn   r‘   r_   r™   r—   r®   r³   rµ   r·   r¼   r‹   rË   rã   rë   rî   rà   Ú__classcell__©r|   s   @r!   rA   rA   [   s  ø„ àðà	×	'Ñ	'ð€N÷
FCñ FCðV ñ !à�O _Ð4Ñ5ð !ð
 
õ !òDNò
ò
òMòð
 $ó 
ò
ò
ò&òQðBØ)ðØ0?óðÐ 7ð ¸oó ð ó ð& /ó &òIò%5ðNV?ð &ð	V?ð
 -ðV?ð 
õV?òp1òF÷'ð 'r?   rA   c                   óX   ‡ — e Zd Zdeddfˆ fd„Zd„ Zd„ Zded   d	ee	df   ddfd
„Z
ˆ xZS )ÚMappingProxyVariableÚdv_dictrE   Nc                 óV   •— t        ‰| �  di |¤Ž t        |t        «      sJ ‚|| _        y rð   )rx   rJ   r#   rA   r÷   ©rI   r÷   r{   r|   s      €r!   rJ   zMappingProxyVariable.__init__  s+   ø€ Ü‰ÑÑ"˜6Ò"Ü˜'Ô#4Ô5Ð5Ð5Øˆ�r?   c                 ó8   — | j                   j                  |«      S r   )r÷   rë   )rI   r¯   s     r!   rë   z(MappingProxyVariable.unpack_var_sequence  s   € Ø�|‰|×/Ñ/°Ó3Ð3r?   c                 ó¶   ‡— | j                   rt        d«       ‰j                  ˆfd„«        ‰| j                  «       ‰j	                  t        dd«      «       y )NzgCan't reconstruct an existing mapping variable because the connection to the original dict will be lostc                  ón   •— ‰ j                  ‰ j                  t        «      ‰ j                  d«      g«      S )NÚMappingProxyType)r    r¡   Útypesr£   r¤   s   €r!   r¦   z2MappingProxyVariable.reconstruct.<locals>.<lambda>)  s4   ø€ �G×)Ñ)à×5Ñ5´eÓ<Ø×,Ñ,Ð-?Ó@ðó€ r?   r   F)ry   r   rª   r÷   r    r	   ©rI   r¥   s    `r!   r®   z MappingProxyVariable.reconstruct!  sQ   ø€ à�;Š;ÜðDôð 	×Ñóô	
ñ 	�—‘ÔØ×ÑÔ2°1°eÓ<Õ=r?   rÉ   r   r{   c                 ó´   — | j                   r/|j                  j                  j                  «       rt	        d«       | j
                  j                  ||||«      S )Na°  A dict has been modified while we have an existing mappingproxy object. A mapping proxy object, as the name suggest, proxies a mapping object (usually a dict). If the original dict object mutates, it is reflected in the proxy object as well. For an existing proxy object, we do not know the original dict it points to. Therefore, for correctness we graph break when there is dict mutation and we are trying to access a proxy object.)ry   rÃ   rÄ   Úhas_existing_dict_mutationr   r÷   rã   )rI   r¯   rÝ   rÉ   r{   s        r!   rã   z MappingProxyVariable.call_method3  sJ   € ð �;Š;˜2Ÿ9™9×1Ñ1×LÑLÔNÜð7ôð �|‰|×'Ñ'¨¨D°$¸Ó?Ð?r?   )rh   ri   rj   rA   rJ   rë   r®   Úlistr×   Ústrrã   ró   rô   s   @r!   rö   rö     sY   ø„ ðÐ 1ð Àõ ò
4ò>ð$@ð Ð$Ñ%ð	@ð
 �SÐ+Ð+Ñ,ð@ð 
÷@r?   rö   c                   ó   — e Zd Zd„ Zd„ Zy)ÚNNModuleHooksDictVariablec                  ó   — y r   ro   rX   s    r!   r‹   z7NNModuleHooksDictVariable.install_dict_keys_match_guardI  ó   € Ør?   c                  ó   — y r   ro   ©rI   r¯   rÉ   s      r!   rË   z5NNModuleHooksDictVariable.install_dict_contains_guardL  r  r?   N)rh   ri   rj   r‹   rË   ro   r?   r!   r  r  G  s   „ òór?   r  c                   ó^   ‡ — e Zd Zddˆ fd„Zˆ fd„Zˆ fd„Zed„ «       Z	 	 	 	 	 	 dˆ fd„Zˆ xZ	S )	ÚDefaultDictVariablec                 ó^   •— t        ‰| �  ||fi |¤Ž |t        j                  u sJ ‚|| _        y r   )rx   rJ   r¢   ÚdefaultdictÚdefault_factory)rI   r-   rB   r  r{   r|   s        €r!   rJ   zDefaultDictVariable.__init__Q  s3   ø€ Ü‰Ñ˜ Ñ3¨FÒ3Øœ;×2Ñ2Ñ2Ð2Ð2Ø.ˆÕr?   c                 ót   •— | j                   t        t        t        fvr| j                  syt
        ‰| �  «       S )NF)r  r  rQ   r×   r-   rx   Úis_python_constant©rI   r|   s    €r!   r  z&DefaultDictVariable.is_python_constantV  s1   ø€ ð ×Ñ¬¬e´TÐ':Ñ:À4Ç:Â:ØÜ‰wÑ)Ó+Ð+r?   c                 ó^   •— d| j                   j                  «       › dt        ‰| �  «       › d�S )Nzdefaultdict(rƒ   ú))r  r†   rx   r  s    €r!   r†   zDefaultDictVariable.debug_repr]  s4   ø€ à˜4×/Ñ/×:Ñ:Ó<Ð=¸RÄÁÑ@RÓ@TÐ?UÐUVÐWð	
r?   c                 óÂ   — t        | t        j                  «      r"| j                  t        t
        t        t        fv S t        | t        j                  j                  «      S r   )
r#   r   r.   Úfnr  rQ   r×   ÚsetÚ	functionsÚBaseUserFunctionVariabler¨   s    r!   Úis_supported_argz$DefaultDictVariable.is_supported_argb  sC   € ä�cœ9×4Ñ4Ô5Ø—6‘6œd¤E¬4´Ð5Ð5Ð5ä˜c¤9×#6Ñ#6×#OÑ#OÓPÐPr?   c                 ó,  •— |dk(  r}t        |«      dk(  sJ ‚|d   | v r| j                  ||d   «      S | j                  €t        |d   › «      ‚| j                  j	                  |g i «      }t
        ‰| �  |d|d   |f|«       |S t
        ‰| �  ||||«      S )NrÍ   r   r   rÐ   )r_   rµ   r  r±   Úcall_functionrx   rã   )rI   r¯   rÝ   rÉ   r{   Údefault_varr|   s         €r!   rã   zDefaultDictVariable.call_methodi  s³   ø€ ð �=Ò Ü�t“9 ’>Ð!�>à�A‰w˜$‰Ø×)Ñ)¨"¨d°1©gÓ6Ð6à×'Ñ'Ð/Ü" d¨1¡g YÓ0Ð0à"&×"6Ñ"6×"DÑ"DÀRÈÈRÓ"P�KÜ‘GÑ'Ø˜M¨D°©G°[Ð+AÀ6ôð 'Ð&ä‘7Ñ& r¨4°°vÓ>Ð>r?   r   rg   rñ   )
rh   ri   rj   rJ   r  r†   rm   r  rã   ró   rô   s   @r!   r  r  P  sP   ø„ ö/ô
,ô
ð
 ñQó ðQð?ð &ð	?ð
 -ð?ð 
÷?ñ ?r?   r  c                   ó´   ‡ — e Zd ZdZdee   ddfˆ fd„Zd„ Zed„ «       Z	e
d„ «       Zd	„ Zd
„ Zd„ Zd„ Zdee   deeef   ddfˆ fd„Zdddefd„Zd„ Zd„ Zˆ xZS )ÚSetVariablez-We model a sets as dictonary with None valuesr-   rE   Nc                 óv   •— t         j                  |t        j                  «       «      }t	        ‰| �  |fi |¤Ž y r   )r×   Úfromkeysr  Ú_default_valuerx   rJ   ©rI   r-   r{   r|   s      €r!   rJ   zSetVariable.__init__ˆ  s0   ø€ ô
 —‘˜e¤[×%?Ñ%?Ó%AÓBˆÜ‰Ñ˜Ñ) &Ó)r?   c                 óˆ   — | j                   syddj                  d„ | j                   j                  «       D «       «      z   dz   S )Nzset()r‚   ú,c              3   óP   K  — | ]  }|j                   j                  «       –— Œ  y ­wr   r…   ©r   r   s     r!   r"   z)SetVariable.debug_repr.<locals>.<genexpr>”  ó   è ø€ Ò!O¸ !§$¡$§/¡/×"3Ñ!Oùó   ‚$&r‡   ©r-   rˆ   r¹   rX   s    r!   r†   zSetVariable.debug_repr�  s7   € Ø�zŠzØà˜Ÿ™Ñ!O¸T¿Z¹Z¿_¹_Ó=NÔ!OÓOÑOÐRUÑUÐUr?   c                 óH   — t        | j                  j                  «       «      S r   )r  r-   r¹   rX   s    r!   Ú	set_itemszSetVariable.set_items–  s   € ä�4—:‘:—?‘?Ó$Ó%Ð%r?   c                  ó,   — t        j                  d «      S r   )r   rÚ   ro   r?   r!   r!  zSetVariable._default_valueš  s   € ô  ×&Ñ& tÓ,Ð,r?   c                 óp   — | j                   D �ch c]  }|j                  j                  «       ’Œ c}S c c}w r   )r+  rH   r'   ©rI   r   s     r!   r'   zSetVariable.as_proxyŸ  s$   € Ø)-¯©Ö8 A�—‘—‘•Ò8Ð8ùÒ8ó   �!3c                 ó   — t         S r   )r  rX   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+  rH   rU   r.  s     r!   rU   zSetVariable.as_python_constant¥  ó'   € Ø37·>±>ÖB¨a�—‘×'Ñ'Õ)ÒBÐBùÒBr/  c                 óÒ   — |j                  | j                  D �cg c]  }|j                  ‘Œ c}«       |j                  t	        dt        | j                  «      ¬«      «       y c c}w )NÚ	BUILD_SETr¨   )Úforeachr+  rH   r«   r
   r_   ©rI   r¥   r>   s      r!   r®   zSetVariable.reconstruct¨  sE   € Ø�‰ t§~¡~Ö6 !˜Ÿ›Ò6Ô7Ø×ÑÔ0°Ä#ÀdÇnÁnÓBUÔVÕWùò 7s   šA$rÉ   r{   r   c                 óš  •— |dk(  r1|rJ ‚t        |«      dk(  sJ ‚d}|d   t        j                  «       f}�nƒ|dk(  rA|rJ ‚|rJ ‚| j                  j	                  «       j
                  }t        ‰| �  |||f|«       |S |dk(  rM|rJ ‚t        |«      dk(  sJ ‚t        j                  t        j                  «      j                  || |d   gi «      S |dk(  rM|rJ ‚t        |«      dk(  sJ ‚t        j                  t        j                  «      j                  || |d   gi «      S |dk(  rM|rJ ‚t        |«      dk(  sJ ‚t        j                  t        j                  «      j                  || |d   gi «      S |d	k(  rM|rJ ‚t        |«      dk(  sJ ‚t        j                  t        j                  «      j                  || |d   gi «      S |d
k(  rkt        |«      dk(  r]| j!                  «       rM|rJ ‚t        |«      dk(  sJ ‚t        j                  t        j"                  «      j                  || |d   gi «      S |dk(  r8|rJ ‚t        |«      dk(  sJ ‚|d   | vrt%        d«       t        ‰| �  |d||«      S |dk(  rC|rJ ‚t        |«      dk(  sJ ‚|d   | v rt        ‰| �  |d||«      S t'        j(                  d ¬«      S t        ‰| �  ||||«      S )NrÜ   r   rÐ   r   rw   Ú
isdisjointÚintersectionÚunionÚ
differencerÓ   Úremovezkey does not existÚdiscard)rR   )r_   r  r!  r+  rw   rH   rx   rã   r   r3   r   Úset_isdisjointr  Úset_intersectionÚ	set_unionÚset_differencerá   Ú
set_updater   r   rÚ   )rI   r¯   rÝ   rÉ   r{   Úresultr|   s         €r!   rã   zSetVariable.call_method¬  só  ø€ ð �5Š=ÙÐ�:Ü�t“9 ’>Ð!�>Ø ˆDØ˜‘Gœ[×7Ñ7Ó9Ð:ŠDØ�UŠ]ÙÐ�:ÙˆO�8à—^‘^×'Ñ'Ó)×,Ñ,ˆFÜ‰GÑ  D¨6¨)°VÔ<ØˆMØ�\Ò!ÙÐ�:Ü�t“9 ’>Ð!�>Ü×1Ñ1Ü×(Ñ(óç‰m˜B  t¨A¡w °Ó4ð5ð �^Ò#ÙÐ�:Ü�t“9 ’>Ð!�>Ü×1Ñ1Ü×*Ñ*óç‰m˜B  t¨A¡w °Ó4ð5ð �WŠ_ÙÐ�:Ü�t“9 ’>Ð!�>Ü×1Ñ1´)×2EÑ2EÓF×TÑTØ�T˜4 ™7�O Róð ð �\Ò!ÙÐ�:Ü�t“9 ’>Ð!�>Ü×1Ñ1Ü×(Ñ(óç‰m˜B  t¨A¡w °Ó4ð5ð �XÒ¤# d£)¨q¢.°T·_±_Ô5FÙÐ�:Ü�t“9 ’>Ð!�>Ü×1Ñ1´)×2FÑ2FÓG×UÑUØ�T˜4 ™7�O Róð ð �XÒÙÐ�:Ü�t“9 ’>Ð!�>Ø�A‰w˜dÑ"ÜÐ2Ô3Ü‘7Ñ& r¨5°$¸Ó?Ð?Ø�YÒÙÐ�:Ü�t“9 ’>Ð!�>Ø�A‰w˜$‰Ü‘wÑ*¨2¨u°d¸FÓCÐCä'×.Ñ.°TÔ:Ð:Ü‰wÑ" 2 t¨T°6Ó:Ð:r?   r¯   r   r©   c                 ó   — t        d«      ‚)NzIllegal to getitem on a set)ÚRuntimeError)rI   r¯   r©   s      r!   rµ   zSetVariable.getitem_constí  s   € ÜÐ8Ó9Ð9r?   c                  ó   — y r   ro   rX   s    r!   r‹   z)SetVariable.install_dict_keys_match_guardð  ó   € àr?   c                  ó   — y r   ro   r	  s      r!   rË   z'SetVariable.install_dict_contains_guardô  rH  r?   )rh   ri   rj   rk   r  r   rJ   r†   rl   r+  rm   r!  r'   rŽ   rU   r®   r×   r  rã   rµ   r‹   rË   ró   rô   s   @r!   r  r  …  s·   ø„ Ù7ð*à�OÑ$ð*ð 
õ	*òVð ñ&ó ð&ð ñ-ó ð-ò9òòCòXð?;ð �?Ñ#ð	?;ð
 �S˜/Ð)Ñ*ð?;ð 
õ?;ðB:Ð 7ð :¸oó :òör?   r  c                   ó~   ‡ — e Zd Zdee   ddfˆ fd„Zd„ Zed„ «       Zd„ Z	d„ Z
d	„ Zd
ee   deeef   ddfˆ fd„Zˆ xZS )ÚFrozensetVariabler-   rE   Nc                 ó&   •— t        ‰| �  |fi |¤Ž y r   ©rx   rJ   r"  s      €r!   rJ   zFrozensetVariable.__init__ú  ó   ø€ ô
 	‰Ñ˜Ñ) &Ó)r?   c                 óˆ   — | j                   syddj                  d„ | j                   j                  «       D «       «      z   dz   S )Nzfrozenset()r‚   r$  c              3   óP   K  — | ]  }|j                   j                  «       –— Œ  y ­wr   r…   r&  s     r!   r"   z/FrozensetVariable.debug_repr.<locals>.<genexpr>  r'  r(  r‡   r)  rX   s    r!   r†   zFrozensetVariable.debug_repr  s7   € Ø�zŠzØ à˜Ÿ™Ñ!O¸T¿Z¹Z¿_¹_Ó=NÔ!OÓOÑOÐRUÑUÐUr?   c                 ó6   — | j                   j                  «       S r   )r-   r¹   rX   s    r!   r+  zFrozensetVariable.set_items  s   € à�z‰z�‰Ó Ð r?   c                 ó   — t         S r   )Ú	frozensetrX   s    r!   rŽ   zFrozensetVariable.python_type  ó   € ÜÐr?   c                 óp   — | j                   D �ch c]  }|j                  j                  «       ’Œ c}S c c}w r   r2  r.  s     r!   rU   z$FrozensetVariable.as_python_constant  r3  r/  c                 óÔ   ‡— ‰j                  | j                  D �cg c]  }|j                  ‘Œ c}«       ‰j                  ˆfd„«       ‰j	                  t        dd«      «       y c c}w )Nc                  óF   •— ‰ j                  ‰ j                  d«      g«      S )NrS  )r    Úcreate_load_globalr¤   s   €r!   r¦   z/FrozensetVariable.reconstruct.<locals>.<lambda>  s%   ø€ �G×)Ñ)à×.Ñ.¨{Ó;ðó€ r?   r   F)r6  r+  rH   rª   r    r	   r7  s    ` r!   r®   zFrozensetVariable.reconstruct  sR   ø€ Ø�‰ t§~¡~Ö6 !˜Ÿ›Ò6Ô7Ø×Ñóô	
ð 	×ÑÔ2°1°eÓ<Õ=ùò 7s   ›A%rÉ   r{   r   c                 óN   •— |dv rt        d|› d�«      ‚t        ‰| �	  ||||«      S )N©rÜ   rw   rÓ   r=  r>  rÒ   úIllegal call_method z on a frozenset©rF  rx   rã   ©rI   r¯   rÝ   rÉ   r{   r|   s        €r!   rã   zFrozensetVariable.call_method  ó9   ø€ ð ÐIÑIÜÐ!5°d°V¸?ÐKÓLÐLÜ‰wÑ" 2 t¨T°6Ó:Ð:r?   )rh   ri   rj   r  r   rJ   r†   rl   r+  rŽ   rU   r®   r×   r  rã   ró   rô   s   @r!   rK  rK  ù  s€   ø„ ð*à�OÑ$ð*ð 
õ	*òVð ñ!ó ð!òòCò	>ð	;ð �?Ñ#ð		;ð
 �S˜/Ð)Ñ*ð	;ð 
÷	;ñ 	;r?   rK  c                   óx   ‡ — e Zd Zdee   ddfˆ fd„Zd„ Zed„ «       Zd„ Z	d„ Z
d	ee   d
eeef   ddfˆ fd„Zˆ xZS )ÚDictKeySetVariabler-   rE   Nc                 ó&   •— t        ‰| �  |fi |¤Ž y r   rM  r"  s      €r!   rJ   zDictKeySetVariable.__init__)  rN  r?   c                 óˆ   — | j                   syddj                  d„ | j                   j                  «       D «       «      z   dz   S )Nzdict_keys([])zdict_keys([r$  c              3   óP   K  — | ]  }|j                   j                  «       –— Œ  y ­wr   r…   r&  s     r!   r"   z0DictKeySetVariable.debug_repr.<locals>.<genexpr>6  s   è ø€ ÒH°˜1Ÿ4™4Ÿ?™?×,ÑHùr(  z])r)  rX   s    r!   r†   zDictKeySetVariable.debug_repr0  sA   € Ø�zŠzØ"ð Ø—(‘(ÑH°d·j±j·o±oÓ6GÔHÓHñIàñðr?   c                 ó   — | j                   S r   )r-   rX   s    r!   r+  zDictKeySetVariable.set_items:  s   € à�z‰zÐr?   c                 ó   — t         S r   ©r   rX   s    r!   rŽ   zDictKeySetVariable.python_type>  rT  r?   c                 ó´   — t         j                  | j                  D �ch c]  }|j                  j	                  «       ’Œ c}d «      j                  «       S c c}w r   )r×   r   r+  rH   rU   r¹   r.  s     r!   rU   z%DictKeySetVariable.as_python_constantA  s>   € Ü�}‰}Ø04·±Ö?¨1ˆQ�T‰T×$Ñ$Õ&Ò?Àó
ç
‰$‹&ð	ùÚ?s   ž!ArÉ   r{   r   c                 óN   •— |dv rt        d|› d�«      ‚t        ‰| �	  ||||«      S )NrZ  r[  z on a dict_keysr\  r]  s        €r!   rã   zDictKeySetVariable.call_methodF  r^  r?   )rh   ri   rj   r  r   rJ   r†   rl   r+  rŽ   rU   r×   r  rã   ró   rô   s   @r!   r`  r`  (  sy   ø„ ð*à�OÑ$ð*ð 
õ	*òð ñó ðòòð
	;ð �?Ñ#ð		;ð
 �S˜/Ð)Ñ*ð	;ð 
÷	;ñ 	;r?   r`  c                   ó–   ‡ — e Zd ZU dZdZee   ed<   deddfˆ fd„Z	e
d„ «       Ze
d„ «       Zd	„ Zd
„ Zded   deedf   ddfˆ fd„Zˆ xZS )ÚDictViewVariablezu
    Models _PyDictViewObject

    This is an "abstract" class. Subclasses will override kv and the items method
    NÚkvr÷   rE   c                 óv   •— t        ‰| �  di |¤Ž | j                  dv sJ ‚t        |t        «      sJ ‚|| _        y )N)r¹   r“   ro   )rx   rJ   rk  r#   rA   r÷   rù   s      €r!   rJ   zDictViewVariable.__init__[  s>   ø€ Ü‰ÑÑ"˜6Ò"Ø�w‰wÐ,Ñ,Ð,Ð,Ü˜'Ô#4Ô5Ð5Ð5Øˆ�r?   c                 ó`   —  t        | j                  j                  | j                  «      «       S r   )Úgetattrr÷   r-   rk  rX   s    r!   Ú
view_itemszDictViewVariable.view_itemsa  s"   € à3Œw�t—|‘|×)Ñ)¨4¯7©7Ó3Ó5Ð5r?   c                 ó   — t         ‚r   )ÚNotImplementedErrorrX   s    r!   Úview_items_vtzDictViewVariable.view_items_vte  s
   € ô "Ð!r?   c                 óX   ‡ — ˆ fd„}‰ j                   D �cg c]
  } ||«      ‘Œ c}S c c}w )Nc                 ó>   •— ‰j                   dk(  r| j                  S | S )Nr¹   )rk  rH   )r>   rI   s    €r!   Úunwrapz4DictViewVariable.unpack_var_sequence.<locals>.unwrapl  s   ø€ ØŸ7™7 fÒ,�1—4‘4Ð3°!Ð3r?   )ro  )rI   r¯   ru  r>   s   `   r!   rë   z$DictViewVariable.unpack_var_sequencek  s&   ø€ ô	4ð $(§?¡?Ö3˜a‘�q•	Ò3Ð3ùÒ3s   •'c                 ó€   —  || j                   «       |j                  | j                  «       |j                  d«       y )Nr   )r÷   Úload_methodrk  rã   rÿ   s     r!   r®   zDictViewVariable.reconstructq  s.   € Ù�—‘ÔØ×Ñ˜DŸG™GÔ$Ø×Ñ˜AÕr?   rÉ   r   r{   c                 ón   •— |dk(  r| j                   j                  ||||«      S t        ‰| �  ||||«      S )NrÏ   )r÷   rã   rx   r]  s        €r!   rã   zDictViewVariable.call_methodv  s>   ø€ ð �9ÒØ—<‘<×+Ñ+¨B°°d¸FÓCÐCÜ‰wÑ" 2 t¨T°6Ó:Ð:r?   )rh   ri   rj   rk   rk  r   r  Ú__annotations__rA   rJ   rl   ro  rr  rë   r®   r  r×   rã   ró   rô   s   @r!   rj  rj  R  s—   ø… ñð €Bˆ�‰ÓðÐ 1ð Àõ ð ñ6ó ð6ð ñ"ó ð"ò
4òð
	;ð Ð$Ñ%ð		;ð
 �SÐ+Ð+Ñ,ð	;ð 
÷	;ñ 	;r?   rj  c                   óf   ‡ — e Zd ZdZed„ «       Zed„ «       Zd„ Zded   de	e
df   ddfˆ fd	„Zˆ xZS )
rÞ   r¹   c                 ó,   — t        | j                  «      S r   )r  ro  rX   s    r!   r+  zDictKeysVariable.set_items…  s   € ä�4—?‘?Ó#Ð#r?   c                 óT   — | j                   D �cg c]  }|j                  ‘Œ c}S c c}w r   )ro  rH   r”   s     r!   rr  zDictKeysVariable.view_items_vt‰  s    € ð #Ÿo™oÖ.˜�—“Ò.Ð.ùÒ.s   �%c                 ó   — t         S r   rf  rX   s    r!   rŽ   zDictKeysVariable.python_typeŽ  rT  r?   rÉ   r   r{   rE   c                 óT  •— |dk(  r| j                   j                  ||||«      S |t        v rkt        |d   t        t
        f«      st        j                  t        «      S t        j                  t        |   | j                  |d   j                  «      «      S t        ‰| �  ||||«      S )Nr‘   r   )r÷   rã   r   r#   r  rÞ   r   rÚ   ÚNotImplementedr+  rx   r]  s        €r!   rã   zDictKeysVariable.call_method‘  sž   ø€ ð �>Ò!Ø—<‘<×+Ñ+¨B°°d¸FÓCÐCØÔ)Ñ)Ü˜d 1™g¬Ô5EÐ'FÔGÜ'×.Ñ.¬~Ó>Ð>Ü#×*Ñ*Ü& tÑ,¨T¯^©^¸TÀ!¹W×=NÑ=NÓOóð ô ‰wÑ" 2 t¨T°6Ó:Ð:r?   )rh   ri   rj   rk  rl   r+  rr  rŽ   r  r×   r  rã   ró   rô   s   @r!   rÞ   rÞ   ‚  sl   ø„ Ø	€Bàñ$ó ð$ð ñ/ó ð/òð;ð Ð$Ñ%ð	;ð
 �SÐ+Ð+Ñ,ð;ð 
÷;ñ ;r?   rÞ   c                   ó&   — e Zd ZdZed„ «       Zd„ Zy)rß   r“   c                 ó,   — t        | j                  «      S r   )r  ro  rX   s    r!   rr  z DictValuesVariable.view_items_vt§  s   € ä�D—O‘OÓ$Ð$r?   c                 ó   — t         S r   )r   rX   s    r!   rŽ   zDictValuesVariable.python_type«  s   € ÜÐr?   N)rh   ri   rj   rk  rl   rr  rŽ   ro   r?   r!   rß   rß   £  s   „ à	€Bàñ%ó ð%ór?   rß   ).rk   r¢   rÆ   rþ   Útypingr   r   Útorch._subclasses.fake_tensorr   rÂ   r   r   Úbytecode_transformationr	   r
   Úexcr   r   Úguardsr   r   ry   r   Úutilsr   r   r   r   Úbaser   r   Úconstantr   Útorch._dynamo.symbolic_convertr   r   rA   rö   r  r  r  rK  r`  rj  rÞ   rß   ro   r?   r!   ú<module>rŒ     sÏ   ðñó( Û Û ß *å 1ç #ß Nß 9ß 0Ý )ß VÓ Vß 3Ý &ñ ÝDò'
ôTy'˜ô y'ôx-@˜?ô -@ô`Ð 1ô ô/?Ð+ô /?ôjqÐ#ô qôh,;˜ô ,;ô^';˜ô ';ôT-;�ô -;ô`;Ð'ô ;ôB	Ð)õ 	r?   