Ë
    L²jrI ã                  ó°  — U d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZ ddlmZ ddl
mZ ddlmZmZmZmZ ddl m!Z!m"Z"m#Z# dd	lm$Z$ ddl%Z%ddl&Z%ddl'Z%dd
l(m)Z) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZD ddlEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZO ddlPmQZQmRZR ddlSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\ ddl]m^Z^ ddl_m`Z`maZa ddlbmcZc ddldmeZe ddlfmgZgmhZhmiZimjZjmkZk ddllmmZn ddlompZp ddlqmrZrmsZs ddltmuZu ddlvmwZwmxZxmyZy ddlzm{Z{ ddl|m}Z}m~Z~mZm€Z€m�Z�m‚Z‚mƒZƒm„Z„m…Z…m†Z†m‡Z‡mˆZˆm‰Z‰mŠZŠm‹Z‹mŒZŒm�Z�mŽZŽm�Z�m�Z�m‘Z‘m’Z’m“Z“m”Z”m•Z•m–Z–m—Z—m˜Z˜m™Z™mšZšm›Z›mœZœm�Z�mžZžmŸZŸm Z m¡Z¡m¢Z¢m£Z£m¤Z¤m¥Z¥m¦Z¦m§Z§m¨Z¨m©Z© ddlmªZªm«Z«m¬Z¬m­Z­m®Z®m¯Z¯m°Z° ddl±m²Z²m³Z³m´Z´mµZµm¶Z¶m·Z·m¸Z¸m¹Z¹mºZºm»Z»m¼Z¼m½Z½m¾Z¾m¿Z¿mÀZÀmÁZÁmÂZÂmÃZÃ erddlÄmÅZÅ dZÆdeÇd <    eÈ e�j’                  «       «      ZÊ	 ddlËZÌer$dd!lÄmÎZÎmÏZÏmÐZÐ dd"lÑmÒZÒ dd#lÓmÔZÔ dd$lÕmÖZÖm×Z× dd%lØmÙZÙ  e#d&«      ZÚ e�j¶                  eÜ«      ZÝe%�j¼                  �j¿                  eÜd'«      Zàe%�j¼                  �j¿                  eÜd(«      Záe%�j¼                  �j¿                  eÜd)«      Zâe%�j¼                  �j¿                  eÜd*«      Zãd+Zäd‹d,„Zå G d-„ d.e^«      Zæ G d/„ d0«      ZçdŒd1„Zèe�jÒ                  d�d2„«       Zêdaëd3eÇd4<   dŽd5„Zìd�d6„Zíe%�jÜ                  �jÞ                  �jà                  Zðd�d8„Zñ	 d‘	 	 	 	 	 	 	 d’d9„Zòd“d:„Zód”d;„Zôd•d<„Zõ	 	 	 	 	 	 	 	 	 	 	 	 	 	 d–d=„Zöd—d>„Z÷d˜d?„Zød™d@„ZùdšdA„Zú e�jö                  dB¬C«       G dD„ dE«      «       Zü	 	 	 	 	 	 	 	 	 	 	 	 d›dG„ZýdœdH„Zþe�jö                   G dI„ dJ«      «       Zÿ G dK„ dFe�j                   «      �Ze�jÒ                  d�dL„«       �Z G dM„ dNe«      �Z �e«       �ZdždO„�ZdŸdP„�Zd dQ„�Zd¡dR„�Z	d¢dS„�Z
d¡dT„�Zd¢dU„�Zd¡dV„�Zd¢dW„�Zd£dX„�ZdY„ �ZdZ„ �Z G d[„ d\«      �Zd]„ �Z G d^„ d_eX«      �Z G d`„ da«      �Zdœdb„�Z G dc„ ddeç«      �Ze�jö                   G de„ df«      «       �Ze�jö                   G dg„ dh«      «       �Z G di„ dj«      �Ze�jÒ                  d¤dk„«       �Z G dl„ dme�j8                  «      �Zd¥dn„�Z	 	 	 	 	 	 d¦do„�Z G dp„ dq«      �Z d§dr„�Z!d¨ds„�Z"d¨dt„�Z#	 	 	 	 d©du„�Z$ e"dv�e%�e&�ef   «      �Z'	 	 	 	 	 	 dªdw„�Z(d«dx„�Z)	 	 	 	 d¬dy„�Z*	 	 	 	 	 	 	 	 	 	 d­dz„�Z+	 d®	 	 	 	 	 	 	 	 	 	 	 	 	 d¯d{„�Z,	 d®	 	 	 	 	 	 	 	 	 d°d|„�Z-	 	 	 	 d±d}„�Z.	 	 	 	 	 	 	 	 	 	 	 	 d²d~„�Z/ e{�e/«       d³d„�Z0	 	 	 	 	 	 d´d€„�Z1dd�œdµd‚„�Z2 �e3�e«      D � �ci c]"  }  �e4 �e4�e| «      dƒd«      x�a5	 �| �tj        “Œ$ c}} �Z6d„eÇd…<    �e3�e«      D ���cg c]“  }|d   �jo                  «       r}|�jq                  d†«      sk �e9 �e4�e|d«      x�a:«      rU �e; �e< e
�jz                  �tt        «      �j|                  «      x�a?«      d‡k\  r�t~        d   d7k(  r �e@�tt        dƒ«      s|‘Œ• c}}}�ZA�eAr �eBdˆd‰�j‡                  �eA«      › dŠ�«      ‚y# eÍ$ r dZÌY �Œ­w xY wc c}} w c c}}}w )¶aî  
Core guard system for Dynamo that detects when compiled code needs to be recompiled due to
changes in program state. Guards are conditions that must remain true for previously-compiled
code to be valid for reuse.

This module provides the infrastructure for creating, managing and checking guards, including:
- Guard creation and composition
- Guard state management and invalidation
- Guard checking and failure handling
- Utilities for guard optimization and debugging
- Integration with Dynamo's compilation caching

The guard system is critical for Dynamo's ability to efficiently reuse compiled code while
maintaining correctness by detecting when recompilation is necessary due to changes in
program state, tensor properties, or control flow.
é    )ÚannotationsN)Úcontextmanager©Údeepcopy)Úcurrentframe)ÚAnyÚ
NamedTupleÚNoReturnÚTYPE_CHECKING)ÚLiteralStringÚTypeAliasTypeÚTypeVar)ÚReferenceType)Úcode_framelocals_names)Úcheck_obj_idÚcheck_type_idÚClosureGuardAccessorÚCodeGuardAccessorÚdict_versionÚDictGetItemGuardAccessorÚDictGuardManagerÚFuncDefaultsGuardAccessorÚFuncKwDefaultsGuardAccessorÚGetAttrGuardAccessorÚGetGenericDictGuardAccessorÚGuardAccessorÚGuardDebugInfoÚGuardManagerÚ install_no_tensor_aliasing_guardÚinstall_object_aliasing_guardÚ!install_storage_overlapping_guardÚinstall_symbolic_shape_guardÚ	LeafGuardÚprofile_guard_managerÚRelationalGuardÚRootGuardManagerÚTupleGetItemGuardAccessorÚTypeDictGuardAccessorÚTypeGuardAccessorÚTypeMROGuardAccessor)
Úget_global_source_nameÚget_local_source_nameÚIndexedSourceÚ$is_from_flatten_script_object_sourceÚis_from_local_sourceÚis_from_optimizer_sourceÚis_from_skip_guard_sourceÚ.is_from_unspecialized_builtin_nn_module_sourceÚTensorPropertyÚTensorPropertySource)ÚCompileEventLoggerÚget_metrics_context)	ÚCompileContextÚ	CompileIdÚDuplicateInputsÚGuardÚGuardBuilderBaseÚGuardEnvExprÚGuardSourceÚSourceÚStorageOverlap©ÚIndentedBuffer)Úget_opaque_obj_infoÚis_opaque_value_type)Ú
structured)Újustknobs_check)Ú_CppShapeGuardsHelperÚ_ShapeGuardsHelperÚEqualityConstraintÚis_symbolicÚSYMPY_INTERP)Ú_pytree)Ú
OrderedSet)Úformat_frameÚreport_compile_source_on_error)ÚTensorWeakRefé   )ÚconfigÚconvert_frameÚexc)Úset_guard_error_hook)-ÚAttrProxySourceÚ
AttrSourceÚCallFunctionNoArgsSourceÚCallMethodItemSourceÚCellContentsSourceÚChainedSourceÚClosureSourceÚ
CodeSourceÚConstantSourceÚConstDictKeySourceÚCurrentStreamSourceÚDataclassFieldsSourceÚDefaultsSourceÚDictGetItemSourceÚDictSubclassGetItemSourceÚDynamicScalarSourceÚFlattenScriptObjectSourceÚFloatTensorSourceÚFSDPNNModuleSourceÚGenericAttrSourceÚGetItemSourceÚGlobalSourceÚGlobalStateSourceÚGlobalWeakRefSourceÚ
GradSourceÚImportSourceÚListGetItemSourceÚLocalSourceÚNamedTupleFieldsSourceÚNNModuleSourceÚNonSerializableSetGetItemSourceÚNumpyTensorSourceÚOptimizerSourceÚScriptObjectQualifiedNameSourceÚShapeEnvSourceÚSubclassAttrListSourceÚTorchFunctionModeStackSourceÚTupleIteratorGetItemSourceÚTypeDictSourceÚTypeMROSourceÚ
TypeSourceÚ"UnspecializedBuiltinNNModuleSourceÚUnspecializedNNModuleSourceÚUnspecializedParamBufferSourceÚWeakRefCallSource)Ú
CacheEntryÚDynamoFrameTypeÚ
ExtraStateÚGuardedCodeÚ	GuardFailÚGuardFilterEntryÚGuardFn)Úbuiltin_dict_keysÚcommon_constant_typesÚdataclass_fieldsÚ	dict_keysÚget_current_streamÚget_torch_function_mode_stackÚ get_torch_function_mode_stack_atÚguard_failuresÚistypeÚ	key_is_idÚ	key_to_idÚnormalize_count_iterÚnormalize_range_iterÚorig_code_mapÚtensor_always_has_static_shapeÚtuple_iterator_getitemÚtuple_iterator_lenÚverify_guard_fn_signature)ÚCallablez%Callable[[Any, Any, Any], Any] | NoneÚguard_manager_testing_hook_fn)Ú	GeneratorÚKeysViewÚSequence)ÚSymbol)ÚDispatchKeySet)ÚOutputGraphCommonÚOutputGraphGuardsState©ÚSerializedCodeÚTÚguardsÚ
recompilesÚrecompiles_verboseÚverbose_guards)Ú__defaults__Ú__kwdefaults__Ú__code__Ú__closure__Ú__annotations__Ú__func__Ú__mro__c                ó\   — t        | «      }t        |«      |j                  |«      z
  dz
  }|S ©NrP   )Ú&code_framelocals_names_reversed_cachedÚlenÚindex)ÚcodeÚvar_nameÚframelocals_names_reversedÚframelocals_idxs       úS/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/_dynamo/guards.pyÚget_framelocals_idxr¼   ñ   s=   € ô "HÈÓ!MÐäÐ&Ó'Ð*D×*JÑ*JÈ8Ó*TÑTÐWXÑXð ð Ðó    c                  ó*   ‡ — e Zd Zdd„Zddˆ fd„Zˆ xZS )ÚIndentedBufferWithPrefixc                ó:   — d| j                   | j                  z  z  S )Nz| )Ú_indentÚtabwidth©Úselfs    r»   ÚprefixzIndentedBufferWithPrefix.prefix   s   € Ø�t—|‘| d§m¡mÑ3Ñ4Ð4r½   c                óN   •— |rt         ‰| �  |«       y t         ‰| �  d|z   «       y )Nz+- )ÚsuperÚ	writeline)rÄ   ÚlineÚskip_prefixÚ	__class__s      €r»   rÈ   z"IndentedBufferWithPrefix.writeline  s$   ø€ ÙÜ‰GÑ˜dÕ#ä‰GÑ˜e d™lÕ+r½   ©ÚreturnÚstr©F)rÉ   rÎ   rÊ   ÚboolrÍ   ÚNone)Ú__name__Ú
__module__Ú__qualname__rÅ   rÈ   Ú__classcell__©rË   s   @r»   r¿   r¿   ÿ   s   ø„ ó5÷,ò ,r½   r¿   c                  óÊ   — e Zd ZdZddd„Zedd„«       Zdd„Zdd„Zdd„Z	dd„Z
dd	„Z	 	 	 	 dd
„Zdd„Z	 d	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zy) ÚGuardManagerWrappera  
    A helper class that contains the root guard manager. An instance of this
    class is stored in the Dynamo cache entry, so that the cache entry can
    access the RootGuardManager stored in the "root" attribute and directly call
    the check_nopybind from C++.
    Nc                ó  — |€t        «       | _        n|| _        d | _        d | _        d | _        g | _        d | _        d | _        d | _        d | _	        d | _
        i | _        g | _        t        «       | _        t        «       | _        y ©N)r&   ÚrootÚdiff_guard_rootÚclosure_varsÚargsÚ
code_partsÚverbose_code_partsÚglobal_scopeÚguard_fail_fnÚcache_entryÚextra_stateÚid_matched_objsÚno_tensor_aliasing_sourcesÚsetÚprinted_relational_guardsrL   Údiff_guard_sources)rÄ   rÛ   s     r»   Ú__init__zGuardManagerWrapper.__init__  s‚   € Øˆ<Ü(Ó*ˆD�IàˆDŒIà8<ˆÔØ37ˆÔØ&*ˆŒ	Ø%'ˆŒØ48ˆÔØ37ˆÔØAEˆÔØ.2ˆÔØ.2ˆÔØACˆÔØ57ˆÔ'ä?B»uˆÔ&ä3=³<ˆÕr½   c              #  óz   K  — t        «       | _        	 d –— t        «       | _        y # t        «       | _        w xY w­wrÚ   )rç   rè   rÃ   s    r»   Ú#_preserve_printed_relational_guardsz7GuardManagerWrapper._preserve_printed_relational_guards(  s,   è ø€ ä),«ˆÔ&ð	3Ûä-0«UˆDÕ*ø¬S«UˆDÕ*üs   ‚;“' —;§8¸;c                óp   ‡ ‡‡‡— dˆ ˆfd„Šdˆ ˆfd„Šdˆˆfd„Š ‰‰ j                   «       ‰ j                  S )Nc                óL  •— | j                  «       ‰j                  v xs | j                  «       dkD  }t        | j	                  «       j                  «       «      D ]  \  }\  }}| ‰|«       ‰|«      z  z  }Œ |r)‰j                  j                  | j                  «       «       |S ©Nr   )Ú
get_sourceré   Ú
fail_countÚsortedÚget_key_value_managersÚitemsÚadd)ÚnodeÚis_diff_guard_nodeÚ_idxÚkey_mgrÚval_mgrrÄ   Úvisits        €€r»   Úvisit_dict_managerzJGuardManagerWrapper.collect_diff_guard_sources.<locals>.visit_dict_manager;  s¦   ø€ à—‘Ó! T×%<Ñ%<Ð<ÒUÀÇÁÓ@QÐTUÑ@Uð ô -3Ø×+Ñ+Ó-×3Ñ3Ó5ó-ò FÑ(�Ñ(�w ð #¡e¨G£n±u¸W³~Ñ&EÑEÑ"ðFñ
 "Ø×'Ñ'×+Ñ+¨D¯O©OÓ,=Ô>à%Ð%r½   c                ó$  •— t        | t        «      rJ ‚| j                  «       ‰j                  v xs | j	                  «       dkD  }| j                  «       D ]  }| ‰|«      z  }Œ |r)‰j                  j                  | j                  «       «       |S rï   )Ú
isinstancer   rð   ré   rñ   Úget_child_managersrõ   )rö   r÷   Ú	child_mgrrÄ   rû   s      €€r»   Úvisit_managerzEGuardManagerWrapper.collect_diff_guard_sources.<locals>.visit_managerI  s’   ø€ Ü! $Ô(8Ô9Ð9Ð9ð —‘Ó! T×%<Ñ%<Ð<ÒUÀÇÁÓ@QÐTUÑ@Uð ð "×4Ñ4Ó6ò 7�	Ø"¡e¨IÓ&6Ñ6Ñ"ð7ñ "Ø×'Ñ'×+Ñ+¨D¯O©OÓ,=Ô>à%Ð%r½   c                óJ   •— | €yt        | t        «      r ‰| «      S  ‰| «      S ©NF©rþ   r   ©rö   rü   r  s    €€r»   rû   z=GuardManagerWrapper.collect_diff_guard_sources.<locals>.visitW  s,   ø€ Øˆ|ØÜ˜$Ô 0Ô1Ù)¨$Ó/Ð/Ù  Ó&Ð&r½   )rö   r   rÍ   rÐ   )rö   r   rÍ   rÐ   )rÛ   ré   )rÄ   rû   rü   r  s   `@@@r»   Úcollect_diff_guard_sourcesz.GuardManagerWrapper.collect_diff_guard_sources1  s,   û€ ö	&ö	&ö	'ñ 	ˆd�i‰iÔà×&Ñ&Ð&r½   c                óz   — t         j                  rt        d«      r| j                  «        | j	                  «        y )Nz3pytorch/compiler:use_recursive_dict_tags_for_guards)rQ   Ú"use_recursive_dict_tags_for_guardsrE   Úfind_tag_safe_rootsÚprepare_diff_guard_managerrÃ   s    r»   ÚfinalizezGuardManagerWrapper.finalizeb  s/   € Ü×4Ò4¼ØAô:
ð ×$Ñ$Ô&Ø×'Ñ'Õ)r½   c                óD   — | j                  «        | j                  «        y rÚ   )r  Úpopulate_diff_guard_managerrÃ   s    r»   r
  z.GuardManagerWrapper.prepare_diff_guard_manageri  s   € Ø×'Ñ'Ô)Ø×(Ñ(Õ*r½   c                ó   ‡‡‡‡— 	 	 	 	 	 	 dd„Šdˆfd„Šdˆˆfd„Šdˆˆfd„Š ‰| j                   «      }|D ]E  }t        |j                  «       t        j                  j
                  «      sŒ6|j                  «        ŒG y)	uB  
        Identify ``tag safe nodes`` and ``tag safe roots`` within a guard tree.

        -----------------------------------------------------------------------
        tag safe node
        -----------------------------------------------------------------------
        A *tag safe node* is a ``GuardManager`` whose guarded value satisfies one
        of the following conditions:

        1. Immutable value - The value is intrinsically immutable according to
        ``is_immutable_object``. Tensors are considered immutable. To ensure
        that symbolic guards run, we also check that the GuardManager has no
        accessors.

        2. Nested tag safe dictionary - The value is a ``dict`` whose keys and
        values are all tag safe nodes  (checked recursively).  Such dictionaries
        allow entire nested structures to be skipped once their identity tag
        matches.

        3. Pure ``nn.Module`` - The value is an ``nn.Module`` whose sole
        accessor is ``GetGenericDictGuardAccessor``â€”i.e., it only exposes its
        ``__dict__`` and nothing else that could mutate between runs.

        For every tag safe node, verifying the identity/tag of just the top-level
        dictionary is enough to guarantee the entire subtree is unchanged, enabling
        a *fast-path* guard check.

        -----------------------------------------------------------------------
        tag safe root
        -----------------------------------------------------------------------
        A ``tag safe root`` is a tag safe node whose parent is not tag safe.
        These boundary nodes mark the points where guard evaluation can safely
        prune traversal: if a tag-safe root's dictionary tag matches, the entire
        subtree beneath it is skipped.

        One strong requirement for tag safe root is for the guarded object to
        support weakref. Refer to more details in the Recursive dict tag
        matching note. In short, we need to save the weakref of the object on
        first invocation, and check if it is still valid in later iterations, to
        apply recursive dict tag optimizations. `dict` objects do NOT support
        weakref. Therefore, as of now, we only mark nn module related guard
        managers as tag safe roots.

        Algorithm
        ---------
        The search runs in post-order traversal

        1. Visit leaves and classify them as tag safe or not.
        2. Propagate tag-safety upward: a parent dictionary becomes tag safe only if
        all of its children are already tag-safe.
        3. Propagate tag-safe-rootness upward: if the whole subtree is tag safe,
        the current node becomes the new tag safe root, otherwise propagate the
        subtree tag safe roots.
        4. Collect every tag safe node and, by inspecting parent tags, label the
        subset that are tag safe roots.
        c                ó€   ‡— | j                  «       }| j                  «       }t        ˆfd„t        ||«      D «       «      S )Nc              3  ó`   •K  — | ]%  \  }}t        |‰«      xr |j                  «       –— Œ' y ­wrÚ   )rþ   Úis_tag_safe)Ú.0ÚaccessorÚmgrÚaccepted_accessorss      €r»   ú	<genexpr>zTGuardManagerWrapper.find_tag_safe_roots.<locals>.check_tag_safety.<locals>.<genexpr>¬  s4   øè ø€ ò á!�H˜cô ˜8Ð%7Ó8ÒN¸S¿_¹_Ó=NÓNñùs   ƒ+.)Úget_accessorsrÿ   ÚallÚzip)rö   r  Ú	accessorsÚ
child_mgrss    `  r»   Úcheck_tag_safetyzAGuardManagerWrapper.find_tag_safe_roots.<locals>.check_tag_safety§  sB   ø€ ð ×*Ñ*Ó,ˆIØ×0Ñ0Ó2ˆJÜó ä%(¨°JÓ%?ôó ð r½   c                óÂ  •— t        | j                  «       t        «      sJ ‚g }d}t        | j	                  «       j                  «       «      D ],  \  }\  }}|� ‰|«       |€Œ|j                   ‰|«      «       Œ. | j	                  «       j                  «       D ]0  \  }}|r||j                  «       z  }|sŒ||j                  «       z  }Œ2 |r| j                  «        |S ©NT)
Ú
issubclassÚget_type_of_guarded_valueÚdictrò   ró   rô   ÚextendÚvaluesr  Úmark_tag_safe)rö   Útag_safe_rootsÚis_subtree_tag_saferø   rù   rú   rû   s         €r»   rü   zCGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_dict_manager±  sô   ø€ ô ˜d×<Ñ<Ó>ÄÔEÐEÐEàˆNØ"&Ðô -3Ø×+Ñ+Ó-×3Ñ3Ó5ó-ò :Ñ(�Ñ(�w ð Ð&Ù˜'”NØÑ&Ø"×)Ñ)©%°«.Õ9ð:ð %)×$?Ñ$?Ó$A×$HÑ$HÓ$Jò AÑ �˜ÙØ'¨7×+>Ñ+>Ó+@Ñ@Ð'âØ'¨7×+>Ñ+>Ó+@Ñ@Ñ'ðAñ #Ø×"Ñ"Ô$Ø!Ð!r½   c                óØ  •— t        | t        «      rJ ‚g }| j                  «       D ]  }|j                   ‰|«      «       Œ | j	                  «       rlt        | j                  «       t        j                  «      r2| j                  «       r2| j                  «       s"| j                  «        |S | j                  «        |S t        | j                  «       t        «      rP| j                  «       }| j                  «       }t        d„ t        ||«      D «       «      }|r| j                  «        |S t        | j                  «       t        j                   j"                  «      r* ‰| t$        t&        f«      }|r| j                  «        | gS |S | j                  «       t(        j*                  t(        j,                  t.        t0        fv r…t2        j4                  ru ‰| t6        t8        t:        t<        t>        f«      }| j                  «       D ],  }t        |t>        «      sŒ||jA                  «       tB        v z  }Œ. |r| j                  «        |S t        | j                  «       t(        jD                  «      rE ‰| t>        f«      }|t        d„ | j                  «       D «       «      z  }|r| j                  «        |S t        | j                  «       tF        «      rU| jI                  «       jK                  tB        «      r2t2        j4                  r" ‰| tL        f«      }|r| j                  «        |S t        | j                  «       tN        «      r% ‰| tP        tR        f«      }|r| j                  «        |S )Nc              3  óf   K  — | ])  \  }}t        |t        «      xr |j                  «       –— Œ+ y ­wrÚ   )rþ   r   r  )r  r  r  s      r»   r  zQGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_manager.<locals>.<genexpr>á  s3   è ø€ ò *á%˜ #ô ˜xÔ)AÓBÒXÀsÇÁÓGXÓXñ*ùó   ‚/1c              3  óf   K  — | ])  }t        |t        «      xr |j                  «       d k(  –— Œ+ y­w)Úcell_contentsN)rþ   r   Úget_attr_name)r  r  s     r»   r  zQGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_manager.<locals>.<genexpr>  s?   è ø€ ò +ð !ô ˜xÔ)=Ó>ò DØ ×.Ñ.Ó0°OÑCóDñ+ùr)  )*rþ   r   rÿ   r"  Úis_guarded_value_immutabler  r   ÚtorchÚTensorÚhas_no_accessorsÚhas_object_aliasing_guardr$  r!  r  r  r  ÚnnÚModuler   r)   ÚtypesÚFunctionTypeÚ
MethodTypeÚstaticmethodÚclassmethodrQ   Ú)assume_dunder_attributes_remain_unchangedr   r   r   r   r   r,  Údunder_attrs_assumed_constantsÚCellTypeÚtuplerð   Úendswithr'   Útyper(   r*   )	rö   r%  r   r  r  r&  r  r  rû   s	          €€r»   r  z>GuardManagerWrapper.find_tag_safe_roots.<locals>.visit_managerÍ  sJ  ø€ Ü! $Ô(8Ô9Ð9Ð9ð  ˆNØ!×4Ñ4Ó6ò 8�	Ø×%Ñ%¡e¨IÓ&6Õ7ð8ð ×.Ñ.Ô0ô ˜d×<Ñ<Ó>ÄÇÁÔMØ×,Ñ,Ô.°t×7UÑ7UÔ7WØ×*Ñ*Ô,ð| "Ð!ðy ×&Ñ&Ô(ðx "Ð!ôw ˜D×:Ñ:Ó<¼dÔCØ ×.Ñ.Ó0�	Ø!×4Ñ4Ó6�
Ü&)ñ *ä),¨Y¸
Ó)Cô*ó 'Ð#ñ 'Ø×&Ñ&Ô(ðf "Ð!ôe ˜D×:Ñ:Ó<¼e¿h¹h¿o¹oÔNÙ&6ØÔ6Ô8IÐJó'Ð#ñ 'Ø×&Ñ&Ô(ð ðð ðT "Ð!ðM ×.Ñ.Ó0ä×&Ñ&Ü×$Ñ$Ü Üð	ñô ×DÒDñ '7Øä)Ü,Ü1Ü3Ü,ðó	'Ð#ð !%× 2Ñ 2Ó 4ò �HÜ! (Ô,@ÕAØ+Ø$×2Ñ2Ó4Ô8VÐVñÑ+ðñ 'Ø×&Ñ&Ô(ðJ "Ð!ôI ˜D×:Ñ:Ó<¼e¿n¹nÔMÙ&6°tÔ>RÐ=TÓ&UÐ#à#¤sñ +ð %)×$6Ñ$6Ó$8ô+ó (ñ Ð#ñ
 'Ø×&Ñ&Ô(ð6 "Ð!ô3 ˜4×9Ñ9Ó;¼UÔCØ—O‘OÓ%×.Ñ.Ô/MÔNÜ×DÒDñ '7ØÔ4Ð6ó'Ð#ñ 'Ø×&Ñ&Ô(ð "Ð!ô ˜D×:Ñ:Ó<¼dÔCÙ&6ØÔ0Ô2FÐGó'Ð#ñ 'Ø×&Ñ&Ô(à!Ð!r½   c                óL   •— | €g S t        | t        «      r ‰| «      S  ‰| «      S rÚ   r  r  s    €€r»   rû   z6GuardManagerWrapper.find_tag_safe_roots.<locals>.visit;  s.   ø€ Øˆ|Ø�	Ü˜$Ô 0Ô1Ù)¨$Ó/Ð/Ù  Ó&Ð&r½   N)rö   r   r  ztuple[type[GuardAccessor], ...]rÍ   rÐ   )rö   r   rÍ   úlist[GuardManager])rö   r   rÍ   r@  )rÛ   r  r   r.  r2  r3  Úmark_tag_safe_root)rÄ   r%  rö   r  rû   rü   r  s      @@@@r»   r	  z'GuardManagerWrapper.find_tag_safe_rootsm  sx   û€ ðt	Øð	Ø4Sð	àó	õ	"ö8l	"ö\	'ñ ˜tŸy™yÓ)ˆØ"ò 	*ˆDÜ˜$×8Ñ8Ó:¼E¿H¹H¿O¹OÕLØ×'Ñ'Õ)ñ	*r½   c                ó’   — | j                  | j                  «      | _        | j                  r| j                  j	                  «        y y rÚ   )Úclone_with_chosen_sourcesré   rÜ   rã   Úupdate_diff_guard_root_managerrÃ   s    r»   r  z/GuardManagerWrapper.populate_diff_guard_managerG  s=   € Ø#×=Ñ=¸d×>UÑ>UÓVˆÔð ×ÒØ×Ñ×;Ñ;Õ=ð r½   c                óF   ‡— dˆfd„}| j                   j                  |«      S )Nc                ó(   •— | j                  «       ‰v S rÚ   )rð   )Únode_mgrÚchosen_sourcess    €r»   Ú	filter_fnz@GuardManagerWrapper.clone_with_chosen_sources.<locals>.filter_fnW  s   ø€ Ø×&Ñ&Ó(¨NÐ:Ð:r½   )rG  r   rÍ   rÐ   )rÛ   Úclone_manager)rÄ   rH  rI  s    ` r»   rC  z-GuardManagerWrapper.clone_with_chosen_sourcesT  s   ø€ õ	;ð �y‰y×&Ñ& yÓ1Ð1r½   c                ó†   — |j                   j                  }|j                  «       }|D �cg c]
  }|dz   |z   ‘Œ }}|S c c}w )Nú: )rË   rÒ   rà   )rÄ   ÚguardÚ
guard_nameÚpartsÚparts        r»   Úget_guard_linesz#GuardManagerWrapper.get_guard_lines\  sF   € Ø—_‘_×-Ñ-ˆ
Ø×(Ñ(Ó*ˆØ6;Ö<¨d�˜dÑ" TÓ)Ð<ˆÐ<Øˆùò =s   «>c                óò   — |j                  «       }|j                  j                  }|dz   |z   }|r|d|z   z  }|d|j                  «       › �z  }|d|j	                  «       › d|j                  «       › d�z  }|S )Nz	: source=ú, z, type=z, tag_safe=(ú))rð   rË   rÒ   r   r  Úis_tag_safe_root)rÄ   Úguard_managerÚaccessor_strÚsourceÚtÚss         r»   Úget_manager_linez$GuardManagerWrapper.get_manager_lineb  s‘   € ð ×)Ñ)Ó+ˆØ×#Ñ#×,Ñ,ˆØ�‰O˜fÑ$ˆÙØ�˜Ñ$Ñ$ˆAØ	ˆw�}×>Ñ>Ó@ÐAÐBÑBˆØ	ˆ|˜M×5Ñ5Ó7Ð8¸¸=×;YÑ;YÓ;[Ð:\Ð\]Ð^Ñ^ˆØˆr½   c                ó¶  — t        |j                  «       j                  «       «      D ]£  \  }\  }}|j                  d|› �«       |j	                  «       5  |r5|j                  d| j                  |«      › �«       | j                  ||«       |r5|j                  d| j                  |«      › �«       | j                  ||«       d d d «       Œ¥ y # 1 sw Y   Œ°xY w)NzKeyValueManager pair at index=zKeyManager: zValueManager: )rò   ró   rô   rÈ   Úindentr[  Úconstruct_manager_string)rÄ   r  ÚbodyÚidxrù   rú   s         r»   Úconstruct_dict_manager_stringz1GuardManagerWrapper.construct_dict_manager_stringn  sÖ   € ô (.¨c×.HÑ.HÓ.J×.PÑ.PÓ.RÓ'Sò 		AÑ#ˆCÑ#�'˜7Ø�N‰NÐ;¸C¸5ÐAÔBØ—‘“ñ AÙØ—N‘N \°$×2GÑ2GÈÓ2PÐ1QÐ#RÔSØ×1Ñ1°'¸4Ô@áØ—N‘N ^°D×4IÑ4IÈ'Ó4RÐ3SÐ#TÔUØ×1Ñ1°'¸4Ô@÷Að Añ		A÷Að Aús   ÁA/CÃC	c           
     óè  — |j                  «       5  |j                  «       D ]£  }t        |t        «      rq|| j                  vr<| j                  j                  |«       |j                  | j                  |«      «       Œ]|j                  |j                  j                  g«       Œ„|j                  | j                  |«      «       Œ¥ t        |t        «      r| j                  ||«       t        |j                  «       |j                  «       «      D ]I  \  }}|j                  | j!                  |d|j#                  «       › �«      «       | j%                  ||«       ŒK 	 d d d «       y # 1 sw Y   y xY w)Nzaccessed_by=)r]  Úget_leaf_guardsrþ   r%   rè   rõ   Ú
