ó
    Eñi¦ ã                  óú
  • % S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKJr  SSK
Jr  SSKJrJrJrJrJrJ r   SSK!J"r"J#r#J$r$  SS	KJ%r%  SSK&r&SSK'r&SSK(r&SS
K)J*r*  SSK+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErE  SSKFJGrGJHrHJIrIJJrJJKrKJLrLJMrMJNrNJOrOJPrP  SSKQJRrRJSrS  SSKTJUrUJVrVJWrWJXrXJYrYJZrZJ[r[J\r\J]r]  SSK^J_r_  SSK`JaraJbrb  SSKcJdrd  SSKeJfrf  SSKgJhrhJiriJjrjJkrkJlrl  SSKmJnro  SSKpJqrq  SSKrJsrsJtrt  SSKuJvrv  SSKwJxrxJyryJzrz  SSK{J|r|  SSK}J~r~JrJ€r€J�r�J‚r‚JƒrƒJ„r„J…r…J†r†J‡r‡JˆrˆJ‰r‰JŠrŠJ‹r‹JŒrŒJ�r�JŽrŽJ�r�J�r�J‘r‘J’r’J“r“J”r”J•r•J–r–J—r—J˜r˜J™r™JšršJ›r›JœrœJ�r�JžržJŸrŸJ r J¡r¡J¢r¢J£r£J¤r¤J¥r¥J¦r¦J§r§J¨r¨J©r©Jªrª  SSKJ«r«J¬r¬J­r­J®r®J¯r¯J°r°J±r±  SSK²J³r³J´r´JµrµJ¶r¶J·r·J¸r¸J¹r¹JºrºJ»r»J¼r¼J½r½J¾r¾J¿r¿JÀrÀJÁrÁJÂrÂJÃrÃJÄrÄJÅrÅ  \(       a  SSKÆJÇrÇ  SrÈS\ÉS '    SSKÊrË\(       a$  SS!KÆJÍrÍJÎrÎJÏrÏ  SS"KÐJÑrÑ  SS#KÒJÓrÓ  SS$KÔJÕrÕJÖrÖ  SS%K×JØrØ  \$" S&5      rÙ\GR´                  " \Û5      rÜ\&GRº                  GR½                  \ÛS'5      rß\&GRº                  GR½                  \ÛS(5      rà\&GRº                  GR½                  \ÛS)5      rá\&GRº                  GR½                  \ÛS*5      râS+rãSqS, jrä " S- S.\_5      rå " S/ S05      ræSrS1 jrç\GRÐ                  SsS2 j5       réSqêS3\ÉS4'   StS5 jrëSuS6 jrì\&GRÚ                  GRÜ                  GRÞ                  rïSvS7 jrð Sw       SxS8 jjrñSyS9 jròSzS: jróS{S; jrô              S|S< jrõS}S= jröS~S> jr÷SS? jrøS€S@ jrù\GRô                  " SASB9 " SC SD5      5       rû            S�SF jrüS‚SG jrý\GRô                   " SH SI5      5       rþ " SJ SE\GRþ                  5      Gr \GRÐ                  SƒSK j5       Gr " SL SM\Y5      Gr " SN SO5      GrS‚SP jGr " SQ SR\æ5      Gr\GRô                   " SS ST5      5       Gr\GRô                   " SU SV5      5       Gr " SW SX5      Gr\GRÐ                  S„SY j5       Gr	 " SZ S[\GR                  5      GrS…S\ jGr      S†S] jGr " S^ S_5      GrS‡S` jGrSˆSa jGrSˆSb jGr    S‰Sc jGr\#" SdG\G\G\4   5      Gr      SŠSe jGrS‹Sf jGr    SŒSg jGr          S�Sh jGr SŽ             S�Si jjGr SŽ         S�Sj jjGr    S‘Sk jGr            S’Sl jGr\|" G\5        S“Sm jGr      S”Sn jGr SSo.S•Sp jjGr!g! \Ì a    SrË GNpf = f)–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ÚOptionalÚTYPE_CHECKINGÚUnion)Ú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_custom_getattrÚget_torch_function_mode_stackÚ get_torch_function_mode_stack_atÚguard_failuresÚistypeÚ	key_is_idÚ	key_to_idÚnormalize_range_iterÚorig_code_mapÚtensor_always_has_static_shapeÚtuple_iterator_getitemÚtuple_iterator_lenÚunpatched_nn_module_getattrÚverify_guard_fn_signature)ÚCallablez(Optional[Callable[[Any, Any, Any], Any]]Ú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                ó\   • [        U 5      n[        U5      UR                  U5      -
  S-
  nU$ ©NrQ   )Ú&code_framelocals_names_reversed_cachedÚlenÚindex)ÚcodeÚvar_nameÚframelocals_names_reversedÚframelocals_idxs       ÚQ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_dynamo/guards.pyÚget_framelocals_idxr¾   ð   s=   € ô "HÈÓ!MÐäÐ&Ó'Ð*D×*JÑ*JÈ8Ó*TÑTÐWXÑXð ð Ðó    c                  ó:   ^ • \ rS rSrSS jrSSU 4S jjjrSrU =r$ )ÚIndentedBufferWithPrefixéþ   c                ó:   • SU R                   U R                  -  -  $ )Nz| )Ú_indentÚtabwidth©Úselfs    r½   ÚprefixÚIndentedBufferWithPrefix.prefixÿ   s   € Ø�t—|‘| d§m¡mÑ3Ñ4Ð4r¿   c                óX   >• U(       a  [         TU ]  U5        g [         TU ]  SU-   5        g )Nz+- )ÚsuperÚ	writeline)rÇ   ÚlineÚskip_prefixÚ	__class__s      €r½   rÌ   Ú"IndentedBufferWithPrefix.writeline  s$   ø€ ÞÜ‰GÑ˜dÕ#ä‰GÑ˜e d™lÕ+r¿   © ©ÚreturnÚstr©F)rÍ   rÔ   rÎ   ÚboolrÓ   ÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rÈ   rÌ   Ú__static_attributes__Ú__classcell__©rÏ   s   @r½   rÁ   rÁ   þ   s   ø† ô5÷,÷ ,r¿   rÁ   c                  óö   • \ rS rSrSrSSS jjr\SS j5       rSS jrSS jr	SS jr
