ó
    Eñiy ã                   ó¦  • S r SSKrSSKrSSKrSSKrSSKJrJr  SSKJ	r	J
r
JrJrJr  SSKJr  SSKJrJrJr  SSKJrJrJrJr  SS	KJrJr  SS
KJrJr  SSKJ r J!r!J"r"  SSK#J$r$J%r%J&r&J'r'J(r(J)r)J*r*  SSK+J,r,J-r-  SSK.J/r/J0r0  \(       a  SSK1J2r2  SSK3J4r4  SSK5J6r6  SSK7J8r8  S\	S\94S jr: S7S\-S\S   SS4S jjr;S\-S\94S jr< " S S\-5      r= " S S \-5      r> " S! S"\=5      r? " S# S$\=5      r@ " S% S&\=5      rA " S' S(\-5      rB " S) S*\A5      rC " S+ S,\A5      rD " S- S.\A5      rE " S/ S0\-5      rF " S1 S2\F5      rG " S3 S4\F5      rH " S5 S6\F5      rIg)8a¼  
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)ÚIterableÚSequence)ÚAnyÚLiteralÚOptionalÚTYPE_CHECKINGÚUnion©Ú
OrderedSeté   )Úgraph_break_hintsÚ	polyfillsÚ	variables)Úcreate_call_functionÚcreate_call_methodÚcreate_dup_topÚcreate_instruction)Úraise_observed_exceptionÚunimplemented)ÚGuardBuilderÚinstall_guard)Ú
AttrSourceÚis_constant_sourceÚis_from_local_source)Úcmp_name_to_op_mappingÚ
dict_itemsÚ	dict_keysÚdict_valuesÚistypeÚraise_args_mismatchÚspecialize_symnodeé   )ÚValueMutationNewÚVariableTracker)ÚCONSTANT_VARIABLE_NONEÚConstantVariable)Ú	PyCodegen©ÚInstructionTranslator)ÚBuiltinVariable)ÚUserFunctionVariableÚobjÚreturnc                 óL   • [        U 5      R                  R                  SS5      $ )NÚ__instancecheck__F)ÚtypeÚ__dict__Úget)r,   s    ÚZ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_dynamo/variables/dicts.pyÚwas_instancecheck_overrider4   B   s    € Ü�‹9×Ñ×!Ñ!Ð"5°uÓ=Ð=ó    ÚargÚtxr)   c                 ó  • SSK Jn  Uc  SSKJn  UR                  " 5       n U R                  5       n[        [        UUR                  USU< S[        U R                  5       5       35      /S9  g ! [         a    [        U 5      n NVf = f)Nr"   ©ÚSourcelessBuilderr   r(   zunhashable type: z and variable tracker = ©Úargs)Úbuilderr:   Útorch._dynamo.symbolic_convertr)   Ú
current_txÚpython_typeÚ	Exceptionr0   r   Ú	TypeErrorÚcreateÚrealize)r6   r7   r:   r)   Úarg_types        r3   Úraise_unhashablerF   F   s‹   € õ +à	�zÝHà"×-Ò-Ó/ˆðØ—?‘?Ó$ˆô ÜØ
à×$Ñ$ØØ# H¡<Ð/GÌÈSÏ[É[Ë]ÓH[ÐG\Ð]óð
ó	øô ó Ü˜“9Šðús   ¢A1 Á1B	ÂB	Úxc                 ó¶   • [        U [        R                  5      (       a+  U R                  5       (       d  U R	                  5       (       a  gU R                  5       $ )NT)Ú
isinstancer   ÚLazyVariableTrackerÚis_realizedÚis_hashableÚis_python_hashable)rG   s    r3   rL   rL   `   s?   € ô 	�1”i×3Ñ3×4Ñ4Ø—‘—‘Ø�M‰M�O‰OàØ×ÑÓ!Ð!r5   c                   ó   ^ • \ rS rSr\R
                  rS1\R                  kr " S S5      r	\
4S\
\\4   S\S\SS4U 4S	 jjjrS\S\4S
 jrS\
\\4   4S jrS\4S jrS\
\\4   4S jrS\
\\4   4S jrS\4S jrS\S\4S jrSSSSS\S\\   S\
\\4   S\4S jrS\4S jrS\4S jrS\\   S\S\4S jrS0S jrS0S  jrSSS!\S\4S" jr SSS!\S\4S# jr!S!\S\\   4S$ jr"S!\SS4S% jr#S1S& jr$SSS'\%\   SS4S( jr&SSS)\S'\%\   S\
\\4   S\4
U 4S* jjr'SSS\%\   4S+ jr(SSS)\S\)4S, jr*S\S\4U 4S- jjr+S\4S. jr,S/r-U =r.$ )2ÚConstDictVariableén   Úuser_clsc                   óJ   • \ rS rSrSrS\SS4S jrS\4S jrS\	S\
4S	 jrS
rg)Ú"ConstDictVariable._HashableTrackerév   a"  
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
Úvtr-   Nc                 ó\   • [        U5      n[        U5      (       d  [        U5        Xl        g ©N)r!   rL   rF   rU   )ÚselfrU   s     r3   Ú__init__Ú+ConstDictVariable._HashableTracker.__init__}   s$   € ä# BÓ'ˆBô ˜r—?‘?Ü  Ô$Ø�Gr5   c                 óJ  • [        U R                  [        R                  5      (       aa  U R                  R	                  5       (       dB  U R                  R                  5       (       a#  [        U R                  R                  5       5      $ U R                  R                  5       $ )aU  
Computes the hash value for the wrapped VariableTracker.

For unrealized LazyVariableTrackers, uses the hash of the original value
to avoid realizing the tracker and inserting unnecessary guards.
For all other cases, delegates to the VariableTracker's get_python_hash method.

Returns:
    The hash value of the underlying variable tracker
)	rI   rU   r   rJ   rK   rL   ÚhashÚoriginal_valueÚget_python_hash©rX   s    r3   Ú__hash__Ú+ConstDictVariable._HashableTracker.__hash__†   sl   € ô ˜4Ÿ7™7¤I×$AÑ$A×BÑBØŸ™×+Ñ+×-Ñ-Ø—G‘G×'Ñ'×)Ñ)ä˜DŸG™G×2Ñ2Ó4Ó5Ð5Ø—7‘7×*Ñ*Ó,Ð,r5   Úotherc                 óÀ   • [        U[        R                  5      (       d  gU R                  UR                  L a  gU R                  R	                  UR                  5      $ )aX  
Checks equality between two _HashableTracker instances.

Delegates to the VariableTracker's is_python_equal method to compare
the underlying variable trackers for Python-level equality.

Args:
    other: Another _HashableTracker instance to compare with

Returns:
    True if the underlying variable trackers are Python-equal, False otherwise
FT)rI   rO   Ú_HashableTrackerrU   Úis_python_equal©rX   rb   s     r3   Ú__eq__Ú)ConstDictVariable._HashableTracker.__eq__™   sG   € ô ˜eÔ%6×%GÑ%G×HÑHØØ�w‰w˜%Ÿ(™(Ò"ØØ—7‘7×*Ñ*¨5¯8©8Ó4Ð4r5   )rU   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r$   rY   Úintr`   ÚobjectÚboolrg   Ú__static_attributes__© r5   r3   rd   rS   v   s9   † ñ	ð	˜ð 	°4ô 	ð	-˜cô 	-ð&	5 ð 	5¨4÷ 	5r5   rd   ÚitemsÚkwargsr-   Nc           	      ó`  >^• SU;   a  UR                  S5        SU;   a  UR                  S5        [        T	U ]  " S	0 UD6  [        R                  m[        U4S jUR                  5        5       5      (       d   eS[        [        S4   SS4U4S jjnU R                  U5      nU" UR                  5        VVs0 s H  u  pgU" U5      U_M     snn5      U l        U R                  (       a  [        U R                  5      (       + OSU l        UR                  5       U l        X l        g s  snnf )
NÚoriginal_itemsÚshould_reconstruct_allc              3   óz   >#   • U  H0  u  p[        U[        T45      =(       a    [        U[        5      v •  M2     g 7frW   )rI   r$   )Ú.0rG   ÚvÚHashables      €r3   Ú	<genexpr>Ú-ConstDictVariable.__init__.<locals>.<genexpr>¾   s<   øé € ð 
ò &‘�ô �qœ?¨HÐ5Ó6÷ /Ü˜1œoÓ.ô/â%ùs   ƒ8;ÚkeyrS   r-   c                 ó:   >• [        U T5      (       a  U $ T" U 5      $ rW   )rI   )r~   r{   s    €r3   Úmake_hashableÚ1ConstDictVariable.__init__.<locals>.make_hashableÄ   s    ø€ ô % S¨(×3Ñ3�3ÐF¹À#»ÐFr5   Trr   )ÚpopÚsuperrY   rO   rd   Úallrs   r	   r$   Ú_get_dict_cls_from_user_clsÚsourcer   rw   Úcopyrv   rQ   )
rX   rs   rQ   rt   r€   Údict_clsrG   rz   r{   Ú	__class__s
           @€r3   rY   ÚConstDictVariable.__init__¬   s  ù€ ð ˜vÓ%Ø�J‰JÐ'Ô(Ø# vÓ-Ø�J‰JÐ/Ô0ä‰ÒÑ"˜6Ò"ä$×5Ñ5ˆô ô 
ð Ÿ™œó
÷ 
ñ 
ð 	
ð 
ð	GÜ”Ð(LÐLÑMð	Gà1÷	Gð
 ×3Ñ3°HÓ=ˆÙ¸u¿{¹{¼}ÔMº}±t°q™}¨QÓ/°Ò2¹}ÒMÓNˆŒ
ð 6:·[·[Ô$ T§[¡[Ó1Õ1Àdð 	Ô#ð $Ÿj™j›lˆÔØ �ùó Ns   Â:D*
c                 óî   ^• [         [        R                  [        R                  4mUT;   a  UnO[	        U4S jUR
                   5       5      nUT;   d   U5       eU[        R                  L a  [         nU$ )Nc              3   ó6   >#   • U  H  oT;   d  M
  Uv •  M     g 7frW   rr   )ry   ÚbaseÚaccepted_dict_typess     €r3   r|   Ú@ConstDictVariable._get_dict_cls_from_user_cls.<locals>.<genexpr>Û   s   øé € ð Ú!1˜Ð=PÑ5P—‘Ò!1ùs   ƒ	�	)ÚdictÚcollectionsÚOrderedDictÚdefaultdictÚnextÚ__mro__)rX   rQ   rˆ   rŽ   s      @r3   r…   Ú-ConstDictVariable._get_dict_cls_from_user_clsÓ   s{   ø€ Ü#¤[×%<Ñ%<¼k×>UÑ>UÐVÐð Ð*Ó*Ø‰Hô ô Ø!)×!1Ò!1óó ˆHð Ð.Ó.Ð8°Ó8Ð.ð ”{×.Ñ.Ò.ÜˆHØˆr5   c                 óº   • U R                   R                  5        VVs0 s H.  u  pUR                  R                  5       UR                  5       _M0     snn$ s  snnf rW   )rs   rU   Úas_proxy©rX   Úkrz   s      r3   r˜   ÚConstDictVariable.as_proxyæ   s@   € Ø:>¿*¹*×:JÑ:JÔ:LÔMÒ:L±$°!�—‘—‘“ §¡£Ò-Ñ:LÒMÐMùÓMó   ž5Ac                 óº  • / nU R                   R                  5        H¥  u  p#[        UR                  S5      (       a  [        UR                  R                  5      OUR                  R                  5       n[        US5      (       a  [        UR                  5      OUR                  5       nUR                  U SU 35        M§     SSR                  U5      -   S-   $ )NÚvaluez: Ú{ú, Ú}©rs   ÚhasattrrU   Úreprrž   Ú
debug_reprÚappendÚjoin©rX   rs   rš   rz   Úkey_strÚval_strs         r3   r¥   ÚConstDictVariable.debug_repré   s¢   € ØˆØ—J‘J×$Ñ$Ö&‰DˆAÜ*1°!·$±$¸×*@Ñ*@”d˜1Ÿ4™4Ÿ:™:Ô&ÀaÇdÁdÇoÁoÓFWˆGÜ'.¨q°'×':Ñ':”d˜1Ÿ7™7”mÀÇÁÃˆGØ�L‰L˜G˜9 B w iÐ0Ö1ñ 'ð �T—Y‘Y˜uÓ%Ñ%¨Ñ+Ð+r5   c                 óº   • U R                   R                  5        VVs0 s H.  u  pUR                  R                  5       UR                  5       _M0     snn$ s  snnf rW   )rs   rU   Úas_python_constantr™   s      r3   r­   Ú$ConstDictVariable.as_python_constantñ   sS   € ð Ÿ
™
×(Ñ(Ô*ô
â*‘�ð �D‰D×#Ñ#Ó% q×';Ñ';Ó'=Ò=Ù*ò
ð 	
ùó 
rœ   c                 ó¾   • U R                  5         U R                  R                  5        VVs0 s H   u  pUR                  R                  5       U_M"     snn$ s  snnf rW   )Úinstall_dict_keys_match_guardrs   rU   r­   r™   s      r3   Úkeys_as_python_constantÚ)ConstDictVariable.keys_as_python_constant÷   sI   € Ø×*Ñ*Ô,Ø9=¿¹×9IÑ9IÔ9KÔLÒ9K±°�—‘×'Ñ'Ó)¨1Ò,Ñ9KÒLÐLùÓLs   ®'Ac                 ó   • U R                   $ rW   ©rQ   r_   s    r3   r@   ÚConstDictVariable.python_typeû   s   € Ø�}‰}Ðr5   rU   c                 ó  • [        U[        5      (       d   e[        R                  nUR	                  5       =(       aN    U" U5      U R
                  ;   =(       a2    [        U R
                  U" U5         [        R                  5      (       + $ rW   )rI   r$   rO   rd   rM   rs   r   ÚDeletedVariable)rX   rU   r{   s      r3   Ú__contains__ÚConstDictVariable.__contains__þ   sm   € Ü˜"œo×.Ñ.Ð.Ð.Ü$×5Ñ5ˆà×!Ñ!Ó#÷ TÙ˜“ §
¡
Ñ*÷Tä˜tŸz™z©(°2«,Ñ7¼×9RÑ9RÓSÔSð	
r5   r7   r)   Útree_map_fnr+   Úmap_fnÚrestÚtree_map_kwargsc           
      óÎ  • / nU Hz  nUR                  5       n[        U[        5      (       a,  [        UR                  5      [        U R                  5      :w  a  U R                  XX4U5      s  $ UR                  U5        M|     [        U R                  5      " 5       nU R                  R	                  5        HF  u  pš/ nU H"  n UR                  UR                  U	   5        M$     U
R                  UUUUU5      X‰'   MH     U V	s0 s H  n	U	R                  X‰   _M     nn	U R                  UUSS [        5       S9$ ! [         a    U R                  XX4U5      s s  s  $ f = fs  sn	f )NT)rs   rv   rw   r†   Úmutation_type)rD   rI   rO   Úlenrs   Ú_tree_map_fallbackr¦   r0   ÚKeyErrorÚcall_tree_maprU   Úcloner#   )rX   r7   rº   r»   r¼   r½   Úother_dictsÚ	candidateÚnew_items_hashedÚkey_trackerrž   Úsibling_leavesÚupdated_original_itemss                r3   Úcall_tree_map_branchÚ&ConstDictVariable.call_tree_map_branch  s�  € ð 02ˆÛˆIØ!×)Ñ)Ó+ˆIÜ˜iÔ):×;Ñ;¼sØ—‘ó@ä�T—Z‘Z“ó@!ð ×.Ñ.Ø V°?óò ð ×Ñ˜yÖ)ñ ô   §
¡
Ô+Ó-ÐØ"&§*¡*×"2Ñ"2Ö"4ÑˆKØ46ˆNÛ(�	ðØ"×)Ñ)¨)¯/©/¸+Ñ*FÖGñ )ð -2×,?Ñ,?ØØØØØó-ÐÓ)ñ #5ñ&  0ó"
â/�ð �N‰NÐ,Ñ9Ò9Ù/ð 	ð "
ð
 �z‰zØ"Ø1Ø#'ØÜ*Ó,ð ð 
ð 	
øô#  ó Ø×2Ñ2Ø¨°óö ðüò"
s   ÃD;ÄE"Ä;EÅEc                 óV   • [        S U R                  R                  5        5       5      $ )Nc              3   ó`   #   • U  H$  n[        U[        R                  5      (       + v •  M&     g 7frW   )rI   r   r·   )ry   rG   s     r3   r|   Ú(ConstDictVariable.len.<locals>.<genexpr>:  s'   é € ð 
ÚBU¸Q”
˜1œi×7Ñ7Ó8×8Ñ8ÒBUùs   ‚,.)Úsumrs   Úvaluesr_   s    r3   rÀ   ÚConstDictVariable.len9  s)   € Üñ 
ØBFÇ*Á*×BSÑBSÔBUó
ó 
ð 	
r5   c                 ó„   ^ • T R                   =(       d-    [        U 4S jT R                  R                  5        5       5      $ )Nc              3   ó’   >#   • U  H<  u  pTR                  TR                  R                  UR                  5      U5      v •  M>     g 7frW   )Úis_new_itemrv   r2   rU   )ry   r~   rž   rX   s      €r3   r|   Ú2ConstDictVariable.has_new_items.<locals>.<genexpr>?  s?   øé € ð 2
â0‘
�ð ×Ñ˜T×0Ñ0×4Ñ4°S·V±VÓ<¸e×DÐDÚ0ùs   ƒAA)rw   Úanyrs   r_   s   `r3   Úhas_new_itemsÚConstDictVariable.has_new_items>  s7   ø€ Ø×*Ñ*÷ 
¬cô 2
à"Ÿj™j×.Ñ.Ô0ó2
ó /
ð 	
r5   rž   rb   c                 óø   • U(       a]  UR                  5       (       aH  UR                  5       (       a3  [        UR                  5       5      [        UR                  5       5      :g  $ [        U5      [        U5      :g  $ rW   )rK   ÚidrD   )rX   rž   rb   s      r3   rÕ   ÚConstDictVariable.is_new_itemD  sW   € ö �U×&Ñ&×(Ñ(¨U×->Ñ->×-@Ñ-@Ü�e—m‘m“oÓ&¬"¨U¯]©]«_Ó*=Ñ=Ð=Ü�%‹yœB˜u›IÑ%Ð%r5   c                 óZ  • SnU R                   R                  5        Hr  u  p4U R                  R                  UR                  5      nU R	                  XT5      (       d  U R
                  (       d  MS  U" UR                  5        U" U5        US-  nMt     UR                  [        SUS95        g )Nr   r"   Ú	BUILD_MAP©r6   )rs   rv   r2   rU   rÕ   rw   Úappend_outputr   )rX   ÚcodegenÚnum_argsr~   rž   Úitems         r3   Úreconstruct_kvs_into_new_dictÚ/ConstDictVariable.reconstruct_kvs_into_new_dictL  s‰   € àˆØŸ*™*×*Ñ*Ö,‰JˆCà×&Ñ&×*Ñ*¨3¯6©6Ó2ˆDØ×Ñ ×,Ñ,°×0K×0KÑ0KÙ˜Ÿ™”Ù˜”Ø˜A‘’ñ -ð 	×ÑÔ0°À(ÑKÕLr5   c                 ó.  ^• U R                   [        R                  L aò  TR                  U4S j5        U R	                  5       (       a›  TR                  / [        SS5      Q[        5       P5        TR                  U 5        TR                  [        5       5        TR                  S5        U R                  T5        TR                  / [        S5      Q[        S5      P5        g U R                  T5        TR                  [        SS5      5        g U R	                  5       (       a_  TR                  [        SSS9[        5       /5        TR                  U 5        U R                  T5        TR                  [        S	SS95        g U R                  T5        g )
Nc                  ón   >• T R                  T R                  [        5      T R                  S5      /5      $ )Nr’   ©Úextend_outputÚcreate_load_python_moduler‘   Úcreate_load_attr©rá   s   €r3   Ú<lambda>Ú/ConstDictVariable.reconstruct.<locals>.<lambda>\  s1   ø€ ˜×-Ñ-à×9Ñ9¼+ÓFØ×0Ñ0°Ó?ðôr5   r   FÚupdater"   ÚPOP_TOPrÞ   rß   ÚDICT_UPDATE)rQ   r‘   r’   Úadd_push_nullÚ_contains_self_referenceré   r   r   Ú	add_cacherà   Úload_methodrä   r   r   ©rX   rá   s    `r3   ÚreconstructÚConstDictVariable.reconstructX  sl  ø€ Ø�=‰=œK×3Ñ3Ò3à×!Ñ!ôôð ×,Ñ,×.Ñ.Ø×%Ñ%ðÜ-¨a°Ó7ðä&Ó(ðôð ×!Ñ! $Ô'à×%Ñ%¤nÓ&6Ô7Ø×#Ñ# HÔ-Ø×2Ñ2°7Ô;Ø×%Ñ%ðÜ+¨AÓ.ðä*¨9Ó5ðõð ×2Ñ2°7Ô;Ø×%Ñ%Ô&:¸1¸eÓ&DÕEà×,Ñ,×.Ñ.Ø×%Ñ%ä*¨;¸AÑ>Ü&Ó(ðôð ×!Ñ! $Ô'Ø×2Ñ2°7Ô;Ø×%Ñ%Ô&8¸ÈAÑ&NÕOð ×2Ñ2°7Õ;r5   r6   c                 ó,  • [         R                  U5      nX0R                  ;  a0   S[        U5       SUR	                  5       < 3n[        [        X/S9  U R                  U   $ ! [
         a%    [        R                  " S[        U5       35      n NLf = f)NzDict key lookup failed for z%. Debug representation of the key is r;   )
rO   rd   rs   Ústrr¥   rA   r&   rC   r   rÂ   )rX   r7   r6   r~   Úerror_messages        r3   Ú'getitem_const_raise_exception_if_absentÚ9ConstDictVariable.getitem_const_raise_exception_if_absent‡  s–   € ô  ×0Ñ0°Ó5ˆØ—j‘jÓ ðà1´#°c³(°ð <:Ø:=¿.¹.Ó:JÑ9MðOð ô %¤X¨r¸ÒHØ�z‰z˜#‰Ðøô ó Ü 0× 7Ò 7Ø1´#°c³(°Ð<ó!’ðús   ¦ A$ Á$,BÂBc                 óÜ   • [         R                  U5      nX0R                  ;  a:  SUR                   S3n[	        SSUR                   3US/[
        R                  QS9  U R                  U   $ )NzDictionary key z not found during tracingzkey not found in dictzKey z>Check if the key exists in the dictionary before accessing it.©Úgb_typeÚcontextÚexplanationÚhints)rO   rd   rs   rž   r   r   Ú
USER_ERROR)rX   r7   r6   r~   Úmsgs        r3   Úgetitem_constÚConstDictVariable.getitem_const˜  ss   € ô  ×0Ñ0°Ó5ˆØ—j‘jÓ Ø# C§I¡I ;Ð.GÐHˆCÜØ/Ø˜sŸy™y˜kÐ*ØàTðä&×1Ñ1ðò	ð �z‰z˜#‰Ðr5   c                 ój   • [         R                  U5      nX R                  ;  a  g U R                  U   $ rW   )rO   rd   rs   )rX   r6   r~   s      r3   Úmaybe_getitem_constÚ%ConstDictVariable.maybe_getitem_const©  s-   € Ü×0Ñ0°Ó5ˆØ—j‘jÓ ØØ�z‰z˜#‰Ðr5   c                 óL  • X;   d   e[         R                  U5      n[        U R                  R	                  5       5      R                  U5      n[        U R                  R	                  5       5      U   n[        U[        R                  5      (       a  UR                  5         g g rW   )rO   rd   Útuplers   ÚkeysÚindexrv   rI   r   rJ   rD   )rX   r6   r~   r  Úoriginal_key_vts        r3   Úrealize_key_vtÚ ConstDictVariable.realize_key_vt¯  s   € à‹{Ðˆ{Ü×0Ñ0°Ó5ˆÜ�d—j‘j—o‘oÓ'Ó(×.Ñ.¨sÓ3ˆÜ × 3Ñ 3× 8Ñ 8Ó :Ó;¸EÑBˆÜ�o¤y×'DÑ'D×EÑEØ×#Ñ#Õ%ð Fr5   c                 óx   • U R                   (       a)  [        U R                  [        R                  5      5        g g rW   )r†   r   Ú
make_guardr   ÚDICT_KEYS_MATCHr_   s    r3   r°   Ú/ConstDictVariable.install_dict_keys_match_guard¸  s%   € Ø�;�;Ü˜$Ÿ/™/¬,×*FÑ*FÓGÕHð r5   r<   c           
      ó  • U R                   (       d  g UR                  R                  R                  U 5      (       a  g US   U ;   nUS   R                   cp  US   R	                  5       (       aX  [        U R                  [        R                  " [        U 5      R                  US   R                  5       U(       + S95      5        g US   R                   (       a-  U(       a  U R                  US   5        g U R                  5         g g )Nr   )r~   Úinvert)r†   ÚoutputÚside_effectsÚis_modifiedÚis_python_constantr   r  Ú	functoolsÚpartialr0   ÚCONTAINS_GUARDr­   r  r°   )rX   r7   r<   Úcontainss       r3   Úinstall_dict_contains_guardÚ-ConstDictVariable.install_dict_contains_guard¼  sÐ   € ð" �{�{Øà�9‰9×!Ñ!×-Ñ-¨d×3Ñ3Øà˜‘7˜d‘?ˆØ�‰7�>‰>Ñ! d¨1¡g×&@Ñ&@×&BÑ&BÜØ—‘Ü×%Ò%Ü˜T›
×1Ñ1Ø  ™G×6Ñ6Ó8Ø#+œ|ñóõð �!‰W�^�^ÞØ×#Ñ# D¨¡GÕ,à×2Ñ2Õ4ð	 r5   Únamec           
      ó¤   >• SSK JnJn  SSKJn  [
        R                  nUS:X  az  UR                  U[        5      R                  " U/UQ70 UD6n	UR                  R                  R                  U 5        U R                  R                  U	R                  5        [        $ US:X  a<  [!        U5      S:w  a  [#        XS[!        U5       S35        U R%                  XS   5      $ US	:X  a�  U(       d  U(       a&  [#        UUS
[!        U5       S[!        U5       S35        U R'                  5         U R(                  (       a/  UR                  R*                  R-                  U R(                  5        [/        U 5      $ US:X  a„  [!        U5      (       a  [#        XS[!        U5       S35        U R'                  5         U R(                  (       a/  UR                  R*                  R-                  U R(                  5        [1        U 5      $ US:X  a­  U(       d  U(       a&  [#        UUS
[!        U5       S[!        U5       S35        U R'                  5         U R(                  (       a/  UR                  R*                  R-                  U R(                  5        U(       d  U(       a  [3        [4        U5        [7        U 5      $ US:X  au  U R'                  5         U(       d  U(       a&  [#        UUS
[!        U5       S[!        U5       S35        U R9                  U R                  R;                  5       [=        5       S S9$ US:X  ai  U(       d  U(       a&  [#        UUS
[!        U5       S[!        U5       S35        U R'                  5         UR                  " [!        U R                  5      5      $ US:X  aÔ  U R?                  5       (       a¿  U=(       a    [A        US   5      n
U
(       d  [C        US   U5        U R'                  5         U(       d  [!        U5      S:w  a&  [#        UUS[!        U5       S[!        U5       S35        UR                  R                  R                  U 5        US   U R                  U" US   5      '   [        $ US:X  a©  U R?                  5       (       a”  U=(       a    [A        US   5      n
U
(       af  U R'                  5         SU l"        UR                  R                  R                  U 5        U R                  RG                  U" US   5      5        [        $ [H        TU ]•  XX45      $ US:X  a�  [!        U5      S;  a  [#        XS[!        U5       S35        U=(       a    [A        US   5      n
U
(       d  [C        US   U5        US   U ;  a+  U RM                  X5        [!        U5      S:X  a  [        $ US   $ U RO                  XS   5      $ US:X  aø  U R?                  5       (       aã  [!        U5      S;  a  [#        XS[!        U5       S35        U=(       a    [A        US   5      n
U
(       d  [C        US   U5        US   U ;  a5  U RM                  X5        [!        U5      S:X  a  [3        [P        U5        US   $ SU l"        UR                  R                  R                  U 5        U R                  RS                  U" US   5      5      $ US:X  Gaç  U R?                  5       (       GaÑ  [U        U RV                  [        5      (       aD  [U        U RV                  [X        RZ                  5      (       d  [!        U5      (       a  [#        X5        U R                  (       d!  UR                  " S5      n[3        [P        X/S9  U RV                  [X        RZ                  L aµ  [!        U5      S:X  d  SU;   a   [!        U5      S:X  a,  US   R]                  5       (       a  US   R_                  5       nOIURa                  S5      =n(       a&  UR]                  5       (       a  UR_                  5       nO[#        X5        U R                  Rc                  WS 9u  píOU R                  Rc                  5       u  píSU l"        UR                  R                  R                  U 5        [d        Rf                  " URh                  U/5      $ US!:X  a€  U(       d  U(       a&  [#        UUS
[!        U5       S[!        U5       S35        SU l"        UR                  R                  R                  U 5        U R                  Rk                  5         [        $ US":X  Gaa  U R?                  5       (       GaK  U R'                  5         [!        U5      S:H  n[!        U5      S:„  nU(       d  U(       Ga   UR                  R                  R                  U 5        U(       aq  [m        US   [
        5      (       a  US   R'                  5         US   nOURn                  " U[        US   5      nU R                  R                  UR                  5        U(       aV  UR                  5        VVs0 s H  u  píU" UR                  " U5      5      U_M      nnnU R                  R                  U5        [        $ [H        TU ]•  XX45      $ US#:X  aŽ  [!        U5      (       d&  [#        UUS$[!        U5       S[!        U5       S35        U=(       a    [A        US   5      n
U
(       d  [C        US   U5        U RM                  X5        US   U ;   nUR                  " U5      $ US%:X  Ga7  U R?                  5       (       Ga!  [!        U5      S;  a&  [#        UUS&[!        U5       S[!        U5       S35        U=(       a    [A        US   5      n
U
(       d  [C        US   U5        U R'                  5         U(       d  [!        U5      S:”  a&  [#        UUS'[!        U5       S[!        U5       S35        U Rq                  US   5      nUb  U$ [!        U5      S:X  a  [        nOUS   nUR                  R                  R                  U 5        UU R                  U" US   5      '   U$ US(:X  aù  U R'                  5         UR                  R                  R                  U 5        US   U ;  a  [3        [P        U5        Sn[!        U5      S:X  a+  US   R]                  5       (       a  US   R_                  5       nU(       a=  SU;   a7  US   R]                  5       (       a  URa                  S5      R_                  5       nU" US   5      nU R                  Rs                  UUS 9  [        $ US):X  ar  [u        U [
        5      (       a]  [!        U5      S:w  a  [#        XS[!        U5       S35        UR                  U[v        Rx                  5      R{                  XUS   /0 5      $ US*:X  a2  UR                  " U RK                  US)X45      R|                  (       + 5      $ US+:X  Gaq  [!        U5      S:w  a  [#        XS[!        U5       S35        US   n[u        U[
        [d        R~                  [d        R€                  45      (       aÆ  U RV                  [        La  U RV                  nU nO%[m        U[
        5      (       d   eURV                  nUnUR'                  5         UR9                  U R                  R;                  5       [=        5       S US,9nUS   R'                  5         UR                  R                  US   R                  5        U$ S-U Rƒ                  5       R„                   S.URƒ                  5       R„                   S/3n[3        [4        UU/S9  g US0:X  a  U RK                  US"X45        U $ US1:X  a~  SS2KCJDn  U R(                  (       aI  [‹        U R(                  5      (       d/  UR                  R*                  R-                  U R(                  5        U" U R�                  U5      [=        5       S39$ [H        TU ]•  XX45      $ s  snnf )4Nr"   )r*   r&   r9   rY   Ú__getitem__ú1 argsú argsr   rs   ú0 args and 0 kwargsú
 args and ú kwargsr  z0 argsrÑ   r‡   )rs   r¿   r†   Ú__len__Ú__setitem__r   z2 args and 0 kwargsÚ__delitem__Tr2   )r"   r   z1 or 2 argsr‚   Úpopitemzpopitem(): dictionary is emptyr;   Úlast)r.  Úclearrï   r¸   zmore than 1 args and 0 kwargsÚ
setdefaultz1 or 2 args and 0 kwargszat most 2 args and 0 kwargsÚmove_to_endrg   Ú__ne__Ú__or__)rs   r¿   r†   rQ   z$unsupported operand type(s) for |: 'z'and 'Ú'Ú__ior__Ú__iter__©ÚListIteratorVariable©r¿   )GÚ r*   r&   r=   r:   rO   rd   rC   r�   Ú	call_dictr  r  Úmutationrs   rï   r%   rÀ   r    rü   r°   r†   Úguard_on_key_orderÚaddÚDictItemsVariableÚDictKeysVariabler   rB   ÚDictValuesVariablerÄ   r‡   r#   Ú
is_mutablerL   rF   rw   r,  rƒ   Úcall_methodr   r  rÂ   r‚   Ú
issubclassrQ   r‘   r’   r  r­   r2   r-  r   ÚTupleVariablerU   r/  rI   Úcall_custom_dictr	  r1  r   r   Údict___eq__Úcall_functionrž   ÚUserDefinedDictVariableÚDefaultDictVariabler@   ri   Úlistsr8  r   Úunpack_var_sequence)rX   r7   r"  r<   rt   r*   r&   r:   r{   Útemp_dict_vtÚarg_hashabler  r.  rz   rš   Úhas_argÚ
has_kwargsÚdict_vtÚkwargs_hashabler  rž   rG   r~   rb   rQ   Úto_cpyÚnew_dict_vtÚerr_msgr8  r‰   s                                €r3   rC  ÚConstDictVariable.call_methodä  s�  ø€ ÷ 	8Ý.ä$×5Ñ5ˆà�:ÓØ,×3Ñ3°B¼Ó=×GÒGØðØòØ#ñˆLð �I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J×Ñ˜l×0Ñ0Ô1Ü)Ð)Ø�]Ó"ä�4‹y˜A‹~Ü# B¨h¼3¸t»9¸+ÀUÐ8KÔLØ×?Ñ?ÀÈÁGÓLÐLØ�W‹_Þ–vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð ×.Ñ.Ô0Ø�{�{Ø—	‘	×,Ñ,×0Ñ0°·±Ô=Ü$ TÓ*Ð*Ø�V‹^Ü�4�y‰yÜ# B¨h¼3¸t»9¸+ÀUÐ8KÔLØ×.Ñ.Ô0Ø�{�{Ø—	‘	×,Ñ,×0Ñ0°·±Ô=Ü# DÓ)Ð)Ø�XÓÞ–vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð ×.Ñ.Ô0Ø�{�{Ø—	‘	×,Ñ,×0Ñ0°·±Ô=Þ–vÜ(¬°BÔ7Ü% dÓ+Ð+Ø�V‹^Ø×.Ñ.Ô0Þ–vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð —:‘:Ø—j‘j—o‘oÓ'Ô7GÓ7IÐRVð ð ð ð �YÓÞ–vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð ×.Ñ.Ô0Ø#×*Ò*¬3¨t¯z©z«?Ó;Ð;Ø�]Ó" t§¡×'8Ñ'8Ø×8¤K°°Q±Ó$8ˆLÞÜ   a¡¨"Ô-à×.Ñ.Ô0Þœ˜T› a›Ü#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð �I‰I×"Ñ"×+Ñ+¨DÔ1Ø,0°©GˆD�J‰J‘x  Q¡Ó(Ñ)Ü)Ð)Ø�]Ó" t§¡×'8Ñ'8Ø×8¤K°°Q±Ó$8ˆLÞØ×2Ñ2Ô4Ø.2�Ô+Ø—	‘	×&Ñ&×/Ñ/°Ô5Ø—
‘
×&Ñ&¡x°°Q±Ó'8Ô9Ü-Ð-ä‘wÑ*¨2°TÓBÐBØ�U‹]Ü�4‹y Ó&Ü# B¨mÄÀDÃ	¸{È%Ð=PÔQà×8¤K°°Q±Ó$8ˆLÞÜ   a¡¨"Ô-à�A‰w˜dÓ"Ø×0Ñ0°Ô:Ü�t“9 “>ä1Ð1Ø˜A‘w�à×%Ñ% b¨q©'Ó2Ð2Ø�U‹]˜tŸ™×0Ñ0Ü�4‹y Ó&Ü# B¨mÄÀDÃ	¸{È%Ð=PÔQà×8¤K°°Q±Ó$8ˆLÞÜ   a¡¨"Ô-à�A‰w˜dÓ"à×0Ñ0°Ô:Ü�t“9 “>ä,¬X°rÔ:Ø˜A‘w�à*.ˆDÔ'Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø—:‘:—>‘>¡(¨4°©7Ó"3Ó4Ð4Ø�YÔ 4§?¡?×#4Ò#4ä˜4Ÿ=™=¬$×/Ñ/Ü" 4§=¡=´+×2IÑ2I×JÑJÜ˜—I‘Iä# BÔ-à—:—:Ø&×-Ò-Ð.NÓO�Ü(¬°2¸EÒBà�}‰}¤× 7Ñ 7Ò7Ü�D“	˜Q“ &¨FÓ"2ä�t“9 “> d¨1¡g×&@Ñ&@×&BÑ&BØ ™7×5Ñ5Ó7‘DØ!Ÿ:™: fÓ-Ð-�aÕ-°1×3GÑ3G×3IÑ3IØ×/Ñ/Ó1‘Dä'¨Ô1Ø—z‘z×)Ñ)¨tÐ)Ð4‘��1à—z‘z×)Ñ)Ó+‘�à*.ˆDÔ'Ø�I‰I×"Ñ"×+Ñ+¨DÔ1ä×*Ò*¨A¯D©D°!¨9Ó5Ð5Ø�W‹_Þ–vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð +/ˆDÔ'Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J×ÑÔÜ)Ð)Ø�XÔ $§/¡/×"3Ò"3ð ×.Ñ.Ô0Ü˜$“i 1‘nˆGÜ˜V› q™ˆJÞŸ*Ø—	‘	×&Ñ&×/Ñ/°Ô5ÞÜ! $ q¡'Ô+<×=Ñ=ð ˜Q™×=Ñ=Ô?Ø59¸!±W™à"1×"BÒ"BÀ2ÄtÈTÐRSÉWÓ"U˜Ø—J‘J×%Ñ% g§m¡mÔ4Þð %+§L¡L¤Nô'â$2™D˜Añ !Ð!1×!8Ò!8¸Ó!;Ó<¸aÒ?Ù$2ð $ñ 'ð —J‘J×%Ñ% oÔ6Ü-Ð-ä‘wÑ*¨2°TÓBÐBØ�^Ó#Ü�t—9‘9Ü#ØØØ3Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð  ×8¤K°°Q±Ó$8ˆLÞÜ   a¡¨"Ô-à×,Ñ,¨RÔ6Ø˜A‘w $‘ˆHØ#×*Ò*¨8Ó4Ð4Ø�\Ô! d§o¡o×&7Ò&7Ü�4‹y Ó&Ü#ØØØ.Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð  ×8¤K°°Q±Ó$8ˆLÞÜ   a¡¨"Ô-à×.Ñ.Ô0Þœ˜T› Q›Ü#ØØØ1Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð ×,Ñ,¨T°!©WÓ5ˆEØÑ Ø�ä�t“9 “>Ü.‘Aà˜Q™�AØ—	‘	×&Ñ&×/Ñ/°Ô5Ø01�—
‘
™8 D¨¡GÓ,Ñ-Ø�Ø�]Ó"Ø×.Ñ.Ô0Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø�A‰w˜dÓ"Ü(¬°2Ô6àˆDÜ�4‹y˜A‹~ $ q¡'×"<Ñ"<×">Ñ">Ø˜A‘w×1Ñ1Ó3�æ˜& FÓ*¨v°f©~×/PÑ/P×/RÑ/RØ—z‘z &Ó)×<Ñ<Ó>�á˜4 ™7Ó#ˆCØ�J‰J×"Ñ" 3¨TÐ"Ñ2Ü)Ð)Ø�XÓ¤&ØÔ#÷#
ñ #
ô �4‹y˜A‹~Ü# B¨h¼3¸t»9¸+ÀUÐ8KÔLà$×+Ñ+¨B´	×0EÑ0EÓF×TÑTØ˜4 ™7�O Róð ð �XÓØ#×*Ò*Ø×$Ñ$ R¨°4Ó@×FÑFÔFóð ð �XÔÜ�4‹y˜A‹~Ü# B¨h¼3¸t»9¸+ÀUÐ8KÔLØ˜‘GˆEô& Øä%Ü×5Ñ5Ü×1Ñ1ð÷ñ ð —=‘=¬Ò,Ø#Ÿ}™}�HØ!‘Fä% eÔ->×?Ñ?Ð?Ð?Ø$Ÿ~™~�HØ"�Fà×4Ñ4Ô6Ø$Ÿl™lØŸ*™*Ÿ/™/Ó+Ü"2Ó"4ØØ%ð	 +ð �ð �Q‘×5Ñ5Ô7Ø×!Ñ!×(Ñ(¨¨a©¯©Ô7Ø"Ð"ð ;¸4×;KÑ;KÓ;M×;VÑ;VÐ:Wð XØ!×-Ñ-Ó/×8Ñ8Ð9¸ð<ð ô )¬°B¸g¸YÓGØ�YÓØ×Ñ˜R ¨4Ô8ØˆKØ�ZÓÝ3à�{�{Ô#5°d·k±k×#BÑ#BØ—	‘	×,Ñ,×0Ñ0°·±Ô=Ù'Ø×(Ñ(¨Ó,Ô<LÓ<Nñð ô ‘7Ñ& r°Ó>Ð>ùó{'s   é%AAc                 óx   • U R                  5         U R                   Vs/ s H  o"R                  PM     sn$ s  snf rW   )r°   rs   rU   )rX   r7   rG   s      r3   rL  Ú%ConstDictVariable.unpack_var_sequenceR  s,   € Ø×*Ñ*Ô,Ø"ŸjšjÓ)šj˜—”™jÑ)Ð)ùÒ)s   Ÿ7c                 ó¨  ^ • [        U 4S j[        [        R                  [        R                  4 5       5      (       aZ  [        T R                  U5      (       a  [        R                  " S5      $ T R                  [        L a  [        R                  " S5      $ ST R                   S3n[        SST R                   3US/[        R                  QS	9  g )
Nc              3   ó@   >#   • U  H  nTR                   UL v •  M     g 7frW   r´   )ry   ÚtrX   s     €r3   r|   Ú5ConstDictVariable.call_obj_hasattr.<locals>.<genexpr>[  s!   øé € ð 
âM�ð �M‰M˜QÕÚMùs   ƒTFzhasattr on z is not supportedzunsupported hasattr operationzClass z+Consider using a regular dictionary insteadrÿ   )r×   r�   r‘   r’   r“   r£   rQ   r&   rC   r   r   ÚSUPPORTABLE)rX   r7   r"  r  s   `   r3   Úcall_obj_hasattrÚ"ConstDictVariable.call_obj_hasattrV  s¸   ø€ ô
 ô 
äœK×3Ñ3´[×5LÑ5LÑMó
÷ 
ñ 
ô �t—}‘} d×+Ñ+Ü'×.Ò.¨tÓ4Ð4Ø�}‰}¤Ò$Ü'×.Ò.¨uÓ5Ð5à˜DŸM™M˜?Ð*;Ð<ˆÜØ3Ø˜TŸ]™]˜OÐ,Øà=ðä"×.Ñ.ðó		
r5   c                 óD   >• U R                  5         [        TU ]  " S0 UD6$ ©Nrr   )r°   rƒ   rÄ   ©rX   rt   r‰   s     €r3   rÄ   ÚConstDictVariable.cloneo  s!   ø€ Ø×*Ñ*Ô,Ü‰wŠ}Ñ&˜vÑ&Ð&r5   c                 ó   • g)z@
Dictionaries are mutable and therefore not hashable in Python.
Frr   r_   s    r3   rM   Ú$ConstDictVariable.is_python_hashables  ó   € ð r5   )rs   rv   rw   rQ   ©rá   r'   r-   N©r-   N)/ri   rj   rk   rl   r   ÚDICT_CONTAINSr  r$   Ú_nonvar_fieldsrd   r�   r0   r   rY   r…   r˜   rú   r¥   r­   r±   r@   rp   r¸   r   rË   rn   rÀ   rØ   r   rÕ   rä   r÷   rü   r  r	  r  r°   Úlistr   rC  rL  r&   r^  rÄ   rM   rq   Ú__classcell__©r‰   s   @r3   rO   rO   n   s»  ø† Ø!×/Ñ/€Nð 	ðà	×	'Ñ	'ð€N÷
45ñ 45ðr ñ%!à�O _Ð4Ñ5ð%!ð ð%!ð ð	%!ð
 
÷%!ð %!ðN°Dð ¸Tô ð&N˜$˜s C˜x™.ô Nð,˜Cô ,ð
 D¨¨c¨¡Nô 
ðM¨¨c°?Ð.BÑ)Cô Mð˜Tô ð
˜ð 
°4ô 
ð0
à#ð0
ð ,ð0
ð  ð	0
ð
 �Ñ'ð0
ð ˜c ?Ð2Ñ3ð0
ð 
ô0
ðd
�Sô 
ð

˜tô 
ð&Ø˜oÑ.ð&Ø7Fð&à	ô&ô
Mô-<ð^Ø)ðØ0?ðà	ôð"Ø)ðØ0?ðà	ôð" ð ¸8ÀOÑ;Tô ð& /ð &°dô &ôIð&5Ø)ð&5Ø15°oÑ1Fð&5à	ô&5ðPl?à#ðl?ð ðl?ð �?Ñ#ð	l?ð
 �S˜/Ð)Ñ*ðl?ð 
÷l?ð\*Ð&=ð *À$ÀÑBWô *ð
Ø)ð
Ø14ð
à	ô
ð2'˜cð ' o÷ 'ð D÷ ò r5   rO   c            
       ó²   ^ • \ rS rSrS\S\SS4U 4S jjrS\4S jrSS	S\	\
   4S
 jrSS jrSS	S\S\	\
   S\\\
4   S\
4
S jrSS	S\S\4U 4S jjrSrU =r$ )ÚMappingProxyVariableiz  Údv_dictrt   r-   Nc                 ó`   >• [         TU ]  " S0 UD6  [        U[        5      (       d   eXl        g ra  )rƒ   rY   rI   rO   rp  ©rX   rp  rt   r‰   s      €r3   rY   ÚMappingProxyVariable.__init__|  s,   ø€ Ü‰ÒÑ"˜6Ò"Ü˜'Ô#4×5Ñ5Ð5Ð5Ø�r5   c                 ó"   • [         R                  $ rW   )ÚtypesÚMappingProxyTyper_   s    r3   r@   Ú MappingProxyVariable.python_type�  s   € Ü×%Ñ%Ð%r5   r7   r)   c                 ó8   • U R                   R                  U5      $ rW   )rp  rL  ©rX   r7   s     r3   rL  Ú(MappingProxyVariable.unpack_var_sequence„  s   € Ø�|‰|×/Ñ/°Ó3Ð3r5   c                 ó   ^• U R                   (       a:  SU R                    S3n[        SSU R                    3US/[        R                  QS9  TR	                  U4S j5        T" U R
                  5        TR                  [        SS	5      5        g )
Nz*Preexisting MappingProxyVariable (source: zS) cannot be reconstructed because the connection to the original dict will be lost.z%mapping proxy cannot be reconstructedúSource: zCUse a mapping proxy constructed in the same `torch.compile` region.rÿ   c                  ón   >• T R                  T R                  [        5      T R                  S5      /5      $ )Nrv  )ré   rê   ru  rë   rì   s   €r3   rí   Ú2MappingProxyVariable.reconstruct.<locals>.<lambda>˜  s2   ø€ �G×)Ñ)à×5Ñ5´eÓ<Ø×,Ñ,Ð-?Ó@ðôr5   r"   F)r†   r   r   r]  rò   rp  ré   r   )rX   rá   r  s    ` r3   r÷   Ú MappingProxyVariable.reconstruct‡  s”   ø€ à�;�;à<¸T¿[¹[¸Mð JLð Lð ô Ø?Ø" 4§;¡; -Ð0ØàYðä&×2Ñ2ðò	ð 	×Ñôô	
ñ 	�—‘ÔØ×ÑÔ2°1°eÓ<Õ=r5   r"  r<   c                 óê   • U R                   (       aG  UR                  R                  R                  5       (       a  Sn[	        SSU R                    S3USS/S9  U R
                  R                  XX45      $ )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.z-mapping proxy affected by dictionary mutationr|  z, Dict mutation detectedzNAvoid modifying dictionaries that might be referenced by mapping proxy objectszROr avoid using the mapping proxy objects after modifying its underlying dictionaryrÿ   )r†   r  r  Úhas_existing_dict_mutationr   rp  rC  )rX   r7   r"  r<   rt   r  s         r3   rC  Ú MappingProxyVariable.call_method¢  sr   € ð �;�;˜2Ÿ9™9×1Ñ1×LÑL×NÑNð7ð ô ØGØ" 4§;¡; -Ð/GÐHØàdØhðò	ð �|‰|×'Ñ'¨°$Ó?Ð?r5   c                 óÆ   >• U R                  5       [        R                  L a1  [        R                  " U[        R                  R
                  ;   5      $ [        TU ]  X5      $ rW   )r@   ru  rv  r&   rC   r1   rƒ   r^  ©rX   r7   r"  r‰   s      €r3   r^  Ú%MappingProxyVariable.call_obj_hasattr¿  sN   ø€ ð ×ÑÓ¤×!7Ñ!7Ò7Ü#×*Ò*¨4´5×3IÑ3I×3RÑ3RÑ+RÓSÐSÜ‰wÑ'¨Ó1Ð1r5   ©rp  rg  )ri   rj   rk   rl   rO   r   rY   r0   r@   rk  r$   rL  r÷   rú   r�   rC  r&   r^  rq   rl  rm  s   @r3   ro  ro  z  s´   ø† ðÐ 1ð ¸Sð ÀT÷ ð
&˜Tô &ð4Ð&=ð 4À$ÀÑBWô 4ô>ð6@à#ð@ð ð@ð �?Ñ#ð	@ð
 �S˜/Ð)Ñ*ð@ð 
ô@ð:2Ø)ð2Ø14ð2à	÷2õ 2r5   ro  c                   ó:   • \ rS rSrS
S jrSSS\\   SS4S jrS	rg)ÚNNModuleHooksDictVariableiÇ  r-   Nc                 ó   • g rW   rr   r_   s    r3   r°   Ú7NNModuleHooksDictVariable.install_dict_keys_match_guardÉ  s   € Ør5   r7   r)   r<   c                 ó   • g rW   rr   ©rX   r7   r<   s      r3   r   Ú5NNModuleHooksDictVariable.install_dict_contains_guardÌ  s   € ð 	r5   rr   rh  )	ri   rj   rk   rl   r°   rk  r$   r   rq   rr   r5   r3   rˆ  rˆ  Ç  s)   † ôðØ)ðØ15°oÑ1Fðà	÷r5   rˆ  c                   óô   ^ • \ rS rSr SS\\\4   S\S\\   S\SS4
U 4S jjjr	S\
4U 4S	 jjrS\4U 4S
 jjr\S\S\
4S j5       rSSS\S\\   S\\\4   S\4
U 4S jjrSSS\S\4U 4S jjrSS jrSrU =r$ )rJ  iÒ  Nrs   rQ   Údefault_factoryrt   r-   c                 óp   >• [         TU ]  " X40 UD6  U[        R                  L d   eUc  [        nX0l        g rW   )rƒ   rY   r‘   r“   r%   r�  )rX   rs   rQ   r�  rt   r‰   s        €r3   rY   ÚDefaultDictVariable.__init__Ó  s<   ø€ ô 	‰Ò˜Ñ3¨FÒ3Øœ;×2Ñ2Ò2Ð2Ð2ØÑ"Ü4ˆOØ.Õr5   c                 ó‚   >• U R                   [        [        [        4;  a  U R                  (       d  g[
        TU ]  5       $ )NF)r�  rk  r  r�   rs   rƒ   r  ©rX   r‰   s    €r3   r  Ú&DefaultDictVariable.is_python_constantà  s1   ø€ ð ×Ñ¬¬e´TÐ':Ó:À4Ç:Ç:ØÜ‰wÑ)Ó+Ð+r5   c                 ó|   >• U R                   c   eSU R                   R                  5        S[        TU ]  5        S3$ )Nzdefaultdict(r    Ú))r�  r¥   rƒ   r“  s    €r3   r¥   ÚDefaultDictVariable.debug_reprç  sF   ø€ Ø×#Ñ#Ñ/Ð/Ð/à˜4×/Ñ/×:Ñ:Ó<Ð=¸RÄÁÑ@RÓ@TÐ?UÐUVÐWð	
r5   r6   c                 ó  • [        U [        R                  [        R                  R                  [        R                  R
                  45      =(       d/    [        U [        R                  5      =(       a    U R                  S L $ rW   )rI   r   r*   Ú	functionsÚBaseUserFunctionVariableÚPolyfilledFunctionVariabler&   rž   rß   s    r3   Úis_supported_argÚ$DefaultDictVariable.is_supported_argí  se   € äØä×)Ñ)Ü×#Ñ#×<Ñ<Ü×#Ñ#×>Ñ>ðó
÷ Qô ˜œi×8Ñ8Ó9×O¸c¿i¹iÈ4Ð>Oð	Qr5   r7   r)   r"  r<   c                 ó  >• US:X  aÄ  [        U5      S:w  a  [        XS[        U5       S35        US   U ;   a  U R                  XS   5      $ [        U R                  [
        5      (       a*  U R                  R                  c  [        [        XS   /S9  g U R                  R                  U/ 0 5      n[        TU ]-  USUS   U/U5        U$ US:X  aÂ  U R                  (       a±  [        U5      S	:w  a  [        XS
[        U5       S35        [        US   [
        5      (       aa  US   R                  S:X  aN  U R                  US   5      (       a5  UR                  R                  R!                  U 5        US   U l        ["        $ [        TU ]-  XX45      $ US:X  aa  [        U5      S:w  a  [        XS[        U5       S35        [$        R&                  " [(        R*                  5      R                  XUS   /0 5      $ [        TU ]-  XX45      $ )Nr$  r"   r%  r&  r   r;   r+  Ú__setattr__r   z2 argsr�  rg   )rÀ   r    r  r   r�  r&   rž   r   rÂ   rH  rƒ   rC  rB  rœ  r  r  r<  r%   r   r+   r   rG  )rX   r7   r"  r<   rt   Údefault_varr‰   s         €r3   rC  ÚDefaultDictVariable.call_methodø  sÜ  ø€ ð �=Ó Ü�4‹y˜A‹~Ü# B¨h¼3¸t»9¸+ÀUÐ8KÔLà�A‰w˜$‹Ø×)Ñ)¨"°1©gÓ6Ð6ô ˜4×/Ñ/Ô1A×BÑBØ×,Ñ,×2Ñ2Ñ:ä,¬X°rÀaÁÀ	ÓJà"&×"6Ñ"6×"DÑ"DÀRÈÈRÓ"P�KÜ‘GÑ'Ø˜M¨D°©G°[Ð+AÀ6ôð 'Ð&Ø�]Ó" t§§Ü�4‹y˜A‹~Ü# B¨h¼3¸t»9¸+ÀUÐ8KÔLô �t˜A‘wÔ 0×1Ñ1°d¸1±g·m±mÐGXÓ6XØ×'Ñ'¨¨Q©×0Ñ0Ø—	‘	×&Ñ&×/Ñ/°Ô5Ø'+¨A¡w�Ô$Ü-Ð-Ü‘7Ñ& r°Ó>Ð>Ø�XÓÜ�4‹y˜A‹~Ü# B¨h¼3¸t»9¸+ÀUÐ8KÔLä×1Ò1´)×2GÑ2GÓH×VÑVØ˜4 ™7�O Róð ô ‘7Ñ& r°Ó>Ð>r5   c                 óF   >• US:X  a  U R                   $ [        TU ]	  X5      $ )Nr�  )r�  rƒ   Úvar_getattrr„  s      €r3   r£  ÚDefaultDictVariable.var_getattr&  s*   ø€ ð
 Ð$Ó$Ø×'Ñ'Ð'Ü‰wÑ" 2Ó,Ð,r5   c                 óˆ  ^• TR                  U4S j5        T" U R                  5        TR                  / [        SS5      Q[	        5       P5        TR                  U 5        TR                  [	        5       5        TR                  S5        U R                  T5        TR                  / [        S5      Q[        S5      P5        g )Nc                  ón   >• T R                  T R                  [        5      T R                  S5      /5      $ )Nr“   rè   rì   s   €r3   rí   Ú1DefaultDictVariable.reconstruct.<locals>.<lambda>2  s1   ø€ �G×)Ñ)à×5Ñ5´kÓBØ×,Ñ,¨]Ó;ðôr5   r"   Frï   rð   )rò   r�  ré   r   r   rô   rà   rõ   rä   r   r   rö   s    `r3   r÷   ÚDefaultDictVariable.reconstruct/  s½   ø€ à×Ñôô	
ñ 	�×$Ñ$Ô%Ø×ÑðÜ% a¨Ó/ðäÓ ðô	
ð 	×Ñ˜$Ôà×ÑœnÓ.Ô/Ø×Ñ˜HÔ%Ø×*Ñ*¨7Ô3Ø×ÑðÜ# AÓ&ðä" 9Ó-ðõ	
r5   )r�  rW   rg  )ri   rj   rk   rl   r�   r$   r0   r   r   rY   rp   r  rú   r¥   Ústaticmethodrœ  rk  rC  r£  r÷   rq   rl  rm  s   @r3   rJ  rJ  Ò  sÿ   ø† ð
 6:ñ	/à�O _Ð4Ñ5ð/ð ð/ð " /Ñ2ð	/ð
 ð/ð 
÷/ð /ð, D÷ ,ð
˜C÷ 
ð ðQ˜oð Q°$ó Qó ðQð,?à#ð,?ð ð,?ð �?Ñ#ð	,?ð
 �S˜/Ð)Ñ*ð,?ð 
÷,?ð\-à#ð-ð ð-ð 
÷	-÷
ò 
r5   rJ  c            
       ó^  ^ • \ rS rSrSr\R                  rS\\	   S\
SS4U 4S jjrS\4S jr\S\S	   4S
 j5       r\S\	4S j5       rS\
4S jrS\4S jrS\
4S jrSS jrSSS\
S\\	   S\\\	4   S\	4
S jrSSS\S\\	   S\\\	4   S\	4
U 4S jjrSS jrSSS\	S\	4S jrSS jrSrU =r $ )ÚSetVariableiP  z.We model a sets as dictionary with None valuesrs   rt   r-   Nc                 ó0  >• / nU HT  n[        U[        R                  5      (       a  UR                  U5        M5  UR                  UR	                  5       5        MV     [
        R                  U[        R                  5       5      n[        TU ](  " U40 UD6  g rW   )rI   rO   rd   r¦   rD   r�   Úfromkeysr«  Ú_default_valuerƒ   rY   )rX   rs   rt   Úrealized_itemsrã   r‰   s        €r3   rY   ÚSetVariable.__init__U  sy   ø€ ð ˆÛˆDÜ˜$Ô 1× BÑ B×CÑCà×%Ñ% dÖ+ð ×%Ñ% d§l¡l£nÖ5ñ ô —‘˜n¬k×.HÑ.HÓ.JÓKˆä‰Ò˜Ñ) &Ó)r5   c                 óf  • U R                   (       d  g/ nU R                    Hw  n[        U[        R                  5      (       a  UR                  OUn[        US5      (       a  [        UR                  5      OUR                  5       nUR                  U5        My     SSR                  U5      -   S-   $ )Nzset()rž   rŸ   Ú,r¡   )rs   rI   rO   rd   rU   r£   r¤   rž   r¥   r¦   r§   )rX   rs   rz   rU   rª   s        r3   r¥   ÚSetVariable.debug_reprk  s…   € Ø�z�zØà!ˆEØ—Z”Z�Ü'¨Ô+<×+MÑ+M×NÑN�Q—T’TÐTU�Ü,3°B¸×,@Ñ,@œ$˜rŸx™xœ.ÀbÇmÁmÃo�Ø—‘˜WÖ%ñ  ð ˜Ÿ™ %›Ñ(¨3Ñ.Ð.r5   rS   c                 óH   • [        U R                  R                  5       5      $ rW   )Úsetrs   r  r_   s    r3   Ú	set_itemsÚSetVariable.set_itemsv  s   € ä�4—:‘:—?‘?Ó$Ó%Ð%r5   c                  ó   • [         $ rW   )r%   rr   r5   r3   r®  ÚSetVariable._default_valuez  s
   € ô &Ð%r5   c                 ót   • U R                    Vs1 s H  oR                  R                  5       iM     sn$ s  snf rW   )r¶  rU   r˜   ©rX   rš   s     r3   r˜   ÚSetVariable.as_proxy  s&   € Ø)-¯ªÓ8ª A—‘—‘–©Ñ8Ð8ùÒ8ó   �#5c                 ó   • [         $ rW   )rµ  r_   s    r3   r@   ÚSetVariable.python_type‚  s   € Üˆ
r5   c                 ót   • U R                    Vs1 s H  oR                  R                  5       iM     sn$ s  snf rW   )r¶  rU   r­   r»  s     r3   r­   ÚSetVariable.as_python_constant…  s)   € Ø37·>²>ÓB²>¨a—‘×'Ñ'Ö)±>ÑBÐBùÒBr½  c                 óÐ   • UR                  U R                   Vs/ s H  o"R                  PM     sn5        UR                  [	        S[        U R                  5      S95        g s  snf )NÚ	BUILD_SETrß   )Úforeachr¶  rU   rà   r   rÀ   ©rX   rá   rG   s      r3   r÷   ÚSetVariable.reconstructˆ  sG   € Ø�‰ t§~¢~Ó6¢~ !Ÿœ¡~Ñ6Ô7Ø×ÑÔ0°Ä#ÀdÇnÁnÓBUÑVÕWùò 7s   šA#r7   r)   Úfnr<   c                 ó¨  •  U" U /UQ Vs/ s H  oUR                  5       PM     sn0 UR                  5        VVs0 s H  u  pgXgR                  5       _M     snnD6n[        R                  " UW5      $ s  snf s  snnf ! [         aI  n	[        [	        U	5      U[        [        [        R                  U	R                  5      5      S9   S n	A	NpS n	A	ff = f)Nr;   )r­   rs   rA   r   r0   rk  Úmapr&   rC   r<   r$   Úbuild)
rX   r7   rÇ  r<   rt   rG   rš   rz   ÚresÚexcs
             r3   Ú_fast_set_methodÚSetVariable._fast_set_methodŒ  s³   € ð	ÙØ37°-¸$±-Ó@²-¨Q×&Ñ&Ö(±-Ñ@ðà9?¿¹¼ÔHº±°�1×*Ñ*Ó,Ò,¹ÒHñˆCô ×$Ò$ R¨Ó-Ð-ùò AùÛHøäó 	Ü$Ü�S“	˜2¤D¬Ô-=×-DÑ-DÀcÇhÁhÓ)OÓ$P÷ûð	ús2   ‚	A> ‹A3¤A> ºA8ÁA> Á3A> Á>
CÂ?CÃCr"  c                 óø  >• SSK Jn  SSKJn  US;   aP  U" X45      (       aC  U R	                  5       [
        L a,  U R	                  5       nU R                  U[        Xr5      X45      $ US:X  a”  UR                  U[
        5      R                  " U/UQ70 UD6nUR                  R                  R                  U 5        U R                  R                  5         U R                  R                  UR                  5        [         $ US:X  aY  U(       d  [#        U5      S:w  a&  [%        UUS[#        U5       S	[#        U5       S
35        SnUS   [&        R)                  5       /nGO=US:X  am  U(       d  U(       a&  [%        UUS[#        U5       S	[#        U5       S
35         U R*                  R-                  5       R.                  n	[<        TU ]}  XW	/U5        U	$ US:X  aq  U(       d  [#        U5      S:w  a&  [%        UUS[#        U5       S	[#        U5       S
35        UR                  U[@        RB                  5      RE                  XUS   /0 5      $ US:X  ad  U(       a  [%        XS[#        U5       S
35        UR                  U[@        RF                  5      RE                  UU /UQSU RI                  5       05      $ US:X  aS  U(       a  [%        XS[#        U5       S
35        UR                  U[@        RJ                  5      RE                  X/UQ0 5      $ US:X  ad  U(       a  [%        XS[#        U5       S
35        UR                  U[@        RL                  5      RE                  UU /UQSU RI                  5       05      $ US:X  ad  U(       a  [%        XS[#        U5       S
35        UR                  U[@        RN                  5      RE                  UU /UQSU RI                  5       05      $ US:X  aS  U(       a  [%        XS[#        U5       S
35        UR                  U[@        RP                  5      RE                  X/UQ0 5      $ US:X  a€  U(       d  [#        U5      S:w  a&  [%        UUS[#        U5       S	[#        U5       S
35        UR                  U[@        RR                  5      RE                  UU /UQSU RI                  5       05      $ US:X  ao  U(       d  [#        U5      S:w  a&  [%        UUS[#        U5       S	[#        U5       S
35        UR                  U[@        RT                  5      RE                  X/UQ0 5      $ US:X  ah  U RW                  5       (       aS  U(       a  [%        XS[#        U5       S
35        UR                  U[@        RX                  5      RE                  X/UQ0 5      $ US:X  ad  U(       d  [#        U5      S:w  a&  [%        UUS[#        U5       S	[#        U5       S
35        US   U ;  a  [3        [0        XS9  [<        TU ]}  USX45      $ US:X  a\  U(       d  [#        U5      S:w  a&  [%        UUS[#        U5       S	[#        U5       S
35        US   U ;   a  [<        TU ]}  USX45      $ [         $ US;   aÊ  [#        U5      S:w  a  [%        XS[#        U5       S 35        [Z        R\                  [Z        R^                  S.nUS   Ra                  5       n[c        U[&        5      (       d'  UR                  U[
        5      RE                  X/0 5      nUR                  XRe                  U5      5      RE                  XU/0 5      $ US!;   a£  SSSSS!.Re                  U5      n[g        US   [&        [h        Rj                  45      (       dN  [8        R                  " S"U S#U Rm                  5        S$US   Rm                  5        S%35      n[3        [n        X/S9  Uc   eU R?                  XX45      $ US&;   a¥  [g        US   [&        [h        Rj                  45      (       dN  [8        R                  " S"U S#U Rm                  5        S$US   Rm                  5        S%35      n[3        [n        X/S9  SSSSS&.Re                  U5      nUc   eU R?                  XX45        U $ US':X  a}  [g        US   [&        [h        Rj                  45      (       d  [8        R                  " S(5      $ U R?                  USX45      n[8        R                  " [#        UR*                  5      S:H  5      $ U[p        ;   a}  [g        US   [&        [h        Rj                  45      (       d  [8        R                  " [r        5      $ [8        R                  " [p        U   " U R*                  US   R*                  5      5      $ [<        TU ]}  XX45      $ ! [0         aE  n
[3        [0        U[5        [7        [8        R                  U
R:                  5      5      S9   S n
A
GN8S n
A
ff = f))Nr   )Úcheck_constant_argsr"   r9   )Ú
isdisjointÚunionÚintersectionÚ
differenceÚsymmetric_differencerY   r>  z1 args and 0 kwargsr(  r)  r+  r   r‚   r'  r;   rÑ  rÓ  z0 kwargsÚclsÚintersection_updaterÒ  rÔ  zExpect: 0 kwargs, Actual: Údifference_updaterÕ  Úsymmetric_difference_updaterï   ÚremoveÚdiscard)ÚissubsetÚ
issupersetr%  r&  )Ú__and__r3  Ú__xor__Ú__sub__z unsupported operand type(s) for z: 'z' and 'r4  )Ú__iand__r5  Ú__ixor__Ú__isub__rg   F):ÚutilsrÐ  r=   r:   r@   rµ  rÍ  ÚgetattrrC   Úcall_setr  r  r<  rs   r/  rï   r%   rÀ   r    r«  r®  r¶  r‚   rU   rÂ   r   rk  rÉ  r&   r<   rƒ   rC  r   Úset_isdisjointrH  Úset_intersectionÚpython_type_varÚset_intersection_updateÚ	set_unionÚset_differenceÚset_difference_updateÚset_symmetric_differenceÚset_symmetric_difference_updaterB  Ú
set_updateÚoperatorÚleÚgerD   r   r2   rI   r   ÚUserDefinedSetVariableÚpython_type_namerB   r   ÚNotImplemented)rX   r7   r"  r<   rt   rÐ  r:   Úpy_typeÚtemp_set_vtÚresultÚeÚoprb   Úmr  Úrr‰   s                   €r3   rC  ÚSetVariable.call_methodŸ  st	  ø€ õ 	0Ý.ð ðóñ $ D×1Ñ1Ø× Ñ Ó"¤cÒ)à×&Ñ&Ó(ˆGØ×(Ñ(¨¬W°WÓ-CÀTÓRÐRà�:ÓØ+×2Ñ2°2´sÓ;×DÒDØðØòØ#ñˆKð �I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J×ÑÔØ�J‰J×Ñ˜k×/Ñ/Ô0Ü)Ð)Ø�U‹]Þœ˜T› a›Ü#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð !ˆDØ˜‘Gœ[×7Ñ7Ó9Ð:ŠDØ�U‹]ÞžÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ðØ*.¯.©.×*<Ñ*<Ó*>×*AÑ*A�ô ‰GÑ ¨6¨(°FÔ;àˆMØ�\Ó!Þœ˜T› a›Ü#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð %×+Ñ+¨B´	×0HÑ0HÓI×WÑWØ˜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Ñ"3ÞÜ# B¨j¼SÀ»[¸MÈÐ:QÔRØ$×+Ñ+¨B´	×0DÑ0DÓE×SÑSØ�M˜D�M 2óð ð �XÓÞœ˜T› a›Ü#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð �A‰w˜dÓ"Ü(¬°2ÒAÜ‘7Ñ& r¨5°$Ó?Ð?Ø�YÓÞœ˜T› a›Ü#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð �A‰w˜$‹Ü‘wÑ*¨2¨u°dÓCÐCä-Ð-ØÐ/Ó/Ü�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ÈÈGÐUWÓX�Ø$×+Ñ+¨B·±°t³Ó=×KÑKØ˜5�M 2óð ð Ð@Ó@à)Ø!Ø1Ø'ñ	÷
 ‰c�$‹ið ô ˜d 1™g¬´Y×5UÑ5UÐ'V×WÑWÜ&×-Ò-Ø6°t°f¸CÀ×@UÑ@UÓ@WÐ?XÐX_Ð`dÐefÑ`g×`xÑ`xÓ`zÐ_{Ð{|Ð}ó�ô )¬°B¸UÒCØ‘=Ð �=Ø×#Ñ# B¨4Ó8Ð8ØÐDÓDÜ˜d 1™g¬´Y×5UÑ5UÐ'V×WÑWÜ&×-Ò-Ø6°t°f¸CÀ×@UÑ@UÓ@WÐ?XÐX_Ð`dÐefÑ`g×`xÑ`xÓ`zÐ_{Ð{|Ð}ó�ô )¬°B¸UÒCà1Ø#Ø9Ø/ñ	÷
 ‰c�$‹ið ð ‘=Ð �=Ø×Ñ˜R DÔ1ØˆKØ�XÓÜ˜d 1™g¬´Y×5UÑ5UÐ'V×WÑWÜ'×.Ò.¨uÓ5Ð5Ø× Ñ  Ð%;¸TÓJˆAÜ#×*Ò*¬3¨q¯{©{Ó+;¸qÑ+@ÓAÐAØÔ+Ó+Ü˜d 1™g¬´Y×5UÑ5UÐ'V×WÑWÜ'×.Ò.¬~Ó>Ð>Ü#×*Ò*Ü& tÒ,¨T¯^©^¸TÀ!¹W×=NÑ=NÓOóð ô ‰wÑ" 2¨TÓ:Ð:øôQ ó Ü(Ü˜b¤t¬CÔ0@×0GÑ0GÈÏÉÓ,PÓ'Q÷ð ûðús   Æ$f* æ*
g9æ4:g4ç4g9c                 ó6   • [         R                  " [        5      $ rW   )r   r*   rµ  r_   s    r3   ré  ÚSetVariable.python_type_var€  s   € Ü×(Ò(¬Ó-Ð-r5   r6   c                 ó   • [        S5      e)NzIllegal to getitem on a set)ÚRuntimeError)rX   r7   r6   s      r3   r  ÚSetVariable.getitem_constƒ  s   € ô Ð8Ó9Ð9r5   c                 ó   • g rW   rr   r_   s    r3   r°   Ú)SetVariable.install_dict_keys_match_guardˆ  ó   € àr5   rr   rg  ©r-   r*   rh  )!ri   rj   rk   rl   rm   r   ÚSET_CONTAINSr  r   r$   r   rY   rú   r¥   Úpropertyrµ  r¶  r©  r®  r˜   r0   r@   r­   r÷   rk  r�   rÍ  rC  ré  r  r°   rq   rl  rm  s   @r3   r«  r«  P  sf  ø† Ù8à!×.Ñ.€Nð*à˜Ñ(ð*ð ð*ð 
÷	*ð,	/˜Cô 	/ð ð&˜3ÐCÑDó &ó ð&ð ð&˜Oó &ó ð&ð9˜#ô 9ð˜Tô ðC Cô CôXð.à#ð.ð ð.ð �?Ñ#ð	.ð
 �S˜/Ð)Ñ*ð.ð 
ô.ð&_;à#ð_;ð ð_;ð �?Ñ#ð	_;ð
 �S˜/Ð)Ñ*ð_;ð 
÷_;ôB.ð:Ø)ð:Ø0?ð:à	ô:÷
ò r5   r«  c            
       óÈ   ^ • \ rS rSrS\SS4U 4S jjrS\\\      4S jrSSS	\	S\
4U 4S
 jjrSSS	\	S\\
   S\\	\
4   S\
4
U 4S jjrSSS\\
   S\\	\
4   SS4S jrSrU =r$ )ÚOrderedSetClassVariablei�  rt   r-   Nc                 ó&   >• [         TU ]  " S0 UD6  g ra  )rƒ   rY   rb  s     €r3   rY   Ú OrderedSetClassVariable.__init__Ž  s   ø€ Ü‰ÒÑ"˜6Ó"r5   c                 ó   • [         $ rW   r
   r_   s    r3   r­   Ú*OrderedSetClassVariable.as_python_constant‘  ó   € ÜÐr5   r7   r)   r"  c                 óœ   >• US:X  a7  SSK Jn  U R                  (       a  [        U R                  U5      nOS nU" XUS9$ [        TU ]  X5      $ )NÚ__new__r"   )ÚGetAttrVariable)r†   )Úmiscr  r†   r   rƒ   r£  )rX   r7   r"  r  Úattr_sourcer‰   s        €r3   r£  Ú#OrderedSetClassVariable.var_getattr”  sG   ø€ Ø�9ÓÝ-à�{�{Ü(¨¯©°dÓ;‘à"�Ù" 4°kÑBÐBä‘7Ñ& rÓ0Ð0r5   r<   c           
      óŽ  >• SSK Jn  US:X  aY  [        U5      S:w  d  U(       a&  [        UUS[        U5       S[        U5       S35        [        R
                  " / [        5       S9$ [        [        U5      nXe;   a;  [        US	   [        R                  5      (       a  US	   R                  XUSS  U5      $ [        TU ]-  XX45      $ )
Nr"   )Úset_methodsr  r   z'OrderedSet.__new__ only accepts one argr(  r)  r9  r   )Úbuiltinr  rÀ   r    r   ÚOrderedSetVariabler#   rå  rµ  rI   r«  rC  rƒ   )rX   r7   r"  r<   rt   r  Úresolved_fnr‰   s          €r3   rC  Ú#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Ñ*TØ˜‘7×&Ñ& r°°a°b°¸6ÓBÐBä‰wÑ" 2¨TÓ:Ð:r5   r  c           
      ó   • [        U5      S:”  d  U(       a&  [        USS[        U5       S[        U5       S35        [        U5      S:X  a  / nOUS   R                  U5      n[        R                  " U[        5       S9$ )Nr"   r   zOrderedSet only accepts one argr(  r)  r   r9  )rÀ   r    Úforce_unpack_var_sequencer   r  r#   )rX   r7   r<   rt   rs   s        r3   rH  Ú%OrderedSetClassVariable.call_functionº  sy   € ô ˆt‹9�q‹=žFÜØØØ1Ü�t“9�+˜Z¬¨F« }°Gð=ôô ˆt‹9˜‹>à‰Eà˜‘G×5Ñ5°bÓ9ˆEÜ×+Ò+¨EÔAQÓASÑTÐTr5   rr   )ri   rj   rk   rl   r   rY   r0   r   r­   rú   r$   r£  rk  r�   rC  r   rH  rq   rl  rm  s   @r3   r  r  �  sÏ   ø† ð# ð #¨÷ #ð D¨°C©Ñ$9ô ð
1Ð5ð 
1¸Sð 
1À_÷ 
1ð;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;ð4Uà#ðUð �Ñ'ðUð �S˜/Ð)Ñ*ð	Uð
 
÷Uò Ur5   r  c                   óh   • \ rS rSrS\4S jrS\\   4S jrS\	\\      4S jr
S\4S jrS
S jrS	rg)r  iÐ  r-   c                 óL  • U R                   (       d  g/ nU R                    Hj  u  p#[        UR                  S5      (       a  [        UR                  R                  5      OUR                  R                  5       nUR                  U5        Ml     SSR                  U5      -   S-   $ )NzOrderedSet([])rž   zOrderedSet([r²  ú])r¢   )rX   rs   rš   rz   r©   s        r3   r¥   ÚOrderedSetVariable.debug_reprÑ  s{   € Ø�z�zØ#à!ˆEØŸ
œ
‘�ä(/°·±°g×(>Ñ(>”D˜Ÿ™Ÿ™Ô$ÀAÇDÁDÇOÁOÓDUð ð —‘˜WÖ%ñ	 #ð
 " C§H¡H¨U£OÑ3°dÑ:Ð:r5   c                 ó†   • [        U R                   Vs/ s H  oR                  R                  5       PM     sn5      $ s  snf rW   )r   r¶  rU   r­   r»  s     r3   r­   Ú%OrderedSetVariable.as_python_constantÝ  s.   € Ü¸d¿nºnÓMºn¸Ÿ4™4×2Ñ2Ö4¹nÑMÓNÐNùÒMó   ”#>c                 ó   • [         $ rW   r
   r_   s    r3   r@   ÚOrderedSetVariable.python_typeà  r  r5   c                 ó   • [        5       $ rW   )r  r_   s    r3   ré  Ú"OrderedSetVariable.python_type_varä  s   € Ü&Ó(Ð(r5   Nc                 ó2  ^• TR                  U4S j5        TR                  U R                   Vs/ s H  o"R                  PM     sn5        TR	                  [        S[        U R                  5      S95        TR                  [        SS5      5        g s  snf )Nc                  ó(   >• T R                  SS5      $ )Nztorch.utils._ordered_setr   )Úload_import_fromrì   s   €r3   rí   Ú0OrderedSetVariable.reconstruct.<locals>.<lambda>é  s   ø€ �G×,Ñ,Ð-GÈÔVr5   Ú
BUILD_LISTrß   r"   F)	rò   rÄ  r¶  rU   rà   r   rÀ   ré   r   rÅ  s    ` r3   r÷   ÚOrderedSetVariable.reconstructç  sq   ø€ Ø×ÑÜVô	
ð 	�‰ t§~¢~Ó6¢~ !Ÿœ¡~Ñ6Ô7Ø×ÑÔ0°Ä3ÀtÇ~Á~ÓCVÑWÔXØ×ÑÔ2°1°eÓ<Õ=ùò 7s   °Brr   rg  )ri   rj   rk   rl   rú   r¥   r   r   r­   r0   r@   r  ré  r÷   rq   rr   r5   r3   r  r  Ð  sG   † ð
;˜Cô 
;ðO J¨s¡Oô Oð˜T *¨S¡/Ñ2ô ð)Ð!8ô )÷>r5   r  c            
       óà   ^ • \ rS rSrS\4S jr\S\S   4S j5       rS\	4S jr
SS jrS\4S jrSS	 jrS
SS\S\\   S\\\4   S\4
U 4S jjrS\S   4S jrS\4S jrS\S\4S jrSrU =r$ )ÚFrozensetVariableið  r-   c                 óH  • U R                   (       d  g/ nU R                    Hh  n[        UR                  S5      (       a  [        UR                  R                  5      OUR                  R                  5       nUR                  U5        Mj     SSR                  U5      -   S-   $ )Nzfrozenset()rž   rŸ   r²  r¡   r¢   ©rX   rs   rš   r©   s       r3   r¥   ÚFrozensetVariable.debug_reprñ  sy   € Ø�z�zØ à!ˆEØ—Z”Z�ä(/°·±°g×(>Ñ(>”D˜Ÿ™Ÿ™Ô$ÀAÇDÁDÇOÁOÓDUð ð —‘˜WÖ%ñ	  ð
 ˜Ÿ™ %›Ñ(¨3Ñ.Ð.r5   rS   c                 ó6   • U R                   R                  5       $ rW   )rs   r  r_   s    r3   r¶  ÚFrozensetVariable.set_itemsý  s   € à�z‰z�‰Ó Ð r5   c                 ó   • [         $ rW   )Ú	frozensetr_   s    r3   r@   ÚFrozensetVariable.python_type  ó   € ÜÐr5   c                 ó6   • [         R                  " [        5      $ rW   )r   r*   r9  r_   s    r3   ré  Ú!FrozensetVariable.python_type_var  s   € Ü×(Ò(¬Ó3Ð3r5   c                 ó†   • [        U R                   Vs1 s H  oR                  R                  5       iM     sn5      $ s  snf rW   )r9  r¶  rU   r­   r»  s     r3   r­   Ú$FrozensetVariable.as_python_constant  s.   € Ü¸T¿^º^ÓLº^¸Ÿ$™$×1Ñ1Ö3¹^ÑLÓMÐMùÒLr&  c                 ó  ^• TR                  U4S j5        TR                  U R                   Vs/ s H  o"R                  PM     sn5        TR	                  [        S[        U R                  5      S9/[        SS5      Q5        g s  snf )Nc                  óF   >• T R                  T R                  S5      /5      $ )Nr9  )ré   Úcreate_load_globalrì   s   €r3   rí   Ú/FrozensetVariable.reconstruct.<locals>.<lambda>  s#   ø€ �G×)Ñ)à×.Ñ.¨{Ó;ðôr5   r/  rß   r"   F)rò   rÄ  r¶  rU   ré   r   rÀ   r   rÅ  s    ` r3   r÷   ÚFrozensetVariable.reconstruct
  ss   ø€ Ø×Ñôô	
ð 	�‰ t§~¢~Ó6¢~ !Ÿœ¡~Ñ6Ô7Ø×Ñä" <´S¸¿¹Ó5HÑIðä% a¨Ó/ðõ	
ùò 7s   °Br7   r)   r"  r<   rt   c                 ó¼   >• US;   a  [        SU S35      eUS:X  a  [        $ US;   a%  [        TU ]  XX45      n[	        UR
                  5      $ [        TU ]  XX45      $ )N©r>  r‚   rï   rÚ  rÛ  r/  úIllegal call_method z on a frozensetrY   )r‡   rÔ  rÓ  rÕ  )r  r%   rƒ   rC  r2  rs   )rX   r7   r"  r<   rt   rý  r‰   s         €r3   rC  ÚFrozensetVariable.call_method  st   ø€ ð ÐIÓIÜÐ!5°d°V¸?ÐKÓLÐLØ�ZÓô *Ð)Øð 
ó 
ô ‘Ñ# B¨dÓ;ˆAÜ$ Q§W¡WÓ-Ð-Ü‰wÑ" 2¨TÓ:Ð:r5   Tc                 ó   • g)z2
Frozensets are immutable and hashable in Python.
Trr   r_   s    r3   rM   Ú$FrozensetVariable.is_python_hashable6  s   € ð r5   c                 ó4   • [        U R                  5       5      $ rW   )r\   r­   r_   s    r3   r^   Ú!FrozensetVariable.get_python_hash<  s   € Ü�D×+Ñ+Ó-Ó.Ð.r5   rb   c                 ór   • [        U[        5      =(       a!    U R                  5       UR                  5       :H  $ rW   )rI   r$   r­   rf   s     r3   re   Ú!FrozensetVariable.is_python_equal?  s1   € ä�uœoÓ.÷ HØ×'Ñ'Ó)¨U×-EÑ-EÓ-GÑGð	
r5   rr   r  rg  )ri   rj   rk   rl   rú   r¥   r	  rµ  r¶  r0   r@   ré  r   r­   r÷   rk  r$   r�   rC  r   rM   rn   r^   ro   rp   re   rq   rl  rm  s   @r3   r2  r2  ð  sÌ   ø† ð
/˜Cô 
/ð ð!˜3ÐCÑDó !ó ð!ð˜Tô ô4ðN Cô Nô
ð ;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;ð8 G¨D¡Mô ð/ ô /ð
 Vð 
°÷ 
ò 
r5   r2  c            
       ó¸   ^ • \ rS rSrS\4S jrSS jrSSS\\   SS4S	 jr	\
S\4S
 j5       rS\4S jrS\4S jrSSS\S\\   S\\\4   S\4
U 4S jjrSrU =r$ )ÚDictKeySetVariableiF  r-   c                 óH  • U R                   (       d  g/ nU R                    Hh  n[        UR                  S5      (       a  [        UR                  R                  5      OUR                  R                  5       nUR                  U5        Mj     SSR                  U5      -   S-   $ ©Nzdict_keys([])rž   zdict_keys([r²  r"  r¢   r4  s       r3   r¥   ÚDictKeySetVariable.debug_reprG  sy   € Ø�z�zØ"à!ˆEØ—Z”Z�ä(/°·±°g×(>Ñ(>”D˜Ÿ™Ÿ™Ô$ÀAÇDÁDÇOÁOÓDUð ð —‘˜WÖ%ñ	  ð
 ! 3§8¡8¨E£?Ñ2°TÑ9Ð9r5   Nc                 ó   • g rW   rr   r_   s    r3   r°   Ú0DictKeySetVariable.install_dict_keys_match_guardS  r  r5   r7   r)   r<   c                 ó   • g rW   rr   rŒ  s      r3   r   Ú.DictKeySetVariable.install_dict_contains_guardW  s   € ð 	r5   c                 ó   • U R                   $ rW   )rs   r_   s    r3   r¶  ÚDictKeySetVariable.set_items]  s   € à�z‰zÐr5   c                 ó   • [         $ rW   ©r   r_   s    r3   r@   ÚDictKeySetVariable.python_typea  r;  r5   c                 ó¸   • [         R                  U R                   Vs1 s H  oR                  R	                  5       iM     snS 5      R                  5       $ s  snf rW   )r�   r­  r¶  rU   r­   r  r»  s     r3   r­   Ú%DictKeySetVariable.as_python_constantd  s@   € Ü�}‰}Ø04·²Ó?²¨1�T‰T×$Ñ$Ö&±Ñ?Àó
ç
‰$‹&ð	ùÚ?s   ž#Ar"  rt   c                 óN   >• US;   a  [        SU S35      e[        TU ]	  XX45      $ )NrF  rG  z on a dict_keys)r  rƒ   rC  )rX   r7   r"  r<   rt   r‰   s        €r3   rC  ÚDictKeySetVariable.call_methodi  s5   ø€ ð ÐIÓIÜÐ!5°d°V¸?ÐKÓLÐLÜ‰wÑ" 2¨TÓ:Ð:r5   rr   rh  )ri   rj   rk   rl   rú   r¥   r°   rk  r$   r   r	  r   r¶  r0   r@   r­   r�   rC  rq   rl  rm  s   @r3   rP  rP  F  s²   ø† ð
:˜Cô 
:ôðØ)ðØ15°oÑ1Fðà	ôð ð˜3ó ó ðð˜Tô ð Cô ð
	;à#ð	;ð ð	;ð �?Ñ#ð		;ð
 �S˜/Ð)Ñ*ð	;ð 
÷	;õ 	;r5   rP  c            
       óô   ^ • \ rS rSr% SrSr\\   \S'   S\	S\
SS4U 4S jjr\S\
4S	 j5       r\S\\   4S
 j5       rSSS\\   4S jrSS jrSSS\S\4S jrSSS\S\\   S\\\4   S\4
U 4S jjrSrU =r$ )ÚDictViewVariableiu  zi
Models _PyDictViewObject

This is an "abstract" class. Subclasses will override kv and the items method
NÚkvrp  rt   r-   c                 ó„   >• [         TU ]  " S0 UD6  U R                  S;   d   e[        U[        5      (       d   eXl        g )N)r  rÑ   rs   rr   )rƒ   rY   rc  rI   rO   rp  rr  s      €r3   rY   ÚDictViewVariable.__init__~  s?   ø€ Ü‰ÒÑ"˜6Ò"Ø�w‰wÐ5Ó5Ð5Ð5Ü˜'Ô#4×5Ñ5Ð5Ð5Ø�r5   c                 ó~   • U R                   c   e[        U R                  R                  U R                   5      " 5       $ rW   )rc  rå  rp  rs   r_   s    r3   Ú
view_itemsÚDictViewVariable.view_items„  s0   € à�w‰wÑ"Ð"Ð"Ü�t—|‘|×)Ñ)¨4¯7©7Ô3Ó5Ð5r5   c                 ó   • [         erW   )ÚNotImplementedErrorr_   s    r3   Úview_items_vtÚDictViewVariable.view_items_vt‰  s
   € ô "Ð!r5   r7   r)   c                 ó   • U R                   $ rW   )rk  ry  s     r3   rL  Ú$DictViewVariable.unpack_var_sequence�  s   € Ø×!Ñ!Ð!r5   c                 óž   • U R                   c   eU" U R                  5        UR                  U R                   5        UR                  S5        g )Nr   )rc  rp  rõ   rC  rö   s     r3   r÷   ÚDictViewVariable.reconstruct’  s>   € Ø�w‰wÑ"Ð"Ð"Ù�—‘ÔØ×Ñ˜DŸG™GÔ$Ø×Ñ˜AÕr5   r"  c                 ó²   • U R                   c   eX R                  5       R                  ;   a  [        R                  " S5      $ [        R                  " S5      $ )NTF)rc  r@   r1   r&   rC   )rX   r7   r"  s      r3   r^  Ú!DictViewVariable.call_obj_hasattr˜  sK   € ð �w‰wÑ"Ð"Ð"Ø×#Ñ#Ó%×.Ñ.Ó.Ü#×*Ò*¨4Ó0Ð0Ü×&Ò& uÓ-Ð-r5   r<   c                 ó  >• US:X  a  U R                   R                  XX45      $ US:X  a  SSKJn  U" U R                  [        5       S9$ US:X  a$  [        R                  " U R                  5       5      $ [        TU ]  XX45      $ )Nr*  r6  r"   r7  r9  Ú__repr__)
rp  rC  rK  r8  rk  r#   r&   rC   r¥   rƒ   ©rX   r7   r"  r<   rt   r8  r‰   s         €r3   rC  ÚDictViewVariable.call_method   s   ø€ ð �9ÓØ—<‘<×+Ñ+¨B°dÓCÐCØ�ZÓÝ3á'Ø×"Ñ"Ô2BÓ2Dñð ð �ZÓÜ#×*Ò*¨4¯?©?Ó+<Ó=Ð=Ü‰wÑ" 2¨TÓ:Ð:r5   r†  rg  )ri   rj   rk   rl   rm   rc  r   rú   Ú__annotations__rO   r   rY   r	  rg  rk  r$   rk  rL  r÷   r&   r^  r�   rC  rq   rl  rm  s   @r3   rb  rb  u  sò   ø‡ ñð €Bˆ�‰ÓðÐ 1ð ¸Sð ÀT÷ ð ð6˜Có 6ó ð6ð ð"˜t OÑ4ó "ó ð"ð
"Ð&=ð "À$ÀÑBWô "ôð.Ø)ð.Ø14ð.à	ô.ð;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;õ ;r5   rb  c            
       ó¬   ^ • \ rS rSrSr\S\\   4S j5       r\S\	\   4S j5       r
S\4S jrS\4S jrSS	S
\S\	\   S\\\4   S\4
U 4S jjrSrU =r$ )r@  i´  r  r-   c                 ó,   • [        U R                  5      $ rW   )rµ  rg  r_   s    r3   r¶  ÚDictKeysVariable.set_items·  s   € ä�4—?‘?Ó#Ð#r5   c                 óX   • U R                    Vs/ s H  oR                  PM     sn$ s  snf rW   )rg  rU   )rX   rG   s     r3   rk  ÚDictKeysVariable.view_items_vt»  s"   € ð #ŸošoÓ.šo˜—”™oÑ.Ð.ùÒ.s   �'c                 ó   • [         $ rW   r[  r_   s    r3   r@   ÚDictKeysVariable.python_typeÀ  r;  r5   c                 óH  • U R                   (       d  g/ nU R                    Hh  n[        UR                  S5      (       a  [        UR                  R                  5      OUR                  R                  5       nUR                  U5        Mj     SSR                  U5      -   S-   $ rR  ©rg  r£   rU   r¤   rž   r¥   r¦   r§   r4  s       r3   r¥   ÚDictKeysVariable.debug_reprÃ  sy   € Ø��Ø"à!ˆEØ—_”_�ä(/°·±°g×(>Ñ(>”D˜Ÿ™Ÿ™Ô$ÀAÇDÁDÇOÁOÓDUð ð —‘˜WÖ%ñ	 %ð
 ! 3§8¡8¨E£?Ñ2°TÑ9Ð9r5   r7   r)   r"  r<   rt   c                 óÚ  >• US:X  a  U R                   R                  XX45      $ US;   a6  [        U R                  U5      nU" US   R                  5      n[	        U5      $ U[
        ;   as  [        US   [        [        45      (       d  [        R                  " [        5      $ [        R                  " [
        U   " U R                  US   R                  5      5      $ [        TU ]  XX45      $ )Nr¸   )rÞ  rá  r3  r5  rà  rã  rß  râ  r   )rp  rC  rå  r¶  r«  r   rI   r@  r&   rC   rö  rƒ   )rX   r7   r"  r<   rt   rü  rý  r‰   s          €r3   rC  ÚDictKeysVariable.call_methodÏ  sÖ   ø€ ð �>Ó!Ø—<‘<×+Ñ+¨B°dÓCÐCØð 	
ó 	
ô ˜Ÿ™¨Ó-ˆAÙ�$�q‘'×#Ñ#Ó$ˆAÜ˜q“>Ð!ØÔ)Ó)Ü˜d 1™g¬Ô5EÐ'F×GÑGÜ'×.Ò.¬~Ó>Ð>Ü#×*Ò*Ü& tÒ,¨T¯^©^¸TÀ!¹W×=NÑ=NÓOóð ô ‰wÑ" 2¨TÓ:Ð:r5   rr   )ri   rj   rk   rl   rc  r	  rµ  r$   r¶  rk  rk  r0   r@   rú   r¥   r�   rC  rq   rl  rm  s   @r3   r@  r@  ´  s§   ø† Ø	€Bàð$˜3˜Ñ/ó $ó ð$ð ð/˜t OÑ4ó /ó ð/ð˜Tô ð
:˜Cô 
:ð;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;õ ;r5   r@  c                   óR   • \ rS rSrSr\S\\   4S j5       rS\	4S jr
S\4S jrSrg)	rA  iï  rÑ   r-   c                 ó,   • [        U R                  5      $ rW   )rk  rg  r_   s    r3   rk  Ú DictValuesVariable.view_items_vtó  s   € ä�D—O‘OÓ$Ð$r5   c                 ó   • [         $ rW   )r   r_   s    r3   r@   ÚDictValuesVariable.python_type÷  s   € ÜÐr5   c                 ó  • U R                   (       d  g/ nU R                    HJ  n[        US5      (       a  [        UR                  5      OUR	                  5       nUR                  U5        ML     SSR                  U5      -   S-   $ )Nzdict_values([])rž   zdict_values([r²  r"  )rg  r£   r¤   rž   r¥   r¦   r§   )rX   rs   rz   rª   s       r3   r¥   ÚDictValuesVariable.debug_reprú  sf   € Ø��Ø$à!ˆEØ—_”_�Ü+2°1°g×+>Ñ+>œ$˜qŸw™wœ-ÀAÇLÁLÃN�Ø—‘˜WÖ%ñ %ð # S§X¡X¨e£_Ñ4°tÑ;Ð;r5   rr   N)ri   rj   rk   rl   rc  r	  rk  r$   rk  r0   r@   rú   r¥   rq   rr   r5   r3   rA  rA  ï  s=   † à	€Bàð%˜t OÑ4ó %ó ð%ð˜Tô ð<˜C÷ <r5   rA  c            
       ó¢   ^ • \ rS rSrSr\S\\   4S j5       rS\	4S jr
S\4S jrSSS	\S
\\   S\\\4   S\4
U 4S jjrS\S   4S jrSrU =r$ )r?  i  rs   r-   c                 ó�   • U R                    VVs/ s H'  u  p[        R                  " UR                  U/5      PM)     snn$ s  snnf rW   )rg  r   rE  rU   r™   s      r3   rk  ÚDictItemsVariable.view_items_vt  s7   € ð @D¿ºÔOº±t°q”	×'Ò'¨¯©¨q¨	Ö2¹ÒOÐOùÓOs   �.Ac                 ó   • [         $ rW   )r   r_   s    r3   r@   ÚDictItemsVariable.python_type  r  r5   c                 óÆ  • U R                   (       d  g/ nU R                    H§  u  p#[        UR                  S5      (       a  [        UR                  R                  5      OUR                  R                  5       n[        US5      (       a  [        UR                  5      OUR                  5       nUR                  SU SU S35        M©     SSR                  U5      -   S-   $ )	Nzdict_items([])rž   Ú(r    r–  zdict_items([r²  r"  r€  r¨   s         r3   r¥   ÚDictItemsVariable.debug_repr  s«   € Ø��Ø#à!ˆEØŸœ‘�ä(/°·±°g×(>Ñ(>”D˜Ÿ™Ÿ™Ô$ÀAÇDÁDÇOÁOÓDUð ô ,3°1°g×+>Ñ+>œ$˜qŸw™wœ-ÀAÇLÁLÃN�Ø—‘˜q  	¨¨G¨9°AÐ6Ö7ñ (ð " C§H¡H¨U£OÑ3°dÑ:Ð:r5   r7   r)   r"  r<   rt   c                 ó~  >• US:X  a‚  [        U5      S:w  a  [        XS[        U5       S35        [        US   [        5      (       a,  U R                  R                  USUS   R                  /0 5      $ [        R                  " S5      $ US:X  a  SSKJ	n  U" U R                  [        5       S	9$ [        TU ]  XX45      $ )
Nrg   r"   r%  r&  r   Fr6  r7  r9  )rÀ   r    rI   r?  rp  rC  r&   rC   rK  r8  rk  r#   rƒ   ru  s         €r3   rC  ÚDictItemsVariable.call_method  s´   ø€ ð �8ÓÜ�4‹y˜A‹~Ü# B¨h¼3¸t»9¸+ÀUÐ8KÔLÜ˜$˜q™'Ô#4×5Ñ5Ø—|‘|×/Ñ/°°H¸tÀA¹w¿¹Ð>OÐQSÓTÐTÜ#×*Ò*¨5Ó1Ð1Ø�ZÓÝ3á'Ø×"Ñ"Ô2BÓ2Dñð ô ‰wÑ" 2¨TÓ:Ð:r5   Fc                 ó   • g)z3
Dictionary item views are not hashable in Python.
Frr   r_   s    r3   rM   Ú$DictItemsVariable.is_python_hashable4  rf  r5   rr   )ri   rj   rk   rl   rc  r	  rk  r$   rk  r0   r@   rú   r¥   r�   rC  r   rM   rq   rl  rm  s   @r3   r?  r?    sš   ø† Ø	€BàðP˜t OÑ4ó Pó ðPð˜Tô ð;˜Cô ;ð;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;ð. G¨E¡N÷ ò r5   r?  rW   )Jrm   r‘   r  rñ  ru  Úcollections.abcr   r   Útypingr   r   r   r   r	   Útorch.utils._ordered_setr   r:  r   r   r   Úbytecode_transformationr   r   r   r   rÌ  r   r   Úguardsr   r   r†   r   r   r   rä  r   r   r   r   r   r    r!   r�   r#   r$   Úconstantr%   r&   Útorch._dynamo.codegenr'   r>   r)   Útorch._dynamo.variables.builtinr*   r™  r+   rp   r4   rF   rL   rO   ro  rˆ  rJ  r«  r  r  r2  rP  rb  r@  rA  r?  rr   r5   r3   Ú<module>rŸ     st  ðñó( Û Û Û ß .ß ?Õ ?å /ç 6Ñ 6÷ó ÷ :ß 0ß IÑ I÷÷ ñ ÷ 4ß >ö Ý/ÝDÝ?å/ð> Cð >¨Dô >ð
 CGñØ	ðØ&Ð'>Ñ?ðà	õð4"�?ð " tô "ôI˜ô IôXJ2˜?ô J2ôZÐ 1ô ôx
Ð+ô x
ô|zÐ#ô zôz	@U˜oô @UôF>˜ô >ô@S
˜ô S
ôl,;˜ô ,;ô^<;�ô <;ô~8;Ð'ô 8;ôv<Ð)ô <ô,3Ð(õ 3r5   