writelinesrQ  rË   rÒ   r   ra  r  r  rÿ   rÈ   r[  Úreprr^  )rÄ   r  r_  rM  r  r   s         r»   r^  z,GuardManagerWrapper.construct_manager_string|  sC  € ð �[‰[‹]ñ 	?Ø×,Ñ,Ó.ò A�Ü˜e¤_Ô5Ø D×$BÑ$BÑBØ×6Ñ6×:Ñ:¸5ÔAàŸ™¨×(<Ñ(<¸UÓ(CÕDàŸ™à %§¡× 8Ñ 8ðõð —O‘O D×$8Ñ$8¸Ó$?Õ@ðAô  ˜#Ô/Ô0Ø×2Ñ2°3¸Ô=ô (+Ø×!Ñ!Ó# S×%;Ñ%;Ó%=ó(ò ?Ñ#�˜)ð —‘Ø×)Ñ)¨)°|ÀHÇMÁMÃOÐCTÐ5UÓVôð ×-Ñ-¨i¸Õ>ñ?÷+	?÷ 	?ñ 	?ús   ‘EE(Å(E1c                óà  — | j                  «       5  t        «       }d|_        |j                  dd¬«       |j                  dd¬«       |j                  d«       | j	                  | j
                  |«       t        | j
                  d«      r?| j
                  j                  «       D ]"  }|j                  | j                  |«      «       Œ$ |j                  «       cd d d «       S # 1 sw Y   y xY w)NrP   Ú T)rÊ   zTREE_GUARD_MANAGER:r&   Úget_epilogue_lambda_guards)rì   r¿   rÂ   rÈ   r^  rÛ   Úhasattrrh  rd  rQ  Úgetvalue)rÄ   r_  rM  s      r»   Ú__str__zGuardManagerWrapper.__str__œ  sÁ   € Ø×5Ñ5Ó7ñ 
	#Ü+Ó-ˆDØˆDŒMØ�N‰N˜2¨4ˆNÔ0Ø�N‰NÐ0¸dˆNÔCØ�N‰NÐ-Ô.Ø×)Ñ)¨$¯)©)°TÔ:Ü�t—y‘yÐ">Ô?Ø!ŸY™Y×AÑAÓCò A�EØ—O‘O D×$8Ñ$8¸Ó$?Õ@ðAà—=‘=“?÷
	#÷ 
	#ò 
	#ús   ‘C	C$Ã$C-c                ó8   — | j                   j                  |«      S rÚ   )rÛ   Úcheck©rÄ   Úxs     r»   rm  zGuardManagerWrapper.check©  s   € à�y‰y�‰˜qÓ!Ð!r½   c                ó8   — | j                   j                  |«      S rÚ   )rÛ   Úcheck_verbosern  s     r»   rq  z!GuardManagerWrapper.check_verbose­  s   € à�y‰y×&Ñ& qÓ)Ð)r½   c                ó^   ‡ ‡‡‡— t        «       Šdd„Šdˆˆˆ ˆfd„Š ‰‰ j                  «       y )Nc                óš   — g }| j                  «       D ]5  }|j                  d«      d   j                  «       }|j                  |«       Œ7 |S )Nú#r   )rà   ÚsplitÚrstripÚappend)Ú
leaf_guardrß   Úverbose_code_partÚ	code_parts       r»   Úget_code_partszMGuardManagerWrapper.populate_code_parts_for_debugging.<locals>.get_code_partsµ  sT   € ØˆJØ%/×%BÑ%BÓ%Dò -Ð!Ø-×3Ñ3°CÓ8¸Ñ;×BÑBÓD�	Ø×!Ñ! )Õ,ð-ð Ðr½   c                ó<  •— | j                  «       D ]k  }t        |t        «      r8|‰vsŒ‰j                  j	                   ‰|«      «       ‰j                  |«       ŒK‰j                  j	                   ‰|«      «       Œm | j                  «       D ]
  } ‰|«       Œ y rÚ   )rc  rþ   r%   rß   r"  rõ   rÿ   )r  rM  r   r{  Úrelational_guards_seenrÄ   rû   s      €€€€r»   rû   zDGuardManagerWrapper.populate_code_parts_for_debugging.<locals>.visit¼  sŽ   ø€ à×,Ñ,Ó.ò B�Ü˜e¤_Ô5ØÐ$:Ò:ØŸ™×.Ñ.©~¸eÓ/DÔEØ.×2Ñ2°5Õ9à—O‘O×*Ñ*©>¸%Ó+@ÕAðBð !×3Ñ3Ó5ò !�	Ù�iÕ ñ!r½   )rx  r#   rÍ   ú	list[str])r  r   rÍ   rÑ   )rç   rÛ   )rÄ   r{  r}  rû   s   `@@@r»   Ú!populate_code_parts_for_debuggingz5GuardManagerWrapper.populate_code_parts_for_debugging±  s(   û€ ä!$£Ðó	÷	!ð 	!ñ 	ˆd�i‰iÕr½   rÚ   )rÛ   zRootGuardManager | NonerÍ   rÑ   )rÍ   zGenerator[None, None, None])rÍ   úOrderedSet[str]©rÍ   rÑ   )rH  r€  rÍ   r&   )rM  r#   rÍ   r~  )rV  r   rW  ú
str | NonerÍ   rÎ   )r  r   r_  r¿   rÍ   rÑ   )r  r   r_  r¿   rÍ   rÑ   rÌ   ©ro  r   rÍ   rÐ   )ro  r   rÍ   r   )rÒ   rÓ   rÔ   Ú__doc__rê   r   rì   r  r  r
  r	  r  rC  rQ  r[  ra  r^  rk  rm  rq  r  © r½   r»   rØ   rØ   
  sÎ   „ ñô@ð, ò3ó ð3ó/'ób*ó+óX*ót>ð2Ø-ð2à	ó2óð GKð
Ø)ð
Ø9Cð
à	ó
ðAØ#ðAØ+CðAà	óAð?Øð?Ø'?ð?à	ó?ó@#ó"ó*ôr½   rØ   c                óì   — t         j                  j                  «       5  t        | t        j
                  t        j                  f«      rt        j                  | «      n| cd d d «       S # 1 sw Y   y xY wrÚ   )r.  Ú	overridesÚ_enable_torch_functionrþ   ÚnpÚgenericÚndarrayÚ	as_tensor)Úas    r»   Ú
from_numpyrŽ  Ì  sR   € ô 
�‰×	/Ñ	/Ó	1ñ Tä%/°´B·J±JÄÇ
Á
Ð3KÔ%LŒu�‰˜qÔ!ÐRS÷T÷ Tò Tús   ŸAA*Á*A3c                 óè   — dd l } dd l} | j                  j                  | j                  j                  g}ddlm} |j                  |«       |D �ch c]  }t        j                  |«      ’Œ c}S c c}w )Nr   )ÚPOLYFILLED_MODULES)
Útorch._dynamo.external_utilsÚtorch._dynamo.polyfillsÚ_dynamoÚexternal_utilsÚ	polyfillsÚtorch._dynamo.polyfills.loaderr�  r"  ÚinspectÚgetfile)r.  Úmodsr�  Úms       r»   Úuninteresting_filesr›  Ö  sU   € ã'Û"à�M‰M×(Ñ(¨%¯-©-×*AÑ*AÐB€DåAð 	‡K�KÐ"Ô#à(,Ö- 1ŒG�O‰O˜AÕÒ-Ð-ùÒ-s   ÁA/údict[str, object] | NoneÚ_CLOSURE_VARSc            	     ó  — t         �€ i dt        “dt        “dt        j                  j
                  “dt        “dt        “dd„ “dt        “d	t        “d
t        “dt        “dt        “dd„ “dt        “dt        “dt        j                   “dt"        €d nt"        j                   “dt%        d«      “t&        j(                  t*        j,                  j.                  t*        j0                  t2        t*        j4                  t*        t6        dœ¥a t         S )NÚ___check_type_idÚ___check_obj_idÚ___odict_getitemÚ___key_to_idÚ___dict_versionÚ___dict_containsc                ó.   — t         j                  || «      S rÚ   )r!  Ú__contains__)r�  Úbs     r»   ú<lambda>z#_get_closure_vars.<locals>.<lambda>ñ  s   € ¬T×->Ñ->¸qÀ!Ó-D€ r½   Ú___tuple_iterator_lenÚ___normalize_count_iterÚ___normalize_range_iterÚ___tuple_iterator_getitemÚ___dataclass_fieldsÚ___namedtuple_fieldsc                ó   — | j                   S rÚ   ©Ú_fields©ro  s    r»   r¨  z#_get_closure_vars.<locals>.<lambda>÷  s
   € ¨a¯i©i€ r½   Ú#___get_torch_function_mode_stack_atÚ___get_current_streamÚ__math_isnanÚ__numpy_isnanÚinf)Ú__load_moduleÚutils_deviceÚdeviceÚ___from_numpyÚ___as_tensorr.  r—  )r�  r   r   ÚcollectionsÚOrderedDictÚ__getitem__r“   r   r™   r”   r•   r˜   r‹   r�   r�   ÚmathÚisnanr‰  ÚfloatÚ	importlibÚimport_moduler.  ÚutilsÚ_devicerº  rŽ  Ú_as_tensor_fullprecr—  r…  r½   r»   Ú_get_closure_varsrÈ  è  s<  € äÑð
Ø¤ð
àœ|ð
ð ¤× 7Ñ 7× CÑ Cð
ð œIð	
ð
 œ|ð
ð Ñ Dð
ð $Ô%7ð
ð &Ô';ð
ð &Ô';ð
ð (Ô)?ð
ð "Ô#3ð
ð #Ñ$7ð
ð 2Ô3Sð
ð $Ô%7ð
ð œDŸJ™Jð
ð  ¤R Z™T´R·X±Xð!
ð" ”5˜“<ð#
ô$ '×4Ñ4Ü!ŸK™K×/Ñ/Ü—l‘lÜ'Ü!×5Ñ5ÜÜò1
ˆô4 Ðr½   c                óL   — t        j                  | «      j                  dd«      S )Nú
rg  )ÚastÚunparseÚreplace)rö   s    r»   Ú_ast_unparserÎ    s   € Ü�;‰;�tÓ×$Ñ$ T¨2Ó.Ð.r½   rM  c                ó~  — d}|�³|j                   r_t        |j                   «      D ]F  }|j                  t        «       vsŒdt	        |d¬«      › �}t        |«      dkD  rdt	        |«      › �} nJ nH|j                  r<|j                  j                  «       }t        |«      dkD  rdt	        |d   «      › �}nd}| d	›|› �S )
Nrg  z  # T)rÉ   i   r   éÿÿÿÿz  # <unknown>z<60)Ú
user_stackÚreversedÚfilenamer›  rM   rµ   ÚstackÚsummary)rz  rM  ÚextraÚfsrÕ  s        r»   Úget_verbose_code_partrØ    sÊ   € Ø€EØÐØ×ÒÜ˜u×/Ñ/Ó0ò 
�Ø—;‘;Ô&9Ó&;Ò;Ø"¤<°¸Ô#>Ð"?Ð@�EÜ˜5“z DÒ(ð #'¤|°BÓ'7Ð&8Ð 9˜Ùñ
ð �[Š[Ø—k‘k×)Ñ)Ó+ˆGÜ�7‹|˜aÒØœ|¨G°B©KÓ8Ð9Ð:‘à'�Ø˜ˆ_˜U˜GÐ$Ð$r½   c                óè   — t        | t        «      s| g} | D �cg c]  }t        ||«      ‘Œ }}|�"t        |j                  «      }|r|r|› d|› �n|}|r|D �cg c]
  }|› d|› d�‘Œ }}|S c c}w c c}w )NrS  ú (HINT: rT  )rþ   ÚlistrØ  Ú_get_closure_var_hintÚoriginating_source)rß   rM  Úrecompile_hintrz  rà   Úclosure_hintrP  s          r»   Úget_verbose_code_partsrà  '  s¯   € ô
 �j¤$Ô'Ø �\ˆ
ð BLöØ4=Ô˜i¨Õ/ðÐð ð ÐÜ,¨U×-EÑ-EÓFˆÙá7E�<�.  >Ð"2Ñ3È<ð ñ à;Mö
Ø37ˆtˆf�H˜^Ð,¨AÒ.ð
Ðð 
ð Ðùò'ùò
s   ˜A*ÁA/c                óø   — | €y| j                   }| }|�gt        |t        «      r6|j                  r*|t	        |j                   «      d }d|j                  › d|› �S t        |t
        «      r|j                  nd}|�Œgy)z‘
    Walk up the source chain to find a CellContentsSource ancestor.
    Returns a hint like 'guard on "varname".attr' or None if not found.
    Nz
guard on "ú")Únamerþ   rY   Úfreevar_namerµ   rZ   Úbase)rX  Ú	full_nameÚcurrentÚpath_suffixs       r»   rÜ  rÜ  E  s†   € ð
 €~Øà—‘€IØ#€GØ
Ð
Ü�gÔ1Ô2°w×7KÒ7Kð
 $¤C¨¯©Ó$5Ð$7Ð8ˆKØ × 4Ñ 4Ð5°Q°{°mÐDÐDÜ",¨W´mÔ"D�'—,’,È$ˆð Ñ
ð r½   c                óŽ   — | €y t        | «      s| S t        | t        j                  «      sJ ‚| j                  j                  «       S rÚ   )rI   rþ   r.  ÚSymIntrö   Úmaybe_as_int)Údims    r»   Úconvert_int_to_concrete_valuesrí  [  s>   € Ø
€{ØÜ�sÔØˆ
ä˜#œuŸ|™|Ô,Ð,Ð,Ø�x‰x×$Ñ$Ó&Ð&r½   c                ó>   — | D �cg c]  }t        |«      ‘Œ c}S c c}w rÚ   )rí  )Úsize_or_striderì  s     r»   Úconvert_to_concrete_valuesrð  e  s   € Ø;IÖJ°CÔ*¨3Õ/ÒJÐJùÒJs   …c                ó,  — |t         j                  j                  «       z  t         j                  j                  «       z
  }| j                  }| j
                  j                  }| j                  }	d|› d|j                  › d|› d|› d|› d|	› d|› d|› d�}
|
S )Nzcheck_tensor(rS  z	, device=z, requires_grad=z, size=z	, stride=rT  )	r.  Ú_CÚ_dispatch_tls_local_include_setÚ_dispatch_tls_local_exclude_setÚdtyperº  r¶   Úrequires_gradrÔ   )Úvaluerã  ÚsizesÚstridesÚpytypeÚdispatch_keysÚdispatch_keyrõ  Údevice_indexrö  Ú	guard_strs              r»   Úget_tensor_guard_code_partrÿ  i  s«   € ð 	œŸ™×@Ñ@ÓBÑBÜ�‰×0Ñ0Ó2ñ3€Lð �K‰K€EØ—<‘<×%Ñ%€LØ×'Ñ'€Mà
˜�v˜R × 3Ñ 3Ð4°B°|°nÀBÀuÀgð NØ�Ð/°¨¸gÀeÀWÈIÐV]ÐU^Ð^_ð	að ð Ðr½   c                óH   — t        t        | «      «      j                  |«      S rÚ   )rÛ  r‰   r¶   )ÚdctÚkeys     r»   Úget_key_indexr  ~  s    € ô
 Ô! #Ó&Ó'×-Ñ-¨cÓ2Ð2r½   c                ó   — d| › d|› d�S )Núlist(dict.keys(ú))[ú]r…  )rX  r¶   s     r»   Úget_key_index_sourcer  †  s   € Ø˜V˜H C¨ w¨aÐ0Ð0r½   c                óD   — t        dt        | «      › d| › d�dz   dz   «      ‚)NúType ú for object ú cannot be saved ú@into torch.compile() package since it's defined in local scope. ú@Please define the class at global scope (top level of a module).)Ú	TypeErrorr>  )Úobjs    r»   Úraise_local_type_errorr  Š  s8   € Ü
Ø
”�S“	ˆ{˜, s eÐ+<Ð=Ø
Lñ	Mà
Lñ	Móð r½   c                óJ   — t        | t        j                  j                  «      S rÚ   )rþ   r.  r2  r3  )r÷  s    r»   Ú$should_optimize_getattr_on_nn_moduler  ’  s   € Ü�eœUŸX™XŸ_™_Ó-Ð-r½   T)Úfrozenc                  ó8   — e Zd ZU dZded<   dZded<   dZded<   y)ÚNNModuleAttrAccessorInfoFrÐ   Úpresent_in_generic_dictNr‚  Úl1_keyÚl2_key)rÒ   rÓ   rÔ   r  r¯   r  r  r…  r½   r»   r  r  –  s'   … ð %*Ð˜TÓ)ð €FˆJÓð €FˆJÔr½   r  ÚGuardManagerTypec                ón  — | j                   j                  }t        | j                  t        «      r| j                  j                  }n(t        |t
        «      sJ ‚t        || j                  «      }t        ||«      }t        t        |«      «      |   }t        |t        t        f«      r	|› d|›d�}	n|› d|› d�}	t        | j                  t        «      sN|j                  ||| j                  t        j                  ¬«      j                  | j                  |› d|›�gd «       |j!                  ||	||¬«      S )Nú[r  ©r¶   rX  Úexample_valueÚguard_manager_enumú == )rå  rã  rþ   r¶   r^   r!  r  r  rÛ  r‰   ÚintrÎ   Úget_key_managerr  ÚGUARD_MANAGERÚadd_equals_match_guardÚget_value_manager)
rX  Úbase_guard_managerÚbase_example_valuer  r  Úbase_source_namer¶   Ú
key_sourceÚkey_example_valueÚvalue_sources
             r»   Úgetitem_on_dict_managerr,  ¥  s9  € ð —{‘{×'Ñ'ÐÜ�&—,‘,Ô 2Ô3Ø—‘×"Ñ"‰äÐ,¬dÔ3Ð3Ð3ÜÐ0°&·,±,Ó?ˆä%Ð&6¸Ó>€Jô Ô.Ð/AÓBÓCÀEÑJÐÜÐ#¤c¬3 ZÔ0Ø*Ð+¨1Ð->Ð,AÀÐC‰à*Ð+¨1¨Z¨L¸Ð:ˆÜ�f—l‘lÔ$6Ô7ð 	×*Ñ*ØØØ Ÿ,™,Ü/×=Ñ=ð	 	+ó 	
÷
 !Ñ
 Ø�L‰L˜j˜\¨Ð.?Ð-BÐCÐDÀdô
ð ×/Ñ/ØØØ#Ø-ð	 0ó ð r½   c                ó¤   — | j                   }t        |t        «      ry| j                  «       ry|j	                  «       xr t        |t
        «       S ©NFT)rÝ  rþ   rt   Úis_specialized_nn_moduleÚis_dict_keyrm   )rM  rX  s     r»   Úmatch_on_id_for_tensorr1  Ò  sJ   € Ø×%Ñ%€Fô �&Ô+Ô,Øà×%Ñ%Ô'Øà×ÑÓÒF¬
°6¼:Ó(FÐ$FÐFr½   c                  ó"   — e Zd ZU ded<   ded<   y)ÚGuardCodeListr~  Ú	code_listr:   rM  N©rÒ   rÓ   rÔ   r¯   r…  r½   r»   r3  r3  á  s   … àÓØ„Lr½   r3  c                  ó   — e Zd ZdZdZy)r  rP   é   N)rÒ   rÓ   rÔ   r#  ÚDICT_GUARD_MANAGERr…  r½   r»   r  r  ç  s   „ Ø€MØÑr½   c                ó<   — t        t        t        | «      «      «      S rÚ   )rÛ  rÒ  r   )r·   s    r»   r´   r´   ì  s   € ä”Ô/°Ó5Ó6Ó7Ð7r½   c                  ó&   — e Zd ZU dZded<   ded<   y)ÚGuardCheckSpecu^  Lightweight guard evaluation for subgraph reuse during tracing.

    WHY IS THIS NEEDED?
    Normal guards are collected during tracing, installed via GuardBuilder, and
    evaluated in C++ at runtime. GuardCheckSpec serves a different purpose: we
    want to evaluate a guard *during tracing* to check whether a previously
    traced partial subgraph can be reused. The guard is collected during the
    first trace of subgraph and then evaluated with a new source value before we
    begin tracing the second subgraph.

    Existing C++ guards don't satisfy this need because they're designed for
    runtime evaluation, not mid-trace comparisons with different source values.

    NB - This separate spec table *increases maintenance burden*, but each
    handler is small and the number of guard types is finite, so it's tractable.

    get_metadata_fn: (guard, value) -> metadata  â€” captures the minimum
        information from the guarded value at build time.
    eval_fn: (value, metadata) -> bool  â€” re-evaluates the guard at lookup
        time using a fresh value and the previously saved metadata.
    r   Úget_metadata_fnÚeval_fnN)rÒ   rÓ   rÔ   r„  r¯   r…  r½   r»   r;  r;  ñ  s   … ñð, ÓØ„Lr½   r;  c                ó|   — | j                   | j                  «       | j                  | j                  | j                  fS rÚ   )ÚshapeÚstriderõ  rº  rö  )rY  s    r»   Úextract_tensor_metadatarA    s)   € Ø�G‰G�Q—X‘X“Z §¡¨!¯(©(°A·O±OÐDÐDr½   c                ór   — t        |j                  «       d   «      }t        |«      }t        |d«      }|||fS )NrP   Ú__metadata_guard__)r   Ú__tensor_flatten__r>  ri  )rM  r÷  ÚmetadataÚclsÚhas_custom_guards        r»   Úextract_subclass_metadatarH    s?   € Ü˜×0Ñ0Ó2°1Ñ5Ó6€HÜ
ˆu‹+€CÜ˜uÐ&:Ó;ÐØ�cÐ+Ð,Ð,r½   c                ó„   — |\  }}}|r#|j                  || j                  «       d   «      S | j                  «       d   |k(  S r³   ©rC  rD  )r÷  rE  Úsaved_metadatarF  rG  s        r»   Úcheck_subclass_metadatarL    sM   € Ø,4Ñ)€N�CÐ)ÙØ×%Ñ% n°e×6NÑ6NÓ6PÐQRÑ6SÓTÐTØ×#Ñ#Ó% aÑ(¨NÑ:Ð:r½   c                ó   — t        |«      S rÚ   r   ©rM  r÷  s     r»   Úextract_dtensor_specrO  %  s   € Ü�E‹?Ðr½   c                ó(   — | j                  |d¬«      S )NT)Úskip_shapes)Ú_check_equals©r÷  rE  s     r»   Úcheck_dtensor_specrT  *  s   € Ø×Ñ˜x°TÐÓ:Ð:r½   c                ó|   — t        t        |«      «      }|r|j                  sy t        |j                  |«      «      S rÚ   )rB   r>  Úguard_fnr   )rM  r÷  Úopaque_infos      r»   Úextract_opaque_objrX  /  s4   € Ü%¤d¨5£kÓ2€KÙ˜k×2Ò2ØÜ�K×(Ñ(¨Ó/Ó0Ð0r½   c                ó|   — |€yt        t        | «      «      }|r|j                  s|d u S |j                  | «      |k(  S r  )rB   r>  rV  )r÷  rE  rW  s      r»   Úcheck_opaque_objrZ  7  sE   € ØÐØÜ%¤d¨5£kÓ2€KÙ˜k×2Ò2Ø˜4ÐÐØ×Ñ Ó&¨(Ñ2Ð2r½   c                ó~   — t        |«      t        j                  u rt        |d«      r|j                  S t        |«      S ©Nr­   ©r>  r4  r5  ri  r­   ÚidrN  s     r»   Úextract_closurer_  A  s1   € ÜˆEƒ{”e×(Ñ(Ñ(¬W°U¸JÔ-GØ�~‰~ÐÜˆe‹9Ðr½   c                óˆ   — t        | «      t        j                  u rt        | d«      r| j                  |u S t        | «      |k(  S r\  r]  rS  s     r»   Úcheck_closurera  H  s;   € ÜˆEƒ{”e×(Ñ(Ñ(¬W°U¸JÔ-GØ�~‰~ Ð)Ð)Üˆe‹9˜Ñ Ð r½   c                óv   — ddl m} |D ]  }t        | |«      sŒ || «      c S  t        dt	        | «      › �«      ‚)zBExtract the base constant value from a constant subclass instance.rP   ©Ú_CONSTANT_BASE_TYPESzNot a constant subclass: )Úvariables.user_definedrd  rþ   r  r>  )r÷  rd  rY  s      r»   Ú_constant_subclass_base_valuerf  N  s@   € å<à!ò ˆÜ�e˜QÕÙ�U“8ŠOðô Ð/´°U³¨}Ð=Ó
>Ð>r½   c                ó,   ‡— t        | |¬«      Šˆfd„}|S )z<Attach a GuardCheckSpec to a guard method for auto-dispatch.©r<  r=  c                ó   •— ‰| _         | S rÚ   )Úguard_check_spec)ÚfnÚhandlers    €r»   Ú	decoratorz,register_guard_check_spec.<locals>.decorator_  s   ø€ Ø%ˆÔØˆ	r½   )r;  )r<  r=  rm  rl  s      @r»   Úregister_guard_check_specrn  X  s   ø€ ô
 ¨_ÀgÔN€Gôð Ðr½   c                ó   — t         | _        | S )z:Mark a guard method as skipped during auto-cache dispatch.)Ú
SKIP_GUARDrj  ©rk  s    r»   Úskip_guard_check_specrr  f  s   € ä$€BÔØ€Ir½   c                  ó8   — e Zd ZdZdd„Zed„ «       Zed„ «       Zy)ÚUnsupportedGuardCheckSpecz„Sentinel for guards with no check spec yet.

    Raises NotImplementedError if get_metadata_fn/eval_fn are accidentally called.
    c                ó   — || _         y rÚ   )Ú_name)rÄ   rã  s     r»   rê   z"UnsupportedGuardCheckSpec.__init__r  s	   € Øˆ�
r½   c                ó2   — t        d| j                  › �«      ‚©Nz%Guard check spec not implemented for ©ÚNotImplementedErrorrv  rÃ   s    r»   r<  z)UnsupportedGuardCheckSpec.get_metadata_fnu  ó   € ä!Ð$IÈ$Ï*É*ÈÐ"VÓWÐWr½   c                ó2   — t        d| j                  › �«      ‚rx  ry  rÃ   s    r»   r=  z!UnsupportedGuardCheckSpec.eval_fny  r{  r½   N)rã  rÎ   rÍ   rÑ   )rÒ   rÓ   rÔ   r„  rê   Úpropertyr<  r=  r…  r½   r»   rt  rt  l  s8   „ ñó
ð ñXó ðXð ñXó ñXr½   rt  c                ó:   — t        | j                  «      | _        | S )z;Mark a guard method as unsupported for auto-cache dispatch.)rt  rÒ   rj  rq  s    r»   Úunsupported_guard_check_specr  ~  s   € ä3°B·K±KÓ@€BÔØ€Ir½   c                  ó.  — e Zd Z	 	 	 d{	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d|d„Z	 	 	 	 	 	 d}d„Zd~d„Zedd„«       Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d€d„Zd�d„Z		 	 	 	 	 	 d‚d„Z
dƒd	„Zd„d
„Zd…d„Zd†d„Z	 	 d‡	 	 	 	 	 	 	 	 	 dˆd„Z	 d‰	 	 	 	 	 dŠd„Zd‹d„Z	 	 	 	 	 	 	 	 dŒd„Z ed„ d„ ¬«      d‰d�d„«       Z ed„ d„ ¬«      	 d‰	 	 	 	 	 dŽd„«       Z ed„ d„ ¬«      d�d„«       Zed�d„«       Z ed„ d„ ¬«      d�d„«       Z ed„ d „ ¬«      d�d!„«       Z ed"„ d#„ ¬«      d‘d$„«       Z ed%„ d&„ ¬«      d‘d'„«       Z ed(„ d)„ ¬«      d�d*„«       Z ed+„ d,„ ¬«      d�d-„«       Z ed.„ d/„ ¬«      d‰d’d0„«       Z	 d‰	 	 	 	 	 d’d1„Z  ed2„ d3„ ¬«      d‰d“d4„«       Z! ed5„ d6„ ¬«      d�d7„«       Z"e#d�d8„«       Z$e#d�d9„«       Z%e#d�d:„«       Z& ee'e(¬«      d�d;„«       Z) ee*e+¬«      d�d<„«       Z, ee-e.¬«      d�d=„«       Z/ ed>„ d?„ ¬«      d‰d’d@„«       Z0 edA„ dB„ ¬«      d�dC„«       Z1 edD„ dE„ ¬«      d�dF„«       Z2 edG„ dH„ ¬«      d�dI„«       Z3 edJ„ dK„ ¬«      d�dL„«       Z4 edM„ dN„ ¬«      d�dO„«       Z5 edP„ dQ„ ¬«      d�dR„«       Z6 ee7e8¬«      d�dS„«       Z9 edT„ dU„ ¬«      d�dV„«       Z: edW„ dX„ ¬«      d�dY„«       Z; edZ„ d[„ ¬«      d�d\„«       Z< ed]„ d^„ ¬«      d�d_„«       Z= ed`„ da„ ¬«      d�db„«       Z>e#d”dc„«       Z? edd„ de„ ¬«      d�df„«       Z@ edg„ dh„ ¬«      d�di„«       ZA edj„ dk„ ¬«      d�dl„«       ZB edm„ dn„ ¬«      d�do„«       ZCe#d�dp„«       ZDe#d�dq„«       ZEe#d�dr„«       ZFe#d�ds„«       ZGe#d�dt„«       ZHe#d�du„«       ZIe#d�dv„«       ZJ edw„ dx„ ¬«      d‰d“dy„«       ZK	 	 d•	 	 	 	 	 	 	 	 	 d–dz„ZLy)—ÚGuardBuilderNc                ó  — || _         || _        || _        || _        ||dœ| _        i | _        |
xs || _        t        j                  j                  «       | j                  d<   t        j                  j                  j                  j                  «       D ]X  \  }}|j                  dd«      j                  dd«      j                  dd«      }|| j                  d   |<   || j                  |<   ŒZ || _        g | _        g | _        g | _        g | _        g | _        || _        i | _        |	| _        || _        t5        «       | _        | j,                  j8                  €J ‚| j,                  j8                  j:                  D ]7  }| j=                  |«      }| j6                  j?                  tA        |«      «       Œ9 i | _!        i | _"        t5        «       | _#        g | _$        tJ        jL                  xr tO        d«      | _&        tQ        «       | _)        y )	N©ÚLÚGÚ__builtins__ú>Ú_ú<ú.Ú_dot_ú!pytorch/compiler:guard_nn_modules)*Úf_codeÚid_refÚ
source_refÚlookup_weakrefsÚscopeÚsrc_get_value_cacheÚruntime_global_scopeÚbuiltinsÚ__dict__Úcopyr.  ÚpackageÚpackage_importerÚ_package_imported_modulesrô   rÍ  rV  Úargnamesr·   Úshape_env_codeÚno_tensor_aliasing_namesÚ!no_tensor_aliasing_guard_managersÚcheck_fn_managerÚguard_tree_valuesÚsave_guardsÚguard_filter_fnrç   Úkey_order_guarded_dict_idsÚoutput_graphÚguard_on_key_orderÚgetrõ   r^  rå   Ú_cached_guard_managersÚ_cached_duplicate_input_guardsÚobject_aliasing_guard_codesrQ   Úguard_nn_modulesrE   rL   Úalready_added_code_parts)rÄ   r�  rŽ  r�  r�  Úlocal_scoperá   rV  rž  r   r“  r¡  rã  Úpackage_modulerX  Údict_objs                   r»   rê   zGuardBuilder.__init__…  sð  € ð ˆŒØˆŒØ$ˆŒØ.ˆÔØ9DÈ<Ñ3XˆŒ
Ø9;ˆÔ Ø$8Ò$H¸LˆÔ!Ü%-×%6Ñ%6×%;Ñ%;Ó%=ˆ�
‰
�>Ñ"ô �]‰]×+Ñ+×EÑE×KÑKÓMò	.ñ 
ØØà—<‘<  SÓ)×1Ñ1°#°sÓ;×CÑCÀCÈÓQˆDà/=ˆD�J‰J�~Ñ& tÑ,à-ˆD�J‰J�tÒð	.ð +ˆÔà#%ˆŒà)+ˆŒ	ð
 46ˆÔð 46ˆÔ%ØEGˆÔ.à6FˆÔà13ˆÔØ&ˆÔØ.ˆÔô +.«%ˆÔ'Ø×$Ñ$×1Ñ1Ð=Ð=Ð=Ø×+Ñ+×8Ñ8×KÑKò 	>ˆFØ—x‘x Ó'ˆHØ×+Ñ+×/Ñ/´°8³Õ=ð	>ð BDˆÔð @BˆÔ#ÜDGÃEˆÔ+ØBDˆÔ(Ü &× 7Ñ 7ò !
¼OØ/ó=
ˆÔô :D»ˆÕ%r½   c                óT  — | j                  |«      }t        |t        «      rt        d|j                  › �«      ‚|j
                  j                  }t        |«      D ]K  }||   }t        |j
                  |¬«      }| j                  ||«      }|j                  ||› d|›d�||¬«       ŒM y )NzsNot expecting a DictGuardManager. Seems like Dynamo incorrectly added the dict to tx.output.guard_on_key_order for )r¶   r  r  ©r  rX  r  r  )
Úget_guard_managerrþ   r   rz  rã  rÝ  r‰   rb   Úget_guard_manager_typeÚdict_getitem_manager)	rÄ   r  rM  Údict_mgrÚdict_sourcer  r÷  r+  r  s	            r»   Ú#guard_on_dict_keys_and_ignore_orderz0GuardBuilder.guard_on_dict_keys_and_ignore_orderÓ  sÊ   € ð ×)Ñ)¨%Ó0ˆÜ�hÔ 0Ô1Ü%ðFØFKÇjÁjÀ\ðSóð ð ×.Ñ.×3Ñ3ˆô % ]Ó3ò 	ˆCØ! #Ñ&ˆEÜ,¨U×-EÑ-EÈSÔQˆLØ!%×!<Ñ!<Ø˜mó"Ðð ×)Ñ)ØØ%˜ a¨ w¨aÐ0Ø#Ø#5ð	 *õ ñ	r½   c                ó4  — | j                  |«      }t        |t        «      st        d|j                  › �«      ‚t        |t        «      sJ ‚t        t        |«      «      D ]¶  \  }}t        |j                  |«      }|j                  |||t        j                  ¬«      }t        |«      rA| j                  ||«      }|j                  |t        d|› d|› d�|«      |j                  «       Œ‹|j!                  |t        |› d|›�|«      |j                  «       Œ¸ y )Nz_Expecting a DictGuardManager. Seems like Dynamo forgot to set the right guard manager enum for r  z__check_obj_id(rS  rT  r   )r°  rþ   r   rz  rã  Ú	enumerater‰   r  r"  r  r#  r’   rŽ  Úadd_id_match_guardrà  rÑ  r$  )	rÄ   r÷  rM  r³  r`  r  r)  Úkey_managerÚid_vals	            r»   Úguard_on_dict_keys_and_orderz)GuardBuilder.guard_on_dict_keys_and_orderñ  s,  € ð ×)Ñ)¨%Ó0ˆÜ˜(Ô$4Ô5Ü%ð;Ø;@¿:¹:¸,ðHóð ô ˜(Ô$4Ô5Ð5Ð5ô "Ô"3°EÓ":Ó;ò 	‰HˆC�Ü-¨e¯j©j¸#Ó>ˆJØ"×2Ñ2ØØ!Ø!Ü#3×#AÑ#Að	 3ó ˆKô ˜Œ~àŸ™ S¨*Ó5�Ø×.Ñ.ØÜ*Ø)¨*¨°R¸°x¸qÐAÀ5óð ×$Ñ$õð ×2Ñ2ØÜ*¨j¨\¸¸c¸WÐ+EÀuÓMØ×$Ñ$õñ)	r½   c                ó¨   — t         j                  rAt        j                  dk\  r.t        j                  dk  rt	        j
                  dt        «       y | S )N)é   é   )r½  r¾  rP   zMGuards may run slower on Python 3.13.0. Consider upgrading to Python 3.13.1+.)rQ   Úissue_3_13_0_warningÚsysÚversion_infoÚwarningsÚwarnÚRuntimeWarning)r  s    r»   Ú'_get_generic_dict_manager_example_valuez4GuardBuilder._get_generic_dict_manager_example_value  sF   € ô ×'Ò'Ü× Ñ  GÒ+Ü× Ñ  :Ò-ä�M‰MØ_Üôð ØÐr½   c                ó   — 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„}|j                   }	|j                  }
t        «       }t        j                  |j
                  «      D ]+  }|j                  |j                  j                  «       «       Œ- t        ddd«      }|	|