SS	 jrSS
 jr    SS jrSS jr S     SS jjr      SS jr      SS jrSS jrS S jrS!S jrSS jrSrg)"ÚGuardManagerWrapperi	  zû
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                ó  • Uc  [        5       U l        OXl        S U l        S U l        S U l        / U l        S U l        S U l        S U l        S U l	        S U l
        0 U l        / U l        [        5       U l        [        5       U l        g ©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_guardsrM   Údiff_guard_sources)rÇ   rã   s     r½   Ú__init__ÚGuardManagerWrapper.__init__  s€   € Ø‰<Ü(Ó*ˆD�IàŒIà;?ˆÔØ6:ˆÔØ)-ˆŒ	Ø%'ˆŒØ7;ˆÔØ6:ˆÔØDHˆÔØ15ˆÔØ15ˆÔØACˆÔØ57ˆÔ'ä?B»uˆÔ&ä3=³<ˆÕr¿   c              #  óz   #   • [        5       U l         S v •  [        5       U l        g ! [        5       U l        f = f7frâ   )rï   rð   rÆ   s    r½   Ú#_preserve_printed_relational_guardsÚ7GuardManagerWrapper._preserve_printed_relational_guards'  s+   é € ä),«ˆÔ&ð	3Ûä-0«UˆDÕ*ø¬S«UˆDÕ*üs   ‚;“' —;§8¸;c                ó|   ^ ^^^• SU U4S jjmSU U4S jjmSUU4S jjmT" T R                   5        T R                  $ )Nc                ód  >• U R                  5       TR                  ;   =(       d    U R                  5       S:„  n[        U R	                  5       R                  5       5       H  u  nu  p4UT" U5      T" U5      -  -  nM     U(       a)  TR                  R                  U R                  5       5        U$ ©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_managerÚJGuardManagerWrapper.collect_diff_guard_sources.<locals>.visit_dict_manager:  s�   ø€ à—‘Ó! T×%<Ñ%<Ñ<×UÀÇÁÓ@QÐTUÑ@Uð ô -3Ø×+Ñ+Ó-×3Ñ3Ó5ö-Ñ(�Ñ(�wð #¡e¨G£n±u¸W³~Ñ&EÑEÒ"ñ-ö
 "Ø×'Ñ'×+Ñ+¨D¯O©OÓ,=Ô>à%Ð%r¿   c                óH  >• [        U [        5      (       a   eU R                  5       TR                  ;   =(       d    U R	                  5       S:„  nU R                  5        H  nUT" U5      -  nM     U(       a)  TR                  R                  U R                  5       5        U$ rù   )Ú
isinstancer   rú   rñ   rû   Úget_child_managersrÿ   )r   r  Ú	child_mgrrÇ   r  s      €€r½   Úvisit_managerÚEGuardManagerWrapper.collect_diff_guard_sources.<locals>.visit_managerH  s�   ø€ Ü! $Ô(8×9Ñ9Ð9Ð9ð —‘Ó! T×%<Ñ%<Ñ<×UÀÇÁÓ@QÐTUÑ@Uð ð "×4Ñ4Ö6�	Ø"¡e¨IÓ&6Ñ6Ò"ñ 7ö "Ø×'Ñ'×+Ñ+¨D¯O©OÓ,=Ô>à%Ð%r¿   c                óV   >• U c  g[        U [        5      (       a  T" U 5      $ T" U 5      $ )NF©r	  r   ©r   r  r  s    €€r½   r  Ú=GuardManagerWrapper.collect_diff_guard_sources.<locals>.visitV  s/   ø€ Ø‰|ØÜ˜$Ô 0×1Ñ1Ù)¨$Ó/Ð/Ù  Ó&Ð&r¿   )r   r   rÓ   rÖ   )r   r   rÓ   rÖ   )rã   rñ   )rÇ   r  r  r  s   `@@@r½   Úcollect_diff_guard_sourcesÚ.GuardManagerWrapper.collect_diff_guard_sources0  s;   û€ ÷	&ð 	&÷	&ð 	&÷	'ð 	'ñ 	ˆd�i‰iÔà×&Ñ&Ð&r¿   c                óŽ   • [         R                  (       a   [        S5      (       a  U R                  5         U R	                  5         g )Nz3pytorch/compiler:use_recursive_dict_tags_for_guards)rR   Ú"use_recursive_dict_tags_for_guardsrF   Úfind_tag_safe_rootsÚprepare_diff_guard_managerrÆ   s    r½   ÚfinalizeÚGuardManagerWrapper.finalizea  s4   € Ü×4×4¼ØA÷:
ñ :
ð ×$Ñ$Ô&Ø×'Ñ'Õ)r¿   c                óD   • U R                  5         U R                  5         g râ   )r  Úpopulate_diff_guard_managerrÆ   s    r½   r  Ú.GuardManagerWrapper.prepare_diff_guard_managerh  s   € Ø×'Ñ'Ô)Ø×(Ñ(Õ*r¿   c                ó  ^^^^•       SS jmSU4S jjmSUU4S jjmSUU4S jjmT" U R                   5      nU HL  n[        UR                  5       [        R                  R
                  5      (       d  M<  UR                  5         MN     g)	uÒ	  
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                ó€   ^• U R                  5       nU R                  5       n[        U4S j[        X#5       5       5      $ )Nc              3  ón   >#   • U  H*  u  p[        UT5      =(       a    UR                  5       v •  M,     g 7frâ   )r	  Úis_tag_safe)Ú.0ÚaccessorÚmgrÚaccepted_accessorss      €r½   Ú	<genexpr>ÚTGuardManagerWrapper.find_tag_safe_roots.<locals>.check_tag_safety.<locals>.<genexpr>«  s1   øé € ð â%?‘M�Hô ˜8Ð%7Ó8×N¸S¿_¹_Ó=NÔNÚ%?ùs   ƒ25)Úget_accessorsr
  ÚallÚzip)r   r$  Ú	accessorsÚ
child_mgrss    `  r½   Úcheck_tag_safetyÚAGuardManagerWrapper.find_tag_safe_roots.<locals>.check_tag_safety¦  s@   ø€ ð ×*Ñ*Ó,ˆIØ×0Ñ0Ó2ˆJÜô ä%(¨Ô%?óó ð r¿   c                óò  >• [        U R                  5       [        5      (       d   e/ nSn[        U R	                  5       R                  5       5       H/  u  nu  pEUb  T" U5        Uc  M  UR                  T" U5      5        M1     U R	                  5       R                  5        H9  u  pEU(       a  X$R                  5       -  nU(       d  M'  X%R                  5       -  nM;     U(       a  U R                  5         U$ ©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  ÚCGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_dict_manager°  sæ   ø€ ô ˜d×<Ñ<Ó>Ä×EÑEÐEÐEàˆNØ"&Ðô -3Ø×+Ñ+Ó-×3Ñ3Ó5ö-Ñ(�Ñ(�wð Ñ&Ù˜'”NØÓ&Ø"×)Ñ)©%°«.Ö9ñ-ð %)×$?Ñ$?Ó$A×$HÑ$HÖ$JÑ �ÞØ'×+>Ñ+>Ó+@Ñ@Ð'ç�7Ø'×+>Ñ+>Ó+@Ñ@Ò'ñ %Kö #Ø×"Ñ"Ô$Ø!Ð!r¿   c                ó²  >• [        U [        5      (       a   e/ nU R                  5        H  nUR                  T" U5      5        M     U R	                  5       (       a|  [        U R                  5       [        R                  5      (       a<  U R                  5       (       a%  U R                  5       (       d  U R                  5         U$ U R                  5          U$ [        U R                  5       [        5      (       aT  U R                  5       nU R                  5       n[        S [        X45       5       5      nU(       a  U R                  5         U$ [        U R                  5       [        R                   R"                  5      (       a0  T" U [$        [&        45      nU(       a  U R                  5         U /$  U$ U R                  5       [(        R*                  [(        R,                  [.        [0        4;   a˜  [2        R4                  (       aƒ  T" U [6        [8        [:        [<        [>        45      nU R                  5        H4  n[        U[>        5      (       d  M  UURA                  5       [B        ;   -  nM6     U(       a  U R                  5         U$ [        U R                  5       [(        RD                  5      (       aJ  T" U [>        45      nU[        S U R                  5        5       5      -  nU(       a  U R                  5         U$ [        U R                  5       [F        5      (       ad  U RI                  5       RK                  [B        5      (       a<  [2        R4                  (       a'  T" U [L        45      nU(       a  U R                  5         U$ [        U R                  5       [N        5      (       a*  T" U [P        [R        45      nU(       a  U R                  5         U$ )Nc              3  ót   #   • U  H.  u  p[        U[        5      =(       a    UR                  5       v •  M0     g 7frâ   )r	  r   r   )r!  r"  r#  s      r½   r%  ÚQGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_manager.<locals>.<genexpr>à  s0   é € ð *â)C™˜ô ˜xÔ)AÓB×XÀsÇÁÓGXÔXÚ)Cùs   ‚68c              3  óv   #   • U  H/  n[        U[        5      =(       a    UR                  5       S :H  v •  M1     g7f)Úcell_contentsN)r	  r   Úget_attr_name)r!  r"  s     r½   r%  r;    s>   é € ð +ò %9˜ô ˜xÔ)=Ó>÷ DØ ×.Ñ.Ó0°OÑCôDâ$8ùs   ‚79)*r	  r   r
  r3  Úis_guarded_value_immutabler0  r1  ÚtorchÚTensorÚhas_no_accessorsÚhas_object_aliasing_guardr5  r2  r'  r(  r)  ÚnnÚModuler   r*   ÚtypesÚFunctionTypeÚ
MethodTypeÚstaticmethodÚclassmethodrR   Ú)assume_dunder_attributes_remain_unchangedr   r   r   r   r   r>  Údunder_attrs_assumed_constantsÚCellTypeÚtuplerú   Úendswithr(   Útyper)   r+   )	r   r6  r  r*  r+  r7  r"  r,  r  s	          €€r½   r  Ú>GuardManagerWrapper.find_tag_safe_roots.<locals>.visit_managerÌ  sg  ø€ Ü! $Ô(8×9Ñ9Ð9Ð9ð  ˆNØ!×4Ñ4Ö6�	Ø×%Ñ%¡e¨IÓ&6Ö7ñ 7ð ×.Ñ.×0Ñ0ô ˜d×<Ñ<Ó>ÄÇÁ×MÑMØ×,Ñ,×.Ñ.°t×7UÑ7U×7WÑ7WØ×*Ñ*Ô,ð| "Ð!ðy ×&Ñ&Õ(ðx "Ð!ôw ˜D×:Ñ:Ó<¼d×CÑCØ ×.Ñ.Ó0�	Ø!×4Ñ4Ó6�
Ü&)ñ *ä),¨YÔ)Có*ó 'Ð#ö 'Ø×&Ñ&Ô(ðf "Ð!ôe ˜D×:Ñ:Ó<¼e¿h¹h¿o¹o×NÑNÙ&6ØÔ6Ô8IÐJó'Ð#ö 'Ø×&Ñ&Ô(ð ðð ð	 'ð\ "Ð!ðM ×.Ñ.Ó0ä×&Ñ&Ü×$Ñ$Ü Üð	óô ×D×Dñ '7Øä)Ü,Ü1Ü3Ü,ðó	'Ð#ð !%× 2Ñ 2Ö 4�HÜ! (Ô,@×AÓAØ+Ø$×2Ñ2Ó4Ô8VÑVñÒ+ñ !5ö 'Ø×&Ñ&Ô(ðJ "Ð!ôI ˜D×:Ñ:Ó<¼e¿n¹n×MÑMÙ&6°tÔ>RÐ=TÓ&UÐ#à#¤sñ +ð %)×$6Ñ$6Ô$8ó+ó (ñ Ð#ö
 'Ø×&Ñ&Ô(ð6 "Ð!ô3 ˜4×9Ñ9Ó;¼U×CÑCØ—O‘OÓ%×.Ñ.Ô/M×NÑNÜ×D×Dñ '7ØÔ4Ð6ó'Ð#ö 'Ø×&Ñ&Ô(ð "Ð!ô ˜D×:Ñ:Ó<¼d×CÑCÙ&6ØÔ0Ô2FÐGó'Ð#ö 'Ø×&Ñ&Ô(à!Ð!r¿   c                óX   >• U c  / $ [        U [        5      (       a  T" U 5      $ T" U 5      $ râ   r  r  s    €€r½   r  Ú6GuardManagerWrapper.find_tag_safe_roots.<locals>.visit:  s1   ø€ Ø‰|Ø�	Ü˜$Ô 0×1Ñ1Ù)¨$Ó/Ð/Ù  Ó&Ð&r¿   N)r   r   r$  ztuple[type[GuardAccessor], ...]rÓ   rÖ   )r   r   rÓ   úlist[GuardManager])r   r   rÓ   rT  )rã   r0  r1  r@  rD  rE  Úmark_tag_safe_root)rÇ   r6  r   r,  r  r  r  s      @@@@r½   r  Ú'GuardManagerWrapper.find_tag_safe_rootsl  s�   û€ ðt	Øð	Ø4Sð	àô	÷	"÷8l	"ð l	"÷\	'ð 	'ñ ˜tŸy™yÓ)ˆÛ"ˆDÜ˜$×8Ñ8Ó:¼E¿H¹H¿O¹O×LÓLØ×'Ñ'Ö)ò #r¿   c                óœ   • U R                  U R                  5      U l        U R                  (       a  U R                  R	                  5         g g râ   )Úclone_with_chosen_sourcesrñ   rä   rë   Úupdate_diff_guard_root_managerrÆ   s    r½   r  Ú/GuardManagerWrapper.populate_diff_guard_managerF  s=   € Ø#×=Ñ=¸d×>UÑ>UÓVˆÔð ××Ø×Ñ×;Ñ;Õ=ð r¿   c                óJ   ^• SU4S jjnU R                   R                  U5      $ )Nc                ó*   >• U R                  5       T;   $ râ   )rú   )Únode_mgrÚchosen_sourcess    €r½   Ú	filter_fnÚ@GuardManagerWrapper.clone_with_chosen_sources.<locals>.filter_fnV  s   ø€ Ø×&Ñ&Ó(¨NÑ:Ð:r¿   )r]  r   rÓ   rÖ   )rã   Úclone_manager)rÇ   r^  r_  s    ` r½   rX  Ú-GuardManagerWrapper.clone_with_chosen_sourcesS  s   ø€ ÷	;ð �y‰y×&Ñ& yÓ1Ð1r¿   c                óŠ   • UR                   R                  nUR                  5       nU Vs/ s H
  oBS-   U-   PM     nnU$ s  snf )Nú: )rÏ   rØ   rè   )rÇ   ÚguardÚ
guard_nameÚpartsÚparts        r½   Úget_guard_linesÚ#GuardManagerWrapper.get_guard_lines[  sE   € Ø—_‘_×-Ñ-ˆ
Ø×(Ñ(Ó*ˆÙ6;Ó<²e¨d˜dÑ" TÔ)±eˆÐ<Øˆùò =s   «A c                óü   • UR                  5       nUR                  R                  nUS-   U-   nU(       a  USU-   -  nUSUR                  5        3-  nUSUR	                  5        SUR                  5        S3-  nU$ )Nz	: source=ú, z, type=z, tag_safe=(Ú))rú   rÏ   rØ   r1  r   Úis_tag_safe_root)rÇ   Úguard_managerÚaccessor_strÚsourceÚtÚss         r½   Úget_manager_lineÚ$GuardManagerWrapper.get_manager_linea  s‘   € ð ×)Ñ)Ó+ˆØ×#Ñ#×,Ñ,ˆØ�‰O˜fÑ$ˆÞØ�˜Ñ$Ñ$ˆAØ	ˆw�}×>Ñ>Ó@ÐAÐBÑBˆØ	ˆ|˜M×5Ñ5Ó7Ð8¸¸=×;YÑ;YÓ;[Ð:\Ð\]Ð^Ñ^ˆØˆr¿   c                óÔ  • [        UR                  5       R                  5       5       H«  u  nu  pEUR                  SU 35        UR	                  5          U(       a4  UR                  SU R                  U5       35        U R                  XB5        U(       a4  UR                  SU R                  U5       35        U R                  XR5        S S S 5        M­     g ! , (       d  f       M¿  = f)NzKeyValueManager pair at index=zKeyManager: zValueManager: )rü   rý   rþ   rÌ   Úindentrt  Úconstruct_manager_string)rÇ   r#  ÚbodyÚidxr  r  s         r½   Úconstruct_dict_manager_stringÚ1GuardManagerWrapper.construct_dict_manager_stringm  s¸   € ô (.¨c×.HÑ.HÓ.J×.PÑ.PÓ.RÖ'SÑ#ˆCÑ#�'Ø�N‰NÐ;¸C¸5ÐAÔBØ—‘•ÞØ—N‘N \°$×2GÑ2GÈÓ2PÐ1QÐ#RÔSØ×1Ñ1°'Ô@æØ—N‘N ^°D×4IÑ4IÈ'Ó4RÐ3SÐ#TÔUØ×1Ñ1°'Ô@÷ ‘ò (Tç–ús   ÁA7CÃ
C'	c           
     ó  • UR                  5          UR                  5        H¬  n[        U[        5      (       at  X0R                  ;  a=  U R                  R                  U5        UR                  U R                  U5      5        Md  UR                  UR                  R                  /5        MŒ  UR                  U R                  U5      5        M®     [        U[        5      (       a  U R                  X5        [        UR                  5       UR                  5       5       HH  u  pEUR                  U R!                  USUR#                  5        35      5        U R%                  XR5        MJ     S S S 5        g ! , (       d  f       g = f)Nzaccessed_by=)rw  Úget_leaf_guardsr	  r&   rð   rÿ   Ú
writelinesri  rÏ   rØ   r   r{  r)  r'  r
  rÌ   rt  Úreprrx  )rÇ   r#  ry  re  r"  r  s         r½   rx  Ú,GuardManagerWrapper.construct_manager_string{  s*  € ð �[‰[�]Ø×,Ñ,Ö.�Ü˜e¤_×5Ñ5Ø×$BÑ$BÓBØ×6Ñ6×:Ñ:¸5ÔAàŸ™¨×(<Ñ(<¸UÓ(CÖDàŸ™à %§¡× 8Ñ 8ðöð —O‘O D×$8Ñ$8¸Ó$?Ö@ñ /ô  ˜#Ô/×0Ñ0Ø×2Ñ2°3Ô=ô (+Ø×!Ñ!Ó# S×%;Ñ%;Ó%=ö(Ñ#�ð —‘Ø×)Ñ)¨)°|ÀHÇMÁMÃOÐCTÐ5UÓVôð ×-Ñ-¨iÖ>ñ(÷+ �]Ž]ús   ‘EE5Å5
Fc                óì  • U R                  5          [        5       nSUl        UR                  SSS9  UR                  SSS9  UR                  S5        U R	                  U R
                  U5        [        U R
                  S5      (       aA  U R
                  R                  5        H#  nUR                  U R                  U5      5        M%     UR                  5       sS S S 5        $ ! , (       d  f       g = f)NrQ   Ú T)rÎ   zTREE_GUARD_MANAGER:r'   Úget_epilogue_lambda_guards)rõ   rÁ   rÅ   rÌ   rx  rã   Úhasattrr„  r  ri  Úgetvalue)rÇ   ry  re  s      r½   Ú__str__Ú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�EØ—O‘O D×$8Ñ$8¸Ó$?Ö@ñ Dà—=‘=“?÷ 8×7×7ús   ‘C
C%Ã%
C3c                ó8   • U R                   R                  U5      $ râ   )rã   Úcheck©rÇ   Úxs     r½   rŠ  ÚGuardManagerWrapper.check¨  s   € à�y‰y�‰˜qÓ!Ð!r¿   c                ó8   • U R                   R                  U5      $ râ   )rã   Úcheck_verboser‹  s     r½   r�  Ú!GuardManagerWrapper.check_verbose¬  s   € à�y‰y×&Ñ& qÓ)Ð)r¿   c                ód   ^ ^^^• [        5       mSS jmSUUU U4S jjmT" T R                  5        g )Nc                óž   • / nU R                  5        H6  nUR                  S5      S   R                  5       nUR                  U5        M8     U$ )NÚ#r   )rè   ÚsplitÚrstripÚappend)Ú
leaf_guardrç   Úverbose_code_partÚ	code_parts       r½   Úget_code_partsÚMGuardManagerWrapper.populate_code_parts_for_debugging.<locals>.get_code_parts´  sP   € ØˆJØ%/×%BÑ%BÖ%DÐ!Ø-×3Ñ3°CÓ8¸Ñ;×BÑBÓD�	Ø×!Ñ! )Ö,ñ &Eð Ðr¿   c                óV  >• U R                  5        Hu  n[        U[        5      (       a<  UT;  a4  TR                  R	                  T" U5      5        TR                  U5        MR  MT  TR                  R	                  T" U5      5        Mw     U R                  5        H  nT" U5        M     g râ   )r~  r	  r&   rç   r3  rÿ   r
  )r#  re  r  rš  Úrelational_guards_seenrÇ   r  s      €€€€r½   r  ÚDGuardManagerWrapper.populate_code_parts_for_debugging.<locals>.visit»  sŒ   ø€ à×,Ñ,Ö.�Ü˜e¤_×5Ñ5ØÐ$:Ó:ØŸ™×.Ñ.©~¸eÓ/DÔEØ.×2Ñ2°5Ö9ñ ;ð —O‘O×*Ñ*©>¸%Ó+@ÖAñ /ð !×3Ñ3Ö5�	Ù�iÖ ò 6r¿   )r—  r$   rÓ   ú	list[str])r#  r   rÓ   r×   )rï   rã   )rÇ   rš  r�  r  s   `@@@r½   Ú!populate_code_parts_for_debuggingÚ5GuardManagerWrapper.populate_code_parts_for_debugging°  s(   û€ ä!$£Ðô	÷	!ò 	!ñ 	ˆd�i‰iÕr¿   )ræ   rë   rå   rç   rä   rñ   rì   ré   rê   rí   rî   rð   rã   rè   râ   )rã   zOptional[RootGuardManager]rÓ   r×   )rÓ   zGenerator[None, None, None])rÓ   úOrderedSet[str]©rÓ   r×   )r^  r¢  rÓ   r'   )re  r$   rÓ   rŸ  )ro  r   rp  úOptional[str]rÓ   rÔ   )r#  r   ry  rÁ   rÓ   r×   )r#  r   ry  rÁ   rÓ   r×   rÒ   ©rŒ  r   rÓ   rÖ   )rŒ  r   rÓ   r   )rØ   rÙ   rÚ   rÛ   Ú__doc__rò   r   rõ   r  r  r  r  r  rX  ri  rt  r{  rx  r‡  rŠ  r�  r   rÜ   rÑ   r¿   r½   rà   rà   	  sÎ   † ñö@ð, ó3ó ð3ô/'ôb*ô+ôX*ôt>ð2Ø-ð2à	ô2ôð JNð
Ø)ð
Ø9Fð
à	õ
ðAØ#ðAØ+CðAà	ôAð?Øð?Ø'?ð?à	ô?ô@#ô"ô*÷r¿   rà   c                ó  • [         R                  R                  5          [        U [        R
                  [        R                  45      (       a  [         R                  " U 5      OU sS S S 5        $ ! , (       d  f       g = frâ   )r@  Ú	overridesÚ_enable_torch_functionr	  ÚnpÚgenericÚndarrayÚ	as_tensor)Úas    r½   Ú
from_numpyr¯  Ë  sH   € ô 
�‰×	/Ñ	/Õ	1ä%/°´B·J±JÄÇ
Á
Ð3K×%LÑ%LŒu�Š˜qÔ!ÐRS÷ 
2×	1×	1ús   ŸAA0Á0
A>c                 óð   • SS K n SS Kn U R                  R                  U R                  R                  /nSSKJn  UR                  U5        U Vs1 s H  n[        R                  " U5      iM     sn$ s  snf )Nr   )ÚPOLYFILLED_MODULES)
Útorch._dynamo.external_utilsÚtorch._dynamo.polyfillsÚ_dynamoÚexternal_utilsÚ	polyfillsÚtorch._dynamo.polyfills.loaderr±  r3  ÚinspectÚgetfile)r@  Úmodsr±  Úms       r½   Úuninteresting_filesr¼  Õ  sY   € ã'Û"à�M‰M×(Ñ(¨%¯-©-×*AÑ*AÐB€DåAð 	‡K�KÐ"Ô#á(,Ó-ª 1ŒG�OŠO˜AÖ©Ñ-Ð-ùÒ-s   Á A3úOptional[dict[str, object]]Ú_CLOSURE_VARSc                 ó  • [         cü  0 S[        _S[        _S[        R                  R
                  _S[        _S[        _SS _S[        _S	[        _S
[        _S[        _SS _S[        _S[        _S[        R                  _S[         c  S O[         R                  _S[#        S5      _S[$        R&                  _[(        R*                  R,                  [(        R.                  [0        [(        R2                  [(        [4        S.Eq [         $ )NÚ___check_type_idÚ___check_obj_idÚ___odict_getitemÚ___key_to_idÚ___dict_versionÚ___dict_containsc                ó,   • [         R                  X5      $ râ   )r2  Ú__contains__)r®  Úbs     r½   Ú<lambda>Ú#_get_closure_vars.<locals>.<lambda>ð  s   € ¬T×->Ñ->¸qÔ-Dr¿   Ú___tuple_iterator_lenÚ___normalize_range_iterÚ___tuple_iterator_getitemÚ___dataclass_fieldsÚ___namedtuple_fieldsc                ó   • U R                   $ râ   ©Ú_fields©rŒ  s    r½   rÉ  rÊ  õ  s   € ¨a¯iªir¿   Ú#___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Ž   ÚmathÚisnanrª  ÚfloatÚ	importlibÚimport_moduler@  ÚutilsÚ_devicerÛ  r¯  Ú_as_tensor_fullprecr¸  rÑ   r¿   r½   Ú_get_closure_varsré  ç  s8  € äÑð
Ø¤ð
àœ|ð
ð ¤× 7Ñ 7× CÑ Cð
ð œIð	
ð
 œ|ð
ð Ñ Dð
ð $Ô%7ð
ð &Ô';ð
ð (Ô)?ð
ð "Ô#3ð
ð #Ñ$7ð
ð 2Ô3Sð
ð $Ô%7ð
ð œDŸJ™Jð
ð ¤R¡Z™T´R·X±Xð
ð  ”5˜“<ð!
ð" œY×4Ñ4ð#
ô$ "ŸK™K×/Ñ/Ü—l‘lÜ'Ü!×5Ñ5ÜÜò/
ˆô2 Ðr¿   c                óN   • [         R                  " U 5      R                  SS5      $ )NÚ
rƒ  )ÚastÚunparseÚreplace)r   s    r½   Ú_ast_unparserï    s   € Ü�;Š;�tÓ×$Ñ$ T¨2Ó.Ð.r¿   c                óš  • SnUbÀ  UR                   (       aa  [        UR                   5       HG  nUR                  [        5       ;  d  M  S[	        USS9 3n[        U5      S:”  a  S[	        U5       3n  OQ   ONUR                  (       a=  UR                  R                  5       n[        U5      S:”  a  S[	        US   5       3nOSnU S	 U 3$ )
Nrƒ  z  # T)rÍ   i   r   éÿÿÿÿz  # <unknown>z<60)Ú
user_stackÚreversedÚfilenamer¼  rN   r·   ÚstackÚsummary)r™  re  ÚextraÚfsrö  s        r½   Úget_verbose_code_partrù    sÅ   € Ø€EØÑØ××Ü˜u×/Ñ/Ö0�Ø—;‘;Ô&9Ó&;Õ;Ø"¤<°¸Ñ#>Ð"?Ð@�EÜ˜5“z DÓ(ð #'¤|°BÓ'7Ð&8Ð 9˜Ùò 1ð �[�[Ø—k‘k×)Ñ)Ó+ˆGÜ�7‹|˜aÓØœ|¨G°B©KÓ8Ð9Ð:‘à'�Ø˜ˆ_˜U˜GÐ$Ð$r¿   c                ó  • [        U [        5      (       d  U /n U  Vs/ s H  n[        X15      PM     nnUb,  [        UR                  5      nU(       a  U(       a  U SU 3OUnU(       a  U Vs/ s H
  of SU S3PM     nnU$ s  snf s  snf )Nrl  ú (HINT: rm  )r	  Úlistrù  Ú_get_closure_var_hintÚoriginating_source)rç   re  Úrecompile_hintr™  rè   Úclosure_hintrh  s          r½   Úget_verbose_code_partsr  %  s±   € ô
 �j¤$×'Ñ'Ø �\ˆ
ñ BLóÚAK°IÔ˜iÖ/Áð ð ð ÑÜ,¨U×-EÑ-EÓFˆÞæ7E�<�.  >Ð"2Ñ3È<ð ö á;Mó
Ú;M°4ˆf�H˜^Ð,¨AÓ.Ñ;Mð 	ð 
ð Ðùò'ùò
s   �BÁ.Bc                ó  • U c  gU R                   nU nUbx  [        U[        5      (       a;  UR                  (       a*  U[	        UR                   5      S nSUR                   SU 3$ [        U[
        5      (       a  UR                  OSnUb  Mx  g)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	  rZ   Úfreevar_namer·   r[   Úbase)rq  Ú	full_nameÚcurrentÚpath_suffixs       r½   rý  rý  C  sŒ   € ð
 �~Øà—‘€IØ &€GØ
Ñ
Ü�gÔ1×2Ñ2°w×7K×7Kð
 $¤C¨¯©Ó$5Ð$7Ð8ˆKØ × 4Ñ 4Ð5°Q°{°mÐDÐDÜ",¨W´m×"DÑ"D�'—,’,È$ˆð Ó
ð r¿   c                ó¤   • U c  g [        U 5      (       d  U $ [        U [        R                  5      (       d   eU R                  R                  5       $ râ   )rJ   r	  r@  ÚSymIntr   Úmaybe_as_int)Údims    r½   Úconvert_int_to_concrete_valuesr  Y  sD   € Ø
�{ØÜ�s×ÑØˆ
ä˜#œuŸ|™|×,Ñ,Ð,Ð,Ø�x‰x×$Ñ$Ó&Ð&r¿   c                óD   • U  Vs/ s H  n[        U5      PM     sn$ s  snf râ   )r  )Úsize_or_strider  s     r½   Úconvert_to_concrete_valuesr  c  s    € Ù;IÓJº>°CÔ*¨3Ö/¹>ÑJÐJùÒJs   …c                ó,  • U[         R                  R                  5       -  [         R                  R                  5       -
  nU R                  nU R
                  R                  nU R                  n	SU SUR                   SU SU SU SU	 SU SU S3n
U
$ )Nzcheck_tensor(rl  z	, device=z, requires_grad=z, size=z	, stride=rm  )	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   g  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   • [        [        U 5      5      R                  U5      $ râ   )rü  rŠ   r¸   )ÚdctÚkeys     r½   Úget_key_indexr$  |  s    € ô
 Ô! #Ó&Ó'×-Ñ-¨cÓ2Ð2r¿   c                ó   • SU  SU S3$ )Núlist(dict.keys(ú))[Ú]rÑ   )rq  r¸   s     r½   Úget_key_index_sourcer)  „  s   € Ø˜V˜H C¨ w¨aÐ0Ð0r¿   c                óD   • [        S[        U 5       SU  S3S-   S-   5      e)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).)Ú	TypeErrorrP  )Úobjs    r½   Úraise_local_type_errorr2  ˆ  s8   € Ü
Ø
”�S“	ˆ{˜, s eÐ+<Ð=Ø
Lñ	Mà
Lñ	Móð r¿   c                ó¨   • [        U [        R                  R                  5      =(       a(    [        R
                  =(       d    [        U 5      [        L $ râ   )r	  r@  rD  rE  rR   Úinline_inbuilt_nn_modulesr�   r›   )r  s    r½   Ú$should_optimize_getattr_on_nn_moduler5  �  s=   € ô �eœUŸX™XŸ_™_Ó-÷ Ü×(Ñ(÷ 	DÜ˜eÓ$Ô(CÐCðr¿   T)Úfrozenc                  ó@   • \ rS rSr% SrS\S'   SrS\S'   SrS\S'   S	rg)
ÚNNModuleAttrAccessorInfoiš  FrÖ   Úpresent_in_generic_dictNr¤  Úl1_keyÚl2_keyrÑ   )	rØ   rÙ   rÚ   rÛ   r9  r±   r:  r;  rÜ   rÑ   r¿   r½   r8  r8  š  s'   ‡ ð %*Ð˜TÓ)ð !€FˆMÓ ð !€FˆMÖ r¿   r8  ÚGuardManagerTypec                óŠ  • U R                   R                  n[        U R                  [        5      (       a  U R                  R                  nO,[        U[
        5      (       d   e[        X R                  5      n[        XV5      n[        [        U5      5      U   n[        U[        [        45      (       a
  U SU< S3n	OU SU S3n	[        U R                  [        5      (       dL  UR                  UUU R                  [        R                  S9R                  U R                  U SU< 3/S 5        UR!                  UU	UUS9$ )NÚ[r(  ©r¸   rq  Úexample_valueÚguard_manager_enumú == )r  r  r	  r¸   r_   r2  r$  r)  rü  rŠ   ÚintrÔ   Úget_key_managerr<  ÚGUARD_MANAGERÚadd_equals_match_guardÚget_value_manager)
rq  Úbase_guard_managerÚbase_example_valuer@  rA  Úbase_source_namer¸   Ú
key_sourceÚkey_example_valueÚvalue_sources
             r½   Úgetitem_on_dict_managerrN  ©  sA  € ð —{‘{×'Ñ'ÐÜ�&—,‘,Ô 2×3Ñ3Ø—‘×"Ñ"‰äÐ,¬d×3Ñ3Ð3Ð3ÜÐ0·,±,Ó?ˆä%Ð&6Ó>€Jô Ô.Ð/AÓBÓCÀEÑJÐÜÐ#¤c¬3 Z×0Ñ0Ø*Ð+¨1Ð->Ñ,AÀÐC‰à*Ð+¨1¨Z¨L¸Ð:ˆÜ�f—l‘lÔ$6×7Ñ7ð 	×*Ñ*ØØØ Ÿ,™,Ü/×=Ñ=ð	 	+ð 	
÷
 !Ñ
 Ø�L‰L˜j˜\¨Ð.?Ñ-BÐCÐDÀdô
ð ×/Ñ/ØØØ#Ø-ð	 0ð ð r¿   c                óÊ   • U R                   n[        U[        5      (       a  gU R                  5       (       a  gUR	                  5       =(       a    [        U[
        5      (       + $ ©NFT)rþ  r	  ru   Úis_specialized_nn_moduleÚis_dict_keyrn   )re  rq  s     r½   Úmatch_on_id_for_tensorrS  Ö  sP   € Ø×%Ñ%€Fô �&Ô+×,Ñ,Øà×%Ñ%×'Ñ'Øà×ÑÓ×F¬
°6¼:Ó(FÔ$FÐFr¿   c                  ó*   • \ rS rSr% S\S'   S\S'   Srg)ÚGuardCodeListiå  rŸ  Ú	code_listr;   re  rÑ   N©rØ   rÙ   rÚ   rÛ   r±   rÜ   rÑ   r¿   r½   rU  rU  å  s   ‡ àÓØ†Lr¿   rU  c                  ó   • \ rS rSrSrSrSrg)r<  ië  rQ   é   rÑ   N)rØ   rÙ   rÚ   rÛ   rE  ÚDICT_GUARD_MANAGERrÜ   rÑ   r¿   r½   r<  r<  ë  s   † Ø€MØÓr¿   c                ó<   • [        [        [        U 5      5      5      $ râ   )rü  ró  r   )r¹   s    r½   r¶   r¶   ð  s   € ä”Ô/°Ó5Ó6Ó7Ð7r¿   c                  óV  • \ rS rSr   S>                       S?S jjr      S@S jrSAS jr\SBS j5       r                SCS jr	SDS jr
      SES	 jrSFS
 jrSGS jrSHS jrSIS jr  SJ         SKS jjr SL     SMS jjrSNS jr        SOS jrSPS jr SL     SQS jjrSPS jrSPS jrSRS jrSSS jrSPS jrSPS jrSLSTS jjr SL     STS jjrSLSUS jjrSPS jrSPS jr SPS jr!SPS  jr"SPS! jr#SPS" jr$SPS# jr%SLSTS$ jjr&SPS% jr'SPS& jr(SPS' jr)SPS( jr*SPS) jr+SPS* jr,SPS+ jr-SPS, jr.SPS- jr/SPS. jr0SVS/ jr1SPS0 jr2SPS1 jr3SPS2 jr4SPS3 jr5SPS4 jr6SPS5 jr7SPS6 jr8SPS7 jr9SPS8 jr:SPS9 jr;SPS: jr<SLSUS; jjr=  SW         SXS< jjr>S=r?g)YÚGuardBuilderiõ  Nc                óJ  • Xl         X l        X0l        X@l        XVS.U l        [
        R                  " 5       U l        U
=(       d    UU l        [        R                  R                  5       U R                  S'   [        R                  R                  R                  R!                  5        HW  u  nnUR#                  SS5      R#                  SS5      R#                  SS5      nXÐR                  S   U'   XÐR                  U'   MY     Xpl        / U l        / U l        / U l        / U l        / U l        X€l        0 U l        X�l        X°l        [9        5       U l        U R0                  R<                  c   eU R0                  R<                  R>                   H8  nU RA                  U5      nU R:                  RC                  [E        U5      5        M:     0 U l#        0 U l$        [9        5       U l%        / U l&        [N        RP                  =(       a    [S        S5      U l(        [U        5       U l+        g )	N©ÚLÚGÚ__builtins__Ú>Ú_Ú<Ú.Ú_dot_ú!pytorch/compiler:guard_nn_modules),Úf_codeÚid_refÚ
source_refÚlookup_weakrefsÚscopeÚweakrefÚWeakKeyDictionaryÚsrc_get_value_cacheÚruntime_global_scopeÚbuiltinsÚ__dict__Úcopyr@  ÚpackageÚpackage_importerÚ_package_imported_modulesrþ   rî  ro  Ú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ÿ   Úidrí   Ú_cached_guard_managersÚ_cached_duplicate_input_guardsÚobject_aliasing_guard_codesrR   Úguard_nn_modulesrF   rM   Úalready_added_code_parts)rÇ   ri  rj  rk  rl  Úlocal_scoperé   ro  r|  r~  rq  r  r  Úpackage_modulerq  Údict_objs                   r½   rò   ÚGuardBuilder.__init__ö  sà  € ð ŒØŒØ$ŒØ.ÔØ9DÑ3XˆŒ
ä×%Ò%Ó'ð 	Ô ð %9×$H¸LˆÔ!Ü%-×%6Ñ%6×%;Ñ%;Ó%=ˆ�
‰
�>Ñ"ô �]‰]×+Ñ+×EÑE×KÑKÖMñ
ØØà—<‘<  SÓ)×1Ñ1°#°sÓ;×CÑCÀCÈÓQˆDà/=�J‰J�~Ñ& tÑ,à-�J‰J�tÓñ Nð +Ôà#%ˆŒà)+ˆŒ	ð
 46ˆÔð 46ˆÔ%ØEGˆÔ.à6FÔà13ˆÔØ&ÔØ.Ôô +.«%ˆÔ'Ø×$Ñ$×1Ñ1Ñ=Ð=Ð=Ø×+Ñ+×8Ñ8×KÔKˆFØ—x‘x Ó'ˆHØ×+Ñ+×/Ñ/´°8³Ö=ñ Lð BDˆÔð @BˆÔ#ÜDGÃEˆÔ+ØBDˆÔ(Ü &× 7Ñ 7÷ !
¼OØ/ó=
ˆÔô :D»ˆÕ%r¿   c                óT  • U R                  U5      n[        U[        5      (       a  [        SUR                   35      eUR
                  R                  n[        U5       HE  nX   n[        UR
                  US9nU R                  Xq5      nUR                  UU SU< S3UUS9  MG     g )NzsNot expecting a DictGuardManager. Seems like Dynamo incorrectly added the dict to tx.output.guard_on_key_order for )r¸   r>  r(  ©r#  rq  r@  rA  )
Úget_guard_managerr	  r   ÚNotImplementedErrorr  rþ  rŠ   rc   Úget_guard_manager_typeÚdict_getitem_manager)	rÇ   r@  re  Údict_mgrÚdict_sourcer#  r  rM  rA  s	            r½   Ú#guard_on_dict_keys_and_ignore_orderÚ0GuardBuilder.guard_on_dict_keys_and_ignore_orderF  sÄ   € ð ×)Ñ)¨%Ó0ˆÜ�hÔ 0×1Ñ1Ü%ðFØFKÇjÁjÀ\ðSóð ð ×.Ñ.×3Ñ3ˆô % ]Ö3ˆCØ!Ñ&ˆEÜ,¨U×-EÑ-EÈSÑQˆLØ!%×!<Ñ!<Øó"Ðð ×)Ñ)ØØ%˜ a¨¡w¨aÐ0Ø#Ø#5ð	 *ó ò 4r¿   c                óP  • U R                  U5      n[        U[        5      (       d  [        SUR                   35      e[        U[        5      (       d   e[        [        U5      5       H¹  u  pE[        UR                  U5      nUR                  UUU[        R                  S9n[        U5      (       aA  U R                  XV5      nUR                  U[        SU SU S3U5      UR                  5        MŒ  UR!                  U[        U SU< 3U5      UR                  5        M»     g )Nz_Expecting a DictGuardManager. Seems like Dynamo forgot to set the right guard manager enum for r?  z__check_obj_id(rl  rm  rB  )r�  r	  r   r‘  r  Ú	enumeraterŠ   r)  rD  r<  rE  r”   rj  Úadd_id_match_guardr  rò  rF  )	rÇ   r  re  r”  rz  r#  rK  Úkey_managerÚid_vals	            r½   Úguard_on_dict_keys_and_orderÚ)GuardBuilder.guard_on_dict_keys_and_orderd  s+  € ð ×)Ñ)¨%Ó0ˆÜ˜(Ô$4×5Ñ5Ü%ð;Ø;@¿:¹:¸,ðHóð ô ˜(Ô$4×5Ñ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                ó¸   • [         R                  (       aD  [        R                  S:¼  a0  [        R                  S:  a  [        R
                  " S[        5        g U $ )N)é   é   )r   r¡  rQ   zMGuards may run slower on Python 3.13.0. Consider upgrading to Python 3.13.1+.)rR   Úissue_3_13_0_warningÚsysÚversion_infoÚwarningsÚwarnÚRuntimeWarning)r@  s    r½   Ú'_get_generic_dict_manager_example_valueÚ4GuardBuilder._get_generic_dict_manager_example_value�  sF   € ô ×'×'Ü× Ñ  GÓ+Ü× Ñ  :Ó-ä�MŠMØ_Üôð ØÐr¿   c           	     óL  •               SS jnUR                   n	UR                  n
[        5       n[        R                  " UR
                  5       H,  nUR                  UR                  R                  5       5        M.     [        SSS5      nXš;   a  [        SU	S5      nOXSU
;   a  XšS   ;   a  [        SSU	5      nO<SU
;   a  XšS   ;   a  [        SSU	5      nO X›;  a  SU
;   a  XšS   ;   a  [        SSU	5      nUR                  (       d  UR                  UR                   UUUS9$ UR                  (       d   eUR                  nUR                  nU S	3nS=nnS=nnS=nnU(       aN  [        UR                  U5      nUR                  nX®   nU R!                  UU5      nUnUnU R!                  X5      nOUnUnU R!                  X5      nUR#                  UU R%                  U
5      [&        R(                  S
9nU" UUUU
UUS9nU(       a  Ub  Uc   eU" UUUUUUS9$ U$ )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                ó  • [        U [        5      (       a^  [        X15      nSU SU< S3nU R                  UUU[        R
                  S9R                  X SU< 3/S 5        U R                  UUUUS9$ U R                  UUUUS9$ )Nr&  r'  r(  r?  rB  r�  )	r	  r   r$  rD  r<  rE  rF  rG  r“  )r#  r#  Úsource_namerI  r@  rA  r¸   rK  s           r½   Úgetitem_on_dict_mgrÚ>GuardBuilder.getattr_on_nn_module.<locals>.getitem_on_dict_mgrº  sÃ   € ô ˜#Ô/×0Ñ0ô &Ð&8Ó>�ð  /¨{¨m¸3¸u¹iÀqÐI�
Ø×#Ñ#ØØ%Ø"%Ü'7×'EÑ'Eð	 $ð ÷
 )Ñ(¨°¸TÀ#ÁÐ/IÐ.JÈDÔQð ×,Ñ,ØØ&Ø"/Ø'9ð	 -ð ð ð ×/Ñ/ØØ&Ø"/Ø'9ð	 0ð ð r¿   FNTÚ_parametersÚ_buffersÚ_modules©Úattrrq  r@  rA  ú	.__dict__©rq  r@  rA  )r#  r#  r¬  rI  r@  rA  )r#  r   r#  r   r¬  rÔ   rI  r   r@  r   rA  r<  rÓ   r   )Úmemberrs  rï   r¸  ÚgetmrorÏ   ÚupdateÚkeysr8  r9  Úgetattr_managerr:  r;  rW   r  r  r’  Úget_generic_dict_managerr¨  r<  rE  )rÇ   rq  rH  rI  r@  rJ  r¬  rA  r­  Ú	attr_nameÚmod_dictÚall_class_attribute_namesrŒ  Ú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_moduleÚ!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Ó#¨	¸jÑ5IÓ(IÜ4°T¸:ÀyÓQ‰MàÓ6Ø˜hÓ&Ø 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Ó;�	Ø!*§¡�Ø#Ñ+�ð )-×(CÑ(CÀIÈxÓ(XÐ%à!,�Ø(�Ø(,×(CÑ(CØó)Ñ%ð "-�Ø(�Ø(,×(CÑ(CØó)Ð%ð (:×'RÑ'RØ&Ø"×JÑJÈ8ÓTÜ#3×#AÑ#Að (Sð (Ð$ñ )Ø,ØØ*Ø#+Ø&Ø#8ñˆFö Ø%Ñ1Ð6KÑ6WÐWÐWÙ*ØØØ .Ø'/Ø"*Ø'<ñð ð ˆMr¿   c                óx   • UR                   nUS:X  a  g[        U R                  U5      5      nX0R                  ;   $ )Nrƒ  F)r  r„  rƒ  r€  )rÇ   rq  r¬  Úobj_ids       r½   Úrequires_key_order_guardingÚ(GuardBuilder.requires_key_order_guarding:  s8   € Ø—k‘kˆØ˜"ÓØÜ�D—H‘H˜VÓ$Ó%ˆØ×8Ñ8Ñ8Ð8r¿   c                óH  • [         R                  nU R                  U5      (       a{  [        U[        5      (       a  [         R
                  nU$ [        U[        [        45      (       a  [         R                  nU$ [        U[        5      (       d   e[         R
                  nU$ râ   )	r<  rE  rÎ  r	  r�   rZ  rï   Ú	frozensetr2  )rÇ   rq  r@  rA  s       r½   r’  Ú#GuardBuilder.get_guard_manager_typeA  s“   € ô .×;Ñ;ÐØ×+Ñ+¨F×3Ñ3ä˜-¬×3Ñ3Ü%5×%HÑ%HÐ"ð "Ð!ô ˜M¬C´Ð+;×<Ñ<ô &6×%CÑ%CÐ"ð "Ð!ô " -´×6Ñ6Ð6Ð6Ü%5×%HÑ%HÐ"Ø!Ð!r¿   c                ó(   • U[         R                  :H  $ râ   )r<  rZ  )rÇ   Úmgr_enums     r½   Úmanager_guards_on_keysÚ#GuardBuilder.manager_guards_on_keysW  s   € ØÔ+×>Ñ>Ñ>Ð>r¿   c                ó˜   • U R                   R                  R                  U R                  SU R                  S   [
        R                  S9$ )Nra  )Ú	f_globalsrq  r@  rA  )ro  rã   Úglobals_dict_managerrq  rm  r<  rE  rÆ   s    r½   Úget_global_guard_managerÚ%GuardBuilder.get_global_guard_managerZ  sF   € Ø×!Ñ!×&Ñ&×;Ñ;Ø×/Ñ/ØØŸ*™* S™/Ü/×=Ñ=ð	 <ð 
ð 	
r¿   c           	     ó8  ^• U R                   R                  nS nTR                  nUS:w  a  X@R                  ;   a  U R                  U   $ US:w  a(  U R	                  T5      nX0R
                  [        U5      '   U R                  TU5      nS nS nS n[        R                  n	[        T[        5      (       ah  TR                  R                  nU R	                  TR                  5      nU R                  TR                  5      nU R                  TR                  U5      n	[        T[        5      (       a@  [!        U R"                  TR$                  5      n
UR'                  TR$                  U
4UUUS9nG
O�[        T[(        5      (       a,  U R+                  5       R-                  TR.                  UUUS9nG
OO[        T[0        5      (       a,  U R+                  5       R3                  TR.                  UUUS9nG
O[        T[4        5      (       a  U$ [        T[6        5      (       a  U$ [        T[8        5      (       a  U(       d   eUR;                  UUUS9nG	O¯[        T[<        5      (       a  U(       d   eUR?                  UUUS9nG	O~[        T[@        5      (       a  U(       d   eURC                  UUUS9nG	OM[        T[D        [F        [H        [J        [L        45      (       a  U(       d   eUnG	O[        T[N        5      (       a8  [P        RR                  " TRT                  5      nURW                  U4S jUUUS9nGOÉ[        T[X        5      (       a  URW                  U4S jUUUS9nGOœ[        T[Z        5      (       a  URW                  U4S jUUUS9nGOo[        T[\        5      (       a  U(       d   eUR_                  UUUS9nGO>[        T[`        5      (       a'  U(       d   eURc                  TRd                  UUUS	9nGO[        T[f        [h        [j        45      (       ap  U(       d   e[        T[f        5      (       d   e[m        U5      (       a"  U(       d   eU Ro                  TUUUUUU5      nGO�URq                  TRd                  UUUS	9nGOr[        T[r        [t        45      (       aÓ  U(       d   e[        U[v        [x        Rz                  45      (       d   e[        T[r        [t        45      (       d   e[        U[|        5      (       a)  U R                  U	5      (       d   e[�        TUUUU5      nGOÌ[        TR‚                  [„        5      (       a  [‡        S
5      eUR-                  TR‚                  UUUS9nGO„[        T[ˆ        5      (       aE  [‹        USTRŒ                  R                  R�                  5        S35      " TR�                  UUUS9nGO*[        T[’        5      (       a'  U(       d   eUR•                  TR�                  UUUS9nGOî[        T[–        5      (       a'  U(       d   eUR™                  TR‚                  UUUS9nGO²[        T[š        5      (       aþ  U(       d   e[        U[v        [x        Rz                  45      (       a   S5       e[        U[œ        5      (       a/  TRž                  (       d  UR™                  TR‚                  UUUS9nGO$[        U[         5      (       a/  TRž                  (       d  UR£                  TR‚                  UUUS9nGOàTR‚                  nTRž                  (       a  TR¥                  5       nUR§                  UUUUS9nGOŸ[        T[¨        5      (       aä  U(       d   eU(       d   e[«        U5      (       d   eTR¬                  (       dE  UR¯                  UUR°                  [        R                  S9R§                  TR²                  UUUS9nGOUR´                  nUc   eUS-   nUR·                  UU[        R                  S9n[        U[|        5      (       a   eUR-                  TR²                  UUUS9nGO¦[        T[¸        5      (       a!  U(       d   eURW                  [º        UUUS9nGOp[        T[¼        5      (       a  U(       d   eURW                  S UUUS9nGO=[        T[¾        5      (       a  U(       d   eURW                  S UUUS9nGO
[        T[À        5      (       a  U(       d   eURW                  S UUUS9nGO×[        T[Â        5      (       a  U(       d   eURW                  S UUUS9nGO¤[        T[Ä        5      (       a  U(       d   eURW                  S UUUS9nGOq[        T[Æ        5      (       a  U(       d   eURW                  S UUUS9nGO>[        T[È        5      (       a'  U(       d   eURË                  TR‚                  UUUS9nGO[        T[„        5      (       a>  [        U[|        5      (       d  [Í        S5      eURÏ                  TR‚                  UUUS9nGO¯[        T[Ð        5      (       a'  U(       d   eURÓ                  TR‚                  UUUS9nGOs[        T[Ô        5      (       a  U(       d   eUR×                  UUUS9nGOB[        T[Ø        5      (       a  U(       d   eURÛ                  UUUS9nGO[        T[Ü        5      (       a  U(       d   eURW                  S UUUS9nOß[        T[Þ        5      (       a  U(       d   eURW                  S UUUS9nO­[        T[à        5      (       a  U(       d   eURã                  UUUS9nO}[        T[ä        5      (       a  U(       d   eURç                  UUUS9nOM[        T[è        5      (       a  U(       d   eURW                  S UUUS9nO[Í        ST STR                   35      eX°R                  TR                  '   U$ )Nrƒ  r�  )Úglobal_namerq  r@  rA  rµ  c                ó   • U$ râ   rÑ   )rd  r»  s     r½   rÉ  Ú<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>Â  s   € ±!r¿   )Úpython_lambdarq  r@  rA  c                ó6   >• [        TR                  5       5      $ râ   )r‘   Ú
_get_index©rd  rq  s    €r½   rÉ  rß  É  s   ø€ Ô(HØ×%Ñ%Ó'ô)r¿   c                ó.   >• [        TR                  5      $ râ   )rŽ   rÛ  rã  s    €r½   rÉ  rß  Ò  s   ø€ Ô(:¸6¿=¹=Ô(Ir¿   r²  zUExpecting clean index here. Likely Dynamo forgot to mark a dict as guard_on_key_orderÚtensor_property_Ú_manager)rz  rq  r@  rA  zUse DictGetItemSourcez.__kwdefaults__c                ó(   • U R                  5       S   $ rù   ©Ú__tensor_flatten__rÓ  s    r½   rÉ  rß  |  s   € ¨×(<Ñ(<Ó(>¸qÒ(Ar¿   c                ó"   • U R                  5       $ râ   )Ú__obj_flatten__rÓ  s    r½   rÉ  rß  „  s   € ¨×(9Ñ(9Ô(;r¿   c                ó>   • U R                  5       R                  5       $ râ   )Ú_typeÚqualified_namerÓ  s    r½   rÉ  rß  Œ  s   € ¨¯©«	×(@Ñ(@Ô(Br¿   c                ó"   • U R                  5       $ râ   )Úget_baserÓ  s    r½   rÉ  rß  ”  s
   € ¨¯
©
¬r¿   c                ó"   • U R                  5       $ râ   )ÚitemrÓ  s    r½   rÉ  rß  œ  s
   € ¨¯©¬r¿   c                ó.   • [         R                  " U 5      $ râ   )r@  rè  rÓ  s    r½   rÉ  rß  ¤  s   € ¬×(AÒ(AÀ!Ô(Dr¿   r?  z4ConstDictKeySource can only work on DictGuardManagerc                ó   • [        U 5      $ râ   )rŒ   rÓ  s    r½   rÉ  rß  Õ  s
   € Ô(8¸Ô(;r¿   c                ó   • U R                   $ râ   rÑ  rÓ  s    r½   rÉ  rß  Ý  s   € ¨¯	ª	r¿   c                ó   • [        U 5      $ râ   )rC  rÓ  s    r½   rÉ  rß  ó  s   € ¬¨A¬r¿   zmissing guard manager builder z - )uro  rã   r  r…  rƒ  r}  r„  r’  r<  rE  r	  r[   r  Úget_guard_manager_from_sourcer“   rq   r¾   ri  Ú
local_nameÚframelocals_managerrk   rÚ  r“  rÝ  rm   Úglobal_weakref_managerrl   rx   r~   Útype_managerr|   Útype_dict_managerr}   Útype_mro_managerrv   rs   r€   r   rh   ro   rä  rå  Úmodule_nameÚlambda_managerrz   r`   rn   Úgrad_managerri   Úgeneric_getattr_managerr¶  rW   rZ   r�   r5  rÊ  rº  rc   rd   r2  rÞ  rß  r   rÕ  rN  r¸   r_   ÚRuntimeErrorr5   ÚgetattrÚpropÚlowerrz  r.   Úindexed_managerrp   Úlist_getitem_managerrj   rü  Úindex_is_slicerN  Útuple_getitem_managerÚunpack_sliceÚgetitem_managerrb   ÚcallableÚis_kwÚfunc_defaults_managerr­   Úidx_keyr®   Úfunc_kwdefaults_managerru   r¯  ry   rf   rw   rV   rY   rg   r{   Útuple_iterator_getitem_managerÚAssertionErrorrD  rt   Úset_getitem_managerr‚   Úweakref_call_managerrX   Úcall_function_no_args_managerra   rr   r]   Úcode_managerr\   Úclosure_managerre   )rÇ   rq  Úroot_guard_managerr@  r¬  rA  rJ  rI  rH  Úbase_guard_manager_enumr¼   ÚoutÚmoduler¸   Ú
kwdefaultsÚ	kw_sourcer”  s    `               r½   r÷  Ú*GuardBuilder.get_guard_manager_from_sourceb  sˆ  ø€ Ø!×/Ñ/×4Ñ4ÐàˆØ—k‘kˆà˜"Ó ×0KÑ0KÓ!KØ×.Ñ.¨{Ñ;Ð;à˜"ÓØ ŸH™H VÓ,ˆMØ8E×"Ñ"¤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Ñ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Ñ9Ø$×3Ñ3ôð #Ø+Ø#5ð 4ð ŠCô �FÔ/×0Ñ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Ð1Ü3Ð4F×GÑGÞ'Ð'Ð'Ø×/Ñ/ØØ&Ø&Ø!Ø$ØØ&ó’ð )×8Ñ8ØŸ™Ø&Ø"/Ø'9ð	 9ð ’ô �FÔ.Ô0IÐJ×KÑKÞ%Ð%Ð%ÜÐ0´4¼×9PÑ9PÐ2Q×RÑRÐRÐRÜ˜fÔ'8Ô:SÐ&T×UÑUÐUÐUÜÐ,Ô.>×?Ñ?Ø×2Ñ2Ð3J×KÑKÐKÐKÜ-ØØ&Ø&Ø!Ø&ó’ô ˜fŸl™lÔ,>×?Ñ?Ü&ð8óð ð )×=Ñ=ØŸ™Ø&Ø"/Ø'9ð	 >ð ’ô �FÔ0×1Ñ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Ñ3¸F×<Q×<QØ(×=Ñ=ØŸ™Ø&Ø"/Ø'9ð	 >ð ’ô Ð.´×6Ñ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ÐAà×3Ñ3ØŸ™Ø&Ø"/Ø'9ð	 4ð ’ô �FÔ-×.Ñ.Þ%Ð%Ð%Ø$×3Ñ3Ü(Ø"Ø+Ø#5ð	 4ð ŠCô �FÔ2×3Ñ3Þ%Ð%Ð%Ø$×3Ñ3ÙAØ"Ø+Ø#5ð	 4ð ŠCô �FÔ5×6Ñ6Þ%Ð%Ð%Ø$×3Ñ3Ù;Ø"Ø+Ø#5ð	 4ð ŠCô �FÔ;×<Ñ<Þ%Ð%Ð%Ø$×3Ñ3ÙBØ"Ø+Ø#5ð	 4ð ŠCô �FœO×,Ñ,Þ%Ð%Ð%Ø$×3Ñ3Ù4Ø"Ø+Ø#5ð	 4ð ŠCô �FÔ0×1Ñ1Þ%Ð%Ð%Ø$×3Ñ3Ù0Ø"Ø+Ø#5ð	 4ð ŠCô �FÔ-×.Ñ.Þ%Ð%Ð%Ø$×3Ñ3ÙDØ"Ø+Ø#5ð	 4ð ŠCô �FÔ6×7Ñ7Þ%Ð%Ð%Ø$×CÑCØ—l‘lØ"Ø+Ø#5ð	 Dð ŠCô ˜Ô 2×3Ñ3ÜÐ0Ô2B×CÑ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Ñ5Þ%Ð%Ð%Ø$×BÑBØ"Ø+Ø#5ð Cð ŠCô
 �FÔ1×2Ñ2Þ%Ð%Ð%Ø$×3Ñ3Ù;Ø"Ø+Ø#5ð	 4ð ‰Cô �FÔ2×3Ñ3Þ%Ð%Ð%Ø$×3Ñ3Ù1Ø"Ø+Ø#5ð	 4ð ‰Cô �FœJ×'Ñ'Þ%Ð%Ð%Ø$×1Ñ1Ø"Ø+Ø#5ð 2ð ‰Cô
 �FœM×*Ñ*Þ%Ð%Ð%Ø$×4Ñ4Ø"Ø+Ø#5ð 5ð ‰Cô
 �FÔ/×0Ñ0Þ%Ð%Ð%Ø$×3Ñ3Ù.Ø"Ø+Ø#5ð	 4ð ‰Cô !Ø0°°¸¸F¿K¹K¸=ÐIóð ð 47×#Ñ# F§K¡KÑ0Øˆ
r¿   c                ó8   • U R                  UR                  5      $ râ   )r÷  rþ  ©rÇ   re  s     r½   r�  ÚGuardBuilder.get_guard_manager   s   € Ø×1Ñ1°%×2JÑ2JÓKÐKr¿   c                ó¶  • Uc
  [        5       nSR                  UR                  5       5      n[        X5      u  pg0 nSU R                  S   0n	[
        R                  SU5        [        XyU5        US   " UR                  5       6 n
U(       a(  U R                  R                  R                  U
US 5        g U R                  R                  R                  X¢S 5        g )Nrl  ra  zPython shape guard function:
%sÚ___make_guard_fn)ré  Újoinr¹  Úbuild_guard_functionrm  Ú
guards_logÚdebugÚexecr4  ro  rã   Úadd_epilogue_lambda_guardÚadd_lambda_guard)rÇ   rç   rè   rå   Úis_epilogueÚmake_guard_fn_argsÚ_guard_bodyÚpycoder  Úglobals_for_guard_fnÚguard_fns              r½   Ú$add_python_lambda_leaf_guard_to_rootÚ1GuardBuilder.add_python_lambda_leaf_guard_to_root  sÌ   € ð ÑÜ,Ó.ˆLð "ŸY™Y |×'8Ñ'8Ó':Ó;ÐÜ2°:ÓRÑˆØ ˆØ # T§Z¡Z°¡_Ð5ÐÜ×ÑÐ;¸VÔDÜˆV¨3Ô/ØÐ)Ò*¨L×,?Ñ,?Ó,AÐBˆÞð ×Ñ×#Ñ#×=Ñ=ØØ"Øõð ×Ñ×#Ñ#×4Ñ4°XÐSWÕXr¿   c                ó´   • [        U[        5      (       a  UnOUR                  nUc
  [        5       nUR	                  U R
                  X R                  5      nU$ râ   )r	  r?   rþ  ré  Ú	get_valuerm  rp  )rÇ   Úguard_or_sourcerå   ÚsrcÚrets        r½   rƒ  ÚGuardBuilder.get(  sN   € ô
 �o¤v×.Ñ.Ø!‰Cà!×4Ñ4ˆCØÑÜ,Ó.ˆLØ�m‰m˜DŸJ™J¨×6NÑ6NÓOˆØˆ
r¿   c                óP  • [        U[        5      (       a  UnOUR                  n[        U5      nX0R                  ;  ag  [
        R                  R                  R                  U5      nU(       a7  US:X  a  [        R                  SU5        U R                  R                  U5        U$ )NrY  zinvalid var name: %s)r	  rÔ   r  Ústrip_function_callrx  r@  r  r´  Úis_valid_var_nameÚlogÚwarningr–  )rÇ   re  r  r  Úis_valids        r½   Úarg_refÚGuardBuilder.arg_ref;  s{   € ä�eœS×!Ñ!Ø‰Dà—:‘:ˆDÜ" 4Ó(ˆØ—}‘}Ó$Ü—x‘x×'Ñ'×9Ñ9¸$Ó?ˆHÞØ˜q“=Ü—K‘KÐ 6¸Ô>Ø—‘×$Ñ$ TÔ*àˆr¿   c                óÈ   • US:X  a  [        UR                  5      nO[        UR                  U5      n[        XCUR                  UR
                  S9nUR                  U 5        g )Nr¯   )rõ  rò  )r]   rþ  rW   r;   rõ  rò  Úcreate)rÇ   re  r¼  r0  Úattr_sourceÚ	new_guards         r½   Ú_guard_on_attributeÚ GuardBuilder._guard_on_attributeK  sY   € ð ˜
Ó"Ü$ U×%=Ñ%=Ó>‰Kä$ U×%=Ñ%=¸yÓIˆKäØ¨¯©À×AQÑAQñ
ˆ	ð 	×Ñ˜Õr¿   c           	     óÎ  • UR                   n[        U[        5      (       a  UR                  n[        U[        5      (       a  g [        U[
        5      (       d   SUR                   35       eUR                  nUR                  nUR                  nU R                  U5      n[        U R                  U5      U5      nS nU(       a  SU SU< S3nO
SU SU< S3nX€R                  ;   a  g U R                  X/U R                  U5      S9  U R                  U5      n	U(       a‚  U R                  U5      n
U R                  U5      nU R                  X*5      n[        U5      (       a"  U R!                  UU	UU
UUR                  U5        OCU	R#                  UUR                  U
US9  O&U	R%                  U['        X�5      UR(                  5        U R                  R+                  U5        g )Nzinvalid source úhasattr(rl  rm  znot hasattr()Úprovided_guarded_objectr²  )rþ  r	  rs   r  r]   rW   r  r¶  r?  r…  rƒ  r‰  Ú_set_guard_export_infor÷  r’  r5  rÊ  rº  Úadd_no_hasattr_guardr  rò  rÿ   )rÇ   re  rq  Úbase_sourcer  r³  ÚrefÚvalr¹   Úbase_managerr@  rI  rA  s                r½   ÚHASATTRÚGuardBuilder.HASATTR\  sÐ  € Ø×)Ñ)ˆÜ�fœn×-Ñ-Ø—[‘[ˆFÜ�fœj×)Ñ)àÜ˜&¤*×-Ñ-ÐM°ÀÇÁÀÐ/MÓMÐ-Ø—k‘kˆØ×ÑˆØ�}‰}ˆà�l‰l˜4Ó ˆÜ�d—h‘h˜{Ó+¨TÓ2ˆØˆÞØ˜c˜U " T¡H¨AÐ.‰Dà! #  b¨©°Ð2ˆDà×0Ñ0Ó0Øà×#Ñ#Ø�6°4·8±8¸KÓ3Hð 	$ñ 	
ð ×9Ñ9¸+ÓFˆÞð !ŸH™H VÓ,ˆMØ!%§¡¨+Ó!6ÐØ!%×!<Ñ!<¸VÓ!SÐô 4Ð4F×GÑGØ×)Ñ)ØØ Ø&Ø!ØØ—K‘KØ&õð ×,Ñ,ØØ Ÿ:™:Ø"/Ø'9ð	 -ò ð ×-Ñ-ØÔ,¨TÓ9¸5×;KÑ;Kôð 	×%Ñ%×)Ñ)¨$Õ/r¿   c                óº  • Uc   eU R                  U5      nU R                  U5      nU R                  U5      nSU< SU S3nX`R                  ;   a  g UR                   S3nUR                  UU R                  UR                  5      [        R                  S9nUR                  SU[        Xa5      UR                  5        U R                  R                  U5        g )Nznot ___dict_contains(rl  z
.__dict__)r´  rµ  F)r?  rƒ  r�  r‰  r  r»  r¨  rs  r<  rE  Úadd_dict_contains_guardr  rò  rÿ   )	rÇ   re  r³  rM  rN  rO  r¹   rÀ  rÈ  s	            r½   ÚNOT_PRESENT_IN_GENERIC_DICTÚ(GuardBuilder.NOT_PRESENT_IN_GENERIC_DICT˜  sà   € ð ÑÐÐØ�l‰l˜5Ó!ˆØ�h‰h�u‹oˆà×-Ñ-¨eÓ4ˆà& t¡h¨b°°°ZÐ@ˆØ×0Ñ0Ó0Øà"ŸZ™Z˜L¨	Ð2ˆØ#/×#HÑ#HØ"Ø×FÑFÀsÇ|Á|ÓTÜ/×=Ñ=ð $Ið $
Ð ð 	!×8Ñ8ØØÜ" 4Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r¿   c           	     ó<  • U R                  U5      n[        U[        R                  R                  5      (       a  UR
                  (       a  UR
                  nO[        U5      nUR                  UR                  :w  a  SUl	        U R                  USUR                   S35      n[        U5      nSU R                  U5       SU SU 3nU R                  X/5        U R                  U5      R!                  U[#        XaSUR                   3S9UR$                  5        g )	NTútype(rm  z___check_type_id(rl  ú), type=ztype )rÿ  )rƒ  r	  r@  Ú_subclassesÚ
FakeTensorr  rP  rÚ   rØ   Ú_unserializablerj  r  r€  r?  rJ  r�  Úadd_type_match_guardr  rò  )rÇ   re  r  rr  rÍ  Ú	type_reprr¹   s          r½   Ú
TYPE_MATCHÚGuardBuilder.TYPE_MATCH´  sò   € à—‘˜“ˆÜ�eœU×.Ñ.×9Ñ9×:Ñ:¸u¿|¿|Ø—‘‰Aä�U“ˆAà�>‰>˜QŸZ™ZÓ'ð %)ˆEÔ!à—‘˜Q %¨¯
©
 |°1Ð 5Ó6ˆÜ˜“Gˆ	Ø" 4§<¡<°Ó#6Ð"7°r¸&¸ÀÈ)ÈÐUˆØ×#Ñ# E¨6Ô2à×Ñ˜uÓ%×:Ñ:ØÜ"Ø¨e°A·N±NÐ3CÐ,Dñð ×Ñõ	
r¿   c                ó  • U R                  U5      nU R                  U5      n[        U R                  U5      5      nSU SU 3nU R                  X/5        U R	                  U5      R                  U[        XQ5      UR                  5        g )Nz___dict_version(ú) == )r?  rƒ  r   rJ  r�  Úadd_dict_version_guardr  rò  )rÇ   re  rM  rN  Úversionr¹   s         r½   ÚDICT_VERSIONÚGuardBuilder.DICT_VERSIONÎ  s   € à�l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ˜tŸx™x¨›Ó/ˆØ! #  e¨G¨9Ð5ˆØ×#Ñ# E¨6Ô2ð 	×Ñ˜uÓ%×<Ñ<ØÔ'¨Ó4°e×6FÑ6Fõ	
r¿   c                óD  • U R                  U5      nU(       a  SOSnU SU< SU S3nX`R                  ;   a  g U R                  X/5        U R                  U5      R	                  U(       + U[        Xa5      UR                  5        U R                  R                  U5        g )Núnot rƒ  z___dict_contains(rl  rm  )r?  r‰  rJ  r�  rS  r  rò  rÿ   )rÇ   re  r#  ÚinvertÚdict_refÚ	maybe_notr¹   s          r½   ÚDICT_CONTAINSÚGuardBuilder.DICT_CONTAINSÜ  s™   € Ø—<‘< Ó&ˆæ$‘F¨"ˆ	Ø�Ð-¨c©W°B°x°jÀÐBˆØ×0Ñ0Ó0ØØ×#Ñ# E¨6Ô2à×Ñ˜uÓ%×=Ñ=ØŒJØÜ" 4Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r¿   c                ó2  • U R                  U5      nUnU(       + nSU SU< S3nXpR                  ;   a  g U R                  X/5        U R                  U5      R	                  UU[        Xq5      UR                  5        U R                  R                  U5        g )Nzset.__contains__(rl  rm  )r?  r‰  rJ  r�  Úadd_set_contains_guardr  rò  rÿ   )rÇ   re  r#  rh  Úset_refrò  Úcontainsr¹   s           r½   ÚSET_CONTAINSÚGuardBuilder.SET_CONTAINSí  s•   € Ø—,‘,˜uÓ%ˆØˆØ”:ˆà" 7 )¨2¨d©X°QÐ7ˆØ×0Ñ0Ó0Øà×#Ñ# E¨6Ô2à×Ñ˜uÓ%×<Ñ<ØØÜ" 4Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r¿   c                óŠ  • U R                  U5      nU R                  U5      n[        U[        5      (       d   eU SU< 3/nU R	                  X5        U(       a5  U R                  U5      R                  [        XA5      UR                  5        g U R                  U5      R                  [        XA5      UR                  5        g )NrB  )
r?  rƒ  r“   rÖ   rJ  r�  Úadd_true_match_guardr  rò  Úadd_false_match_guard©rÇ   re  rM  rN  r¹   s        r½   Ú
BOOL_MATCHÚGuardBuilder.BOOL_MATCH   s¨   € à�l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ�cœ4× Ñ Ð Ð Ø�%�t˜C™7Ð#Ð$ˆØ×#Ñ# EÔ0æØ×"Ñ" 5Ó)×>Ñ>Ü& tÓ3°U×5EÑ5Eõð ×"Ñ" 5Ó)×?Ñ?Ü& tÓ3°U×5EÑ5Eõr¿   c                óè   • U R                  U5      nU R                  U5      nUb   eU S3/nU R                  X5        U R                  U5      R	                  [        XA5      UR                  5        g )Nz is None)r?  rƒ  rJ  r�  Úadd_none_match_guardr  rò  rv  s        r½   Ú
NONE_MATCHÚGuardBuilder.NONE_MATCH  sm   € à�l‰l˜5Ó!ˆØ�h‰h�u‹oˆØ‰{Ðˆ{Ø�%�xÐ Ð!ˆØ×#Ñ# EÔ0à×Ñ˜uÓ%×:Ñ:Ü" 4Ó/°×1AÑ1Aõ	
r¿   c                ó$   • U R                  X5      $ râ   )Úid_match_unchecked)rÇ   re  rÿ  s      r½   ÚID_MATCHÚGuardBuilder.ID_MATCH  s   € ð ×&Ñ& uÓ=Ð=r¿   c                óJ  • [        UR                  [        5      (       a=  U R                  [	        UR                  R
                  [        R                  5      5      $ U R                  U5      nU R                  U5      nU R                  XAR                  5      n [        U5      nSU SU SU 3nU R                  X/SS9  U R!                  U5      R#                  U[%        XqU5      UR&                  5        [        UR                  [(        5      (       ad  [        U[*        R,                  R.                  5      (       a:  UR                  R0                  nU R3                  U5      n	U	b  X�R4                  U'   g g g g ! [         a    S[        U5      R                   S3n Nûf = f)Nre  rc  z___check_obj_id(rl  rX  r  )Úprovided_func_name)r	  rþ  r~   r^  r;   r  r]  r?  rƒ  rj  r  r€  Ú	ExceptionrP  rØ   rJ  r�  rš  r  rò  rq   r@  rD  rE  rø  rl  rí   )
rÇ   re  rÿ  rM  rN  rœ  r]  r¹   rø  Úweak_ids
             r½   r~  ÚGuardBuilder.id_match_unchecked&  s{  € ô �e×.Ñ.´
×;Ñ;à—?‘?Ü�e×.Ñ.×3Ñ3´\×5LÑ5LÓMóð ð �l‰l˜5Ó!ˆØ�h‰h�u‹oˆØ—‘˜S§*¡*Ó-ˆð	2Ü˜S›	ˆIð
 " #  b¨¨°¸¸ÐDˆØ×#Ñ# E¨6ÀjÐ#ÑQØ×Ñ˜uÓ%×8Ñ8ØÜ" 4°Ó?Ø×Ñô	
ô �e×.Ñ.´×<Ñ<ô ˜#œuŸx™xŸ™×/Ñ/Ø"×5Ñ5×@Ñ@�
Ø×.Ñ.¨sÓ3�ØÑ&Ø7>×(Ñ(¨Ò4ð 'ð 0ð	 =øô ó 	2ð œD ›I×.Ñ.Ð/¨qÐ1ŠIð	2ús   ÂE< Å<#F"Æ!F"c                ó   • U R                  U5      nU R                  U5      n[        U[        R                  5      (       d   eU S3nU R                  X/5        U R                  U5      R                  [        XQ5      UR                  5        g ©Nz is not None)
r?  rƒ  r	  r@  rA  rJ  r�  Úadd_not_none_guardr  rò  )rÇ   re  r  rM  rN  r¹   s         r½   ÚNOT_NONE_MATCHÚGuardBuilder.NOT_NONE_MATCHM  sy   € Ø�l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ˜#œuŸ|™|×,Ñ,Ð,Ð,Ø��lÐ#ˆØ×#Ñ# E¨6Ô2à×Ñ˜uÓ%×8Ñ8Ü" 4Ó/°×1AÑ1Aõ	
r¿   c                ó  • U R                  U5      nU R                  U5      n[        U[        R                  R
                  5      (       d   eU SU< S3nU R                  U5      R                  U[        XA5      UR                  5        g )Nz.raw_repr() == z.raw_repr())
r?  rƒ  r	  r@  r  r£   r�  Úadd_dispatch_key_set_guardr  rò  )rÇ   re  rM  rN  rç   s        r½   ÚDISPATCH_KEY_SET_MATCHÚ#GuardBuilder.DISPATCH_KEY_SET_MATCHX  sy   € Ø�l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ˜#œuŸx™x×6Ñ6×7Ñ7Ð7Ð7Ø�u˜O¨C©7°+Ð>ˆ
à×Ñ˜uÓ%×@Ñ@ØÜ" :Ó5Ø×Ñõ	
r¿   c                ó  • U R                   R                  c   eU R                   R                  R                  nSU 3/nU R                  X5        U R                  R
                  R                  U[        X15      UR                  5        g )Nz,torch.autograd.forward_ad._current_level == )	r|  r�  Ú
dual_levelrJ  ro  rã   Úadd_dual_level_match_guardr  rò  )rÇ   re  r�  r¹   s       r½   Ú
DUAL_LEVELÚGuardBuilder.DUAL_LEVELd  s~   € ð ×$Ñ$×1Ñ1Ñ=Ð=Ð=Ø×*Ñ*×7Ñ7×BÑBˆ
Ø>¸z¸lÐKÐLˆØ×#Ñ# EÔ0Ø×Ñ×Ñ×:Ñ:ØÜ" 4Ó/Ø×Ñõ	
r¿   c                óÂ  ^^• U R                   R                  c   eU R                   R                  R                  nU Vs/ s H  o3R                  5       PM     snmST S3/nU R	                  X5        [
        R                  R                  R                  mSUU4S jjnU R                  R                  R                  U[        XA5      UR                  5        g s  snf )Nz5torch._functorch.pyfunctorch.compare_functorch_state(rm  c                ó   >• T" T5      $ râ   rÑ   )rŒ  Ú
compare_fnÚstatess    €€r½   ÚfnÚ.GuardBuilder.FUNCTORCH_STACK_MATCH.<locals>.fn}  s   ø€ Ù˜fÓ%Ð%r¿   r¥  )r|  r�  Úfunctorch_layersÚ	get_staterJ  r@  Ú
_functorchÚpyfunctorchÚcompare_functorch_statero  rã   r*  r  rò  )rÇ   re  ÚcisÚcir¹   r˜  r–  r—  s         @@r½   ÚFUNCTORCH_STACK_MATCHÚ"GuardBuilder.FUNCTORCH_STACK_MATCHq  sÂ   ù€ ð ×$Ñ$×1Ñ1Ñ=Ð=Ð=Ø×#Ñ#×0Ñ0×AÑAˆÙ+.Ó/ª3 R—,‘,–.©3Ñ/ˆØGÈÀxÈqÐQÐRˆØ×#Ñ# EÔ0ô ×%Ñ%×1Ñ1×IÑIˆ
÷	&ð 	&ð 	×Ñ×Ñ×0Ñ0ØÔ& tÓ3°U×5EÑ5Eõ	
ùò 0s   Á Cc                ó¬  ^^^^• [         R                  R                  R                  R                  m[         R                  R                  R                  R
                  m    SU4S jjmT" T" 5       5      mST 3/nU R                  X5        SUUU4S jjnU R                  R                  R                  U[        X!5      UR                  5        g )Nc                óR   >• T" U 5      (       d  g [        [        [        U 5      5      $ râ   )rN  Úmapr„  )ÚhooksÚare_inline_hookss    €r½   Úhooks_ids_fnÚ?GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKS.<locals>.hooks_ids_fnŠ  s$   ø€ ñ $ E×*Ñ*ØäœœR ›Ó(Ð(r¿   zCtorch._functorch.aot_autograd.utils.top_saved_tensors_hooks ids == c                ó$   >• TT" T" 5       5      :H  $ râ   rÑ   )rŒ  Ú	get_hooksÚguard_hooks_idsr¨  s    €€€r½   r˜  Ú5GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKS.<locals>.fn™  s   ø€ Ø"¡l±9³;Ó&?Ñ?Ð?r¿   )r¦  zCtuple[Callable[[torch.Tensor], Any], Callable[[Any], torch.Tensor]]rÓ   zOptional[tuple[int, ...]]r¥  )r@  rœ  Ú_aot_autogradræ  Útop_saved_tensors_hooksÚ"saved_tensors_hooks_are_inlineablerJ  ro  rã   r*  r  rò  )rÇ   re  r¹   r˜  r§  r«  r¬  r¨  s       @@@@r½   ÚAUTOGRAD_SAVED_TENSORS_HOOKSÚ)GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKS„  sÄ   û€ Ü×$Ñ$×2Ñ2×8Ñ8×PÑPˆ	ä×Ñ×*Ñ*×0Ñ0×SÑSð 	ð	)ØVð	)à&÷	)ñ '¡y£{Ó3ˆð RÐRaÐQbÐcð
ˆð 	×#Ñ# EÔ0÷	@ñ 	@ð 	×Ñ×Ñ×0Ñ0ØÔ& tÓ3°U×5EÑ5Eõ	
r¿   c                ó¤  ^^• U R                  U5      n[        U R                  U5      R                  5       S   5      m[        US5      (       a   [	        U5        [        U5      mSUU4S jjnOSU4S jjnS[        U5       S[        R                  " 5        3nU R                  U5      R                  U[        XA5      UR                  5        g )NrQ   Ú__metadata_guard__c                óJ   >• TR                  TU R                  5       S   5      $ rµ   )r´  ré  )rŒ  ÚclsÚoriginal_metadatas    €€r½   Úmetadata_checkerÚEGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.metadata_checker§  s)   ø€ Ø×-Ñ-Ø% q×';Ñ';Ó'=¸aÑ'@óð r¿   c                ó0   >• U R                  5       S   T:H  $ rµ   rè  )rŒ  r·  s    €r½   r¸  r¹  ®  s   ø€ Ø×+Ñ+Ó-¨aÑ0Ð4EÑEÐEr¿   Ú___check_metadata_Ú_cr¥  )rƒ  r   ré  r…  rœ   rP  r„  r8   Úcurrent_compile_idr�  r*  r  rò  )rÇ   re  r  r¸  rÝ  r¶  r·  s        @@r½   ÚTENSOR_SUBCLASS_METADATA_MATCHÚ+GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH   s²   ù€ Ø—‘˜“ˆÜ$ T§X¡X¨e£_×%GÑ%GÓ%IÈ!Ñ%LÓMÐÜ�5Ð.×/Ñ/Ü% eÔ,Ü�u“+ˆC÷ñ ÷Fð +¬2Ð.>Ó+?Ð*@ÀÄ>×CdÒCdÓCfÐBgÐhˆØ×Ñ˜uÓ%×6Ñ6ØÜ" ;Ó6Ø×Ñõ	
r¿   c                óÐ   ^• [        U R                  U5      5      mSU4S jjnS[        U5       3nU R                  U5      R	                  U[        X15      UR                  5        g )Nc                ó$   >• U R                  TSS9$ )NT)Úskip_shapes)Ú_check_equals)rŒ  r  s    €r½   r0  Ú1GuardBuilder.DTENSOR_SPEC_MATCH.<locals>.guard_fn½  s   ø€ Ø—?‘? 5°d�?Ð;Ð;r¿   Ú__dtensor_spec_r¥  )r   rƒ  r„  r�  r*  r  rò  )rÇ   re  r0  r¹   r  s       @r½   ÚDTENSOR_SPEC_MATCHÚGuardBuilder.DTENSOR_SPEC_MATCH¸  sZ   ø€ ô ˜Ÿ™ %›Ó)ˆ÷	<ð !¤ H£ Ð/ˆØ×Ñ˜uÓ%×6Ñ6ØÔ,¨TÓ9¸5×;KÑ;Kõ	
r¿   c                ó|  ^^• U R                  U5      n[        [        U5      5      mT(       a  TR                  (       d  g[	        TR                  U5      5      mSUU4S jjnS[        U5       S[        R                  " 5        3nU R                  U5      R                  U[        XA5      UR                  5        g)z=Guard on the values returned by the opaque object's guard_fn.Nc                ó0   >• TR                  U 5      nUT:H  $ râ   )r0  )rŒ  Úcurrent_valuesÚopaque_infoÚoriginal_valuess     €€r½   Úopaque_guard_checkerÚDGuardBuilder.OPAQUE_OBJ_GUARD_FN_MATCH.<locals>.opaque_guard_checkerÐ  s#   ø€ Ø(×1Ñ1ØóˆNð " _Ñ4Ð4r¿   Ú___check_opaque_guard_fn_r¼  r¥  )rƒ  rC   rP  r0  r   r„  r8   r½  r�  r*  r  rò  )rÇ   re  r  rÍ  rÝ  rË  rÌ  s        @@r½   ÚOPAQUE_OBJ_GUARD_FN_MATCHÚ&GuardBuilder.OPAQUE_OBJ_GUARD_FN_MATCHÅ  sŸ   ù€ ð —‘˜“ˆÜ)¬$¨u«+Ó6ˆæ +×"6×"6Øä" ;×#7Ñ#7¸Ó#>Ó?ˆ÷	5ð 	5ð 2´"Ð5IÓ2JÐ1KÈ2Ìn×NoÒNoÓNqÐMrÐsˆØ×Ñ˜uÓ%×6Ñ6Ø Ü" ;Ó6Ø×Ñõ	
r¿   c                ó2  • U R                  U5      nU R                  U5      n[        (       a¨  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  4nOSn[        [        4n[!        ["        [$        [         [&        [(        [*        [,        [.        R0                  [.        R2                  [.        R4                  R6                  R2                  1	UkUk-  5      n[.        R8                  R;                  5       (       a  SSKJn  SSK J!n	J"n
J#nJ$n  UUUU
UU	4-   nSSK%J&n  X}4-   nSS K'J(s  J)n  [U        XG5      (       dL  URV                  " [%        U5      5      (       d,  [Y        [%        U5      5      (       d   S[%        U5       35       e[[        U[\        5      (       ak  [^        R`                  " U5      (       aP  SU SU S	3/nU Rc                  X5        U Re                  U5      Rg                  [i        Xñ5      URj                  5        g [[        U[l        5      (       ak  [        R`                  " U5      (       aP  SU S
U S	3/nU Rc                  X5        U Re                  U5      Ro                  [i        Xñ5      URj                  5        g U SU< 3/n[[        XF5      (       a  [q        U5      n[i        Xñ5      nU(       a  U Vs/ s H  nU SU S3PM     nnU Re                  U5      Rs                  UUURj                  5        U Rc                  X5        g s  snf )NrÑ   r   )Ú
DeviceMesh)Ú_StridedShardÚPartialÚ	ReplicateÚShard)Ú_IntWrapperzUnexpected type z(type(z) is float and __math_isnan(z))z) is complex and __numpy_isnan(rB  rû  rm  ):r?  rƒ  rª  Úint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64Úfloat16Úfloat32Úfloat64rü  rï   rN  r‹   rP  rÑ  ÚsliceÚranger�   r@  ÚSizeÚStreamÚcudaÚstreamsÚdistributedÚis_availableÚtorch.distributed.device_meshrÓ  Ú(torch.distributed.tensor.placement_typesrÔ  rÕ  rÖ  r×  Útorch.export.dynamic_shapesrØ  Útorch.utils._pytreeræ  rL   r	  Úis_constant_classrD   r“   rã  rá  râ  rJ  r�  Úadd_float_is_nan_guardr  rò  ÚcomplexÚadd_complex_is_nan_guardr   rF  )rÇ   re  rÿ  rM  rN  Únp_typesÚok_mutable_typesÚok_typesrÓ  rÔ  rÕ  rÖ  r×  rØ  Úpytreer¹   rè   rh  s                     r½   ÚEQUALS_MATCHÚGuardBuilder.EQUALS_MATCHÝ  s  € Ø�l‰l˜5Ó!ˆØ�h‰h�u‹oˆßŠ2ä—‘Ü—‘Ü—‘Ü—‘Ü—‘Ü—	‘	Ü—	‘	Ü—	‘	Ü—
‘
Ü—
‘
Ü—
‘
ð/‰Hð ˆHä ¤#˜;ÐäÜ!äÜÜÜÜÜÜ—
‘
Ü—‘Ü—
‘
×"Ñ"×)Ñ)ðð ðð "ðñó
ˆô" ×Ñ×)Ñ)×+Ñ+Ý@÷ó ð  ØØØØØð#ñ ˆHõ 	<à˜nÑ,ˆç,Ð,ô �s×%Ñ%Ø×'Ò'¬¨S«	×2Ñ2Ü#¤D¨£I×.Ñ.ð	*ð œd 3›i˜[Ð)ó		*ð/ô �#”u×Ñ¤$§*¢*¨S§/¡/Ø˜S˜EÐ!=¸c¸UÀ"ÐEÐFˆDØ×'Ñ'¨Ô4à×"Ñ" 5Ó)×@Ñ@Ü& tÓ3Ø× Ñ ôð ô �#”w×Ñ¤B§H¢H¨S§M¡MØ˜S˜EÐ!@ÀÀÀRÐHÐIˆDØ×'Ñ'¨Ô4à×"Ñ" 5Ó)×BÑBÜ& tÓ3Ø× Ñ ôð ð �%�t˜C™7Ð#Ð$ˆÜ�#×(Ñ(ô ˜3“-ˆCä3°DÓ@ÐÞá?Qó"Ú?Q°t�4�&˜ Ð 0°Ó2Ñ?Qð ð "ð 	×Ñ˜uÓ%×<Ñ<ØÐ# U×%5Ñ%5ô	
ð 	×#Ñ# EÔ0Øùò"s   ÍNc                ó"  • U R                  U5      n[        U[        5      (       a  U R                  U5        g Uc  U R	                  U5        g [        U[
        R                  5      (       a  U R                  U5        g U R                  U5        g râ   )	rƒ  r“   rÖ   rw  r{  rF  ÚCodeTyper  rø  ©rÇ   re  rN  s      r½   ÚCONSTANT_MATCHÚGuardBuilder.CONSTANT_MATCHL	  sd   € Ø�h‰h�u‹oˆÜ�#”t×ÑØ�O‰O˜EÕ"Ø‰[Ø�O‰O˜EÕ"Ü�CœŸ™×(Ñ(Ø�M‰M˜%Õ à×Ñ˜eÕ$r¿   c                ó`  • U R                  US5        U R                  U5      n[        US5      (       aU  [        UR                  [
        5      (       d   eU R                  (       d"  U R                  US[        R                  5        g g [        R                  " SSS[        U5       S3S/S9  g )	Nz%[inline-inbuilt-nn-modules-candidate]Útrainingz-Attempted to guard on uninitialized nn.Modulerƒ  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ƒ  r…  r“   r   rÖ   rˆ  rE  r]  rý  rT   ÚunimplementedrP  rü  s      r½   Ú	NN_MODULEÚGuardBuilder.NN_MODULEW	  sž   € à�‰�eÐDÔEØ�h‰h�u‹oˆÜ�3˜
×#Ñ#Ü˜#Ÿ,™,¬×-Ñ-Ð-Ð-Ø×(×(à×(Ñ(¨°
¼L×<WÑ<WÕXð )ô ×ÒØGØð'Ü'+¨C£y k°ð5ð `ðór¿   c                ó$   • U R                  U5      $ )z0things like torch.add and user defined functions)r  r   s     r½   ÚFUNCTION_MATCHÚGuardBuilder.FUNCTION_MATCHk	  s   € ð �}‰}˜UÓ#Ð#r¿   c                ó®   • U R                  U5      n[        R                  " U5      (       d  [        UR                   S35      eU R                  U5        g)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_MATCHÚGuardBuilder.CLASS_MATCHp	  sJ   € à�h‰h�u‹oˆÜ�Š˜s×#Ñ#Ü Ø—:‘:�,ÐFÐGóð ð 	×Ñ Õ&r¿   c                ó®   • U R                  U5      n[        R                  " U5      (       d  [        UR                   S35      eU R                  U5        g)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_MATCHÚGuardBuilder.MODULE_MATCHy	  sL   € à�h‰h�u‹oˆÜ×Ò ×$Ñ$Ü Ø—:‘:�,ÐHÐIóð ð 	×Ñ Õ&r¿   c                ó(  • U R                  U5      n[        U5      [        R                  L aT  [	        US5      (       aC  U R                  US[        R                  5        U R                  US[        R                  5        gU R                  U5        g)z!matches a closure by __code__ id.r¯   N)
rƒ  rP  rF  rG  r…  rE  r]  rP  rý  r	  rü  s      r½   ÚCLOSURE_MATCHÚGuardBuilder.CLOSURE_MATCH‚	  sm   € ð �h‰h�u‹oˆä�‹9œ×*Ñ*Ò*¬w°s¸J×/GÑ/GØ×$Ñ$ U¨J¼×8LÑ8LÔMØ×$Ñ$ U¨J¼×8SÑ8SÕTà×Ñ Õ&r¿   c                óö   • U R                   (       aX  [        UR                  [        5      (       a9  U R                  R
                  R                  UR                  R                  5        U R                  U5      $ râ   )	r~  r	  rþ  rc   r|  Úused_builtin_varsrÿ   r¸   r~  r   s     r½   ÚBUILTIN_MATCHÚGuardBuilder.BUILTIN_MATCH�	  s[   € Ø××ä˜%×2Ñ2Ô4E×FÑFØ×%Ñ%×7Ñ7×;Ñ;Ø×,Ñ,×2Ñ2ôð ×&Ñ& uÓ-Ð-r¿   c                óf  • U R                  U5      nU R                  U5      n[        U[        5      (       d  U R	                  U5        / n[        U5      S:X  a  UR                  SU 35        O UR                  SU S[        U5       35        U R                  X5        [        U[        5      (       a?  U R                  U5      R                  [        U5      [        XA5      UR                  5        g U R                  U5      R                  [        U5      [        XA5      UR                  5        g )Nr   rg  zlen(ra  )r?  rƒ  r	  r2  r^  r·   r–  rJ  r�  Úadd_dict_length_check_guardr  rò  Úadd_length_check_guard©rÇ   re  rM  r  r¹   s        r½   ÚSEQUENCE_LENGTHÚGuardBuilder.SEQUENCE_LENGTH–	  sö   € ð �l‰l˜5Ó!ˆØ—‘˜“ˆä˜%¤×&Ñ&à�O‰O˜EÔ"àˆÜˆu‹:˜‹?Ø�K‰K˜$˜s˜e˜Õ%à�K‰K˜$˜s˜e 5¬¨U«¨Ð5Ô6à×#Ñ# EÔ0Ü�eœT×"Ñ"Ø×"Ñ" 5Ó)×EÑEÜ�E“
Ü& tÓ3Ø× Ñ õð ×"Ñ" 5Ó)×@Ñ@Ü�E“
Ü& tÓ3Ø× Ñ õr¿   c                ó˜  • U R                  U5      nU R                  U5      n[        U5      n/ nUR                  SU S[	        U5       35        U R                  X5        [        U5      nU R                  USUR                   S35      nU R                  U5      R                  [	        U5      U[        XQ5      UR                  5        g )Nz___tuple_iterator_len(ra  rW  rm  )r?  rƒ  rP  r–  rš   rJ  rj  r  r�  Úadd_tuple_iterator_length_guardr  rò  )rÇ   re  rM  r  rr  r¹   rÍ  s          r½   ÚTUPLE_ITERATOR_LENÚGuardBuilder.TUPLE_ITERATOR_LEN´	  sµ   € Ø�l‰l˜5Ó!ˆØ—‘˜“ˆÜ�‹KˆàˆØ�‰Ð,¨S¨E°Ô7IÈ%Ó7PÐ6QÐRÔSØ×#Ñ# EÔ0ä�‹KˆØ—‘˜Q %¨¯
©
 |°1Ð 5Ó6ˆà×Ñ˜uÓ%×EÑEÜ˜uÓ%ØÜ" 4Ó/Ø×Ñõ		
r¿   c           
     ó˜  • U R                  U5      nU R                  U5      n[        U5      n/ n[        U5      nUR	                  SU SU 35        U R                  X5        [        U5      nU R                  USUR                   S35      nUu  p‰n
U R                  U5      R                  UU	U
U[        XQ5      UR                  5        g )Nz___normalize_range_iter(ra  rW  rm  )r?  rƒ  rP  r–   r–  rJ  rj  r  r�  Úadd_range_iterator_match_guardr  rò  )rÇ   re  rM  r  rr  r¹   Únormalized_range_iterrÍ  ÚstartÚstopÚsteps              r½   ÚRANGE_ITERATOR_MATCHÚ!GuardBuilder.RANGE_ITERATOR_MATCHÇ	  sÆ   € Ø�l‰l˜5Ó!ˆØ—‘˜“ˆÜ�‹KˆàˆÜ 4°UÓ ;ÐØ�‰Ð.¨s¨e°5Ð9NÐ8OÐPÔQØ×#Ñ# EÔ0ä�‹KˆØ—‘˜Q %¨¯
©
 |°1Ð 5Ó6ˆà1Ñˆ�TØ×Ñ˜uÓ%×DÑDØØØØÜ" 4Ó/Ø×Ñõ	
r¿   c                óÖ  • [        UR                  5      (       d  [        U5      (       a  g U R                  (       an  [        U5      =n(       a%  U R                  R
                  R                  U5        [        U5      =n(       a%  U R                  R                  R                  U5        U R                  U5      nU R                  UR                  5      n[        UR                  5      (       d  [        U5      (       a  g XE4nX`R                  ;   a  g U R                  R                  XE45        U R                  R                  XT45        U SU 3/nU R                  X5        [        R                  (       a0  US   n[!        X�5      S   n	U R"                  R%                  X‰45        g ['        U R)                  U5      U R+                  U5      [!        Xq5      UR,                  5        g )Nú is r   )r2   rþ  r~  r-   r|  Úadditional_used_local_varsrÿ   r,   Úadditional_used_global_varsr?  r  r1   r†  rJ  rR   Ú#use_lamba_guard_for_object_aliasingr  r‡  r–  r!   r�  r÷  rò  )
rÇ   re  Úsource_br  Úref_aÚref_br#  r¹   r™  r˜  s
             r½   ÚDUPLICATE_INPUTÚGuardBuilder.DUPLICATE_INPUTß	  sœ  € Ü$Ø×$Ñ$÷
ñ 
ä& x×0Ñ0Øà××Ü,¨XÓ6Ð6ˆtÕ6Ø×%Ñ%×@Ñ@×DÑDÀTÔJÜ-¨hÓ7Ð7ˆtÕ7Ø×%Ñ%×AÑA×EÑEÀdÔKà—‘˜UÓ#ˆØ—‘˜XŸ]™]Ó+ˆä#Ø×$Ñ$÷
ñ 
ä% h×/Ñ/Øð ˆnˆØ×5Ñ5Ó5Øà×+Ñ+×/Ñ/°°Ô?Ø×+Ñ+×/Ñ/°°Ô?à�'˜˜e˜WÐ%Ð&ˆØ×#Ñ# EÔ0ä×5×5ð ˜Q™ˆIÜ 6°yÓ HÈÑ KÐØ×,Ñ,×3Ñ3°YÐ4RÕSä)Ø×&Ñ& uÓ-Ø×2Ñ2°8Ó<Ü& tÓ3Ø× Ñ õ	r¿   c                ó¸   • U R                  U5       S3/nU R                  X5        U R                  U5      R                  [	        X!5      UR
                  5        g r‡  )r?  rJ  r�  rˆ  r  rò  ©rÇ   re  r¹   s      r½   ÚWEAKREF_ALIVEÚGuardBuilder.WEAKREF_ALIVE
  sR   € Ø—<‘< Ó&Ð' |Ð4Ð5ˆà×#Ñ# EÔ0Ø×Ñ˜uÓ%×8Ñ8Ü" 4Ó/°×1AÑ1Aõ	
r¿   c           	     ó   • U R                  U5      nU R                  U5      n/ nUR                  SU S[        UR	                  5       5       35        U R                  X5        U R                  U5      R                  X4UR                  5        g)z7Guard on the key order of types.MappingProxyType objectzlist(z.keys()) == N)	r?  rƒ  r–  rü  r¹  rJ  r�  Úadd_mapping_keys_guardrò  r  s        r½   ÚMAPPING_KEYS_CHECKÚGuardBuilder.MAPPING_KEYS_CHECK
  sy   € à�l‰l˜5Ó!ˆØ—‘˜“ˆàˆØ�‰�e˜C˜5 ¬T°%·*±*³,Ó-?Ð,@ÐAÔBØ×#Ñ# EÔ0Ø×Ñ˜uÓ%×<Ñ<Ø˜×)Ñ)õ	
r¿   c           
     óÜ  • U R                  U5      nU R                  U5      nU[        R                  R                  R
                  L a  U R                  U5        gU R                  U5        / nUR                  SU S[        [        U5      5      < 35        U R                  X5        U R                  UR                  5      (       a  U R                  X15        gU R                  X15        g)z6Insert guard to check that the keys of a dict are sameNr&  z)) == )r?  rƒ  r@  ræ  rL   ÚSUPPORTED_NODESrd  r  r–  rü  rŠ   rJ  rÎ  rþ  r�  r–  r  s        r½   ÚDICT_KEYS_MATCHÚ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Ô0à×+Ñ+¨E×,DÑ,D×EÑEØ×-Ñ-¨eÕ;à×4Ñ4°UÕBr¿   c                óR   • [         R                  (       a  gU R                  U5        g)z\Special guard to skip guards on empty hooks. This is controlled by skip_nnmodule_hook_guardsN)rR   Úskip_nnmodule_hook_guardsr  r   s     r½   ÚEMPTY_NN_MODULE_HOOKS_DICTÚ'GuardBuilder.EMPTY_NN_MODULE_HOOKS_DICT:
  s   € ä×+×+àØ×Ñ˜UÕ#r¿   c                ó   • g râ   rÑ   r   s     r½   Ú	GRAD_MODEÚGuardBuilder.GRAD_MODEA
  ó   € Ør¿   c                ó   • g râ   rÑ   r   s     r½   ÚDETERMINISTIC_ALGORITHMSÚ%GuardBuilder.DETERMINISTIC_ALGORITHMSD
  rI  r¿   c                ó   • g râ   rÑ   r   s     r½   ÚFSDP_TRAINING_STATEÚ GuardBuilder.FSDP_TRAINING_STATEG
  rI  r¿   c                ó"  • U R                   R                  nUc   eUR                  nX0R                   l        SU R                   R                  R	                  5        3/nU R
                  R                  R                  X4UR                  5        g )Nz ___check_global_state() against )	r|  r�  Úglobal_state_guardÚglobal_stateÚ__getstate__ro  rã   Úadd_global_state_guardrò  )rÇ   re  r�  rR  r¹   s        r½   ÚGLOBAL_STATEÚGuardBuilder.GLOBAL_STATEJ
  s†   € Ø×,Ñ,×9Ñ9ˆØÑ'Ð'Ð'Ø#×6Ñ6ˆØ-9×ÑÔ*ð /¨t×/DÑ/D×/QÑ/Q×/^Ñ/^Ó/`Ð.aÐbð
ˆð 	×Ñ×Ñ×6Ñ6Ø × 0Ñ 0õ	
r¿   c                ó  • U R                   R                  c   e[        U R                   R                  5      U R                   l        U R                  R
                  R                  U R                   R                  S/UR                  5        g )Nz$___check_torch_function_mode_stack())r|  Útorch_function_mode_stackÚ$make_torch_function_mode_stack_guardÚ"torch_function_mode_stack_check_fnro  rã   Ú#add_torch_function_mode_stack_guardrò  r   s     r½   ÚTORCH_FUNCTION_STATEÚ!GuardBuilder.TORCH_FUNCTION_STATEX
  sy   € Ø×$Ñ$×>Ñ>ÑJÐJÐJä0Ø×%Ñ%×?Ñ?óð 	×ÑÔ@ð
 	×Ñ×Ñ×CÑCØ×!Ñ!×;Ñ;Ø3Ð4Ø×Ñõ	
r¿   c                óH  • UR                   [        R                  L d   eU R                  R                  c   eSU R                  R                  R
                  < 3/nU R                  X5        U R                  U5      R                  [        X!5      UR                  5        g)z/Guard on CURRENT_DEVICE per torch.utils._deviceNzutils_device.CURRENT_DEVICE == )rq  r>   ÚGLOBALr|  r�  Úcurrent_devicerJ  r�  Úadd_default_device_guardr  rò  r7  s      r½   ÚDEFAULT_DEVICEÚGuardBuilder.DEFAULT_DEVICEe
  s�   € à�|‰|œ{×1Ñ1Ò1Ð1Ð1à×$Ñ$×1Ñ1Ñ=Ð=Ð=à-¨d×.CÑ.C×.PÑ.P×._Ñ._Ñ-bÐcð
ˆð 	×#Ñ# EÔ0à×Ñ˜uÓ%×>Ñ>Ü" 4Ó/°×1AÑ1Aõ	
r¿   c                óš  ^ ^%^&^'^(• SSK Jn  UR                  S:X  d   eT R                  R                  m(T(c   eT R                  R
                  bU  T R                  R
                  nUR                  nUR                  nUR                  b  UR                  nUR                  nGO”[        T(U5      (       d   eT(R                  c   eT(R                  R                  =(       d    / m&T& Vs/ s H  oˆR                  PM     snm'SU(4S jjn	T(R                  (       aµ  0 n
/ n/ n0 n[        5       nT(R                   Hn  nUR                   T(R"                  ;   a<  [$        R&                  R(                  R+                  UU	T(R                  U
UUUU5        MY  [,        R/                  S5        Mp     [1        UU[3        UR5                  5       5      USS9m%OS m%SU%U&U'U(U 4S jjn[6        R8                  (       a   U" S	5      u  pEnSnOS
nU" S5      u  pET(R&                  (       d  T(R                  R=                  5         T R>                  (       aw  [A        5       RC                  S5      nUb  [        U[D        5      (       d   eUc  / O"[3        URF                  RI                  5       5      n[K        UUUUUS9T R                  l        URL                   H  nT RO                  UU/5        M     [P        RR                  " 5       =n(       a%  URT                  RW                  URL                  5        / n/ nU(       dÒ  W(       d   eURL                  URF                  nnU(       d  g URY                  5        H•  u  nn[        U[Z        5      (       a  S
nM  T RC                  U0 [\        E[_        5       ES9n[        U[`        5      (       a  URc                  UU45        Mi  [        U[d        5      (       a  URc                  UU45        M“  S
nM—     U(       Gd¢  SS K3nSSK4J5n  W(       d   eURL                  URF                  nn[m        UU-   5      n [o        U5       VVs/ s H!  u  nnT Rq                  [s        UU5      5      PM#     nnnSRu                  S [o        U5       5       5      n SRu                  S [o        U5       5       5      n!U (       a  SU  S3n U!(       a  SU! S3n![v        Rx                  " SU  SU! SSRu                  U5       S35      n"[z        R}                  SU"URL                  5        UR                  U"5      n#UR�                  U#R‚                  UR„                  5      R†                  n$U$(       d   e [‰        U[‹        U5      [‹        U5      U$U#URL                  URŒ                  5        g URL                  (       a6  T R•                  URL                  URL                  0 [\        E[_        5       ES9  g g s  snf ! [:         a    S
nU" S5      u  pE GNf = fs  snnf ! [$        RŽ                  R�                  R’                   a     Nšf = f)Nr   ©r¤   rƒ  c                ó€   >• TR                   U     Vs/ s H  n[        U[        R                  U5      PM      sn$ s  snf râ   )Útracked_fakes_id_to_sourcer5   r4   ÚSIZE)Út_idr  rq  r�  s      €r½   Úget_sourcesÚ+GuardBuilder.SHAPE_ENV.<locals>.get_sourcesŠ
  sG   ø€ ð #/×"IÑ"IÈ$Ò"Oóò #P˜ô )¨´×1DÑ1DÀcÖJá"Oñð ùò s   “%;z+Untracked tensor used in export constraintsF)Úsource_pairsÚderived_equalitiesÚphantom_symbolsÚrelaxed_sourcesÚ	warn_onlyc           
     óð   >• TR                   R                  T Vs/ s H  oR                  PM     snT Vs/ s H  oR                  PM     snTTTR                  TR
                  (       + U S9$ s  snf s  snf )N)Úinput_contextsÚequalities_inputsrk  Úignore_staticÚlangs)Ú	shape_envÚproduce_guards_verboseÚfakerq  rk  Úexport)ru  r®  rs  rø  rr  r�  rÇ   s     €€€€€r½   Ú_get_code_partsÚ/GuardBuilder.SHAPE_ENV.<locals>._get_code_parts´
  sn   ø€ à#×-Ñ-×DÑDÙ%'Ó(¢R —V”V¡RÑ(Ù')Ó*¢r !—X”X¡rÑ*Ø#1Ø&7Ø#Ÿ™ð (4×':Ñ':Ô#:Øð Eð 
ð 
ùÚ(ùÚ*s
   ›A.¶A3
)ÚpythonÚverbose_pythonÚcppT)r|  r}  Úcpp_code_parts)Úpython_code_partsrè   r  Úpython_fallbackÚshape_env_sources)rå   )ÚCppCodeCacherl  c              3  ó<   #   • U  H  u  nu  p#U S U S3v •  M     g7f)z = int_values[r(  NrÑ   ©r!  Úird  Úsymbols       r½   r%  Ú)GuardBuilder.SHAPE_ENV.<locals>.<genexpr>)  s*   é € ð ,â*I™˜™;˜Að �h˜n¨Q¨C¨qÕ1Ú*Iùó   ‚c              3  ó<   #   • U  H  u  nu  p#U S U S3v •  M     g7f)z = float_values[r(  NrÑ   r…  s       r½   r%  rˆ  -  s+   é € ð .â*K™˜™;˜Að �hÐ.¨q¨c°Õ3Ú*Kù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)ri  rC  r  rC  rÓ   úlist[Source])ru  útuple[str, ...]rÓ   zlist[_ShapeGuardsHelper])KÚtorch._dynamo.output_graphr¤   r  r|  r�  Úshape_code_partsr€  rè   r  r�  r	  rv  Útracked_fakesÚsymbolic_contextÚexport_constraintsrï   ri  rg  r@  ry  Údynamic_shapesÚ_process_equalitiesr<  r=  rI   rü  r4  rR   Ú enable_cpp_symbolic_shape_guardsÚOverflowErrorÚfreezer~  Úlocalsrƒ  rG   Úsource_to_symbolr¹  ÚShapeCodePartsÚexprsrJ  r8   Útry_getÚshape_env_guardsr3  rþ   r^   rK   ré  rC  r–  rã  ÚctypesÚtorch._inductor.codecacherƒ  r2  r™  r÷  r.   r$  ÚtextwrapÚdedentr&  r'  ÚloadÚcastre  Úc_void_pr  r#   r·   rò  Ú	_inductorrT   ÚInvalidCxxCompilerr1  ))rÇ   re  r¤   r�  r€  rè   r  r�  r®  rj  Únamesrl  rm  rn  ro  Ú
constraintrz  Úmaybe_cpp_code_partsÚmaybe_shape_env_sourcesr¹   Úcompile_contextÚint_source_to_symbolÚfloat_source_to_symbolrç   r™  rq  r‡  r@  rž  rƒ  r†  Úguard_managersÚint_symbols_strÚfloat_symbols_strÚfunc_strÚclibÚcguardrs  rø  rr  r�  s)   `                                    @@@@r½   Ú	SHAPE_ENVÚGuardBuilder.SHAPE_ENVs
  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×0Ô0¹"Ñ=ˆN÷ð ×.×.Ø46�Ø<>�ð ð #ð 68�Ü/2«u�Ø".×"AÔ"A�JØ!—‘¨,×*QÑ*QÓQÜŸ™×3Ñ3×GÑGØ&Ø'Ø(×2Ñ2Ø!Ø(Ø.Ø+Ø+ö	ô Ÿ™Ð$QÖRñ #Bô %7Ø!-Ø'9Ü$(¨×)?Ñ)?Ó)AÓ$BØ$3Ø#ñ%Ñ!ð %)Ð!÷ó ô ×6×6ðñ (Ð(KÓLñ JÐ%¸>ð ',‘Oð #'�Ù8GØ0ó9Ñ5Ð!ð  ×&×&Ø×&Ñ&×-Ñ-Ô/à××ô $*£8§<¡<Ð0@Ó#AÐ Ø'Ñ/´:Ø$Ô&;÷4ñ 4ð ð ð
 (Ñ/ñ äÐ.×?Ñ?×DÑDÓFÓGð $ô
 6DØ"3Ø#5Ø3Ø /Ø"9ñ6ˆD×!Ñ!Ô2ð &×+Ô+ˆDØ×'Ñ'¨°¨vÖ6ñ ,ô -×4Ò4Ó6Ð6ˆ?Õ6Ø×,Ñ,×3Ñ3Ð4F×4LÑ4LÔMà!ÐØ!#ÐæÞ!Ð!�>ð ×$Ñ$à×/Ñ/ð	 )ˆJö Øà"2×"8Ñ"8Ö":‘�˜Ü˜f¤n×5Ñ5Ø&*’Oà$(§H¡HØØ%L¬Ð%LÔ8IÓ8KÐ%Lð %-ð %�Mô " -´×5Ñ5Ø,×3Ñ3°V¸VÐ4DÖEÜ# M´5×9Ñ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=   Ã*W7Ç4W< ÑX Ñ(XÑ=C9X ×<XØXØX Ø(Y
Ù	Y
c                ó  • [         R                  (       a  UR                  5       (       a  g [        U5      (       a  U R	                  U5        g [        U[        5      (       a  U" 5       nUb  UOU R                  U5      n[        U5      n[        R                  R                  U5      n[        U[        R                  R                  5      (       a2  UR                  b  UR                  nUR                  b  UR                  n[        U[        R                   5      (       d   e[         R"                  (       a–  [        U[        R$                  R&                  5      (       am  [)        5       nUR+                  5       (       aN  UR-                  SUR/                  5       5        UR-                  SUR0                  5        UR-                  SS5        U R3                  U5      n/ nU R4                  R6                  c   eU R4                  R6                  R8                  (       aÈ  U R;                  U5        / SQnU H«  n	[=        UR>                  U	5      n
U	S:X  a  Sn	[A        U
5      n
U R                  U
5      n[C        U[        RD                  [        RF                  45      (       a&  URI                  SU S	U	 S
[K        U5      < 35        M’  URI                  U S	U	 SU 35        M­     GOŸU RM                  U5      n[         RN                  (       aC  [C        U[        R$                  R&                  5      (       do  [Q        UR>                  5      (       dU  [        UR>                  [R        5      (       d6  U RT                  RI                  U5        U RV                  RI                  U5        U R4                  R6                  nURX                  UR>                     n[[        US   5      n[[        US   5      n[]        [_        UUUUUU5      U5      nUR`                  nURc                  UUUUUUUU5        [        U[        R$                  R&                  5      (       d/  U Rd                  Rf                  Ri                  URj                  5        URl                  c   e[o        USUR>                  S9u  nnU(       Gd*  [q        US5      (       a`  URr                  nSU SU SU S3nURI                  U5        U RM                  U5      Ru                  U[]        UU5      UR`                  5        OMSU S3nURI                  U5        U RM                  U5      Rw                  S[]        UU5      UR`                  5        [y        USS 5      =n(       aX  SU SU< SU S3nURI                  U5        U RM                  U5      R{                  U4S j[]        UU5      UR`                  5        [}        U5      S:”  a  U R                  X5        g g )NÚparam_numelÚparam_bytesÚparam_countrQ   )r  rÛ  r  Ú
ndimensionrº  zndimension()zstr(rf  ra  rB  ÚsizeÚstrideT)Ú	is_tensorÚtensor_sourceÚ_dynamo_dynamic_indicesz((z"._dynamo_dynamic_indices.issubset(z)) if hasattr(z', '_dynamo_dynamic_indices') else True)rH  z%, '_dynamo_dynamic_indices') == FalseÚ_dynamo_shape_idsz
((getattr(z , '_dynamo_shape_ids', None) == z) if hasattr(z(, '_dynamo_unbacked_indices') else True)c                óH   • [        U S5      (       a  [        U SS 5      U:H  $ S$ )NÚ_dynamo_unbacked_indicesrÀ  T)r…  r  )rŒ  Úexpecteds     r½   rÉ  Ú+GuardBuilder.TENSOR_MATCH.<locals>.<lambda>3  s1   € ä& qÐ*D×EÑEô $ AÐ':¸DÓAÀXÑMð &à!%ð&r¿   r   )@rR   Ú_unsafe_skip_fsdp_module_guardsÚis_fsdp_modulerS  r  r	  rP   rƒ  rP  r@  r  Ú_dispatch_keysrY  rZ  r  r  rA  Úlog_compilation_metricsrD  Ú	Parameterr7   Úin_progressÚ	incrementÚnumelÚnbytesr?  r|  r�  ry  r^  rW   rþ  rX   r“   rÛ  r  r–  rÔ   r�  Ú,skip_no_tensor_aliasing_guards_on_parametersr3   ru   rz  r{  Úinput_source_to_sizes_stridesr  r  r   rò  Úadd_tensor_match_guardro  rñ   rÿ   r  rq  r˜   r…  r¿  Úadd_dynamic_indices_guardrK  r  r*  r·   rJ  )rÇ   re  r  r  r  Úmetrics_contextÚtensor_namer¹   ÚtermsÚtermÚterm_srcÚ
real_valuero  r�  Úmetadatar»  r¼  rè   rò  ÚstaticÚ_reasonÚdynamic_indicesr™  Ú	shape_idss                           r½   ÚTENSOR_MATCHÚGuardBuilder.TENSOR_MATCHl  sC  € Ü×1×1°e×6JÑ6J×6LÑ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Ð2ä×-×-´*¸UÄEÇHÁH×DVÑDV×2WÑ2WÜ"5Ó"7�Ø"×.Ñ.×0Ñ0Ø#×-Ñ-¨m¸U¿[¹[»]ÔKØ#×-Ñ-¨m¸U¿\¹\ÔJØ#×-Ñ-¨m¸QÔ?àŸ,™, uÓ-ˆKð, !ˆDØ×(Ñ(×5Ñ5ÑAÐAÐAØ×$Ñ$×1Ñ1×8×8Ø—‘ Ô&ò�ó "�DÜ)¨%×*BÑ*BÀDÓI�HØ˜|Ó+Ø-˜Ü#;¸HÓ#E˜Ø!%§¡¨(Ó!3�JÜ˜j¬5¯<©<¼¿¹Ð*E×FÑFàŸ™ d¨;¨-°q¸¸¸eÄCÈ
ÃOÑCVÐ$WÖXàŸ™ { m°1°T°F¸$¸z¸lÐ$KÖLó "ð !%× 6Ñ 6°uÓ =�ô ×G×Gä˜u¤e§h¡h×&8Ñ&8×9Ñ9ÜIØ!×4Ñ4÷ñ ô % U×%=Ñ%=Ô?P×QÑ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¸%Ó@Ø×(Ñ(ôô !(¨Ð/BÀDÓ IÐI�9ÕIØ",¨[¨MÐ9YÐZcÑYfÐfsÐtð  tAð  Aið  !j�IØ—K‘K 	Ô*Ø×*Ñ*¨5Ó1×BÑBØ+4ó ô
 /¨y¸%Ó@Ø×(Ñ(ôô �4‹y˜1‹}Ø×+Ñ+¨EÕ8ð r¿   c                ón  • [        5       nUc   eUR                  nAUc   eU=(       d    UR                  R                  nAXpR                  R
                  ;   d
   SU 35       eUc'  UR                  nU(       d  S OU R                  U5      n	OUn	U	b  [        R                  " [        U	5      5      OS n
S n[        U	R                  SS5      S:g  nU(       aJ  [        U	[        R                  [        [        R                   45      (       d  [        R                  " U	5      nUR#                  UU
UU5        g )NzH_produce_guard_code must be called from inside GuardedCode. Called from Ú__weakrefoffset__r   )r   Úf_backri  Úco_namerÏ   rs  r  rƒ  rn  rM  rP  r  r	  ÚenumÚEnumrN  Ú
ProxyTypesÚset_export_info)rÇ   re  rV  rI  r‚  Ú	cur_frameÚcallerÚ	func_namer  Úguarded_objectÚguarded_object_typeÚobj_refÚsupports_weakrefs                r½   rJ  Ú#GuardBuilder._set_guard_export_infoA  s0  € ô !“Nˆ	ØÑ$Ð$Ð$Ø×!Ñ!ˆØØÑ!Ð!Ð!Ø&×?¨&¯-©-×*?Ñ*?ˆ	ØàŸ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¿   )r†  r…  r‰  rx  r|  r¹   ri  r  ro  rˆ  r}  rí   rj  r€  rl  r{  rz  r‡  rq  r~  rm  ry  rk  rp  )FNN)ri  útypes.CodeTyperj  zCallable[[object, str], int]rk  zCallable[[Source], str]rl  z1Callable[[object], Optional[weakref.ref[object]]]rŠ  údict[str, object]ré   rð  ro  rà   r|  ÚCheckFunctionManagerr~  rÖ   rq  r½  r  ú=Callable[[Sequence[GuardFilterEntry]], Sequence[bool]] | NonerÓ   r×   )r@  údict[Any, Any]re  r;   rÓ   r×   )r  ró  re  r;   rÓ   r×   )r@  r   rÓ   úOptional[Any])rq  rW   rH  r   rI  r   r@  r   rJ  rÔ   r¬  rÔ   rA  r<  rÓ   r   )rq  r?   rÓ   rÖ   )rq  r?   r@  zHOptional[Union[KeysView[Any], set[Any], frozenset[Any], dict[Any, Any]]]rÓ   r<  )rÔ  r<  rÓ   rÖ   )rÓ   r   )rq  r?   rÓ   r   )re  r;   rÓ   r   r/  )
rç   rŸ  rè   rŸ  rå   r½  r+  rÖ   rÓ   r×   râ   )r5  zGuard | Sourcerå   úOptional[dict[str, Any]]rÓ   r   )re  zUnion[str, Guard]rÓ   rÔ   )re  r;   r¼  rÔ   r0  z(Callable[[GuardBuilderBase, Guard], Any]rÓ   r×   )re  r;   rÓ   r×   )re  r;   r³  rô  rÓ   r×   )re  r;   r#  rÔ   rh  rÖ   rÓ   r×   )re  r;   r#  r   rh  rÖ   rÓ   r×   )re  r;   rÿ  r¤  rÓ   r×   )re  r;   r  rô  rÓ   r×   )re  r;   r1  r?   rÓ   r×   )NN)
re  r;   rV  rŸ  rI  rô  r‚  r¤  rÓ   r×   )@rØ   rÙ   rÚ   rÛ   rò   r–  r�  rI  r¨  rÊ  rÎ  r’  rÕ  rÚ  r÷  r�  r1  rƒ  r?  rE  rP  rT  r^  rd  rk  rq  rw  r{  r  r~  r‰  r�  r’  r¡  r±  r¾  rÆ  rÐ  rø  rý  r  r	  r  r  r  r  r  r"  r*  r4  r8  r<  r@  rD  rG  rK  rN  rU  r\  rb  r´  rÝ  rJ  rÜ   rÑ   r¿   r½   r]  r]  õ  sh  † ð "Ø<@àðNFàðNFð -ðNFð ,ð	NFð
 KðNFð 'ðNFð (ðNFð +ðNFð /ðNFð ðNFð :ðNFððNFð 
õNFð`Ø+ðØ49ðà	ôô<'ðR óó ðð"YàðYð )ðYð  ð	Yð
 ðYð ðYð ðYð -ðYð 
ôYôv9ð"àð"ð
ð"ð 
ô"ô,?ô
ô\ô|Lð 59Ø ðYàðYð &ðYð 2ð	Yð
 ðYð 
õYðP 26ðà'ðð /ðð 
õ	ô&ð àðð ðð ;ð	ð
 
ôô":0ðz 37ð0Øð0Ø"/ð0à	õ0ô8
ô4
ô0ô"0ô&ô"

ö>ð =Að%?Øð%?Ø,9ð%?à	õ%?öN	
ô

ô
ô
ô&
ô8
ô0
ô
ö0mô^	%ôô($ô
'ô'ô	'ô.ôô<
ô&
ô0,ô\
ô

ôCô2$ôôôô
ô
ô
ôwörR9ðr 26Ø,0ð1
àð1
ð ð1
ð "/ð	1
ð
 *ð1
ð 
÷1
ð 1
r¿   r]  c                  ó  • \ rS rSrSr\R                  \R                  \R                  4r	\
R                   " S S5      5       r " S S\R                  5      r " S S\R                  5      rSS	 jrSSS
 jjrSS jrSS jrSrg)ÚPyExprCSEPassi†  rQ   c                  ó*   • \ rS rSr% S\S'   S\S'   Srg)ÚPyExprCSEPass.ConfigiŽ  zdict[str, int]Ú
expr_countzdict[str, str]Úexpr_to_namerÑ   NrW  rÑ   r¿   r½   ÚConfigrù  Ž  s   ‡ à"Ó"Ø$Ö$r¿   rü  c                  ó6   ^ • \ rS rSrSS jrSU 4S jjrSrU =r$ )ÚPyExprCSEPass.ExprCounteri“  c                ó   • Xl         g râ   ©Ú_config)rÇ   rR   s     r½   rò   Ú"PyExprCSEPass.ExprCounter.__init__”  s   € Ø!�Lr¿   c                ó¶   >• [        U[        R                  5      (       a*  U R                  R                  [        U5      ==   S-  ss'   [        TU ]  U5        g rµ   )r	  r÷  ÚALLOWED_NODE_TYPESr  rú  rï  rË   r  )rÇ   r   rÏ   s     €r½   r  ÚPyExprCSEPass.ExprCounter.visit—  sA   ø€ Ü˜$¤× @Ñ @×AÑAØ—‘×'Ñ'¬°TÓ(:Ó;¸qÑ@Ó;Ü‰G‰M˜$Õr¿   r   )rR   rù  rÓ   r×   )r   úast.ASTrÓ   r×   ©rØ   rÙ   rÚ   rÛ   rò   r  rÜ   rÝ   rÞ   s   @r½   ÚExprCounterrþ  “  s   ø† ô	"÷	 õ 	 r¿   r  c                  óH   ^ • \ rS rSr      SU 4S jjrSU 4S jjrSrU =r$ )ÚPyExprCSEPass.Replaceriœ  c                óH   >• [         TU ]  5         Xl        X l        / U l        g râ   )rË   rò   r  Ú	_gen_nameÚpreface)rÇ   rR   Úgen_namerÏ   s      €r½   rò   ÚPyExprCSEPass.Replacer.__init__�  s!   ø€ ô
 ‰GÑÔØ!ŒLØ%ŒNØ&(ˆD�Lr¿   c                óJ  >• [        U[        R                  5      (       aõ  [        U5      nU R                  R
                  U   [        R                  :”  a¿  X R                  R                  ;  ac  [        TU ]%  U5      n[        U5      nU R                  5       nU R                  R                  U SU 35        XPR                  R                  U'   OU R                  R                  U   n[        R                  " U[        R                  " 5       5      $ [        TU ]%  U5      $ )Nz = )r	  r÷  r  rï  r  rú  ÚUSE_THRESHOLDrû  rË   r  r  r  r–  rì  ÚNameÚLoad)rÇ   r   ÚexprÚnode_Úexpr_rº   rÏ   s         €r½   r  ÚPyExprCSEPass.Replacer.visit§  sÞ   ø€ Ü˜$¤× @Ñ @×AÑAÜ# DÓ)�ð —<‘<×*Ñ*¨4Ñ0´=×3NÑ3NÓNØ§<¡<×#<Ñ#<Ó<ô !&¡¡¨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¿   )r  r  r  )rR   rù  r  zCallable[[], str]rÓ   r×   )r   r  rÓ   r   r  rÞ   s   @r½   ÚReplacerr
  œ  s.   ø† ð	)à(ð	)ð (ð	)ð ÷		)÷	'õ 	'r¿   r  c                óf   • SU l         U R                  [        R                  " S 5      0 S9U l        g )Nr   c                 ó   • grù   rÑ   rÑ   r¿   r½   rÉ  Ú(PyExprCSEPass.__init__.<locals>.<lambda>Ä  s   € °qr¿   )rú  rû  )Ú_counterrü  rÞ  Údefaultdictr  rÆ   s    r½   rò   ÚPyExprCSEPass.__init__Á  s.   € ØˆŒØ—{‘{Ü"×.Ò.©yÓ9Èð #ð 
ˆ�r¿   c                óP   • U U R                    3nU =R                   S-  sl         U$ rµ   )r  )rÇ   rÈ   r  s      r½   Ú_new_varÚPyExprCSEPass._new_varÇ  s'   € Ø�˜$Ÿ-™-˜Ð)ˆØ�Š˜Ñ�Øˆr¿   c                ó   • U R                  U R                  5      nU H)  n UR                  [        R                  " U5      5        M+     g ! [
         a'  n[        R                  SUR                  U5        e S nAff = f)Nz#Failed to visit expr at line %s.
%s)	r  r  r  rì  ÚparseÚSyntaxErrorr<  Ú	exceptionÚlineno)rÇ   r›  ÚcounterÚeÚexs        r½   ÚcountÚPyExprCSEPass.countÌ  sd   € Ø×"Ñ" 4§<¡<Ó0ˆÛˆAðØ—‘œcŸiši¨›lÖ+ò øô ó Ü—‘ÐDÀbÇiÁiÐQRÔSØûðús   ¢%AÁ
A=Á"A8Á8A=c                óÆ   • U R                  U R                  U R                  5      nUR                  [        R
                  " U5      5      nUR                  [        U5      4$ râ   )r  r  r   r  rì  r#  r  rï  )rÇ   r  ÚreplacerÚnew_nodes       r½   rî  ÚPyExprCSEPass.replaceÕ  sF   € Ø—=‘= §¡¨t¯}©}Ó=ˆØ—>‘>¤#§)¢)¨D£/Ó2ˆØ×Ñ¤¨hÓ!7Ð7Ð7r¿   )r  r  Nr£  )Ú_var)rÈ   rÔ   rÓ   rÔ   )r›  rŸ  rÓ   r×   ©r  rÔ   rÓ   ztuple[list[str], str])rØ   rÙ   rÚ   rÛ   r  rì  Ú	AttributeÚCallÚ	Subscriptr  ÚdataclassesÚ	dataclassrü  ÚNodeVisitorr  ÚNodeTransformerr  rò   r   r*  rî  rÜ   rÑ   r¿   r½   r÷  r÷  †  sx   † ð €Mð Ÿ-™-¨¯©°3·=±=ÐAÐà×Ñ÷%ð %ó ð%ô �c—o‘oô  ô#'�3×&Ñ&ô #'ôJ
öô
÷8r¿   r÷  c                óª   • [        U R                  [        5      =(       d3    [        R                  =(       a    U R
                  [        R                  L $ râ   )r	  rþ  rb   rR   Ú guard_nn_modules_using_dict_tagsÚ	create_fnr]  r  )re  s    r½   Úmust_add_nn_module_guardsr<  Û  s@   € ô
 	�5×+Ñ+¬^Ó<÷ 	
ô ×3Ñ3÷ :Ø—‘¤<×#9Ñ#9Ð9ðr¿   c                  ó6   ^ • \ rS rSrSU 4S jjrSS jrSrU =r$ )ÚDeletedGuardManagerWrapperié  c                ó.   >• [         TU ]  5         Xl        g râ   )rË   rò   Úinvalidation_reason)rÇ   ÚreasonrÏ   s     €r½   rò   Ú#DeletedGuardManagerWrapper.__init__ê  s   ø€ Ü‰ÑÔØ#)Õ r¿   c                ó   • S U l         g râ   )rä   rÆ   s    r½   r  Ú6DeletedGuardManagerWrapper.populate_diff_guard_managerî  s
   € Ø#ˆÕr¿   )rä   r@  )rA  rÔ   rÓ   r×   r£  )rØ   rÙ   rÚ   rÛ   rò   r  rÜ   rÝ   rÞ   s   @r½   r>  r>  é  s   ø† ÷*÷$ò $r¿   r>  c                  óH   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   Srg)rš  iò  rH   r€  rè   zOptional[_CppShapeGuardsHelper]r  rÖ   r�  rŒ  r‚  rÑ   NrW  rÑ   r¿   r½   rš  rš  ò  s    ‡ à)Ó)Ø*Ó*Ø3Ó3ØÓØ#Ö#r¿   rš  c                  ó*   • \ rS rSr% S\S'   S\S'   Srg)ÚGuardsStateiû  r¥   r�  úOptional[ShapeCodeParts]r�  rÑ   NrW  rÑ   r¿   r½   rG  rG  û  s   ‡ à(Ó(Ø.Ö.r¿   rG  c                  ó@   • \ rS rSrSS	S jjrS
S jrS
S jrSS jrSrg)Ú_Missingi  Nc                ó   • Xl         g râ   ©rÚ  )rÇ   rA  s     r½   rò   Ú_Missing.__init__  s   € Ø�r¿   c                ó"   • SU R                    S3$ ©Nz	_Missing(rm  rL  rÆ   s    r½   Ú__repr__Ú_Missing.__repr__  ó   € Ø˜4Ÿ<™<˜.¨Ð*Ð*r¿   c                ó"   • SU R                    S3$ rO  rL  rÆ   s    r½   r‡  Ú_Missing.__str__  rR  r¿   c                ó   • [        5       $ râ   )rJ  )rÇ   ræ   Úkwargss      r½   Ú__call__Ú_Missing.__call__  s
   € Ü‹zÐr¿   rL  râ   )rA  r¤  rÓ   r×   rÒ   )ræ   r   rV  r   rÓ   r   )	rØ   rÙ   rÚ   rÛ   rò   rP  r‡  rW  rÜ   rÑ   r¿   r½   rJ  rJ    s   † öô+ô+÷
r¿   rJ  c                 óÎ   • [         R                  R                  [        R                  4n  U [         R                  R
                  R                  4-  n U $ ! [         a     U $ f = frâ   )r@  r  rç  rn  r   Ú_distributed_c10dÚProcessGroupÚAttributeError)r7  s    r½   Ú_get_unsupported_typesr]    sa   € ô 	�‰�‰Ü×Ñð€CðØ”—‘×*Ñ*×7Ñ7Ð9Ñ9ˆð €Jøô ó ØØ€Jðús   ¬(A Á
A$Á#A$c                  ó6  ^ • \ rS rSr            SU 4S jjr\SS j5       r\            SS j5       r\              SS j5       r\SS j5       r	\SS j5       r
\    SS j5       r\    SS	 j5       r\SS
 j5       r\    S S j5       r\    S!S j5       r\S"S j5       r\S#S j5       r\S$S j5       r\S%S j5       r\S&S j5       r\      S'S j5       r\S(S j5       r\            S)S j5       r    S*S jrSrU =r$ )+ÚGuardsStatePickleri  c                óê   >• [         TU ]  " U0 UD6  [        R                  R	                  5       U l        [        R                  R                  R                  5       U l        Xl	        X l
        X0l        g râ   )rË   rò   r@  rY  ÚFakeTensorModeÚ	fake_modeÚfake_tensorÚFakeTensorConverterÚtensor_converterr}  Úempty_valuesÚmissing_values)rÇ   r}  rf  rg  ræ   rV  rÏ   s         €r½   rò   ÚGuardsStatePickler.__init__   s\   ø€ ô 	‰Ò˜$Ð) &Ò)Ü×*Ñ*×9Ñ9Ó;ˆŒÜ %× 1Ñ 1× =Ñ =× QÑ QÓ SˆÔØ!2ÔØ(ÔØ,Õr¿   c                ód   • [         R                  R                  5       nUR                  U5        U$ râ   )r@  rD  rE  Ú__setstate__)r¶  ÚstateÚmods      r½   Ú_unpickle_moduleÚ#GuardsStatePickler._unpickle_module/  s%   € ä�h‰h�o‰oÓˆØ×Ñ˜ÔØˆ
r¿   c           	     ó  • [         R                  R                  5       n[         R                  R                  R	                  5       nUR                  UUUU[         R                  R                  R                  U5      5      nXXl	        U$ râ   )
r@  rY  ra  rc  rd  Úfrom_meta_and_devicer  r£   Úfrom_raw_reprÚgrad)	r¶  Úmeta_tensorrÛ  r  Údispatch_keys_rawrr  rb  re  r7  s	            r½   Ú_unpickle_tensorÚ#GuardsStatePickler._unpickle_tensor5  st   € ô ×%Ñ%×4Ñ4Ó6ˆ	Ü ×,Ñ,×8Ñ8×LÑLÓNÐØ×3Ñ3ØØØØÜ�H‰H×#Ñ#×1Ñ1Ð2CÓDó
ˆð ŒØˆ
r¿   c                ó  • 0 nU H  u  p‰n
U	" U
6 Xx'   M     UR                   UR                  5       pË[        U5      R                  XuX¼5      nX=l        [
        R                  R                  R                  U5      Ul	        U$ râ   )
Úshaper¼  rP  Ú__tensor_unflatten__r  r@  r  r£   rq  r  )r¶  rs  rÛ  r  rt  ÚctxÚ
inner_dataÚinner_tensorsr³  Úunpickle_funcÚunpickle_func_argsÚ
outer_sizeÚouter_strider  s                 r½   Ú$_unpickle_traceable_wrapper_subclassÚ7GuardsStatePickler._unpickle_traceable_wrapper_subclassJ  s„   € ð ˆÛ7AÑ3ˆDÐ!3Ù"/Ð1CÐ"DˆMÓñ 8Bð $/×#4Ñ#4°k×6HÑ6HÓ6J�LÜ�;Ó×4Ñ4Ø 
ó
ˆð Œ
Ü!ŸH™H×3Ñ3×AÑAÐBSÓTˆÔØˆ
r¿   c                ó.   • [         R                  " U5      $ râ   )rä  rå  )r¶  Úaliass     r½   Ú_unpickle_python_moduleÚ*GuardsStatePickler._unpickle_python_modulea  s   € ä×&Ò& uÓ-Ð-r¿   c                óT   • [         R                  R                  R                  U5      $ râ   )r@  r  r£   rq  )r¶  Úraw_reprs     r½   Ú_unpickle_dispatch_key_setÚ-GuardsStatePickler._unpickle_dispatch_key_sete  s   € ä�x‰x×&Ñ&×4Ñ4°XÓ>Ð>r¿   c                óh   • [         R                  R                  R                  R	                  U5      $ râ   )r@  r  rœ  ÚCInterpreterÚdeserialize)r¶  Újsons     r½   Ú_unpickle_functorch_interpreterÚ2GuardsStatePickler._unpickle_functorch_interpreteri  s%   € ô �x‰x×"Ñ"×/Ñ/×;Ñ;¸DÓAÐAr¿   c                ó.   • [         R                  " U5      $ râ   )rF  ÚMappingProxyType)r¶  Úds     r½   Ú_unpickle_mapping_proxyÚ*GuardsStatePickler._unpickle_mapping_proxyo  s   € ô ×%Ò% aÓ(Ð(r¿   c                óH   • [         R                  U5      R                  5       $ râ   )r2  Úfromkeysr¹  )r¶  Úelemss     r½   Ú_unpickle_dict_keysÚ&GuardsStatePickler._unpickle_dict_keysu  s   € ä�}‰}˜UÓ#×(Ñ(Ó*Ð*r¿   c                ó€   • [         R                  R                  R                  R                  R	                  5       U   $ râ   )r@  rê  ÚfsdpÚ_fully_shardÚget_cls_to_fsdp_cls)r¶  Úoriginal_types     r½   Ú_unpickle_fsdp_module_typeÚ-GuardsStatePickler._unpickle_fsdp_module_typey  s5   € ô × Ñ ×%Ñ%×2Ñ2×?Ñ?×SÑSÓUØñ
ð 	
r¿   c                óÂ   • [         R                  R                  R                  nUR	                  U5      n[         R                  R
                  R                  X15        U$ râ   )r@  rD  ÚparallelÚDistributedDataParallelÚ__new__rE  rj  )r¶  rk  ÚtyÚddps       r½   Ú_unpickle_ddp_moduleÚ'GuardsStatePickler._unpickle_ddp_module�  sA   € ô �X‰X×Ñ×6Ñ6ˆØ�j‰j˜‹nˆÜ�‰�‰×$Ñ$ SÔ0Øˆ
r¿   c                óJ   • [        [        R                  R                  U5      $ râ   )r  r@  Úopsr  )r¶  r  s     r½   Ú_unpickle_c_opÚ!GuardsStatePickler._unpickle_c_opŠ  s   € ä”u—y‘y—|‘| TÓ*Ð*r¿   c                ó^   • [        [        [        [        R                  U5      U5      U5      $ râ   )r  r@  r«  )r¶  Ú	namespaceÚopnameÚoverloadnames       r½   Ú_unpickle_opÚGuardsStatePickler._unpickle_opŽ  s!   € ä”wœw¤u§y¡y°)Ó<¸fÓEÀ|ÓTÐTr¿   c                ó.   • [         R                  " X5      $ râ   )rF  rH  )r¶  Úfuncr  s      r½   Ú_unpickle_bound_methodÚ)GuardsStatePickler._unpickle_bound_method’  s   € ä×Ò Ó+Ð+r¿   c                ó^   • [        [        R                  R                  R                  U 5      $ râ   )r  r@  rD  Ú	attentionÚ
SDPBackend©r  s    r½   Ú_unpickle_sdp_backendÚ(GuardsStatePickler._unpickle_sdp_backend–  s!   € ô ”u—x‘x×)Ñ)×4Ñ4°dÓ;Ð;r¿   c                óP   ^• SU4S jjnUR                   c   eUR                   S   $ )Nc                 ó   >• T $ râ   rÑ   )rN  s   €r½   rd  Ú,GuardsStatePickler._unpickle_cell.<locals>._�  s   ø€ ØˆJr¿   r   )rÓ   r   )r°   )r¶  rN  rd  s    ` r½   Ú_unpickle_cellÚ!GuardsStatePickler._unpickle_cell›  s)   ø€ ÷	ð �}‰}Ñ(Ð(Ð(Ø�}‰}˜QÑÐr¿   c                ó.   • [         R                  " X5      $ râ   )rÞ  Ú
namedtuple)r¶  r  Úfieldss      r½   Ú_unpickle_named_tuple_typeÚ-GuardsStatePickler._unpickle_named_tuple_type£  s   € ô
 ×%Ò% dÓ3Ð3r¿   c                ó2   • SSK Jn  UR                  " U5      $ )Nr   r¦   )Útorch._dynamo.packager§   Úto_code_object)r¶  Úserialized_coder§   s      r½   Ú_unpickle_codeÚ!GuardsStatePickler._unpickle_codeª  s   € å8à×,Ò,¨_Ó=Ð=r¿   c                ór   • [         R                  " U5      R                  n[        R                  " XX4U5      $ râ   )rä  rå  rs  rF  rG  )r¶  r¹   r  ÚqualnameÚargdefsÚclosurerØ  s          r½   Ú_unpickle_nested_functionÚ,GuardsStatePickler._unpickle_nested_function°  s/   € ô ×+Ò+¨FÓ3×<Ñ<ˆ	Ü×!Ò! $°8ÀgÓNÐNr¿   c                óÜ  • SS K n[        U5      U R                  ;   a!  [        U5      R                  [        U5      44$ [
        R                  " U5      (       a.  SSKJn  [        U 5      R                  UR                  " U5      44$ [        U5      U R                  ;   a  [        S4$ [        U[        R                  5      (       Ga  UR                   R                  S:w  Gaü  SSKJn  [        U5      U R&                  ;  a  [        S4$ U" U5      (       aò  / nUR)                  5       u  pgU Hj  n[+        X5      n	[        U	[        R                  5      (       a  X�R&                  [        U	5      '   U R-                  U	5      u  p«UR/                  XŠU45        Ml     [        U 5      R0                  [        R2                  " USS9UR                   [        U5      [        R4                  R7                  U5      R9                  5       UU44$ [        U5      n[        U[        R:                  R<                  5      (       a)  UR>                  b  UR>                  O[        R                  n[        U 5      R@                  [        R2                  " USURB                  S9UR                   U[        R4                  R7                  U5      R9                  5       URD                  44$ [        U[        RF                  RH                  5      (       Ga°  [        U5      U R&                  ;  a  [        S	4$ URJ                  RM                  5        H‚  n[        U[        R                  [        RF                  RH                  45      (       a  M>  [        U5      U R&                  ;   a  MY  [O        U5      (       a  Mk  X€R                  [        U5      '   M„     [        U[        RF                  RP                  RR                  5      (       a&  [        U 5      RT                  URW                  5       44$ [        U5      RX                  [        U5      RZ                  :X  a  [\        $ UR^                  RV                  [        RF                  RH                  RV                  :X  a&  [        U 5      R`                  URW                  5       44$ GO¨[
        Rb                  " U5      (       a"  [        U 5      Rd                  URZ                  44$ [        U[        R4                  Rf                  5      (       a&  [        U 5      Rh                  UR9                  5       44$ [        U[        R4                  Rj                  Rl                  5      (       a&  [        U 5      Rn                  URq                  5       44$ [
        Rr                  " U5      (       aW  [u        XRv                  5      (       a=  [y        US
5      (       a,  [y        US5      (       d   eURz                  UR|                  44$ [
        Rr                  " U5      (       am  [u        U[~        5      (       aX  [y        US5      (       aG  URX                  URZ                  :w  a-  [        U 5      R€                  URZ                  UR‚                  44$ [        U[        R„                  5      (       a  [‡        SU SURˆ                   S35      e[        U[Š        RŒ                  5      (       a&  [        U 5      RŽ                  UR‘                  5       44$ [        U[        R’                  R”                  R–                  5      (       a!  [        U 5      R˜                  [›        U5      44$ [        U[        Rœ                  Rž                  5      (       aB  UR                   R£                  S5      (       a"  [        U 5      R¤                  URZ                  44$ [        U[        Rœ                  R¦                  5      (       a8  [        U 5      R¨                  URª                  UR¬                  UR®                  44$ UR^                  R°                  S:X  a"  UR^                  RZ                  S:X  a  [        S4$ [        U[³        5       5      (       a  [        S4$ [
        R´                  " U5      (       aÔ  SURX                  ;   aN  [        U 5      R¶                  UR¸                  UR°                  URX                  URº                  UR¼                  44$ UR°                  [¾        RÀ                  ;   aW  [¾        RÀ                  UR°                     nURX                  RÃ                  S5       H  n[+        XÞS 5      nM     XÑLa  [        S4$ OÝ[
        RÄ                  " U5      (       ar  URÆ                  n
URÈ                  n[+        XúRZ                  5      n[
        RÄ                  " U5      (       a  URÆ                  nU
ULa  [        U 5      RÊ                  X¯44$ OP[        U[        S " S5      R¼                  S   5      5      (       a"  [        U 5      RÌ                  URÎ                  44$ [y        [        RÐ                  S5      (       aT  [        U[        RÐ                  RÒ                  RÔ                  5      (       a!  [        U5      U R&                  ;  a  [        S4$ [        U[        RF                  RÖ                  RØ                  5      (       a"  [        U 5      RÚ                  URÜ                  44$ [        U5      RX                  [        U5      RZ                  :w  aT  [        U[~        5      (       d?  [        R’                  RÞ                  Rá                  S[        U5       SU S3S-   S-   5      e[
        Rr                  " U5      (       Ga"  [y        [        RÐ                  S 5      (       Ga  [u        U[        RÐ                  Râ                  Rä                  Ræ                  5      (       aÅ  U[        RÐ                  Râ                  Rä                  Ræ                  La”  URè                  S!   n[u        U[        RF                  RH                  5      (       d   eU[        RÐ                  Râ                  Rä                  Rä                  Rë                  5       ;   d   e[        U 5      Rì                  U44$ [\        $ )"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: rm  z_C::rr  Ú	PyCapsule)Úcapsule)Úunsupportedz<locals>rf  )zfqn mismatchc                ó   ^ • U 4S j$ )Nc                 ó   >• T $ râ   rÑ   rÓ  s   €r½   rÉ  ÚGGuardsStatePickler.reducer_override.<locals>.<lambda>.<locals>.<lambda>a  s   ø€ ±Qr¿   rÑ   rÓ  s   `r½   rÉ  Ú5GuardsStatePickler.reducer_override.<locals>.<lambda>a  s   ø€ ­Yr¿   Údistributed_c10d)zdistributed_c10d.Workr+  r,  r-  r.  r/  rœ  rY  )wÚsympyr„  rf  rP  r¥  r¸  ÚiscoderÉ  r§   rÌ  Úfrom_code_objectrg  rJ  r	  r@  rA  rÛ  Útorch.utils._python_dispatchrÖ  r}  ré  r  Úreducer_overrider–  r�  Ú
empty_liker  rÇ  rˆ  rY  rZ  r  ru  r  rr  rD  rE  rs  r4  r  r£  r¤  r¨  rS  rÚ   rØ   ÚNotImplementedrÏ   rm  r  r…  r£   r‰  rœ  rŒ  r�  Ú	serializer  r0  ÚFunctionr…  rØ  r×  rN  rÆ  rÒ  r  r  r   rF  r’  r”  rt  r´  ræ  r�   r™  rü  Ú_opsÚOpOverloadPacketÚ_qualified_op_nameÚ
startswithr¬  Ú
OpOverloadr²  r¯  Ú_opnameÚ_overloadnamerÙ   r]  Ú
isfunctionrÒ  r¯   r­   r°   r£  Úmodulesr”  Úismethodr²   Ú__self__r¶  rÁ  r=  rê  rà  ÚWorkr¹  rº  r¼  r  rT   ÚPackageErrorrœ  r�  Ú
FSDPModuler³   rž  r   )rÇ   r1  rá  r§   rÖ  r{  Úattrsrz  r³  Úinnerrµ  Ú
args_tupler  Úfr  Úmethod_selfÚ
inner_funcrŸ  s                     r½   rå  Ú#GuardsStatePickler.reducer_override½  s¿	  € ó 	äˆc‹7�d×'Ñ'Ó'Ü˜“9×$Ñ$¤t¨C£y lÐ2Ð2ä�>Š>˜#×ÑÝ<ä˜“:×,Ñ,¨~×/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Ñ1ð  �
Ø ×3Ñ3Ó5‘
�ã!�DÜ# CÓ.�EÜ! %¬¯©×6Ñ6Ø<A×.Ñ.¬r°%«yÑ9Ø'+×'<Ñ'<¸UÓ'CÑ$�DØ×%Ñ% t°:Ð&>Ö?ñ "ô ˜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àŸ™×+Ñ+Ö-�Ü˜d¤U§\¡\´5·8±8·?±?Ð$C×DÑDÙÜ�d“8˜t×5Ñ5Ó5ÙÜ˜D—>‘>ÙØ04×#Ñ#¤B t£HÓ-ñ .ô ˜#œuŸx™x×0Ñ0×HÑH×IÑ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ñ Jô ×Ò˜c×"Ñ"Ü˜“:×5Ñ5¸¿¹°ÐFÐFä˜œUŸX™X×4Ñ4×5Ñ5Ü˜“:×8Ñ8¸3¿<¹<»>Ð:KÐKÐKä˜œUŸX™X×0Ñ0×=Ñ=×>Ñ>Ü˜“:×=Ñ=ÀÇÁÃÐ?QÐQÐQô �OŠO˜C× Ñ Ü˜3§¡×/Ñ/Ü˜Ð2×3Ñ3ä˜3Ð 2×3Ñ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Ñ4Ü˜“:×5Ñ5¸¿¹»
°}ÐDÐDä˜œUŸ]™]×0Ñ0×:Ñ:×;Ñ;Ü˜“:×1Ñ1´D¸³I°<Ð?Ð?äØ”—‘×,Ñ,÷
ñ 
à×$Ñ$×/Ñ/°×7Ñ7Ü˜“:×,Ñ,¨s¯|©|¨oÐ=Ð=ä˜œUŸZ™Z×2Ñ2×3Ñ3Ü˜“:×*Ñ*Ø—‘Ø—‘Ø×!Ñ!ð-ð ð ð �M‰M×$Ñ$¨
Ó2Ø—‘×&Ñ&¨+Ó5ô ˜\Ð)Ð)ä˜Ô3Ó5×6Ñ6ÜÐ-Ð-Ð-ä×Ò ×$Ñ$Ø˜S×-Ñ-Ó-Ü˜D“z×;Ñ;Ø—L‘LØ—N‘NØ×$Ñ$Ø×$Ñ$Ø—O‘Oð>ð ð ð �~‰~¤§¡Ó,Ü—K‘K §¡Ñ/�Ø×,Ñ,×2Ñ2°3Ö7�DÜ ¨Ó.’Añ 8à’<Ü#Ð%6Ð6Ð6øÜ×Ò˜c×"Ñ"Ø—<‘<ˆDØŸ,™,ˆKÜ  ¯m©mÓ<ˆJÜ×Ò 
×+Ñ+Ø'×0Ñ0�
Ø˜:Ò%Ü˜D“z×8Ñ8¸4Ð:MÐMÐMð &ô ˜œTÒ#6¸Ó":×"FÑ"FÀqÑ"IÓJ×KÑKÜ˜“:×,Ñ,¨s×/@Ñ/@Ð.BÐBÐBä”5×$Ñ$Ð&8×9Ñ9¼jØ”×"Ñ"×3Ñ3×8Ñ8÷?
ñ ?
ô �#‹w˜d×4Ñ4Ó4ÜÐ!;Ð;Ð;ä�cœ5Ÿ8™8×-Ñ-×8Ñ8×9Ñ9Ü˜“:×3Ñ3°c·h±h°[Ð@Ð@ä�‹9×!Ñ!¤T¨#£Y×%7Ñ%7Ó7Ä
È3ÔPU×@VÑ@VÜ—-‘-×#Ñ#×0Ñ0Øœ˜S›	�{ ,¨s¨eÐ3DÐEØTñUàTñUóð ô �OŠO˜C× Ò Üœ×)Ñ)¨6×2Ò2Ü˜3¤× 1Ñ 1× 6Ñ 6× CÑ C× NÑ N×OÑOàœ%×+Ñ+×0Ñ0×=Ñ=×HÑHÒHØ #§¡¨A¡�Ü! -´·±·±×AÑAÐAÐAà!Ü×(Ñ(×-Ñ-×:Ñ:×GÑG×[Ñ[Ó]ó^ðð^ô ˜D“z×<Ñ<¸}Ð>NÐNÐNäÐr¿   )rf  rb  r}  rg  re  )r}  údict[int, Any]rf  rÿ  rg  rÿ  ræ   r   rV  r   rÓ   r×   )rk  r   rÓ   ztorch.nn.Module)rs  útorch.TensorrÛ  útorch.devicer  rP  rt  rC  rr  r   rÓ   r   )rs  r   rÛ  r  r  rP  rt  rC  rz  r   r{  z5list[tuple[str, Callable[..., Any], tuple[Any, ...]]]rÓ   r   )r„  rÔ   rÓ   ztypes.ModuleType)rˆ  rC  rÓ   ztorch._C.DispatchKeySet)rŽ  ÚbytesrÓ   z torch._C._functorch.CInterpreter)r“  ró  rÓ   z types.MappingProxyType[Any, Any])r˜  ú	list[Any]rÓ   r   )rŸ  útype[torch.nn.Module]rÓ   r  )rk  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)rN  r   rÓ   r   )r  rÔ   rÅ  r�  rÓ   ztype[NamedTuple])rË  r§   rÓ   rï  )r¹   rï  r  rÔ   rÏ  rÔ   rÐ  ztuple[object, ...] | NonerÑ  z!tuple[types.CellType, ...] | NonerÓ   ztypes.FunctionType)r1  r   rÓ   z6Union[tuple[Callable[..., Any], tuple[Any, ...]], Any])rØ   rÙ   rÚ   rÛ   rò   rJ  rm  ru  r�  r…  r‰  r�  r”  r™  r   r¨  r¬  r²  r¶  rI  r¼  rÁ  rÆ  rÌ  rÒ  rå  rÜ   rÝ   rÞ   s   @r½   r_  r_    sç  ø† ð-à)ð-ð %ð-ð 'ð	-ð
 ð-ð ð-ð 
÷-ð óó ðð
 ðà!ðð ðð ð	ð
 ðð ðð 
óó ðð( ðà!ðð ðð ð	ð
 ðð ðð Jðð 
óó ðð, ó.ó ð.ð ó?ó ð?ð ðBØðBà	)óBó ðBð
 ð)Øð)à	)ó)ó ð)ð
 ó+ó ð+ð ð
Ø1ð
à	ó
ó ð
ð ðØ"ðà	2óó ðð ó+ó ð+ð óUó ðUð ó,ó ð,ð ó<ó ð<ð ó ó ð ð ð4Øð4Ø /ð4à	ó4ó ð4ð ó>ó ð>ð
 ð	Oàð	Oð ð	Oð ð		Oð
 +ð	Oð 3ð	Oð 
ó	Oó ð	OðEØðEà	?÷Eò Er¿   r_  c           
     óH  • [        5       n[        U R                  5      nUS:X  a  SnUnO UR                  U 5      nSn[	        U R
                  5      S Ln[        UUUU R                  5       U R                  (       a  [        U R                  5      OSUU S9$ !   UnSn Nb= f)Nrƒ  FTrÑ   )r  Ú	has_valuer  Ú
guard_typeÚderived_guard_typesÚ	is_globalÚ
orig_guard)
ÚobjectÚstrip_local_scoper  rƒ  r,   rþ  rˆ   Úcreate_fn_nameÚguard_typesrN  )re  Ú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                óò  • [         R                  " 5       n0 n0 nUR                  n[        R                  " U R
                  R                  5      nU H�  n[        R                  " U5      (       aa  [        US5      (       aP  UR                  n[        U5      U;  a3   [        U5      R                  [        U5      5        Xƒ[        U5      '   M}  M  [        U5      U;  d  M�  Xt[        U5      '   MŸ     [        XSXB5      n	[        [         R"                  R%                  U R
                  R&                   V
s/ s H  n
[)        X¡5      PM     sn
5      5      (       a*  [+        5       U R
                  l        0 U R
                  l         U	R1                  U 5        UR=                  5       $ !    GMZ  = fs  sn
f ! [2         a8  n[         R4                  R6                  R9                  [;        U5      5      UeS nAff = f)Nrô  )ÚioÚBytesIOr}  r÷  Útree_leavesr�  rŠ  r¸  ró  r…  rô  r„  rP  r¥  r_  r(  r@  ÚcompilerÚkeep_portable_guards_unsafer©   r  rï   r‚  ré   Údumpr\  r´  rT   rö  rÔ   r†  )rk  r  Úbufrf  rg  r}  ÚleavesÚleafr  Úpicklerre  r(  s               r½   Úpickle_guards_stater  ¢  s£  € ô �*Š*‹,€CØ€LØ€NØ×1Ñ1Ðä×Ò × 2Ñ 2× >Ñ >Ó?€FÛˆÜ×Ò˜D×!Ñ!¤g¨d°J×&?Ñ&?Ø—=‘=ˆDÜ�$‹xÐ0Ó0ðÜ˜“J×&Ñ&¤t¨D£zÔ2Ø-1¤ D£Ó*ñ 1ô �‹XÐ.Õ.ð (,œ2˜d›8Ó$ñ ô !Ð!2À.ÓV€Gä
Ü�‰×2Ñ2ð #×/Ñ/×6Ò6óâ6�Eô (¨Ö7Ù6ñó	
÷ñ ô 14³ˆ×ÑÔ-Ø*,ˆ×ÑÔ'ð<Ø�‰�UÔð �<‰<‹>Ðøð1Ûüòøô ó <Ü�m‰m×Ñ×,Ñ,¬S°«VÓ4¸!Ð;ûð<ús*   Â0F&Ä5F/ÆF4 Æ&F,Æ4
G6Æ>3G1Ç1G6c                  óâ   • \ rS rSr%        S                   SS jjrSrS\S'           SS jr S             SS jjr        SS	 jr	SS
 jr
SS jrSS jrSrg)rñ  iÓ  Nc
           	     óH	  ^ ^^• U(       a  UR                   OS n
0 T l        [        U5      nUT l        T R                  c   eUT l        U(       a  UR
                  OS T l        [        5       T l        [        5       T l        [        5       T l	        UT l
        S T l        S T l        [        S5      (       d  [        R                  S5        [         R"                  R$                  R&                  (       a  U=(       d    S mSU4S jjn[)        U
=(       d    S[*        R,                  S9nU(       a˜  T R/                  UUUUS5      u  pÞU" U Vs/ s H  n[1        Xý5      PM     sn5      n[3        U5      [3        U5      :X  d   e[5        S U 5       5      (       d   e[7        U5       VVs/ s H  u  nnUU   (       d  M  UPM     nnnT R/                  UUUUUUS	9u  pÞUT l        T R;                  XÜU5        UR<                  T R8                  l        [>        RA                  S
T R8                  5        UR<                  T R8                  l        SmURB                  (       Gd  URD                  (       dö  T R8                  RG                  URH                  5      (       dA  [K        T R8                  URH                  [L        RN                  " 5       S S9n[Q        SU 35      e[R        b!  [S        T R8                  URH                  U5        [U        T R8                  RV                  URH                  S5      m[>        RA                  STS 5        [X        RZ                  " S[]        T5      5        S T l/        U(       aE  SSK0J1n  [e        T R                  U5      (       d   e T Rg                  XÜT R                  5      T l/        [         Rx                  R{                  SUU 4S jS9  T R                  R}                  5         S T l        g s  snf s  snnf ! [h        Rj                   a„  n[         R"                  R$                  Rl                  (       d  U	(       a  UeT R                  Ro                  S[q        U5       3[r        Rt                  " 5       Rw                  S5      S9   S nANãS nAff = f)Nrh  z9guard_nn_modules is turned off using justknobs killswitchc                ó2   • U  Vs/ s H  nSPM     sn$ s  snf r/  rÑ   )ÚgsÚgs     r½   rÉ  Ú/CheckFunctionManager.__init__.<locals>.<lambda>þ  s   € ÉRÓ>PÊRÈ»tÉRÒ>PùÒ>Ps   …c                óˆ  >• / n[        T" U 5      U 5       H¨  u  p#U(       d  UR                  S5        M  UR                  S;   d   SUR                  ;   d  SUR                  ;   aH  [        R                  SUR                  UR                  R                  5        UR                  S5        M—  UR                  S5        Mª     U$ )NF)r  r  r8  rd  r  rd  z7%s guard on %s is dropped with caching_precompile=True.T)r)  r–  r  r  r<  r=  r
  r  )r©   r7  Úkeepr"  Ú_guard_filter_fns       €r½   r  Ú6CheckFunctionManager.__init__.<locals>.guard_filter_fn   s¤   ø€ Ø�Ü"Ñ#3°FÓ#;¸VÖD‘G�DÞØŸ
™
 5Ö)àŸ™ðóð &¨×)>Ñ)>Ó>Ø)¨Q×-BÑ-BÓBäŸ™ØUØŸL™LØŸL™L×-Ñ-ôð
 Ÿ
™
 5Ö)àŸ
™
 4Ö(ñ+  Eð, �
r¿   rÑ   )r#  Fc              3  óD   #   • U  H  n[        U5      [        L v •  M     g 7frâ   )rP  rÖ   )r!  rŒ  s     r½   r%  Ú0CheckFunctionManager.__init__.<locals>.<genexpr>+  s   é € Ð?²¨1”t˜A“w¤$•²ùs   ‚ )r  ú%sg        )ÚbackendziGuard failed on the same frame it was created. This is a bug - please create an issue.Guard fail reason: rQ   zGuard eval latency = %s usú.2fÚguard_latency_usr   re  zGuard evaluation failed: rë  )Ú	tracebackÚdynamo_cpp_guards_strc                 ó*   >• TR                    ST S S3$ )Nz
Guard latency = r,  z us)ro  )ÚlatencyrÇ   s   €€r½   rÉ  r#  ‹  s   ø€  $×"4Ñ"4Ð!5Ð5GÈÐPSÀ}ÐTWÑXr¿   ©Ú
payload_fn)r©   zSequence[GuardFilterEntry]rÓ   zSequence[bool])?r©   Ú	_weakrefsÚ5update_diff_guard_managers_for_existing_cache_entriesr�  r�  rX  rM   r  r.  r/  rq  rR  rZ  rF   r<  r=  r@  r´  rR   Úcaching_precompilerü   r;   Úsort_keyÚbuild_guardsr  r·   r(  r™  ro  Úcompile_check_fnrí   r&  r'  Úskip_guards_checkry  rŠ  rŠ  Úget_guard_fail_reason_helperr8   r½  r  rž   r%   rã   r6   Úincrement_toplevelrC  Úguards_staterŽ  r¤   r	  Úserialize_guardsrT   rö  Ústrict_precompileÚbypass_packagerÔ   r.  Ú
format_excr”  Ú_loggingÚtrace_structuredÚclear)rÇ   ri  r�  rë   rê   r  r�  rq  r~  Ústrict_errorr©   Úexisting_diff_guard_sourcesÚsorted_guardsr  ro  re  Úfilter_resultsr†  Úreasonsr¤   r(  r&  r1  s   `                    @@r½   rò   ÚCheckFunctionManager.__init__Ô  s  ú€ ö )5�×$Ò$¸$ˆØ;=ˆŒô BÀ+ÓNð 	$ð :FˆÔØ× Ñ Ñ,Ð,Ð,ð !1ˆÔö
 7CˆL×2Ò2Èð 	Ô&ô 3=³,ˆÔÜ;E»<ˆÔ'Ü<F»LˆÔ(Ø$8ˆÔ!ØPTˆÔØPTˆÔ/äÐB×CÑCÜ�K‰KÐSÔTô �=‰=×Ñ×2×2Ø.×QÑ3PÐ÷ô4 ˜vŸ|¨´·±Ñ@ˆæð &*×%6Ñ%6ØØ+ØØØó&Ñ"ˆGñ -ÙFSÓTÂm¸UÔ(¨Ö8ÁmÑTóˆNô �~Ó&¬#¨mÓ*<Ó<Ð<Ð<ÜÑ?±Ó?×?Ñ?Ð?Ð?ä&/°Ô&>ôÚ&>™(˜!˜UÀ.ÐQRÕBS—Ñ&>ð ñ ð
 "&×!2Ñ!2ØØ'ØØØØ+ð "3ð "
Ñˆð +ˆÔØ×Ñ˜g°mÔDð .5×-DÑ-Dˆ×ÑÔ*ä×Ñ˜˜t×1Ñ1Ô2Ø-4×-DÑ-Dˆ×ÑÔ*ð ˆà×-×-Ð-°l×6I×6IØ×%Ñ%×+Ñ+¨L×,DÑ,D×EÑEÜ6Ø×&Ñ&Ø ×,Ñ,Ü"×5Ò5Ó7Ø ñ	�ô %ð*Ø*1¨ð4óð ô
 -Ñ8Ü-Ø×&Ñ&¨×(@Ñ(@À'ôô ,Ø×"Ñ"×'Ñ'¨×)AÑ)AÀ1óˆGô ×ÑÐ9¸gÀc¸]ÔLô ×1Ò1Ð2DÄcÈ'ÃlÔSà-1ˆÔÞÝDä˜d×/Ñ/Ð1B×CÑCÐCÐCð
Ø$(×$9Ñ$9Ø¨D×,=Ñ,=ó%�Ô!ô 	�‰×'Ñ'Ø#ÝXð 	(ñ 	
ð 	�‰×ÑÔØ ˆÕùò] Uùóøôh ×#Ñ#ó Ü—=‘=×'Ñ'×9×9¾\Ø�GØ×!Ñ!×0Ñ0Ø/´°A³¨xÐ8Ü'×2Ò2Ó4×:Ñ:¸4Ó@ð 1ö ûðús+   ÅO>Æ(PÆ=PÎ!P	 Ð	R!ÐA:RÒR!)rd  r  r  r	  r  r  r  r8  ztuple[LiteralString, ...]Ú%UNSUPPORTED_SERIALIZATION_GUARD_TYPESc                óŒ  ^^^^• U Hø  nUR                  5       nUR                  (       a  [        UR                  5      OSnUS;   a1  UR                  (       a  UR	                  U5      n[        U5        Mp  Mr  U[        R                  ;   a,  [        R                  R                  R                  U S35      e[        S U 5       S 5      =n(       d  MÎ  [        R                  R                  R                  U S35      e   UR                  =(       d    Sm[        5       m[        5       mSUUU4S jjn	UR                  5       n
U Hn  n[!        UR"                  [$        5      (       a:  U R&                  (       d   eU R&                  R(                   H  nU	" U5        M     M\  U	" UR"                  5        Mp     UR*                   H  nU	" U5        M     SS jmU
R,                  R/                  5        VVs0 s H  u  pÍUT;   d  XÀR0                  ;   d  M  XÍ_M      nnnU
R,                  T   R/                  5        VVs0 s H  u  pÍXÀR2                  ;   d  M  XÍ_M     snnUT'   [4        R6                  " U
U
R8                  R/                  5        VVs0 s H  u  pÍUT;   d  XÀR:                  ;   d  M  XÍ_M      snnU[        R<                  R?                  [A        U4S jU 5       5      5      [B        RD                  " [F        U
RH                  5      S	S
9n
[K        U
U R&                  S9n[M        Xñ5      $ s  snnf s  snnf s  snnf )NrÑ   )r^  r  z guard cannot be serialized.c              3  óR   #   • U  H  nU[         R                  ;   d  M  Uv •  M     g 7frâ   )rñ  rK  )r!  r†  s     r½   r%  Ú8CheckFunctionManager.serialize_guards.<locals>.<genexpr>»  s(   é € ð â0˜ØÔ0×VÑVÑV÷ ‘AÚ0ùs   ‚'ž	'rƒ  c                ó   >• [        U 5      =n(       a0  [        U[        5      (       d   eUT:w  a  TR                  U5        g g [	        U 5      =n(       a)  [        U[        5      (       d   eTR                  U5        g g râ   )r,   r	  rÔ   rÿ   r-   )rq  r  Úbuiltins_dict_nameÚused_global_varsÚused_local_varss     €€€r½   Úprune_variableÚ=CheckFunctionManager.serialize_guards.<locals>.prune_variableË  sz   ø€ Ü-¨fÓ5Ð5ˆtÕ5Ü! $¬×,Ñ,Ð,Ð,ð Ð-Ó-Ø$×(Ñ(¨Õ.ð .ä.¨vÓ6Ð6�Õ6Ü! $¬×,Ñ,Ð,Ð,Ø×#Ñ# DÕ)ð 7r¿   c                óL  ^• [        U [        R                  5      (       a}  SS jm[        U4S jU R                   5       5      nU R
                  R                  5        VVs0 s H  u  p#UT" U5      _M     nnn[        R                  " U R                  /UQ70 UD6$ U $ s  snnf )Nc                ó^   • [        U [        [        R                  45      (       a  U " 5       $ U $ râ   )r	  rP   rn  rM  rÓ  s    r½   Ú_refÚPCheckFunctionManager.serialize_guards.<locals>.normalize_create_fn.<locals>._refç  s$   € Ü! !¤m´W·[±[Ð%A×BÑBÙ ›s˜
Ø�Hr¿   c              3  ó4   >#   • U  H  nT" U5      v •  M     g 7frâ   rÑ   )r!  r®  rW  s     €r½   r%  ÚUCheckFunctionManager.serialize_guards.<locals>.normalize_create_fn.<locals>.<genexpr>ì  s   øé € Ð 9²&¨Q¡ a§ ²&ùs   ƒ)rŒ  r   rÓ   r   )r	  Ú	functoolsÚpartialrN  ræ   Úkeywordsrþ   rµ  )rŒ  Únew_argsÚkÚvÚnew_keywordsrW  s        @r½   Únormalize_create_fnÚBCheckFunctionManager.serialize_guards.<locals>.normalize_create_fnä  sˆ   ø€ Ü˜!œY×.Ñ.×/Ñ/ôô
 !Ô 9°!·&²&Ó 9Ó9�Ø78·z±z×7GÑ7GÔ7IÔJÒ7I©t¨q ¡4¨£7¢
Ñ7I�ÑJÜ ×(Ò(¨¯©ÐK°(ÒK¸lÑKÐKàˆHùó  Ks   Á"B c           	   3  ór   >#   • U  H,  n[         R                  " US S T" UR                  5      S9v •  M.     g 7f)N)Úobj_weakrefÚguarded_class_weakrefr;  )r5  rî  r;  )r!  re  rb  s     €r½   r%  rN    s<   øé € ð ò "/˜ô  ×'Ò'ØØ$(Ø.2Ù"5°e·o±oÓ"Fö	ò "/ùs   ƒ47T)rŠ  ré   Ú_guardsrÏ  r:  )r�  r�  )rq  r?   rÓ   r×   )rŒ  úCallable[..., None]rÓ   rh  )'r  r  rN  r[  rƒ  r2  rñ  rK  r@  r´  rT   rö  ÚnextÚ%name_of_builtins_dict_key_in_fglobalsrï   Údump_guards_stater	  rþ  rx   r�  r‚  r‚  ré   rþ   r/  r  r5  rî  rŠ  r.  rg  Ú	GuardsSetrM   r÷  Útree_mapr  rÏ  rG  r  )rÇ   r  rG  r�  re  r  r  r1  ÚfailedrS  Úoutput_graph_guards_staterq  r_  r`  Úglobal_scope_stater=  rP  rb  rQ  rR  s                   @@@@r½   r>  Ú%CheckFunctionManager.serialize_guards£  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Ð!ã"ˆEÜ˜%×2Ñ2´N×CÑCØ×,×,Ð,Ð,Ø"×3Ñ3×EÔE�FÙ" 6Ö*ó Fñ ˜u×7Ñ7Ö8ñ #ð #×5Ô5ˆFÙ˜6Ö"ñ 6ô	ð  2×>Ñ>×DÑDÔFô
âF‘�ØÐ$Ó$¨×-MÑ-MÑ(Mó ˆAŠDÙFð 	ñ 
ð 2×>Ñ>Ø"ñç‰e‹gðô2
ò‘�ð ×*Ñ*Ñ*ó ˆAŠDñò2
ÐÐ-Ñ.ô %0×$7Ò$7Ø%ð 6×AÑA×GÑGÔIôâI‘D�AØ˜Ó'¨1×0OÑ0OÑ+Oó �’ÙIòð
 ,Ü—M‘M×+Ñ+Üô ñ "/óó ó
ô +1¯/ª/Ü.Ø)×GÑGó+ð #ñ/%
Ð!ô2 #Ø2Ø!×2Ñ2ñ
ˆô
 # <Ó9Ð9ùóW
ùó
2
ùós$   Ç7L4ÈL4È?L:ÉL:ÊM Ê2M c                ó<  ^• [        5       nX'l        S mSU4S jjn[        UU R                  UU R                  UR
                  UR                  UU UU R                  US9n	S	S jn
[        R                  " Xš5      m[        R                  =(       a    [        S5      nU Hw  nU(       d\  UR                  5       (       aG  SUR                  ;  a7  SUR                  ;  a'  [        R                  (       d  SUR                  ;  a  Mf  UR!                  U	5        My     X—4$ )
Nc                óº   >• U R                   nU[        R                  L a  U R                  $ T(       d   eT" 5       nUc   eUR	                  U R                  5      $ râ   )Úguard_sourcer>   ÚCONSTANTr  r?  )rq  rt  Ú	r_builderÚ	w_builders      €r½   rk  Ú5CheckFunctionManager.build_guards.<locals>.source_ref.  sV   ø€ Ø!×.Ñ.ˆLØœ{×3Ñ3Ò3à—{‘{Ð"ÞÐ�9Ù!›ˆIØÑ(Ð(Ð(Ø×$Ñ$ V§[¡[Ó1Ð1r¿   )rq  r  c                ó0   • U " 5       nU(       a  S Ul         g g râ   )rm  )Úweak_brÈ  s     r½   Úcleanup_builderÚ:CheckFunctionManager.build_guards.<locals>.cleanup_builderG  s   € Ù“ˆAÞØ�•ð r¿   rh  r­   r®   r¦  )rq  r?   rÓ   rÔ   )rz  zweakref.ref[GuardBuilder]rÓ   r×   )rà   rñ   r]  rj  rl  rŠ  ré   rq  rn  rM  rR   rˆ  rF   rQ  r  rC  rB  )rÇ   rG  rF  ri  r�  r~  r  ro  rk  r  r{  Úguard_on_nn_modulesre  rw  s                @r½   r8  Ú!CheckFunctionManager.build_guards  sü   ø€ ô ,Ó-ˆØ+FÔ(àˆ	÷	2ô ØØ�K‰KØØ× Ñ Ø×$Ñ$Ø×%Ñ%ØØØØ!%×!:Ñ!:Ø+ñ
ˆô	ô —K’K Ó9ˆ	ä$×5Ñ5÷ 
¼/Ø/ó;
Ðó #ˆEæ'Ø×2Ñ2×4Ñ4ð #¨%¯*©*Ó4Ø$¨E¯J©JÓ6Ü×5×5¸ÈÏ
É
Ó9Ráà�L‰L˜Ö!ñ #ð Ð%Ð%r¿   c                óž	  ^^^• UR                   nUS/-  n[        R                  S5        / m/ m/ mU R                  R                  R                  [        [        R                  " 5       5      5        S U l	         S       SUUU4S jjjn[        5       nUR                   HA  nUR                   H.  nX†;  d  M
  U" X‡R                  S5        UR                  U5        M0     MC     UR                  n	S n
S n[!        U	5      S:”  a.  [#        UR$                  U	SSR'                  U	5      -   S-   /S 5        [(        R*                  (       aD  UR,                  (       a3  [/        [0        [3        UR,                  6 5      u  pÍUR5                  XÍ5        U R6                  (       a  U R6                  R8                  O/ nU GH`  n[;        U[<        5      (       al  UR>                  nUR@                  nURB                   S	URB                   3n[E        URG                  U5      URG                  U5      U/S 5        U" US S5        M…  [;        U[H        5      (       a»  URJ                   Vs/ s H  nURG                  U5      PM     nnURL                   Vs/ s H  nURG                  U5      PM     nnS
SR'                  S URJ                   5       5       SSR'                  S URL                   5       5       S3n[O        UUU/S 5        U" US S5        GMU  [Q        SU 35      e   URR                   H)  nUR                   H  nU" X‡R                  S5        M     M+     T(       a"  [T        RV                  RY                  SU4S jS9  [Z        R\                  c   [Z        R^                  " 5       R`                  nO[c        U Rd                  SS 5      nU
UUU Rf                  S.[h        E[k        5       EnU R                  Rm                  5         SURn                  S   0n[!        T5      S:X  d   eUU R                  l8        X@R                  l9        U R                  Ru                  5         TU R                  l;        UU R                  l<        X0R                  l=        S U R                  l>        S U R                  l?        X�R                  l@        g s  snf s  snf )Nz**___kwargs_ignoredzGUARDS:c                óP  >^ ^• [        T T5      n[        R                  SU5        TR                  U U4S j5        [        R                  [        R                  5      (       a™  SnSnTbz  TR                  (       a,  SSR                  TR                  R                  5       5       3nTR                  (       a,  SSR                  TR                  R                  5       5       3n[        R                  ST UU5        U(       d#  TR                  T 5        TR                  U5        g g )Nr*  c                 ó  >• T T(       a?  TR                   (       a.  [        R                  " TR                   R                  5       5      OS T(       a3  TR                  (       a"  [        R                  " TR                  5      S.$ S S.$ )N)r¹   rõ  rò  )rõ  rE   Úfrom_tracebackrö  rò  )r™  re  s   €€r½   rÉ  ÚNCheckFunctionManager.compile_check_fn.<locals>.add_code_part.<locals>.<lambda>‚  sc   ø€ Ø%ö ! U§[§[ô #×1Ò1°%·+±+×2EÑ2EÓ2GÔHà!ö ! U×%5×%5ô #×1Ò1°%×2BÑ2BÓCòð "òr¿   rƒ  z
Stack:
z
User stack:
zGuard: %s%s%s)rù  r&  r'  r–  Úverbose_guards_logÚisEnabledForÚloggingÚDEBUGrõ  r$  Úformatrò  )	r™  re  Úlog_onlyr˜  Úmaybe_stackÚmaybe_user_stackrç   Ústructured_guard_fnsrè   s	   ``    €€€r½   Úadd_code_partÚ<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¿   TrQ   zcheck_no_aliasing(rl  rm  r-  zcheck_overlapping(overlapping=[c              3  ó8   #   • U  H  oR                   v •  M     g 7frâ   r»  ©r!  rs  s     r½   r%  Ú8CheckFunctionManager.compile_check_fn.<locals>.<genexpr>ï  s   é € Ð/ZÒ@Y¸1·¶Ò@Yùó   ‚z], non_overlapping=[c              3  ó8   #   • U  H  oR                   v •  M     g 7frâ   r»  r�  s     r½   r%  r‘  ð  s   é € Ð3bÒDa¸q·F¶FÒDaùr’  z])zUnknown GuardEnvExpr: Údynamo_guardsc                 ó<   >• T V s/ s H	  o " 5       PM     sn $ s  sn f râ   rÑ   )rû  rŒ  s    €r½   rÉ  Ú7CheckFunctionManager.compile_check_fn.<locals>.<lambda>  s   ø€ ÑBVÓ4WÒBV¸Q°Q¶SÑBVÒ4WùÒ4Ws   †r2  rŠ  )Ú___check_tensorsÚ___check_tensors_verboseÚ___check_global_stateÚ"___check_torch_function_mode_stackra  r   rÕ   )r™  rÔ   re  úOptional[Guard]r‰  rÖ   rÓ   r×   )Arx  r&  r'  ro  rã   Úattach_compile_idrÔ   r8   r½  rX  rï   r¹   rV  re  rÿ   rz  r·   r    r{  r$  rR   r0  r‡  r¥  rü  r)  r1  r�  Úaotautograd_guardsr	  r:   Úinput_source_aÚinput_source_br  r!   r÷  r@   Úoverlapping_sourcesÚnon_overlapping_sourcesr"   r  ry  r@  rB  rC  rS   Úinitial_global_stateÚGlobalStateGuardrŠ  r  rR  rZ  rK   ré  r  rm  rå   ræ   r   rè   ré   rê   rë   rì   rî   )rÇ   r  Ú
guards_outrê   Úlargsr�  ÚseenÚgclr¹   rz  Úcheck_tensors_fnÚcheck_tensors_verbose_fnÚaliasing_code_partsÚaliasing_verbose_code_partsr�  re  Úsource_ar1  r™  rs  Úoverlapping_guard_managersÚnon_overlapping_guard_managersÚcheck_global_staterå   r/  rç   rŒ  rè   s                            @@@r½   r9  Ú%CheckFunctionManager.compile_check_fnb  s¬  ú€ ð × Ñ ˆØÐ'Ð(Ñ(ˆä×Ñ˜Ô#ð ˆ
ØÐØCEÐð 	×Ñ×Ñ×1Ñ1Ü”×1Ò1Ó3Ó4ô	
ð
 *.ˆÔ&ð FKð)	=Øð)	=Ø#2ð)	=Ø>Bð)	=à÷)	=ò )	=ôV ‹uˆØ—<”<ˆCØŸœ�ØÕ#ñ " $¯	©	°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Ü˜%¤×1Ñ1Ø ×/Ñ/�Ø ×/Ñ/�Ø'Ÿ}™}˜o¨T°(·-±-°ÐA�	Ü-Ø×9Ñ9¸(ÓCØ×9Ñ9¸(ÓCØ�KØô	ñ ˜i¨¨tÖ4Ü˜E¤>×2Ñ2ð #×6Ò6ó.â6˜ð ×9Ñ9¸!Ö<Ù6ð +ð .ð #×:Ò:ó2â:˜ð ×9Ñ9¸!Ö<Ù:ð /ð 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 (ðL ×)Ô)ˆCØŸœ�ñ ˜d§I¡I¨tÖ4ó &ñ *ö  Ü�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   É!SÊS
c                ó|  • [        U S5      (       a«  [        U R                  [        5      (       d‹  U R                  R                  =nbq  U R                  R
                  =nbW  [        U[        5      (       d   e[        U[        5      (       d   eSU S3n[        U5      nUR                  X%5        XPl        g g g g g )Nro  zCache line invalidated because z got deallocated)	r…  r	  ro  r>  rë   rì   rƒ   r…   Ú
invalidate)rÇ   Úobj_strrë   rì   rA  Údeleted_guard_managers         r½   r²  ÚCheckFunctionManager.invalidate,  s¾   € ô
 �D˜/×*Ñ*Ü˜t×1Ñ1Ô3M×NÑNØ $× 2Ñ 2× >Ñ >Ð>�ÑKØ $× 2Ñ 2× >Ñ >Ð>�ÑKä˜k¬:×6Ñ6Ð6Ð6ä˜k¬:×6Ñ6Ð6Ð6Ø6°w°iÐ?OÐPˆFÜ$>¸vÓ$FÐ!à×"Ñ" ;ÔFØ!6Õð Lð Lð Oð +r¿   c                ó,  •  [        U5      U R                  ;  a`  [        R                  " U5      U R                  [        U5      '   [        R                  " U[
        R                  " U R                  US95        [        U5      $ ! [         a     Nf = f)zadd a weakref, return the id)r³  )	r„  r4  rn  rM  r  r[  r\  r²  r0  )rÇ   r1  r³  s      r½   rj  ÚCheckFunctionManager.id_ref?  sw   € ð
	Ü�#‹w˜dŸn™nÓ,ô +2¯+ª+°cÓ*:�—‘œr #›wÑ'Ü× Ò Øœ×*Ò*¨4¯?©?ÀGÑLôô
 �#‹wˆøô ó 	Ùð	ús   ‚A9B Â
BÂBc                óf   • [        U5      U R                  ;   a  U R                  [        U5         $ g)zFLookup the _weakrefs created in id_ref function for ID_MATCH'd objectsN)r„  r4  )rÇ   r1  s     r½   rl  Ú$CheckFunctionManager.lookup_weakrefsN  s(   € äˆc‹7�d—n‘nÓ$Ø—>‘>¤" S£'Ñ*Ð*Ør¿   )r4  r/  r.  rR  ro  r=  r�  rq  r�  rX  rZ  r  )NNNNNFF)ri  rï  r�  r¤   rë   úOptional[CacheEntry]rê   ú%Optional[Callable[[GuardFail], None]]r  rò  r�  rH  rq  rõ  r~  rÖ   rE  rÖ   rÓ   r×   )r  r]  rG  úlist[Guard]r�  r¤   rÓ   r  râ   )rG  r¼  rF  r¢  ri  rï  r�  r¥   r~  rÖ   r  rò  rÓ   z(tuple[GuardBuilder, GuardManagerWrapper])r  r]  r¤  r¼  rê   r»  rÓ   r×   )r³  rÔ   rÓ   r×   )r1  r  r³  rÔ   rÓ   rC  )r1  r  rÓ   zOptional[weakref.ref[object]])rØ   rÙ   rÚ   rÛ   rò   rK  r±   r>  r8  r9  r²  rj  rl  rÜ   rÑ   r¿   r½   rñ  rñ  Ó  sj  ‡ ð
 -1Ø?CàØ59Ø9=Ø!Ø"ðB!àðB!ð (ðB!ð *ð	B!ð
 =ðB!ððB!ð 3ðB!ð 7ðB!ð ðB!ð ðB!ð 
õB!ðH	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¿   rñ  c                óV  ^	• SSK Jn  [        5       m	 T	R                  U 5        SU	4S jjnU" 5       nU  H]  nU" U5      u  peUR                  U5        UR                  SU S35        UR                  5          UR                  S5        S S S 5        M_     U" 5       nUR                  S5        UR                  5          UR                  U5        UR                  S	5        S S S 5        U" 5       nUR                  S
U S35        UR                  5          UR                  U5        UR                  S5        S S S 5        UR                  5       UR                  5       4$ ! [         a	    SS jn GNFf = f! , (       d  f       GMQ  = f! , (       d  f       N®= f! , (       d  f       Nh= f)Nr   rA   c                ó&   >• TR                  U 5      $ râ   )rî  )r  Úcsepasss    €r½   rî  Ú%build_guard_function.<locals>.replace\  s   ø€ Ø—?‘? 4Ó(Ð(r¿   c                ó
   • / U 4$ râ   rÑ   )r  s    r½   rî  rÀ  b  s   € Ø�t�8ˆOr¿   zif not (z):zreturn Falsezdef guard(L):zreturn Truezdef ___make_guard_fn(zreturn guardr1  )
Útorch._inductor.utilsrB   r÷  r*  ÚRecursionErrorr  rÌ   rw  Úsplicer†  )
rç   Úclosure_argsrB   rî  Ú
guard_bodyr  r  re  Úmake_guard_fnr¿  s
            @r½   r%  r%  U  sc  ø€ Ý4ä‹o€Gð
Ø�‰�jÔ!÷	)ñ  Ó!€JÛˆÙ ›‰ˆØ×Ñ˜gÔ&Ø×Ñ˜x¨ v¨RÐ0Ô1Ø×ÑÕ Ø× Ñ  Ô0÷ !Ñ ñ	 ñ Ó€EØ	‡O�O�OÔ$Ø	�‰�Ø�‰�ZÔ Ø�‰˜Ô&÷ 
ñ #Ó$€MØ×ÑÐ3°L°>ÀÐDÔEØ	×	Ñ	Õ	Ø×Ñ˜UÔ#Ø×Ñ Ô/÷ 
 ð ×ÑÓ  -×"8Ñ"8Ó":Ð:Ð:øô? ó ÷	ðú÷ !× ú÷ 
�ú÷ 
 Õ	ús5   “E  Á8E6Â>#F	Ä#FÅ E3Å2E3Å6
F	Æ	
FÆ
F(c                 óh   • [         R                  R                  R                  R	                  S5      $ )Nrª   ©r@  rB  Ú	_internalÚ	log_stateÚis_artifact_enabledrÑ   r¿   r½   Úis_recompiles_enabledrÍ  �  s#   € Ü�>‰>×#Ñ#×-Ñ-×AÑAÀ,ÓOÐOr¿   c                 óh   • [         R                  R                  R                  R	                  S5      $ )Nr«   rÉ  rÑ   r¿   r½   Úis_recompiles_verbose_enabledrÏ  …  s$   € Ü�>‰>×#Ñ#×-Ñ-×AÑAÐBVÓWÐWr¿   c                óZ   ^• U  Vs/ s H  n[        U5      PM     snmSU4S jjnU$ s  snf )Nc                 ó–   >• [        5       n [        U 5      [        T5      :w  a  g[        TU 5       H  u  pU[        U5      Ld  M    g   grP  )r�   r·   r)  rP  )Ú	cur_stackr¦  ÚmoderF  s      €r½   Úcheck_torch_function_mode_stackÚMmake_torch_function_mode_stack_guard.<locals>.check_torch_function_mode_stack�  sE   ø€ Ü1Ó3ˆ	äˆy‹>œS ›ZÓ'Øä˜E 9Ö-‰HˆBØœ˜d›Ô#Ùñ .ð r¿   ©rÓ   rÖ   )rP  )Úinitial_stackrŒ  rÔ  rF  s      @r½   rY  rY  Š  s/   ø€ ñ ,Ó,šm˜ŒT�!ŽW™mÑ,€E÷
ð +Ð*ùò -s   †(ÚScopec                ó„  • U R                   c   e[        U R                   5      n[        R                  " [        5      nU R
                   H/  nXBS'   [        [        XBU5      5      nX5   R                  U5        M1     U Vs/ s H  n[        X6   5      S:”  d  M  X6    PM     nnSR                  U5      nSU 3/$ s  snf )NÚ__compile_source__rQ   rl  zDuplicate tensors found: )ré   r2  rÞ  r  rü  rî   r„  Úevalr–  r·   r$  )	ro  rm  ré   Úids_to_sourcer¾  Ú	tensor_idr#  Úduplicate_tensorsrA  s	            r½   Ú1recompilation_reason_for_no_tensor_aliasing_guardrß  ¡  sÒ   € ð ×%Ñ%Ñ1Ð1Ð1Ü˜×2Ñ2Ó3€LÜ×+Ò+¬DÓ1€MØ&×AÔAˆØ-:Ð)Ñ*Ü”t˜M¸Ó?Ó@ˆ	ØÑ ×'Ñ'¨Ö6ñ Bñ ,9óÚ+8 C¼CÀÑ@RÓ<SÐVWÑ<WÓˆ=ÑÐ
Ò©=ð ð ð �Y‰YÐ(Ó)€FØ'¨ xÐ0Ð1Ð1ùòs   ÂB=Â	B=c                ó4   • SSK nSnUR                  USU 5      $ )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)rs  rá  Úpatterns      r½   r  r  ´  s   € ó à+€GØ�6‰6�'˜5 !Ó$Ð$r¿   c           	     óp  • U b  [        U 5      S:X  a  g/ nU  H‹  nUR                  nUR                  nUR                  nUR                  (       a  UR                  R                  5       OSnUR                  SU SU SU 35        U(       d  Mw  UR                  SU 35        M�     SR                  U5      $ )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   rƒ  z  File "z", line z, in ú    rë  )r·   rô  r&  r  rÍ   Ústripr–  r$  )rò  ÚlinesÚframerô  r&  r  Úsource_lines          r½   Úformat_user_stack_tracerê  Á  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                óž  • U R                   c   eU R                  c   eXR                   S   S.nUR                  U R                  5        / nSnU R                  (       a  U R                  R                  nSn/ nU R                  U5      n	Sn
U	R                  (       dR  U	R                  n[        U5      S:X  a  SUS   ;   a  S	nOUn/ nU	R                  (       a  [        U	R                  5      n
O,Xc:w  a  S
nUR                  U5        OSnUR                  U5        U(       a  [        X5      nOšU H”  n[        U R                   5      nXÍS'   [        5           [        XÍU5      n SSS5        [%        W[&        5      (       a	  U(       d  Un[%        U[(        5      (       d  Mr  UR                  U5        [#        5       (       a  M”    O   [        U5      S:X  a  U SUS    3nOU S3SR+                  U5      -   nU
(       a  USU
 3-  n[-        U5      $ ! [          a    [#        5       (       a   SSS5        GM  e f = f! , (       d  f       NÞ= f)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.
Nra  r_  Frƒ  rQ   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Ú  rd  z; z
User stack trace:
)ré   rå   r¸  rë   r+  r�  Úresultrè   r·   rò  rê  r–  rß  r2  rO   rÛ  rƒ  rÏ  r	  rÖ   rÔ   r$  r  )ro  Úf_localsÚ
compile_idr+  rm  rI  Úcache_entry_backendÚno_tensor_aliasing_check_failedrè   Úguard_debug_infoÚuser_stack_strrA  rh  ré   Úfail_reasonÚ
reason_strs                   r½   r;  r;  Ù  sK  € ð ×%Ñ%Ñ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Øó
‰ó 'ˆDÜ × :Ñ :Ó;ˆLØ15Ð-Ñ.Ü/Õ1ðÜ"& t¸5Ó"A‘K÷ 2ô ˜+¤t×,Ñ,¶[Ø"�Ü˜+¤s×+Ó+Ø—‘˜{Ô+Ü4×6Ó6Ùñ' 'ô. ˆ7ƒ|�qÓØ"�| 2 g¨a¡j \Ð2‰
à"�| 2Ð&¨¯©°7Ó);Ñ;ˆ
ÞØÐ-¨nÐ-=Ð>Ñ>ˆ
Ü˜ZÓ(Ð(øô/ !ó Ü4×6Ñ6Ø ÷ 2Ò1ð ð	ú÷ 2Õ1ús*   ÅH>ÅHÈH;È-H>È9H;È;H>È>
I	c                óx  • [        U [        5      (       a  U SU R                   3$ [        XX45      nU(       a  U$ [        [
        U      R                  U5         U R                  b+  U R                  [        U=(       d    S[
        U   5      5        U$ ! [         a    [        R                  S5         U$ f = f)Nrd  zunknown reasonzVFailure in guard_fail_fn callback - raising here will cause a NULL Error on guard eval)r	  r>  r@  r;  r’   r—   r–  rê   r‡   rƒ  r<  r%  )ro  r¹   rí  rî  r+  Úskip_loggingrô  s          r½   Úget_guard_fail_reasonr÷  D  sÀ   € ô �-Ô!;×<Ñ<Ø�˜R × AÑ AÐBÐCÐCÜ-Ø ó€Jö ØÐÜ”= Ñ&Ñ'×.Ñ.¨zÔ:ð
Ø×&Ñ&Ñ2Ø×'Ñ'Ü˜*×8Ð(8¼-ÈÑ:MÓNôð Ðøô ó 
Ü�‰Ødõ	
ð Ðð
ús   Á8B ÂB9Â8B9c                óÈ  ^
• / m
U ba  [        U R                  U R                  UR                  U R                  UU5      nU(       a  T
R                  U5        U R                  n U b  Ma  UR                  nU(       a  T
$ [        5       =(       d
    [        5       nU(       d  [        R                  (       Ga	  [        5       (       a"  SR                  S [        T
5       5       5      nO&[        R                  " SR                  T
5      S5      nSU 3nSUR                    SUR"                   SUR$                   S[        R                  " US	5       3n	U(       a:  [        5       (       a  [&        R)                  U	5        O[*        R)                  U	5        [        R                  (       a  [,        R.                  " U	5      e[0        R2                  R5                  S
S U
4S jS9  T
$ )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  ób   #   • U  H%  u  pS U S3[         R                  " US5      -   v •  M'     g7f)zguard z failures:
ú- N)r   rw  )r!  r†  rA  s      r½   r%  Ú:get_and_maybe_log_recompilation_reasons.<locals>.<genexpr>‡  s2   é € ð #â!3‘I�Að ˜˜˜<Ð(¬8¯?ª?¸6À4Ó+HÖHÚ!3ùs   ‚-/rë  rú  z-triggered by the following guard failure(s):
zRecompiling function z in Ú:rå  Úartifactc                 ó   • SSS.$ )NÚrecompile_reasonsrŽ  )r  ÚencodingrÑ   rÑ   r¿   r½   rÉ  Ú9get_and_maybe_log_recompilation_reasons.<locals>.<lambda>ž  s   € Ø'Øò
r¿   c                 ó0   >• [        T 5      S:X  a  T S   $ T $ )NrQ   r   )r·   )rI  s   €r½   rÉ  r  ¢  s   ø€ ¬¨W«¸Ó):˜7 1™:ÐGÀÐGr¿   )Úmetadata_fnr3  )r÷  ro  r¹   rí  rî  r–  ri  ri  rÍ  rÏ  rR   Úerror_on_recompiler$  r™  r   rw  râ  Úco_filenameÚco_firstlinenoÚrecompiles_verbose_logr'  Úrecompiles_logrT   ÚRecompileErrorr@  rB  rC  )rë   rè  r+  rö  rA  r¹   Údo_recompiles_logÚfailuresÚguard_failure_detailsÚmessagerI  s             @r½   Ú'get_and_maybe_log_recompilation_reasonsr  c  s£  ø€ ð €GØ
Ñ
!Ü&Ø×%Ñ%Ø×ÑØ�N‰NØ×"Ñ"ØØó
ˆö Ø�N‰N˜6Ô"Ø!×&Ñ&ˆð Ó
!ð �<‰<€DæØˆä-Ó/×RÔ3PÓ3RÐæœF×5×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                ó  • U n[        5       nU b:  UR                  U R                  R                  5       5        U R                  n U b  M:  Un U b;  X R                  l        U R                  R                  5         U R                  n U b  M;  U$ râ   )rM   r¸  ro  r  ri  rñ   r  )rë   Úfirst_cache_entryÚacc_diff_guard_sourcess      r½   r5  r5  ¨  s•   € ð $Ðô
 /9«lÐØ
Ñ
!Ø×%Ñ%Ø×%Ñ%×@Ñ@ÓBô	
ð "×&Ñ&ˆð	 Ó
!ð $€KØ
Ñ
!Ø7M×!Ñ!Ô4Ø×!Ñ!×=Ñ=Ô?Ø!×&Ñ&ˆð Ó
!ð "Ð!r¿   c                ó¼  • [        SUR                   SUR                   SUR                   35        [        SSR	                  U R
                  5      -   S-   5        [        SSR	                  U R                  5      5        [        U 5        SU0U R                  EnU R                   H  n [        X`R                  U5        M     g !   [        SU 35         M2  = f)	NzERROR RUNNING GUARDS Ú rü  zlambda rl  z and
  r`  zMalformed guard:
)
Úprintrâ  r  r  r$  ræ   rç   rå   rÛ  ré   )ro  r¹   rí  r¸   ÚlastrŠ  re  s          r½   Úguard_error_hookr  Ã  sÉ   € ô 
Ø
 §¡˜~¨Q¨t×/?Ñ/?Ð.@ÀÀ$×BUÑBUÐAVÐWôô 
ˆ)�d—i‘i × 2Ñ 2Ó3Ñ
3°cÑ
9Ô:Ü	ˆ#ˆz�‰˜}×7Ñ7Ó8Ô9ä	ˆ-Ôà˜Ð? M×$>Ñ$>Ð?€KØ×)Ô)ˆð	0Ü�×2Ñ2°KÖ@ò *øð	0ÜÐ& u gÐ.×/ús   Â-CÃCc              #  ój   #   • [        5       nU  H  nX!;  d  M
  Uv •  UR                  U5        M!     g 7frâ   )rï   rÿ   )Úseqr¦  rŒ  s      r½   Úuniquer  Ý  s+   é € Ü‹5€DÛˆØ�=ØŠGØ�H‰H�QŽKò ùs   ‚3™3c                ó8  • U(       a“  X:w  aŽ  [        U5      n[        U 5      n[        U5      (       d  [        U 5      (       a0  [        R                  " U R                   SUR                   S35      eX#:X  a#  [
        R                  " [        R                  US9$ g )Nz is aliasing zC. This is not supported. Please do a clone for corresponding input.)r1  )	r0   r/   rT   ÚUnsafeScriptObjectErrorr  r[  r\  r]  r4  )Ú
obj_sourceÚdupe_sourceÚser_source_is_localÚsource_is_locals       r½   Úmake_dupe_guardr   å  s—   € ö �{Ó0Ü2°;Ó?ÐÜ.¨zÓ:ˆÜ/Ø÷
ñ 
ä1°*×=Ñ=Ü×-Ò-Ø—?‘?Ð# =°×1AÑ1AÐ0Bð C>ð ?óð ð Ó1ô ×$Ò$¤\×%AÑ%AÈKÑXÐXØr¿   )Úskipc                ó’  • SSK Jn  [        R                  [        R
                  5      =(       d#    [        R                  [        R
                  5      nUR                  5       R                  R                  R                  nU H@  n[        U[        5      (       d   e[        UR                  5      (       a  M6  U" XSU S-   S9  MB     g)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   )ÚTracingContextrQ   )Úcollect_debug_stackr!  N)Útorch._guardsr#  r&  r…  r†  r‡  r„  rƒ  Úguards_contextr”  rÿ   r	  r;   r2   rþ  )r!  r©   r#  r$  rÿ   re  s         r½   Úinstall_guardr'  	  s™   € õ -ä$×1Ñ1Ü�‰ó÷ 8ä	×	(Ñ	(¬¯©Ó	7ð ð ×
Ñ
Ó
×
-Ñ
-×
;Ñ
;×
?Ñ
?€CÛˆÜ˜%¤×'Ñ'Ð'Ð'Ü$ U×%=Ñ%=×>Ñ>ÙÙˆEÀÈÁÔJò	 r¿   )r¹   rï  rº   rÔ   rÓ   rC  )r®  r   rÓ   r   )rÓ   zset[str])rÓ   rð  )r   r  rÓ   rÔ   )r™  rÔ   re  r›  rÓ   rÔ   râ   )rç   zUnion[str, list[str]]re  r›  rÿ  r¤  rÓ   rŸ  )rq  zOptional[Source]rÓ   r¤  )r  r   rÓ   zOptional[int])r  r  rÓ   úlist[Optional[int]])r  r   r  rÔ   r  r(  r  r(  r  rP  r  r£   rÓ   rÔ   )r"  ró  r#  r   rÓ   rC  )rq  r   r¸   r   rÓ   rÔ   )r1  r   rÓ   r	   )r  r   rÓ   rÖ   )rq  z3Union[DictGetItemSource, DictSubclassGetItemSource]rH  r   rI  r   r@  r   rA  r<  rÓ   r   )re  r;   rÓ   rÖ   )r¹   rï  rÓ   rŸ  )rÓ   ztuple[type, ...])re  r;   r  r]  rÓ   rˆ   )rk  rG  r  r]  rÓ   r  )rç   rŸ  rÅ  rÔ   rÓ   ztuple[str, str]rÖ  )r×  z'list[torch.overrides.TorchFunctionMode]rÓ   zCallable[[], bool])ro  rà   rm  rØ  rÓ   rŸ  )rs  rÔ   rÓ   rÔ   )rò  ztraceback.StackSummary | NonerÓ   rÔ   )
ro  rà   rí  rð  rî  zOptional[CompileId]r+  zOptional[Callable]rÓ   rÔ   rÕ   )ro  rà   r¹   rï  rí  rð  rî  r9   r+  r�   rö  rÖ   rÓ   rÔ   )
rë   rº  rè  r„   r+  r�   rö  rÖ   rÓ   rŸ  )rë   rº  rÓ   r¢  )ro  r‰   r¹   rï  rí  rð  r¸   rC  r  rÖ   rÓ   r×   )r  zSequence[T]rÓ   zGenerator[T, None, None])r  r?   r  zSource | NonerÓ   z Optional[functools.partial[Any]])r©   r;   r!  rC  rÓ   r×   ("  r¦  Ú
__future__r   rì  rr  rÞ  r5  rã  r[  rä  r¸  r  r†  rá  Úpickler£  r   r.  rF  r¥  rn  Ú
contextlibr   rt  r   r   Útypingr   r   r	   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/   r0   r1   r2   r3   r4   r5   Útorch._dynamo.utilsr6   r7   r%  r8   r9   r:   r;   r<   r=   r>   r?   r@   rÂ  rB   Útorch._library.opaque_objectrC   rD   Útorch._loggingrE   Útorch._utils_internalrF   Ú%torch.fx.experimental.symbolic_shapesrG   rH   rI   rJ   rK   Útorch.utilsrL   r÷  Útorch.utils._ordered_setrM   Útorch.utils._tracebackrN   rO   Útorch.utils.weakrP   rƒ  rR   rS   rT   Ú
eval_framerU   rq  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š   r›   rœ   Úcollections.abcr�   rž   r±   Únumpyrª  ÚModuleNotFoundErrorrŸ   r    r¡   rá  r¢   Útorch._Cr£   rŽ  r¤   r¥   rÉ  r§   r¨   Ú	getLoggerrØ   r<  rB  ÚgetArtifactLoggerr&  r  r  r„  rL  r¾   rÁ   rà   r¯  Úcacher¼  r¾  ré  rï  r  r´  r:  rù  r  rý  r  r  r   r$  r)  r2  r5  r6  r8  rN  rS  rU  rä  r<  r¶   r]  r÷  r<  r>  rš  rG  rJ  r]  ÚPicklerr_  r  r  rñ  r%  rÍ  rÏ  rY  r2  rÔ   r  rØ  rß  r  rê  r;  r÷  r  r5  r  r  r   r'  rÑ   r¿   r½   Ú<module>rE     ss  ðòõ" #ã 
Û Û Û Û Û Û Û Û 	Û Û Û Û 
Û Û Û Û Û Ý %Ý Ý  ß L× Lß CÑ CÝ !ã Û Û Ý >÷÷ ÷ ÷ ÷ ÷ ÷ ÷8÷ ÷ ÷ H÷
÷ 
õ 
õ 1ß RÝ %Ý 1÷õ õ *Ý /ß OÝ *ç (Ñ (Ý ,÷.÷ .÷ .÷ .÷ .÷ .÷ .÷ .÷ .÷ .÷ .õ .÷^÷ ñ ÷÷ ÷ ÷ ÷ ñ ö. Ý(ð KOÐ ÐGÓ NðÛö
 ß=Ñ=åå'ßTÝ4áˆCƒL€Ø×Ó˜Ó!€Ø�^Š^×-Ò-¨h¸ÓA€
Ø—’×1Ò1°(¸LÓI€ØŸš×9Ò9ØÐ"óÐ ð —^’^×5Ò5°hÐ@PÓQÐ ð"Ð ôô,˜~ô ,÷ñ ôDTð ‡‚ó.ó ð.ð .2€Ð*Ó 1ôô>/ð —h’h×&Ò&×:Ò:Ð ô%ð6 %)ðØ%ðàðð "ðð õ	ô<ô,'ôKðØðà
ðð ðð !ð	ð
 ðð "ðð 	ôô*3ô1ôôð ×Ó˜dÑ#÷!ð !ó $ð!ð*Ø?ð*à(ð*ð ð*ð ð	*ð
 )ð*ð ô*ôZ
Gð ×Ò÷ð ó ðô
�t—y’yõ ð
 ‡‚ó8ó ñ8ô}!
Ð#õ }!
÷bDR8ò R8õjô$Ð!4õ $ð ×Ò÷$ð $ó ñ$ð ×Ò÷/ð /ó ñ/÷
ò ð  ‡‚ó
ó ñ
ôc˜Ÿšõ cõLð:)Øð)àð)ð õ)÷b	ò 	õD);õ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ñ KøðwQ ó Ø	ƒBðús   ÈU. Õ.U:Õ9U: