ó
    CC˜jy± ã                  óx  • % 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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   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KrJsrs  SSKtJuruJvrv  SSKwJxrx  SSKyJzrzJ{r{J|r|  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¬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È  \ (       a  SSKÉJÊrÊ  \Ê\X\/\4   rË\Ê\\/\Ì4   rÍSrÎS \ÏS!'   \Ð" \GR¢                  " 5       5      rÒ SSKÓrÔ\ (       a,  SS"KÉJÖrÖ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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˜S- jrï\ð" 5       rñS™S. jròSšS/ jróS0rôS›S1 jrõ " S2 S3\q5      rö " S4 S55      r÷SœS6 jrøSqùS7\ÏS8'   S�S9 jrú\GRö                  SžS: j5       rüSqýS;\ÏS<'   SŸS= jrþS S> jrÿ\&GR                   GR                  GR                  GrS¡S? jGrS¢SA jGr S£       S¤SB jjGrS¥SC jGrS¦SD jGrS§SE jGr              S¨SF jGr	S©SG jGr
SªSH jGrS«SI jGrS¬SJ jGr\GR                  " SKSL9 " SM SN5      5       Gr            S­SP jGrS®SQ jGr\GR                   " SR SS5      5       Gr " ST SO\GR&                  5      Gr\GRö                  S¯SU j5       Gr " SV SW\5      Gr\ð" 5       GrS°SX jGrS±SY jGrS²SZ jGrS³S[ jGrS´S\ jGrSµS] jGrS¶S^ jGrSµS_ jGrS¶S` jGr SµSa jGr!S¶Sb jGr"S·Sc jGr#S¸Sd jGr$    S¹Se jGr%Sf Gr& " Sg Sh5      Gr'Si Gr( " Sj Sk\Y5      Gr) " Sl Sm5      Gr*S®Sn jGr+ " So Sp\÷5      Gr,\GR                   " Sq Sr5      5       Gr-\GR                   " Ss St5      5       Gr. " Su Sv5      Gr/\GRö                  SºSw j5       Gr0 " Sx Sy\GRb                  5      Gr2S»Sz jGr3      S¼S{ jGr4 " S| S}5      Gr5S½S~ jGr6S¾S jGr7S¾S€ jGr8    S¿S� jGr9\#" S‚G\:G\;\ð4   5      Gr<      SÀSƒ jGr=SÁS„ jGr>    SÂS… jGr?SÃS† jGr@          SÄS‡ jGrA SÅ             SÆSˆ jjGrB SÅ         SÇS‰ jjGrC    SÈSŠ jGrD            SÉS‹ jGrE\~" G\E5        SÊSŒ jGrF      SËS� jGrGSSŽ.SÌS� jjGrHG\I" G\)5       V Vs0 s H'  n G\J" G\J" G\)U 5      S�S5      =GqK  c  M  U G[–        _M)     snn GrLS‘\ÏS’'   G\I" G\)5       VVVs/ s Hµ  nUS   GR›                  5       (       d  M  UGR�                  S“5      (       a  M7  G\O" G\J" G\)US5      =GqP5      (       d  MT  G\Q" G\R" \
GR§                  G[         5      GR¨                  5      =GqU5      S”:¼  d  M�  G[ª        S   S@:X  d  M�  G\V" G[         S�5      (       a  M³  UPM·     snnnGrWG\W(       a  G\X" S•S–GR³                  G\W5       S—35      eg! \Õ a    SrÔ GNnf = fs  snn f s  snnn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ÚcastÚ
NamedTupleÚNoReturnÚTYPE_CHECKING)ÚLiteralStringÚTypeAliasTypeÚTypeVar)ÚReferenceType)Úcode_framelocals_names)Úcheck_obj_idÚcheck_type_idÚClosureGuardAccessorÚCodeGuardAccessorÚdict_versionÚDictGetItemGuardAccessorÚDictGuardManagerÚFuncDefaultsGuardAccessorÚFuncKwDefaultsGuardAccessorÚGetAttrGuardAccessorÚGetGenericDictGuardAccessorÚGuardAccessorÚGuardDebugInfoÚGuardManagerÚ install_no_tensor_aliasing_guardÚinstall_object_aliasing_guardÚ!install_storage_overlapping_guardÚinstall_symbolic_shape_guardÚ	LeafGuardÚprofile_guard_managerÚRelationalGuardÚRootGuardManagerÚTupleGetItemGuardAccessorÚTypeDictGuardAccessorÚTypeGuardAccessorÚTypeMROGuardAccessor)
Úget_global_source_nameÚget_local_source_nameÚIndexedSourceÚ$is_from_flatten_script_object_sourceÚis_from_local_sourceÚis_from_optimizer_sourceÚis_from_skip_guard_sourceÚ.is_from_unspecialized_builtin_nn_module_sourceÚTensorPropertyÚTensorPropertySource)ÚCompileEventLoggerÚget_metrics_context)	ÚCompileContextÚ	CompileIdÚDuplicateInputsÚGuardÚGuardBuilderBaseÚGuardEnvExprÚGuardSourceÚSourceÚStorageOverlap)ÚFakeScriptObject)Úget_opaque_obj_infoÚis_opaque_constant_type)Ú
structured)Újustknobs_check)Ú_CppShapeGuardsHelperÚ_ShapeGuardsHelperÚEqualityConstraintÚis_symbolicÚSYMPY_INTERP)Ú_pytree©ÚIndentedBuffer)Ú
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ÚContextVarGetSourceÚ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ÚUnwrapCollectiveTensorSourceÚWeakRefCallSource)Ú
CacheEntryÚDynamoFrameTypeÚ
ExtraStateÚGuardedCodeÚ	GuardFailÚGuardFilterEntryÚGuardFn)Úbuiltin_dict_keysÚcommon_constant_typesÚdataclass_fieldsÚ	dict_keysÚget_current_streamÚget_torch_function_mode_stackÚ get_torch_function_mode_stack_atÚguard_failuresÚistypeÚ	key_is_idÚ	key_to_idÚnormalize_count_iterÚnormalize_range_iterÚorig_code_mapÚset_getitemÚtuple_iterator_getitemÚtuple_iterator_lenÚverify_guard_fn_signature)ÚCallablez%Callable[[Any, Any, Any], Any] | NoneÚguard_manager_testing_hook_fn)Ú	GeneratorÚKeysViewÚSequenceÚSized)ÚSymbol)ÚDispatchKeySet)ÚOutputGraphCommonÚOutputGraphGuardsState©ÚSerializedCode)ÚTraceableWrapperSubclassÚTÚguardsÚ
recompilesÚrecompiles_verboseÚverbose_guardsc                óÔ   • [        U [        5      (       a  [        R                  U 5      $ [        U [        5      (       a  [        R                  U 5      $ [	        [        SU 5      5      $ )Nr¤   )Ú
isinstanceÚsetÚ__len__Ú	frozensetÚlenr	   ©Úvalues    Ú¢C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\torch/_dynamo/guards.pyÚ_sequence_lengthrº   í   sN   € Ü�%œ×ÑÜ�{‰{˜5Ó!Ð!Ü�%œ×#Ñ#Ü× Ñ  Ó'Ð'ÜŒt�G˜UÓ#Ó$Ð$ó    c                ó@  • [        U [        R                  5      (       d  [        $ [        R                  R                  U 5      R                  [        R                  R                  R                  5      (       a  [        $ [        R                  R                  U 5      $ ©N)
r²   ÚtorchÚTensorÚ_COW_TENSOR_UNSUPPORTEDÚ_CÚ_dispatch_keysÚhasÚDispatchKeyÚPythonÚ_is_cow_tensorr·   s    r¹   Ú_try_is_cow_tensorrÇ   ø   sd   € Ü�eœUŸ\™\×*Ñ*Ü&Ð&Ü‡x�x×Ñ˜uÓ%×)Ñ)¬%¯(©(×*>Ñ*>×*EÑ*E×FÑFÜ&Ð&Ü�8‰8×"Ñ" 5Ó)Ð)r»   c                ój   • [        U[        5      (       d  g[        U 5      nU[        L=(       a    X!:H  $ ©NF)r²   ÚboolrÇ   rÀ   )r¸   ÚexpectedÚactuals      r¹   Ú_cow_tensor_matchesrÍ      s0   € Ü�h¤×%Ñ%ØÜ Ó&€FØÔ0Ð0×G°VÑ5GÐGr»   )Ú__defaults__Ú__kwdefaults__Ú__code__Ú__closure__Ú__annotations__Ú__func__Ú__mro__c                ó\   • [        U 5      n[        U5      UR                  U5      -
  S-
  nU$ ©NrR   )Ú&code_framelocals_names_reversed_cachedr¶   Úindex)ÚcodeÚvar_nameÚframelocals_names_reversedÚframelocals_idxs       r¹   Úget_framelocals_idxrÝ     s=   € ô "HÈÓ!MÐäÐ&Ó'Ð*D×*JÑ*JÈ8Ó*TÑTÐWXÑXð ð Ðr»   c                  ó:   ^ • \ rS rSrSS jrSSU 4S jjjrSrU =r$ )ÚIndentedBufferWithPrefixi   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ë   rÊ   rð   Ú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                óH  • Uc  [        5       U l        OXl        Ub  U R                  R                  U5        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 r½   )r'   ÚrootÚset_local_stateÚ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_sourcesr³   Úprinted_relational_guardsrN   Údiff_guard_sources)rä   rþ   Úlocal_states      r¹   Ú__init__ÚGuardManagerWrapper.__init__3  sš   € ð
 ‰<Ü(Ó*ˆD�IàŒIàÑ"Ø�I‰I×%Ñ% kÔ2à8<ˆÔØ37ˆÔØ&*ˆŒ	Ø%'ˆŒØ48ˆÔØ37ˆÔØAEˆÔØ.2ˆÔØ.2ˆÔØ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_guardsP  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_managerc  s�   ø€ à—‘Ó! T×%<Ñ%<Ñ<×UÀÇÁÓ@QÐTUÑ@Uð ô -3Ø×+Ñ+Ó-×3Ñ3Ó5ö-Ñ(�Ñ(�wð #¡e¨G£n±u¸W³~Ñ&EÑEÒ"ñ-ö
 "Ø×'Ñ'×+Ñ+¨D¯O©OÓ,=Ô>à%Ð%r»   c                ór  >• [        U [        5      (       a  [        S[        U 5       35      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$ )Nú(Expected non-DictGuardManager node, got r   )	r²   r   ÚAssertionErrorÚtyper  r  r  Úget_child_managersr  )r  r  Ú	child_mgrrä   r!  s      €€r¹   Úvisit_managerÚEGuardManagerWrapper.collect_diff_guard_sources.<locals>.visit_managerq  s¥   ø€ Ü˜$Ô 0×1Ñ1Ü$Ø>¼tÀD»z¸lÐKóð ð
 —‘Ó! 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      $ rÉ   ©r²   r   ©r  r"  r*  s    €€r¹   r!  Ú=GuardManagerWrapper.collect_diff_guard_sources.<locals>.visit‚  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_sourcesY  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)rS   Ú"use_recursive_dict_tags_for_guardsrE   Úfind_tag_safe_rootsÚprepare_diff_guard_managerrã   s    r¹   ÚfinalizeÚGuardManagerWrapper.finalize�  s4   € Ü×4×4¼ØA÷:
ñ :
ð ×$Ñ$Ô&Ø×'Ñ'Õ)r»   c                óD   • U R                  5         U R                  5         g r½   )r0  Úpopulate_diff_guard_managerrã   s    r¹   r5  Ú.GuardManagerWrapper.prepare_diff_guard_manager”  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  rB  Ú	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  [        SU R                  5        35      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$ )NzExpected dict subclass, got T)Ú
issubclassÚget_type_of_guarded_valueÚdictr&  r  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Ü$Ø2°4×3QÑ3QÓ3SÐ2TÐUóð ð  ˆNØ"&Ðô -3Ø×+Ñ+Ó-×3Ñ3Ó5ö-Ñ(�Ñ(�wð Ñ&Ù˜'”NØÓ&Ø"×)Ñ)©%°«.Ö9ñ-ð %)×$?Ñ$?Ó$A×$HÑ$HÖ$JÑ �ÞØ'×+>Ñ+>Ó+@Ñ@Ð'ç�7Ø'×+>Ñ+>Ó+@Ñ@Ò'ñ %Kö #Ø×"Ñ"Ô$Ø!Ð!r»   c                ó,  >• [        U [        5      (       a  [        S[        U 5       35      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$ [        S U R                  5        5       5      (       a   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       [.        R0                  [.        R2                  [4        [6        4;   a˜  [8        R:                  (       aƒ  T" U [<        [>        [@        [B        [D        45      nU R                  5        H4  n[        U[D        5      (       d  M  UURG                  5       [H        ;   -  nM6     U(       a  U R                  5         U$ [        U R                  5       [.        RJ                  5      (       aJ  T" U [D        45      nU[#        S U R                  5        5       5      -  nU(       a  U R                  5         U$ [        U R                  5       [L        5      (       ad  U RO                  5       RQ                  [H        5      (       a<  [8        R:                  (       a'  T" U [R        45      nU(       a  U R                  5         U$ [        U R                  5       [        5      (       a*  T" U [T        [V        45      nU(       a  U R                  5         U$ )Nr%  c              3  óH   #   • U  H  nUR                  5       S :H  v •  M     g7f)ÚPythonLambdaGuardAccessorN)Úrepr)r?  Úas     r¹   rC  ÚQGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_manager.<locals>.<genexpr>  s#   é € ð â1˜ð —F‘F“HÐ ;Ö;Ú1ùs   ‚ "c              3  ót   #   • U  H.  u  p[        U[        5      =(       a    UR                  5       v •  M0     g 7fr½   )r²   r   r>  )r?  r@  rA  s      r¹   rC  r[    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¹   rC  r[  R  s>   é € ð +ò %9˜ô ˜xÔ)=Ó>÷ DØ ×.Ñ.Ó0°OÑCôDâ$8ùs   ‚79),r²   r   r&  r'  r(  rP  Úis_guarded_value_immutablerM  rN  r¾   r¿   Úhas_no_accessorsÚhas_object_aliasing_guardrR  ÚanyrE  rO  rF  rG  ÚnnÚModuler   r*   ÚtypesÚFunctionTypeÚ
MethodTypeÚstaticmethodÚclassmethodrS   Ú)assume_dunder_attributes_remain_unchangedr   r   r   r   r   r_  Údunder_attrs_assumed_constantsÚCellTypeÚtupler  Úendswithr(   r)   r+   )	r  rS  r)  rH  rI  rT  r@  rJ  r!  s	          €€r¹   r*  Ú>GuardManagerWrapper.find_tag_safe_roots.<locals>.visit_managerû  s°  ø€ Ü˜$Ô 0×1Ñ1Ü$Ø>¼tÀD»z¸lÐKóð ð
  ˆNØ!×4Ñ4Ö6�	Ø×%Ñ%¡e¨IÓ&6Ö7ñ 7ð ×.Ñ.×0Ñ0ô ˜d×<Ñ<Ó>ÄÇÁ×MÑMØ×,Ñ,×.Ñ.°t×7UÑ7U×7WÑ7WØ×*Ñ*Ô,ðN "Ð!ôM ñ à!×/Ñ/Ô1ó÷ ñ ð ð| "Ð!ð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>.visitu  s1   ø€ Ø‰|Ø�	Ü˜$Ô 0×1Ñ1Ù)¨$Ó/Ð/Ù  Ó&Ð&r»   N)r  r   rB  ztuple[type[GuardAccessor], ...]rð   rÊ   )r  r   rð   úlist[GuardManager])r  r   rð   rs  )rþ   rM  rN  r¾   rd  re  Úmark_tag_safe_root)rä   rS  r  rJ  r!  r"  r*  s      @@@@r¹   r4  Ú'GuardManagerWrapper.find_tag_safe_roots˜  s�   û€ ðt	Øð	Ø4Sð	àô	÷	"÷>x	"ð x	"÷t	'ð 	'ñ ˜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¹   r9  Ú/GuardManagerWrapper.populate_diff_guard_manager�  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_fn‘  s   ø€ Ø×&Ñ&Ó(¨NÑ:Ð:r»   )r|  r   rð   rÊ   )rþ   Úclone_manager)rä   r}  r~  s    ` r¹   rw  Ú-GuardManagerWrapper.clone_with_chosen_sourcesŽ  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ô   rN  r>  Úis_tag_safe_root)rä   Úguard_managerÚaccessor_strÚsourceÚtÚss         r¹   Úget_manager_lineÚ$GuardManagerWrapper.get_manager_lineœ  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é   Úindentr“  Úconstruct_manager_string)rä   rA  ÚbodyÚidxr  r   s         r¹   Úconstruct_dict_manager_stringÚ1GuardManagerWrapper.construct_dict_manager_string¨  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=)r–  Úget_leaf_guardsr²   r&   r  r  Ú