v rt        d|	d«      }nNd|
v r|	|
d   v rt        dd|	«      }n5d|
v r|	|
d   v rt        dd|	«      }n|	|vrd|
v r|	|
d   v rt        dd|	«      }|j                  s|j                  |j                   |||¬«      S |j                  sJ ‚|j                  }|j                  }|› d	�}dx}}dx}}dx}}|rPt        |j                  |«      }|j                  }|
|   }| j!                  ||«      }|}|}| j!                  ||«      }n|}|}| j!                  ||«      }|j#                  || j%                  |
«      t&        j(                  ¬
«      } |||||
||¬«      }|r|�|€J ‚ |||||||¬«      S |S )a(  
        This tries to avoid calling the expensive nn module custom getattr method by
        checking if the attribute is accessible via __dict__. For attributes that
        are not accessible via __dict__ (like descriptors), we fallback to
        PyObject_GetAttr.

        There are two cases that we optimize for
        1) attributes present directly in __dict__, e.g training.
        2) parameters/buffers/modules - they can be accessed via _parameters,
        _buffers, _modules keys in __dict__. For example, mod.linear can be
        accessed as mod.__dict__["_parameters"]["linear"]

        The most common and expensive case for nn module guards is of type
        mod.submod1.submod2.submod3.training. We avoid the python getattr of nn
        modules by going through the __dict__.
        c                ó  — t        | t        «      rdt        ||«      }d|› d|›d�}| j                  |||t        j
                  ¬«      j                  ||› d|›�gd «       | j                  ||||¬«      S | j                  ||||¬«      S )Nr  r  r  r  r   r¯  )	rþ   r   r  r"  r  r#  r$  r%  r²  )r  r  Úsource_namer'  r  r  r¶   r)  s           r»   Úgetitem_on_dict_mgrz>GuardBuilder.getattr_on_nn_module.<locals>.getitem_on_dict_mgrG  sÄ   € ô ˜#Ô/Ô0ô &Ð&8¸#Ó>�ð  /¨{¨m¸3¸u¸iÀqÐI�
Ø×#Ñ#ØØ%Ø"%Ü'7×'EÑ'Eð	 $ó ÷
 )Ñ(¨°*°¸TÀ#ÀÐ/IÐ.JÈDÔQð ×,Ñ,ØØ&Ø"/Ø'9ð	 -ó ð ð ×/Ñ/ØØ&Ø"/Ø'9ð	 0ó ð r½   FNTÚ_parametersÚ_buffersÚ_modules©ÚattrrX  r  r  ú	.__dict__©rX  r  r  )r  r  rÈ  r'  r  r  )r  r   r  r   rÈ  rÎ   r'  r   r  r   r  r  rÍ   r   )Úmemberr•  rç   r—  ÚgetmrorË   ÚupdateÚkeysr  r  Úgetattr_managerr  r  rV   rå  rã  r±  Úget_generic_dict_managerrÅ  r  r#  )rÄ   rX  r&  r'  r  r(  rÈ  r  rÉ  Ú	attr_nameÚmod_dictÚall_class_attribute_namesro  Úaccessor_infor  r  Úmod_dict_sourceÚl1_source_nameÚl2_source_nameÚl1_valueÚl2_valueÚl1_guard_manager_enumÚl2_guard_manager_enumÚ	l1_sourceÚmod_generic_dict_managerÚl1_mgrs                             r»   Úgetattr_on_nn_modulez!GuardBuilder.getattr_on_nn_module,  sÎ  € ð6#	Øð#	àð#	ð ð#	ð !$ð	#	ð
 ð#	ð !1ð#	ð ó#	ðJ —M‘Mˆ	Ø%×.Ñ.ˆä.1«eÐ!Ü—‘Ð 2× <Ñ <Ó=ò 	@ˆAØ%×,Ñ,¨Q¯Z©Z¯_©_Ó->Õ?ð	@ô 1°¸¸dÓCˆà˜Ñ Ü4°T¸9ÀdÓK‰MØ˜hÑ&¨9¸ÀÑ8OÑ+OÜ4°T¸=È)ÓT‰MØ˜8Ñ#¨	°X¸jÑ5IÑ(IÜ4°T¸:ÀyÓQ‰MàÐ6Ñ6Ø˜hÑ&Ø˜X jÑ1Ñ1ô 5°T¸:ÀyÓQˆMà×4Ò4ð &×5Ñ5Ø—]‘]Ø"Ø+Ø#5ð	 6ó ð ð !×'Ò'Ð'Ð'Ø"×)Ñ)ˆFØ"×)Ñ)ˆFð "2Ð 2°)Ð<ˆOØ.2Ð2ˆN˜^Ø"&Ð&ˆH�xØ<@Ð@Ð!Ð$9ÙÜ& v§{¡{°FÓ;�	Ø!*§¡�Ø# FÑ+�ð )-×(CÑ(CÀIÈxÓ(XÐ%à!,�Ø(�Ø(,×(CÑ(CØ˜Mó)Ñ%ð "-�Ø(�Ø(,×(CÑ(CØ˜Mó)Ð%ð (:×'RÑ'RØ&Ø"×JÑJÈ8ÓTÜ#3×#AÑ#Að (Só (Ð$ñ )Ø,ØØ*Ø#+Ø&Ø#8ôˆFñ Ø%Ð1Ð6KÐ6WÐWÐWÙ*ØØØ .Ø'/Ø"*Ø'<ôð ð ˆMr½   c                óv   — |j                   }|dk(  ryt        | j                  |«      «      }|| j                  v S )Nrg  F)rã  r^  r¥  r¢  )rÄ   rX  rÈ  Úobj_ids       r»   Úrequires_key_order_guardingz(GuardBuilder.requires_key_order_guardingÇ  s:   € Ø—k‘kˆØ˜"ÒØÜ�D—H‘H˜VÓ$Ó%ˆØ˜×8Ñ8Ð8Ð8r½   c                ó   — t         j                  }| j                  |«      rlt        |t        «      rt         j
                  }|S t        |t        t        f«      rt         j                  }|S t        |t        «      sJ ‚t         j
                  }|S rÚ   )	r  r#  rè  rþ   rŒ   r8  rç   Ú	frozensetr!  )rÄ   rX  r  r  s       r»   r±  z#GuardBuilder.get_guard_manager_typeÎ  s‡   € ô .×;Ñ;ÐØ×+Ñ+¨FÔ3ä˜-¬Ô3Ü%5×%HÑ%HÐ"ð "Ð!ô ˜M¬C´Ð+;Ô<ô &6×%CÑ%CÐ"ð "Ð!ô " -´Ô6Ð6Ð6Ü%5×%HÑ%HÐ"Ø!Ð!r½   c                ó(   — |t         j                  k(  S rÚ   )r  r8  )rÄ   Úmgr_enums     r»   Úmanager_guards_on_keysz#GuardBuilder.manager_guards_on_keysæ  s   € ØÔ+×>Ñ>Ñ>Ð>r½   c                óž   — | j                   j                  j                  | j                  d| j                  d   t
        j                  ¬«      S )Nr…  )Ú	f_globalsrX  r  r  )rV  rÛ   Úglobals_dict_managerr“  r‘  r  r#  rÃ   s    r»   Úget_global_guard_managerz%GuardBuilder.get_global_guard_manageré  sF   € Ø×!Ñ!×&Ñ&×;Ñ;Ø×/Ñ/ØØŸ*™* S™/Ü/×=Ñ=ð	 <ó 
ð 	
r½   c           	     ó¾  ‡— | j                   j                  }d }‰j                  }|dk7  r|| j                  v r| j                  |   S |dk7  r)| j	                  ‰«      }|| j
                  t        |«      <   | j                  ‰|«      }d }d }d }t        j                  }	t        ‰t        «      rh‰j                  j                  }| j	                  ‰j                  «      }| j                  ‰j                  «      }| j                  ‰j                  |«      }	t        ‰t        «      rCt!        | j"                  ‰j$                  «      }
|j'                  ‰j$                  |
f|||¬«      }�	n[t        ‰t(        «      r/| j+                  «       j-                  ‰j.                  |||¬«      }�	nt        ‰t0        «      r/| j+                  «       j3                  ‰j.                  |||¬«      }�nÝt        ‰t4        «      r|S t        ‰t6        «      r|S t        ‰t8        «      r|sJ ‚|j;                  |||¬«      }�n�t        ‰t<        «      r|sJ ‚|j?                  |||¬«      }�net        ‰t@        «      r|sJ ‚|jC                  |||¬«      }�n;t        ‰tD        tF        tH        tJ        tL        f«      r|sJ ‚|}�nt        ‰tN        «      r9tQ        jR                  ‰jT                  «      }|jW                  |fd„|||¬«      }�nÅt        ‰tX        «      r|jW                  ˆfd„|||¬«      }�n›t        ‰tZ        «      r|jW                  ˆfd„|||¬«      }�nqt        ‰t\        «      r|sJ ‚|j_                  |||¬«      }�nGt        ‰t`        «      r%|sJ ‚|jc                  ‰jd                  |||¬	«      }�nt        ‰tf        th        tj        f«      r_|sJ ‚t        ‰tf        «      sJ ‚tm        |«      r|sJ ‚| jo                  ‰||||||«      }�n¹|jq                  ‰jd                  |||¬	«      }�n˜t        ‰tr        tt        f«      r¸|sJ ‚t        |tv        tx        jz                  f«      sJ ‚t        ‰tr        tt        f«      sJ ‚t        |t|        «      r$| j                  |	«      sJ ‚t�        ‰||||«      }�nt        ‰j‚                  t„        «      rt‡        d
«      ‚|j-                  ‰j‚                  |||¬«      }�nÊt        ‰tˆ        «      rH t‹        |d‰jŒ                  j                  j�                  «       › d�«      ‰j�                  |||¬«      }�nrt        ‰t’        «      r%|sJ ‚|j•                  ‰j�                  |||¬«      }�n=t        ‰t–        «      r%|sJ ‚|j™                  ‰j‚                  |||¬«      }�nt        ‰tš        «      rä|sJ ‚t        |tv        tx        jz                  f«      rJ d«       ‚t        |tœ        «      r-‰jž                  s!|j™                  ‰j‚                  |||¬«      }�n�t        |t         «      r-‰jž                  s!|j£                  ‰j‚                  |||¬«      }�nS‰j‚                  }‰jž                  r‰j¥                  «       }|j§                  ||||¬«      }�nt        ‰t¨        «      rÖ|sJ ‚|sJ ‚t«        |«      sJ ‚‰j¬                  sK|j¯                  ||j°                  t        j                  ¬«      j§                  ‰j²                  |||¬«      }�n˜|j´                  }|€J ‚|dz   }|j·                  ||t        j                  ¬«      }t        |t|        «      rJ ‚|j-                  ‰j²                  |||¬«      }�n.t        ‰t¸        «      r|sJ ‚|jW                  tº        |||¬«      }�nÿt        ‰t¼        «      r|sJ ‚|jW                  d„ |||¬«      }�nÓt        ‰t¾        «      r|sJ ‚|jW                  d„ |||¬«      }�n§t        ‰tÀ        «      r|sJ ‚|jW                  d„ |||¬«      }�n{t        ‰tÂ        «      r|sJ ‚|jW                  d„ |||¬«      }�nOt        ‰tÄ        «      r|sJ ‚|jW                  d„ |||¬«      }�n#t        ‰tÆ        «      r|sJ ‚|jW                  d„ |||¬«      }�n÷t        ‰tÈ        «      r%|sJ ‚|jË                  ‰j‚                  |||¬«      }�nÂt        ‰t„        «      r<t        |t|        «      stÍ        d«      ‚|jÏ                  ‰j‚                  |||¬«      }�nvt        ‰tÐ        «      r%|sJ ‚|jÓ                  ‰j‚                  |||¬«      }�nAt        ‰tÔ        «      r|sJ ‚|j×                  |||¬«      }�nt        ‰tØ        «      r|sJ ‚|jÛ                  |||¬«      }nît        ‰tÜ        «      r|sJ ‚|jW                  d„ |||¬«      }nÃt        ‰tÞ        «      r|sJ ‚|jW                  d„ |||¬«      }n˜t        ‰tà        «      r|sJ ‚|jã                  |||¬«      }not        ‰tä        «      r|sJ ‚|jç                  |||¬«      }nFt        ‰tè        «      r|sJ ‚|jW                  d„ |||¬«      }ntÍ        d‰› d‰j                  › �«      ‚|| j                  ‰j                  <   |S )Nrg  r¯  )Úglobal_namerX  r  r  rÐ  c                ó   — |S rÚ   r…  )rˆ  rš  s     r»   r¨  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>Q  s   € °!€ r½   )Úpython_lambdarX  r  r  c                ó6   •— t        ‰j                  «       «      S rÚ   )r�   Ú
_get_index©rˆ  rX  s    €r»   r¨  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>X  s   ø€ Ô(HØ×%Ñ%Ó'ó)€ r½   c                ó.   •— t        ‰j                  «      S rÚ   )r�   rº  rø  s    €r»   r¨  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>a  s   ø€ Ô(:¸6¿=¹=Ó(I€ r½   rÍ  zUExpecting clean index here. Likely Dynamo forgot to mark a dict as guard_on_key_orderÚtensor_property_Ú_manager)r`  rX  r  r  zUse DictGetItemSourcez.__kwdefaults__c                ó(   — | j                  «       d   S rï   ©rD  r²  s    r»   r¨  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>  s   € ¨×(<Ñ(<Ó(>¸qÑ(A€ r½   c                ó"   — | j                  «       S rÚ   )Ú__obj_flatten__r²  s    r»   r¨  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>  s   € ¨×(9Ñ(9Ó(;€ r½   c                ó>   — | j                  «       j                  «       S rÚ   )Ú_typeÚqualified_namer²  s    r»   r¨  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>  s   € ¨¯©«	×(@Ñ(@Ó(B€ r½   c                ó"   — | j                  «       S rÚ   )Úget_baser²  s    r»   r¨  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>#  s   € ¨¯
©
«€ r½   c                ó"   — | j                  «       S rÚ   )Úitemr²  s    r»   r¨  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>+  s   € ¨¯©«€ r½   c                ó,   — t        j                  | «      S rÚ   )r.  rÇ  r²  s    r»   r¨  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>3  s   € ¬×(AÑ(AÀ!Ó(D€ r½   r  z4ConstDictKeySource can only work on DictGuardManagerc                ó   — t        | «      S rÚ   )r‹   r²  s    r»   r¨  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>d  s   € Ô(8¸Ó(;€ r½   c                ó   — | j                   S rÚ   r°  r²  s    r»   r¨  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>l  s
   € ¨¯	©	€ r½   c                ó   — t        | «      S rÚ   )r!  r²  s    r»   r¨  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>‚  s
   € ¬¨A«€ r½   zmissing guard manager builder z - )urV  rÛ   rã  r¦  r¥  rŸ  r^  r±  r  r#  rþ   rZ   rå  Úget_guard_manager_from_sourcer‘   rp   r¼   r�  Ú
local_nameÚframelocals_managerrj   rñ  r²  ró  rl   Úglobal_weakref_managerrk   rw   r}   Útype_managerr{   Útype_dict_managerr|   Útype_mro_managerru   rr   r   r~   rg   rn   rÃ  rÄ  Úmodule_nameÚlambda_managerry   r_   rm   Úgrad_managerrh   Úgeneric_getattr_managerrÑ  rV   rY   r€   r  rå  rÕ  rb   rc   r!  r½  r¾  r   rí  r,  r¶   r^   ÚRuntimeErrorr4   ÚgetattrÚpropÚlowerr`  r-   Úindexed_managerro   Úlist_getitem_managerri   rÛ  Úindex_is_slicer<  Útuple_getitem_managerÚunpack_sliceÚgetitem_managerra   ÚcallableÚis_kwÚfunc_defaults_managerr«   Úidx_keyr¬   Úfunc_kwdefaults_managerrt   rŽ  rx   re   rv   rU   rX   rf   rz   Útuple_iterator_getitem_managerÚAssertionErrorr"  rs   Úset_getitem_managerr�   Úweakref_call_managerrW   Úcall_function_no_args_managerr`   rq   r\   Úcode_managerr[   Úclosure_managerrd   )rÄ   rX  Úroot_guard_managerr  rÈ  r  r(  r'  r&  Úbase_guard_manager_enumrº   ÚoutÚmoduler¶   Ú
kwdefaultsÚ	kw_sourcer³  s    `               r»   r  z*GuardBuilder.get_guard_manager_from_sourceñ  sð  ø€ Ø!×/Ñ/×4Ñ4ÐàˆØ—k‘kˆà˜"Ò °×0KÑ0KÑ!KØ×.Ñ.¨{Ñ;Ð;à˜"ÒØ ŸH™H VÓ,ˆMØ8EˆD×"Ñ"¤2 mÓ#4Ñ5à!×8Ñ8¸ÀÓOÐð  ÐØ!ÐØ!ÐÜ"2×"@Ñ"@ÐÜ�fœmÔ,Ø%Ÿ{™{×/Ñ/ÐØ!%§¡¨&¯+©+Ó!6ÐØ!%×!CÑ!CÀFÇKÁKÓ!PÐØ&*×&AÑ&AØ—‘Ð/ó'Ð#ô
 �&œ+Ô&Ü1°$·+±+¸v×?PÑ?PÓQˆOØ$×8Ñ8Ø×&Ñ&¨Ð8Ø"Ø+Ø#5ð	 9ó ŠCô �FœLÔ)ð ×/Ñ/Ó1×FÑFØ×&Ñ&Ø"Ø+Ø#5ð	 Gó ŠCô �FÔ/Ô0Ø×/Ñ/Ó1×HÑHØ"×.Ñ.Ø"Ø+Ø#5ð	 Ió ŠCô �FÔ-Ô.ð &Ð%Ü�FœNÔ+Ø%Ð%Ü�FœJÔ'Ù%Ð%Ð%Ø$×1Ñ1Ø"Ø+Ø#5ð 2ó ŠCô
 �FœNÔ+Ù%Ð%Ð%Ø$×6Ñ6Ø"Ø+Ø#5ð 7ó ŠCô
 �FœMÔ*Ù%Ð%Ð%Ø$×5Ñ5Ø"Ø+Ø#5ð 6ó ŠCô
 ØäÜÜ+Ü2Ü"ðô	
ñ &Ð%Ð%Ø$ŠCÜ�FœLÔ)Ü×,Ñ,¨V×-?Ñ-?Ó@ˆFØ$×3Ñ3Ø*0Ò3Ø"Ø+Ø#5ð	 4ó ŠCô �FÔ8Ô9Ø$×3Ñ3óð #Ø+Ø#5ð 4ó ŠCô �FÔ/Ô0Ø$×3Ñ3ÛIØ"Ø+Ø#5ð	 4ó ŠCô �FœJÔ'Ù%Ð%Ð%Ø$×1Ñ1Ø"Ø+Ø#5ð 2ó ŠCô
 �FÔ-Ô.Ù%Ð%Ð%Ø$×<Ñ<Ø—]‘]Ø"Ø+Ø#5ð	 =ó ŠCô Ø”ZÔ!3Ô5SÐTô
ñ &Ð%Ð%Ü˜f¤jÔ1Ð1Ð1Ü3Ð4FÔGÙ'Ð'Ð'Ø×/Ñ/ØØ&Ø&Ø!Ø$ØØ&ó’ð )×8Ñ8ØŸ™Ø&Ø"/Ø'9ð	 9ó ’ô �FÔ.Ô0IÐJÔKÙ%Ð%Ð%ÜÐ0´4¼×9PÑ9PÐ2QÔRÐRÐRÜ˜fÔ'8Ô:SÐ&TÔUÐUÐUÜÐ,Ô.>Ô?Ø×2Ñ2Ð3JÔKÐKÐKÜ-ØØ&Ø&Ø!Ø&ó’ô ˜fŸl™lÔ,>Ô?Ü&ð8óð ð )×=Ñ=ØŸ™Ø&Ø"/Ø'9ð	 >ó ’ô �FÔ0Ô1ð”'Ø"Ø" 6§;¡;×#3Ñ#3×#9Ñ#9Ó#;Ð"<¸HÐEóð —J‘JØ"Ø+Ø#5ôŠCô �FœMÔ*Ù%Ð%Ð%à$×4Ñ4Ø—J‘JØ"Ø+Ø#5ð	 5ó ŠCô �FÔ-Ô.Ù%Ð%Ð%Ø$×9Ñ9Ø—L‘LØ"Ø+Ø#5ð	 :ó ŠCô �FœMÔ*Ù%Ð%Ð%Ü!Ø"¤T¬;×+BÑ+BÐ$Côð 'à&ó'ð ô Ð,¬dÔ3¸F×<QÒ<QØ(×=Ñ=ØŸ™Ø&Ø"/Ø'9ð	 >ó ’ô Ð.´Ô6¸v×?TÒ?TØ(×>Ñ>ØŸ™Ø&Ø"/Ø'9ð	 ?ó ’ð Ÿ™�Ø×(Ò(Ø"×/Ñ/Ó1�EØ(×8Ñ8ØØ&Ø"/Ø'9ð	 9ó ’ô �FœNÔ+Ù%Ð%Ð%Ù#Ð#Ð#ÜÐ.Ô/Ð/Ð/Ø—<’<Ø(×>Ñ>Ø+Ø"4×"AÑ"AÜ'7×'EÑ'Eð ?ó ÷ "‘/ØŸ™Ø&Ø"/Ø'9ð	 "ó ò	 ð 0×>Ñ>�
Ø'Ð3Ð3Ð3Ø,Ð/@Ñ@�	ð .×EÑEØ$Ø",Ü'7×'EÑ'Eð Fó �ô
 & hÔ0@ÔAÐAÐAà×3Ñ3ØŸ™Ø&Ø"/Ø'9ð	 4ó ’ô �FÔ-Ô.Ù%Ð%Ð%Ø$×3Ñ3Ü(Ø"Ø+Ø#5ð	 4ó ŠCô �FÔ2Ô3Ù%Ð%Ð%Ø$×3Ñ3ÙAØ"Ø+Ø#5ð	 4ó ŠCô �FÔ5Ô6Ù%Ð%Ð%Ø$×3Ñ3Ù;Ø"Ø+Ø#5ð	 4ó ŠCô �FÔ;Ô<Ù%Ð%Ð%Ø$×3Ñ3ÙBØ"Ø+Ø#5ð	 4ó ŠCô �FœOÔ,Ù%Ð%Ð%Ø$×3Ñ3Ù4Ø"Ø+Ø#5ð	 4ó ŠCô �FÔ0Ô1Ù%Ð%Ð%Ø$×3Ñ3Ù0Ø"Ø+Ø#5ð	 4ó ŠCô �FÔ-Ô.Ù%Ð%Ð%Ø$×3Ñ3ÙDØ"Ø+Ø#5ð	 4ó ŠCô �FÔ6Ô7Ù%Ð%Ð%Ø$×CÑCØ—l‘lØ"Ø+Ø#5ð	 Dó ŠCô ˜Ô 2Ô3ÜÐ0Ô2BÔCÜ$ØJóð ð %×4Ñ4Ø—l‘lØ"Ø+Ø#5ð	 5ó ŠCô �FÔ;Ô<Ù%Ð%Ð%Ø$×8Ñ8Ø—l‘lØ"Ø+Ø#5ð	 9ó ŠCô �FÔ-Ô.Ù%Ð%Ð%Ø$×9Ñ9Ø"Ø+Ø#5ð :ó ŠCô
 �FÔ4Ô5Ù%Ð%Ð%Ø$×BÑBØ"Ø+Ø#5ð Có ‰Cô
 �FÔ1Ô2Ù%Ð%Ð%Ø$×3Ñ3Ù;Ø"Ø+Ø#5ð	 4ó ‰Cô �FÔ2Ô3Ù%Ð%Ð%Ø$×3Ñ3Ù1Ø"Ø+Ø#5ð	 4ó ‰Cô �FœJÔ'Ù%Ð%Ð%Ø$×1Ñ1Ø"Ø+Ø#5ð 2ó ‰Cô
 �FœMÔ*Ù%Ð%Ð%Ø$×4Ñ4Ø"Ø+Ø#5ð 5ó ‰Cô
 �FÔ/Ô0Ù%Ð%Ð%Ø$×3Ñ3Ù.Ø"Ø+Ø#5ð	 4ó ‰Cô !Ø0°°¸¸F¿K¹K¸=ÐIóð ð 47ˆ×#Ñ# F§K¡KÑ0Øˆ
r½   c                ó8   — | j                  |j                  «      S rÚ   )r  rÝ  ©rÄ   rM  s     r»   r°  zGuardBuilder.get_guard_manager�  s   € Ø×1Ñ1°%×2JÑ2JÓKÐKr½   c                ó²  — |€
t        «       }dj                  |j                  «       «      }t        ||«      \  }}i }d| j                  d   i}	t
        j                  d|«       t        ||	|«        |d   |j                  «       Ž }
|r(| j                  j                  j                  |
|d «       y | j                  j                  j                  |
|d «       y )NrS  r…  zPython shape guard function:
%sÚ___make_guard_fn)rÈ  ÚjoinrÔ  Úbuild_guard_functionr‘  Ú
guards_logÚdebugÚexecr#  rV  rÛ   Úadd_epilogue_lambda_guardÚadd_lambda_guard)rÄ   rß   rà   rÝ   Úis_epilogueÚmake_guard_fn_argsÚ_guard_bodyÚpycoder.  Úglobals_for_guard_fnrV  s              r»   Ú$add_python_lambda_leaf_guard_to_rootz1GuardBuilder.add_python_lambda_leaf_guard_to_root’  sÙ   € ð ÐÜ,Ó.ˆLð "ŸY™Y |×'8Ñ'8Ó':Ó;ÐÜ2°:Ð?QÓRÑˆ�VØ ˆØ # T§Z¡Z°¡_Ð5ÐÜ×ÑÐ;¸VÔDÜˆVÐ)¨3Ô/Ø*�3Ð)Ñ*¨L×,?Ñ,?Ó,AÐBˆÙð ×Ñ×#Ñ#×=Ñ=ØØ"Øõð ×Ñ×#Ñ#×4Ñ4°XÐ?QÐSWÕXr½   c                óª   — t        |t        «      r|}n|j                  }|€
t        «       }|j	                  | j
                  || j                  «      }|S rÚ   )rþ   r>   rÝ  rÈ  Ú	get_valuer‘  r’  )rÄ   Úguard_or_sourcerÝ   ÚsrcÚrets        r»   r¥  zGuardBuilder.get·  sM   € ô
 �o¤vÔ.Ø!‰Cà!×4Ñ4ˆCØÐÜ,Ó.ˆLØ�m‰m˜DŸJ™J¨°d×6NÑ6NÓOˆØˆ
r½   c                ó8  — t        |t        «      r|}n|j                  }t        |«      }|| j                  vrat
        j                  j                  j                  |«      }|r6|dk(  rt        j                  d|«       | j                  j                  |«       |S )Nr7  zinvalid var name: %s)rþ   rÎ   rã  Ústrip_function_callrš  r.  rò  r“  Úis_valid_var_nameÚlogÚwarningrw  )rÄ   rM  rã  rå  Úis_valids        r»   Úarg_refzGuardBuilder.arg_refÊ  sz   € ä�eœSÔ!Ø‰Dà—:‘:ˆDÜ" 4Ó(ˆØ�t—}‘}Ñ$Ü—x‘x×'Ñ'×9Ñ9¸$Ó?ˆHÙØ˜q’=Ü—K‘KÐ 6¸Ô>Ø—‘×$Ñ$ TÔ*àˆr½   c                óÎ   — |dk(  rt        |j                  «      }nt        |j                  |«      }t        |||j                  |j
                  ¬«      }|j                  | «       y )Nr­   )rÔ  rÑ  )r\   rÝ  rV   r:   rÔ  rÑ  Úcreate)rÄ   rM  r×  rV  Úattr_sourceÚ	new_guards         r»   Ú_guard_on_attributez GuardBuilder._guard_on_attributeÚ  s[   € ð ˜
Ò"Ü$ U×%=Ñ%=Ó>‰Kä$ U×%=Ñ%=¸yÓIˆKäØ˜¨¯©À×AQÑAQô
ˆ	ð 	×Ñ˜Õr½   c                óz   — | j                   j                  d   t        || j                   j                  d   «      fS ©NrÎ  )Ú	create_fnÚkeywordsri  rN  s     r»   r¨  zGuardBuilder.<lambda>í  s4   € Ø�O‰O×$Ñ$ VÑ,Ü�E˜5Ÿ?™?×3Ñ3°FÑ;Ó<ð.
€ r½   c                ó,   — t        | |d   «      |d   k(  S ©Nr   rP   )ri  rS  s     r»   r¨  zGuardBuilder.<lambda>ñ  s   € ¬°°xÀ±{Ó(CÀxÐPQÁ{Ñ(R€ r½   rh  c           	     ó   — |€J ‚|j                   }t        |t        «      r|j                  }| j	                  |«      }t        | j                  |«      |«      }d }|r
d|› d|›d�}n	d|› d|›d�}|| j                  v ry | j                  ||g| j                  |«      ¬«       | j                  |«      }|r—t        ||«      }| j                  |«      }	| j                  |«      }
| j                  ||	«      }t        |
«      r,| j                  |||
|	|j                  |j                  |«       nG|j                  ||j                  |	|¬«       n'|j!                  |t#        ||«      |j$                  «       | j                  j'                  |«       y )Núhasattr(rS  rT  znot hasattr()Úprovided_guarded_objectrÍ  )rÝ  rþ   rr   rå  rN  ri  r¥  rª  Ú_set_guard_export_infor  rV   r±  r  rå  rã  rÕ  Úadd_no_hasattr_guardrà  rÑ  rõ   )rÄ   rM  rÎ  rX  ÚrefÚvalr·   Úbase_managerrQ  r  r'  r  s               r»   ÚHASATTRzGuardBuilder.HASATTRì  sŸ  € ð ÐÐÐØ×)Ñ)ˆÜ�fœnÔ-Ø—[‘[ˆFà�l‰l˜5Ó!ˆÜ�d—h‘h˜u“o tÓ,ˆØˆÙØ˜c˜U " T H¨AÐ.‰Dà! #  b¨¨°Ð2ˆDà�4×0Ñ0Ñ0Øà×#Ñ#Ø�D�6°4·8±8¸E³?ð 	$ô 	
ð ×9Ñ9¸&ÓAˆÙô % V¨TÓ2ˆKØ ŸH™H [Ó1ˆMØ!%§¡¨%£ÐØ!%×!<Ñ!<¸[È-Ó!XÐô 4Ð4FÔGØ×)Ñ)ØØ Ø&Ø!Ø—K‘KØ×$Ñ$Ø&õð ×,Ñ,ØØ Ÿ:™:Ø"/Ø'9ð	 -õ ð ×-Ñ-ØÔ,¨T°5Ó9¸5×;KÑ;Kôð 	×%Ñ%×)Ñ)¨$Õ/r½   c                ó4   — | j                   j                  d   S rU  ©rV  rW  rN  s     r»   r¨  zGuardBuilder.<lambda>+  s   € ¨U¯_©_×-EÑ-EÀfÑ-M€ r½   c                ó   — || j                   vS rÚ   )r•  rS  s     r»   r¨  zGuardBuilder.<lambda>,  s   € ¨¸¿¹Ð(F€ r½   c                ó¼  — |€J ‚| j                  |«      }| j                  |«      }| j                  |«      }d|›d|› d�}|| j                  v ry |j                  › d�}|j                  || j                  |j                  «      t        j                  ¬«      }|j                  d|t        ||«      |j                  «       | j                  j                  |«       y )Núnot ___dict_contains(rS  z
.__dict__)rÏ  rÐ  F)rN  r¥  r°  rª  rã  rÖ  rÅ  r•  r  r#  Úadd_dict_contains_guardrà  rÑ  rõ   )	rÄ   rM  rÎ  r_  r`  ra  r·   rÛ  rã  s	            r»   ÚNOT_PRESENT_IN_GENERIC_DICTz(GuardBuilder.NOT_PRESENT_IN_GENERIC_DICT*  sä   € ð ÐÐÐØ�l‰l˜5Ó!ˆØ�h‰h�u‹oˆà×-Ñ-¨eÓ4ˆà& t h¨b°°°ZÐ@ˆØ�4×0Ñ0Ñ0Øà"ŸZ™Z˜L¨	Ð2ˆØ#/×#HÑ#HØ"Ø×FÑFÀsÇ|Á|ÓTÜ/×=Ñ=ð $Ió $
Ð ð 	!×8Ñ8ØØÜ" 4¨Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r½   c                ó   — t        |«      S rÚ   ©r>  rN  s     r»   r¨  zGuardBuilder.<lambda>K  s
   € ¬T°%«[€ r½   c                ó   — t        | «      |u S rÚ   rk  rS  s     r»   r¨  zGuardBuilder.<lambda>L  s   € ¬¨U«°xÐ(?€ r½   c           	     ó0  — | j                  |«      }t        |t        j                  j                  «      r|j
                  r|j
                  }nt        |«      }|j                  |j                  k7  rd|_	        | j                  |d|j                  › d�«      }t        |«      }d| j                  |«      › d|› d|› �}| j                  ||g«       | j                  |«      j!                  |t#        ||d|j                  › �¬«      |j$                  «       y )	NTútype(rT  z___check_type_id(rS  ú), type=ztype )rÞ  )r¥  rþ   r.  Ú_subclassesÚ
FakeTensorrú  r>  rÔ   rÒ   Ú_unserializablerŽ  rã  re  rN  r]  r°  Úadd_type_match_guardrà  rÑ  )rÄ   rM  r÷  rY  rç  Ú	type_reprr·   s          r»   Ú
TYPE_MATCHzGuardBuilder.TYPE_MATCHJ  sõ   € ð —‘˜“ˆÜ�eœU×.Ñ.×9Ñ9Ô:¸u¿|º|Ø—‘‰Aä�U“ˆAà�>‰>˜QŸZ™ZÒ'ð %)ˆEÔ!à—‘˜Q %¨¯
©
 |°1Ð 5Ó6ˆÜ˜“Gˆ	Ø" 4§<¡<°Ó#6Ð"7°r¸&¸ÀÈ)ÈÐUˆØ×#Ñ# E¨D¨6Ô2à×Ñ˜uÓ%×:Ñ:ØÜ"Ø�e¨e°A·N±NÐ3CÐ,Dôð ×Ñõ	
r½   c                ó  — | j                  |«      }| j                  |«      }t        | j                  |«      «      }d|› d|› �}| j                  ||g«       | j	                  |«      j                  |t        ||«      |j                  «       y )Nz___dict_version(ú) == )rN  r¥  r   r]  r°  Úadd_dict_version_guardrà  rÑ  )rÄ   rM  r_  r`  Úversionr·   s         r»   ÚDICT_VERSIONzGuardBuilder.DICT_VERSIONj  s…   € ð �l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ˜tŸx™x¨›Ó/ˆØ! #  e¨G¨9Ð5ˆØ×#Ñ# E¨D¨6Ô2ð 	×Ñ˜uÓ%×<Ñ<ØÔ'¨¨eÓ4°e×6FÑ6Fõ	
r½   c                ó4   — | j                   j                  d   S ©Nr  rd  rN  s     r»   r¨  zGuardBuilder.<lambda>z  ó   € ¨U¯_©_×-EÑ-EÀeÑ-L€ r½   c                ó
   — || v S rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>{  ó   € ¨°EÐ(9€ r½   c                ó   — | j                  |«      }d|›d|› d�}|| j                  v ry | j                  ||g«       | j                  |«      j	                  d|t        ||«      |j                  «       | j                  j                  |«       y )Nz___dict_contains(rS  rT  T©rN  rª  r]  r°  rh  rà  rÑ  rõ   ©rÄ   rM  r  Údict_refr·   s        r»   ÚDICT_CONTAINSzGuardBuilder.DICT_CONTAINSy  s‘   € ð
 —<‘< Ó&ˆà" 3 '¨¨H¨:°QÐ7ˆØ�4×0Ñ0Ñ0ØØ×#Ñ# E¨D¨6Ô2à×Ñ˜uÓ%×=Ñ=ØØÜ" 4¨Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r½   c                ó4   — | j                   j                  d   S r|  rd  rN  s     r»   r¨  zGuardBuilder.<lambda>Ž  r}  r½   c                ó
   — || vS rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>�  ó   € ¨¸Ð(=€ r½   c                ó   — | j                  |«      }d|›d|› d�}|| j                  v ry | j                  ||g«       | j                  |«      j	                  d|t        ||«      |j                  «       | j                  j                  |«       y )Nrg  rS  rT  Fr�  r‚  s        r»   ÚDICT_NOT_CONTAINSzGuardBuilder.DICT_NOT_CONTAINS�  s‘   € ð
 —<‘< Ó&ˆà& s g¨R°¨z¸Ð;ˆØ�4×0Ñ0Ñ0ØØ×#Ñ# E¨D¨6Ô2à×Ñ˜uÓ%×=Ñ=ØØÜ" 4¨Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r½   c                ó4   — | j                   j                  d   S r|  rd  rN  s     r»   r¨  zGuardBuilder.<lambda>¢  r}  r½   c                ó
   — || v S rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>£  r  r½   c                ó$  — | j                  |«      }|}d|› d|›d�}|| j                  v ry | j                  ||g«       | j                  |«      j	                  d|t        ||«      |j                  «       | j                  j                  |«       y )Nzset.__contains__(rS  rT  T©rN  rª  r]  r°  Úadd_set_contains_guardrà  rÑ  rõ   ©rÄ   rM  r  Úset_refr  r·   s         r»   ÚSET_CONTAINSzGuardBuilder.SET_CONTAINS¡  s–   € ð
 —,‘,˜uÓ%ˆØˆà" 7 )¨2¨d¨X°QÐ7ˆØ�4×0Ñ0Ñ0Øà×#Ñ# E¨D¨6Ô2à×Ñ˜uÓ%×<Ñ<ØØÜ" 4¨Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r½   c                ó4   — | j                   j                  d   S r|  rd  rN  s     r»   r¨  zGuardBuilder.<lambda>¸  r}  r½   c                ó
   — || vS rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>¹  r‡  r½   c                ó$  — | j                  |«      }|}d|› d|›d�}|| j                  v ry | j                  ||g«       | j                  |«      j	                  d|t        ||«      |j                  «       | j                  j                  |«       y )Nznot set.__contains__(rS  rT  Fr�  r�  s         r»   ÚSET_NOT_CONTAINSzGuardBuilder.SET_NOT_CONTAINS·  s–   € ð
 —,‘,˜uÓ%ˆØˆà& w i¨r°$°¸Ð;ˆØ�4×0Ñ0Ñ0Øà×#Ñ# E¨D¨6Ô2à×Ñ˜uÓ%×<Ñ<ØØÜ" 4¨Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r½   c                ó   — |S rÚ   r…  rN  s     r»   r¨  zGuardBuilder.<lambda>Î  ó   € ¨U€ r½   c                ó   — | |k(  S rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>Ï  ó   € ¨°Ñ(9€ r½   c                óz  — | j                  |«      }| j                  |«      }t        |t        «      sJ ‚|› d|›�g}| j	                  ||«       |r6| j                  |«      j                  t        ||«      |j                  «       y | j                  |«      j                  t        ||«      |j                  «       y )Nr   )
rN  r¥  r‘   rÐ   r]  r°  Úadd_true_match_guardrà  rÑ  Úadd_false_match_guard©rÄ   rM  r_  r`  r·   s        r»   Ú
BOOL_MATCHzGuardBuilder.BOOL_MATCHÍ  s­   € ð �l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ�cœ4Ô Ð Ð Ø�%�t˜C˜7Ð#Ð$ˆØ×#Ñ# E¨4Ô0áØ×"Ñ" 5Ó)×>Ñ>Ü& t¨UÓ3°U×5EÑ5Eõð ×"Ñ" 5Ó)×?Ñ?Ü& t¨UÓ3°U×5EÑ5Eõr½   c                 ó   — y rÚ   r…  rN  s     r»   r¨  zGuardBuilder.<lambda>ã  ó   � r½   c                ó
   — | d u S rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>ä  s
   € ¨°¨€ r½   c                óê   — | j                  |«      }| j                  |«      }|�J ‚|› d�g}| j                  ||«       | j                  |«      j	                  t        ||«      |j                  «       y )Nz is None)rN  r¥  r]  r°  Úadd_none_match_guardrà  rÑ  r�  s        r»   Ú
NONE_MATCHzGuardBuilder.NONE_MATCHâ  ss   € ð �l‰l˜5Ó!ˆØ�h‰h�u‹oˆØˆ{Ðˆ{Ø�%�xÐ Ð!ˆØ×#Ñ# E¨4Ô0à×Ñ˜uÓ%×:Ñ:Ü" 4¨Ó/°×1AÑ1Aõ	
r½   c                ó   — |S rÚ   r…  rN  s     r»   r¨  zGuardBuilder.<lambda>ó  r—  r½   c                ó
   — | |u S rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>ô  ó   € ¨°Ð(9€ r½   c                ó&   — | j                  ||«      S rÚ   )Úid_match_unchecked)rÄ   rM  rÞ  s      r»   ÚID_MATCHzGuardBuilder.ID_MATCHò  s   € ð ×&Ñ& u¨nÓ=Ð=r½   c                ó6  — t        |j                  t        «      r=| j                  t	        |j                  j
                  t        j                  «      «      S | j                  |«      }| j                  |«      }| j                  ||j                  «      }	 t        |«      }d|› d|› d|› �}| j                  ||gd¬«       | j!                  |«      j#                  |t%        |||«      |j&                  «       t        |j                  t(        «      r_t        |t*        j,                  j.                  «      r:|j                  j0                  }| j3                  |«      }	|	�|	| j4                  |<   y y y y # t        $ r dt        |«      j                  › d�}Y Œõw xY w)Nr‰  r‡  z___check_obj_id(rS  ro  rª  )Úprovided_func_name)rþ   rÝ  r}   ru  r:   rå  r�  rN  r¥  rŽ  rã  re  Ú	Exceptionr>  rÒ   r]  r°  r¸  rà  rÑ  rp   r.  r2  r3  r  r�  rå   )
rÄ   rM  rÞ  r_  r`  rº  rt  r·   r  Úweak_ids
             r»   r©  zGuardBuilder.id_match_uncheckedÿ  sz  € ô �e×.Ñ.´
Ô;à—?‘?Ü�e×.Ñ.×3Ñ3´\×5LÑ5LÓMóð ð �l‰l˜5Ó!ˆØ�h‰h�u‹oˆØ—‘˜S %§*¡*Ó-ˆð	2Ü˜S›	ˆIð
 " #  b¨¨°¸¸ÐDˆØ×#Ñ# E¨D¨6ÀjÐ#ÔQØ×Ñ˜uÓ%×8Ñ8ØÜ" 4¨°Ó?Ø×Ñô	
ô �e×.Ñ.´Ô<ô ˜#œuŸx™xŸ™Ô/Ø"×5Ñ5×@Ñ@�
Ø×.Ñ.¨sÓ3�ØÐ&Ø7>�D×(Ñ(¨Ò4ð 'ð 0ð	 =øô ò 	2ð œD ›I×.Ñ.Ð/¨qÐ1ŠIð	2ús   ÂE3 Å3"FÆFc                 ó   — y rÚ   r…  rN  s     r»   r¨  zGuardBuilder.<lambda>'	  r   r½   c                ó
   — | d uS rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>(	  ó   € ¨°TÐ(9€ r½   c                ó  — | j                  |«      }| j                  |«      }t        |t        j                  «      sJ ‚|› d�}| j                  ||g«       | j                  |«      j                  t        ||«      |j                  «       y ©Nz is not None)
rN  r¥  rþ   r.  r/  r]  r°  Úadd_not_none_guardrà  rÑ  )rÄ   rM  r÷  r_  r`  r·   s         r»   ÚNOT_NONE_MATCHzGuardBuilder.NOT_NONE_MATCH&	  s|   € ð
 �l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ˜#œuŸ|™|Ô,Ð,Ð,Ø��lÐ#ˆØ×#Ñ# E¨D¨6Ô2à×Ñ˜uÓ%×8Ñ8Ü" 4¨Ó/°×1AÑ1Aõ	
r½   c                ó"   — |j                  «       S rÚ   ©Úraw_reprrN  s     r»   r¨  zGuardBuilder.<lambda>6	  s   € ¨U¯^©^Ó-=€ r½   c                ó(   — | j                  «       |k(  S rÚ   r·  rS  s     r»   r¨  zGuardBuilder.<lambda>7	  s   € ¨¯©Ó(8¸HÑ(D€ r½   c                ó  — | j                  |«      }| j                  |«      }t        |t        j                  j
                  «      sJ ‚|› d|›d�}| j                  |«      j                  |t        ||«      |j                  «       y )Nz.raw_repr() == z.raw_repr())
rN  r¥  rþ   r.  rò  r¡   r°  Úadd_dispatch_key_set_guardrà  rÑ  )rÄ   rM  r_  r`  rß   s        r»   ÚDISPATCH_KEY_SET_MATCHz#GuardBuilder.DISPATCH_KEY_SET_MATCH5	  sz   € ð
 �l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ˜#œuŸx™x×6Ñ6Ô7Ð7Ð7Ø�u˜O¨C¨7°+Ð>ˆ
à×Ñ˜uÓ%×@Ñ@ØÜ" :¨uÓ5Ø×Ñõ	
r½   c                ó  — | j                   j                  €J ‚| j                   j                  j                  }d|› �g}| j                  ||«       | j                  j
                  j                  |t        ||«      |j                  «       y )Nz,torch.autograd.forward_ad._current_level == )	rž  r£  Ú
dual_levelr]  rV  rÛ   Úadd_dual_level_match_guardrà  rÑ  )rÄ   rM  r¾  r·   s       r»   Ú
DUAL_LEVELzGuardBuilder.DUAL_LEVELF	  s‚   € ð ×$Ñ$×1Ñ1Ð=Ð=Ð=Ø×*Ñ*×7Ñ7×BÑBˆ
Ø>¸z¸lÐKÐLˆØ×#Ñ# E¨4Ô0Ø×Ñ×Ñ×:Ñ:ØÜ" 4¨Ó/Ø×Ñõ	
r½   c                ó¼  ‡‡— | j                   j                  €J ‚| j                   j                  j                  }|D �cg c]  }|j                  «       ‘Œ c}Šd‰› d�g}| j	                  ||«       t
        j                  j                  j                  Šdˆˆfd„}| j                  j                  j                  |t        ||«      |j                  «       y c c}w )Nz5torch._functorch.pyfunctorch.compare_functorch_state(rT  c                ó   •—  ‰‰«      S rÚ   r…  )ro  Ú
compare_fnÚstatess    €€r»   rk  z.GuardBuilder.FUNCTORCH_STACK_MATCH.<locals>.fnb	  s   ø€ Ù˜fÓ%Ð%r½   rƒ  )rž  r£  Úfunctorch_layersÚ	get_stater]  r.  Ú
_functorchÚpyfunctorchÚcompare_functorch_staterV  rÛ   r<  rà  rÑ  )rÄ   rM  ÚcisÚcir·   rk  rÃ  rÄ  s         @@r»   ÚFUNCTORCH_STACK_MATCHz"GuardBuilder.FUNCTORCH_STACK_MATCHU	  s¿   ù€ ð ×$Ñ$×1Ñ1Ð=Ð=Ð=Ø×#Ñ#×0Ñ0×AÑAˆØ+.Ö/ R�"—,‘,•.Ò/ˆØGÈÀxÈqÐQÐRˆØ×#Ñ# E¨4Ô0ô ×%Ñ%×1Ñ1×IÑIˆ
ö	&ð 	×Ñ×Ñ×0Ñ0ØÔ& t¨UÓ3°U×5EÑ5Eõ	
ùò 0s   ¿Cc                ó¨  ‡‡‡‡— t         j                  j                  j                  j                  Št         j                  j                  j                  j
                  Š	 	 	 	 dˆfd„Š ‰ ‰«       «      Šd‰› �g}| j                  ||«       dˆˆˆfd„}| j                  j                  j                  |t        ||«      |j                  «       y )Nc                óH   •—  ‰| «      sy t        t        t        | «      «      S rÚ   )r<  Úmapr^  )ÚhooksÚare_inline_hookss    €r»   Úhooks_ids_fnz?GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKS.<locals>.hooks_ids_fnq	  s!   ø€ ñ $ EÔ*ØäœœR ›Ó(Ð(r½   zCtorch._functorch.aot_autograd.utils.top_saved_tensors_hooks ids == c                ó$   •— ‰ ‰ ‰«       «      k(  S rÚ   r…  )ro  Ú	get_hooksÚguard_hooks_idsrÒ  s    €€€r»   rk  z5GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKS.<locals>.fn€	  s   ø€ Ø"¡l±9³;Ó&?Ñ?Ð?r½   )rÐ  zCtuple[Callable[[torch.Tensor], Any], Callable[[Any], torch.Tensor]]rÍ   ztuple[int, ...] | Nonerƒ  )r.  rÇ  Ú_aot_autogradrÅ  Útop_saved_tensors_hooksÚ"saved_tensors_hooks_are_inlineabler]  rV  rÛ   r<  rà  rÑ  )rÄ   rM  r·   rk  rÑ  rÔ  rÕ  rÒ  s       @@@@r»   ÚAUTOGRAD_SAVED_TENSORS_HOOKSz)GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKSj	  sÂ   û€ ä×$Ñ$×2Ñ2×8Ñ8×PÑPˆ	ä×Ñ×*Ñ*×0Ñ0×SÑSð 	ð	)ØVð	)à#õ	)ñ '¡y£{Ó3ˆð RÐRaÐQbÐcð
ˆð 	×#Ñ# E¨4Ô0÷	@ð 	×Ñ×Ñ×0Ñ0ØÔ& t¨UÓ3°U×5EÑ5Eõ	
r½   c                óÚ  ‡‡‡— | j                  |«      } G d„ d«      Š|j                  «       d   }t        t        j                  t
        j                  ˆfd„|«      «      Št        |d«      rt        |«       t        |«      Šd
ˆˆfd„}nd
ˆfd„}dt        |«      › d	t        j                  «       › �}| j                  |«      j                  |t        ||«      |j                   «       y )Nc                  ó   — e Zd Zdd„Zdd„Zy)ú@GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>._AnyComparec                 ó   — yr  r…  ©rÄ   Úothers     r»   Ú__eq__zGGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>._AnyCompare.__eq__‘	  s   € Ør½   c                 ó   — yr  r…  rÞ  s     r»   Ú__ne__zGGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>._AnyCompare.__ne__”	  s   € Ør½   N)rß  ÚobjectrÍ   rÐ   )rÒ   rÓ   rÔ   rà  râ  r…  r½   r»   Ú_AnyComparerÜ  �	  s   „ óôr½   rä  rP   c                ó   •—  ‰«       S rÚ   r…  )rˆ  rä  s    €r»   r¨  z=GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.<lambda>™	  s	   ø€ ¹»€ r½   rC  c                óJ   •— ‰j                  ‰| j                  «       d   «      S r³   rJ  )ro  rF  Úoriginal_metadatas    €€r»   Úmetadata_checkerzEGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.metadata_checkerŸ	  s)   ø€ Ø×-Ñ-Ø% q×';Ñ';Ó'=¸aÑ'@óð r½   c                ó0   •— | j                  «       d   ‰k(  S r³   rý  )ro  rç  s    €r»   rè  zEGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.metadata_checker¦	  s   ø€ Ø×+Ñ+Ó-¨aÑ0Ð4EÑEÐEr½   Ú___check_metadata_Ú_crƒ  )r¥  rD  r   ÚpytreeÚtree_map_onlyr.  rê  ri  rš   r>  r^  r7   Úcurrent_compile_idr°  r<  rà  rÑ  )	rÄ   rM  r÷  rE  rè  ró  rä  rF  rç  s	         @@@r»   ÚTENSOR_SUBCLASS_METADATA_MATCHz+GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH‡	  sÐ   ú€ ð
 —‘˜“ˆ÷	ñ 	ð ×+Ñ+Ó-¨aÑ0ˆÜ$Ü× Ñ ¤§¡Ó/FÈÓQó
Ðô �5Ð.Ô/Ü% eÔ,Ü�u“+ˆC÷õFð +¬2Ð.>Ó+?Ð*@ÀÄ>×CdÑCdÓCfÐBgÐhˆØ×Ñ˜uÓ%×6Ñ6ØÜ" ;°Ó6Ø×Ñõ	
r½   c                óÐ   ‡— t        || j                  |«      «      Šdˆfd„}dt        |«      › �}| j                  |«      j	                  |t        ||«      |j                  «       y )Nc                ó   •— t        | ‰«      S rÚ   )rT  ©ro  Úexpecteds    €r»   rV  z1GuardBuilder.DTENSOR_SPEC_MATCH.<locals>.guard_fn¹	  s   ø€ Ü% a¨Ó2Ð2r½   Ú__dtensor_spec_rƒ  )rO  r¥  r^  r°  r<  rà  rÑ  )rÄ   rM  rV  r·   ró  s       @r»   ÚDTENSOR_SPEC_MATCHzGuardBuilder.DTENSOR_SPEC_MATCH°	  s^   ø€ ô (¨¨t¯x©x¸«Ó?ˆõ	3ð !¤ H£ Ð/ˆØ×Ñ˜uÓ%×6Ñ6ØÔ,¨T°5Ó9¸5×;KÑ;Kõ	
r½   c                ó  ‡— | j                  |«      }t        ||«      Š‰€ydˆfd„}dt        |«      › dt        j                  «       › �}| j                  |«      j                  |t        ||«      |j                  «       y)z=Guard on the values returned by the opaque object's guard_fn.Nc                ó   •— t        | ‰«      S rÚ   )rZ  )ro  Úoriginal_valuess    €r»   Úopaque_guard_checkerzDGuardBuilder.OPAQUE_OBJ_GUARD_FN_MATCH.<locals>.opaque_guard_checkerÎ	  s   ø€ Ü# A Ó7Ð7r½   Ú___check_opaque_guard_fn_rë  rƒ  )	r¥  rX  r^  r7   rî  r°  r<  rà  rÑ  )rÄ   rM  r÷  rù  ró  rø  s        @r»   ÚOPAQUE_OBJ_GUARD_FN_MATCHz&GuardBuilder.OPAQUE_OBJ_GUARD_FN_MATCHÁ	  s€   ø€ ð —‘˜“ˆÜ,¨U°EÓ:ˆàÐ"Øõ	8ð 2´"Ð5IÓ2JÐ1KÈ2Ìn×NoÑNoÓNqÐMrÐsˆØ×Ñ˜uÓ%×6Ñ6Ø Ü" ;°Ó6Ø×Ñõ	
r½   c                ó   — |S rÚ   r…  rN  s     r»   r¨  zGuardBuilder.<lambda>Ù	  r—  r½   c                ó   — | |k(  S rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>Ú	  r™  r½   c                óÐ  — | j                  |«      }| j                  |«      }t        r¨t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  f}nd}t        t        f}t!        t"        t$        t         t&        t(        t*        t,        t.        j0                  t.        j2                  t.        j4                  j6                  j2                  h	|£|£z  «      }t.        j8                  j;                  «       rddlm}m }	 ddl!m"}
m#}m$}m%} |||||	|
|fz   }ddl&m'} ||fz   }dd l(m)c m*} tW        ||«      sB |jX                  t%        |«      «      s't[        t%        |«      «      sJ dt%        |«      › �«       ‚t]        |t^        «      rgta        jb                  |«      rRd|› d|› d	�g}| je                  ||«       | jg                  |«      ji                  tk        ||«      |jl                  «       y t]        |tn        «      rgt        jb                  |«      rRd|› d
|› d	�g}| je                  ||«       | jg                  |«      jq                  tk        ||«      |jl                  «       y |› d|›�g}t]        ||«      rts        |«      }tk        ||«      }|r|D �cg c]
  }|› d|› d�‘Œ }}| jg                  |«      ju                  |||jl                  «       | je                  ||«       y c c}w )Nr…  r   )Ú_MeshLayoutÚ
DeviceMesh)Ú_StridedShardÚPartialÚ	ReplicateÚShard)Ú_IntWrapperzUnexpected type z(type(z) is float and __math_isnan(z))z) is complex and __numpy_isnan(r   rÚ  rT  );rN  r¥  r‰  Úint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64Úfloat16Úfloat32Úfloat64rÛ  rç   r<  rŠ   r>  rê  ÚsliceÚrangerŒ   r.  ÚSizeÚStreamÚcudaÚstreamsÚdistributedÚis_availableÚtorch.distributed.device_meshrÿ  r   Ú(torch.distributed.tensor.placement_typesr  r  r  r  Útorch.export.dynamic_shapesr  Útorch.utils._pytreerÅ  rK   rþ   Úis_constant_classrC   r‘   rÂ  rÀ  rÁ  r]  r°  Úadd_float_is_nan_guardrà  rÑ  ÚcomplexÚadd_complex_is_nan_guardr   r$  )rÄ   rM  rÞ  r_  r`  Únp_typesÚok_mutable_typesÚok_typesrÿ  r   r  r  r  r  r  rì  r·   rà   rP  s                      r»   ÚEQUALS_MATCHzGuardBuilder.EQUALS_MATCHØ	  s  € ð
 �l‰l˜5Ó!ˆØ�h‰h�u‹oˆÝä—‘Ü—‘Ü—‘Ü—‘Ü—‘Ü—	‘	Ü—	‘	Ü—	‘	Ü—
‘
Ü—
‘
Ü—
‘
ð/‰Hð ˆHä ¤#˜;ÐäÜ!äÜÜÜÜÜÜ—
‘
Ü—‘Ü—
‘
×"Ñ"×)Ñ)ðð ðð "ðñó
ˆô" ×Ñ×)Ñ)Ô+ßM÷ó ð  ØØØØØØð#ñ ˆHõ 	<à˜{˜nÑ,ˆç,Ð,ô �s˜HÔ%Ø'ˆv×'Ñ'¬¨S«	Ô2Ü#¤D¨£IÔ.ð	*ð œd 3›i˜[Ð)ó		*ð/ô �#”uÔ¤$§*¡*¨S¤/Ø˜S˜EÐ!=¸c¸UÀ"ÐEÐFˆDØ×'Ñ'¨¨tÔ4à×"Ñ" 5Ó)×@Ñ@Ü& t¨UÓ3Ø× Ñ ôð ô �#”wÔ¤B§H¡H¨S¤MØ˜S˜EÐ!@ÀÀÀRÐHÐIˆDØ×'Ñ'¨¨tÔ4à×"Ñ" 5Ó)×BÑBÜ& t¨UÓ3Ø× Ñ ôð ð �%�t˜C˜7Ð#Ð$ˆÜ�#Ð'Ô(ô ˜3“-ˆCä3°D¸%Ó@ÐÙà?Qö"Ø7;�4�&˜ Ð 0°Ò2ð"Ðð "ð 	×Ñ˜uÓ%×<Ñ<ØÐ# U×%5Ñ%5ô	
ð 	×#Ñ# E¨4Ô0Øùò"s   ÌM#c                ó   — |S rÚ   r…  rN  s     r»   r¨  zGuardBuilder.<lambda>M
  r—  r½   c                ó   — | |k(  S rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>N
  r™  r½   c                ó  — | j                  |«      }t        |t        «      r| j                  |«       y |€| j	                  |«       y t        |t
        j                  «      r| j                  |«       y | j                  |«       y rÚ   )	r¥  r‘   rÐ   rž  r¤  r4  ÚCodeTyperª  r$  ©rÄ   rM  r`  s      r»   ÚCONSTANT_MATCHzGuardBuilder.CONSTANT_MATCHL
  s`   € ð
 �h‰h�u‹oˆÜ�#”tÔØ�O‰O˜EÕ"Øˆ[Ø�O‰O˜EÕ"Ü�CœŸ™Ô(Ø�M‰M˜%Õ à×Ñ˜eÕ$r½   c                ó   — t        |«      S rÚ   ©rf  rN  s     r»   r¨  zGuardBuilder.<lambda>\
  s   € Ô-JÈ5Ó-Q€ r½   c                ó   — t        | «      |k(  S rÚ   r,  rS  s     r»   r¨  zGuardBuilder.<lambda>]
  s   € Ô(EÀeÓ(LØñ)€ r½   c                óF  ‡‡	— ddl m} | j                  |«      }| j                  |«      }dŠ|D ]  }t	        ||«      sŒ|Š n ‰€J ‚ ‰|«      Š	‰j
                  › d|› d‰	›�g}dˆˆ	fd„}| j                  |«      j                  |t        ||«      |j                  «       y)zÎGuard for subclasses of constant types (int, float, str, etc.).

        Extracts the base value using the base type's converter (e.g.,
        int.__int__) to avoid calling user-overridden __eq__.
        rP   rc  Nú(rw  c                ó   •—  ‰| «      ‰k(  S rÚ   r…  )ro  Ú	base_typeÚ
base_values    €€r»   Úcheck_fnz6GuardBuilder.CONSTANT_SUBCLASS_MATCH.<locals>.check_fnv
  s   ø€ Ù˜Q“< :Ñ-Ð-r½   rƒ  )
re  rd  r¥  rN  rþ   rÒ   r°  r<  rà  rÑ  )
rÄ   rM  rd  r`  r_  rY  r·   r3  r1  r2  s
           @@r»   ÚCONSTANT_SUBCLASS_MATCHz$GuardBuilder.CONSTANT_SUBCLASS_MATCH[
  s¹   ù€ õ 	Aà�h‰h�u‹oˆØ�l‰l˜5Ó!ˆð ˆ	Ø%ò 	ˆAÜ˜#˜qÕ!Ø�	Ùð	ð Ð$Ð$Ð$á˜s“^ˆ
Ø×%Ñ%Ð& a¨ u¨E°*°Ð@ÐAˆö	.ð 	×Ñ˜uÓ%×6Ñ6ØÜ" 4¨Ó/Ø×Ñõ	
r½   c                ó   — |S rÚ   r…  rN  s     r»   r¨  zGuardBuilder.<lambda>€
  r—  r½   c                ó
   — | |u S rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>�
  r§  r½   c                óF  — | j                  |d«       | j                  |«      }t        |d«      rKt        |j                  t
        «      sJ ‚| j                  s"| j                  |dt        j                  «       y y t        j                  dddt        |«      › d�dg¬«       y )	Nz%[inline-inbuilt-nn-modules-candidate]Útrainingz-Attempted to guard on uninitialized nn.Modulerg  zKAttempted to setup an NN_MODULE guard on uninitialized nn.Module subclass `z`.zIEnsure the `nn.Module` subclass instance has called `super().__init__()`.)Úgb_typeÚcontextÚexplanationÚhints)rª  r¥  ri  r‘   r8  rÐ   r©  rS  r�  r*  rS   Úunimplementedr>  r)  s      r»   Ú	NN_MODULEzGuardBuilder.NN_MODULE
  sš   € ð 	�‰�eÐDÔEØ�h‰h�u‹oˆÜ�3˜
Ô#Ü˜#Ÿ,™,¬Ô-Ð-Ð-Ø×(Ò(à×(Ñ(¨°
¼L×<WÑ<WÕXð )ô ×ÑØGØð'Ü'+¨C£y k°ð5ð `ðör½   c                ó   — |S rÚ   r…  rN  s     r»   r¨  zGuardBuilder.<lambda>˜
  r—  r½   c                ó
   — | |u S rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>™
  r§  r½   c                ó$   — | j                  |«      S )z0things like torch.add and user defined functions)rª  r3  s     r»   ÚFUNCTION_MATCHzGuardBuilder.FUNCTION_MATCH—
  s   € ð �}‰}˜UÓ#Ð#r½   c                ó   — |S rÚ   r…  rN  s     r»   r¨  zGuardBuilder.<lambda>¡
  r—  r½   c                ó
   — | |u S rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>¢
  r§  r½   c                ó¢   — | j                  |«      }t        j                  |«      st        |j                  › d�«      ‚| j                  |«       y)zNEquals ID_MATCH on classes - better readability than directly calling ID_MATCHz( is not a class, but CLASS_MATCH is usedN)r¥  r—  Úisclassr&  rã  r©  r)  s      r»   ÚCLASS_MATCHzGuardBuilder.CLASS_MATCH 
  sI   € ð �h‰h�u‹oˆÜ�‰˜sÔ#Ü Ø—:‘:�,ÐFÐGóð ð 	×Ñ Õ&r½   c                ó   — |S rÚ   r…  rN  s     r»   r¨  zGuardBuilder.<lambda>®
  r—  r½   c                ó
   — | |u S rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>¯
  r§  r½   c                ó¢   — | j                  |«      }t        j                  |«      st        |j                  › d�«      ‚| j                  |«       y)zNEquals ID_MATCH on modules - better readability than directly calling ID_MATCHz* is not a module, but MODULE_MATCH is usedN)r¥  r—  Úismoduler&  rã  r©  r)  s      r»   ÚMODULE_MATCHzGuardBuilder.MODULE_MATCH­
  sK   € ð �h‰h�u‹oˆÜ×Ñ Ô$Ü Ø—:‘:�,ÐHÐIóð ð 	×Ñ Õ&r½   c                óÚ   — | j                  |«      }t        |«      t        j                  u r.t	        |d«      r"| j                  |dt        j                  «       y| j                  |«       y)z!matches a closure by __code__ id.r­   N)	r¥  r>  r4  r5  ri  rS  r�  r*  rB  r)  s      r»   ÚCLOSURE_MATCHzGuardBuilder.CLOSURE_MATCHº
  sT   € ð �h‰h�u‹oˆä�‹9œ×*Ñ*Ñ*¬w°s¸JÔ/Gð ×$Ñ$ U¨J¼×8SÑ8SÕTà×Ñ Õ&r½   c                ó   — |S rÚ   r…  rN  s     r»   r¨  zGuardBuilder.<lambda>Ë
  r—  r½   c                ó
   — | |u S rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>Ì
  r§  r½   c                óâ   — | j                   rSt        |j                  t        «      r9| j                  j
                  j                  |j                  j                  «       | j                  |«      S rÚ   )	r   rþ   rÝ  rb   rž  Úused_builtin_varsrõ   r¶   r©  r3  s     r»   ÚBUILTIN_MATCHzGuardBuilder.BUILTIN_MATCHÊ
  sZ   € ð
 ×Òä˜%×2Ñ2Ô4EÔFØ×%Ñ%×7Ñ7×;Ñ;Ø×,Ñ,×2Ñ2ôð ×&Ñ& uÓ-Ð-r½   c                ó   — t        |«      S rÚ   ©rµ   rN  s     r»   r¨  zGuardBuilder.<lambda>Ø
  s
   € ¬S°«Z€ r½   c                ó   — t        | «      |k(  S rÚ   rU  rS  s     r»   r¨  zGuardBuilder.<lambda>Ù
  s   € ¬¨E«
°hÑ(>€ r½   c                óV  — | j                  |«      }| j                  |«      }t        |t        «      s| j	                  |«       g }t        |«      dk(  r|j                  d|› �«       n |j                  d|› dt        |«      › �«       | j                  ||«       t        |t        «      r@| j                  |«      j                  t        |«      t        ||«      |j                  «       y | j                  |«      j                  t        |«      t        ||«      |j                  «       y )Nr   znot zlen(rw  )rN  r¥  rþ   r!  ru  rµ   rw  r]  r°  Úadd_dict_length_check_guardrà  rÑ  Úadd_length_check_guard©rÄ   rM  r_  r÷  r·   s        r»   ÚSEQUENCE_LENGTHzGuardBuilder.SEQUENCE_LENGTH×
  sö   € ð �l‰l˜5Ó!ˆØ—‘˜“ˆä˜%¤Ô&à�O‰O˜EÔ"àˆÜˆu‹:˜Š?Ø�K‰K˜$˜s˜e˜Õ%à�K‰K˜$˜s˜e 5¬¨U«¨Ð5Ô6à×#Ñ# E¨4Ô0Ü�eœTÔ"Ø×"Ñ" 5Ó)×EÑEÜ�E“
Ü& t¨UÓ3Ø× Ñ õð ×"Ñ" 5Ó)×@Ñ@Ü�E“
Ü& t¨UÓ3Ø× Ñ õr½   c                ó   — t        |«      S rÚ   ©r™   rN  s     r»   r¨  zGuardBuilder.<lambda>ú
  s   € Ô-?ÀÓ-F€ r½   c                ó   — t        | «      |k(  S rÚ   r]  rS  s     r»   r¨  zGuardBuilder.<lambda>û
  s   € Ô(:¸5Ó(AÀXÑ(M€ r½   c                óœ  — | j                  |«      }| j                  |«      }t        |«      }g }|j                  d|› dt	        |«      › �«       | j                  ||«       t        |«      }| j                  |d|j                  › d�«      }| j                  |«      j                  t	        |«      |t        ||«      |j                  «       y )Nz___tuple_iterator_len(rw  rn  rT  )rN  r¥  r>  rw  r™   r]  rŽ  rã  r°  Úadd_tuple_iterator_length_guardrà  rÑ  )rÄ   rM  r_  r÷  rY  r·   rç  s          r»   ÚTUPLE_ITERATOR_LENzGuardBuilder.TUPLE_ITERATOR_LENù
  s»   € ð
 �l‰l˜5Ó!ˆØ—‘˜“ˆÜ�‹KˆàˆØ�‰Ð,¨S¨E°Ô7IÈ%Ó7PÐ6QÐRÔSØ×#Ñ# E¨4Ô0ä�‹KˆØ—‘˜Q %¨¯
©
 |°1Ð 5Ó6ˆà×Ñ˜uÓ%×EÑEÜ˜uÓ%ØÜ" 4¨Ó/Ø×Ñõ		