writelinesrˆ  rì   rô   r   rš  rG  rE  r(  ré   r“  rY  r—  )rä   rA  r˜  r„  r@  r)  s         r¹   r—  Ú,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)NrR   Ú T)rë   zTREE_GUARD_MANAGER:r'   Úget_epilogue_lambda_guards)r  rß   râ   ré   r—  rþ   Úhasattrr¢  rž  rˆ  Úgetvalue)rä   r˜  r„  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  rP  r  r(  )rA  r„  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])rA  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  ©NN)rþ   zRootGuardManager | Noner  ú
Any | Nonerð   ró   )rð   zGenerator[None, None, None])rð   úOrderedSet[str]©rð   ró   )r}  rÂ  rð   r'   )r„  r$   rð   r½  r½   )rŽ  r   r�  ú
str | Nonerð   rñ   )rA  r   r˜  rß   rð   ró   )rA  r   r˜  rß   rð   ró   rï   )rª  r   rð   rÊ   )rª  r   rð   r   )rô   rõ   rö   r÷   Ú__doc__r  r   r  r0  r6  r5  r4  r9  rw  rˆ  r“  rš  r—  r¥  r¨  r­  r¾  rø   rî   r»   r¹   rü   rü   +  sõ   † ñð )-Ø"&ð@à%ð@ð  ð@ð 
õ	@ð: ó3ó ð3ô2'ôh*ô+ôg*ôR>ð2Ø-ð2à	ô2ôð GKð
Ø)ð
Ø9Cð
à	õ
ð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)rZ  s    r¹   Ú
from_numpyrÍ    sH   € ô 
�‰×	/Ñ	/Õ	1ä%/°´B·J±JÄÇ
Á
Ð3K×%LÑ%LŒu�Š˜qÔ!ÐRS÷ 
2×	1×	1ús   ŸAA0Á0
A>ztype | NoneÚ_async_collective_tensor_typec                óx   • [         c  SSKJn  U" 5       q [         b  [        U 5      [         L a  U R                  $ U $ )Nr   )Ú'get_loaded_async_collective_tensor_type)rÎ  Ú$torch._functorch._aot_autograd.utilsrÐ  r'  Úelem)rª  rÐ  s     r¹   Úunwrap_async_collective_tensorrÓ    s<   € ô %Ñ,õ	
ñ )PÓ(QÐ%ä%Ñ1Ü�‹GÔ4Ò4à�v‰vˆØ€Hr»   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Õ  rP  Ú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údict[str, object] | NoneÚ_CLOSURE_VARSc                 ó>  • [         Gc  0 S[        _S[        _S[        R                  R
                  _S[        _S[        _SS _S[        _S	[        _S
[        _S[        _S[        _S[        _SS _S[        _S[        _S[         _S["        R$                  _[&        c  S O[&        R$                  [)        S5      [*        R,                  [.        R0                  R2                  [.        R4                  [6        [8        [.        R:                  [.        [<        S.
Eq [         $ )NÚ___check_type_idÚ___check_obj_idÚ___odict_getitemÚ___key_to_idÚ___dict_versionÚ___dict_containsc                ó,   • [         R                  X5      $ r½   )rO  Ú__contains__)rZ  Úbs     r¹   Ú<lambda>Ú#_get_closure_vars.<locals>.<lambda>B  s   € ¬T×->Ñ->¸qÔ-Dr»   Ú___tuple_iterator_lenÚ___normalize_count_iterÚ___normalize_range_iterÚ___tuple_iterator_getitemÚ___set_getitemÚ___dataclass_fieldsÚ___namedtuple_fieldsc                ó   • U R                   $ r½   ©Ú_fields©rª  s    r¹   rí  rî  I  s   € ¨a¯iªir»   Ú#___get_torch_function_mode_stack_atÚ___get_current_streamÚ___cow_tensor_matchesÚ__math_isnanÚinf)
Ú__numpy_isnanrþ  Ú__load_moduleÚutils_deviceÚdeviceÚ___from_numpyÚ!___unwrap_async_collective_tensorÚ___as_tensorr¾   rÜ  )râ  r   r   ÚcollectionsÚOrderedDictÚ__getitem__r—   r   r�   r˜   r™   rœ   r›   r�   r“   r‘   rÍ   ÚmathÚisnanrÉ  ÚfloatÚ	importlibÚimport_moduler¾   ÚutilsÚ_devicer  rÍ  rÓ  Ú_as_tensor_fullprecrÜ  rî   r»   r¹   Ú_get_closure_varsr  9  sF  € äÒð
Ø¤ð
àœ|ð
ð ¤× 7Ñ 7× CÑ Cð
ð œIð	
ð
 œ|ð
ð Ñ Dð
ð $Ô%7ð
ð &Ô';ð
ð &Ô';ð
ð (Ô)?ð
ð œkð
ð "Ô#3ð
ð #Ñ$7ð
ð 2Ô3Sð
ð $Ô%7ð
ð  $Ô%8ð!
ð" œDŸJ™Jð#
ô$ &(¡Z™T´R·X±XÜ˜“<Ü&×4Ñ4Ü!ŸK™K×/Ñ/Ü—l‘lÜ'Ü1OÜ!×5Ñ5ÜÜò7
ˆô: Ð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                ó,   • [         R                  U 5      $ r½   )r'  Ú__repr__©r‘  s    r¹   Ú_safe_type_reprr  c  s   € Ü�=‰=˜ÓÐr»   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à  rO   r¶   ÚstackÚsummary)r·  r„  ÚextraÚfsr"  s        r¹   Úget_verbose_code_partr%  g  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 )Nr‹  ú (HINT: rŒ  )r²   Úlistr%  Ú_get_closure_var_hintÚoriginating_source)r  r„  Úrecompile_hintr·  r  Úclosure_hintr‡  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²   r[   Úfreevar_namer¶   r\   Úbase)r�  Ú	full_nameÚcurrentÚpath_suffixs       r¹   r)  r)  �  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  [	        S[        U 5       35      eU R                  R                  5       $ )NzExpected torch.SymInt, got )rI   r²   r¾   ÚSymIntr&  r'  r  Úmaybe_as_int)Údims    r¹   Úconvert_int_to_concrete_valuesr:  ³  sU   € Ø
�{ØÜ�s×ÑØˆ
ä˜#œuŸ|™|×,Ñ,Ü Ð#>¼tÀC»y¸kÐ!JÓKÐKØ�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_strider9  s     r¹   Úconvert_to_concrete_valuesr=  ¾  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(r‹  z	, device=z, requires_grad=z, size=z	, stride=rŒ  )	r¾   rÁ   Ú_dispatch_tls_local_include_setÚ_dispatch_tls_local_exclude_setÚdtyper  rØ   Úrequires_gradrö   )r¸   r0  ÚsizesÚstridesÚpytypeÚdispatch_keysÚdispatch_keyrA  Údevice_indexrB  Ú	guard_strs              r¹   Úget_tensor_guard_code_partrJ  Â  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_indexrN  ×  s    € ô
 Ô! #Ó&Ó'×-Ñ-¨cÓ2Ð2r»   c                ó   • SU  SU S3$ )Núlist(dict.keys(ú))[Ú]rî   )r�  rØ   s     r¹   Úget_key_index_sourcerS  ß  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).)Ú	TypeErrorr'  )Úobjs    r¹   Úraise_local_type_errorr\  ã  s8   € Ü
Ø
”�S“	ˆ{˜, s eÐ+<Ð=Ø
Lñ	Mà
Lñ	Móð r»   c                óJ   • [        U [        R                  R                  5      $ r½   )r²   r¾   rd  re  r·   s    r¹   Ú$should_optimize_getattr_on_nn_moduler^  ë  s   € Ü�eœUŸX™XŸ_™_Ó-Ð-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÷   rb  rÒ   rc  rd  rø   rî   r»   r¹   ra  ra  ï  s'   ‡ ð %*Ð˜TÓ)ð €FˆJÓð €FˆJÖr»   ra  ÚGuardManagerTypec                ó´  • U R                   R                  n[        U R                  [        5      (       a  U R                  R                  nOA[        U[
        5      (       d  [        S[        U5       35      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úExpected dict, got Ú[rR  ©rØ   r�  Úexample_valueÚguard_manager_enumú == )r2  r0  r²   rØ   r`   rO  r&  r'  rN  rS  r(  r�   Úintrñ   Úget_key_managerre  ÚGUARD_MANAGERÚadd_equals_match_guardÚget_value_manager)
r�  Úbase_guard_managerÚbase_example_valuerj  rk  Úbase_source_namerØ   Ú
key_sourceÚkey_example_valueÚvalue_sources
             r¹   Úgetitem_on_dict_managerrx  þ  sU  € ð —{‘{×'Ñ'ÐÜ�&—,‘,Ô 2×3Ñ3Ø—‘×"Ñ"‰äÐ,¬d×3Ñ3Ü Ð#6´tÐ<NÓ7OÐ6PÐ!QÓRÐRÜÐ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²   rw   Úis_specialized_nn_moduleÚis_dict_keyrp   )r„  r�  s     r¹   Úmatch_on_id_for_tensorr}  ,  sP   € Ø×%Ñ%€Fô �&Ô+×,Ñ,Øà×%Ñ%×'Ñ'Øà×ÑÓ×F¬
°6¼:Ó(FÔ$FÐFr»   c                  ó*   • \ rS rSr% S\S'   S\S'   Srg)ÚGuardCodeListi;  r½  Ú	code_listr;   r„  rî   N©rô   rõ   rö   r÷   rÒ   rø   rî   r»   r¹   r  r  ;  s   ‡ àÓØ†Lr»   r  c                  ó   • \ rS rSrSrSrSrg)re  iA  rR   é   rî   N)rô   rõ   rö   r÷   ro  ÚDICT_GUARD_MANAGERrø   rî   r»   r¹   re  re  A  s   † Ø€MØÓr»   c                ó<   • [        [        [        U 5      5      5      $ r½   )r(  r  r   )rÙ   s    r¹   r×   r×   F  s   € ä”Ô/°Ó5Ó6Ó7Ð7r»   c                  ó.   • \ rS rSr% SrS\S'   S\S'   Srg)	ÚGuardCheckSpeciK  u  Lightweight guard evaluation for subgraph reuse during tracing.

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

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

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

get_metadata_fn: (guard, value) -> metadata  â€” captures the minimum
    information from the guarded value at build time.
eval_fn: (value, metadata) -> bool  â€” re-evaluates the guard at lookup
    time using a fresh value and the previously saved metadata.
ÚGuardCheckGetMetadataFnÚget_metadata_fnÚGuardCheckEvalFnÚeval_fnrî   N)rô   rõ   rö   r÷   rÅ  rÒ   rø   rî   r»   r¹   r‡  r‡  K  s   ‡ ñð, -Ó,ØÖr»   r‡  c                ó|   • U R                   U R                  5       U R                  U R                  U R                  4$ r½   )ÚshapeÚstriderA  r  rB  r  s    r¹   Úextract_tensor_metadatar�  j  s)   € Ø�G‰G�Q—X‘X“Z §¡¨!¯(©(°A·O±OÐDÐDr»   c                ó   • [        U [        R                  5      (       a  g[        R                  " U 5      nU[        R
                  ;  a  g[        U [        R                  R                  5      (       a  U  H  n[        U5      (       d  M    g   [        R
                  U   R                  U 5      u  p4U H  n[        U5      (       d  M    g   g)NTF)r²   r¾   r¿   ÚpytreeÚ_get_node_typeÚSUPPORTED_NODESr  ÚabcÚMappingÚ"_subclass_metadata_contains_tensorÚ
flatten_fn)ÚmetadataÚ	node_typerM  ÚchildrenÚ_Úchilds         r¹   r–  r–  n  s¢   € Ü�(œEŸL™L×)Ñ)Øä×%Ò% hÓ/€IØœ×.Ñ.Ó.Øä�(œKŸO™O×3Ñ3×4Ñ4ÛˆCÜ1°#×6Ó6Ùñ ô ×(Ñ(¨Ñ3×>Ñ>¸xÓH�K€HÛˆÜ-¨e×4Ó4Ùñ ð r»   c                ó†   • [        U 5      (       d  g [        R                  " SUR                   SUR                   S35      e)NzTensor subclass Ú.a�   returned Tensor metadata from __tensor_flatten__() but does not define __metadata_guard__. Dynamo's default tensor subclass metadata guard uses Python equality, which is not valid for Tensor metadata. Move tensor values to the inner tensor names returned by __tensor_flatten__(), or define a classmethod __metadata_guard__(original_metadata, current_metadata) to compare tensor metadata explicitly.)r–  rU   ÚInternalTorchDynamoErrorrõ   rö   )r˜  Úclss     r¹   Ú)_validate_default_subclass_metadata_guardr¡  ‚  sF   € Ü-¨h×7Ñ7Øä
×
&Ò
&Ø
˜3Ÿ>™>Ð*¨!¨C×,<Ñ,<Ð+=ð >ð 	ó	ð 	r»   c                ó¬   • [        U5      n[        US5      n[        SU5      R                  5       S   nU(       d  [	        XB5        [        U5      nXBU4$ )NÚ__metadata_guard__r«   rR   )r'  r£  r	   Ú__tensor_flatten__r¡  r   )r„  r¸   r   Úhas_custom_guardr˜  s        r¹   Úextract_subclass_metadatar¦  –  sU   € Ü
ˆu‹+€CÜ˜uÐ&:Ó;ÐÜÐ.°Ó6×IÑIÓKÈAÑN€HÞÜ1°(Ô@Ü˜Ó!€HØÐ+Ð,Ð,r»   c                ó~   • Uu  p#n[        SU 5      R                  5       S   nU(       a  UR                  X%5      $ XR:H  $ )Nr«   rR   )r	   r¤  r£  )r¸   r˜  Úsaved_metadatar   r¥  Úsubclass_metadatas         r¹   Úcheck_subclass_metadatarª  ¡  sG   € Ø,4Ñ)€NÐ)ÜÐ7¸Ó?×RÑRÓTÐUVÑWÐÞØ×%Ñ% nÓHÐHØÑ.Ð.r»   c                ó   • [        U5      $ r½   r   ©r„  r¸   s     r¹   Úextract_dtensor_specr­  ª  s   € Ü�E‹?Ðr»   c                ó"   • U R                  USS9$ )NT)Úskip_shapes)Ú_check_equals©r¸   r˜  s     r¹   Úcheck_dtensor_specr²  ¯  s   € ð
 ×Ñ˜x°TÐÐ:Ð:r»   c                ó�   • [        [        U5      5      nU(       a  UR                  (       d  g [        UR                  U5      5      $ r½   )rB   r'  Úguard_fnr   )r„  r¸   Úopaque_infos      r¹   Úextract_opaque_objr¶  ¸  s4   € Ü%¤d¨5£kÓ2€KÞ˜k×2×2ØÜ�K×(Ñ(¨Ó/Ó0Ð0r»   c                ó’   • Uc  g[        [        U 5      5      nU(       a  UR                  (       d  US L $ UR                  U 5      U:H  $ ©NT)rB   r'  r´  )r¸   r˜  rµ  s      r¹   Úcheck_opaque_objr¹  À  sE   € ØÑØÜ%¤d¨5£kÓ2€KÞ˜k×2×2Ø˜4ÐÐØ×Ñ Ó&¨(Ñ2Ð2r»   c                óŠ   • [        U5      [        R                  L a  [        US5      (       a  UR                  $ [        U5      $ ©NrÐ   ©r'  rf  rg  r£  rÐ   Úidr¬  s     r¹   Úextract_closurer¾  Ê  s4   € ÜˆEƒ{”e×(Ñ(Ò(¬W°U¸J×-GÑ-GØ�~‰~ÐÜˆe‹9Ðr»   c                ó”   • [        U 5      [        R                  L a  [        U S5      (       a  U R                  UL $ [        U 5      U:H  $ r»  r¼  r±  s     r¹   Úcheck_closurerÀ  Ñ  s>   € ÜˆEƒ{”e×(Ñ(Ò(¬W°U¸J×-GÑ-GØ�~‰~ Ð)Ð)Üˆe‹9˜Ñ Ð r»   c                ó‚   • SSK Jn  U H  n[        X5      (       d  M  U" U 5      s  $    [        S[	        U 5       35      e)zBExtract the base constant value from a constant subclass instance.rR   ©Ú_CONSTANT_BASE_TYPESzNot a constant subclass: )Úvariables.user_definedrÃ  r²   rZ  r'  )r¸   rÃ  r‘  s      r¹   Ú_constant_subclass_base_valuerÅ  ×  s<   € å<ã!ˆÜ�e×ÓÙ�U“8ŠOñ "ô Ð/´°U³¨}Ð=Ó
>Ð>r»   c                ó’   • U R                   n[        U[        R                  5      (       d  [	        SU 35      eUR
                  U   $ )z@Read a keyword bound into a guard's create_fn functools.partial.z,Guard create_fn is not a functools.partial: )Ú	create_fnr²   Ú	functoolsÚpartialrZ  Úkeywords)r„  r0  rÇ  s      r¹   Ú_guard_create_fn_keywordrË  á  sB   € à—‘€IÜ�i¤×!2Ñ!2×3Ñ3ÜÐFÀyÀkÐRÓSÐSØ×Ñ˜dÑ#Ð#r»   c                ó&   ^• [        XS9mU4S jnU$ )z<Attach a GuardCheckSpec to a guard method for auto-dispatch.©r‰  r‹  c                ó   >• TU l         U $ r½   )Úguard_check_spec)ÚfnÚhandlers    €r¹   Ú	decoratorÚ,register_guard_check_spec.<locals>.decoratorð  s   ø€ Ø%ˆÔØˆ	r»   )r‡  )r‰  r‹  rÒ  rÑ  s      @r¹   Úregister_guard_check_specrÔ  é  s   ø€ ô
 ¨_ÑN€Gõð Ðr»   c                ó   • [         U l        U $ )z:Mark a guard method as skipped during auto-cache dispatch.)Ú
SKIP_GUARDrÏ  ©rÐ  s    r¹   Úskip_guard_check_specrØ  ÷  s   € ä$€BÔØ€Ir»   c                  óB   • \ rS rSrSrSS jr\S 5       r\S 5       rSr	g)	ÚUnsupportedGuardCheckSpeciý  z|Sentinel for guards with no check spec yet.

Raises NotImplementedError if get_metadata_fn/eval_fn are accidentally called.
c                ó   • Xl         g r½   ©Ú_name)rä   r0  s     r¹   r  Ú"UnsupportedGuardCheckSpec.__init__  s   € Ø�
r»   c                ó2   • [        SU R                   35      e©Nz%Guard check spec not implemented for ©ÚNotImplementedErrorrÝ  rã   s    r¹   r‰  Ú)UnsupportedGuardCheckSpec.get_metadata_fn  ó   € ä!Ð$IÈ$Ï*É*ÈÐ"VÓWÐWr»   c                ó2   • [        SU R                   35      erà  rá  rã   s    r¹   r‹  Ú!UnsupportedGuardCheckSpec.eval_fn
  rä  r»   rÜ  N)r0  rñ   rð   ró   )
rô   rõ   rö   r÷   rÅ  r  Úpropertyr‰  r‹  rø   rî   r»   r¹   rÚ  rÚ  ý  s8   † ñô
ð ñXó ðXð ñXó óXr»   rÚ  c                ó:   • [        U R                  5      U l        U $ )z;Mark a guard method as unsupported for auto-cache dispatch.)rÚ  rô   rÏ  r×  s    r¹   Úunsupported_guard_check_specré    s   € ä3°B·K±KÓ@€BÔØ€Ir»   c                  óF  • \ rS rSr   Sƒ                       S„S jjr      S…S jrS†S 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’S jjrS“S jr        S”S jr\" S S S9S‘S•S jj5       r\" S S S9 S‘     S•S jj5       r\" S S S9S–S j5       r\" S S S9S–S j5       r\S–S j5       r\" S  S! S9S—S" j5       r\" S# S$ S9S—S% j5       r\" S& S' S9S˜S( j5       r\" S) S* S9S˜S+ j5       r\" S, S- S9S–S. j5       r\" S/ S0 S9S–S1 j5       r \" S2 S3 S9S–S4 j5       r!\" S5 S6 S9S‘S™S7 jj5       r" S‘     S™S8 jjr#\" S9 S: S9S‘SšS; jj5       r$\" S< S= S9S–S> j5       r%\&S–S? j5       r'\&S–S@ j5       r(\&S–SA j5       r)\" \*\+S9S–SB j5       r,\" \-\.S9S–SC j5       r/\" \0\1S9S–SD j5       r2\" SE SF S9S‘S™SG jj5       r3\" SH SI S9S–SJ j5       r4\" SK SL S9S–SM j5       r5\" SN SO S9S–SP j5       r6\" SQ SR S9S–SS j5       r7\" ST SU S9S–SV j5       r8\" SW SX S9S–SY j5       r9\" \:\;S9S–SZ j5       r<\" S[ S\ S9S–S] j5       r=\" S^ S_ S9S–S` j5       r>\" Sa Sb S9S–Sc j5       r?\" Sd Se S9S–Sf j5       r@\" Sg Sh S9S–Si j5       rA\&S›Sj j5       rB\" Sk Sl S9S–Sm j5       rC\" Sn So S9S–Sp j5       rD\" Sq Sr S9S–Ss j5       rE\" St Su S9S–Sv j5       rF\&S–Sw j5       rG\&S–Sx j5       rH\&S–Sy j5       rI\&S–Sz j5       rJ\&S–S{ j5       rK\&S–S| j5       rL\&S–S} j5       rM\" S~ S S9S‘SœS€ jj5       rN  S�         SžS� jjrOS‚rPg)ŸÚGuardBuilderi  Nc                ó6  • Xl         X l        X0l        X@l        XVS.U l        0 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        [5        5       U l        U R,                  R8                  c  [;        S5      eU R,                  R8                  R<                   H8  nU R?                  U5      nU R6                  RA                  [C        U5      5        M:     0 U l"        0 U l#        [5        5       U l$        / U l%        [L        RN                  =(       a    [Q        S	5      U l'        [S        5       U l*        g )
N©ÚLÚGÚ__builtins__Ú>r›  Ú<rž  Ú_dot_ú.check_fn_manager.output_graph must not be Noneú!pytorch/compiler:guard_nn_modules)+Úf_codeÚid_refÚ
source_refÚlookup_weakrefsÚscopeÚsrc_get_value_cacheÚruntime_global_scopeÚbuiltinsÚ__dict__Úcopyr¾   ÚpackageÚpackage_importerÚ_package_imported_modulesr  r  rŽ  Ú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_graphr&  Úguard_on_key_orderÚgetr  r½  r	  Ú_cached_guard_managersÚ_cached_duplicate_input_guardsÚobject_aliasing_guard_codesrS   Úguard_nn_modulesrE   rN   Úalready_added_code_parts)rä   rö  r÷  rø  rù  Úlocal_scoper  rŽ  r  r	  rü  r
  r0  Úpackage_moduler�  Údict_objs                   r¹   r  ÚGuardBuilder.__init__  sØ  € ð ŒØŒØ$ŒØ.ÔØ9DÑ3XˆŒ
Ø9;ˆÔ Ø$8×$H¸LˆÔ!Ü%-×%6Ñ%6×%;Ñ%;Ó%=ˆ�
‰
�>Ñ"ô �]‰]×+Ñ+×EÑE×KÑKÖMñ
ØØà—<‘<  SÓ)×1Ñ1°#°sÓ;×CÑCÀCÈÓQˆDà/=�J‰J�~Ñ& tÑ,à-�J‰J�tÓñ Nð +Ôà#%ˆŒà)+ˆŒ	ð
 46ˆÔð 46ˆÔ%ØEGˆÔ.à6FÔà13ˆÔØ&ÔØ.Ôô +.«%ˆÔ'Ø× Ñ ×-Ñ-Ñ5Ü Ð!QÓRÐRØ×+Ñ+×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Ø   rh  rR  ©rM  r�  rj  rk  )
Úget_guard_managerr²   r   râ  r0  r*  r�   re   Úget_guard_manager_typeÚdict_getitem_manager)	rä   rj  r„  Údict_mgrÚdict_sourcerM  r¸   rw  rk  s	            r¹   Ú#guard_on_dict_keys_and_ignore_orderÚ0GuardBuilder.guard_on_dict_keys_and_ignore_ordere  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                óz  • U R                  U5      n[        U[        5      (       d  [        SUR                   35      e[        U[        5      (       d  [        S[        U5       35      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 zExpected DictGuardManager, got ri  z__check_obj_id(r‹  rŒ  rl  )r  r²   r   râ  r0  r&  r'  Ú	enumerater�   rS  rn  re  ro  r–   r÷  Úadd_id_match_guardr-  r  rp  )	rä   r¸   r„  r  r™  rM  ru  Úkey_managerÚid_vals	            r¹   Úguard_on_dict_keys_and_orderÚ)GuardBuilder.guard_on_dict_keys_and_orderƒ  s=  € ð ×)Ñ)¨%Ó0ˆÜ˜(Ô$4×5Ñ5Ü%ð;Ø;@¿:¹:¸,ðHóð ô ˜(Ô$4×5Ñ5Ü Ð#BÄ4ÈÃ>ÐBRÐ!SÓTÐTô "Ô"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*  rR   zMGuards may run slower on Python 3.13.0. Consider upgrading to Python 3.13.1+.)rS   Úissue_3_13_0_warningÚsysÚversion_infoÚwarningsÚwarnÚRuntimeWarning)rj  s    r¹   Ú'_get_generic_dict_manager_example_valueÚ4GuardBuilder._get_generic_dict_manager_example_value­  sF   € ô ×'×'Ü× Ñ  GÓ+Ü× Ñ  :Ó-ä�MŠMØ_Üôð ØÐr»   c           	     óp  •               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  [        S	5      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  [        S5      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$ )NrP  rQ  rR  ri  rl  r  )	r²   r   rN  rn  re  ro  rp  rq  r  )rA  rM  Úsource_namers  rj  rk  rØ   ru  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©Úattrr�  rj  rk  z&accessor_info.l1_key must not be emptyú	.__dict__©r�  rj  rk  )rA  rM  r5  rs  rj  rk  z9l2_source_name and l2_guard_manager_enum must not be None)rA  r   rM  r   r5  rñ   rs  r   rj  r   rk  re  rð   r   )Úmemberrþ  r³   rÜ  Úgetmrorì   ÚupdateÚkeysra  rb  Úgetattr_managerrc  r&  rd  rX   r2  r0  r  Úget_generic_dict_managerr1  re  ro  )rä   r�  rr  rs  rj  rt  r5  rk  r6  Ú	attr_nameÚmod_dictÚall_class_attribute_namesrª  Úaccessor_inforc  rd  Ú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ð ð ð !×'×'Ü$Ð%MÓNÐNØ"×)Ñ)ˆ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ö Ø!Ñ)Ð-BÑ-JÜ(ØSóð ñ +ØØØ .Ø'/Ø"*Ø'<ñð ð ˆMr»   c                óx   • UR                   nUS:X  a  g[        U R                  U5      5      nX0R                  ;   $ )Nr¡  F)r0  r½  r  r  )rä   r�  r5  Úobj_ids       r¹   Úrequires_key_order_guardingÚ(GuardBuilder.requires_key_order_guarding^  s8   € Ø—k‘kˆØ˜"ÓØÜ�D—H‘H˜VÓ$Ó%ˆØ×8Ñ8Ñ8Ð8r»   c                ór  • [         R                  nU R                  U5      (       a�  [        U[        5      (       a  [         R
                  nU$ [        U[        [        45      (       a  [         R                  nU$ [        U[        5      (       d  [        S[        U5       35      e[         R
                  nU$ )Nrg  )re  ro  rW  r²   r�   r„  r³   rµ   rO  r&  r'  )rä   r�  rj  rk  s       r¹   r  Ú#GuardBuilder.get_guard_manager_typee  s¦   € ô .×;Ñ;ÐØ×+Ñ+¨F×3Ñ3ä˜-¬×3Ñ3Ü%5×%HÑ%HÐ"ð "Ð!ô ˜M¬C´Ð+;×<Ñ<ô &6×%CÑ%CÐ"ð
 "Ð!ô " -´×6Ñ6Ü(Ð+>¼tÀMÓ?RÐ>SÐ)TÓUÐUÜ%5×%HÑ%HÐ"Ø!Ð!r»   c                ó(   • U[         R                  :H  $ r½   )re  r„  )rä   Úmgr_enums     r¹   Úmanager_guards_on_keysÚ#GuardBuilder.manager_guards_on_keys~  s   € ØÔ+×>Ñ>Ñ>Ð>r»   c                ó˜   • U R                   R                  R                  U R                  SU R                  S   [
        R                  S9$ )Nrï  )Ú	f_globalsr�  rj  rk  )rŽ  rþ   Úglobals_dict_managerrü  rú  re  ro  rã   s    r¹   Úget_global_guard_managerÚ%GuardBuilder.get_global_guard_manager�  sF   € Ø×!Ñ!×&Ñ&×;Ñ;Ø×/Ñ/ØØŸ*™* S™/Ü/×=Ñ=ð	 <ð 
ð 	
r»   c           	     óŠ  ^• 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Ox[        T[0        5      (       a,  U R+                  5       R3                  TR.                  UUUS9nGO7[        T[4        5      (       a  U$ [        T[6        5      (       a  U$ [        T[8        5      (       a%  U(       d  [;        S5      eUR=                  UUUS9nGOÏ[        T[>        5      (       a%  U(       d  [;        S5      eURA                  UUUS9nGO•[        T[B        5      (       a%  U(       d  [;        S5      eURE                  UUUS9nGO[[        T[F        [H        [J        [L        [N        45      (       a  U(       d  [;        S5      eUnGO[        T[P        5      (       a8  [R        RT                  " TRV                  5      nURY                  U4S jUUUS9nG
OÎ[        T[Z        5      (       a  URY                  U4S jUUUS9nG
O¡[        T[\        5      (       a  URY                  U4S	 jUUUS9nG
Ot[        T[^        5      (       a%  U(       d  [;        S5      eURa                  UUUS9nG
O:[        T[b        5      (       a0  U(       d  [;        S5      eURe                  TRf                  UUUS
9nG	Oõ[        T[h        [j        [l        45      (       a—  U(       d  [;        S5      e[        T[h        5      (       d  [;        S[o        T5       35      e[q        U5      (       a+  U(       d  [;        S5      eU Rs                  TUUUUUU5      nG	O\URu                  TRf                  UUUS
9nG	O>[        T[v        [x        45      (       Ga  U(       d  [;        S5      e[        U[z        [|        R~                  45      (       d  [;        S[o        U5       35      e[        T[v        [x        45      (       d  [;        S[o        T5       35      e[        U[€        5      (       a2  U Rƒ                  U	5      (       d  [;        S5      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      (       a0  U(       d  [;        S5      eUR™                  TR”                  UUUS9nGOt[        T[š        5      (       a0  U(       d  [;        S5      eUR�                  TR†                  UUUS9nGO/[        T[ž        5      (       Ga  U(       d  [;        S5      e[        U[z        [|        R~                  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OOTR†                  nTR¢                  (       a  TR©                  5       nUR«                  UUUUS9nGO[        T[¬        5      (       Ga  U(       d  [;        S5      eU(       d  [;        S5      e[¯        U5      (       d  [;        S5      eTR°                  (       dE  UR³                  UUR´                  [        R                  S9R«                  TR¶                  UUUS9nGOcUR¸                  nUc  [;        S5      eUS-   nUR»                  UU[        R                  S9n[        U[€        5      (       a  [;        S5      eUR-                  TR¶                  UUUS9nGOç[        T[¼        5      (       a*  U(       d  [;        S5      eURY                  [¾        UUUS9nGO¨[        T[À        5      (       a'  U(       d  [;        S5      eURY                  S UUUS9nGOl[        T[Â        5      (       a*  U(       d  [;        S5      eURY                  [Ä        UUUS9nGO-[        T[Æ        5      (       a'  U(       d  [;        S5      eURY                  S UUUS9nGOñ[        T[È        5      (       a'  U(       d  [;        S5      eURY                  S UUUS9nGOµ[        T[Ê        5      (       a'  U(       d  [;        S5      eURY                  S UUUS9nGOy[        T[Ì        5      (       a'  U(       d  [;        S5      eURY                  S UUUS9nGO=[        T[Î        5      (       a\  U(       d  [;        S5      eTRÐ                  (       a$  TRÒ                  nURY                  U4S jUUUS9nGOáURY                  S UUUS9nGOÌ[        T[Ô        5      (       a'  U(       d  [;        S5      eURY                  S  UUUS9nGO�[        T[Ö        5      (       a0  U(       d  [;        S5      eURÙ                  TR†                  UUUS!9nGOK[        T[ˆ        5      (       a>  [        U[€        5      (       d  [;        S"5      eURÛ                  TR†                  UUUS!9nGOø[        T[Ü        5      (       a0  U(       d  [;        S5      eURß                  TR†                  UUUS!9nGO³[        T[à        5      (       a%  U(       d  [;        S5      eURã                  UUUS9nGOy[        T[ä        5      (       a%  U(       d  [;        S5      eURç                  UUUS9nGO?[        T[è        5      (       a'  U(       d  [;        S5      eURY                  S# UUUS9nGO[        T[ê        5      (       a&  U(       d  [;        S5      eURY                  S$ UUUS9nOÈ[        T[ì        5      (       a$  U(       d  [;        S5      eURï                  UUUS9nO�[        T[ð        5      (       a$  U(       d  [;        S5      eURó                  UUUS9nOV[        T[ô        5      (       a&  U(       d  [;        S5      eURY                  S% UUUS9nO[;        S&T S'TR                   35      eX°R                  TR                  '   U$ )(Nr¡  r  )Úglobal_namer�  rj  rk  z#base_guard_manager must not be Noner>  c                ó   • U$ r½   rî   )r›  rß  s     r¹   rí  Ú<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>í  s   € ±!r»   )Úpython_lambdar�  rj  rk  c                ó6   >• [        TR                  5       5      $ r½   )r“   Ú
_get_index©r›  r�  s    €r¹   rí  rg  ô  s   ø€ Ô(HØ×%Ñ%Ó'ô)r»   c                ó.   >• [        TR                  5      $ r½   )r‘   r  rk  s    €r¹   rí  rg  ý  s   ø€ Ô(:¸6¿=¹=Ô(Ir»   r;  zExpected AttrSource, got z"base_source_name must not be emptyz"Expected dict or OrderedDict, got z=Expected DictGetItemSource or DictSubclassGetItemSource, got z#DictGuardManager must guard on keyszUExpecting clean index here. Likely Dynamo forgot to mark a dict as guard_on_key_orderÚtensor_property_Ú_manager)r™  r�  rj  rk  zUse DictGetItemSourcez#base_example_value must be callablez!base_source_name must not be Nonez.__kwdefaults__z,Expected non-DictGuardManager for kwdefaultsc                ó(   • U R                  5       S   $ r  ©r¤  rù  s    r¹   rí  rg  ½  s   € ¨×(<Ñ(<Ó(>¸qÒ(Ar»   c                ó"   • U R                  5       $ r½   )Ú__obj_flatten__rù  s    r¹   rí  rg  Ï  s   € ¨×(9Ñ(9Ô(;r»   c                ó>   • U R                  5       R                  5       $ r½   )Ú_typeÚqualified_namerù  s    r¹   rí  rg  Ø  s   € ¨¯©«	×(@Ñ(@Ô(Br»   c                ó"   • U R                  5       $ r½   )Úget_baserù  s    r¹   rí  rg  á  s
   € ¨¯
©
¬r»   c                ó"   • U R                  5       $ r½   )Úitemrù  s    r¹   rí  rg  ê  s
   € ¨¯©¬r»   c                ó$   • U R                  U5      $ r½   ©r  )rª  Úds     r¹   rí  rg  õ  s   € ¸1¿5¹5À¼8r»   c                ó"   • U R                  5       $ r½   r{  rù  s    r¹   rí  rg  ü  s
   € ¨A¯E©E¬Gr»   c                ó.   • [         R                  " U 5      $ r½   )r¾   r  rù  s    r¹   rí  rg    s   € ¬×(AÒ(AÀ!Ô(Dr»   ri  z4ConstDictKeySource can only work on DictGuardManagerc                ó   • [        U 5      $ r½   )r�   rù  s    r¹   rí  rg  ;  s
   € Ô(8¸Ô(;r»   c                ó   • U R                   $ r½   r÷  rù  s    r¹   rí  rg  D  s   € ¨¯	ª	r»   c                ó   • [        U 5      $ r½   )rm  rù  s    r¹   rí  rg  ]  s   € ¬¨A¬r»   zmissing guard manager builder z - ){rŽ  rþ   r0  r  r  r  r½  r  re  ro  r²   r\   r2  Úget_guard_manager_from_sourcer•   rs   rÝ   rö  Ú
local_nameÚframelocals_managerrm   rb  r  re  ro   Úglobal_weakref_managerrn   rz   r€   r&  Útype_managerr~   Útype_dict_managerr   Útype_mro_managerrx   ru   r‚   r�   rj   rq   r  r  Úmodule_nameÚlambda_managerr|   rb   rp   Úgrad_managerrk   Úgeneric_getattr_managerr?  rX   r[   rƒ   r'  r^  rS  rC  re   rf   rO  r  r  r   r]  rx  rØ   r`   ÚRuntimeErrorr5   ÚgetattrÚpropÚlowerr™  r.   Úindexed_managerrr   Úlist_getitem_managerrl   r(  Úindex_is_slicern  Útuple_getitem_managerÚunpack_sliceÚgetitem_managerrd   ÚcallableÚis_kwÚfunc_defaults_managerrÎ   Úidx_keyrÏ   Úfunc_kwdefaults_managerrw   rÍ  r{   r„   rÓ  rh   ry   rW   rZ   ra   Úhas_defaultÚdefault_valueri   r}   Útuple_iterator_getitem_managerrn  rv   Úset_getitem_managerr…   Úweakref_call_managerrY   Úcall_function_no_args_managerrc   rt   r^   Úcode_managerr]   Úclosure_managerrg   )rä   r�  Úroot_guard_managerrj  r5  rk  rt  rs  rr  Úbase_guard_manager_enumrÜ   ÚoutÚmodulerØ   Ú
kwdefaultsÚ	kw_sourcer  Údefault_vals    `                r¹   r‚  Ú*GuardBuilder.get_guard_manager_from_source‰  sH  ø€ Ø!×/Ñ/×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×'Ñ'Þ%Ü$Ð%JÓKÐKØ$×1Ñ1Ø"Ø+Ø#5ð 2ð ŠCô
 �FœN×+Ñ+Þ%Ü$Ð%JÓKÐKØ$×6Ñ6Ø"Ø+Ø#5ð 7ð ŠCô
 �FœM×*Ñ*Þ%Ü$Ð%JÓKÐKØ$×5Ñ5Ø"Ø+Ø#5ð 6ð ŠCô
 ØäÜÜ+Ü2Ü"ð÷	
ñ 	
ö &Ü$Ð%JÓKÐKØ$Š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×'Ñ'Þ%Ü$Ð%JÓKÐKØ$×1Ñ1Ø"Ø+Ø#5ð 2ð ŠCô
 �FÔ-×.Ñ.Þ%Ü$Ð%JÓKÐKØ$×<Ñ<Ø—]‘]Ø"Ø+Ø#5ð	 =ð ŠCô Ø”ZÔ!3Ô5SÐT÷
ñ 
ö &Ü$Ð%JÓKÐKÜ˜f¤j×1Ñ1Ü$Ð'@ÄÀfÃÀÐ%OÓPÐPÜ3Ð4F×GÑGÞ'Ü(Ð)MÓNÐNØ×/Ñ/ØØ&Ø&Ø!Ø$ØØ&ó’ð )×8Ñ8ØŸ™Ø&Ø"/Ø'9ð	 9ð ’ô �FÔ.Ô0IÐJ×KÒKÞ%Ü$Ð%JÓKÐKÜÐ0´4¼×9PÑ9PÐ2Q×RÑRÜ$Ø8¼Ð>PÓ9QÐ8RÐSóð ô ˜fÔ'8Ô:SÐ&T×UÑUÜ$ØSÔTXÐY_ÓT`ÐSaÐbóð ô Ð,Ô.>×?Ñ?Ø×2Ñ2Ð3J×KÑKÜ(Ð)NÓOÐOÜ-ØØ&Ø&Ø!Ø&ó’ô ˜fŸl™lÔ,>×?Ñ?Ü&ð8óð ð )×=Ñ=ØŸ™Ø&Ø"/Ø'9ð	 >ð ’ô �FÔ0×1Ñ1ÜØ"Ø" 6§;¡;×#3Ñ#3×#9Ñ#9Ó#;Ð"<¸HÐEôð —J‘JØ"Ø+Ø#5ñŠCô �FœM×*Ñ*Þ%Ü$Ð%JÓKÐKà$×4Ñ4Ø—J‘JØ"Ø+Ø#5ð	 5ð ŠCô �FÔ-×.Ñ.Þ%Ü$Ð%JÓKÐKØ$×9Ñ9Ø—L‘LØ"Ø+Ø#5ð	 :ð ŠCô �FœM×*Ò*Þ%Ü$Ð%JÓKÐKÜÐ,¬t´[×5LÑ5LÐ.M×NÑNÜ$Ð%<Ó=Ð=ÜÐ,¬d×3Ñ3¸F×<Q×<QØ(×=Ñ=ØŸ™Ø&Ø"/Ø'9ð	 >ð ’ô Ð.´×6Ñ6¸v×?T×?TØ(×>Ñ>ØŸ™Ø&Ø"/Ø'9ð	 ?ð ’ð Ÿ™�Ø×(×(Ø"×/Ñ/Ó1�EØ(×8Ñ8ØØ&Ø"/Ø'9ð	 9ð ’ô �FœN×+Ò+Þ%Ü$Ð%JÓKÐKÞ#Ü$Ð%IÓJÐJÜÐ.×/Ñ/Ü$Ð%JÓKÐKØ—<—<Ø(×>Ñ>Ø+Ø"4×"AÑ"AÜ'7×'EÑ'Eð ?ð ÷ "‘/ØŸ™Ø&Ø"/Ø'9ð	 "ð ò	 ð 0×>Ñ>�
Ø#Ñ+Ü(Ð)LÓMÐMØ,Ð/@Ñ@�	ð .×EÑEØ$Ø",Ü'7×'EÑ'Eð Fð �ô
 ˜hÔ(8×9Ñ9Ü(Ð)WÓXÐXà×3Ñ3ØŸ™Ø&Ø"/Ø'9ð	 4ð ’ô �FÔ-×.Ñ.Þ%Ü$Ð%JÓKÐKØ$×3Ñ3Ü(Ø"Ø+Ø#5ð	 4ð ŠCô �FÔ2×3Ñ3Þ%Ü$Ð%JÓKÐKØ$×3Ñ3ÙAØ"Ø+Ø#5ð	 4ð ŠCô �FÔ8×9Ñ9Þ%Ü$Ð%JÓKÐKØ$×3Ñ3Ü<Ø"Ø+Ø#5ð	 4ð ŠCô �FÔ5×6Ñ6Þ%Ü$Ð%JÓKÐKØ$×3Ñ3Ù;Ø"Ø+Ø#5ð	 4ð ŠCô �FÔ;×<Ñ<Þ%Ü$Ð%JÓKÐKØ$×3Ñ3ÙBØ"Ø+Ø#5ð	 4ð ŠCô �FœO×,Ñ,Þ%Ü$Ð%JÓKÐKØ$×3Ñ3Ù4Ø"Ø+Ø#5ð	 4ð ŠCô �FÔ0×1Ñ1Þ%Ü$Ð%JÓKÐKØ$×3Ñ3Ù0Ø"Ø+Ø#5ð	 4ð ŠCô �FÔ/×0Ñ0Þ%Ü$Ð%JÓKÐKØ×!×!Ø$×2Ñ2�Ø(×7Ñ7Ø.9Ó"CØ&Ø"/Ø'9ð	 8ð ’ð )×7Ñ7Ù"3Ø&Ø"/Ø'9ð	 8ð ’ô �FÔ-×.Ñ.Þ%Ü$Ð%JÓKÐKØ$×3Ñ3ÙDØ"Ø+Ø#5ð	 4ð ŠCô �FÔ6×7Ñ7Þ%Ü$Ð%JÓKÐKØ$×CÑCØ—l‘lØ"Ø+Ø#5ð	 Dð ŠCô ˜Ô 2×3Ñ3ÜÐ0Ô2B×CÑCÜ$ØJóð ð %×4Ñ4Ø—l‘lØ"Ø+Ø#5ð	 5ð ŠCô �FÔ;×<Ñ<Þ%Ü$Ð%JÓKÐKØ$×8Ñ8Ø—l‘lØ"Ø+Ø#5ð	 9ð ŠCô �FÔ-×.Ñ.Þ%Ü$Ð%JÓKÐKØ$×9Ñ9Ø"Ø+Ø#5ð :ð ŠCô
 �FÔ4×5Ñ5Þ%Ü$Ð%JÓKÐKØ$×BÑBØ"Ø+Ø#5ð Cð ŠCô
 �FÔ1×2Ñ2Þ%Ü$Ð%JÓKÐKØ$×3Ñ3Ù;Ø"Ø+Ø#5ð	 4ð ŠCô �FÔ2×3Ñ3Þ%Ü$Ð%JÓKÐKØ$×3Ñ3Ù1Ø"Ø+Ø#5ð	 4ð ‰Cô �FœJ×'Ñ'Þ%Ü$Ð%JÓKÐKØ$×1Ñ1Ø"Ø+Ø#5ð 2ð ‰Cô
 �FœM×*Ñ*Þ%Ü$Ð%JÓKÐKØ$×4Ñ4Ø"Ø+Ø#5ð 5ð ‰Cô
 �FÔ/×0Ñ0Þ%Ü$Ð%JÓKÐKØ$×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ä   r„  s     r¹   r  ÚGuardBuilder.get_guard_managerj  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 )Nr‹  rï  zPython shape guard function:
%sÚ___make_guard_fn)r  ÚjoinrB  Úbuild_guard_functionrú  Ú
guards_logÚdebugÚexecrQ  rŽ  rþ   Úadd_epilogue_lambda_guardÚadd_lambda_guard)rä   r  r  r  Úis_epilogueÚmake_guard_fn_argsÚ_guard_bodyÚpycoder¦  Úglobals_for_guard_fnr´  s              r¹   Ú$add_python_lambda_leaf_guard_to_rootÚ1GuardBuilder.add_python_lambda_leaf_guard_to_rootm  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_valuerú  rû  )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$ )Nrƒ  zinvalid var name: %s)r²   rñ   r0  Ústrip_function_callr  r¾   rÁ   rØ  Úis_valid_var_nameÚlogÚwarningr´  )rä   r„  r0  r2  Ú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*  rX   r;   r!  r  Úcreate)rä   r„  rE  r´  Úattr_sourceÚ	new_guards         r¹   Ú_guard_on_attributeÚ GuardBuilder._guard_on_attributeµ  sY   € ð ˜
Ó"Ü$ U×%=Ñ%=Ó>‰Kä$ U×%=Ñ%=¸yÓIˆKäØ¨¯©À×AQÑAQñ
ˆ	ð 	×Ñ˜Õr»   c                óF   • [        U S5      [        U[        U S5      5      4$ ©Nr<  )rË  r£  r¬  s     r¹   rí  ÚGuardBuilder.<lambda>È  s#   € Ü$ U¨FÓ3Ü�EÔ3°E¸6ÓBÓCñ.
r»   c                ó*   • [        XS   5      US   :H  $ ©Nr   rR   )r£  r±  s     r¹   rí  rÕ  Ì  s   € ¬°À±{Ó(CÀxÐPQÁ{Ò(Rr»   rÍ  c           	     óN  • Uc  [        S5      eUR                  n[        U[        5      (       a  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—  [        X25      n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R                  UR                  U5        OCUR!                  UUR                  U	US9  O&UR#                  U[%        Xa5      UR&                  5        U R                  R)                  U5        g )Nz'attr must not be None for HASATTR guardúhasattr(r‹  rŒ  znot hasattr()Úprovided_guarded_objectr;  )r&  r*  r²   ru   r2  rË  r£  r  r  Ú_set_guard_export_infor‚  rX   r  r^  rS  r0  rC  Úadd_no_hasattr_guardr-  r  r  )rä   r„  r<  r�  ÚrefÚvalrÙ   Úbase_managerrÏ  rj  rs  rk  s               r¹   ÚHASATTRÚGuardBuilder.HASATTRÇ  s   € ð ‰<Ü Ð!JÓKÐKØ×)Ñ)ˆÜ�fœn×-Ñ-Ø—[‘[ˆFà�l‰l˜5Ó!ˆÜ�d—h‘h˜u“o tÓ,ˆØˆÞØ˜c˜U " T¡H¨AÐ.‰Dà! #  b¨©°Ð2ˆDà×0Ñ0Ó0Øà×#Ñ#Ø�6°4·8±8¸E³?ð 	$ñ 	
ð ×9Ñ9¸&ÓAˆÞô % VÓ2ˆKØ ŸH™H [Ó1ˆMØ!%§¡¨%£ÐØ!%×!<Ñ!<¸[Ó!XÐô 4Ð4F×GÑGØ×)Ñ)ØØ Ø&Ø!Ø—K‘KØ×$Ñ$Ø&õð ×,Ñ,ØØ Ÿ:™:Ø"/Ø'9ð	 -ò ð ×-Ñ-ØÔ,¨TÓ9¸5×;KÑ;Kôð 	×%Ñ%×)Ñ)¨$Õ/r»   c                ó   • [        U S5      $ rÔ  ©rË  r¬  s     r¹   rí  rÕ  	  s   € Ô-EÀeÈVÔ-Tr»   c                ó   • XR                   ;  $ r½   )rþ  r±  s     r¹   rí  rÕ  	  s   € ¨¿¹Ò(Fr»   c                óÌ  • Uc  [        S5      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;attr must not be None for NOT_PRESENT_IN_GENERIC_DICT guardúnot ___dict_contains(r‹  z
.__dict__)r=  r>  F)r&  rË  r  r  r  r0  rD  r1  rþ  re  ro  Úadd_dict_contains_guardr-  r  r  )	rä   r„  r<  rÝ  rÞ  rß  rÙ   rI  rQ  s	            r¹   ÚNOT_PRESENT_IN_GENERIC_DICTÚ(GuardBuilder.NOT_PRESENT_IN_GENERIC_DICT	  së   € ð ‰<Ü ØMóð ð �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5      $ r½   ©r'  r¬  s     r¹   rí  rÕ  *	  s   € ¬T°%¬[r»   c                ó   • [        U 5      UL $ r½   rë  r±  s     r¹   rí  rÕ  +	  s   € ¬¨U«°xÑ(?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(rŒ  z___check_type_id(r‹  ú), type=útype ©r+  )r  r²   r¾   Ú_subclassesÚ
FakeTensorrE  r'  rö   rô   Ú_unserializabler÷  r0  r  rË  rÛ  r  Úadd_type_match_guardr-  r  ©rä   r„  r¸   r‘  rV  Ú	type_reprrÙ   s          r¹   Ú
TYPE_MATCHÚGuardBuilder.TYPE_MATCH)	  sý   € ð —‘˜“ˆäØ”u×(Ñ(×3Ñ3÷ñ ð ——à—‘‰Aä�U“ˆAà�>‰>˜QŸZ™ZÓ'ð %)ˆEÔ!à—‘˜Q %¨¯
©
 |°1Ð 5Ó6ˆÜ# AÓ&ˆ	Ø" 4§<¡<°Ó#6Ð"7°r¸&¸ÀÈ)ÈÐUˆØ×#Ñ# E¨6Ô2à×Ñ˜uÓ%×:Ñ:ØÜ"Ø¨e°A·N±NÐ3CÐ,Dñð ×Ñõ	
r»   c                ób   • [        [        U[        5      (       a  UR                  5      $ U5      $ r½   ©r'  r²   rA   Úreal_objr¬  s     r¹   rí  rÕ  M	  s%   € ¬TÜ(¨Ô0@×AÑAˆE�N‰Nô.
ØGLô.
r»   c                ój   • [        [        U [        5      (       a  U R                  5      UL $ U 5      UL $ r½   rû  r±  s     r¹   rí  rÕ  P	  s9   € ¬Ü(¨Ô0@×AÑAˆE�N‰Nó)
ð ñ)ØGLó)
ð ñ)r»   c           
     ó  • U R                  U5      n[        U[        5      (       a  [        UR                  5      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 )	NTrî  rŒ  z___check_fake_script_type(r‹  rï  rð  rñ  )r  r²   rA   r'  rü  rö   rô   rô  r÷  r0  r  rË  rÛ  r  Ú add_fake_script_type_match_guardr-  r  rö  s          r¹   ÚFAKE_SCRIPT_TYPE_MATCHÚ#GuardBuilder.FAKE_SCRIPT_TYPE_MATCHL	  sì   € ð —‘˜“ˆÜ�eÔ-×.Ñ.Ü�U—^‘^Ó$‰Aä�U“ˆAà�>‰>˜QŸZ™ZÓ'Ø$(ˆEÔ!à—‘˜Q %¨¯
©
 |°1Ð 5Ó6ˆÜ# AÓ&ˆ	Ø+¨D¯L©L¸Ó,?Ð+@ÀÀ6À(È(ÐS\ÐR]Ð^ˆØ×#Ñ# E¨6Ô2à×Ñ˜uÓ%×FÑFÜØÜ"Ø¨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   rÛ  r  Úadd_dict_version_guardr-  r  )rä   r„  rÝ  rÞ  ÚversionrÙ   s         r¹   ÚDICT_VERSIONÚGuardBuilder.DICT_VERSIONs	  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                ó   • [        U S5      $ ©NrM  rã  r¬  s     r¹   rí  rÕ  ƒ	  ó   € Ô-EÀeÈUÔ-Sr»   c                ó
   • X;   $ r½   rî   r±  s     r¹   rí  rÕ  „	  ó   € ¨Ò(9r»   c                ó   • U R                  U5      nSU< SU S3nX@R                  ;   a  g U R                  X/5        U R                  U5      R	                  SU[        XA5      UR                  5        U R                  R                  U5        g )Nz___dict_contains(r‹  rŒ  T©rË  r  rÛ  r  rç  r-  r  r  ©rä   r„  rM  Údict_refrÙ   s        r¹   ÚDICT_CONTAINSÚGuardBuilder.DICT_CONTAINS‚	  s‹   € ð
 —<‘< Ó&ˆà" 3¡'¨¨H¨:°QÐ7ˆØ×0Ñ0Ó0ØØ×#Ñ# E¨6Ô2à×Ñ˜uÓ%×=Ñ=ØØÜ" 4Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r»   c                ó   • [        U S5      $ r	  rã  r¬  s     r¹   rí  rÕ  —	  r
  r»   c                ó
   • X;  $ r½   rî   r±  s     r¹   rí  rÕ  ˜	  ó   € ¨Ò(=r»   c                ó   • U R                  U5      nSU< SU S3nX@R                  ;   a  g U R                  X/5        U R                  U5      R	                  SU[        XA5      UR                  5        U R                  R                  U5        g )Nræ  r‹  rŒ  Fr  r  s        r¹   ÚDICT_NOT_CONTAINSÚGuardBuilder.DICT_NOT_CONTAINS–	  s‹   € ð
 —<‘< Ó&ˆà& s¡g¨R°¨z¸Ð;ˆØ×0Ñ0Ó0ØØ×#Ñ# E¨6Ô2à×Ñ˜uÓ%×=Ñ=ØØÜ" 4Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r»   c                ó   • [        U S5      $ r	  rã  r¬  s     r¹   rí  rÕ  «	  r
  r»   c                ó
   • X;   $ r½   rî   r±  s     r¹   rí  rÕ  ¬	  r  r»   c                ó$  • U R                  U5      nUnSU SU< S3nXPR                  ;   a  g U R                  X/5        U R                  U5      R	                  SU[        XQ5      UR                  5        U R                  R                  U5        g )Nzset.__contains__(r‹  rŒ  T©rË  r  rÛ  r  Úadd_set_contains_guardr-  r  r  ©rä   r„  rM  Úset_refry  rÙ   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 S5      $ r	  rã  r¬  s     r¹   rí  rÕ  Á	  r
  r»   c                ó
   • X;  $ r½   rî   r±  s     r¹   rí  rÕ  Â	  r  r»   c                ó$  • U R                  U5      nUnSU SU< S3nXPR                  ;   a  g U R                  X/5        U R                  U5      R	                  SU[        XQ5      UR                  5        U R                  R                  U5        g )Nznot set.__contains__(r‹  rŒ  Fr  r  s         r¹   ÚSET_NOT_CONTAINSÚGuardBuilder.SET_NOT_CONTAINSÀ	  s�   € ð
 —,‘,˜uÓ%ˆØˆà& w i¨r°$±¸Ð;ˆØ×0Ñ0Ó0Øà×#Ñ# E¨6Ô2à×Ñ˜uÓ%×<Ñ<ØØÜ" 4Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r»   c                ó   • U$ r½   rî   r¬  s     r¹   rí  rÕ  ×	  ó   € ©Ur»   c                ó
   • X:H  $ r½   rî   r±  s     r¹   rí  rÕ  Ø	  ó   € ¨Ò(9r»   c                ó´  • U R                  U5      nU R                  U5      n[        U[        5      (       d  [	        S[        U5       35      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 )NzExpected bool, got rl  )rË  r  r•   rÊ   r&  r'  rÛ  r  Úadd_true_match_guardr-  r  Úadd_false_match_guard©rä   r„  rÝ  rÞ  rÙ   s        r¹   Ú
BOOL_MATCHÚGuardBuilder.BOOL_MATCHÖ	  s»   € ð �l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ�cœ4× Ñ Ü Ð#6´t¸C³y°kÐ!BÓCÐCØ�%�t˜C™7Ð#Ð$ˆØ×#Ñ# EÔ0æØ×"Ñ" 5Ó)×>Ñ>Ü& tÓ3°U×5EÑ5Eõð ×"Ñ" 5Ó)×?Ñ?Ü& tÓ3°U×5EÑ5Eõr»   c                ó   • [        U5      $ r½   )rÇ   r¬  s     r¹   rí  rÕ  í	  ó
   € Ô-?ÀÔ-Fr»   c                ó   • [        X5      $ r½   ©rÍ   r±  s     r¹   rí  rÕ  î	  s
   € Ô(;¸EÔ(Lr»   c                óJ  ^• [        U R                  U5      5      m[        T[        5      (       d  [	        S5      eSU4S jjnSU R                  U5       ST< S3nU R                  X/5        U R                  U5      R                  U[        X15      UR                  5        g )Nz(COW_TENSOR_MATCH requires a plain Tensorc                ó   >• [        U T5      $ r½   r4  ©rª  rË   s    €r¹   r´  Ú/GuardBuilder.COW_TENSOR_MATCH.<locals>.guard_fnõ	  s   ø€ Ü& q¨(Ó3Ð3r»   z___cow_tensor_matches(r‹  rŒ  ©rª  Úobjectrð   rÊ   )rÇ   r  r²   rÊ   r&  rË  rÛ  r  r·  r-  r  ©rä   r„  r´  rÙ   rË   s       @r¹   ÚCOW_TENSOR_MATCHÚGuardBuilder.COW_TENSOR_MATCHì	  s’   ø€ ô
 & d§h¡h¨u£oÓ6ˆÜ˜(¤D×)Ñ)Ü Ð!KÓLÐL÷	4ð (¨¯©°UÓ(;Ð'<¸B¸x¹lÈ!ÐLˆØ×#Ñ# E¨6Ô2Ø×Ñ˜uÓ%×6Ñ6ØÜ" 4Ó/Ø×Ñõ	
r»   c                ó   • g r½   rî   r¬  s     r¹   rí  rÕ  
  ó   € ¨Tr»   c                ó
   • U S L $ r½   rî   r±  s     r¹   rí  rÕ  
  s   € ¨°©r»   c                ó  • U R                  U5      nU R                  U5      nUb  [        S[        U5       35      eU S3/nU R	                  X5        U R                  U5      R                  [        XA5      UR                  5        g )NzExpected None, got z is None)	rË  r  r&  r'  rÛ  r  Úadd_none_match_guardr-  r  r.  s        r¹   Ú
NONE_MATCHÚGuardBuilder.NONE_MATCH 
  s�   € ð �l‰l˜5Ó!ˆØ�h‰h�u‹oˆØ‰?Ü Ð#6´t¸C³y°kÐ!BÓCÐCØ�%�xÐ Ð!ˆØ×#Ñ# EÔ0à×Ñ˜uÓ%×:Ñ:Ü" 4Ó/°×1AÑ1Aõ	
r»   c                ó   • U$ r½   rî   r¬  s     r¹   rí  rÕ  
  r(  r»   c                ó   • XL $ r½   rî   r±  s     r¹   rí  rÕ  
  ó   € ¨Ñ(9r»   c                ó$   • U R                  X5      $ r½   )Úid_match_unchecked)rä   r„  r+  s      r¹   ÚID_MATCHÚGuardBuilder.ID_MATCH
  s   € ð ×&Ñ& uÓ=Ð=r»   c                óB  • [        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[        [        R                  " U5      (       a  UO
[        U5      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 )Nz___check_obj_id(r‹  rï  rJ  )Úprovided_func_name)r²   r*  r€   rø  r;   r2  rë  rË  r  r÷  r0  r  rÜ  Úisclassr'  rÛ  r  r#  r-  r  rs   r¾   rd  re  rƒ  rù  r	  )
rä   r„  r+  rÝ  rÞ  r%  r÷  rÙ   rƒ  Úweak_ids
             r¹   rI  ÚGuardBuilder.id_match_unchecked
  s]  € ô �e×.Ñ.´
×;Ñ;à—?‘?Ü�e×.Ñ.×3Ñ3´\×5LÑ5LÓMóð ð �l‰l˜5Ó!ˆØ�h‰h�u‹oˆØ—‘˜S§*¡*Ó-ˆÜ#¬7¯?ª?¸3×+?Ñ+?¡CÄTÈ#ÃYÓOˆ	Ø! #  b¨¨°¸¸ÐDˆØ×#Ñ# E¨6ÀjÐ#ÑQØ×Ñ˜uÓ%×8Ñ8ØÜ" 4°Ó?Ø×Ñô	
ô �e×.Ñ.´×<Ñ<ô ˜#œuŸx™xŸ™×/Ñ/Ø"×5Ñ5×@Ñ@�
Ø×.Ñ.¨sÓ3�ØÑ&Ø7>×(Ñ(¨Ò4ð 'ð 0ð	 =r»   c                ó   • g r½   rî   r¬  s     r¹   rí  rÕ  A
  r?  r»   c                ó
   • U S L$ r½   rî   r±  s     r¹   rí  rÕ  B
  ó	   € ¨°TÑ(9r»   c                óJ  • U R                  U5      nU R                  U5      n[        U[        R                  5      (       d  [        S[        U5       35      eU S3nU R                  X/5        U R                  U5      R                  [        XQ5      UR                  5        g )NúExpected torch.Tensor, got ú is not None)rË  r  r²   r¾   r¿   r&  r'  rÛ  r  Úadd_not_none_guardr-  r  )rä   r„  r¸   rÝ  rÞ  rÙ   s         r¹   ÚNOT_NONE_MATCHÚGuardBuilder.NOT_NONE_MATCH@
  sŒ   € ð
 �l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ˜#œuŸ|™|×,Ñ,Ü Ð#>¼tÀC»y¸kÐ!JÓKÐKØ��lÐ#ˆØ×#Ñ# E¨6Ô2à×Ñ˜uÓ%×8Ñ8Ü" 4Ó/°×1AÑ1Aõ	
r»   c                ó"   • UR                  5       $ r½   ©Úraw_reprr¬  s     r¹   rí  rÕ  Q
  s   € ¨U¯^©^Ô-=r»   c                ó(   • U R                  5       U:H  $ r½   r[  r±  s     r¹   rí  rÕ  R
  s   € ¨¯©Ó(8¸HÒ(Dr»   c                óD  • U R                  U5      nU R                  U5      n[        U[        R                  R
                  5      (       d  [        S[        U5       35      eU SU< S3nU R                  U5      R                  U[        XA5      UR                  5        g )NzExpected DispatchKeySet, got z.raw_repr() == z.raw_repr())rË  r  r²   r¾   rÁ   r¦   r&  r'  r  Úadd_dispatch_key_set_guardr-  r  )rä   r„  rÝ  rÞ  r  s        r¹   ÚDISPATCH_KEY_SET_MATCHÚ#GuardBuilder.DISPATCH_KEY_SET_MATCHP
  sŒ   € ð
 �l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ˜#œuŸx™x×6Ñ6×7Ñ7Ü Ð#@ÄÀcÃÀÐ!LÓMÐMØ�u˜O¨C©7°+Ð>ˆ
à×Ñ˜uÓ%×@Ñ@ØÜ" :Ó5Ø×Ñõ	
r»   c                ó*  • U R                   R                  c  [        S5      eU R                   R                  R                  nSU 3/nU R	                  X5        U R
                  R                  R                  U[        X15      UR                  5        g )Nrô  z,torch.autograd.forward_ad._current_level == )
r  r  r&  Ú
dual_levelrÛ  rŽ  rþ   Úadd_dual_level_match_guardr-  r  )rä   r„  rc  rÙ   s       r¹   Ú
DUAL_LEVELÚGuardBuilder.DUAL_LEVELb
  s„   € ð × Ñ ×-Ñ-Ñ5Ü Ð!QÓRÐRØ×*Ñ*×7Ñ7×BÑBˆ
Ø>¸z¸lÐKÐLˆØ×#Ñ# EÔ0Ø×Ñ×Ñ×:Ñ:ØÜ" 4Ó/Ø×Ñõ	
r»   c                óÔ  ^^• U R                   R                  c  [        S5      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 )Nrô  z5torch._functorch.pyfunctorch.compare_functorch_state(rŒ  c                ó   >• T" T5      $ r½   rî   )rª  Ú
compare_fnÚstatess    €€r¹   rÐ  Ú.GuardBuilder.FUNCTORCH_STACK_MATCH.<locals>.fn€
  s   ø€ Ù˜fÓ%Ð%r»   r9  )r  r  r&  Úfunctorch_layersÚ	get_staterÛ  r¾   Ú
_functorchÚpyfunctorchÚcompare_functorch_staterŽ  rþ   r·  r-  r  )rä   r„  ÚcisÚcirÙ   rÐ  ri  rj  s         @@r¹   ÚFUNCTORCH_STACK_MATCHÚ"GuardBuilder.FUNCTORCH_STACK_MATCHr
  sÈ   ù€ ð × Ñ ×-Ñ-Ñ5Ü Ð!QÓRÐRØ×#Ñ#×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_idsrz  s    €€€r¹   rÐ  Ú5GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKS.<locals>.fnž
  s   ø€ Ø"¡l±9³;Ó&?Ñ?Ð?r»   )rx  zCtuple[Callable[[torch.Tensor], Any], Callable[[Any], torch.Tensor]]rð   ztuple[int, ...] | Noner9  )r¾   rn  Ú_aot_autogradr  Útop_saved_tensors_hooksÚ"saved_tensors_hooks_are_inlineablerÛ  rŽ  rþ   r·  r-  r  )rä   r„  rÙ   rÐ  ry  r}  r~  rz  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 " S S5      mUR                  5       S   n[        US5      nU(       a  [        U5        [	        U5      mO[        U[	        U5      5        [        [        R                  " [        R                  U4S jU5      5      m	U(       a
  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 )Nc                  ó(   • \ rS rSrSS jrSS jrSrg)Ú@GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>._AnyComparei®
  c                ó   • gr¸  rî   ©rä   Úothers     r¹   Ú__eq__ÚGGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>._AnyCompare.__eq__¯
  s   € Ør»   c                ó   • grÉ   rî   r‰  s     r¹   Ú__ne__ÚGGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>._AnyCompare.__ne__²
  s   € Ør»   rî   N)rŠ  r:  rð   rÊ   )rô   rõ   rö   r÷   r‹  rŽ  rø   rî   r»   r¹   Ú_AnyComparer‡  ®
  s   † ô÷r»   r�  rR   r£  c                ó   >• T" 5       $ r½   rî   )r›  r�  s    €r¹   rí  Ú=GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.<lambda>¾
  s   ø€ ¹¼r»   c                óJ   >• TR                  TU R                  5       S   5      $ rÖ   )r£  r¤  )rª  r   Úoriginal_metadatas    €€r¹   Úmetadata_checkerÚEGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.metadata_checkerÅ
  s*   ø€ Ø×-Ñ-Ø%Ø×(Ñ(Ó*¨1Ñ-óð r»   c                ó0   >• U R                  5       S   T:H  $ rÖ   rp  )rª  r”  s    €r¹   r•  r–  Í
  s   ø€ à×+Ñ+Ó-¨aÑ0Ð4EÑEÐEr»   Ú___check_metadata_Ú_cr9  )r  r¤  r£  rž   r'  r¡  r   r‘  Útree_map_onlyr¾   r7  r½  r8   Úcurrent_compile_idr  r·  r-  r  )
rä   r„  r¸   r˜  r¥  r•  re  r�  r   r”  s
          @@@r¹   ÚTENSOR_SUBCLASS_METADATA_MATCHÚ+GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH¥
  sê   ú€ ð
 —‘˜“ˆ÷	ñ 	ð ×+Ñ+Ó-¨aÑ0ˆÜ" 5Ð*>Ó?ÐÞÜ% eÔ,Ü�u“+‰Cä5°hÄÀUÃÔLä$Ü× Ò ¤§¡Ô/FÈÓQó
Ðö ÷ñ ÷Fð +¬2Ð.>Ó+?Ð*@ÀÄ>×CdÒCdÓCfÐBgÐhˆØ×Ñ˜uÓ%×6Ñ6ØÜ" ;Ó6Ø×Ñõ	
r»   c                óÐ   ^• [        X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 T5      $ r½   )r²  r7  s    €r¹   r´  Ú1GuardBuilder.DTENSOR_SPEC_MATCH.<locals>.guard_fná
  s   ø€ Ü% a¨Ó2Ð2r»   Ú__dtensor_spec_r9  )r­  r  r½  r  r·  r-  r  r;  s       @r¹   ÚDTENSOR_SPEC_MATCHÚGuardBuilder.DTENSOR_SPEC_MATCHØ
  sZ   ø€ ô (¨¯x©x¸«Ó?ˆ÷	3ð !¤ H£ Ð/ˆØ×Ñ˜uÓ%×6Ñ6ØÔ,¨TÓ9¸5×;KÑ;Kõ	
r»   c                ó  ^• U R                  U5      n[        X5      mTc  g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)z=Guard on the values returned by the opaque object's guard_fn.Nc                ó   >• [        U T5      $ r½   )r¹  )rª  Úoriginal_valuess    €r¹   Úopaque_guard_checkerÚDGuardBuilder.OPAQUE_OBJ_GUARD_FN_MATCH.<locals>.opaque_guard_checkerö
  s   ø€ Ü# A Ó7Ð7r»   Ú___check_opaque_guard_fn_r™  r9  )	r  r¶  r½  r8   r›  r  r·  r-  r  )rä   r„  r¸   r§  re  r¦  s        @r¹   ÚOPAQUE_OBJ_GUARD_FN_MATCHÚ&GuardBuilder.OPAQUE_OBJ_GUARD_FN_MATCHé
  s|   ø€ ð —‘˜“ˆÜ,¨UÓ:ˆàÑ"Ø÷	8ð 2´"Ð5IÓ2JÐ1KÈ2Ìn×NoÒNoÓNqÐMrÐsˆØ×Ñ˜uÓ%×6Ñ6Ø Ü" ;Ó6Ø×Ñõ	
r»   c                ó   • U$ r½   rî   r¬  s     r¹   rí  rÕ    r(  r»   c                ó
   • X:H  $ r½   rî   r±  s     r¹   rí  rÕ    r*  r»   c                óL  • 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J n	  SSK!J"n
J#nJ$nJ%n  UUUUU	U
U4-   nSSK&J'n  X~4-   nSS K(J)s  J*n  [W        XG5      (       dP  URX                  " [%        U5      5      (       d0  [[        [%        U5      5      (       d  []        S[%        U5       35      e[_        U[`        5      (       am  [b        Rd                  " U5      (       aR  SU SU S	3/nU Rg                  UU5        U Ri                  U5      Rk                  [m        UU5      URn                  5        g [_        U[p        5      (       am  [        Rd                  " U5      (       aR  SU S
U S	3/nU Rg                  UU5        U Ri                  U5      Rs                  [m        UU5      URn                  5        g U SU< 3/n[_        XF5      (       a  [u        U5      n[m        UU5      nU(       a  U Vs/ s H  nU SU S3PM     nnU Ri                  U5      Rw                  UUURn                  5        U Rg                  UU5        g s  snf )Nrî   r   )Ú_MeshLayoutÚ
DeviceMesh)Ú_StridedShardÚPartialÚ	ReplicateÚShard)Ú_IntWrapperzUnexpected type z(type(z) is float and __math_isnan(z))z) is complex and __numpy_isnan(rl  r'  rŒ  )<rË  r  rÉ  Úint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64Úfloat16Úfloat32Úfloat64r(  r³   rn  rŽ   r'  rµ   ÚsliceÚranger�   r¾   ÚSizeÚStreamÚcudaÚstreamsÚdistributedÚis_availableÚtorch.distributed.device_meshr¯  r°  Ú(torch.distributed.tensor.placement_typesr±  r²  r³  r´  Útorch.export.dynamic_shapesrµ  Útorch.utils._pytreer  rK   r²   Úis_constant_classrC   r&  r•   r  r	  r
  rÛ  r  Úadd_float_is_nan_guardr-  r  ÚcomplexÚadd_complex_is_nan_guardr   rp  )rä   r„  r+  rÝ  rÞ  Únp_typesÚok_mutable_typesÚok_typesr¯  r°  r±  r²  r³  r´  rµ  r‘  rÙ   r  r‡  s                      r¹   ÚEQUALS_MATCHÚGuardBuilder.EQUALS_MATCH   s  € ð
 �l‰l˜5Ó!ˆØ�h‰h�u‹oˆßŠ2ä—‘Ü—‘Ü—‘Ü—‘Ü—‘Ü—	‘	Ü—	‘	Ü—	‘	Ü—
‘
Ü—
‘
Ü—
‘
ð/‰Hð ˆHä ¤#˜;ÐäÜ!äÜÜÜÜÜÜ—
‘
Ü—‘Ü—
‘
×"Ñ"×)Ñ)ðð ðð "ðñó
ˆô" ×Ñ×)Ñ)×+Ñ+ßM÷ó ð  ØØØØØØð#ñ ˆHõ 	<à˜nÑ,ˆç,Ð,ô �s×%Ñ%Ø×'Ò'¬¨S«	×2Ñ2Ü&¤t¨C£y×1Ñ1ä Ð#3´D¸³I°;Ð!?Ó@Ð@ô �#”u×Ñ¤$§*¢*¨S§/¡/Ø˜S˜EÐ!=¸c¸UÀ"ÐEÐFˆDØ×'Ñ'¨¨tÔ4à×"Ñ" 5Ó)×@Ñ@Ü& t¨UÓ3Ø× Ñ ôð ô �#”w×Ñ¤B§H¢H¨S§M¡MØ˜S˜EÐ!@ÀÀÀRÐHÐIˆDØ×'Ñ'¨¨tÔ4à×"Ñ" 5Ó)×BÑBÜ& t¨UÓ3Ø× Ñ ôð ð �%�t˜C™7Ð#Ð$ˆÜ�#×(Ñ(ô ˜3“-ˆCä3°D¸%Ó@ÐÞá?Qó"Ú?Q°t�4�&˜ Ð 0°Ó2Ñ?Qð ð "ð 	×Ñ˜uÓ%×<Ñ<ØÐ# U×%5Ñ%5ô	
ð 	×#Ñ# E¨4Ô0Øùò"s   ÍN!c                ó   • U$ r½   rî   r¬  s     r¹   rí  rÕ  v  r(  r»   c                ó
   • X:H  $ r½   rî   r±  s     r¹   rí  rÕ  w  r*  r»   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Ê   r/  rC  rf  ÚCodeTyperJ  rÔ  ©rä   r„  rÞ  s      r¹   ÚCONSTANT_MATCHÚGuardBuilder.CONSTANT_MATCHu  sf   € ð
 �h‰h�u‹oˆÜ�#”t×ÑØ�O‰O˜EÕ"Ø‰[Ø�O‰O˜EÕ"Ü�CœŸ™×(Ñ(Ø�M‰M˜%Õ à×Ñ˜eÕ$r»   c                ó   • [        U5      $ r½   ©rÅ  r¬  s     r¹   rí  rÕ  …  s
   € Ô-JÈ5Ô-Qr»   c                ó   • [        U 5      U:H  $ r½   rÞ  r±  s     r¹   rí  rÕ  †  s   € Ô(EÀeÓ(LØò)r»   c                ó‚  ^^	• SSK Jn  U R                  U5      nU R                  U5      nSmU H  n[	        X55      (       d  M  Um  O   Tc  [        S[        U5       35      eT" U5      m	TR                   SU ST	< 3/nSUU	4S jjnU R                  U5      R                  U[        Xa5      UR                  5        g)	z¶Guard for subclasses of constant types (int, float, str, etc.).

Extracts the base value using the base type's converter (e.g.,
int.__int__) to avoid calling user-overridden __eq__.
rR   rÂ  Nz No constant base type found for Ú(r  c                ó   >• T" U 5      T:H  $ r½   rî   )rª  Ú	base_typeÚ
base_values    €€r¹   Úcheck_fnÚ6GuardBuilder.CONSTANT_SUBCLASS_MATCH.<locals>.check_fn   s   ø€ ñ ˜Q“< :Ñ-Ð-r»   r9  )rÄ  rÃ  r  rË  r²   r&  r'  rô   r  r·  r-  r  )
rä   r„  rÃ  rÞ  rÝ  r‘  rÙ   rå  rã  rä  s
           @@r¹   ÚCONSTANT_SUBCLASS_MATCHÚ$GuardBuilder.CONSTANT_SUBCLASS_MATCH„  sÉ   ù€ õ 	Aà�h‰h�u‹oˆØ�l‰l˜5Ó!ˆð ˆ	Û%ˆAÜ˜#×!Ó!Ø�	Ùñ &ð ÑÜ Ð#CÄDÈÃIÀ;Ð!OÓPÐPá˜s“^ˆ
Ø×%Ñ%Ð& a¨ u¨E°*±Ð@ÐAˆ÷	.ð 	.ð 	×Ñ˜uÓ%×6Ñ6ØÜ" 4Ó/Ø×Ñõ	
r»   c                ó   • U$ r½   rî   r¬  s     r¹   rí  rÕ  ­  r(  r»   c                ó   • XL $ r½   rî   r±  s     r¹   rí  rÕ  ®  rG  r»   c                óž  • U R                  US5        U R                  U5      n[        US5      (       at  [        UR                  [
        5      (       d!  [        S[        UR                  5       35      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&Expected val.training to be bool, got z-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)rJ  r  r£  r•   rì  rÊ   r&  r'  r  rÑ  rë  rÛ  rU   ÚunimplementedrÚ  s      r¹   Ú	NN_MODULEÚGuardBuilder.NN_MODULE¬  s½   € ð 	�‰�eÐDÔEØ�h‰h�u‹oˆÜ�3˜
×#Ñ#Ü˜#Ÿ,™,¬×-Ñ-Ü$Ø<¼TÀ#Ç,Á,Ó=OÐ<PÐQóð ð ×(×(à×(Ñ(¨°
¼L×<WÑ<WÕXð )ô ×ÒØGØð'Ü'+¨C£y k°ð5ð `ðór»   c                ó   • U$ r½   rî   r¬  s     r¹   rí  rÕ  È  r(  r»   c                ó   • XL $ r½   rî   r±  s     r¹   rí  rÕ  É  rG  r»   c                ó$   • U R                  U5      $ )z0things like torch.add and user defined functions)rJ  r­  s     r¹   ÚFUNCTION_MATCHÚGuardBuilder.FUNCTION_MATCHÇ  s   € ð �}‰}˜UÓ#Ð#r»   c                ó   • U$ r½   rî   r¬  s     r¹   rí  rÕ  Ñ  r(  r»   c                ó   • XL $ r½   rî   r±  s     r¹   rí  rÕ  Ò  rG  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Ü  rN  r&  r0  rI  rÚ  s      r¹   ÚCLASS_MATCHÚGuardBuilder.CLASS_MATCHÐ  sL   € ð �h‰h�u‹oˆÜ�Š˜s×#Ñ#Ü Ø—:‘:�,ÐFÐGóð ð 	×Ñ Õ&r»   c                ó   • U$ r½   rî   r¬  s     r¹   rí  rÕ  Þ  r(  r»   c                ó   • XL $ r½   rî   r±  s     r¹   rí  rÕ  ß  rG  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&  r0  rI  rÚ  s      r¹   ÚMODULE_MATCHÚGuardBuilder.MODULE_MATCHÝ  sN   € ð �h‰h�u‹oˆÜ×Ò ×$Ñ$Ü Ø—:‘:�,ÐHÐIóð ð 	×Ñ Õ&r»   c                óæ   • U R                  U5      n[        U5      [        R                  L a3  [	        US5      (       a"  U R                  US[        R                  5        gU R                  U5        g)z!matches a closure by __code__ id.rÐ   N)	r  r'  rf  rg  r£  rÑ  rë  rÛ  r÷  rÚ  s      r¹   ÚCLOSURE_MATCHÚGuardBuilder.CLOSURE_MATCHê  sW   € ð �h‰h�u‹oˆä�‹9œ×*Ñ*Ò*¬w°s¸J×/GÑ/Gð ×$Ñ$ U¨J¼×8SÑ8SÕTà×Ñ Õ&r»   c                ó   • U$ r½   rî   r¬  s     r¹   rí  rÕ  û  r(  r»   c                ó   • XL $ r½   rî   r±  s     r¹   rí  rÕ  ü  rG  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*  re   r  Úused_builtin_varsr  rØ   rI  r­  s     r¹   ÚBUILTIN_MATCHÚGuardBuilder.BUILTIN_MATCHú  s]   € ð
 ××ä˜%×2Ñ2Ô4E×FÑFØ×%Ñ%×7Ñ7×;Ñ;Ø×,Ñ,×2Ñ2ôð ×&Ñ& uÓ-Ð-r»   c                ó   • [        U5      $ r½   ©rº   r¬  s     r¹   rí  rÕ    s
   € Ô-=¸eÔ-Dr»   c                ó   • [        U 5      U:H  $ r½   r  r±  s     r¹   rí  rÕ  	  s   € Ô(8¸Ó(?À8Ò(Kr»   c                óè  • U R                  U5      nU R                  U5      n[        U5      n[        U[        5      (       d  U R                  U5        / n[        U[        5      (       a  UR                  SU SU 35        O_[        U[        5      (       a  UR                  SU SU 35        O2US:X  a  UR                  SU 35        OUR                  SU SU 35        U R                  X5        [        U[        5      (       a6  U R                  U5      R                  U[        XQ5      UR                  5        g U R                  U5      R                  U[        XQ5      UR                  5        g )Nzset.__len__(r  zfrozenset.__len__(r   znot zlen()rË  r  rº   r²   rO  rø  r³   r´  rµ   rÛ  r  Úadd_dict_length_check_guardr-  r  Úadd_length_check_guard)rä   r„  rÝ  r¸   ÚlengthrÙ   s         r¹   ÚSEQUENCE_LENGTHÚGuardBuilder.SEQUENCE_LENGTH  s=  € ð �l‰l˜5Ó!ˆØ—‘˜“ˆÜ! %Ó(ˆä˜%¤×&Ñ&à�O‰O˜EÔ"àˆÜ�eœS×!Ñ!Ø�K‰K˜, s e¨5°°Ð9Õ:Ü˜œy×)Ñ)Ø�K‰KÐ,¨S¨E°°v°hÐ?Õ@Ø�q‹[Ø�K‰K˜$˜s˜e˜Õ%à�K‰K˜$˜s˜e 5¨¨Ð1Ô2à×#Ñ# EÔ0Ü�eœT×"Ñ"Ø×"Ñ" 5Ó)×EÑEØÜ& tÓ3Ø× Ñ õð ×"Ñ" 5Ó)×@Ñ@ØÜ& tÓ3Ø× Ñ õr»   c                ó   • [        U5      $ r½   ©r�   r¬  s     r¹   rí  rÕ  /  r2  r»   c                ó   • [        U 5      U:H  $ r½   r  r±  s     r¹   rí  rÕ  0  s   € Ô(:¸5Ó(AÀXÒ(Mr»   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(r  rî  rŒ  )rË  r  r'  r´  r�   rÛ  r÷  r0  r  Úadd_tuple_iterator_length_guardr-  r  )rä   r„  rÝ  r¸   r‘  rÙ   rV  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5      $ r½   ©r™   r¬  s     r¹   rí  rÕ  F  s
   € Ô-AÀ%Ô-Hr»   c                ó   • [        U 5      U:H  $ r½   r  r±  s     r¹   rí  rÕ  G  s   € Ô(<¸UÓ(CÀxÒ(Or»   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(r  rî  rŒ  )rË  r  r'  r™   r´  rÛ  r÷  r0  r  Úadd_range_iterator_match_guardr-  r  )rä   r„  rÝ  r¸   r‘  rÙ   Únormalized_range_iterrV  ÚstartÚstopÚsteps              r¹   ÚRANGE_ITERATOR_MATCHÚ!GuardBuilder.RANGE_ITERATOR_MATCHE  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5      [        U5      4$ r½   ©r'  r˜   r¬  s     r¹   rí  rÕ  a  s   € ¬d°5«kÔ;OÐPUÓ;VÑ-Wr»   c                óR   • [        U 5      US   L =(       a    [        U 5      US   :H  $ r×  r)  r±  s     r¹   rí  rÕ  b  s*   € Ü�‹K˜8 A™;Ð&×UÔ+?ÀÓ+FÈ(ÐSTÉ+Ñ+UÐUr»   c                ó(  ^^• U R                  U5      nU R                  U5      n[        U5      m[        U5      mSUU4S jjnSU ST 3/nU R	                  X5        U R                  U5      R                  U[        XQ5      UR                  5        g )Nc                óH   >• [        U 5      TL =(       a    [        U 5      T:H  $ r½   r)  )rª  Ú
count_typeÚnormalized_count_iters    €€r¹   r´  Ú3GuardBuilder.COUNT_ITERATOR_MATCH.<locals>.guard_fnl  s(   ø€ ä�Q“˜:Ð%÷ EÜ(¨Ó+Ð/DÑDðr»   z___normalize_count_iter(r  r9  )	rË  r  r'  r˜   rÛ  r  r·  r-  r  )rä   r„  rÝ  r¸   r´  rÙ   r-  r.  s         @@r¹   ÚCOUNT_ITERATOR_MATCHÚ!GuardBuilder.COUNT_ITERATOR_MATCH`  s‘   ù€ ð �l‰l˜5Ó!ˆØ—‘˜“ˆÜ˜%“[ˆ
Ü 4°UÓ ;Ð÷	ð 	ð +¨3¨%¨uÐ5JÐ4KÐLÐMˆØ×#Ñ# EÔ0Ø×Ñ˜uÓ%×6Ñ6ØÔ,¨TÓ9¸5×;KÑ;Kõ	
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Ë  r0  r1   r  rÛ  rS   Ú#use_lamba_guard_for_object_aliasingr-  r  r´  r!   r  r‚  r  )
rä   r„  Úsource_br0  Úref_aÚref_brM  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                ó   • g r½   rî   r¬  s     r¹   rí  rÕ  «  r?  r»   c                ó
   • U S L$ r½   rî   r±  s     r¹   rí  rÕ  ¬  rS  r»   c                ó¸   • U R                  U5       S3/nU R                  X5        U R                  U5      R                  [	        X!5      UR
                  5        g )NrV  )rË  rÛ  r  rW  r-  r  ©rä   r„  rÙ   s      r¹   ÚWEAKREF_ALIVEÚGuardBuilder.WEAKREF_ALIVEª  sT   € ð
 —<‘< Ó&Ð' |Ð4Ð5ˆà×#Ñ# EÔ0Ø×Ñ˜uÓ%×8Ñ8Ü" 4Ó/°×1AÑ1Aõ	
r»   c                ó4   • [        UR                  5       5      $ r½   ©r(  rB  r¬  s     r¹   rí  rÕ  ·  s   € ¬T°%·*±*³,Ô-?r»   c                ó:   • [        U R                  5       5      U:H  $ r½   rC  r±  s     r¹   rí  rÕ  ¸  s   € ¬¨U¯Z©Z«\Ó(:¸hÒ(Fr»   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(  rB  rÛ  r  Úadd_mapping_keys_guardr  ©rä   r„  rÝ  r¸   rÙ   s        r¹   ÚMAPPING_KEYS_CHECKÚGuardBuilder.MAPPING_KEYS_CHECK¶  s{   € ð �l‰l˜5Ó!ˆØ—‘˜“ˆàˆØ�‰�e˜C˜5 ¬T°%·*±*³,Ó-?Ð,@ÐAÔBØ×#Ñ# EÔ0Ø×Ñ˜uÓ%×<Ñ<Ø˜×)Ñ)õ	
r»   c                ó>   • [        [        R                  U5      5      $ r½   ©r(  rO  rB  r¬  s     r¹   rí  rÕ  Ç  s   € ¬T´$·)±)¸EÓ2BÔ-Cr»   c                óD   • [        [        R                  U 5      5      U:H  $ r½   rK  r±  s     r¹   rí  rÕ  È  s   € ¬¬T¯Y©Y°uÓ-=Ó(>À(Ò(Jr»   c           
     ó.  • U R                  U5      nU R                  U5      nU[        R                  R                  R
                  L a;  U R                  (       a  SUl        UR                  (       d  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 sameTNrP  z)) == )rË  r  r¾   r  rK   r“  r	  Ú_force_dict_keys_matchr  r  r´  r(  r�   rÛ  rW  r*  r&  r  rG  s        r¹   ÚDICT_KEYS_MATCHÚGuardBuilder.DICT_KEYS_MATCHÆ  sß   € ð �l‰l˜5Ó!ˆØ—‘˜“ˆð ”E—K‘K×'Ñ'×7Ñ7Ò7Ø××Ø/3�Ô,Ø×/×/Ø×!Ñ! %Ô(Øà×Ñ˜UÔ#àˆð
 	�‰�o c U¨&´Ô6GÈÓ6NÓ1OÑ0RÐSÔTØ×#Ñ# EÔ0à×+Ñ+¨E×,DÑ,D×EÑEØ×-Ñ-¨eÕ;à×4Ñ4°UÕBr»   c                ó   • g r½   rî   r¬  s     r¹   rí  rÕ  ë  r?  r»   c                ó   • [        U 5      S:H  $ r  ©r¶   r±  s     r¹   rí  rÕ  ì  s   € ¬¨E«
°aªr»   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)rS   Ú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_MODEö  ó   € àr»   c                ó   • g r½   rî   r­  s     r¹   ÚDETERMINISTIC_ALGORITHMSÚ%GuardBuilder.DETERMINISTIC_ALGORITHMSû  r[  r»   c                ó   • g r½   rî   r­  s     r¹   ÚFSDP_TRAINING_STATEÚ GuardBuilder.FSDP_TRAINING_STATE   r[  r»   c                ó4  • U R                   R                  nUc  [        S5      eUR                  nX0R                   l        SU R                   R                  R                  5        3/nU R                  R                  R                  X4UR                  5        g )Núoutput_graph must not be Nonez ___check_global_state() against )
r  r  r&  Úglobal_state_guardÚglobal_stateÚ__getstate__rŽ  rþ   Úadd_global_state_guardr  )rä   r„  r  re  rÙ   s        r¹   ÚGLOBAL_STATEÚGuardBuilder.GLOBAL_STATE  sŒ   € à×,Ñ,×9Ñ9ˆØÑÜ Ð!@ÓAÐAØ#×6Ñ6ˆØ-9×ÑÔ*ð /¨t×/DÑ/D×/QÑ/Q×/^Ñ/^Ó/`Ð.aÐbð
ˆð 	×Ñ×Ñ×6Ñ6Ø × 0Ñ 0õ	
r»   c                ó0  • U R                   R                  c  [        S5      e[        U R                   R                  5      U R                   l        U R
                  R                  R                  U R                   R                  S/UR                  5        g )Nz*torch_function_mode_stack must not be Nonez$___check_torch_function_mode_stack())	r  Útorch_function_mode_stackr&  Ú$make_torch_function_mode_stack_guardÚ"torch_function_mode_stack_check_fnrŽ  rþ   Ú#add_torch_function_mode_stack_guardr  r­  s     r¹   ÚTORCH_FUNCTION_STATEÚ!GuardBuilder.TORCH_FUNCTION_STATE  s   € à× Ñ ×:Ñ:ÑBÜ Ð!MÓNÐNä0Ø×%Ñ%×?Ñ?óð 	×ÑÔ@ð
 	×Ñ×Ñ×CÑCØ×!Ñ!×;Ñ;Ø3Ð4Ø×Ñõ	
r»   c                ó†  • UR                   [        R                  La  [        SUR                    35      eU R                  R
                  c  [        S5      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._devicez!Expected GuardSource.GLOBAL, got Nrô  zutils_device.CURRENT_DEVICE == )r�  r>   ÚGLOBALr&  r  r  Úcurrent_devicerÛ  r  Úadd_default_device_guardr-  r  r?  s      r¹   ÚDEFAULT_DEVICEÚGuardBuilder.DEFAULT_DEVICE&  s¨   € ð �<‰<œ{×1Ñ1Ò1Ü Ð#DÀUÇ\Á\ÀNÐ!SÓTÐTà× Ñ ×-Ñ-Ñ5Ü Ð!QÓRÐRà-¨d×.CÑ.C×.PÑ.P×._Ñ._Ñ-bÐcð
ˆð 	×#Ñ# EÔ0à×Ñ˜uÓ%×>Ñ>Ü" 4Ó/°×1AÑ1Aõ	
r»   c                óv  ^ ^%^&^'^(• SSK Jn  UR                  S:w  a  [        SUR                  < 35      eT R                  R
                  m(T(c  [        S5      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  [        S[        T(5       35      eT(R                  c  [        S5      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  [0        R3                  S	5        Mp     [5        UU[7        UR9                  5       5      US
S9m%OS m%S$U%U&U'U(U 4S jjn[:        R<                  (       a   U" S5      u  pEnS
nOSnU" S5      u  pET(R*                  (       d  T(R                  RA                  5         T RB                  (       aŒ  [E        5       RG                  S5      nUb,  [        U[H        5      (       d  [        S[        U5       35      eUc  / O"[7        URJ                  RM                  5       5      n[O        UUUUUS9T R                  l        URP                   H  nT RS                  UU/5        M     [T        RV                  " 5       =n(       a%  URX                  R[                  URP                  5        / n/ nU(       dÛ  W(       d  [        S5      eURP                  URJ                  nnU(       d  g UR]                  5        H•  u  nn[        U[^        5      (       a  SnM  T RG                  U0 [`        E[c        5       ES9n[        U[d        5      (       a  URg                  UU45        Mi  [        U[h        5      (       a  URg                  UU45        M“  SnM—     U(       Gd´  SS K5nSSK6J7n  W(       d  [        S5      eURP                  URJ                  nn[q        UU-   5      n [s        U5       VVs/ s H!  u  nnT Ru                  [w        UU5      5      PM#     nnnSRy                  S [s        U5       5       5      n SRy                  S [s        U5       5       5      n!U (       a  SU  S3n U!(       a  SU! S3n![z        R|                  " SU  SU! SSRy                  U5       S 35      n"[~        R�                  S!U"URP                  5        URƒ                  U"5      n#UR…                  U#R†                  URˆ                  5      RŠ                  n$U$(       d  [        S"5      e [�        U[�        U5      [�        U5      U$U#URP                  UR�                  5        g URP                  (       a6  T R™                  URP                  URP                  0 [`        E[c        5       ES9  g g s  snf ! [>         a    SnU" S5      u  pE GN7f = fs  snnf ! [(        R’                  R”                  R–                   a     Nšf = f)%Nr   ©r§   r¡  zExpected empty guard name, got rc  ú Expected OutputGraphCommon, got z'output_graph.shape_env must not be Nonec                ó€   >• 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_idr9  r�  r  s      €r¹   Úget_sourcesÚ+GuardBuilder.SHAPE_ENV.<locals>.get_sourcesU  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_inputsrø  Úignore_staticÚlangs)Ú	shape_envÚproduce_guards_verboseÚfaker�  rø  Úexport)r‰  rZ  r‡  r$  r†  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_partsz,Expected None or _CppShapeGuardsHelper, got )Úpython_code_partsr  r“  Úpython_fallbackÚshape_env_sourcesz9cpp_code_parts must be set when not using python_fallback)r  )ÚCppCodeCacher‹  c              3  ó<   #   • U  H  u  nu  p#U S U S3v •  M     g7f)z = int_values[rR  Nrî   ©r?  Úir›  Úsymbols       r¹   rC  Ú)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[rR  Nrî   r™  s       r¹   rC  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 %sz'Failed to load C++ shape guard function)r}  rm  r9  rm  rð   úlist[Source])r‰  útuple[str, ...]rð   zlist[_ShapeGuardsHelper])MÚtorch._dynamo.output_graphr§   r0  r&  r  r  Úshape_code_partsr”  r  r“  r•  r²   r'  rŠ  Útracked_fakesÚsymbolic_contextÚexport_constraintsr³   r}  r{  r¾   r�  Údynamic_shapesÚ_process_equalitiesrÈ  rÉ  rH   r(  rQ  rS   Ú enable_cpp_symbolic_shape_guardsÚOverflowErrorÚfreezer	  Úlocalsr  rF   Úsource_to_symbolrB  ÚShapeCodePartsÚexprsrÛ  r8   Útry_getÚshape_env_guardsrP  r  r_   rJ   r  rm  r´  r  ÚctypesÚtorch._inductor.codecacher—  rO  r"  r‚  r.   r±  ÚtextwrapÚdedentr³  r´  Úloadr	   r„  Úc_void_pr¸   r#   r¶   r  Ú	_inductorrU   ÚInvalidCxxCompilerr½  ))rä   r„  r§   r£  r”  r  r“  r•  rZ  r~  Únamesr€  r�  r‚  rƒ  Ú
constraintrŽ  Úmaybe_cpp_code_partsÚmaybe_shape_env_sourcesrÙ   Úcompile_contextÚint_source_to_symbolÚfloat_source_to_symbolr  r­  r�  r›  rj  r²  r—  rš  Úguard_managersÚint_symbols_strÚfloat_symbols_strÚfunc_strÚclibÚcguardr‡  r$  r†  r  s)   `                                    @@@@r¹   Ú	SHAPE_ENVÚGuardBuilder.SHAPE_ENV7  s±  ü€ å@à�:‰:˜ÓÜ Ð#BÀ5Ç:Á:Á.Ð!QÓRÐRØ×,Ñ,×9Ñ9ˆØÑÜ Ð!@ÓAÐAØ× Ñ ×1Ñ1Ñ=Ø#×4Ñ4×EÑEÐØ 0× BÑ BÐØ!1×!DÑ!DÐØ×.Ñ.Ñ:Ø!1×!@Ñ!@�Ø.×>Ñ>ŠOô ˜lÐ,=×>Ñ>Ü$Ø6´t¸LÓ7IÐ6JÐKóð ð ×%Ñ%Ñ-Ü$Ð%NÓOÐOØ×'Ñ'×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Ð Ø#Ñ/¼
Ø$Ô&;÷9ñ 9ô %ØBÄ4ÐH\ÓC]ÐB^Ð_óð ð
 (Ñ/ñ äÐ.×?Ñ?×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à!ÐØ!#ÐæÞ!Ü$ØOóð ð
 ×$Ñ$à×/Ñ/ð	 )ˆ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ð +/šñ #;÷" Ûå>æ!Ü$ØOóð ð
 ×$Ñ$à×/Ñ/ð	 )ˆ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�ÞÜ(Ð)RÓSÐSð ô -Ø"ÜÐ,Ó-ÜÐ.Ó/ØØØ&×,Ñ,Ø×$Ñ$ôð ð
 ×"×"Ø×5Ñ5Ø!×'Ñ'Ø"×(Ñ(ØD¤ÐDÔ0AÓ0CÐDð 6ò ð #ùòO >øôB %ó à&*�OÙ<KØ4ó=Ñ9Ð%Ò'9ðüóH"øô` —?‘?×&Ñ&×9Ñ9ó áðús=   Ä(Y%È2Y* Ò,Z Ò:(ZÓ"DZ Ù*ZÚZÚZ Ú(Z8Ú7Z8c                ó   • [        U5      $ r½   )r�  r¬  s     r¹   rí  rÕ  B  s
   € Ô-DÀUÔ-Kr»   c                ó`   • [        U [        R                  5      =(       a    [        U 5      U:H  $ r½   )r²   r¾   r¿   r�  r±  s     r¹   rí  rÕ  C  s'   € Ü�uœeŸl™lÓ+÷ ;Ü'¨Ó.°(Ñ:ð;r»   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  [#        S[        U5       35      e[         R$                  (       a–  [        U[        R&                  R(                  5      (       am  [+        5       nUR-                  5       (       aN  UR/                  SUR1                  5       5        UR/                  SUR2                  5        UR/                  SS5        U R5                  U5      n/ nU R6                  R8                  c  [#        S5      eU R6                  R8                  R:                  (       aÈ  U R=                  U5        / SQnU H«  n	[?        UR@                  U	5      n
U	S:X  a  S	n	[C        U
5      n
U R                  U
5      n[E        U[        RF                  [        RH                  45      (       a&  URK                  S
U SU	 S[M        U5      < 35        M’  URK                  U SU	 SU 35        M­     GOŸU RO                  U5      n[         RP                  (       aC  [E        U[        R&                  R(                  5      (       do  [S        UR@                  5      (       dU  [        UR@                  [T        5      (       d6  U RV                  RK                  U5        U RX                  RK                  U5        U R6                  R8                  nURZ                  UR@                     n[]        US   5      n[]        US   5      n[_        [a        UUUUUU5      U5      nURb                  nURe                  UUUUUUUU5        [        U[        R&                  R(                  5      (       d/  U Rf                  Rh                  Rk                  URl                  5        URn                  c  [#        S5      eSn0 n/ nU H~  n[q        UU5      (       a?  [s        UU5      UU'   SU SU S[s        UU5      < SU SU S3nURK                  U5        MS  URK                  U5        SU SU S3nURK                  U5        M€     0 nSnSn[q        UU5      (       aA  U H;  n[s        UUS 5      nUU4UU'   SU SU SU< SU SU S3nURK                  U5        M=     U(       d  U(       d  U(       a7  U RO                  U5      Ru                  UUU[_        Xq5      URb                  5        [w        U5      S:”  a  U Ry                  X5        g g )NrU  Úparam_numelÚparam_bytesÚparam_countrR   rô  )rA  r  rB  Ú
ndimensionrÏ  zndimension()zstr(rž  r  rl  ÚsizerŽ  zguard.source must not be None)Ú_dynamo_dynamic_indicesÚ_dynamo_weak_dynamic_indicesÚ_dynamo_unbacked_indicesÚ_dynamo_strict_unbacked_indicesÚ_dynamo_static_indicesz
((getattr(z, 'z', set()).issubset(z)) if hasattr(z') else True)rÙ  z') == False)Ú_dynamo_shape_idsÚ_dynamo_unbacked_boundsrÓ  z', None) == z) if hasattr(r   )=rS   Ú_unsafe_skip_fsdp_module_guardsÚis_fsdp_moduler}  rJ  r²   rQ   r  r'  r¾   rÁ   rÂ   rò  ró  rE  rF  r¿   r&  Úlog_compilation_metricsrd  Ú	Parameterr7   Úin_progressÚ	incrementÚnumelÚnbytesrË  r  r  r�  rø  rX   r*  rY   r•   r  rA  r´  rñ   r  Ú,skip_no_tensor_aliasing_guards_on_parametersr3   rw   r  r  Úinput_source_to_sizes_stridesr=  r-  rJ  r  Úadd_tensor_match_guardrŽ  r  r  r0  r�  r£  rŽ  Úadd_dimension_marking_guardr¶   rÛ  )rä   r„  r¸   rE  rF  Úmetrics_contextÚtensor_namerÙ   ÚtermsÚtermÚterm_srcÚ
real_valuerŽ  r  r˜  rÐ  rŽ  r  r  Údim_marking_attrsÚexpected_attrsÚabsent_attrsrE  r·  Údependent_attrsÚdep_attr_namesÚ	gate_attrÚ
attr_values                               r¹   ÚTENSOR_MATCHÚGuardBuilder.TENSOR_MATCHA  s‘  € ô ×1×1°e×6JÑ6J×6LÑ6LØô " %×(Ñ(Ø�M‰M˜%Õ ä˜%¤×/Ñ/Ù›�à"Ñ.‘E°D·H±H¸U³OˆEä˜%“[ˆFÜ!ŸH™H×3Ñ3°EÓ:ˆMÜØ”u×(Ñ(×3Ñ3÷ñ ð —<‘<Ñ+Ø"Ÿ\™\�FØ×&Ñ&Ñ2Ø$)×$7Ñ$7�Mä˜e¤U§\¡\×2Ñ2Ü$Ð'BÄ4ÈÃ;À-Ð%PÓQÐQä×-×-´*¸UÄEÇHÁH×DVÑDV×2WÑ2WÜ"5Ó"7�Ø"×.Ñ.×0Ñ0Ø#×-Ñ-¨m¸U¿[¹[»]ÔKØ#×-Ñ-¨m¸U¿\¹\ÔJØ#×-Ñ-¨m¸QÔ?àŸ,™, uÓ-ˆKð, !ˆDØ×$Ñ$×1Ñ1Ñ9Ü$Ð%UÓVÐVØ×$Ñ$×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à�|‰|Ñ#Ü$Ð%DÓEÐEðN!Ðð 35ˆNØ&(ˆLÛ.�	Ü˜5 )×,Ñ,Ü07¸¸yÓ0I�N 9Ñ-Ø",¨[¨M¸¸Y¸KÐGZÔ[bÐchÐjsÓ[tÑZwð  xFð  GRð  FSð  SVð  W`ð  Vað  anð  !o�IØ—K‘K 	Ö*à ×'Ñ'¨	Ô2Ø"*¨;¨-°s¸9¸+À[Ð Q�IØ—K‘K 	Ö*ñ /ð MOˆOØMˆNØ2ˆIÜ�u˜i×(Ñ(Û!/�IÜ!(¨°	¸4Ó!@�JØ2<¸iÐ1H�O IÑ.Ø",¨[¨M¸¸Y¸KÀ|ÐT^ÑSaÐanÐozÐn{Ð{~ð  @Ið  Jð  JWð  !X�IØ—K‘K 	Ö*ñ	 "0ö ¦¶Ø×&Ñ& uÓ-×IÑIØ"Ø Ø#Ü*¨4Ó7Ø×$Ñ$ôô �4‹y˜1‹}Ø×+Ñ+¨EÕ8ð r»   c                óš  • [        5       nUc  [        S5      eUR                  nAUc  [        S5      eU=(       d    UR                  R                  nAXpR
                  R                  ;  a  [        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 )Nzcurrentframe() returned Nonezcaller frame must not be NonezH_produce_guard_code must be called from inside GuardedCode. Called from Ú__weakrefoffset__r   )r   r&  Úf_backrö  Úco_namerì   rþ  r0  r  ÚweakrefrÝ  r'  rŽ  r²   ÚenumÚEnumrn  Ú
ProxyTypesÚset_export_info)rä   r„  r€  rÚ  rM  Ú	cur_frameÚcallerÚ	func_namer0  Úguarded_objectÚguarded_object_typeÚobj_refÚsupports_weakrefs                r¹   rÛ  Ú#GuardBuilder._set_guard_export_info(  s;  € ô !“Nˆ	ØÑÜ Ð!?Ó@Ð@Ø×!Ñ!ˆØØ‰>Ü Ð!@ÓAÐAØ&×?¨&¯-©-×*?Ñ*?ˆ	ØàŸN™N×3Ñ3Ó3Ü ØZÐ[dÐZeÐfóð ð
 #Ñ*Ø—:‘:ˆ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  r  r  rÙ   rö  r
  rŽ  r  r  r	  r÷  r  rù  r  r  r  rü  r	  rú  r  rø  rû  )FNN)rö  útypes.CodeTyper÷  zCallable[[object, str], int]rø  zCallable[[Source], str]rù  z.Callable[[object], weakref.ref[object] | None]r  údict[str, object]r  r  rŽ  rü   r  ÚCheckFunctionManagerr	  rÊ   rü  rá  r
  ú=Callable[[Sequence[GuardFilterEntry]], Sequence[bool]] | Nonerð   ró   )rj  údict[Any, Any]r„  r;   rð   ró   )r¸   r  r„  r;   rð   ró   )rj  r   rð   rÁ  )r�  rX   rr  r   rs  r   rj  r   rt  rñ   r5  rñ   rk  re  rð   r   )r�  r?   rð   rÊ   )r�  r?   rj  zAKeysView[Any] | set[Any] | frozenset[Any] | dict[Any, Any] | Nonerð   re  )r\  re  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Á  zGuard | Sourcer  údict[str, Any] | Nonerð   r   )r„  zstr | Guardrð   rñ   )r„  r;   rE  rñ   r´  z(Callable[[GuardBuilderBase, Guard], Any]rð   ró   )r„  r;   r<  rÄ  rð   ró   )r„  r;   rð   ró   )r„  r;   rM  rñ   rð   ró   )r„  r;   rM  r:  rð   ró   )r„  r;   r+  rÄ  rð   ró   )r„  r;   r¸   úobject | Nonerð   ró   )r„  r;   r7  r?   rð   ró   )r„  r;   r¸   rÁ  rð   ró   rÀ  )
r„  r;   r€  r½  rÚ  r
  rM  rÄ  rð   ró   )Qrô   rõ   rö   r÷   r  r  r&  ri  r1  rS  rW  r  r]  rb  r‚  r  r½  r  rË  rÑ  rÔ  rà  rè  rø  r   ré  r  r  r  r   r%  r/  r<  rC  rJ  rI  rX  r`  rØ  re  rs  rƒ  r¦  rª  rœ  r­  r²  r¢  r¶  r¹  rª  rÔ  rÛ  rç  rò  r÷  rü  r  r¾  rÀ  r  r  r  r  r&  r0  r:  r@  rH  rO  rV  rY  r]  r`  rh  ro  ru  rÇ  rñ  rÛ  rø   rî   r»   r¹   rë  rë    sÞ  † ð "Ø9=àðMFàðMFð -ðMFð ,ð	MFð
 HðMFð 'ðMFð (ðMFð +ðMFð /ðMFð ðMFð 7ðMFððMFð 
õMFð^Ø+ðØ49ðà	ôô<(ðT óó ðð"]àð]ð )ð]ð  ð	]ð
 ð]ð ð]ð ð]ð -ð]ð 
ô]ô~9ð"àð"ðð"ð 
ô"ô2?ô
ô_ôBLð 26Ø ðYàðYð &ðYð /ð	Yð
 ðYð 
õYðP /3ðà'ðð ,ðð 
õ	ô&ð àðð ðð ;ð	ð
 
ôñ$ ñ
ñ Sñõ60óð60ñp ÙTÙFñð
 04ð0Øð0Ø",ð0à	ô0ó	ð0ñ> Ù8Ù?ñó
ó	ð
ñ> ñ
ññ	ó
óð
ð< "ó
ó "ð
ñ ÙSÙ9ñó0ó	ð0ñ  ÙSÙ=ñó0ó	ð0ñ  ÙSÙ9ñó0ó	ð0ñ$ ÙSÙ=ñó0ó	ð0ñ$ Ù2Ù9ñóó	ðñ$ ÙFÙLñó
ó	ð
ñ  Ù1Ù5ñó
ó	ð
ñ Ù2Ù9ñõ>ó	ð>ð :>ð ?Øð ?Ø,6ð ?à	õ ?ñD Ù1Ù9ñõ

ó	ð

ñ Ù=ÙDñó
ó	ð
ð ó
ó ð
ð ó
ó ð
ð* ó
ó ð
ñ8 Ø1Ø'ñó-
ó	ð-
ñ^ Ø,Ø"ñó
ó	ð
ñ Ø*Ø ñó
ó	ð
ñ& Ù2Ù9ñõoó	ðoñb Ù2Ù9ñó	%ó	ð	%ñ ÙQññó
!
óð
!
ñF Ù2Ù9ñóó	ðñ. Ù2Ù9ñó$ó	ð$ñ
 Ù2Ù9ñó'ó	ð'ñ Ù2Ù9ñó'ó	ð'ñ Ø'Øñó
'ó	ð
'ñ Ù2Ù9ñó.ó	ð.ñ ÙDÙKñó!ó	ð!ñF ÙFÙMñó
ó	ð
ñ& ÙHÙOñó
ó	ð
ñ. ÙWñ
ñó
óð
ð* ó,ó ð,ñ\ Ù1Ù9ñó
ó	ð
ñ Ù?ÙFñó

ó	ð

ñ ÙCÙJñóCó	ðCñ@ Ù1Ù7ñó$ó	ð$ð óó ðð óó ðð óó ðð ó
ó ð
ð  ó
ó ð
ð ó
ó ð
ð  óGó ðGñR ÙKñ
ñõ]9óð]9ðH 26Ø)-ð4
àð4
ð ð4
ð "/ð	4
ð
 'ð4
ð 
÷4
ð 4
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)ÚPyExprCSEPassip  rR   c                  ó*   • \ rS rSr% S\S'   S\S'   Srg)ÚPyExprCSEPass.Configix  zdict[str, int]Ú
expr_countzdict[str, str]Úexpr_to_namerî   Nr�  rî   r»   r¹   ÚConfigr  x  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ä   rS   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  )rS   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ä   rS   Ú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"  )rS   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Ö   )r1  )rä   rå   r0  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  r5  r!  r  r8  r"  r  )rä   r)  ÚreplacerÚnew_nodes       r¹   r  ÚPyExprCSEPass.replace¿  sF   € Ø—=‘= §¡¨t¯}©}Ó=ˆØ—>‘>¤#§)¢)¨D£/Ó2ˆØ×Ñ¤¨hÓ!7Ð7Ð7r»   )r  r1  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  r5  r?  r  rø   rî   r»   r¹   r  r  p  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*  rd   rS   Ú guard_nn_modules_using_dict_tagsrÇ  rë  rò  )r„  s    r¹   Úmust_add_nn_module_guardsrP  Å  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¹   r9  Ú6DeletedGuardManagerWrapper.populate_diff_guard_managerØ  s
   € Ø#ˆÕr»   )r   rT  )rU  rñ   rð   ró   rÃ  )rô   rõ   rö   r÷   r  r9  rø   rù   rú   s   @r¹   rR  rR  Ó  s   ø† ÷*÷$ò $r»   rR  c                  óH   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   Srg)r®  iÜ  rG   r”  r  z_CppShapeGuardsHelper | Noner“  rÊ   r•  r   r–  rî   Nr�  rî   r»   r¹   r®  r®  Ü  s    ‡ à)Ó)Ø*Ó*Ø0Ó0ØÓØ#Ö#r»   r®  c                  ó8   • \ rS rSr% S\S'   S\S'   SrS\S'   S	rg)
ÚGuardsStateiå  r¨   r  úShapeCodeParts | Noner£  NrÁ  r  rî   )rô   rõ   rö   r÷   rÒ   r  rø   rî   r»   r¹   r[  r[  å  s   ‡ à(Ó(Ø+Ó+Ø"€K�Ö"r»   r[  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½   ©Ú_reason)rä   rU  s     r¹   r  Ú_Missing.__init__í  s   € Ø�r»   c                ó"   • SU R                    S3$ ©Nz	_Missing(rŒ  r`  rã   s    r¹   r  Ú_Missing.__repr__ð  ó   € Ø˜4Ÿ<™<˜.¨Ð*Ð*r»   c                ó"   • SU R                    S3$ rd  r`  rã   s    r¹   r¥  Ú_Missing.__str__ó  rf  r»   c                ó   • [        5       $ r½   )r^  )rä   r  Úkwargss      r¹   Ú__call__Ú_Missing.__call__ø  s
   € Ü‹zÐr»   r`  r½   )rU  rÄ  rð   ró   rï   )r  r   rj  r   rð   r   )	rô   rõ   rö   r÷   r  r  r¥  rk  rø   rî   r»   r¹   r^  r^  ì  s   † öô+ô+÷
r»   r^  c                 óÎ   • [         R                  R                  [        R                  4n  U [         R                  R
                  R                  4-  n U $ ! [         a     U $ f = fr½   )r¾   rÁ   rÄ  r÷  r   Ú_distributed_c10dÚProcessGroupÚAttributeError)rÃ  s    r¹   Ú_get_unsupported_typesrq  ü  sa   € ô 	�‰�‰Ü×Ñð€CðØ”—‘×*Ñ*×7Ñ7Ð9Ñ9ˆð €Jøô ó ØØ€Jðús   ¬(A Á
A$Á#A$c                  óJ  ^ • \ 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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¾   rò  ÚFakeTensorModeÚ	fake_modeÚfake_tensorÚFakeTensorConverterÚtensor_converterr  Úempty_valuesÚmissing_values)rä   r  rz  r{  r  rj  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¾   rò  ru  rw  rx  Úfrom_meta_and_devicerÁ   r¦   Úfrom_raw_reprÚgrad)	r   Úmeta_tensorr  rE  Údispatch_keys_rawr†  rv  ry  rÃ  s	            r¹   Ú_unpickle_tensorÚ#GuardsStatePickler._unpickle_tensor   st   € ô ×%Ñ%×4Ñ4Ó6ˆ	Ü ×,Ñ,×8Ñ8×LÑLÓNÐØ×3Ñ3ØØØØÜ�H‰H×#Ñ#×1Ñ1Ð2CÓDó
ˆð ŒØˆ
r»   c                óÞ   • [        U5      nUR                  UR                  5       p˜UR                  XuX‰5      n
X:l        [
        R                  R                  R                  U5      U
l	        U
$ r½   )
rO  r�  rŽ  Ú__tensor_unflatten__rE  r¾   rÁ   r¦   r…  rF  )r   r‡  r  rE  rˆ  ÚctxÚ
inner_dataÚinner_tensorsÚ
outer_sizeÚouter_strider¦  s              r¹   Ú$_unpickle_traceable_wrapper_subclassÚ7GuardsStatePickler._unpickle_traceable_wrapper_subclass5  se   € ô ˜ZÓ(ˆà#.×#4Ñ#4°k×6HÑ6HÓ6J�Lð ×)Ñ)Ø 
ó
ˆð Œ
Ü!Ÿ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_moduleN  s   € ä×&Ò& uÓ-Ð-r»   c                óT   • [         R                  R                  R                  U5      $ r½   )r¾   rÁ   r¦   r…  )r   r\  s     r¹   Ú_unpickle_dispatch_key_setÚ-GuardsStatePickler._unpickle_dispatch_key_setR  s   € ä�x‰x×&Ñ&×4Ñ4°XÓ>Ð>r»   c                óh   • [         R                  R                  R                  R	                  U5      $ r½   )r¾   rÁ   rn  ÚCInterpreterÚdeserialize)r   Újsons     r¹   Ú_unpickle_functorch_interpreterÚ2GuardsStatePickler._unpickle_functorch_interpreterV  s%   € ô �x‰x×"Ñ"×/Ñ/×;Ñ;¸DÓAÐAr»   c                ó.   • [         R                  " U5      $ r½   )rf  ÚMappingProxyType)r   r|  s     r¹   Ú_unpickle_mapping_proxyÚ*GuardsStatePickler._unpickle_mapping_proxy\  s   € ô ×%Ò% aÓ(Ð(r»   c                óH   • [         R                  U5      R                  5       $ r½   )rO  ÚfromkeysrB  )r   Úelemss     r¹   Ú_unpickle_dict_keysÚ&GuardsStatePickler._unpickle_dict_keysb  s   € ä�}‰}˜UÓ#×(Ñ(Ó*Ð*r»   c                ó.   • [         R                  " X5      $ r½   )Ú	itertoolsr?  )r   ry  r%  s      r¹   Ú_unpickle_count_iterÚ'GuardsStatePickler._unpickle_count_iterf  s   € ä�Š˜tÓ*Ð*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_typej  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  r~  )r   r  ÚtyÚddps       r¹   Ú_unpickle_ddp_moduleÚ'GuardsStatePickler._unpickle_ddp_moduler  sA   € ô �X‰X×Ñ×6Ñ6ˆØ�j‰j˜‹nˆÜ�‰�‰×$Ñ$ SÔ0Øˆ
r»   c                óJ   • [        [        R                  R                  U5      $ r½   )rŽ  r¾   ÚopsrÁ   )r   r0  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   Úfuncr2  s      r¹   Ú_unpickle_bound_methodÚ)GuardsStatePickler._unpickle_bound_methodƒ  s   € ä×Ò Ó+Ð+r»   c                ó^   • [        [        R                  R                  R                  U 5      $ r½   )rŽ  r¾   rd  Ú	attentionÚ
SDPBackend©r0  s    r¹   Ú_unpickle_sdp_backendÚ(GuardsStatePickler._unpickle_sdp_backend‡  s!   € ô ”u—x‘x×)Ñ)×4Ñ4°dÓ;Ð;r»   c                ób   ^• SU4S jjnUR                   c  [        S5      eUR                   S   $ )Nc                 ó   >• T $ r½   rî   )rÞ  s   €r¹   r›  Ú,GuardsStatePickler._unpickle_cell.<locals>._Ž  s   ø€ ØˆJr»   z-Closure must not be None when unpickling cellr   )rð   r   )rÑ   r&  )r   rÞ  r›  s    ` r¹   Ú_unpickle_cellÚ!GuardsStatePickler._unpickle_cellŒ  s/   ø€ ÷	ð �=‰=Ñ Ü Ð!PÓQÐQØ�}‰}˜QÑÐr»   c                ó.   • [         R                  " X5      $ r½   )r  Ú
namedtuple)r   r0  Ú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  rþ  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 HV  n[+        X5      n	[        U	[        R                  5      (       a  X�R&                  [        U	5      '   UR-                  X‰45        MX     [        U 5      R.                  [        R0                  " USS9UR                   [        U5      [        R2                  R5                  U5      R7                  5       UU44$ [        U5      n
[        U[        R8                  R:                  5      (       a)  UR<                  b  UR<                  O[        R                  n
[        U 5      R>                  [        R0                  " USUR@                  S9UR                   U
[        R2                  R5                  U5      R7                  5       URB                  44$ [        U[        RD                  RF                  5      (       Ga°  [        U5      U R&                  ;  a  [        S	4$ URH                  RK                  5        H‚  n[        U[        R                  [        RD                  RF                  45      (       a  M>  [        U5      U R&                  ;   a  MY  [M        U5      (       a  Mk  X€R                  [        U5      '   M„     [        U[        RD                  RN                  RP                  5      (       a&  [        U 5      RR                  URU                  5       44$ [        U5      RV                  [        U5      RX                  :X  a  [Z        $ UR\                  RT                  [        RD                  RF                  RT                  :X  a&  [        U 5      R^                  URU                  5       44$ GO[
        R`                  " U5      (       a"  [        U 5      Rb                  URX                  44$ [        U[        R2                  Rd                  5      (       a&  [        U 5      Rf                  UR7                  5       44$ [        U[        R2                  Rh                  Rj                  5      (       a&  [        U 5      Rl                  URo                  5       44$ [
        Rp                  " U5      (       ad  [s        XRt                  5      (       aJ  [w        US
5      (       a9  [w        US5      (       d  [y        SU S35      eURz                  UR|                  44$ [
        Rp                  " U5      (       am  [s        U[~        5      (       aX  [w        US5      (       aG  URV                  URX                  :w  a-  [        U 5      R€                  URX                  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5      [’        L a9  [•        U5      u  p¼U[Z        La!  U[Z        La  [        U 5      R–                  X¼44$ GOK[        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RX                  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\                  RX                  S:X  a  [        S4$ [        U[¹        5       5      (       a  [        S4$ [
        Rº                  " U5      (       aÔ  SURV                  ;   aN  [        U 5      R¼                  UR¾                  UR¶                  URV                  URÀ                  URÂ                  44$ UR¶                  [Ä        RÆ                  ;   aW  [Ä        RÆ                  UR¶                     nURV                  RÉ                  S5       H  n[+        XÞS 5      nM     XÑLa  [        S4$ Oß[
        RÊ                  " U5      (       at  URÌ                  nURÎ                  n[+        UURX                  5      n[
        RÊ                  " U5      (       a  URÌ                  nUULa  [        U 5      RÐ                  UU44$ OP[        U[        S " S5      RÂ                  S   5      5      (       a"  [        U 5      RÒ                  URÔ                  44$ [w        [        RÖ                  S5      (       aT  [        U[        RÖ                  RØ                  RÚ                  5      (       a!  [        U5      U R&                  ;  a  [        S4$ [        U[        RD                  RÜ                  RÞ                  5      (       a"  [        U 5      Rà                  URâ                  44$ [        U5      RV                  [        U5      RX                  :w  aT  [        U[~        5      (       d?  [        R˜                  Rä                  Rç                  S[        U5       SU S3S -   S!-   5      e[
        Rp                  " U5      (       Ga:  [w        [        RÖ                  S"5      (       Ga  [s        U[        RÖ                  Rè                  Rê                  Rì                  5      (       aÝ  U[        RÖ                  Rè                  Rê                  Rì                  La¬  URî                  S#   n[s        U[        RD                  RF                  5      (       d  [y        S$U 35      eU[        RÖ                  Rè                  Rê                  Rê                  Rñ                  5       ;  a  [y        U S%35      e[        U 5      Rò                  U44$ [Z        $ )&Nr   r©   )zmissing valuesÚmeta)Úis_traceable_wrapper_subclass)ztensor guard tree)r  )r  rB  )zmodule guard treeÚ_torch_handler_nameÚ_torch_unpicklerzsympy Function subclass z% must have _torch_unpickler attributerø  zCannot serialize SymInt z (node: rŒ  z_C::rý  Ú	PyCapsule)Úcapsule)Úunsupportedz<locals>rž  )zfqn mismatchc                ó   ^ • U 4S j$ )Nc                 ó   >• T $ r½   rî   rù  s   €r¹   rí  ÚGGuardsStatePickler.reducer_override.<locals>.<lambda>.<locals>.<lambda>\  s   ø€ ±Qr»   rî   rù  s   `r¹   rí  Ú5GuardsStatePickler.reducer_override.<locals>.<lambda>\  s   ø€ ­Yr»   Údistributed_c10d)zdistributed_c10d.WorkrU  rV  rW  rX  rY  r¯  rƒ  z!Expected nn.Module subclass, got z* not found in FSDP cls-to-fsdp-cls mapping)zÚsympyr½  rz  r'  r¸  rÜ  ÚiscoderÜ  rª   rß  Úfrom_code_objectr{  r^  r²   r¾   r¿   r  Útorch.utils._python_dispatchré  r  r¤  rŽ  r´  r’  Ú
empty_likerÁ   rÂ   r\  rò  ró  rE  r‰  rB  r†  rd  re  rþ  rQ  r—  r¶  r·  r»  rf  rö   rô   ÚNotImplementedrì   r�  r  r–  r¦   r™  rn  rœ  rŸ  Ú	serializerN  rM  ÚFunctionr£  r&  rë  rê  rn  rÙ  rø  r7  r�  r  rf  r¢  r£  rÿ  Ú_COUNT_ITERATOR_TYPEr˜   r¬  rØ  r  r�   r¨  r(  Ú_opsÚOpOverloadPacketÚ_qualified_op_nameÚ
startswithr¿  Ú
OpOverloadrÅ  rÂ  Ú_opnameÚ_overloadnamerõ   rq  Ú
isfunctionrå  rÐ   rÎ   rÑ   r,  Úmodulesr²  ÚismethodrÓ   Ú__self__rÉ  rÔ  r^  rÇ  ró  ÚWorkrÌ  rÍ  rÏ  r0  rU   ÚPackageErrorr¯  r°  Ú
FSDPModulerÔ   r±  r³  )rä   r[  rô  rª   ré  rŽ  Úattrsr�  r<  ÚinnerrE  ry  r%  Úfr0  rÈ  Úmethod_selfÚ
inner_funcr²  s                      r¹   Úreducer_overrideÚ#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Ø×%Ñ% t mÖ4ñ	 "ô ˜D“z×FÑFÜ×$Ò$ S°Ñ8Ø—J‘JÜ˜“IÜ—H‘H×+Ñ+¨CÓ0×9Ñ9Ó;ØØðIð ð ô ˜#“YˆFÜØ”U×&Ñ&×1Ñ1÷ñ ð (+§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Ü$Ø.¨s¨eÐ3XÐYóð ð ×'Ñ'¨#×*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ä�#‹YÔ.Ò.Ü-¨cÓ2‰JˆDØœ>Ò)¨d¼.Ò.HÜ˜D“z×6Ñ6¸¸Ð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Ü  ¨d¯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Ü(Ø;¸M¸?ÐKóð ð "Ü ×,Ñ,×1Ñ1×>Ñ>×KÑK×_Ñ_Óaóbô )Ø(˜/Ð)SÐTóð ô ˜D“z×<Ñ<¸}Ð>NÐNÐNäÐr»   )rz  rv  r  r{  ry  )r  údict[int, Any]rz  r  r{  r  r  r   rj  r   rð   ró   )r  r   rð   ztorch.nn.Module)r‡  útorch.Tensorr  útorch.devicerE  r'  rˆ  rm  r†  r  rð   r  )r‡  r  r  r  rE  r'  rˆ  rm  r�  r   rŽ  zlist[tuple[str, Any]]rð   r  )r•  rñ   rð   ztypes.ModuleType)r\  rm  rð   ztorch._C.DispatchKeySet)rž  Úbytesrð   z torch._C._functorch.CInterpreter)r|  r  rð   z types.MappingProxyType[Any, Any])r§  z	list[Any]rð   r   )ry  rm  r%  rm  rð   zitertools.count[int])r²  útype[torch.nn.Module]rð   r  )r  zdict[str, Any]rð   z)torch.nn.parallel.DistributedDataParallel)r0  rñ   rð   r   )rÂ  rñ   rÃ  rñ   rÄ  rñ   rð   r   )rÈ  r   r2  r   rð   r   )r0  rñ   rð   ztorch.nn.attention.SDPBackend)rÞ  r   rð   r   )r0  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)r[  r   rð   z0tuple[Callable[..., Any], tuple[Any, ...]] | Any)rô   rõ   rö   r÷   r  rj  r�  r‰  r’  r–  r™  rŸ  r£  r¨  r¬  r³  r»  r¿  rÅ  rÉ  ri  rÏ  rÔ  rÙ  rß  rå  r  rø   rù   rú   s   @r¹   rs  rs  
  sú  ø† ð-à)ð-ð %ð-ð 'ð	-ð
 ð-ð ð-ð 
÷-ð óó ðð
 ðà!ðð ðð ð	ð
 ðð ðð 
óó ðð( ðà!ðð ðð ð	ð
 ðð ðð *ðð 
óó ðð0 ó.ó ð.ð ó?ó ð?ð ðBØðBà	)óBó ðBð
 ð)Øð)à	)ó)ó ð)ð
 ó+ó ð+ð ó+ó ð+ð ð
Ø1ð
à	ó
ó ð
ð ðØ"ðà	2óó ðð ó+ó ð+ð óUó ðUð ó,ó ð,ð ó<ó ð<ð ó ó ð ð ð4Øð4Ø /ð4à	ó4ó ð4ð ó>ó ð>ð
 ð	Oàð	Oð ð	Oð ð		Oð
 +ð	Oð 3ð	Oð 
ó	Oó ð	OðTØðTà	9÷Tò Tr»   rs  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î   )r0  Ú	has_valuer¸   Ú
guard_typeÚderived_guard_typesÚ	is_globalÚ
orig_guard)
r:  Ústrip_local_scoper0  r  r,   r*  r‹   Úcreate_fn_nameÚguard_typesrn  )r„  ÚbuilderÚMISSINGr0  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½  r'  r¸  rs  rF  r¾   ÚcompilerÚkeep_portable_guards_unsafer­   r"  r³   r  r  Údumprp  rØ  rU   r	  rñ   r¤  )r  r   Úbufrz  r{  r  ÚleavesÚleafr2  Úpicklerr„  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           
     óÊ
  ^ ^^• U(       a  UR                   OS n0 T l        [        U=(       d    / 5      nUT l        T R                  c  [	        S5      eUT l        U(       a  UR                  OS T l        [        5       T l        [        5       T l	        [        5       T l
        U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[.        R0                  S9n[$        R2                  R5                  5          U(       aÄ  T R7                  UUUUS5      u  pïU" U Vs/ s H  n[9        UU5      PM     sn5      n[;        U5      [;        U5      :w  a$  [	        S	[;        U5       S
[;        U5       S35      e[=        S U 5       5      (       d  [	        S5      e[?        U5       VVs/ s H  u  nnUU   (       d  M  UPM     nnnT R7                  UUUUUUS9u  pïUT l         T RC                  XíU5        S S S 5        WRD                  T R@                  l"        [F        RI                  ST R@                  5        URD                  T R@                  l"        SmURJ                  (       Gd+  URL                  (       Gd  [$        RN                  RQ                  5       (       dö  T R@                  RS                  URT                  5      (       dA  [W        T R@                  URT                  [X        RZ                  " 5       S S9n[	        SU 35      e[\        b!  []        T R@                  URT                  U5        [_        T R@                  R`                  URT                  S5      m[F        RI                  STS 5        [b        Rd                  " S[g        T5      5        S T l4        U(       ad  SSK5J6n  [o        T R                  U5      (       d!  [	        S[q        T R                  5       35      e T Rs                  XíT R                  5      T l4        [$        R„                  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 ! , (       d  f       GNf= f! [t        Rv                   a„  n[$        R&                  R(                  Rx                  (       d  U	(       a  UeT R                  R{                  S[}        U5       3[~        R€                  " 5       Rƒ                  S5      S9   S nANõS nAff = f)!Nrc  rõ  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)rJ  r  r@  r  rJ  r  z7%s guard on %s is dropped with caching_precompile=True.T)rG  r´  r  r  rÈ  rÉ  r  r0  )r­   rÃ  Úkeepr3  Ú_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î   )rM  Fzfilter_results length (z) != sorted_guards length (rŒ  c              3  óD   #   • U  H  n[        U5      [        L v •  M     g 7fr½   )r'  rÊ   )r?  rª  s     r¹   rC  Ú0CheckFunctionManager.__init__.<locals>.<genexpr>8  s   é € ÐC²N¨qœ4 ›7¤d�?²Nùs   ‚ z'All filter_results entries must be bool)r
  ú%sg        )ÚbackendziGuard failed on the same frame it was created. This is a bug - please create an issue.Guard fail reason: rR   zGuard eval latency = %s usú.2fÚguard_latency_usr   rx  ry  zGuard evaluation failed: r  )Ú	tracebackÚdynamo_cpp_guards_strc                 ó*   >• TR                    ST S S3$ )Nz
Guard latency = r=  z us)rŽ  )Úlatencyrä   s   €€r¹   rí  r4  £  s   ø€  $×"4Ñ"4Ð!5Ð5GÈÐPSÀ}ÐTWÑXr»   ©Ú
payload_fn)r­   zSequence[GuardFilterEntry]rð   zSequence[bool])Er­   Ú	_weakrefsÚ5update_diff_guard_managers_for_existing_cache_entriesr  r&  r£  rk  rN   r
  r4  r5  rü  Úguard_build_local_statere  rm  rE   rÈ  rÉ  r¾   rØ  rS   Úcaching_precompiler  r;   Úsort_keyrÁ   ÚDisableTorchFunctionÚbuild_guardsr"  r¶   rF  r"  rŽ  Úcompile_check_fnr	  r³  r´  Úskip_guards_checkr�  r'  Ú_is_non_strict_tracingr¨  r  Úget_guard_fail_reason_helperr8   r›  r    r%   rþ   r6   Úincrement_toplevelrm  Úguards_stater¢  r§   r²   r'  Úserialize_guardsrU   r	  Ústrict_precompileÚbypass_packagerñ   r?  Ú
format_excr²  Ú_loggingÚtrace_structuredÚclear)rä   rö  r  Úcache_entriesr  r
  r£  rü  r	  Ústrict_errorrG  r­   Úexisting_diff_guard_sourcesÚsorted_guardsr   rŽ  r„  Úfilter_resultsrš  Úreasonsr§   r=  r7  rB  s   `                     @@r¹   r  ÚCheckFunctionManager.__init__Õ  sÁ  ú€ ö )5�×$Ò$¸$ˆØ;=ˆŒô BÀ-×BUÐSUÓVð 	$ð 7CˆÔØ×ÑÑ$Ü Ð!@ÓAÐAð !1ˆÔö
 7CˆL×2Ò2Èð 	Ô&ô 3=³,ˆÔÜ;E»<ˆÔ'Ü<F»LˆÔ(Ø$8ˆÔ!Ø'>ˆÔ$ØMQˆÔØMQˆÔ/äÐB×CÑCÜ�K‰KÐSÔTô �=‰=×Ñ×2×2Ø.×QÑ3PÐ÷ô4 ˜vŸ|¨´·±Ñ@ˆô �X‰X×*Ñ*Õ,Þð *.×):Ñ):Ø!Ø/ØØ Øó*Ñ&�ñ "1ÙJWÓXÊ-ÀÔ,¨U°GÖ<É-ÑXó"�ô �~Ó&¬#¨mÓ*<Ó<Ü(Ø1´#°nÓ2EÐ1Fð G1Ü14°]Ó1CÐ0DÀAðGóð ô ÑC±NÓC×CÑCÜ(Ð)RÓSÐSä*3°MÔ*Bô!Ú*B™h˜a ÀnÐUVÕFW—EÑ*Bð ñ !ð
 &*×%6Ñ%6ØØ+ØØØØ /ð &7ð &Ñ"ˆGð "/ˆDÔØ×!Ñ! '¸-ÔH÷K -ð^ .5×-DÑ-Dˆ×ÑÔ*ä×Ñ˜˜t×1Ñ1Ô2Ø-4×-DÑ-Dˆ×ÑÔ*ð ˆð ×.×.Ð.Ø ×'×'Ð'Ü—N‘N×9Ñ9×;Ñ;à×%Ñ%×+Ñ+¨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à*.ˆÔÞÝDä˜d×/Ñ/Ð1B×CÑCÜ$Ø6´t¸D×<MÑ<MÓ7NÐ6OÐPóð ð
Ø$(×$9Ñ$9Ø¨D×,=Ñ,=ó%�Ô!ô 	�‰×'Ñ'Ø#ÝXð 	(ñ 	
ð 	�‰×ÑÔØ ˆÕùò{ Yùó!÷- -Ö,ûôh ×#Ñ#ó Ü—=‘=×'Ñ'×9×9¾\Ø�GØ×!Ñ!×0Ñ0Ø/´°A³¨xÐ8Ü'×2Ò2Ó4×:Ñ:¸4Ó@ð 1ö ûðúsJ   Å%R8ÆR-
ÆA3R8ÈR2È!R2È'2R8Ñ!S
 Ò-R8Ò8
SÓ
U"ÓA:UÕU")r  rò  rJ  r÷  rü  r  r  r@  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 Hw  n[!        UR"                  [$        5      (       aC  U R&                  (       d  [)        S5      eU R&                  R*                   H  nU	" U5        M     Me  U	" UR"                  5        My     UR,                   H  nU	" U5        M     SS jmU
R.                  R1                  5        VVs0 s H  u  pÍUT;   d  XÀR2                  ;   d  M  XÍ_M      nnnU
R.                  T   R1                  5        VVs0 s H  u  pÍXÀR4                  ;   d  M  XÍ_M     snnUT'   [6        R8                  " U
U
R:                  R1                  5        VVs0 s H  u  pÍUT;   d  XÀR<                  ;   d  M  XÍ_M      snnU[        R>                  RA                  [C        U4S	 jU 5       5      5      [D        RF                  " [H        U
RJ                  5      S
S9n
[M        U
U R&                  U RN                  RP                  RS                  5       S9n[U        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  r`  )r?  rš  s     r¹   rC  Ú8CheckFunctionManager.serialize_guards.<locals>.<genexpr>Ó  s(   é € ð â0˜ØÔ0×VÑVÑV÷ ‘AÚ0ùs   ‚'ž	'r¡  c                óT  >• [        U 5      =n(       aE  [        U[        5      (       d  [        S[	        U5       35      eUT:w  a  TR                  U5        g g [        U 5      =n(       a>  [        U[        5      (       d  [        S[	        U5       35      eTR                  U5        g g )NzExpected str, got )r,   r²   rñ   r&  r'  r  r-   )r�  r0  Úbuiltins_dict_nameÚused_global_varsÚused_local_varss     €€€r¹   Úprune_variableÚ=CheckFunctionManager.serialize_guards.<locals>.prune_variableã  sœ   ø€ Ü-¨fÓ5Ð5ˆtÕ5Ü! $¬×,Ñ,Ü(Ð+=¼dÀ4»j¸\Ð)JÓKÐKð Ð-Ó-Ø$×(Ñ(¨Õ.ð .ä.¨vÓ6Ð6�Õ6Ü! $¬×,Ñ,Ü(Ð+=¼dÀ4»j¸\Ð)JÓKÐKØ×#Ñ# DÕ)ð 7r»   z6shape_code_parts must be set for ShapeEnvSource guardsc                ó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²   rQ   r÷  rÝ  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?  rZ  rl  s     €r¹   rC  ÚUCheckFunctionManager.serialize_guards.<locals>.normalize_create_fn.<locals>.<genexpr>	  s   øé € Ð 9²&¨Q¡ a§ ²&ùs   ƒ)rª  r   rð   r   )r²   rÈ  rÉ  rn  r  rÊ  r  rÈ  )rª  Únew_argsÚkÚvÚnew_keywordsrl  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Ç  )rJ  r  rÇ  )r?  r„  rt  s     €r¹   rC  rc  %  s<   øé € ð ò "/˜ô  ×'Ò'ØØ$(Ø.2Ù"5°e·o±oÓ"Fö	ò "/ùs   ƒ47T)r  r  Ú_guardsrá  rM  )r  r£  r  )r�  r?   rð   ró   )rª  úCallable[..., None]rð   rz  )+r  r  rn  rô  r  r\  r  r`  r¾   rØ  rU   r	  ÚnextÚ%name_of_builtins_dict_key_in_fglobalsr³   Údump_guards_stater²   r*  rz   r£  r&  r–  r  r  r  r5  r
  rJ  r  r  r4  ry  Ú	GuardsSetrN   r‘  Útree_mapr:  rá  r[  rŽ  rþ   Úget_local_stater.  )rä   r   r\  r  r„  r  r  r[  Úfailedrh  Úoutput_graph_guards_stater�  rq  rr  Úglobal_scope_staterQ  re  rt  rf  rg  s                   @@@@r¹   rR  Ú%CheckFunctionManager.serialize_guards»  sO  û€ ó #ˆ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Ø×,×,Ü(ØPóð ð #×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Ø×*Ñ*×/Ñ/×?Ñ?ÓAñ
ˆô # <Ó9Ð9ùóY
ùó
2
ùós$   È M ÈM ÉM&É!M&ÊM,Ê;M,c                ój  ^• [        U R                  S9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 H…  nS Ul        S Ul        U(       d\  UR!                  5       (       aG  SUR"                  ;  a7  SUR"                  ;  a'  [        R$                  (       d  SUR"                  ;  a  Mt  UR'                  U	5        M‡     X—4$ )N)r  c                óÞ   >• U R                   nU[        R                  L a  U R                  $ T(       d  [	        S5      eT" 5       nUc  [	        S5      eUR                  U R                  5      $ )Nz/w_builder must be set before calling source_refz'GuardBuilder has been garbage collected)Úguard_sourcer>   ÚCONSTANTr0  r&  rË  )r�  r‡  Ú	r_builderÚ	w_builders      €r¹   rø  Ú5CheckFunctionManager.build_guards.<locals>.source_refL  sc   ø€ Ø!×.Ñ.ˆLØœ{×3Ñ3Ò3à—{‘{Ð"ÞÜ$Ð%VÓWÐWÙ!›ˆIØÑ Ü$Ð%NÓOÐOØ×$Ñ$ V§[¡[Ó1Ð1r»   )rü  r
  c                ó0   • U " 5       nU(       a  S Ul         g g r½   )rú  )Úweak_brì  s     r¹   Úcleanup_builderÚ:CheckFunctionManager.build_guards.<locals>.cleanup_builderg  s   € Ù“ˆAÞØ�•ð r»   rõ  rÎ   rÏ   rx  )r�  r?   rð   rñ   )r�  zweakref.ref[GuardBuilder]rð   ró   )rü   rG  r  rë  r÷  rù  r  r  rü  r÷  rÝ  rS   r  rE   r  r€  r{  r0  rU  rÎ  )rä   r\  r[  rö  r  r	  r
  rŽ  rø  r   rŽ  Úguard_on_nn_modulesr„  rŠ  s                @r¹   rK  Ú!CheckFunctionManager.build_guards=  s  ø€ ô ,¸×8TÑ8TÑUˆØ+FÔ(àˆ	÷
	2ô ØØ�K‰KØØ× Ñ Ø×$Ñ$Ø×%Ñ%ØØØØ!%×!:Ñ!:Ø+ñ
ˆô	ô —K’K Ó9ˆ	ä$×5Ñ5÷ 
¼/Ø/ó;
Ðó #ˆEð !%ˆEÔØ"ˆEŒOö (Ø×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:w  a  [q        S[!        T5       S35      eUU R                  l9        X@R                  l:        U R                  Rw                  5         TU R                  l<        UU R                  l=        X0R                  l>        S U R                  l?        S U R                  l@        X�R                  lA        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!  rD   Úfrom_tracebackr"  r  )r·  r„  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·  r„  Ú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»   TrR   zcheck_no_aliasing(r‹  rŒ  r3  zcheck_overlapping(overlapping=[c              3  ó8   #   • U  H  oR                   v •  M     g 7fr½   rÎ  ©r?  r’  s     r¹   rC  Ú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¹   rC  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>1  s   ø€ ÑBVÓ4WÒBV¸Q°Q¶SÑBVÒ4WùÒ4Ws   †rC  r¨  )Ú___check_tensorsÚ___check_tensors_verboseÚ___check_global_stateÚ"___check_torch_function_mode_stackrï  r   z,Expected all code_parts to be consumed, but z remainrò   )r·  rñ   r„  úGuard | Nonerœ  rÊ   rð   ró   )Br  r³  r´  rŽ  rþ   Úattach_compile_idrñ   r8   r›  rk  r³   rÙ   r€  r„  r  r  r¶   r    r  r±  rS   r6  r  rw  r(  rG  r½  r  Úaotautograd_guardsr²   r:   Úinput_source_aÚinput_source_br0  r!   r‚  r@   Úoverlapping_sourcesÚnon_overlapping_sourcesr"   r�  r  r¾   rV  rW  rT   Úinitial_global_stateÚGlobalStateGuardr¨  rŽ  re  rm  rJ   r  r6  rú  r&  r  r  r¾  r  r  r  r  r  r
  )rä   r   Ú
guards_outr  Úlargsr   ÚseenÚgclrÙ   r  Úcheck_tensors_fnÚcheck_tensors_verbose_fnÚaliasing_code_partsÚaliasing_verbose_code_partsr°  r„  Úsource_ar7  r·  r’  Úoverlapping_guard_managersÚnon_overlapping_guard_managersÚcheck_global_stater  r¼  r  rŸ  r  s                            @@@r¹   rL  Ú%CheckFunctionManager.compile_check_fnŒ  sÆ  ú€ ð × Ñ ˆØÐ'Ð(Ñ(ˆä×Ñ˜Ô#ð ˆ
ØÐØCEÐð 	×Ñ×Ñ×1Ñ1Ü”×1Ò1Ó3Ó4ô	
ð
 *.ˆÔ&ð CHð)	=Øð)	=Ø#/ð)	=Ø;?ð)	=à÷)	=ò )	=ô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Ðô ˆz‹?˜aÓÜ Ø>¼sÀ:»Ð>OÈwÐWóð ð +7ˆ×ÑÔ'Ø"'×ÑÔØ×Ñ×<Ñ<Ô>Ø0Bˆ×ÑÔ-à*>ˆ×ÑÔ'Ø+8×ÑÔ(ð *.ˆ×ÑÔ&Ø)-ˆ×ÑÔ&Ø8P×ÑÕ5ùòQ.ùò2s   É!SÊS c                óÐ  • [        U S5      (       aÕ  [        U R                  [        5      (       dµ  U R                  R                  =nb›  U R                  R
                  =nb�  [        U[        5      (       d  [        S[        U5       35      e[        U[        5      (       d  [        S[        U5       35      eSU S3n[        U5      nUR                  X%5        XPl        g g g g g )NrŽ  zExpected CacheEntry, got zExpected ExtraState, got zCache line invalidated because z got deallocated)r£  r²   rŽ  rR  r  r  r†   r&  r'  rˆ   Ú
invalidate)rä   Úobj_strr  r  rU  Údeleted_guard_managers         r¹   rÅ  ÚCheckFunctionManager.invalidateY  sä   € ô
 �D˜/×*Ñ*Ü˜t×1Ñ1Ô3M×NÑNØ $× 2Ñ 2× >Ñ >Ð>�ÑKØ $× 2Ñ 2× >Ñ >Ð>�ÑKä˜k¬:×6Ñ6Ü$Ð'@ÄÀkÓARÐ@SÐ%TÓUÐUä˜k¬:×6Ñ6Ü$Ð'@ÄÀkÓARÐ@SÐ%TÓUÐUØ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½  rE  r÷  rÝ  r6  rÈ  rÉ  rÅ  rZ  )rä   r[  rÆ  s      r¹   r÷  ÚCheckFunctionManager.id_refn  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½  rE  )rä   r[  s     r¹   rù  Ú$CheckFunctionManager.lookup_weakrefs}  s(   € äˆc‹7�d—n‘nÓ$Ø—>‘>¤" S£'Ñ*Ð*Ør»   )rE  r5  r4  re  rG  rŽ  rQ  r  rü  r£  rk  rm  r
  )NNNNNFFN)rö  r  r  r§   rY  zlist[CacheEntry] | Noner  ú"Callable[[GuardFail], None] | Noner
  r  r£  r\  rü  r	  r	  rÊ   rZ  rÊ   rG  rÁ  rð   ró   )r   rë  r\  úlist[Guard]r  r§   rð   r  r½   )r\  rÎ  r[  rÂ  rö  r  r  r¨   r	  rÊ   r
  r  rð   z(tuple[GuardBuilder, GuardManagerWrapper])r   rë  r·  rÎ  r  rÍ  rð   ró   )rÆ  rñ   rð   ró   )r[  r:  rÆ  rñ   rð   rm  )r[  r:  rð   zweakref.ref[object] | None)rô   rõ   rö   r÷   r  r`  rÒ   rR  rK  rL  rÅ  r÷  rù  rø   rî   r»   r¹   r  r  Ô  sx  ‡ ð
 26Ø<@àØ26Ø6:Ø!Ø"Ø.2ðY!àðY!ð (ðY!ð /ð	Y!ð
 :ðY!ððY!ð 0ðY!ð 4ðY!ð ðY!ð ðY!ð ",ðY!ð 
õY!ðv	HÐ)Ð+Dó 	ð@:àð@:ð #ð@:ð (ð	@:ð
 
ô@:ðT ðM&à"ðM&ð &5ðM&ð ð	M&ð
 -ðM&ð ðM&ððM&ð 
2õM&ð^KQàðKQð  ðKQð :ð	KQð
 
ôKQôZ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   rL   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Ò  ‘  s   € Ø�t�8ˆOr»   zif not (z):zreturn Falsezdef guard(L):zreturn Truezdef ___make_guard_fn(zreturn guardrF  )
Útorch.utils._indented_bufferrM   r  r?  ÚRecursionErrorrž  ré   r–  Úsplicer¤  )
r  Úclosure_argsrM   r  Ú
guard_bodyr)  r"  r„  Úmake_guard_fnrÑ  s
            @r¹   r²  r²  „  sc  ø€ Ý;ä‹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¾   rV  Ú	_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rz  )r’   r¶   rG  r'  )Ú	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Ê   rë  )Úinitial_stackrª  ræ  rf  s      @r¹   rl  rl  ¹  s/   ø€ ñ ,Ó,šm˜ŒT�!ŽW™mÑ,€E÷
ð +Ð*ùò -s   †(ÚScopec                ó–  • U R                   c  [        S5      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ú+guard_manager.global_scope must not be NoneÚ__compile_source__rR   r‹  zDuplicate tensors found: )r  r&  rO  r  r2  r(  r
  r½  Úevalr´  r¶   r±  )	rŽ  rú  r  Úids_to_sourceÚtensor_sourceÚ	tensor_idrM  Úduplicate_tensorsrU  s	            r¹   Ú1recompilation_reason_for_no_tensor_aliasing_guardró  Ð  sØ   € ð ×!Ñ!Ñ)ÜÐJÓKÐKÜ˜×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   ÂCÂ$	C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)r’  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;  r0  rê   Ústripr´  r±  )r  ÚlinesÚframer   r;  r0  Ú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 c  gSSK Jn  [        X5      (       aU  SU R                  < SU R                  < 3nU R
                  (       a  USU R
                  < 3-  nSU S	[        U 5      S
 S3$ U nSn[        U[        R                  5      (       a  SnUR                  n[        USS5      n[        USS5      nU(       a  U(       a  U SU 3nO=U(       a  UnO3[        US5      (       a  UR                  nO[        U5      R                  n[        USS5      nUb  SUR                   SUR                   3OSn	U U U	 S[        U 5      S
 S3$ )zKReturn a human-readable string describing a backend callable for debugging.Nró   r   )Ú_TorchCompileWrapperz	compiler=z
, dynamic=z	, kwargs=z_TorchCompileWrapper(z) (id=z#xrŒ  r¡  zfunctools.partial wrapping rö   rõ   rž  rô   rÐ   z defined at Ú:z (id=)r¾   r   r²   Úcompiler_nameÚdynamicrj  r½  rÈ  rÉ  rÈ  rŽ  r£  rô   r'  Úco_filenameÚco_firstlineno)
r<  r   ÚdetailsrÌ   rå   râ  r§  r0  rÙ   Úlocations
             r¹   Údescribe_backendr  	  s\  € à�Øõ +ä�'×0Ñ0Ø˜g×3Ñ3Ñ6°jÀÇÁÑ@SÐTˆØ�>�>Ø˜ 7§>¡>Ñ"4Ð5Ñ5ˆGØ& w i¨v´b¸³kÀ"Ð5EÀQÐGÐGà€FØ€FÜ�&œ)×+Ñ+×,Ñ,Ø.ˆØ—‘ˆä�v˜~¨tÓ4€HÜ�V˜\¨4Ó0€Fæ–FØ�˜˜8˜*Ð%‰Þ	Ø‰Ü	�˜×	$Ñ	$Ø�‰‰ä�F‹|×$Ñ$ˆä�6˜: tÓ,€Dð Ñð �t×'Ñ'Ð(¨¨$×*=Ñ*=Ð)>Ñ?àð ð ˆX�d�V˜H˜: U¬2¨g«;°rÐ*:¸!Ð<Ð<r»   c                óü  • U R                   c  [        S5      eU R                  c  [        S5      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
OIXc:w  a1  [        U5      n[        U5      nSU SU S3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[1        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.
Nrì  z+guard_manager.closure_vars must not be Nonerï  rí  Fr¡  rR   zDuplicate tensor foundr   Tz[BACKEND_MATCH failure: torch.compile detected different backend callables. Cached backend: z. New backend: zÕ. 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í  rƒ  z; z
User stack trace:
)r  r&  r  rA  r  r<  r­  Úresultr  r¶   r  rþ  r  r´  ró  rO  rP   rî  Ú	Exceptionrá  r²   rÊ   rñ   r±  r  )rŽ  Úf_localsÚ
compile_idr<  rú  r^  Úcache_entry_backendÚno_tensor_aliasing_check_failedr  Úguard_debug_infoÚuser_stack_strÚcached_descÚnew_descrU  r‡  r  Úfail_reasonÚ
reason_strs                     r¹   rO  rO  4  s†  € ð ×!Ñ!Ñ)ÜÐJÓKÐKØ×!Ñ!Ñ)ÜÐJÓKÐKØ×!;Ñ!;¸CÑ!@ÑA€EØ	‡L�L�×+Ñ+Ô,Ø€GàÐØ× × Ø+×7Ñ7×?Ñ?Ðà&+Ð#à$&ÐØ$×2Ñ2°8Ó<ÐØ€Nð
 ×"×"Ø-×@Ñ@Ðô Ð!Ó" aÓ'Ø'Ð+=¸aÑ+@Ó@Ø26Ñ/à,�Ø%'Ð"ð ×&×&Ü4Ð5E×5PÑ5PÓQˆNøØ	Ó	'ä&Ð':Ó;ˆÜ# GÓ,ˆð Ø +˜}ð -Ø%˜Jð '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*   ÆI-ÆIÉI*ÉI-É(I*É*I-É-
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)Nrƒ  zunknown reasonzVFailure in guard_fail_fn callback - raising here will cause a NULL Error on guard eval)r²   rR  rT  rO  r”   rš   r´  r  rŠ   r  rÈ  r:  )rŽ  rÙ   r  r  r<  Úskip_loggingr  s          r¹   Úget_guard_fail_reasonr  ¤  sÀ   € ô �-Ô!;×<Ñ<Ø�˜R × AÑ AÐBÐCÐCÜ-Ø ó€Jö ØÐÜ”= Ñ&Ñ'×.Ñ.¨zÔ:ð
Ø×&Ñ&Ñ2Ø×'Ñ'Ü˜*×8Ð(8¼-ÈÑ:MÓNôð Ðøô ó 
Ü�‰Ødõ	
ð Ðð
ús   Á8B ÂB9Â8B9c                ó¶  ^• / mU  HU  n[        UR                  UR                  UR                  UR                  UU5      nU(       d  MD  TR                  U5        MW     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[.        R0                  R3                  S
S U4S jS9  T$ )zÄ
Return the list of guard failure reasons using cache entries.
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´  r–  )r?  rš  rU  s      r¹   rC  Ú: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  rù  Úartifactc                 ó   • SSS.$ )NÚrecompile_reasonsrž  )r0  Ú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 $ )NrR   r   rS  )r^  s   €r¹   rí  r!  ÿ  s   ø€ ¬¨W«¸Ó):˜7 1™:ÐGÀÐGr»   )Úmetadata_fnrD  )r  rŽ  rÙ   r  r  r´  rö  rß  rá  rS   Úerror_on_recompiler±  r"  r´  r–  rö  r  r  Úrecompiles_verbose_logr´  Úrecompiles_logrU   ÚRecompileErrorr¾   rV  rW  )rY  rü  r<  r  r  rU  rÙ   Údo_recompiles_logÚfailuresÚguard_failure_detailsÚmessager^  s              @r¹   Ú'get_and_maybe_log_recompilation_reasonsr,  Â  s–  ø€ ð €GÛ$ˆÜ&Ø×%Ñ%Ø×ÑØ�N‰NØ×"Ñ"ØØó
ˆ÷ ˆ6Ø�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                óä   • [        5       nU  H,  nUR                  UR                  R                  5       5        M.     U  H-  nXR                  l        UR                  R                  5         M/     U$ r½   )rN   rA  rŽ  r0  r  r9  )rY  Úacc_diff_guard_sourcesr  s      r¹   rF  rF    sh   € ô /9«lÐÛ$ˆØ×%Ñ%Ø×%Ñ%×@Ñ@ÓBö	
ñ %ó %ˆØ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 r‹  z and
  rî  zMalformed guard:
)
Úprintrö  r  r  r±  r  r  r  rî  r  )rŽ  rÙ   r  rØ   Úlastr  r„  s          r¹   Úguard_error_hookr3    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¹   Úuniquer6  5  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.)r7  )	r0   r/   rU   ÚUnsafeScriptObjectErrorr0  rÈ  rÉ  rë  r:  )Ú
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  UR                  5       R                  nUR                  (       a  g[
        R                  [        R                  5      =(       d#    [        R                  [        R                  5      nUR                  R                  nU HU  n[        U[        5      (       d  [        S[        U5       35      e[!        UR"                  5      (       a  MK  U" XdU S-   S9  MW     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   )ÚTracingContextNzExpected Guard, got rR   )Úcollect_debug_stackr>  )Útorch._guardsr@  r  Úguards_contextÚskip_installr³  r˜  r™  rš  r—  r§  r  r²   r;   r&  r'  r2   r*  )r>  r­   r@  rC  rA  r  r„  s          r¹   Úinstall_guardrE  a  s»   € õ -à#×'Ñ'Ó)×8Ñ8€NØ×"×"Øä$×1Ñ1Ü�‰ó÷ 8ä	×	(Ñ	(¬¯©Ó	7ð ð ×
&Ñ
&×
*Ñ
*€CÛˆÜ˜%¤×'Ñ'Ü Ð#7¼¸U»°}Ð!EÓFÐFÜ$ U×%=Ñ%=×>Ñ>ÙÙˆEÀÈÁÔJò r»   rÏ  z"dict[str, GuardCheckSpec | object]ÚGUARD_VALUE_DISPATCHr›  rƒ  z9GuardBuilder methods missing guard_check_spec decorator: r‹  z[. Use @register_guard_check_spec, @skip_guard_check_spec, or @unsupported_guard_check_spec.)r¸   r:  rð   rm  )r¸   r:  rð   zbool | object)r¸   r:  rË   r:  rð   rÊ   )rÙ   r  rÚ   rñ   rð   rm  )rZ  r   rð   r  )rª  r  rð   r  )rð   zset[str])rð   r  )r  r  rð   rñ   )r‘  ú	type[Any]rð   rñ   )r·  rñ   r„  r®  rð   rñ   r½   )r  zstr | list[str]r„  r®  r+  rÄ  rð   r½  )r�  úSource | Nonerð   rÄ  )r9  r   rð   z
int | None)r<  zSequence[Any]rð   úlist[int | None])r¸   r  r0  rñ   rC  rI  rD  rI  rE  r'  rF  r¦   rð   rñ   )rL  r  rM  r:  rð   rm  )r�  r   rØ   r   rð   rñ   )r[  r:  rð   r   )r¸   r:  rð   rÊ   )r�  z-DictGetItemSource | DictSubclassGetItemSourcerr  r   rs  r   rj  r   rk  re  rð   r   )r„  r;   rð   rÊ   )rÙ   r  rð   r½  )r‘  r  rð   útuple[Any, ...])r˜  r   rð   rÊ   )r˜  r   r   rG  rð   ró   )r„  r   r¸   r:  rð   rJ  )r¸   r:  r˜  rJ  rð   rÊ   )r„  r   r¸   r:  rð   r   )r¸   r:  r˜  r   rð   rÊ   )r¸   r:  rð   r   )r„  r;   r0  rñ   rð   r   )r‰  rˆ  r‹  rŠ  )rð   ztuple[type, ...])r„  r;   r   rë  rð   r‹   )r  r[  r   rë  rð   r  )r  r½  r×  rñ   rð   ztuple[str, str]rè  )ré  z'list[torch.overrides.TorchFunctionMode]rð   zCallable[[], bool])rŽ  rü   rú  rê  rð   r½  )r’  rñ   rð   rñ   )r  ztraceback.StackSummary | Nonerð   rñ   )r<  úCallable[..., object] | Nonerð   rñ   )
rŽ  rü   r  r  r  zCompileId | Noner<  rK  rð   rñ   rò   )rŽ  rü   rÙ   r  r  r  r  r9   r<  úCallable[..., object]r  rÊ   rð   rñ   )
rY  úlist[CacheEntry]rü  r‡   r<  rL  r  rÊ   rð   r½  )rY  rM  rð   rÂ  )rŽ  rŒ   rÙ   r  r  r  rØ   rm  r2  rÊ   rð   ró   )r5  zSequence[T]rð   zGenerator[T, None, None])r9  r?   r:  rH  rð   zfunctools.partial[Any] | None)r­   r;   r>  rm  rð   ró   (Z  rÅ  Ú
__future__r   r  rý  r  rJ  rø  rÈ  r  rÜ  r$  r«  r™  r	  Úpickler,  r´  r?  rf  r.  r÷  Ú
contextlibr   rÿ  r   r   Útypingr   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   rB  r8   r9   r:   r;   r<   r=   r>   r?   r@   Ú"torch._library.fake_class_registryrA   Útorch._library.opaque_objectrB   rC   Útorch._loggingrD   Útorch._utils_internalrE   Ú%torch.fx.experimental.symbolic_shapesrF   rG   rH   rI   rJ   Útorch.utilsrK   r‘  rÔ  rM   Útorch.utils._ordered_setrN   Útorch.utils._tracebackrO   rP   Útorch.utils.weakrQ   r¡  rS   rT   rU   Ú
eval_framerV   r�  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œ   r�   rž   Úcollections.abcrŸ   rˆ  rÊ   rŠ  r    rÒ   r'  r?  rü  ÚnumpyrÉ  ÚModuleNotFoundErrorr¡   r¢   r£   r¤   rô  r¥   Útorch._Cr¦   r¢  r§   r¨   rÜ  rª   r÷  r«   r¬   Ú	getLoggerrô   rÈ  rV  ÚgetArtifactLoggerr³  r&  r%  r—  rº   r:  rÀ   rÇ   rÍ   rl  rÝ   rß   rü   rÍ  rÎ  rÓ  Úcacherà  râ  r  r  rÁ   rØ  rÆ  r  r%  r-  r)  r:  r=  rJ  rN  rS  r\  r^  rK  ra  rx  r}  r  rù  re  r×   r‡  rÖ  r�  r–  r¡  r¦  rª  r­  r²  r¶  r¹  r¾  rÀ  rÅ  rË  rÔ  rØ  rÚ  ré  rë  r  rP  rR  r®  r[  r^  rq  ÚPicklerrs  r"  r.  r  r²  rß  rá  rl  rO  rñ   rê  ró  r  rþ  r  rO  r  r,  rF  r3  r6  r=  rE  ÚdirrŽ  rÑ  rF  Úisupperr   r—  Ú_methodr¶   r(  Ú	signatureÚ
parametersÚ_paramsr£  ÚMISSING_GUARD_SPECSr�  r±  )r0  rÑ  rÝ  rm  rp  s   00000r¹   Ú<module>rr     sÁ  ðòõ" #ã 
Û Û Û Û Û Û Û Û 	Û Û Û Û Û 
Û Û Û Û Û Ý %Ý Ý  ß AÕ Aß CÑ CÝ !ã Û Û Ý >÷÷ ÷ ÷ ÷ ÷ ÷ ÷8÷ ÷ ÷ H÷
÷ 
õ 
õ @ß UÝ %Ý 1÷õ õ *Ý 7Ý /ß OÝ *ç (Ñ (Ý ,÷0÷ 0÷ 0÷ 0÷ 0÷ 0÷ 0÷ 0÷ 0÷ 0÷ 0÷ 0ñ 0÷b÷ ñ ÷÷ ÷ ÷ ÷ ö, Ý(à&¨¨s |°SÐ'8Ñ9ÐØ  c 
¨DÐ 0Ñ1Ðð HLÐ ÐDÓ KÙ˜IŸO›OÓ-Ó.Ð ðÛö
 ßDÓDåå'ßTÝ4ÝEáˆCƒL€Ø×Ó˜Ó!€Ø�^Š^×-Ò-¨h¸ÓA€
Ø—’×1Ò1°(¸LÓI€ØŸš×9Ò9ØÐ"óÐ ð —^’^×5Ò5°hÐ@PÓQÐ ô%ñ !›(Ð ô*ôHð"Ð ôô,˜~ô ,÷Xñ XôvTð .2Ð ˜{Ó 1ôð* ‡‚ó.ó ð.ð +/€Ð'Ó .ô ôF/ð —h’h×&Ò&×:Ò:Ñ õõ%ð6 "&ðØðàðð ðð ö	õ<õ,'õKðØðà
ðð ðð ð	ð
 ðð "ðð 	õõ*3õ1õõ.ð ×Ó˜dÑ#÷ð ó $ñð+Ø9ð+à(ð+ð ð+ð ð	+ð
 )ð+ð õ+õ\
Gð ×Ò÷ð ó ñô
�t—y’yõ ð
 ‡‚ó8ó ñ8ô�Zõ ñ6 ‹X�
õEõõ(õ(-õ/õõ
;õ1õ3õõ!õ?õ$ðØ,ðàõó÷Xò Xó$ôG)
Ð#õ G)
÷vRR8ò R8õjô$Ð!4õ $ð ×Ò÷$ð $ó ñ$ð ×Ò÷#ð #ó ñ#÷ò ð  ‡‚ó
ó ñ
ôy˜Ÿšõ yõxð:)Øð)àð)ð õ)÷bm
ò m
õ`);õXPõXð
+Ø:ð+àõ+ñ( 	�g™t¡C¨ KÑ0Ó1�ð2Ø&ð2Ø/4ð2àõ2õ(
%ðØ-ðàõõ0(=ðVm)Ø&ðm)àðm)ð !ðm)ð *ð	m)ð
 	õm)ðl ðØ&ðà
ðð  ðð ð	ð
 #ðð ðð 	öðD ð	@Ø#ð@àð@ð #ð@ð ð	@ð
 ö@ðF"Ø#ð"àõ"ð,0Øð0à
ð0ð  ð0ð ð	0ð
 ð0ð 
õ0ñ. Ñ%Ô &õð!Øð!Ø%2ð!à"õ!ðH /0÷ Kð Kò> ‘LÔ!ô<â!ˆÚš7¡<°Ó6Ð8JÈDÓQÐQ‰Øðó €D�'‚MÙ!ò<Ñ Ð8ó ò ‘\Ô"õ	â"ˆØˆQ�x×Ò×ó 
ð ×Ò˜S×!ó 
ò 	šG¡L°%¸Ó>Ð>‘×?ó	 
ò
 	’t˜G×-Ò-­gÓ6×AÒAÓBÐB‰GÓCÀqÑHó 
õ 	�‰
�gÑó 
ò •GÐ/×0÷ 
Ù"ó	Ñ ÷ Ú
Ø
CØ�9Š9Ñ(Ó)Ð
*ð +Dð	Eóð ð øð{m ó Ø	ƒBðüóRm<ùô	sH   È9^  Ù1^/Ú^/Ú7^5Û^5Û1^5Ü5^5Ý^5Ý^5Ý-^5Þ ^,Þ+^,