r½   c                ó   — t        |«      S rÚ   ©r•   rN  s     r»   r¨  zGuardBuilder.<lambda>  s   € Ô-AÀ%Ó-H€ r½   c                ó   — t        | «      |k(  S rÚ   rc  rS  s     r»   r¨  zGuardBuilder.<lambda>  s   € Ô(<¸UÓ(CÀxÑ(O€ r½   c           
     óž  — | j                  |«      }| j                  |«      }t        |«      }g }t        |«      }|j	                  d|› d|› �«       | j                  ||«       t        |«      }| j                  |d|j                  › d�«      }|\  }}	}
| j                  |«      j                  ||	|
|t        ||«      |j                  «       y )Nz___normalize_range_iter(rw  rn  rT  )rN  r¥  r>  r•   rw  r]  rŽ  rã  r°  Úadd_range_iterator_match_guardrà  rÑ  )rÄ   rM  r_  r÷  rY  r·   Únormalized_range_iterrç  ÚstartÚstopÚsteps              r»   ÚRANGE_ITERATOR_MATCHz!GuardBuilder.RANGE_ITERATOR_MATCH  sÎ   € ð
 �l‰l˜5Ó!ˆØ—‘˜“ˆÜ�‹KˆàˆÜ 4°UÓ ;ÐØ�‰Ð.¨s¨e°5Ð9NÐ8OÐPÔQØ×#Ñ# E¨4Ô0ä�‹KˆØ—‘˜Q %¨¯
©
 |°1Ð 5Ó6ˆà1Ñˆˆt�TØ×Ñ˜uÓ%×DÑDØØØØÜ" 4¨Ó/Ø×Ñõ	
r½   c                ó.   — t        |«      t        |«      fS rÚ   ©r>  r”   rN  s     r»   r¨  zGuardBuilder.<lambda>,  s   € ¬d°5«kÔ;OÐPUÓ;VÐ-W€ r½   c                óH   — t        | «      |d   u xr t        | «      |d   k(  S rY  rm  rS  s     r»   r¨  zGuardBuilder.<lambda>-  s,   € Ü�‹K˜8 A™;Ð&ÒUÔ+?ÀÓ+FÈ(ÐSTÉ+Ñ+Uð r½   c                ó(  ‡‡— | j                  |«      }| j                  |«      }t        |«      Št        |«      Šdˆˆfd„}d|› d‰› �g}| j	                  ||«       | j                  |«      j                  |t        ||«      |j                  «       y )Nc                ó>   •— t        | «      ‰u xr t        | «      ‰k(  S rÚ   rm  )ro  Ú
count_typeÚnormalized_count_iters    €€r»   rV  z3GuardBuilder.COUNT_ITERATOR_MATCH.<locals>.guard_fn7  s(   ø€ ä�Q“˜:Ð%ò EÜ(¨Ó+Ð/DÑDðr½   z___normalize_count_iter(rw  rƒ  )	rN  r¥  r>  r”   r]  r°  r<  rà  rÑ  )rÄ   rM  r_  r÷  rV  r·   rq  rr  s         @@r»   ÚCOUNT_ITERATOR_MATCHz!GuardBuilder.COUNT_ITERATOR_MATCH+  s�   ù€ ð �l‰l˜5Ó!ˆØ—‘˜“ˆÜ˜%“[ˆ
Ü 4°UÓ ;Ðö	ð +¨3¨%¨uÐ5JÐ4KÐLÐMˆØ×#Ñ# E¨4Ô0Ø×Ñ˜uÓ%×6Ñ6ØÔ,¨T°5Ó9¸5×;KÑ;Kõ	
r½   c                ó’  — t        |j                  «      st        |«      ry | j                  rdt        |«      x}r%| j                  j
                  j                  |«       t        |«      x}r%| j                  j                  j                  |«       | j                  |«      }| j                  |j                  «      }t        |j                  «      st        |«      ry ||f}|| j                  v ry | j                  j                  ||f«       | j                  j                  ||f«       |› d|› �g}| j                  ||«       t        j                  r2|d   }t!        ||«      d   }	| j"                  j%                  ||	f«       y t'        | j)                  |«      | j+                  |«      t!        ||«      |j,                  «       y )Nú is r   )r1   rÝ  r   r,   rž  Úadditional_used_local_varsrõ   r+   Úadditional_used_global_varsrN  rã  r0   r§  r]  rQ   Ú#use_lamba_guard_for_object_aliasingrà  r¨  rw  r    r°  r  rÑ  )
rÄ   rM  Úsource_brã  Úref_aÚref_br  r·   rz  ry  s
             r»   ÚDUPLICATE_INPUTzGuardBuilder.DUPLICATE_INPUTF  s�  € ä$Ø×$Ñ$ô
ä& xÔ0Øà×ÒÜ,¨XÓ6Ð6ˆtÐ6Ø×%Ñ%×@Ñ@×DÑDÀTÔJÜ-¨hÓ7Ð7ˆtÐ7Ø×%Ñ%×AÑA×EÑEÀdÔKà—‘˜UÓ#ˆØ—‘˜XŸ]™]Ó+ˆä#Ø×$Ñ$ô
ä% hÔ/Øð �eˆnˆØ�$×5Ñ5Ñ5Øà×+Ñ+×/Ñ/°¸°Ô?Ø×+Ñ+×/Ñ/°¸°Ô?à�'˜˜e˜WÐ%Ð&ˆØ×#Ñ# E¨4Ô0ä×5Ò5ð ˜Q™ˆIÜ 6°yÀ%Ó HÈÑ KÐØ×,Ñ,×3Ñ3°YÐ@QÐ4RÕSä)Ø×&Ñ& uÓ-Ø×2Ñ2°8Ó<Ü& t¨UÓ3Ø× Ñ õ	r½   c                 ó   — y rÚ   r…  rN  s     r»   r¨  zGuardBuilder.<lambda>v  r   r½   c                ó
   — | d uS rÚ   r…  rS  s     r»   r¨  zGuardBuilder.<lambda>w  r±  r½   c                ó¼   — | j                  |«      › d�g}| j                  ||«       | j                  |«      j                  t	        ||«      |j
                  «       y r³  )rN  r]  r°  r´  rà  rÑ  ©rÄ   rM  r·   s      r»   ÚWEAKREF_ALIVEzGuardBuilder.WEAKREF_ALIVEu  sX   € ð
 —<‘< Ó&Ð' |Ð4Ð5ˆà×#Ñ# E¨4Ô0Ø×Ñ˜uÓ%×8Ñ8Ü" 4¨Ó/°×1AÑ1Aõ	
r½   c                ó4   — t        |j                  «       «      S rÚ   ©rÛ  rÔ  rN  s     r»   r¨  zGuardBuilder.<lambda>‚  s   € ¬T°%·*±*³,Ó-?€ r½   c                ó:   — t        | j                  «       «      |k(  S rÚ   rƒ  rS  s     r»   r¨  zGuardBuilder.<lambda>ƒ  s   € ¬¨U¯Z©Z«\Ó(:¸hÑ(F€ r½   c           	     ó$  — | j                  |«      }| j                  |«      }g }|j                  d|› dt        |j	                  «       «      › �«       | j                  ||«       | j                  |«      j                  |||j                  «       y)z7Guard on the key order of types.MappingProxyType objectzlist(z.keys()) == N)	rN  r¥  rw  rÛ  rÔ  r]  r°  Úadd_mapping_keys_guardrÑ  rZ  s        r»   ÚMAPPING_KEYS_CHECKzGuardBuilder.MAPPING_KEYS_CHECK�  s   € ð �l‰l˜5Ó!ˆØ—‘˜“ˆàˆØ�‰�e˜C˜5 ¬T°%·*±*³,Ó-?Ð,@ÐAÔBØ×#Ñ# E¨4Ô0Ø×Ñ˜uÓ%×<Ñ<Ø�4˜×)Ñ)õ	
r½   c                ó>   — t        t        j                  |«      «      S rÚ   ©rÛ  r!  rÔ  rN  s     r»   r¨  zGuardBuilder.<lambda>’  s   € ¬T´$·)±)¸EÓ2BÓ-C€ r½   c                óD   — t        t        j                  | «      «      |k(  S rÚ   r‰  rS  s     r»   r¨  zGuardBuilder.<lambda>“  s   € ¬¬T¯Y©Y°uÓ-=Ó(>À(Ñ(J€ r½   c           
     óÔ  — | j                  |«      }| j                  |«      }|t        j                  j                  j
                  u r| j                  |«       y| j                  |«       g }|j                  d|› dt        t        |«      «      ›�«       | j                  ||«       | j                  |j                  «      r| j                  ||«       y| j                  ||«       y)z6Insert guard to check that the keys of a dict are sameNr  z)) == )rN  r¥  r.  rÅ  rK   ÚSUPPORTED_NODESrz  r[  rw  rÛ  r‰   r]  rè  rÝ  r»  rµ  rZ  s        r»   ÚDICT_KEYS_MATCHzGuardBuilder.DICT_KEYS_MATCH‘  sÆ   € ð �l‰l˜5Ó!ˆØ—‘˜“ˆà”E—K‘K×'Ñ'×7Ñ7Ñ7à×Ñ˜eÔ$Øà×Ñ˜UÔ#àˆð
 	�‰�o c U¨&´Ô6GÈÓ6NÓ1OÐ0RÐSÔTØ×#Ñ# E¨4Ô0à×+Ñ+¨E×,DÑ,DÔEØ×-Ñ-¨e°UÕ;à×4Ñ4°U¸EÕBr½   c                 ó   — y rÚ   r…  rN  s     r»   r¨  zGuardBuilder.<lambda>¯  r   r½   c                ó   — t        | «      dk(  S rï   rU  rS  s     r»   r¨  zGuardBuilder.<lambda>°  s   € ¬¨E«
°a©€ r½   c                óH   — t         j                  ry| j                  |«       y)z\Special guard to skip guards on empty hooks. This is controlled by skip_nnmodule_hook_guardsN)rQ   Úskip_nnmodule_hook_guardsr[  r3  s     r»   ÚEMPTY_NN_MODULE_HOOKS_DICTz'GuardBuilder.EMPTY_NN_MODULE_HOOKS_DICT®  s   € ô ×+Ò+àØ×Ñ˜UÕ#r½   c                 ó   — y rÚ   r…  r3  s     r»   Ú	GRAD_MODEzGuardBuilder.GRAD_MODEº  ó   € àr½   c                 ó   — y rÚ   r…  r3  s     r»   ÚDETERMINISTIC_ALGORITHMSz%GuardBuilder.DETERMINISTIC_ALGORITHMS¿  r•  r½   c                 ó   — y rÚ   r…  r3  s     r»   ÚFSDP_TRAINING_STATEz GuardBuilder.FSDP_TRAINING_STATEÄ  r•  r½   c                ó$  — | j                   j                  }|€J ‚|j                  }|| j                   _        d| j                   j                  j	                  «       › �g}| j
                  j                  j                  |||j                  «       y )Nz ___check_global_state() against )	rž  r£  Úglobal_state_guardÚglobal_stateÚ__getstate__rV  rÛ   Úadd_global_state_guardrÑ  )rÄ   rM  r£  rœ  r·   s        r»   ÚGLOBAL_STATEzGuardBuilder.GLOBAL_STATEÉ  sŠ   € à×,Ñ,×9Ñ9ˆØÐ'Ð'Ð'Ø#×6Ñ6ˆØ-9ˆ×ÑÔ*ð /¨t×/DÑ/D×/QÑ/Q×/^Ñ/^Ó/`Ð.aÐbð
ˆð 	×Ñ×Ñ×6Ñ6Ø˜$ × 0Ñ 0õ	
r½   c                ó  — | j                   j                  €J ‚t        | j                   j                  «      | j                   _        | j                  j
                  j                  | j                   j                  dg|j                  «       y )Nz$___check_torch_function_mode_stack())rž  Útorch_function_mode_stackÚ$make_torch_function_mode_stack_guardÚ"torch_function_mode_stack_check_fnrV  rÛ   Ú#add_torch_function_mode_stack_guardrÑ  r3  s     r»   ÚTORCH_FUNCTION_STATEz!GuardBuilder.TORCH_FUNCTION_STATEÙ  sy   € à×$Ñ$×>Ñ>ÐJÐJÐJä0Ø×%Ñ%×?Ñ?óð 	×ÑÔ@ð
 	×Ñ×Ñ×CÑCØ×!Ñ!×;Ñ;Ø3Ð4Ø×Ñõ	
r½   c                óF  — |j                   t        j                  u sJ ‚| j                  j                  €J ‚d| j                  j                  j
                  ›�g}| j                  ||«       | j                  |«      j                  t        ||«      |j                  «       y)z/Guard on CURRENT_DEVICE per torch.utils._deviceNzutils_device.CURRENT_DEVICE == )rX  r=   ÚGLOBALrž  r£  Úcurrent_devicer]  r°  Úadd_default_device_guardrà  rÑ  r€  s      r»   ÚDEFAULT_DEVICEzGuardBuilder.DEFAULT_DEVICEè  s•   € ð �|‰|œ{×1Ñ1Ñ1Ð1Ð1à×$Ñ$×1Ñ1Ð=Ð=Ð=à-¨d×.CÑ.C×.PÑ.P×._Ñ._Ð-bÐcð
ˆð 	×#Ñ# E¨4Ô0à×Ñ˜uÓ%×>Ñ>Ü" 4¨Ó/°×1AÑ1Aõ	
r½   c                ó°  ‡ ‡%‡&‡'‡(— ddl m} |j                  dk(  sJ ‚‰ j                  j                  Š(‰(€J ‚‰ j                  j
                  �T‰ j                  j
                  }|j                  }|j                  }|j                  �|j                  }|j                  }�ntt        ‰(|«      sJ ‚‰(j                  €J ‚‰(j                  j                  xs g Š&‰&D �cg c]  }|j                  ‘Œ c}Š'dˆ(fd„}	‰(j                  r³i }
g }g }i }t        «       }‰(j                  D ]j  }|j                   ‰(j"                  v r;t$        j&                  j(                  j+                  ||	‰(j                  |
||||«       ŒVt,        j/                  d«       Œl t1        ||t3        |j5                  «       «      |d¬«      Š%nd Š%dˆ%ˆ&ˆ'ˆ(ˆ fd„}t6        j8                  r	  |d	«      \  }}}d}nd
} |d«      \  }}‰(j&                  s‰(j                  j=                  «        ‰ j>                  rstA        «       jC                  d«      }|�t        |tD        «      sJ ‚|€g n"t3        |jF                  jI                  «       «      }tK        |||||¬«      ‰ j                  _        |jL                  D ]  }‰ jO                  ||g«       Œ tQ        jR                  «       x}r%|jT                  jW                  |jL                  «       g }g }|s·sJ ‚|jL                  |jF                  }}|sy |jY                  «       D ]…  \  }}t        |tZ        «      rd
}Œ‰ jC                  |i t\        ¥t_        «       ¥¬«      }t        |t`        «      r|jc                  ||f«       Œ`t        |td        «      r|jc                  ||f«       Œ„d
}Œ‡ |�sŠdd l3}ddl4m5} sJ ‚|jL                  |jF                  }}tm        ||z   «      }	 to        |«      D ��cg c]   \  }}‰ jq                  ts        ||«      «      ‘Œ" }}}dju                  d„ to        |«      D «       «      } dju                  d„ to        |«      D «       «      }!| rd| › d�} |!rd|!› d�}!tw        jx                  d| › d|!› ddju                  |«      › d�«      }"tz        j}                  d|"|jL                  «       |j                  |"«      }#|j�                  |#j‚                  |j„                  «      j†                  }$|$sJ ‚	 t‰        |t‹        |«      t‹        |«      |$|#|jL                  |jŒ                  «       y |jL                  r9‰ j•                  |jL                  |jL                  i t\        ¥t_        «       ¥¬«       y y c c}w # t:        $ r d
} |d«      \  }}Y �Œ²w xY wc c}}w # t$        jŽ                  j�                  j’                  $ r Y Œ—w xY w)Nr   ©r¢   rg  c                óz   •— ‰j                   |    D �cg c]  }t        |t        j                  |«      ‘Œ c}S c c}w rÚ   )Útracked_fakes_id_to_sourcer4   r3   ÚSIZE)Út_idrì  rX  r£  s      €r»   Úget_sourcesz+GuardBuilder.SHAPE_ENV.<locals>.get_sources  sA   ø€ ð #/×"IÑ"IÈ$Ñ"Oöð ô )¨´×1DÑ1DÀcÕJòð ùò s   “"8z+Untracked tensor used in export constraintsF)Úsource_pairsÚderived_equalitiesÚphantom_symbolsÚrelaxed_sourcesÚ	warn_onlyc           	     óæ   •— ‰j                   j                  ‰D �cg c]  }|j                  ‘Œ c}‰D �cg c]  }|j                  ‘Œ c}‰‰‰j                  ‰j
                   | ¬«      S c c}w c c}w )N)Úinput_contextsÚequalities_inputsr�  Úignore_staticÚlangs)Ú	shape_envÚproduce_guards_verboseÚfakerX  r�  Úexport)r»  r�  r¹  r×  r¸  r£  rÄ   s     €€€€€r»   Ú_get_code_partsz/GuardBuilder.SHAPE_ENV.<locals>._get_code_parts9  sj   ø€ à#×-Ñ-×DÑDØ%'Ö( �Q—V“VÒ(Ø')Ö* !�Q—X“XÒ*Ø#1Ø&7Ø#Ÿ™ð (4×':Ñ':Ð#:Øð Eó 
ð 
ùÚ(ùÚ*s
   ›A)´A.
)ÚpythonÚverbose_pythonÚcppT)rÁ  rÂ  Úcpp_code_parts)Úpython_code_partsrà   rÄ  Úpython_fallbackÚshape_env_sources)rÝ   )ÚCppCodeCacherS  c              3  ó8   K  — | ]  \  }\  }}|› d |› d�–— Œ y­w)z = int_values[r  Nr…  ©r  Úirˆ  Úsymbols       r»   r  z)GuardBuilder.SHAPE_ENV.<locals>.<genexpr>®  s-   è ø€ ò ,á&˜™;˜A˜vð �h˜n¨Q¨C¨qÔ1ñ,ùó   ‚c              3  ó8   K  — | ]  \  }\  }}|› d |› d�–— Œ y­w)z = float_values[r  Nr…  rÊ  s       r»   r  z)GuardBuilder.SHAPE_ENV.<locals>.<genexpr>²  s.   è ø€ ò .á&˜™;˜A˜vð �hÐ.¨q¨c°Ô3ñ.ùrÍ  zint64_t ú;zdouble aä  
                #include <algorithm>
                #include <cstdint>
                #include <cmath>
                #include <c10/util/generic_math.h>

                #if defined(_MSC_VER)
                #  define EXTERN_DLL_EXPORT extern "C" __declspec(dllexport)
                #else
                #  define EXTERN_DLL_EXPORT extern "C"
                #endif

                EXTERN_DLL_EXPORT int8_t guard(int64_t *int_values, double *float_values) {
                  z
                  z
                  return (z) && (z%);
                }
                zC++ shape guard function: %s %s)r°  r!  rì  r!  rÍ   úlist[Source])r»  útuple[str, ...]rÍ   zlist[_ShapeGuardsHelper])KÚtorch._dynamo.output_graphr¢   rã  rž  r£  Úshape_code_partsrÅ  rà   rÄ  rÆ  rþ   r¼  Útracked_fakesÚsymbolic_contextÚexport_constraintsrç   r°  r®  r.  r¿  Údynamic_shapesÚ_process_equalitiesrK  rL  rH   rÛ  r#  rQ   Ú enable_cpp_symbolic_shape_guardsÚOverflowErrorÚfreezer   Úlocalsr¥  rF   Úsource_to_symbolrÔ  ÚShapeCodePartsÚexprsr]  r7   Útry_getÚshape_env_guardsr"  rô   r]   rJ   rÈ  r!  rw  rÂ  ÚctypesÚtorch._inductor.codecacherÈ  r!  r·  r  r-   r6  ÚtextwrapÚdedentr8  r9  ÚloadÚcastrM  Úc_void_pr÷  r"   rµ   rÑ  Ú	_inductorrS   ÚInvalidCxxCompilerrB  ))rÄ   rM  r¢   rÓ  rÅ  rà   rÄ  rÆ  r�  r±  Únamesr²  r³  r´  rµ  Ú
constraintrÀ  Úmaybe_cpp_code_partsÚmaybe_shape_env_sourcesr·   Úcompile_contextÚint_source_to_symbolÚfloat_source_to_symbolrß   rÝ  rX  rÌ  r  râ  rÈ  rË  Úguard_managersÚint_symbols_strÚfloat_symbols_strÚfunc_strÚclibÚcguardr¹  r×  r¸  r£  s)   `                                    @@@@r»   Ú	SHAPE_ENVzGuardBuilder.SHAPE_ENV÷  sB  ü€ å@à�z‰z˜RÒÐÐØ×,Ñ,×9Ñ9ˆØÐ'Ð'Ð'Ø× Ñ ×1Ñ1Ð=Ø#×4Ñ4×EÑEÐØ 0× BÑ BÐØ!1×!DÑ!DÐØ×.Ñ.Ð:Ø!1×!@Ñ!@�Ø.×>Ñ>ŠOô ˜lÐ,=Ô>Ð>Ð>Ø×)Ñ)Ð5Ð5Ð5Ø×'Ñ'×5Ñ5Ò;¸ˆBØ:<Ö=°Q˜a×0Ó0Ò=ˆNõð ×.Ò.Ø46�Ø<>�ð ð #ð 68�Ü/2«u�Ø".×"AÑ"Aò S�JØ!—‘¨,×*QÑ*QÑQÜŸ™×3Ñ3×GÑGØ&Ø'Ø(×2Ñ2Ø!Ø(Ø.Ø+Ø+õ	ô Ÿ™Ð$QÕRðSô %7Ø!-Ø'9Ü$(¨×)?Ñ)?Ó)AÓ$BØ$3Ø#ô%Ñ!ð %)Ð!÷ñ ô ×6Ò6ðñ (Ð(KÓLñ JÐ%Ð'9¸>ð ',‘Oð #'�Ù8GØ0ó9Ñ5Ð!Ð#5ð  ×&Ò&Ø×&Ñ&×-Ñ-Ô/à×Òô $*£8§<¡<Ð0@Ó#AÐ Ø'Ð/´:Ø$Ô&;ô4ð ð ð
 (Ð/ñ äÐ.×?Ñ?×DÑDÓFÓGð $ô
 6DØ"3Ø#5Ø3Ø /Ø"9ô6ˆD×!Ñ!Ô2ð &×+Ñ+ò 	7ˆDØ×'Ñ'¨°¨vÕ6ð	7ô -×4Ñ4Ó6Ð6ˆ?Ð6Ø×,Ñ,×3Ñ3Ð4F×4LÑ4LÔMà!ÐØ!#ÐáÙ!Ð!�>ð ×$Ñ$à×/Ñ/ð	 )ˆJñ Øà"2×"8Ñ"8Ó":ò /‘�˜Ü˜f¤nÔ5Ø&*‘Oà$(§H¡HØØ%L¬Ð%LÔ8IÓ8KÐ%Lð %-ó %�Mô " -´Ô5Ø,×3Ñ3°V¸VÐ4DÕEÜ# M´5Ô9Ø.×5Ñ5°v¸vÐ6FÕGð +/™ð/ò" Ûå>á!Ð!�>ð ×$Ñ$à×/Ñ/ð	 )ˆJô  $Ð$8Ð;QÑ$QÓRÐð=ô &/Ð/?Ó%@÷"á!˜˜6ð ×6Ñ6´}ÀVÈQÓ7OÕPð"�ñ "ð
 #'§)¡)ñ ,ä*3Ð4HÓ*Iô,ó #�ð %)§I¡Iñ .ä*3Ð4JÓ*Kô.ó %Ð!ñ
 #Ø(0°Ð0AÀÐ&C�OÙ$Ø*1Ð2CÐ1DÀAÐ(FÐ%ä#Ÿ?™?ðð #Ð#ð $Ø$Ð%ð &Ø#Ÿ=™=¨Ó4Ð5ð 6ðó�ô( × Ñ Ø5ØØ&×,Ñ,ôð
 $×(Ñ(¨Ó2�ØŸ™ T§Z¡Z°·±ÓA×GÑG�Ù�‘vô
 -Ø"ÜÐ,Ó-ÜÐ.Ó/ØØØ&×,Ñ,Ø×$Ñ$ôð ð
 ×"Ò"Ø×5Ñ5Ø!×'Ñ'Ø"×(Ñ(ØD¤ÐDÔ0AÓ0CÐDð 6õ ð #ùò{ >øôB %ò à&*�OÙ<KØ4ó=Ñ9Ð%Ó'9ðüóv"øô^ —?‘?×&Ñ&×9Ñ9ò áðús=   ÃVÇV Ï(V+ Ï6%V%ÐC)V+ ÖV"Ö!V"Ö%V+ Ö+'W×Wc                ó   — t        |«      S rÚ   )rA  rN  s     r»   r¨  zGuardBuilder.<lambda>ò  s   € Ô-DÀUÓ-K€ r½   c                óV   — t        | t        j                  «      xr t        | «      |k(  S rÚ   )rþ   r.  r/  rA  rS  s     r»   r¨  zGuardBuilder.<lambda>ó  s'   € Ü�uœeŸl™lÓ+ò ;Ü'¨Ó.°(Ñ:ð r½   c                ó*  — t         j                  r|j                  «       ry t        |«      r| j	                  |«       y t        |t        «      r |«       }|�|n| j                  |«      }t        |«      }t        j                  j                  |«      }t        |t        j                  j                  «      r0|j                  �|j                  }|j                  �|j                  }t        |t        j                   «      sJ ‚t         j"                  rŒt        |t        j$                  j&                  «      rht)        «       }|j+                  «       rN|j-                  d|j/                  «       «       |j-                  d|j0                  «       |j-                  dd«       | j3                  |«      }g }| j4                  j6                  €J ‚| j4                  j6                  j8                  r¾| j;                  |«       g d¢}|D ]¢  }	t=        |j>                  |	«      }
|	dk(  rd}	tA        |
«      }
| j                  |
«      }tC        |t        jD                  t        jF                  f«      r$|jI                  d|› d	|	› d
tK        |«      ›�«       ŒŠ|jI                  |› d	|	› d|› �«       Œ¤ �n†| jM                  |«      }t         jN                  r9tC        |t        j$                  j&                  «      setQ        |j>                  «      sPt        |j>                  tR        «      s6| jT                  jI                  |«       | jV                  jI                  |«       | j4                  j6                  }|jX                  |j>                     }t[        |d   «      }t[        |d   «      }t]        t_        ||||||«      |«      }|j`                  }|jc                  ||||||||«       t        |t        j$                  j&                  «      s/| jd                  jf                  ji                  |jj                  «       |jl                  €J ‚to        |d|j>                  ¬«      \  }}|�s—tq        |d«      r`|jr                  }d|› d|› d|› d�}|jI                  |«       | jM                  |«      ju                  |t]        ||«      |j`                  «       nMd|› d�}|jI                  |«       | jM                  |«      jw                  dt]        ||«      |j`                  «       tq        |d«      rcty        |dd «      }d|› d|›d|› d�}|jI                  |«       | jM                  |«      j{                  |fd„t]        ||«      |j`                  «       tq        |d«      rcty        |dd «      }d|› d|›d|› d�}|jI                  |«       | jM                  |«      j{                  |fd „t]        ||«      |j`                  «       t}        |«      d!kD  r| j                  ||«       y y )"NÚparam_numelÚparam_bytesÚparam_countrP   )rõ  rº  rö  Ú
ndimensionrÿ  zndimension()zstr(rŠ  rw  r   Úsizer@  T)Ú	is_tensorÚtensor_sourceÚ_dynamo_dynamic_indicesz((z"._dynamo_dynamic_indices.issubset(z)) if hasattr(z', '_dynamo_dynamic_indices') else True)r[  z%, '_dynamo_dynamic_indices') == FalseÚ_dynamo_unbacked_indicesÚ_dynamo_shape_idsz
((getattr(z , '_dynamo_shape_ids', None) == z) if hasattr(z(, '_dynamo_unbacked_indices') else True)c                ó>   — t        | d«      rt        | dd «      |k(  S dS )Nr  r  T©ri  r  rò  s     r»   r¨  z+GuardBuilder.TENSOR_MATCH.<locals>.<lambda>Á  s0   € ä& qÐ*DÔEô $ AÐ':¸DÓAÀXÑMð ð "&ð r½   Ú_dynamo_unbacked_boundsz&, '_dynamo_unbacked_bounds', None) == c                ó>   — t        | d«      rt        | dd «      |k(  S dS )Nr  r  Tr  rò  s     r»   r¨  z+GuardBuilder.TENSOR_MATCH.<locals>.<lambda>Ô  s0   € ä& qÐ*DÔEô $ AÐ'@À$ÓGÈ8ÑSð ð "&ð r½   r   )@rQ   Ú_unsafe_skip_fsdp_module_guardsÚis_fsdp_moduler1  rª  rþ   rO   r¥  r>  r.  rò  Ú_dispatch_keysrp  rq  rú  rû  r/  Úlog_compilation_metricsr2  Ú	Parameterr6   Úin_progressÚ	incrementÚnumelÚnbytesrN  rž  r£  r¿  ru  rV   rÝ  rW   r‘   rº  rõ  rw  rÎ   r°  Ú,skip_no_tensor_aliasing_guards_on_parametersr2   rt   rœ  r�  Úinput_source_to_sizes_stridesrð  rà  rÿ  rÑ  Úadd_tensor_match_guardrV  ré   rõ   rã  rX  r—   ri  r  Úadd_dynamic_indices_guardr^  r  r<  rµ   r]  )rÄ   rM  r÷  rú  rû  Úmetrics_contextÚtensor_namer·   ÚtermsÚtermÚterm_srcÚ
real_valuerV  r£  rE  r   r@  rà   rÑ  ÚstaticÚ_reasonÚdynamic_indicesrz  Ú	shape_idsÚunbacked_boundss                            r»   ÚTENSOR_MATCHzGuardBuilder.TENSOR_MATCHñ  s¹  € ô ×1Ò1°e×6JÑ6JÔ6LØô " %Ô(Ø�M‰M˜%Õ ä˜%¤Ô/Ù›�à"Ð.‘E°D·H±H¸U³OˆEä˜%“[ˆFÜ!ŸH™H×3Ñ3°EÓ:ˆMÜ˜%¤×!2Ñ!2×!=Ñ!=Ô>Ø—<‘<Ð+Ø"Ÿ\™\�FØ×&Ñ&Ð2Ø$)×$7Ñ$7�Mä˜e¤U§\¡\Ô2Ð2Ð2ä×-Ò-´*¸UÄEÇHÁH×DVÑDVÔ2WÜ"5Ó"7�Ø"×.Ñ.Ô0Ø#×-Ñ-¨m¸U¿[¹[»]ÔKØ#×-Ñ-¨m¸U¿\¹\ÔJØ#×-Ñ-¨m¸QÔ?àŸ,™, uÓ-ˆKð, !ˆDØ×(Ñ(×5Ñ5ÐAÐAÐAØ×$Ñ$×1Ñ1×8Ò8Ø—‘ Ô&ò�ð "ò 
M�DÜ)¨%×*BÑ*BÀDÓI�HØ˜|Ò+Ø-˜Ü#;¸HÓ#E˜Ø!%§¡¨(Ó!3�JÜ˜j¬5¯<©<¼¿¹Ð*EÔFàŸ™ d¨;¨-°q¸¸¸eÄCÈ
ÃOÐCVÐ$WÕXàŸ™ { m°1°T°F¸$¸z¸lÐ$KÕLò
Mð !%× 6Ñ 6°uÓ =�ô ×GÒGä˜u¤e§h¡h×&8Ñ&8Ô9ÜIØ!×4Ñ4ôô % U×%=Ñ%=Ô?PÔQð ×1Ñ1×8Ñ8¸ÔEØ×:Ñ:×AÑAÀ-ÔPà#×4Ñ4×AÑA�Ø'×EÑEØ×,Ñ,ñ�ô 2°(¸6Ñ2BÓC�Ü3°H¸XÑ4FÓG�ä%;Ü.ØØ#ØØØØ%óð ó
&Ð"ð #×-Ñ-�
Ø×4Ñ4ØØØØØ&ØØØ!ô	ô " %¬¯©×);Ñ);Ô<Ø×&Ñ&×9Ñ9×=Ñ=¸e¿j¹jÔIð< —<‘<Ð+Ð+Ð+Ü<Ø °U×5MÑ5Mô‰OˆF�Gò Ü˜5Ð";Ô<Ø&+×&CÑ&C�OØ"$ [ MÐ1SÐTcÐSdÐdrÐs~Ðrð  @gð  !h�IØ—K‘K 	Ô*Ø×*Ñ*¨5Ó1×KÑKØ'Ü.¨y¸%Ó@Ø×(Ñ(õð # ; -Ð/TÐUð ð —K‘K 	Ô*Ø×*Ñ*¨5Ó1×FÑFØ1Ü.¨y¸%Ó@Ø×(Ñ(ôô ˜5Ð"<Ô=Ü '¨Ð/BÀDÓ I�IØ",¨[¨MÐ9YÐZcÐYfÐfsÐtð  tAð  Aið  !j�IØ—K‘K 	Ô*Ø×*Ñ*¨5Ó1×BÑBØ+4ò ô
 /¨y¸%Ó@Ø×(Ñ(ôô ˜5Ð"<Ô=Ü&-¨eÐ5NÐPTÓ&U�OØ",¨[¨MÐ9_Ð`oÐ_rÐrð  ALð  @Mð  Muð  !v�IØ—K‘K 	Ô*Ø×*Ñ*¨5Ó1×BÑBØ+:ò ô
 /¨y¸%Ó@Ø×(Ñ(ôô �4‹y˜1Š}Ø×+Ñ+¨E°4Õ8ð r½   c                ó8  — t        «       }|€J ‚|j                  }~|€J ‚|xs |j                  j                  }~|| j                  j
                  v s
J d|› �«       ‚|€"|j                  }|sd n| j                  |«      }	n|}	|	�t        j                  t        |	«      «      nd }
d }t        |	j                  dd«      dk7  }|rDt        |	t        j                  t        t        j                   f«      st        j                  |	«      }|j#                  ||
||«       y )NzH_produce_guard_code must be called from inside GuardedCode. Called from Ú__weakrefoffset__r   )r   Úf_backr�  Úco_namerË   r•  rã  r¥  Úweakrefr_  r>  r  rþ   ÚenumÚEnumr<  Ú
ProxyTypesÚset_export_info)rÄ   rM  r4  r\  r¬  Ú	cur_frameÚcallerÚ	func_namerã  Úguarded_objectÚguarded_object_typeÚobj_refÚsupports_weakrefs                r»   r]  z#GuardBuilder._set_guard_export_infoã  s-  € ô !“Nˆ	ØÐ$Ð$Ð$Ø×!Ñ!ˆØØÐ!Ð!Ð!Ø&Ò?¨&¯-©-×*?Ñ*?ˆ	Øà˜DŸN™N×3Ñ3Ñ3ð 	
ØVÐW`ÐVaÐbó	
Ð3ð
 #Ð*Ø—:‘:ˆDÙ)-™T°4·8±8¸E³?‰Nà4ˆNð 2@Ð1KŒG�K‰Kœ˜^Ó,Ô-ÐQUð 	ð ˆô �N×,Ñ,Ð.AÀ1ÓEÈÑJð 	ñ ¤JØœTŸY™Y¬¬w×/AÑ/AÐBô%
ô —k‘k .Ó1ˆGà×ÑØØØØõ		
r½   )FNN)r�  útypes.CodeTyperŽ  zCallable[[object, str], int]r�  zCallable[[Source], str]r�  z.Callable[[object], weakref.ref[object] | None]r«  údict[str, object]rá   r4  rV  rØ   rž  ÚCheckFunctionManagerr   rÐ   r“  rœ  r¡  ú=Callable[[Sequence[GuardFilterEntry]], Sequence[bool]] | NonerÍ   rÑ   )r  údict[Any, Any]rM  r:   rÍ   rÑ   )r÷  r7  rM  r:   rÍ   rÑ   )r  r   rÍ   ú
Any | None)rX  rV   r&  r   r'  r   r  r   r(  rÎ   rÈ  rÎ   r  r  rÍ   r   )rX  r>   rÍ   rÐ   )rX  r>   r  zAKeysView[Any] | set[Any] | frozenset[Any] | dict[Any, Any] | NonerÍ   r  )rì  r  rÍ   rÐ   )rÍ   r   )rX  r>   rÍ   r   )rM  r:   rÍ   r   r  )
rß   r~  rà   r~  rÝ   rœ  r=  rÐ   rÍ   rÑ   rÚ   )rE  zGuard | SourcerÝ   údict[str, Any] | NonerÍ   r   )rM  zstr | GuardrÍ   rÎ   )rM  r:   r×  rÎ   rV  z(Callable[[GuardBuilderBase, Guard], Any]rÍ   rÑ   )rM  r:   rÎ  r‚  rÍ   rÑ   )rM  r:   rÎ  r8  rÍ   rÑ   )rM  r:   rÍ   rÑ   )rM  r:   r  rÎ   rÍ   rÑ   )rM  r:   r  r   rÍ   rÑ   )rM  r:   rÞ  r‚  rÍ   rÑ   )rM  r:   r÷  r8  rÍ   rÑ   )rM  r:   ry  r>   rÍ   rÑ   )NN)
rM  r:   r4  r~  r\  r8  r¬  r‚  rÍ   rÑ   )MrÒ   rÓ   rÔ   rê   rµ  r»  r7  rÅ  rå  rè  r±  rí  rñ  r  r°  rB  r¥  rN  rS  rn  rb  ri  ru  r  rz  r„  r‰  r‘  r•  rž  r¤  rª  r©  rµ  r¼  rr  rÀ  rÌ  rÙ  rH  rL  rï  rO  rT  rõ  rX  rZ  rû  r$  r*  r4  r>  rB  rG  rL  r_  ra  rN  rS  r[  ra  rk  rs  r|  r�  r‡  r�  r’  r”  r—  r™  rŸ  r¥  rª  rø  r"  r]  r…  r½   r»   r�  r�  „  s”  „ ð "Ø9=àðLFàðLFð -ðLFð ,ð	LFð
 HðLFð 'ðLFð (ðLFð +ðLFð /ðLFð ðLFð 7ðLFððLFð 
óLFð\Ø+ðØ49ðà	óó<'ðR òó ðð"YàðYð )ðYð  ð	Yð
 ðYð ðYð ðYð -ðYð 
óYóv9ð"àð"ðð"ð 
ó"ó0?ó
ó\ó|Lð 26Ø ðYàðYð &ðYð /ð	Yð
 ðYð 
óYðP /3ðà'ðð ,ðð 
ó	ó&ð àðð ðð ;ð	ð
 
óñ$ ñ
ñ Sôó50óð50ñn ÙMÙFôð
 04ð0Øð0Ø",ð0à	ò0ó	ð0ñ8 Ù8Ù?ôò
ó	ð
ð8 "ò
ó "ð
ñ ÙLÙ9ôò0ó	ð0ñ  ÙLÙ=ôò0ó	ð0ñ  ÙLÙ9ôò0ó	ð0ñ$ ÙLÙ=ôò0ó	ð0ñ$ Ù2Ù9ôòó	ðñ" Ù1Ù5ôò

ó	ð

ñ Ù2Ù9ôó>ó	ð>ð :>ð%?Øð%?Ø,6ð%?à	ó%?ñN Ù1Ù9ôó	
ó	ð	
ñ Ù=ÙDôò

ó	ð

ð ò
ó ð
ð ò
ó ð
ð( ò
ó ð
ñ8 Ø1Ø'ôò#
ó	ð#
ñJ Ø,Ø"ôò
ó	ð
ñ Ø*Ø ôò
ó	ð
ñ& Ù2Ù9ôónó	ðnñ` Ù2Ù9ôò	%ó	ð	%ñ ÙQñôò

óð

ñ> Ù2Ù9ôòó	ðñ( Ù2Ù9ôò$ó	ð$ñ
 Ù2Ù9ôò'ó	ð'ñ Ù2Ù9ôò'ó	ð'ñ Ø'Øôò
'ó	ð
'ñ Ù2Ù9ôò.ó	ð.ñ Ù7Ù>ôòó	ðñ< ÙFÙMôò
ó	ð
ñ& ÙHÙOôò
ó	ð
ñ. ÙWñ
ôò
óð
ð* ò,ó ð,ñ\ Ù1Ù9ôò
ó	ð
ñ Ù?ÙFôò

ó	ð

ñ ÙCÙJôòCó	ðCñ2 Ù1Ù7ôò$ó	ð$ð òó ðð òó ðð òó ðð ò
ó ð
ð ò
ó ð
ð ò
ó ð
ð òwó ðwñr ÙKñ
ôóh9óðh9ð^ /3Ø)-ð1
àð1
ð ð1
ð ",ð	1
ð
 'ð1
ð 
ô1
r½   r�  c                  óþ   — e Zd ZdZej
                  ej                  ej                  fZe	j                   G d„ d«      «       Z G d„ dej                  «      Z G d„ dej                  «      Zdd„Zddd	„Zdd
„Zdd„Zy)ÚPyExprCSEPassrP   c                  ó"   — e Zd ZU ded<   ded<   y)úPyExprCSEPass.Configzdict[str, int]Ú
expr_countzdict[str, str]Úexpr_to_nameNr5  r…  r½   r»   ÚConfigr=  0  s   … à"Ó"Ø$Ô$r½   r@  c                  ó(   ‡ — e Zd Zdd„Zdˆ fd„Zˆ xZS )úPyExprCSEPass.ExprCounterc                ó   — || _         y rÚ   )Ú_config)rÄ   rQ   s     r»   rê   z"PyExprCSEPass.ExprCounter.__init__6  s	   € Ø!ˆD�Lr½   c                ó¬   •— t        |t        j                  «      r*| j                  j                  t        |«      xx   dz  cc<   t        ‰| �  |«       y r³   )rþ   r;  ÚALLOWED_NODE_TYPESrD  r>  rÎ  rÇ   rû   )rÄ   rö   rË   s     €r»   rû   zPyExprCSEPass.ExprCounter.visit9  s>   ø€ Ü˜$¤× @Ñ @ÔAØ—‘×'Ñ'¬°TÓ(:Ó;¸qÑ@Ó;Ü‰G‰M˜$Õr½   )rQ   r=  rÍ   rÑ   )rö   úast.ASTrÍ   rÑ   ©rÒ   rÓ   rÔ   rê   rû   rÕ   rÖ   s   @r»   ÚExprCounterrB  5  s   ø„ ó	"÷	 ñ 	 r½   rI  c                  ó8   ‡ — e Zd Z	 	 	 	 	 	 dˆ fd„Zdˆ fd„Zˆ xZS )úPyExprCSEPass.Replacerc                óL   •— t         ‰| �  «        || _        || _        g | _        y rÚ   )rÇ   rê   rD  Ú	_gen_nameÚpreface)rÄ   rQ   Úgen_namerË   s      €r»   rê   zPyExprCSEPass.Replacer.__init__?  s%   ø€ ô
 ‰GÑÔØ!ˆDŒLØ%ˆDŒNØ&(ˆD�Lr½   c                ó:  •— t        |t        j                  «      ròt        |«      }| j                  j
                  |   t        j                  kD  r½|| j                  j                  vrdt        ‰| �%  |«      }t        |«      }| j                  «       }| j                  j                  |› d|› �«       || j                  j                  |<   n| j                  j                  |   }t        j                  |t        j                  «       «      S t        ‰| �%  |«      S )Nz = )rþ   r;  rF  rÎ  rD  r>  ÚUSE_THRESHOLDr?  rÇ   rû   rM  rN  rw  rË  ÚNameÚLoad)rÄ   rö   ÚexprÚnode_Úexpr_r¸   rË   s         €r»   rû   zPyExprCSEPass.Replacer.visitI  sß   ø€ Ü˜$¤× @Ñ @ÔAÜ# DÓ)�ð —<‘<×*Ñ*¨4Ñ0´=×3NÑ3NÒNØ 4§<¡<×#<Ñ#<Ñ<ô !&¡¡¨dÓ 3˜Ü ,¨UÓ 3˜Ø#'§>¡>Ó#3˜ØŸ™×+Ñ+¨x¨j¸¸E¸7Ð,CÔDØ:B˜Ÿ™×1Ñ1°$Ò7à#'§<¡<×#<Ñ#<¸TÑ#B˜ÜŸ8™8 H¬c¯h©h«jÓ9Ð9ä‘7‘= Ó&Ð&r½   )rQ   r=  rO  zCallable[[], str]rÍ   rÑ   )rö   rG  rÍ   r   rH  rÖ   s   @r»   ÚReplacerrK  >  s.   ø„ ð	)à(ð	)ð (ð	)ð õ		)÷	'ñ 	'r½   rW  c                ój   — d| _         | j                  t        j                  d„ «      i ¬«      | _        y )Nr   c                  ó   — yrï   r…  r…  r½   r»   r¨  z(PyExprCSEPass.__init__.<locals>.<lambda>f  r   r½   )r>  r?  )Ú_counterr@  r½  ÚdefaultdictrD  rÃ   s    r»   rê   zPyExprCSEPass.__init__c  s.   € ØˆŒØ—{‘{Ü"×.Ñ.©yÓ9Èð #ó 
ˆ�r½   c                óP   — |› | j                   › �}| xj                   dz  c_         |S r³   )rZ  )rÄ   rÅ   rã  s      r»   Ú_new_varzPyExprCSEPass._new_vari  s'   € Ø�˜$Ÿ-™-˜Ð)ˆØ�Š˜Ñ�Øˆr½   c                óø   — | j                  | j                  «      }|D ]'  }	 |j                  t        j                  |«      «       Œ) y # t
        $ r'}t        j                  d|j                  |«       ‚ d }~ww xY w)Nz#Failed to visit expr at line %s.
%s)	rI  rD  rû   rË  ÚparseÚSyntaxErrorrK  Ú	exceptionÚlineno)rÄ   rß  ÚcounterÚeÚexs        r»   ÚcountzPyExprCSEPass.countn  si   € Ø×"Ñ" 4§<¡<Ó0ˆØò 	ˆAðØ—‘œcŸi™i¨›lÕ+ñ	øô ò Ü—‘ÐDÀbÇiÁiÐQRÔSØûðús   ¢$A	Á		A9Á"A4Á4A9c                óÄ   — | j                  | j                  | j                  «      }|j                  t	        j
                  |«      «      }|j                  t        |«      fS rÚ   )rW  rD  r]  rû   rË  r_  rN  rÎ  )rÄ   rT  ÚreplacerÚnew_nodes       r»   rÍ  zPyExprCSEPass.replacew  sF   € Ø—=‘= §¡¨t¯}©}Ó=ˆØ—>‘>¤#§)¡)¨D£/Ó2ˆØ×Ñ¤¨hÓ!7Ð7Ð7r½   Nr�  )Ú_var)rÅ   rÎ   rÍ   rÎ   )rß  r~  rÍ   rÑ   ©rT  rÎ   rÍ   ztuple[list[str], str])rÒ   rÓ   rÔ   rQ  rË  Ú	AttributeÚCallÚ	SubscriptrF  ÚdataclassesÚ	dataclassr@  ÚNodeVisitorrI  ÚNodeTransformerrW  rê   r]  rf  rÍ  r…  r½   r»   r;  r;  (  sx   „ ð €Mð Ÿ-™-¨¯©°3·=±=ÐAÐà×Ñ÷%ð %ó ð%ô �c—o‘oô  ô#'�3×&Ñ&ô #'óJ
ôó
ô8r½   r;  c                ó–   — t        | j                  t        «      xs. t        j                  xr | j
                  t        j                  u S rÚ   )rþ   rÝ  ra   rQ   Ú guard_nn_modules_using_dict_tagsrV  r�  r>  )rM  s    r»   Úmust_add_nn_module_guardsru  }  s@   € ô
 	�5×+Ñ+¬^Ó<ò 	
ô ×3Ñ3ò :Ø—‘¤<×#9Ñ#9Ð9ðr½   c                  ó(   ‡ — e Zd Zdˆ fd„Zdd„Zˆ xZS )ÚDeletedGuardManagerWrapperc                ó0   •— t         ‰| �  «        || _        y rÚ   )rÇ   rê   Úinvalidation_reason)rÄ   ÚreasonrË   s     €r»   rê   z#DeletedGuardManagerWrapper.__init__Œ  s   ø€ Ü‰ÑÔØ#)ˆÕ r½   c                ó   — d | _         y rÚ   )rÜ   rÃ   s    r»   r  z6DeletedGuardManagerWrapper.populate_diff_guard_manager�  s
   € Ø#ˆÕr½   )rz  rÎ   rÍ   rÑ   r�  )rÒ   rÓ   rÔ   rê   r  rÕ   rÖ   s   @r»   rw  rw  ‹  s   ø„ õ*÷$r½   rw  c                  ó@   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   y
)rÞ  rG   rÅ  rà   z_CppShapeGuardsHelper | NonerÄ  rÐ   rÆ  rÐ  rÇ  Nr5  r…  r½   r»   rÞ  rÞ  ”  s    … à)Ó)Ø*Ó*Ø0Ó0ØÓØ#Ô#r½   rÞ  c                  ó"   — e Zd ZU ded<   ded<   y)ÚGuardsStater£   r£  úShapeCodeParts | NonerÓ  Nr5  r…  r½   r»   r~  r~  �  s   … à(Ó(Ø+Ô+r½   r~  c                  ó.   — e Zd Zddd„Zdd„Zdd„Zd	d„Zy)
Ú_MissingNc                ó   — || _         y rÚ   ©r  )rÄ   rz  s     r»   rê   z_Missing.__init__¤  s	   € Øˆ�r½   c                ó"   — d| j                   › d�S ©Nz	_Missing(rT  rƒ  rÃ   s    r»   Ú__repr__z_Missing.__repr__§  ó   € Ø˜4Ÿ<™<˜.¨Ð*Ð*r½   c                ó"   — d| j                   › d�S r…  rƒ  rÃ   s    r»   rk  z_Missing.__str__ª  r‡  r½   c                ó   — t        «       S rÚ   )r�  )rÄ   rÞ   Úkwargss      r»   Ú__call__z_Missing.__call__¯  s
   € Ü‹zÐr½   rÚ   )rz  r‚  rÍ   rÑ   rÌ   )rÞ   r   rŠ  r   rÍ   r   )rÒ   rÓ   rÔ   rê   r†  rk  r‹  r…  r½   r»   r�  r�  £  s   „ ôó+ó+ô
r½   r�  c                 óÌ   — t         j                  j                  t        j                  f} 	 | t         j                  j
                  j                  fz  } | S # t        $ r Y | S w xY wrÚ   )r.  rò  r  r'  r   Ú_distributed_c10dÚProcessGroupÚAttributeError)rG  s    r»   Ú_get_unsupported_typesr�  ³  sa   € ô 	�‰�‰Ü×Ñð€CðØ”—‘×*Ñ*×7Ñ7Ð9Ñ9ˆð €Jøô ò ØØ€Jðús   ¬(A Á	A#Á"A#c                  ó  ‡ — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zedd„«       Ze	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Ze	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zedd„«       Zedd„«       Z	e	 	 	 	 dd„«       Z
e	 	 	 	 dd„«       Zedd	„«       Zedd
„«       Ze	 	 	 	 d d„«       Ze	 	 	 	 d!d„«       Zed"d„«       Zed#d„«       Zed$d„«       Zed%d„«       Zed&d„«       Ze	 	 	 	 	 	 d'd„«       Zed(d„«       Ze	 	 	 	 	 	 	 	 	 	 	 	 d)d„«       Z	 	 	 	 d*d„Zˆ xZS )+ÚGuardsStatePicklerc                óî   •— t        ‰| �  |i |¤Ž t        j                  j	                  «       | _        t        j                  j                  j                  «       | _        || _	        || _
        || _        y rÚ   )rÇ   rê   r.  rp  ÚFakeTensorModeÚ	fake_modeÚfake_tensorÚFakeTensorConverterÚtensor_converterrŸ  Úempty_valuesÚmissing_values)rÄ   rŸ  r™  rš  rÞ   rŠ  rË   s         €r»   rê   zGuardsStatePickler.__init__Â  sb   ø€ ô 	‰Ñ˜$Ð) &Ò)Ü×*Ñ*×9Ñ9Ó;ˆŒÜ %× 1Ñ 1× =Ñ =× QÑ QÓ SˆÔØ!2ˆÔØ(ˆÔØ,ˆÕr½   c                ód   — t         j                  j                  «       }|j                  |«       |S rÚ   )r.  r2  r3  Ú__setstate__)rF  ÚstateÚmods      r»   Ú_unpickle_modulez#GuardsStatePickler._unpickle_moduleÑ  s%   € ä�h‰h�o‰oÓˆØ×Ñ˜ÔØˆ
r½   c           	     ó  — t         j                  j                  «       }t         j                  j                  j	                  «       }|j                  ||||t         j                  j                  j                  |«      «      }||_	        |S rÚ   )
r.  rp  r”  r–  r—  Úfrom_meta_and_devicerò  r¡   Úfrom_raw_reprÚgrad)	rF  Úmeta_tensorrº  rú  Údispatch_keys_rawr£  r•  r˜  rG  s	            r»   Ú_unpickle_tensorz#GuardsStatePickler._unpickle_tensor×  sv   € ô ×%Ñ%×4Ñ4Ó6ˆ	Ü ×,Ñ,×8Ñ8×LÑLÓNÐØ×3Ñ3ØØØØÜ�H‰H×#Ñ#×1Ñ1Ð2CÓDó
ˆð ˆŒØˆ
r½   c                óø   — t        |«      }|j                  |j                  «       }	}t        |«      j	                  ||||	«      }
||
_        t        j                  j                  j                  |«      |
_
        |
S rÚ   )r!  r?  r@  r>  Ú__tensor_unflatten__rú  r.  rò  r¡   r¢  rû  )rF  r¤  rº  rú  r¥  ÚctxÚ
inner_dataÚinner_tensorsÚ
outer_sizeÚouter_strider.  s              r»   Ú$_unpickle_traceable_wrapper_subclassz7GuardsStatePickler._unpickle_traceable_wrapper_subclassì  sp   € ô ˜ZÓ(ˆà#.×#4Ñ#4°k×6HÑ6HÓ6J�Lˆ
Ü�;Ó×4Ñ4Ø˜3 
¨Ló
ˆð ˆŒ
Ü!ŸH™H×3Ñ3×AÑAÐBSÓTˆÔØˆ
r½   c                ó,   — t        j                  |«      S rÚ   )rÃ  rÄ  )rF  Úaliass     r»   Ú_unpickle_python_modulez*GuardsStatePickler._unpickle_python_module   s   € ä×&Ñ& uÓ-Ð-r½   c                óT   — t         j                  j                  j                  |«      S rÚ   )r.  rò  r¡   r¢  )rF  r¸  s     r»   Ú_unpickle_dispatch_key_setz-GuardsStatePickler._unpickle_dispatch_key_set  s   € ä�x‰x×&Ñ&×4Ñ4°XÓ>Ð>r½   c                óh   — t         j                  j                  j                  j	                  |«      S rÚ   )r.  rò  rÇ  ÚCInterpreterÚdeserialize)rF  Újsons     r»   Ú_unpickle_functorch_interpreterz2GuardsStatePickler._unpickle_functorch_interpreter  s%   € ô �x‰x×"Ñ"×/Ñ/×;Ñ;¸DÓAÐAr½   c                ó,   — t        j                  |«      S rÚ   )r4  ÚMappingProxyType)rF  Úds     r»   Ú_unpickle_mapping_proxyz*GuardsStatePickler._unpickle_mapping_proxy  s   € ô ×%Ñ% aÓ(Ð(r½   c                óH   — t         j                  |«      j                  «       S rÚ   )r!  ÚfromkeysrÔ  )rF  Úelemss     r»   Ú_unpickle_dict_keysz&GuardsStatePickler._unpickle_dict_keys  s   € ä�}‰}˜UÓ#×(Ñ(Ó*Ð*r½   c                ó.   — t        j                  ||«      S rÚ   )Ú	itertoolsrf  )rF  r  rj  s      r»   Ú_unpickle_count_iterz'GuardsStatePickler._unpickle_count_iter  s   € ä�‰˜t TÓ*Ð*r½   c                ó€   — t         j                  j                  j                  j                  j	                  «       |   S rÚ   )r.  r  ÚfsdpÚ_fully_shardÚget_cls_to_fsdp_cls)rF  Úoriginal_types     r»   Ú_unpickle_fsdp_module_typez-GuardsStatePickler._unpickle_fsdp_module_type  s5   € ô × Ñ ×%Ñ%×2Ñ2×?Ñ?×SÑSÓUØñ
ð 	
r½   c                óÄ   — t         j                  j                  j                  }|j	                  |«      }t         j                  j
                  j                  ||«       |S rÚ   )r.  r2  ÚparallelÚDistributedDataParallelÚ__new__r3  rœ  )rF  r�  ÚtyÚddps       r»   Ú_unpickle_ddp_modulez'GuardsStatePickler._unpickle_ddp_module$  sC   € ô �X‰X×Ñ×6Ñ6ˆØ�j‰j˜‹nˆÜ�‰�‰×$Ñ$ S¨%Ô0Øˆ
r½   c                óJ   — t        t        j                  j                  |«      S rÚ   )r  r.  Úopsrò  )rF  rã  s     r»   Ú_unpickle_c_opz!GuardsStatePickler._unpickle_c_op-  s   € ä”u—y‘y—|‘| TÓ*Ð*r½   c                ó^   — t        t        t        t        j                  |«      |«      |«      S rÚ   )r  r.  rÒ  )rF  Ú	namespaceÚopnameÚoverloadnames       r»   Ú_unpickle_opzGuardsStatePickler._unpickle_op1  s!   € ä”wœw¤u§y¡y°)Ó<¸fÓEÀ|ÓTÐTr½   c                ó.   — t        j                  ||«      S rÚ   )r4  r6  )rF  Úfuncrå  s      r»   Ú_unpickle_bound_methodz)GuardsStatePickler._unpickle_bound_method5  s   € ä×Ñ  dÓ+Ð+r½   c                ó^   — t        t        j                  j                  j                  | «      S rÚ   )r  r.  r2  Ú	attentionÚ
SDPBackend©rã  s    r»   Ú_unpickle_sdp_backendz(GuardsStatePickler._unpickle_sdp_backend9  s!   € ô ”u—x‘x×)Ñ)×4Ñ4°dÓ;Ð;r½   c                óJ   ‡— dˆfd„}|j                   €J ‚|j                   d   S )Nc                 ó   •— ‰ S rÚ   r…  )r`  s   €r»   rˆ  z,GuardsStatePickler._unpickle_cell.<locals>._@  s   ø€ ØˆJr½   r   )rÍ   r   )r®   )rF  r`  rˆ  s    ` r»   Ú_unpickle_cellz!GuardsStatePickler._unpickle_cell>  s)   ø€ õ	ð �}‰}Ð(Ð(Ð(Ø�}‰}˜QÑÐr½   c                ó.   — t        j                  ||«      S rÚ   )r½  Ú
namedtuple)rF  rã  Úfieldss      r»   Ú_unpickle_named_tuple_typez-GuardsStatePickler._unpickle_named_tuple_typeF  s   € ô
 ×%Ñ% d¨FÓ3Ð3r½   c                ó2   — ddl m}  |j                  |«      S )Nr   r¤   )Útorch._dynamo.packager¥   Úto_code_object)rF  Úserialized_coder¥   s      r»   Ú_unpickle_codez!GuardsStatePickler._unpickle_codeM  s   € å8à,ˆ~×,Ñ,¨_Ó=Ð=r½   c                ór   — t        j                  |«      j                  }t        j                  |||||«      S rÚ   )rÃ  rÄ  r•  r4  r5  )rF  r·   r/  ÚqualnameÚargdefsÚclosurerï  s          r»   Ú_unpickle_nested_functionz,GuardsStatePickler._unpickle_nested_functionS  s3   € ô ×+Ñ+¨FÓ3×<Ñ<ˆ	Ü×!Ñ! $¨	°8¸WÀgÓNÐNr½   c                ó†  — dd l }t        |«      | j                  v r!t        |«      j                  t        |«      ffS t        j                  |«      r.ddlm} t        | «      j                   |j                  |«      ffS t        |«      | j                  v rt        dfS t        |t        j                  «      �rö|j                   j                  dk7  �rÜddlm} t        |«      | j&                  vrt        dfS  ||«      rÝg }|j)                  «       \  }}|D ]S  }t+        ||«      }	t        |	t        j                  «      r|	| j&                  t        |	«      <   |j-                  ||	f«       ŒU t        | «      j.                  t        j0                  |d¬«      |j                   t        |«      t        j2                  j5                  |«      j7                  «       ||ffS t        |«      }
t        |t        j8                  j:                  «      r(|j<                  �|j<                  nt        j                  }
t        | «      j>                  t        j0                  |d|j@                  ¬«      |j                   |
t        j2                  j5                  |«      j7                  «       |jB                  ffS t        |t        jD                  jF                  «      �r–t        |«      | j&                  vrt        d	fS |jH                  jK                  «       D ]s  }t        |t        j                  t        jD                  jF                  f«      rŒ8t        |«      | j&                  v rŒPtM        |«      rŒ\|| j                  t        |«      <   Œu t        |t        jD                  jN                  jP                  «      r&t        | «      jR                  |jU                  «       ffS t        |«      jV                  t        |«      jX                  k(  rtZ        S |j\                  jT                  t        jD                  jF                  jT                  k(  �r¢t        | «      j^                  |jU                  «       ffS t        j`                  |«      r"t        | «      jb                  |jX                  ffS t        |t        j2                  jd                  «      r&t        | «      jf                  |j7                  «       ffS t        |t        j2                  jh                  jj                  «      r&t        | «      jl                  |jo                  «       ffS t        jp                  |«      rIts        ||jt                  «      r3tw        |d
«      r'tw        |d«      sJ ‚|jx                  |jz                  ffS t        jp                  |«      rbts        |t|        «      rRtw        |d«      rF|jV                  |jX                  k7  r-t        | «      j~                  |jX                  |j€                  ffS t        |t        j‚                  «      rt…        d|› d|j†                  › d�«      ‚t        |tˆ        jŠ                  «      r&t        | «      jŒ                  |j�                  «       ffS t        |«      t�        u r9t“        |«      \  }}|tZ        u�r4|tZ        u�r+t        | «      j”                  ||ffS t        |t        j–                  j˜                  jš                  «      r!t        | «      jœ                  tŸ        |«      ffS t        |t        j                   j¢                  «      r=|j¤                  j§                  d«      r"t        | «      j¨                  |jX                  ffS t        |t        j                   jª                  «      r8t        | «      j¬                  |j®                  |j°                  |j²                  ffS |j\                  j´                  dk(  r!|j\                  jX                  dk(  rt        dfS t        |t·        «       «      rt        dfS t        j¸                  |«      rÏd|jV                  v rNt        | «      jº                  |j¼                  |j´                  |jV                  |j¾                  |jÀ                  ffS |j´                  tÂ        jÄ                  v �r"tÂ        jÄ                  |j´                     }|jV                  jÇ                  d«      D ]  }t+        ||d «      }Œ ||urÔt        dfS t        jÈ                  |«      rl|jÊ                  }|jÌ                  }t+        ||jX                  «      }t        jÈ                  |«      r|jÊ                  }||urdt        | «      jÎ                  ||ffS t        |t         d„ d«      jÀ                  d   «      «      r"t        | «      jÐ                  |jÒ                  ffS tw        t        jÔ                  d«      rMt        |t        jÔ                  jÖ                  jØ                  «      rt        |«      | j&                  vrt        dfS t        |t        jD                  jÚ                  jÜ                  «      r"t        | «      jÞ                  |jà                  ffS t        |«      jV                  t        |«      jX                  k7  rOt        |t|        «      s?t        j–                  jâ                  jå                  dt        |«      › d|› d�dz   dz   «      ‚t        jp                  |«      �rtw        t        jÔ                  d «      rõts        |t        jÔ                  jæ                  jè                  jê                  «      r½|t        jÔ                  jæ                  jè                  jê                  ur�|jì                  d!   }ts        |t        jD                  jF                  «      sJ ‚|t        jÔ                  jæ                  jè                  jè                  jï                  «       v sJ ‚t        | «      jð                  |ffS tZ        S )"Nr   r¤   )zmissing valuesÚmeta)Úis_traceable_wrapper_subclass)ztensor guard tree)rº  )rº  rö  )zmodule guard treeÚ_torch_handler_nameÚ_torch_unpicklerr±  zCannot serialize SymInt z (node: rT  z_C::r”  Ú	PyCapsule)Úcapsule)Úunsupportedz<locals>rŠ  )zfqn mismatchc                ó   ‡ — ˆ fd„S )Nc                 ó   •— ‰ S rÚ   r…  r²  s   €r»   r¨  zGGuardsStatePickler.reducer_override.<locals>.<lambda>.<locals>.<lambda>  s   ø€ °Q€ r½   r…  r²  s   `r»   r¨  z5GuardsStatePickler.reducer_override.<locals>.<lambda>  s   ø€ «Y€ r½   Údistributed_c10d)zdistributed_c10d.Workr
  r  r  r  r  rÅ  r7  )yÚsympyr^  r™  r>  rÍ  r—  Úiscoderé  r¥   rì  Úfrom_code_objectrš  r�  rþ   r.  r/  rº  Útorch.utils._python_dispatchrô  rŸ  rD  r  rw  r®  Ú
empty_likerò  r  r¸  rp  rq  rú  r¦  rö  r£  r2  r3  r•  r#  r   rË  rÌ  rÐ  r�  rÔ   rÒ   ÚNotImplementedrË   rŸ  rK  r±  r¡   r³  rÇ  rµ  r¸  Ú	serializerF  r  ÚFunctionri  rö  rõ  r<  rç  r±  rê  r  rö   r4  rº  r¼  r–  Ú_COUNT_ITERATOR_TYPEr”   rÃ  r“  rÅ  rŒ   rÀ  rÛ  Ú_opsÚOpOverloadPacketÚ_qualified_op_nameÚ
startswithrÓ  Ú
OpOverloadrØ  rÕ  Ú_opnameÚ_overloadnamerÓ   r�  Ú
isfunctionrñ  r­   r«   r®   rÀ  Úmodulesru  Úismethodr°   Ú__self__rÛ  rã  r+  r  rü  ÚWorkrÝ  rÞ  rà  rã  rS   ÚPackageErrorrÅ  rÆ  Ú
FSDPModuler±   rÇ  rÉ  )rÄ   r  rý  r¥   rô  rª  Úattrsr©  rÎ  Úinnerrú  r  rj  Úfrã  rÚ  Úmethod_selfÚ
inner_funcrÈ  s                      r»   Úreducer_overridez#GuardsStatePickler.reducer_override`  s�	  € ó 	äˆc‹7�d×'Ñ'Ñ'Ü˜“9×$Ñ$¤t¨C£y lÐ2Ð2ä�>‰>˜#ÔÝ<ä˜“:×,Ñ,Ð/N¨~×/NÑ/NÈsÓ/SÐ.UÐUÐUäˆc‹7�d×)Ñ)Ñ)ÜÐ0Ð0Ð0ä�cœ5Ÿ<™<Õ(¨S¯Z©Z¯_©_ÀÓ-FÝRä�#‹w˜d×4Ñ4Ñ4ÜÐ!7Ð7Ð7á,¨SÔ1ð  �
Ø ×3Ñ3Ó5‘
��sà!ò 5�DÜ# C¨Ó.�EÜ! %¬¯©Ô6Ø<A˜×.Ñ.¬r°%«yÑ9Ø×%Ñ% t¨U mÕ4ð	5ô ˜D“z×FÑFÜ×$Ñ$ S°Ô8Ø—J‘JÜ˜“IÜ—H‘H×+Ñ+¨CÓ0×9Ñ9Ó;ØØðIð ð ô ˜#“YˆFÜ˜#œu×0Ñ0×;Ñ;Ô<Ø'*§z¡zÐ'=˜ŸšÄ5Ç<Á<�ä˜“:×.Ñ.Ü× Ñ  ¨VÀ3×CTÑCTÔUØ—
‘
ØÜ—‘×'Ñ'¨Ó,×5Ñ5Ó7Ø—‘ð1ð ð ô ˜œUŸX™XŸ_™_Õ-Ü�#‹w˜d×4Ñ4Ñ4ÜÐ!7Ð7Ð7àŸ™×+Ñ+Ó-ò 5�Ü˜d¤U§\¡\´5·8±8·?±?Ð$CÔDØÜ�d“8˜t×5Ñ5Ñ5ØÜ˜D”>ØØ04�×#Ñ#¤B t£HÒ-ð5ô ˜#œuŸx™x×0Ñ0×HÑHÔIÜ˜D“z×6Ñ6¸×9IÑ9IÓ9KÐ8MÐMÐMä�C‹y×%Ñ%¬¨c«×);Ñ);Ò;Ü%Ð%Ø�}‰}×)Ñ)¬U¯X©X¯_©_×-IÑ-IÓIÜ˜D“z×2Ñ2°S×5EÑ5EÓ5GÐ4IÐIÐIä×Ñ˜cÔ"Ü˜“:×5Ñ5¸¿¹°ÐFÐFä˜œUŸX™X×4Ñ4Ô5Ü˜“:×8Ñ8¸3¿<¹<»>Ð:KÐKÐKä˜œUŸX™X×0Ñ0×=Ñ=Ô>Ü˜“:×=Ñ=ÀÇÁÃÐ?QÐQÐQô �O‰O˜CÔ Ü˜3 §¡Ô/Ü˜Ð2Ô3ä˜3Ð 2Ô3Ð3Ð3Ø×'Ñ'¨#×*AÑ*AÐ)CÐCÐCô �O‰O˜CÔ Ü˜3¤Ô&Ü˜˜YÔ'Ø× Ñ  C§L¡LÒ0ä˜“:×8Ñ8¸3¿<¹<ÈÏÉÐ:UÐUÐUä˜œUŸ\™\Ô*ÜÐ!9¸#¸¸hÀsÇxÁxÀjÐPQÐRÓSÐSä˜œU×3Ñ3Ô4Ü˜“:×5Ñ5¸¿¹»
°}ÐDÐDä�#‹YÔ.Ñ.Ü-¨cÓ2‰JˆD�$Øœ>Ò)¨d¼.Ò.HÜ˜D“z×6Ñ6¸¸t¸ÐDÐDä˜œUŸ]™]×0Ñ0×:Ñ:Ô;Ü˜“:×1Ñ1´D¸³I°<Ð?Ð?äØ”—‘×,Ñ,ô
à×$Ñ$×/Ñ/°Ô7Ü˜“:×,Ñ,¨s¯|©|¨oÐ=Ð=ä˜œUŸZ™Z×2Ñ2Ô3Ü˜“:×*Ñ*Ø—‘Ø—‘Ø×!Ñ!ð-ð ð ð �M‰M×$Ñ$¨
Ò2Ø—‘×&Ñ&¨+Ò5ô ˜\Ð)Ð)ä˜Ô3Ó5Ô6ÜÐ-Ð-Ð-ä×Ñ Ô$Ø˜S×-Ñ-Ñ-Ü˜D“z×;Ñ;Ø—L‘LØ—N‘NØ×$Ñ$Ø×$Ñ$Ø—O‘Oð>ð ð ð �~‰~¤§¡Ò,Ü—K‘K §¡Ñ/�Ø×,Ñ,×2Ñ2°3Ó7ò /�DÜ  4¨Ó.‘Að/à˜C‘<Ü#Ð%6Ð6Ð6Ü×Ñ˜cÔ"Ø—<‘<ˆDØŸ,™,ˆKÜ  ¨d¯m©mÓ<ˆJÜ×Ñ 
Ô+Ø'×0Ñ0�
Ø˜:Ñ%Ü˜D“z×8Ñ8¸4ÀÐ:MÐMÐMä˜œTÒ#6¸Ó":×"FÑ"FÀqÑ"IÓJÔKÜ˜“:×,Ñ,¨s×/@Ñ/@Ð.BÐBÐBä”5×$Ñ$Ð&8Ô9¼jØ”×"Ñ"×3Ñ3×8Ñ8ô?
ô �#‹w˜d×4Ñ4Ñ4ÜÐ!;Ð;Ð;ä�cœ5Ÿ8™8×-Ñ-×8Ñ8Ô9Ü˜“:×3Ñ3°c·h±h°[Ð@Ð@ä�‹9×!Ñ!¤T¨#£Y×%7Ñ%7Ò7Ä
È3ÔPUÔ@VÜ—-‘-×#Ñ#×0Ñ0Øœ˜S›	�{ ,¨s¨eÐ3DÐEØTñUàTñUóð ô �O‰O˜CÕ Üœ×)Ñ)¨6Ô2Ü˜3¤× 1Ñ 1× 6Ñ 6× CÑ C× NÑ NÔOàœ%×+Ñ+×0Ñ0×=Ñ=×HÑHÑHØ #§¡¨A¡�Ü! -´·±·±ÔAÐAÐAà!Ü×(Ñ(×-Ñ-×:Ñ:×GÑG×[Ñ[Ó]ñ^ðð^ô ˜D“z×<Ñ<¸}Ð>NÐNÐNäÐr½   )rŸ  údict[int, Any]r™  r  rš  r  rÞ   r   rŠ  r   rÍ   rÑ   )r�  r   rÍ   ztorch.nn.Module)r¤  útorch.Tensorrº  útorch.devicerú  r>  r¥  r!  r£  r  rÍ   r  )r¤  r  rº  r  rú  r>  r¥  r!  r©  r   rª  zlist[tuple[str, Any]]rÍ   r  )r°  rÎ   rÍ   ztypes.ModuleType)r¸  r!  rÍ   ztorch._C.DispatchKeySet)r·  ÚbytesrÍ   z torch._C._functorch.CInterpreter)r»  r7  rÍ   z types.MappingProxyType[Any, Any])r¿  ú	list[Any]rÍ   r   )r  r!  rj  r!  rÍ   zitertools.count[int])rÈ  útype[torch.nn.Module]rÍ   r  )r�  zdict[str, Any]rÍ   z)torch.nn.parallel.DistributedDataParallel)rã  rÎ   rÍ   r   )rÕ  rÎ   rÖ  rÎ   r×  rÎ   rÍ   r   )rÚ  r   rå  r   rÍ   r   )rã  rÎ   rÍ   ztorch.nn.attention.SDPBackend)r`  r   rÍ   r   )rã  rÎ   ræ  rÑ  rÍ   ztype[NamedTuple])rë  r¥   rÍ   r3  )r·   r3  r/  rÎ   rî  rÎ   rï  ztuple[object, ...] | Nonerð  z!tuple[types.CellType, ...] | NonerÍ   ztypes.FunctionType)r  r   rÍ   z0tuple[Callable[..., Any], tuple[Any, ...]] | Any)rÒ   rÓ   rÔ   rê   r8  rŸ  r¦  r®  r±  r³  r¸  r¼  rÀ  rÃ  rÉ  rÐ  rÓ  rØ  rÛ  r7  rà  rã  rç  rì  rñ  r  rÕ   rÖ   s   @r»   r’  r’  Á  sô  ø„ ð-à)ð-ð %ð-ð 'ð	-ð
 ð-ð ð-ð 
õ-ð òó ðð
 ðà!ðð ðð ð	ð
 ðð ðð 
òó ðð( ðà!ðð ðð ð	ð
 ðð ðð *ðð 
òó ðð& ò.ó ð.ð ò?ó ð?ð ðBØðBà	)òBó ðBð
 ð)Øð)à	)ò)ó ð)ð
 ò+ó ð+ð ò+ó ð+ð ð
Ø1ð
à	ò
ó ð
ð ðØ"ðà	2òó ðð ò+ó ð+ð òUó ðUð ò,ó ð,ð ò<ó ð<ð ò ó ð ð ð4Øð4Ø /ð4à	ò4ó ð4ð ò>ó ð>ð
 ð	Oàð	Oð ð	Oð ð		Oð
 +ð	Oð 3ð	Oð 
ò	Oó ð	OðIØðIà	9÷Ir½   r’  c           	     óB  — t        «       }t        | j                  «      }|dk(  rd}|}n	 |j                  | «      }d}t	        | j
                  «      d u}t        |||| j                  «       | j                  rt        | j                  «      nd|| ¬«      S #  |}d}Y Œ`xY w)Nrg  FTr…  )rã  Ú	has_valuer÷  Ú
guard_typeÚderived_guard_typesÚ	is_globalÚ
orig_guard)
rã  Ústrip_local_scoperã  r¥  r+   rÝ  r‡   Úcreate_fn_nameÚguard_typesr<  )rM  ÚbuilderÚMISSINGrã  r!  r÷  r$  s          r»   Úmake_guard_filter_entryr+  ,  s«   € Ü‹h€GÜ˜UŸZ™ZÓ(€DØˆr‚zØˆ	Ø‰ð		ð
 —K‘K Ó&ˆEØˆIô ' u×'?Ñ'?Ó@ÈÐL€IÜØØØØ×'Ñ'Ó)Ø9>×9JÒ9JœU 5×#4Ñ#4Ô5ÐPRØØôð øð		ØˆEØŠIús   «B ÂBc                ó¼  — t        j                  «       }i }i }|j                  }t        j                  | j
                  j                  «      }|D ]Œ  }t        j                  |«      rYt        |d«      rM|j                  }t        |«      |vsŒ>	 t        |«      j                  t        |«      «       ||t        |«      <   Œqt        |«      |vsŒ||t        |«      <   ŒŽ t        ||||«      }	t        t         j"                  j%                  | j
                  j&                  D �
cg c]  }
t)        |
|«      ‘Œ c}
«      «      r*t+        «       | j
                  _        i | j
                  _        	 |	j1                  | «       |j=                  «       S #  Y �ŒBxY wc c}
w # t2        $ r8}t         j4                  j6                  j9                  t;        |«      «      |‚d }~ww xY w)Nr  )ÚioÚBytesIOrŸ  rì  Útree_leavesr£  r«  r—  r  ri  r  r^  r>  rÍ  r’  r  r.  ÚcompilerÚkeep_portable_guards_unsafer§   r+  rç   r¤  rá   Údumpr�  r“  rS   r  rÎ   rj  )r�  r)  Úbufr™  rš  rŸ  ÚleavesÚleafrå  ÚpicklerrM  rd  s               r»   Úpickle_guards_stater7  I  sž  € ô �*‰*‹,€CØ€LØ€NØ×1Ñ1Ðä×Ñ × 2Ñ 2× >Ñ >Ó?€FØò ,ˆÜ×Ñ˜DÔ!¤g¨d°JÔ&?Ø—=‘=ˆDÜ�$‹xÐ0Ò0ðÜ˜“J×&Ñ&¤t¨D£zÔ2Ø-1�L¤ D£Ò*ô �‹XÐ.Ò.ð (,ˆNœ2˜d›8Ò$ð,ô !Ð!2°LÀ.ÐRUÓV€Gä
Ü�‰×2Ñ2ð #×/Ñ/×6Ñ6öàô (¨¨wÕ7òó	
ôô 14³ˆ×ÑÔ-Ø*,ˆ×ÑÔ'ð<Ø�‰�UÔð �<‰<‹>Ðøð1Úüòøô ò <Ü�m‰m×Ñ×,Ñ,¬S°«VÓ4¸!Ð;ûð<ús*   Â1FÄ#FÅ,F ÆFÆ	GÆ#3GÇGc                  óÈ   — e Zd ZU 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„ZdZded<   	 	 	 	 	 	 	 	 dd„Z	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 dd„Zdd	„Z	dd
„Z
dd„Zy)r5  Nc
           
     ó	  ‡ ‡‡— |r|j                   nd }
i ‰ _        t        |«      }|‰ _        ‰ j                  €J ‚|‰ _        |r|j
                  nd ‰ _        t        «       ‰ _        t        «       ‰ _        t        «       ‰ _	        |‰ _
        d ‰ _        d ‰ _        t        d«      st        j                  d«       t         j"                  j$                  j&                  r|xs d„ Šdˆfd„}t)        |
xs dt*        j,                  ¬«      }t         j.                  j1                  «       5  |rˆ‰ j3                  ||||d«      \  }} ||D �cg c]  }t5        ||«      ‘Œ c}«      }t7        |«      t7        |«      k(  sJ ‚t9        d„ |D «       «      sJ ‚t;        |«      D ��cg c]  \  }}||   sŒ|‘Œ }}}‰ j3                  ||||||¬	«      \  }}|‰ _        ‰ j?                  |||«       d d d «       j@                  ‰ j<                  _         tB        jE                  d
‰ j<                  «       |j@                  ‰ j<                  _         dŠ|jF                  sý|jH                  sñ‰ j<                  jK                  |jL                  «      sCtO        ‰ j<                  |jL                  tQ        jR                  «       d ¬«      }tU        d|› �«      ‚tV        �!tW        ‰ j<                  |jL                  |«       tY        ‰ j<                  jZ                  |jL                  d«      ŠtB        jE                  d‰d›«       t]        j^                  dta        ‰«      «       d ‰ _1        |rAddl2m3} ti        ‰ j                  |«      sJ ‚	 ‰ jk                  ||‰ j                  «      ‰ _1        t         j|                  j                  dˆˆ fd„¬«       ‰ j                  j�                  «        d ‰ _        y c c}w c c}}w # 1 sw Y   �ŒxY w# tl        jn                  $ r|}t         j"                  j$                  jp                  s|	r|‚‰ j                  js                  dtu        |«      › �tw        jx                  «       j{                  d«      ¬«       Y d }~Œéd }~ww xY w)NrŒ  z9guard_nn_modules is turned off using justknobs killswitchc                ó,   — | D �cg c]  }d‘Œ c}S c c}w r  r…  )ÚgsÚgs     r»   r¨  z/CheckFunctionManager.__init__.<locals>.<lambda>¥  s   € ÈRÖ>PÈºtÒ>P€ ùÒ>Ps   …	c                ól  •— g }t         ‰| «      | «      D ]›  \  }}|s|j                  d«       Œ|j                  dv sd|j                  v sd|j                  v rGt        j                  d|j                  |j                  j                  «       |j                  d«       Œ‹|j                  d«       Œ� |S )NF)rª  rN  r�  rz  rª  rz  z7%s guard on %s is dropped with caching_precompile=True.T)r  rw  r"  r#  rK  rL  r%  rã  )r§   rG  Úkeepr<  Ú_guard_filter_fns       €r»   r¡  z6CheckFunctionManager.__init__.<locals>.guard_filter_fn§  sª   ø€ Ø�Ü"Ñ#3°FÓ#;¸VÓDò )‘G�D˜!ÙØŸ
™
 5Õ)àŸ™ðñð &¨×)>Ñ)>Ñ>Ø)¨Q×-BÑ-BÑBäŸ™ØUØŸL™LØŸL™L×-Ñ-ôð
 Ÿ
™
 5Õ)àŸ
™
 4Õ(ð+)ð, �
r½   r…  )r  Fc              3  ó>   K  — | ]  }t        |«      t        u –— Œ y ­wrÚ   )r>  rÐ   )r  ro  s     r»   r  z0CheckFunctionManager.__init__.<locals>.<genexpr>×  s   è ø€ ÒC¨qœ4 ›7¤dœ?ÑCùs   ‚)r¡  ú%sg        )ÚbackendziGuard failed on the same frame it was created. This is a bug - please create an issue.Guard fail reason: rP   zGuard eval latency = %s usú.2fÚguard_latency_usr   r¬  zGuard evaluation failed: rÊ  )Ú	tracebackÚdynamo_cpp_guards_strc                 ó*   •— ‰j                   › d‰ d›d�S )Nz
Guard latency = rC  z us)rV  )ÚlatencyrÄ   s   €€r»   r¨  z/CheckFunctionManager.__init__.<locals>.<lambda>7  s    ø€  $×"4Ñ"4Ð!5Ð5GÈÐPSÀ}ÐTWÐX€ r½   ©Ú
payload_fn)r§   zSequence[GuardFilterEntry]rÍ   zSequence[bool])Ar§   Ú	_weakrefsÚ5update_diff_guard_managers_for_existing_cache_entriesr£  rÓ  r¡  rL   rR  rv  rw  r“  rœ  r£  rE   rK  rL  r.  r“  rQ   Úcaching_precompilerò   r:   Úsort_keyrò  ÚDisableTorchFunctionÚbuild_guardsr+  rµ   r  r·  rV  Úcompile_check_fnrå   r8  r9  Úskip_guards_checkr¿  rm  r«  Úget_guard_fail_reason_helperr7   rî  r&  rœ   r$   rÛ   r5   Úincrement_toplevelr!  Úguards_staterÒ  r¢   rþ   Úserialize_guardsrS   r  Ústrict_precompileÚbypass_packagerÎ   rE  Ú
format_excru  Ú_loggingÚtrace_structuredÚclear)rÄ   r�  r£  rã   râ   r¡  rÓ  r“  r   Ústrict_errorr§   Úexisting_diff_guard_sourcesÚsorted_guardsr)  rV  rM  Úfilter_resultsrË  Úreasonsr¢   rd  r?  rH  s   `                    @@r»   rê   zCheckFunctionManager.__init__{  sD  ú€ ñ )5�×$Ò$¸$ˆØ;=ˆŒô BÀ+ÓNð 	$ð 7CˆÔØ× Ñ Ð,Ð,Ð,ð !1ˆÔñ
 7CˆL×2Ò2Èð 	Ô&ô 3=³,ˆÔÜ;E»<ˆÔ'Ü<F»LˆÔ(Ø$8ˆÔ!ØMQˆÔØMQˆÔ/äÐBÔCÜ�K‰KÐSÔTô �=‰=×Ñ×2Ò2Ø.ÒQÑ3PÐõô4 ˜vš|¨´·±Ô@ˆô �X‰X×*Ñ*Ó,ñ  	IÙð *.×):Ñ):Ø!Ø/ØØ Øó*Ñ&�˜ñ "1ØJWÖXÀÔ,¨U°GÕ<ÒXó"�ô ˜>Ó*¬c°-Ó.@Ò@Ð@Ð@ÜÑC°NÔCÔCÐCÐCä*3°MÓ*B÷!Ù&˜a ÀnÐUVÓFW’Eð!�ñ !ð
 &*×%6Ñ%6ØØ+ØØØØ /ð &7ó &Ñ"ˆG�]ð "/ˆDÔØ×!Ñ! '¨=¸-ÔH÷A 	IðT .5×-DÑ-Dˆ×ÑÔ*ä×Ñ˜˜t×1Ñ1Ô2Ø-4×-DÑ-Dˆ×ÑÔ*ð ˆà×-Ò-°l×6IÒ6IØ×%Ñ%×+Ñ+¨L×,DÑ,DÔEÜ6Ø×&Ñ&Ø ×,Ñ,Ü"×5Ñ5Ó7Ø ô	�ô %ð*Ø*1¨ð4óð ô
 -Ð8Ü-Ø×&Ñ&¨×(@Ñ(@À'ôô ,Ø×"Ñ"×'Ñ'¨×)AÑ)AÀ1óˆGô ×ÑÐ9¸gÀc¸]ÔLô ×1Ñ1Ð2DÄcÈ'ÃlÔSà*.ˆÔÙÝDä˜d×/Ñ/Ð1BÔCÐCÐCð
Ø$(×$9Ñ$9Ø˜]¨D×,=Ñ,=ó%�Ô!ô 	�‰×'Ñ'Ø#ÜXð 	(ô 	
ð 	�‰×ÑÔØ ˆÕùò] Yùó!÷# 	Iñ  	IûôJ ×#Ñ#ò Ü—=‘=×'Ñ'×9Ò9¹\Ø�GØ×!Ñ!×0Ñ0Ø/´°A³¨xÐ8Ü'×2Ñ2Ó4×:Ñ:¸4Ó@ð 1÷ ñ ûðúsJ   Ä'!O+ÅO 
ÅAO+ÆO%Æ+O%Æ/7O+Í7"O8 Ï O+Ï+O5Ï8RÐA2RÒR)rz  r>  rª  rB  rG  rL  rN  r�  ztuple[LiteralString, ...]Ú%UNSUPPORTED_SERIALIZATION_GUARD_TYPESc                ó  ‡‡‡‡— |D ]â  }|j                  «       }|j                  rt        |j                  «      nd}|dv r*|j                  sŒG|j	                  |«      }t        |«       Œd|t        j                  v r,t        j                  j                  j                  |› d�«      ‚t        d„ |D «       d «      x}sŒ¸t        j                  j                  j                  |› d�«      ‚ |j                  xs dŠt        «       Št        «       Šdˆˆˆfd„}	|j                  «       }
|D ]`  }t!        |j"                  t$        «      r2| j&                  sJ ‚| j&                  j(                  D ]
  } |	|«       Œ ŒO |	|j"                  «       Œb |j*                  D ]
  } |	|«       Œ dd„Š|
j,                  j/                  «       D ��ci c]  \  }}|‰v s|| j0                  v r||“Œ }}}|
j,                  ‰   j/                  «       D ��ci c]  \  }}|| j2                  v r||“Œ c}}|‰<   t5        j6                  |
|
j8                  j/                  «       D ��ci c]  \  }}|‰v s|| j:                  v r||“Œ c}}|t        j<                  j?                  tA        ˆfd„|D «       «      «      tC        jD                  tF        |
jH                  «      d	¬
«      }
tK        |
| j&                  ¬«      }tM        ||«      S c c}}w c c}}w c c}}w )Nr…  )ru  rS  z guard cannot be serialized.c              3  óD   K  — | ]  }|t         j                  v r|–— Œ y ­wrÚ   )r5  rb  )r  rË  s     r»   r  z8CheckFunctionManager.serialize_guards.<locals>.<genexpr>g  s'   è ø€ ò àØÔ0×VÑVÑVô ñùs   ‚ rg  c                óÖ   •— t        | «      x}r*t        |t        «      sJ ‚|‰k7  r‰j                  |«       y y t	        | «      x}r$t        |t        «      sJ ‚‰j                  |«       y y rÚ   )r+   rþ   rÎ   rõ   r,   )rX  rã  Úbuiltins_dict_nameÚused_global_varsÚused_local_varss     €€€r»   Úprune_variablez=CheckFunctionManager.serialize_guards.<locals>.prune_variablew  st   ø€ Ü-¨fÓ5Ð5ˆtÐ5Ü! $¬Ô,Ð,Ð,ð Ð-Ò-Ø$×(Ñ(¨Õ.ð .ä.¨vÓ6Ð6�Ð6Ü! $¬Ô,Ð,Ð,Ø×#Ñ# DÕ)ð 7r½   c                ó8  ‡— t        | t        j                  «      rxdd„Št        ˆfd„| j                  D «       «      }| j
                  j                  «       D ��ci c]  \  }}| ‰|«      “Œ }}}t        j                  | j                  g|¢­i |¤ŽS | S c c}}w )Nc                óT   — t        | t        t        j                  f«      r | «       S | S rÚ   )rþ   rO   r'  r_  r²  s    r»   Ú_refzPCheckFunctionManager.serialize_guards.<locals>.normalize_create_fn.<locals>._ref“  s!   € Ü! !¤m´W·[±[Ð%AÔBÙ ›s˜
Ø�Hr½   c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wrÚ   r…  )r  r�  rl  s     €r»   r  zUCheckFunctionManager.serialize_guards.<locals>.normalize_create_fn.<locals>.<genexpr>˜  s   øè ø€ Ò 9¨Q¡ a§Ñ 9ùs   ƒ)ro  r   rÍ   r   )rþ   Ú	functoolsÚpartialr<  rÞ   rW  rô   rÚ  )ro  Únew_argsÚkÚvÚnew_keywordsrl  s        @r»   Únormalize_create_fnzBCheckFunctionManager.serialize_guards.<locals>.normalize_create_fn�  s„   ø€ Ü˜!œY×.Ñ.Ô/óô
 !Ó 9°!·&±&Ô 9Ó9�Ø78·z±z×7GÑ7GÓ7I×J©t¨q°! ¡4¨£7¡
ÐJ�ÑJÜ ×(Ñ(¨¯©ÐK°(ÒK¸lÑKÐKàˆHùó  Ks   ÁBc           	   3  óp   •K  — | ]-  }t        j                  |d d  ‰|j                  «      ¬«      –— Œ/ y ­w)N)Úobj_weakrefÚguarded_class_weakrefrV  )ro  rÍ  rV  )r  rM  rt  s     €r»   r  z8CheckFunctionManager.serialize_guards.<locals>.<genexpr>´  s@   øè ø€ ò ð ô  ×'Ñ'ØØ$(Ø.2Ù"5°e·o±oÓ"F÷	ð ñùs   ƒ36T)r«  rá   Ú_guardsr  rR  )r£  rÓ  )rX  r>   rÍ   rÑ   )ro  úCallable[..., None]rÍ   ry  )'r'  r(  r<  rr  r¥  r  r5  rb  r.  r“  rS   r  ÚnextÚ%name_of_builtins_dict_key_in_fglobalsrç   Údump_guards_staterþ   rÝ  rw   rÓ  rÇ  r¤  rá   rô   rw  rR  ro  rÍ  r«  rv  rx  Ú	GuardsSetrL   rì  Útree_maprí  r  r~  r7  )rÄ   r)  r_  r£  rM  r"  r#  r  Úfailedri  Úoutput_graph_guards_staterX  rq  rr  Úglobal_scope_staterU  rf  rt  rg  rh  s                   @@@@r»   rV  z%CheckFunctionManager.serialize_guardsO  s*  û€ ð #ò 	ˆEØ×-Ñ-Ó/ˆJØ>C×>OÒ>O¤%¨×(9Ñ(9Ô":ÐUWÐð Ð<Ñ<Ø×(Ó(à!Ÿ+™+ eÓ,�CÜ*¨3Õ/àÔ2×XÑXÑXä—m‘m×'Ñ'×4Ñ4Ø!�lÐ">Ð?óð ô  ñà0ôð
 óð �ñ ô —m‘m×'Ñ'×4Ñ4Ø�hÐ:Ð;óð ð3	ð: *×OÑOÒUÐSUÐÜ›5ÐÜ›%ˆ÷
	*ð %1×$BÑ$BÓ$DÐ!à"ò 	9ˆEÜ˜%×2Ñ2´NÔCØ×,Ò,Ð,Ð,Ø"×3Ñ3×EÑEò +�FÙ" 6Õ*ñ+ñ ˜u×7Ñ7Õ8ð	9ð #×5Ñ5ò 	#ˆFÙ˜6Õ"ð	#ó	ð  2×>Ñ>×DÑDÓF÷
á��1ØÐ$Ñ$¨¨T×-MÑ-MÑ(Mð ˆq‰Dð
Ðñ 
ð 2×>Ñ>Ø"ñç‰e‹g÷2
ñ ��1ð �D×*Ñ*Ñ*ð ˆq‰Dó2
ÐÐ-Ñ.ô %0×$7Ñ$7Ø%ð 6×AÑA×GÑGÓI÷á�A�qØ˜Ñ'¨1°×0OÑ0OÑ+Oð �1‘óð
 ,Ü—M‘M×+Ñ+Üó ð "/ôó ó
ô +1¯/©/Ü.Ø)×GÑGó+ð #ô/%
Ð!ô2 #Ø2Ø!×2Ñ2ô
ˆô
 # <°Ó9Ð9ùóW
ùó
2
ùós   ÇK8È	K>ÉLc                ó  ‡— t        «       }||_        d Šdˆfd„}t        || j                  || j                  |j
                  |j                  || || j                  |¬«      }	d	d„}
t        j                  |	|
«      Št        j                  xr t        d«      }|D ]`  }|sK|j                  «       r;d|j                  vr-d|j                  vrt        j                  sd|j                  vrŒP|j!                  |	«       Œb |	|fS )
Nc                ó¬   •— | j                   }|t        j                  u r| j                  S ‰sJ ‚ ‰«       }|€J ‚|j	                  | j                  «      S rÚ   )Úguard_sourcer=   ÚCONSTANTrã  rN  )rX  r„  Ú	r_builderÚ	w_builders      €r»   r�  z5CheckFunctionManager.build_guards.<locals>.source_refÚ  sV   ø€ Ø!×.Ñ.ˆLØœ{×3Ñ3Ñ3à—{‘{Ð"ÙÐ�9Ù!›ˆIØÐ(Ð(Ð(Ø×$Ñ$ V§[¡[Ó1Ð1r½   )r“  r¡  c                ó&   —  | «       }|rd |_         y y rÚ   )r‘  )Úweak_br§  s     r»   Úcleanup_builderz:CheckFunctionManager.build_guards.<locals>.cleanup_builderó  s   € Ù“ˆAÙØ�•ð r½   rŒ  r«   r¬   rÐ  )rX  r>   rÍ   rÎ   )r‰  zweakref.ref[GuardBuilder]rÍ   rÑ   )rØ   ré   r�  rŽ  r�  r«  rá   r“  r'  r_  rQ   r©  rE   r/  rã  r‘  rP  )rÄ   r_  r^  r�  r£  r   r¡  rV  r�  r)  rŠ  Úguard_on_nn_modulesrM  r‡  s                @r»   rP  z!CheckFunctionManager.build_guardsË  s  ø€ ô ,Ó-ˆØ+FˆÔ(àˆ	õ	2ô ØØ�K‰KØØ× Ñ Ø×$Ñ$Ø×%Ñ%ØØØØ!%×!:Ñ!:Ø+ô
ˆó	ô —K‘K ¨Ó9ˆ	ä$×5Ñ5ò 
¼/Ø/ó;
Ðð #ò 	"ˆEá'Ø×2Ñ2Ô4ð #¨%¯*©*Ñ4Ø$¨E¯J©JÑ6Ü×5Ò5¸ÈÏ
É
Ñ9Ràà�L‰L˜Õ!ð	"ð ˜Ð%Ð%r½   c                ó>	  ‡‡‡— |j                   }|dgz  }t        j                  d«       g Šg Šg Š| j                  j                  j                  t        t        j                  «       «      «       d | _	        	 d	 	 	 	 	 	 	 dˆˆˆfd„}t        «       }|j                  D ]=  }|j                  D ],  }||vsŒ |||j                  d«       |j                  |«       Œ. Œ? |j                  }	d }
d }t!        |	«      dkD  r.t#        |j$                  |	ddj'                  |	«      z   dz   gd «       t(        j*                  rA|j,                  r5t/        t0        t3        |j,                  Ž «      \  }}|j5                  ||«       | j6                  r| j6                  j8                  ng }|D �]N  }t;        |t<        «      rk|j>                  }|j@                  }|jB                  › d	|jB                  › �}tE        |jG                  |«      |jG                  |«      |gd «        ||d d«       Œt;        |tH        «      r´|jJ                  D �cg c]  }|jG                  |«      ‘Œ }}|jL                  D �cg c]  }|jG                  |«      ‘Œ }}d
dj'                  d„ |jJ                  D «       «      › ddj'                  d„ |jL                  D «       «      › d�}tO        |||gd «        ||d d«       �ŒCtQ        d|› �«      ‚ |jR                  D ]'  }|j                  D ]  } |||j                  d«       Œ Œ) ‰r$tT        jV                  jY                  dˆfd„¬«       tZ        j\                  €t[        j^                  «       j`                  }ntc        | jd                  dd «      }|
||| jf                  dœth        ¥tk        «       ¥}| j                  jm                  «        d|jn                  d   i}t!        ‰«      dk(  sJ ‚|| j                  _8        || j                  _9        | j                  ju                  «        ‰| j                  _;        || j                  _<        || j                  _=        d | j                  _>        d | j                  _?        |	| j                  _@        y c c}w c c}w )Nz**___kwargs_ignoredzGUARDS:c                ó$  •‡ ‡— t        ‰ ‰«      }t        j                  d|«       ‰j                  ˆ ˆfd„«       t        j                  t        j                  «      rŽd}d}‰�p‰j                  r,ddj                  ‰j                  j                  «       «      › �}‰j                  r,ddj                  ‰j                  j                  «       «      › �}t        j                  d‰ ||«       |s#‰j                  ‰ «       ‰j                  |«       y y )NrA  c                 óä   •— ‰ ‰r9‰j                   r-t        j                  ‰j                   j                  «       «      nd ‰r-‰j                  r!t        j                  ‰j                  «      dœS d dœS )N)r·   rÔ  rÑ  )rÔ  rD   Úfrom_tracebackrÕ  rÑ  )rz  rM  s   €€r»   r¨  zNCheckFunctionManager.compile_check_fn.<locals>.add_code_part.<locals>.<lambda>.  sg   ø€ Ø%ñ ! U§[¢[ô #×1Ñ1°%·+±+×2EÑ2EÓ2GÔHà!ñ ! U×%5Ò%5ô #×1Ñ1°%×2BÑ2BÓCñ€ ð "ñ€ r½   rg  z
Stack:
z
User stack:
zGuard: %s%s%s)rØ  r8  r9  rw  Úverbose_guards_logÚisEnabledForÚloggingÚDEBUGrÔ  r6  ÚformatrÑ  )	rz  rM  Úlog_onlyry  Úmaybe_stackÚmaybe_user_stackrß   Ústructured_guard_fnsrà   s	   ``    €€€r»   Úadd_code_partz<CheckFunctionManager.compile_check_fn.<locals>.add_code_part'  sù   ú€ ô !6°iÀÓ GÐÜ×Ñ˜TÐ#4Ô5à ×'Ñ'ôôô  "×.Ñ.¬w¯}©}Ô=Ø �Ø#%Ð ØÐ$Ø—{’{Ø(2°2·7±7¸5¿;¹;×;MÑ;MÓ;OÓ3PÐ2QÐ&R˜Ø×'Ò'à-¨b¯g©g°e×6FÑ6F×6MÑ6MÓ6OÓ.PÐ-QÐRð )ô #×(Ñ(Ø#ØØØ$ô	ñ Ø×!Ñ! )Ô,Ø"×)Ñ)Ð*;Õ<ð r½   TrP   zcheck_no_aliasing(rS  rT  ru  zcheck_overlapping(overlapping=[c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrÚ   rß  ©r  rZ  s     r»   r  z8CheckFunctionManager.compile_check_fn.<locals>.<genexpr>›  s   è ø€ Ò/Z¸1°·µÑ/Zùó   ‚z], non_overlapping=[c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrÚ   rß  r›  s     r»   r  z8CheckFunctionManager.compile_check_fn.<locals>.<genexpr>œ  s   è ø€ Ò3b¸q°A·FµFÑ3bùrœ  z])zUnknown GuardEnvExpr: Údynamo_guardsc                 ó8   •— ‰D � cg c]	  }  | «       ‘Œ c} S c c} w rÚ   r…  )r  r˜  s    €r»   r¨  z7CheckFunctionManager.compile_check_fn.<locals>.<lambda>³  s   ø€ ÐBVÖ4W¸Q±QµSÒ4W€ ùÒ4Ws   †rI  rm  )Ú___check_tensorsÚ___check_tensors_verboseÚ___check_global_stateÚ"___check_torch_function_mode_stackr…  r   rÏ   )rz  rÎ   rM  úGuard | Noner•  rÐ   rÍ   rÑ   )Arš  r8  r9  rV  rÛ   Úattach_compile_idrÎ   r7   rî  r¡  rç   r·   r4  rM  rõ   rœ  rµ   r   r�  r6  rQ   rx  r¨  rÏ  rÛ  r  rB  r£  Úaotautograd_guardsrþ   r9   Úinput_source_aÚinput_source_brã  r    r  r?   Úoverlapping_sourcesÚnon_overlapping_sourcesr!   r  r›  r.  rZ  r[  rR   Úinitial_global_stateÚGlobalStateGuardrm  r  rœ  r£  rJ   rÈ  r  r‘  rÝ   rÞ   r  rà   rá   râ   rã   rä   ræ   )rÄ   r)  Ú
guards_outrâ   Úlargsr™  ÚseenÚgclr·   rœ  Úcheck_tensors_fnÚcheck_tensors_verbose_fnÚaliasing_code_partsÚaliasing_verbose_code_partsr¦  rM  Úsource_ary  rz  rZ  Úoverlapping_guard_managersÚnon_overlapping_guard_managersÚcheck_global_staterÝ   rA  rß   r˜  rà   s                            @@@r»   rQ  z%CheckFunctionManager.compile_check_fn  sÊ  ú€ ð × Ñ ˆØÐ'Ð(Ñ(ˆä×Ñ˜Ô#ð ˆ
ØÐØCEÐð 	×Ñ×Ñ×1Ñ1Ü”×1Ñ1Ó3Ó4ô	
ð
 *.ˆÔ&ð CHð)	=Øð)	=Ø#/ð)	=Ø;?ð)	=à÷)	=ôV ‹uˆØ—<‘<ò 	#ˆCØŸ™ò #�Ø˜tÒ#ñ " $¨¯	©	°4Ô8Ø—H‘H˜T•Nñ#ð	#ð $+×#CÑ#CÐ ØÐØ#'Ð äÐ'Ó(¨1Ò,ô -Ø×9Ñ9Ø(Ø%¨¯	©	Ð2JÓ(KÑKÈcÑQÐRØô	ô" ×6Ò6Ø×3Ò3ä?BÜ”c˜7×>Ñ>Ð?ó@Ñ<ÐÐ!<ð ×8Ñ8Ø#Ð%@ôð
 59×4EÒ4EˆD×Ñ×0Ò0È2ð 	ð (ó "	EˆEÜ˜%¤Ô1Ø ×/Ñ/�Ø ×/Ñ/�Ø'Ÿ}™}˜o¨T°(·-±-°ÐA�	Ü-Ø×9Ñ9¸(ÓCØ×9Ñ9¸(ÓCØ�KØô	ñ ˜i¨¨tÕ4Ü˜E¤>Ô2ð #×6Ñ6ö.àð ×9Ñ9¸!Õ<ð.Ð*ð .ð #×:Ñ:ö2àð ×9Ñ9¸!Õ<ð2Ð.ð 2ð
&Ø&*§i¡iÑ/ZÀ×@YÑ@YÔ/ZÓ&ZÐ%[ð \*Ø*.¯)©)Ñ3bÀE×DaÑDaÔ3bÓ*bÐ)cÐceðið ô
 2Ø.Ø2Ø�KØô	ñ ˜i¨¨tÖ4ä"Ð%;¸E¸7Ð#CÓDÐDðE"	EðL ×)Ñ)ò 	5ˆCØŸ™ò 5�ñ ˜d C§I¡I¨tÕ4ñ5ð	5ñ  Ü�N‰N×+Ñ+ØÓ,Wð ,ô ô ×-Ñ-Ð5ä!.×!?Ñ!?Ó!A×!GÑ!GÑä!(¨×):Ñ):¸GÀTÓ!JÐà 0Ø(@Ø%7Ø26×2YÑ2Yñ	
ô
 ð
ô  Ó!ð
ˆð 	×Ñ×#Ñ#Ô%à # W§]¡]°3Ñ%7Ð8Ðô �:‹ !Ò#Ð#Ð#à*6ˆ×ÑÔ'Ø"'ˆ×ÑÔØ×Ñ×<Ñ<Ô>Ø0Bˆ×ÑÔ-à*>ˆ×ÑÔ'Ø+8ˆ×ÑÔ(ð *.ˆ×ÑÔ&Ø)-ˆ×ÑÔ&Ø8Pˆ×ÑÕ5ùòK.ùò2s   È?RÉ'Rc                óT  — t        | d«      rœt        | j                  t        «      s�| j                  j                  x}�h| j                  j
                  x}�Ot        |t        «      sJ ‚t        |t        «      sJ ‚d|› d�}t        |«      }|j                  ||«       || _        y y y y y )NrV  zCache line invalidated because z got deallocated)	ri  rþ   rV  rw  rã   rä   r‚   r„   Ú
invalidate)rÄ   Úobj_strrã   rä   rz  Údeleted_guard_managers         r»   rº  zCheckFunctionManager.invalidateØ  s·   € ô
 �D˜/Ô*Ü˜t×1Ñ1Ô3MÔNØ $× 2Ñ 2× >Ñ >Ð>�ÐKØ $× 2Ñ 2× >Ñ >Ð>�ÐKä˜k¬:Ô6Ð6Ð6ä˜k¬:Ô6Ð6Ð6Ø6°w°iÐ?OÐPˆFÜ$>¸vÓ$FÐ!à×"Ñ" ;Ð0EÔFØ!6ˆDÕð Lð Lð Oð +r½   c                ó:  — 	 t        |«      | j                  vr`t        j                  |«      | j                  t        |«      <   t        j                  |t        j                  | j                  |¬«      «       t        |«      S # t        $ r Y t        |«      S w xY w)zadd a weakref, return the id)r»  )	r^  rK  r'  r_  r  rn  ro  rº  r  )rÄ   r  r»  s      r»   rŽ  zCheckFunctionManager.id_refë  s€   € ð
	Ü�#‹w˜dŸn™nÑ,ô +2¯+©+°cÓ*:�—‘œr #›wÑ'Ü× Ñ Øœ×*Ñ*¨4¯?©?ÀGÔLôô
 �#‹wˆøô ò 	ØÜ�#‹wˆð	ús   ‚A7B Â	BÂBc                ób   — t        |«      | j                  v r| j                  t        |«         S y)zFLookup the _weakrefs created in id_ref function for ID_MATCH'd objectsN)r^  rK  )rÄ   r  s     r»   r�  z$CheckFunctionManager.lookup_weakrefsú  s(   € äˆc‹7�d—n‘nÑ$Ø—>‘>¤" S£'Ñ*Ð*Ør½   )NNNNNFF)r�  r3  r£  r¢   rã   úCacheEntry | Nonerâ   ú"Callable[[GuardFail], None] | Noner¡  r6  rÓ  r  r“  r9  r   rÐ   r]  rÐ   rÍ   rÑ   )r)  r�  r_  úlist[Guard]r£  r¢   rÍ   r  rÚ   )r_  rÁ  r^  r€  r�  r3  r£  r£   r   rÐ   r¡  r6  rÍ   z(tuple[GuardBuilder, GuardManagerWrapper])r)  r�  r­  rÁ  râ   rÀ  rÍ   rÑ   )r»  rÎ   rÍ   rÑ   )r  rã  r»  rÎ   rÍ   r!  )r  rã  rÍ   zweakref.ref[object] | None)rÒ   rÓ   rÔ   rê   rb  r¯   rV  rP  rQ  rº  rŽ  r�  r…  r½   r»   r5  r5  z  sj  … ð
 *.Ø<@àØ26Ø6:Ø!Ø"ðG!àðG!ð (ðG!ð 'ð	G!ð
 :ðG!ððG!ð 0ðG!ð 4ðG!ð ðG!ð ðG!ð 
óG!ðR	HÐ)Ð+Dó 	ðz:àðz:ð #ðz:ð (ð	z:ð
 
óz:ðH ðA&à"ðA&ð &5ðA&ð ð	A&ð
 -ðA&ð ðA&ððA&ð 
2óA&ðFHQàðHQð  ðHQð :ð	HQð
 
óHQóT7ó&ôr½   r5  c                ó,  ‡	— ddl m} t        «       Š		 ‰	j                  | «       dˆ	fd„} |«       }| D ]]  } ||«      \  }}|j                  |«       |j                  d|› d�«       |j                  «       5  |j                  d«       d d d «       Œ_  |«       }|j                  d«       |j                  «       5  |j                  |«       |j                  d	«       d d d «        |«       }|j                  d
|› d�«       |j                  «       5  |j                  |«       |j                  d«       d d d «       |j                  «       |j                  «       fS # t        $ r dd„}Y �ŒCw xY w# 1 sw Y   �ŒHxY w# 1 sw Y   Œ¡xY w# 1 sw Y   ŒVxY w)Nr   r@   c                ó&   •— ‰j                  | «      S rÚ   )rÍ  )rT  Úcsepasss    €r»   rÍ  z%build_guard_function.<locals>.replace  s   ø€ Ø—?‘? 4Ó(Ð(r½   c                ó
   — g | fS rÚ   r…  )rT  s    r»   rÍ  z%build_guard_function.<locals>.replace  s   € Ø�t�8ˆOr½   zif not (z):zreturn Falsezdef guard(L):zreturn Truezdef ___make_guard_fn(zreturn guardrk  )
Útorch._inductor.utilsrA   r;  rf  ÚRecursionErrorrd  rÈ   r]  Úsplicerj  )
rß   Úclosure_argsrA   rÍ  Ú
guard_bodyrT  rN  rM  Úmake_guard_fnrÄ  s
            @r»   r7  r7    s‚  ø€ Ý4ä‹o€Gð
Ø�‰�jÔ!õ	)ñ  Ó!€JØò 1ˆÙ ›‰ˆ�Ø×Ñ˜gÔ&Ø×Ñ˜x¨ v¨RÐ0Ô1Ø×ÑÓ ñ 	1Ø× Ñ  Ô0÷	1ð 	1ð	1ñ Ó€EØ	‡O�O�OÔ$Ø	�‰‹ñ 'Ø�‰�ZÔ Ø�‰˜Ô&÷'ñ #Ó$€MØ×ÑÐ3°L°>ÀÐDÔEØ	×	Ñ	Ó	ñ 0Ø×Ñ˜UÔ#Ø×Ñ Ô/÷0ð ×ÑÓ  -×"8Ñ"8Ó":Ð:Ð:øô? ò ö	ðú÷	1ñ 	1ú÷'ð 'ú÷0ð 0ús5   “E Á7E1Â;#E>Ä#F
ÅE.Å-E.Å1E;	Å>FÆ
Fc                 óh   — t         j                  j                  j                  j	                  d«      S )Nr¨   ©r.  rZ  Ú	_internalÚ	log_stateÚis_artifact_enabledr…  r½   r»   Úis_recompiles_enabledrÑ  -  s#   € Ü�>‰>×#Ñ#×-Ñ-×AÑAÀ,ÓOÐOr½   c                 óh   — t         j                  j                  j                  j	                  d«      S )Nr©   rÍ  r…  r½   r»   Úis_recompiles_verbose_enabledrÓ  1  s$   € Ü�>‰>×#Ñ#×-Ñ-×AÑAÐBVÓWÐWr½   c                óP   ‡— | D �cg c]  }t        |«      ‘Œ c}Šdˆfd„}|S c c}w )Nc                 ó�   •— t        «       } t        | «      t        ‰«      k7  ryt        ‰| «      D ]  \  }}|t        |«      usŒ y yr.  )rŽ   rµ   r  r>  )Ú	cur_stackrÎ  Úmoder4  s      €r»   Úcheck_torch_function_mode_stackzMmake_torch_function_mode_stack_guard.<locals>.check_torch_function_mode_stack;  sL   ø€ Ü1Ó3ˆ	äˆy‹>œS ›ZÒ'Øä˜E 9Ó-ò 	‰HˆB�Øœ˜d›Ò#Ùð	ð r½   ©rÍ   rÐ   rk  )Úinitial_stackro  rØ  r4  s      @r»   r¢  r¢  6  s+   ø€ ð ,Ö,˜ŒT�!�WÒ,€Eõ
ð +Ð*ùò -s   †#ÚScopec                ó|  — | j                   €J ‚t        | j                   «      }t        j                  t        «      }| j
                  D ]1  }||d<   t        t        |||«      «      }||   j                  |«       Œ3 |D �cg c]  }t        ||   «      dkD  sŒ||   › ‘Œ }}dj                  |«      }d|› �gS c c}w )NÚ__compile_source__rP   rS  zDuplicate tensors found: )rá   r!  r½  r[  rÛ  ræ   r^  Úevalrw  rµ   r6  )	rV  r‘  rá   Úids_to_sourcer  Ú	tensor_idr  Úduplicate_tensorsrz  s	            r»   Ú1recompilation_reason_for_no_tensor_aliasing_guardrâ  M  sÜ   € ð ×%Ñ%Ð1Ð1Ð1Ü˜×2Ñ2Ó3€LÜ×+Ñ+¬DÓ1€MØ&×AÑAò 7ˆØ-:ˆÐ)Ñ*Ü”t˜M¨<¸Ó?Ó@ˆ	Ø�iÑ ×'Ñ'¨Õ6ð7ð ,9öØ$'¼CÀÈcÑ@RÓ<SÐVWÓ<Wˆ=˜ÑÐ
ÑðÐð ð �Y‰YÐ(Ó)€FØ'¨ xÐ0Ð1Ð1ùòs   ÂB9ÂB9c                ó4   — ddl }d}|j                  |d| «      S )z®
    Replace occurrences of L[...] with just the inner content.
    Handles both single and double quotes.

    This is to generate user friendly recompilation messages.
    r   NzL\[\s*['\"](.*?)['\"]\s*\]z\1)ÚreÚsub)rZ  rä  Úpatterns      r»   r&  r&  `  s   € ó à+€GØ�6‰6�'˜5 !Ó$Ð$r½   c           	     óR  — | �t        | «      dk(  ryg }| D ]  }|j                  }|j                  }|j                  }|j                  r|j                  j                  «       nd}|j                  d|› d|› d|› �«       |sŒl|j                  d|› �«       Œ� dj                  |«      S )zÅ
    Format the user stack trace for display in guard failure messages.

    Returns a formatted string representation of the stack trace,
    or an empty string if no user stack is available.
    r   rg  z  File "z", line z, in ú    rÊ  )rµ   rÓ  rb  rã  rÉ   Ústriprw  r6  )rÑ  ÚlinesÚframerÓ  rb  rã  Úsource_lines          r»   Úformat_user_stack_tracerí  m  s§   € ð ÐœS ›_°Ò1Øà€EØò /ˆØ—>‘>ˆØ—‘ˆØ�z‰zˆØ,1¯JªJ�e—j‘j×&Ñ&Ô(¸BˆØ�‰�x ˜z¨°&°¸¸t¸fÐEÔFÚØ�L‰L˜4 ˜}Ð-Õ.ð/ð �9‰9�UÓÐr½   c                ó   — | j                   €J ‚| j                  €J ‚|| j                   d   dœ}|j                  | j                  «       g }d}| j                  r| j                  j                  }d}g }| j                  |«      }	d}
|	j                  sJ|	j                  }t        |«      dk(  rd|d   v rd	}n|}g }|	j                  rBt        |	j                  «      }
n,||k7  rd
}|j                  |«       nd}|j                  |«       |rt        | |«      }n…|D ]€  }t        | j                   «      }||d<   t        «       5  	 t        |||«      }	 ddd«       t%        t&        «      r|s|}t%        |t(        «      sŒd|j                  |«       t#        «       rŒ€ n t        |«      dk(  r|› d|d   › �}n|› d�dj+                  |«      z   }|
r|d|
› �z  }t-        |«      S # t         $ r t#        «       r
Y ddd«       Œå‚ w xY w# 1 sw Y   Œ´xY w)z­
    Return the reason why `guard_manager` failed.
    Updates `guard_failures` with the generated reason.
    Only the first failed check of guard_manager is reported.
    Nr…  rƒ  Frg  rP   zDuplicate tensor foundr   Ta  BACKEND_MATCH failure: torch.compile detected different backend callables. If this is unexpected, wrap your backend in functools.partial (or reuse the same cached backend) to avoid creating a new backend function each time. More details: https://github.com/pytorch/pytorch/issues/168373z»Unexpected recompilation: runtime guards failed even though they passed during recompilation-reason analysis. Please open an issue with a minimal repro: https://github.com/pytorch/pytorchrÝ  rL  z; z
User stack trace:
)rá   rÝ   rÓ  rã   rB  rq  Úresultrà   rµ   rÑ  rí  rw  râ  r!  rN   rÞ  r­  rÓ  rþ   rÐ   rÎ   r6  r&  )rV  Úf_localsÚ
compile_idrB  r‘  ra  Úcache_entry_backendÚno_tensor_aliasing_check_failedrà   Úguard_debug_infoÚuser_stack_strrz  rP  rá   Úfail_reasonÚ
reason_strs                   r»   rS  rS  …  sV  € ð ×%Ñ%Ð1Ð1Ð1Ø×%Ñ%Ð1Ð1Ð1Ø ×!;Ñ!;¸CÑ!@ÑA€EØ	‡L�L�×+Ñ+Ô,Ø€GàÐØ× Ò Ø+×7Ñ7×?Ñ?Ðà&+Ð#à$&ÐØ$×2Ñ2°8Ó<ÐØ€Nð
 ×"Ò"Ø-×@Ñ@Ðô Ð!Ó" aÒ'Ø'Ð+=¸aÑ+@Ñ@Ø26Ñ/à,�Ø%'Ð"ð ×&Ò&Ü4Ð5E×5PÑ5PÓQ‰NØ	 Ò	'ðNð 	ð 	�‰�vÕð2ð 	ð 	�‰�vÔá&ÜCØ˜5ó
‰ð 'ò 	ˆDÜ × :Ñ :Ó;ˆLØ15ˆLÐ-Ñ.Ü/Ó1ñ ðÜ"& t¨\¸5Ó"A‘K÷ô ˜+¤tÔ,±[Ø"�Ü˜+¤sÕ+Ø—‘˜{Ô+Ü4Õ6Ùð'	ô. ˆ7ƒ|�qÒØ"�| 2 g¨a¡j \Ð2‰
à"�| 2Ð&¨¯©°7Ó);Ñ;ˆ
ÙØÐ-¨nÐ-=Ð>Ñ>ˆ
Ü˜ZÓ(Ð(øô/ !ò Ü4Ô6Ø ÷ð ð ð	ú÷ð ús*   ÅHÅG"Ç"HÇ5HÇ?HÈHÈH	c                óZ  — t        | t        «      r|› d| j                  › �S t        | |||«      }|r|S t        t
        |      j                  |«       	 | j                  �&| j                  t        |xs dt
        |   «      «       |S # t        $ r t        j                  d«       Y |S w xY w)NrL  zunknown reasonzVFailure in guard_fail_fn callback - raising here will cause a NULL Error on guard eval)rþ   rw  ry  rS  r�   r–   rw  râ   r†   r­  rK  ra  )rV  r·   rð  rñ  rB  Úskip_loggingr÷  s          r»   Úget_guard_fail_reasonrú  ð  sÁ   € ô �-Ô!;Ô<Ø�˜R × AÑ AÐBÐCÐCÜ-Ø�x ¨Wó€Jñ ØÐÜ”= Ñ&Ñ'×.Ñ.¨zÔ:ð
Ø×&Ñ&Ð2Ø×'Ñ'Ü˜*Ò8Ð(8¼-ÈÑ:MÓNôð Ðøô ò 
Ü�‰Ødõ	
ð Ðð
ús   Á2B ÂB*Â)B*c                ód  ‡
— g Š
| �Zt        | j                  | j                  |j                  | j                  ||«      }|r‰
j                  |«       | j                  } | �ŒZ|j                  }|r‰
S t        «       xs
 t        «       }|st        j                  ròt        «       r"dj                  d„ t        ‰
«      D «       «      }n%t        j                  dj                  ‰
«      d«      }d|› �}d|j                   › d|j"                  › d|j$                  › dt        j                  |d	«      › �}	|r5t        «       rt&        j)                  |	«       nt*        j)                  |	«       t        j                  rt-        j.                  |	«      ‚t0        j2                  j5                  d
d„ ˆ
fd„¬«       ‰
S )zÒ
    Return the list of guard failure reasons using cache_entry.
    Logs the recompilation reason if `recompiles` logging is enabled.
    Raises a RecompileError if `config.error_on_recompile` is enabled.
    z

c              3  ó\   K  — | ]$  \  }}d |› d�t        j                  |d«      z   –— Œ& y­w)zguard z failures:
ú- N)rä  r]  )r  rË  rz  s      r»   r  z:get_and_maybe_log_recompilation_reasons.<locals>.<genexpr>3  s5   è ø€ ò #á�A�vð ˜˜˜<Ð(¬8¯?©?¸6À4Ó+HÕHñ#ùs   ‚*,rÊ  rý  z-triggered by the following guard failure(s):
zRecompiling function z in ú:rè  Úartifactc                 ó   — dddœS )NÚrecompile_reasonsr·  )rã  Úencodingr…  r…  r½   r»   r¨  z9get_and_maybe_log_recompilation_reasons.<locals>.<lambda>J  s   € Ø'Øñ
€ r½   c                 ó.   •— t        ‰ «      dk(  r‰ d   S ‰ S )NrP   r   rU  )ra  s   €r»   r¨  z9get_and_maybe_log_recompilation_reasons.<locals>.<lambda>N  s   ø€ ¬¨W«¸Ò):˜7 1™:€ À€ r½   )Úmetadata_fnrJ  )rú  rV  r·   rð  rñ  rw  rz  r�  rÑ  rÓ  rQ   Úerror_on_recompiler6  r·  rä  r]  r&  Úco_filenameÚco_firstlinenoÚrecompiles_verbose_logr9  Úrecompiles_logrS   ÚRecompileErrorr.  rZ  r[  )rã   rë  rB  rù  rz  r·   Údo_recompiles_logÚfailuresÚguard_failure_detailsÚmessagera  s             @r»   Ú'get_and_maybe_log_recompilation_reasonsr    sš  ø€ ð €GØ
Ð
!Ü&Ø×%Ñ%Ø×ÑØ�N‰NØ×"Ñ"ØØó
ˆñ Ø�N‰N˜6Ô"Ø!×&Ñ&ˆð Ñ
!ð �<‰<€DáØˆä-Ó/ÒRÔ3PÓ3RÐáœF×5Ò5Ü(Ô*Ø—{‘{ñ #ä!*¨7Ó!3ô#ó ‰Hô
  —‘ t§y¡y°Ó'9¸4Ó@ˆHà<¸X¸JÐGð 	ð $ D§L¡L >°°d×6FÑ6FÐ5GÀqÈ×I\ÑI\ÐH]Ð]_Ü�‰Ð4°fÓ=Ð>ð@ð 	ñ Ü,Ô.Ü&×,Ñ,¨WÕ5ä×$Ñ$ WÔ-Ü×$Ò$Ü×$Ñ$ WÓ-Ð-ä	‡N�N×#Ñ#Øñ
ó Hð $ô ð €Nr½   c                ó  — | }t        «       }| �8|j                  | j                  j                  «       «       | j                  } | �Œ8|} | �:|| j                  _        | j                  j                  «        | j                  } | �Œ:|S rÚ   )rL   rÓ  rV  r  rz  ré   r  )rã   Úfirst_cache_entryÚacc_diff_guard_sourcess      r»   rL  rL  T  s—   € ð $Ðô
 /9«lÐØ
Ð
!Ø×%Ñ%Ø×%Ñ%×@Ñ@ÓBô	
ð "×&Ñ&ˆð	 Ñ
!ð $€KØ
Ð
!Ø7Mˆ×!Ñ!Ô4Ø×!Ñ!×=Ñ=Ô?Ø!×&Ñ&ˆð Ñ
!ð "Ð!r½   c                ó¸  — t        d|j                  › d|j                  › d|j                  › �«       t        ddj	                  | j
                  «      z   dz   «       t        ddj	                  | j                  «      «       t        | «       d|i| j                  ¥}| j                  D ]  }	 t        || j                  |«       Œ y #  t        d|› �«       Y Œ0xY w)	NzERROR RUNNING GUARDS ú rþ  zlambda rS  z and
  r„  zMalformed guard:
)
Úprintr&  r  r  r6  rÞ   rß   rÝ   rÞ  rá   )rV  r·   rð  r¶   Úlastr«  rM  s          r»   Úguard_error_hookr  o  sÐ   € ô 
Ø
 §¡˜~¨Q¨t×/?Ñ/?Ð.@ÀÀ$×BUÑBUÐAVÐWôô 
ˆ)�d—i‘i × 2Ñ 2Ó3Ñ
3°cÑ
9Ô:Ü	ˆ#ˆz�‰˜}×7Ñ7Ó8Ô9ä	ˆ-Ôà˜Ð? M×$>Ñ$>Ð?€KØ×)Ñ)ò 0ˆð	0Ü�˜×2Ñ2°KÕ@ñ0øð	0ÜÐ& u gÐ.Ö/ús   Â-CÃCc              #  ób   K  — t        «       }| D ]  }||vsŒ|–— |j                  |«       Œ y ­wrÚ   )rç   rõ   )Úseqr¯  ro  s      r»   Úuniquer  ‰  s3   è ø€ Ü‹5€DØò ˆØ�DŠ=ØŠGØ�H‰H�Q�Kñùs   ‚/—/c                ó  — |rŠ|| k7  r…t        |«      }t        | «      }t        |«      st        | «      r/t        j                  | j                  › d|j                  › d�«      ‚||k(  r%t        j                  t        j                  |¬«      S y )Nz is aliasing zC. This is not supported. Please do a clone for corresponding input.)ry  )	r/   r.   rS   ÚUnsafeScriptObjectErrorrã  rn  ro  r�  r|  )Ú
obj_sourceÚdupe_sourceÚser_source_is_localÚsource_is_locals       r»   Úmake_dupe_guardr!  ‘  s“   € ñ �{ jÒ0Ü2°;Ó?ÐÜ.¨zÓ:ˆÜ/Øô
ä1°*Ô=Ü×-Ñ-Ø—?‘?Ð# =°×1AÑ1AÐ0Bð C>ð ?óð ð  /Ò1ô ×$Ñ$¤\×%AÑ%AÈKÔXÐXØr½   )Úskipc                ó”  — ddl m} |j                  «       j                  }|j                  ryt
        j                  t        j                  «      xs# t        j                  t        j                  «      }|j                  j                  }|D ]8  }t        |t        «      sJ ‚t        |j                  «      rŒ+ |||| dz   ¬«       Œ: y)z«
    Add dynamo guards to the current tracing context.

    Args:
        guards: guard(s) to add
        skip: number of stack frames to ignore for debug stack trace
    r   )ÚTracingContextNrP   )Úcollect_debug_stackr"  )Útorch._guardsr$  r¥  Úguards_contextÚskip_installr8  r‘  r’  r“  r�  rž  rõ   rþ   r:   r1   rÝ  )r"  r§   r$  r'  r%  rõ   rM  s          r»   Úinstall_guardr)  µ  s®   € õ -à#×'Ñ'Ó)×8Ñ8€NØ×"Ò"Øä$×1Ñ1Ü�‰óò 8ä	×	(Ñ	(¬¯©Ó	7ð ð ×
&Ñ
&×
*Ñ
*€CØò KˆÜ˜%¤Ô'Ð'Ð'Ü$ U×%=Ñ%=Ô>ØÙˆEÐ':ÀÈÁÖJñ	Kr½   rj  z"dict[str, GuardCheckSpec | object]ÚGUARD_VALUE_DISPATCHrˆ  r7  z9GuardBuilder methods missing guard_check_spec decorator: rS  z[. Use @register_guard_check_spec, @skip_guard_check_spec, or @unsupported_guard_check_spec.)r·   r3  r¸   rÎ   rÍ   r!  )r�  r   rÍ   r  )rÍ   zset[str])rÍ   r4  )rö   rG  rÍ   rÎ   )rz  rÎ   rM  r¤  rÍ   rÎ   rÚ   )rß   zstr | list[str]rM  r¤  rÞ  r‚  rÍ   r~  )rX  úSource | NonerÍ   r‚  )rì  r   rÍ   z
int | None)rï  r  rÍ   úlist[int | None])r÷  r  rã  rÎ   rø  r,  rù  r,  rú  r>  rû  r¡   rÍ   rÎ   )r  r7  r  r   rÍ   r!  )rX  r   r¶   r   rÍ   rÎ   )r  r   rÍ   r
   )r÷  r   rÍ   rÐ   )rX  z-DictGetItemSource | DictSubclassGetItemSourcer&  r   r'  r   r  r   r  r  rÍ   r   )rM  r:   rÍ   rÐ   )r·   r3  rÍ   r~  )rY  r  rÍ   útuple[Any, ...])rM  r   r÷  r   rÍ   r-  )r÷  r   rE  r-  rÍ   rÐ   )rM  r   r÷  r   rÍ   r   )r÷  r   rE  r   rÍ   rÐ   )r÷  r   rÍ   r   )rÍ   ztuple[type, ...])rM  r:   r)  r�  rÍ   r‡   )r�  r~  r)  r�  rÍ   r  )rß   r~  rÉ  rÎ   rÍ   ztuple[str, str]rÙ  )rÚ  z'list[torch.overrides.TorchFunctionMode]rÍ   zCallable[[], bool])rV  rØ   r‘  rÛ  rÍ   r~  )rZ  rÎ   rÍ   rÎ   )rÑ  ztraceback.StackSummary | NonerÍ   rÎ   )
rV  rØ   rð  r4  rñ  zCompileId | NonerB  zCallable | NonerÍ   rÎ   rÏ   )rV  rØ   r·   r3  rð  r4  rñ  r8   rB  r›   rù  rÐ   rÍ   rÎ   )
rã   r¿  rë  rƒ   rB  r›   rù  rÐ   rÍ   r~  )rã   r¿  rÍ   r€  )rV  rˆ   r·   r3  rð  r4  r¶   r!  r  rÐ   rÍ   rÑ   )r  zSequence[T]rÍ   zGenerator[T, None, None])r  r>   r  r+  rÍ   zfunctools.partial[Any] | None)r§   r:   r"  r!  rÍ   rÑ   (D  r„  Ú
__future__r   rË  r”  r½  ro  r(  rn  rÃ  r—  r-  rÂ  r’  rÀ  ÚpicklerÀ  rä  rE  r4  rÂ  r'  Ú
contextlibr   r–  r   r   Útypingr   r	   r
   r   Útyping_extensionsr   r   r   r   r.  Útorch.overridesÚtorch.utils._deviceÚtorch._C._dynamo.eval_framer   Útorch._C._dynamo.guardsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   Útorch._dynamo.sourcer+   r,   r-   r.   r/   r0   r1   r2   r3   r4   Útorch._dynamo.utilsr5   r6   r&  r7   r8   r9   r:   r;   r<   r=   r>   r?   rÆ  rA   Útorch._library.opaque_objectrB   rC   Útorch._loggingrD   Útorch._utils_internalrE   Ú%torch.fx.experimental.symbolic_shapesrF   rG   rH   rI   rJ   Útorch.utilsrK   rì  Útorch.utils._ordered_setrL   Útorch.utils._tracebackrM   rN   Útorch.utils.weakrO   rg  rQ   rR   rS   Ú
eval_framerT   rX  rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   rÅ  r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   Úcollections.abcr›   rœ   r¯   r>  rf  r  Únumpyr‰  ÚModuleNotFoundErrorr�   rž   rŸ   rý  r    Útorch._Cr¡   rÒ  r¢   r£   ré  r¥   r¦   Ú	getLoggerrÒ   rK  rZ  ÚgetArtifactLoggerr8  r	  r  r�  r:  r¼   r¿   rØ   rŽ  Úcacher›  r�  rÈ  rÎ  rò  r“  rI  rØ  rà  rÜ  rí  rð  rÿ  r  r  r  r  rp  r  r,  r1  r3  r)  r  r´   r;  rã  rp  rA  rH  rL  rO  rT  rX  rZ  r_  ra  rf  rn  rr  rt  r  r�  r;  ru  rw  rÞ  r~  r�  r�  ÚPicklerr’  r+  r7  r5  r7  rÑ  rÓ  r¢  r!  rÎ   rÛ  râ  r&  rí  rS  rú  r  rL  r  r  r!  r)  Údirr  rl  r*  Úisupperr	  r   Ú_methodrµ   rÛ  Ú	signatureÚ
parametersÚ_paramsri  ÚMISSING_GUARD_SPECSr  r6  )rã  rl  rv  rL  rO  s   00000r»   ú<module>rQ     s  ðòõ" #ã 
Û Û Û Û Û Û Û Û 	Û Û Û Û Û 
Û Û Û Û Û Ý %Ý Ý  ß ;Ó ;ß CÑ CÝ !ã Û Û Ý >÷÷ ÷ ÷ ÷ ÷ ÷ ÷8÷ ÷ ÷ H÷
÷ 
õ 
õ 1ß RÝ %Ý 1÷õ õ *Ý /ß OÝ *ç (Ñ (Ý ,÷.÷ .÷ .÷ .÷ .÷ .÷ .÷ .÷ .÷ .÷ .õ .÷^÷ ñ ÷÷ ÷ ÷ ÷ ñ, Ý(ð HLÐ ÐDÓ KÙ˜O˜IŸOšOÓ-Ó.Ð ðÛñ
 ß=Ñ=åå'ßTÝ4áˆCƒL€Ø€g×Ò˜Ó!€Ø�^Š^×-Ò-¨h¸ÓA€
Ø—’×1Ò1°(¸LÓI€ØŸš×9Ò9ØÐ"óÐ ð —^’^×5Ò5°hÐ@PÓQÐ ð"Ð óô,˜~ô ,÷ñ óDTð ‡‚ò.ó ð.ð +/€Ð'Ó .óó@/ð —h’h×&Ò&×:Ò:Ð ó%ð6 "&ðØðàðð ðð ó	ó<ó,'óKðØðà
ðð ðð ð	ð
 ðð "ðð 	óó*3ó1óó.ð €×Ò˜dÔ#÷ð ó $ðð*Ø9ð*à(ð*ð ð*ð ð	*ð
 )ð*ð ó*óZ
Gð ×Ò÷ð ó ðô
�t—y’yõ ð
 ‡‚ò8ó ñ8ô�Zõ ò6 ‹X�
ôEô
-ô;ôô
;ô
1ô3ôô!ô?óó÷Xò Xó$ôP&
Ð#õ P&
÷HMR8ò R8ôjô$Ð!4õ $ð ×Ò÷$ð $ó ñ$ð ×Ò÷,ð ,ó ñ,÷
ò ð  ‡‚ò
ó ñ
ôh˜Ÿšõ hôVð:)Øð)àð)ð ô)÷bD
ò D
ôN);ôXPôXð
+Ø:ð+àô+ñ( 	�g™t¡C© KÑ0Ó1�ð2Ø&ð2Ø/4ð2àô2ô&
%ðØ-ðàôð0h)Ø&ðh)àðh)ð !ðh)ð
 ðh)ð 	ôh)ðd ðØ&ðà
ðð  ðð ð	ð ðð ðð 	ôðH ðBØ"ðBàðBð ð	Bð
 ðBð ôBðJ"Ø"ð"àô"ð60Øð0à
ð0ð  ð0ð ð	0ð
 ð0ð 
ô0ñ. Ñ%Ô &ôð!Øð!Ø%2ð!à"ô!ðH /0ö Kò< ‘LÓ!÷<àÚš7¡<°Ó6Ð8JÈDÓQÐQ‰Øðð 	�'�Mó<Ñ Ð8ó ò ‘\Ó"÷	ð 	àØˆQ�x×ÒÔØ×Ò˜SÔ!ÚšG¡L°%¸Ó>Ð>‘Ô?Ú’tÐ-˜G×-Ò-­gÓ6×AÒAÓBÐB‰GÓCÀqÒHÝ�‰
�gÒÚ•GÐ/Ô0ò 
ô	Ñ ò Ú
Ø
CØ�9Š9Ñ(Ó)Ð
*ð +Dð	Eóð ð øðm` ò Ø	ƒBðüóD`<ùô	s   ÈZ= Ö>'[×=B[Ú=[Û[