§
    ­˜ºhÊ9 ã                  óŠ  — U d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZ ddlmZ ddl
mZ ddlmZmZmZmZmZmZ ddlm Z  ddl!Z!ddl"Z!ddl#Z!dd	l$m%Z% dd
l&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z;m<Z< ddl=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZF ddlGmHZH ddlImJZJ ddlKmLZLmMZMmNZNmOZOmPZP ddlQmRZS ddlTmUZU ddlVmWZWmXZX ddlYmZZZ ddl[m\Z\m]Z]m^Z^ ddl_m`Z` ddlambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZm€Z€m�Z�m‚Z‚mƒZƒm„Z„ ddlm…Z…m†Z†m‡Z‡mˆZˆm‰Z‰mŠZŠm‹Z‹ ddlŒm�Z�mŽZŽm�Z�m�Z�m‘Z‘m’Z’m“Z“m”Z”m•Z•m–Z–m—Z—m˜Z˜m™Z™mšZšm›Z›mœZœm�Z�mžZž dZŸde d<   	 ddl¡Z¢n# e£$ r dZ¢Y nw xY werddl¤m¥Z¥ ddl¦m§Z§  ej¨        e©¦  «        Zªe!j«         ¬                    e©d¦  «        Z­e!j«         ¬                    e©d ¦  «        Z®e!j«         ¬                    e©d!¦  «        Z¯e!j«         ¬                    e©d"¦  «        Z° G d#„ d$¦  «        Z±d%„ Z²ej³        d&„ ¦   «         Z´daµd'e d(<   d)„ Z¶d}d.„Z·e!j¸        j¹        jº        Zºd~d2„Z»dd6„Z¼d€d8„Z½d9„ Z¾d:„ Z¿d;„ ZÀd<„ ZÁd�d@„ZÂ ejÃ        dA¬B¦  «         G dC„ dD¦  «        ¦   «         ZÄdE„ ZÅdF„ ZÆejÃ         G dG„ dH¦  «        ¦   «         ZÇ G dI„ dJejÈ        ¦  «        ZÉej³        d‚dM„¦   «         ZÊ G dN„ dOeB¦  «        ZË G dP„ dQ¦  «        ZÌdR„ ZÍ G dS„ dTe±¦  «        ZÎejÃ         G dU„ dV¦  «        ¦   «         ZÏejÃ         G dW„ dX¦  «        ¦   «         ZÐ G dY„ dZejÑ        ¦  «        ZÒdƒd]„ZÓ G d^„ d_¦  «        ZÔd„da„ZÕdb„ ZÖdc„ Z×dd„ ZØde„ ZÙd…dg„ZÚd†dn„ZÛd‡do„ZÜdˆdr„ZÝds„ ZÞd‰dx„Zß e`eß¦  «         dy„ Zàdz„ Zádd{œd|„ZâdS )Š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ÚCallableÚNoReturnÚOptionalÚTYPE_CHECKINGÚUnion)ÚReferenceType)Úcode_framelocals_names)
Úcheck_obj_idÚcheck_type_idÚdict_versionÚDictGuardManagerÚ install_no_tensor_aliasing_guardÚinstall_object_aliasing_guardÚ!install_storage_overlapping_guardÚinstall_symbolic_shape_guardÚprofile_guard_managerÚRootGuardManager)Úget_global_source_nameÚget_local_source_nameÚIndexedSourceÚ$is_from_flatten_script_object_sourceÚis_from_local_sourceÚis_from_optimizer_sourceÚTensorPropertyÚTensorPropertySource)ÚCompileEventLoggerÚget_metrics_context)	ÚCompileContextÚ	CompileIdÚDuplicateInputsÚGuardÚGuardBuilderBaseÚGuardEnvExprÚGuardSourceÚSourceÚStorageOverlap)Ú
structured)Újustknobs_check)Ú_CppShapeGuardsHelperÚ_ShapeGuardsHelperÚEqualityConstraintÚis_symbolicÚSYMPY_INTERP)Ú_pytree)Ú
OrderedSet)Úformat_frameÚreport_compile_source_on_error)ÚTensorWeakRefé   )ÚconfigÚconvert_frameÚexc)Úset_guard_error_hook)#ÚAttrProxySourceÚ
AttrSourceÚCallFunctionNoArgsSourceÚCallMethodItemSourceÚChainedSourceÚConstantSourceÚConstDictKeySourceÚDataclassFieldsSourceÚDefaultsSourceÚDictGetItemSourceÚDictSubclassGetItemSourceÚFlattenScriptObjectSourceÚFloatTensorSourceÚFSDPNNModuleSourceÚGenericAttrSourceÚGetItemSourceÚGlobalSourceÚGlobalStateSourceÚGlobalWeakRefSourceÚ
GradSourceÚListGetItemSourceÚLocalSourceÚNNModuleSourceÚNumpyTensorSourceÚOptimizerSourceÚScriptObjectQualifiedNameSourceÚShapeEnvSourceÚSubclassAttrListSourceÚTorchFunctionModeStackSourceÚTupleIteratorGetItemSourceÚ
TypeSourceÚ"UnspecializedBuiltinNNModuleSourceÚUnspecializedNNModuleSourceÚUnspecializedParamBufferSourceÚWeakRefCallSource)Ú
CacheEntryÚDynamoFrameTypeÚ
ExtraStateÚGuardedCodeÚ	GuardFailÚGuardFilterEntryÚGuardFn)Úbuiltin_dict_keysÚcommon_constant_typesÚdataclass_fieldsÚ	dict_keysÚget_custom_getattrÚget_torch_function_mode_stackÚ get_torch_function_mode_stack_atÚguard_failuresÚistypeÚ	key_is_idÚ	key_to_idÚnormalize_range_iterÚorig_code_mapÚtensor_always_has_static_shapeÚtuple_iterator_getitemÚtuple_iterator_lenÚunpatched_nn_module_getattrÚverify_guard_fn_signaturez#Optional[Callable[[Any, Any], Any]]Úguard_manager_testing_hook_fn)ÚSymbol)ÚOutputGraphGuardsStateÚguardsÚ
recompilesÚrecompiles_verboseÚverbose_guardsc                  óz   — e Zd ZdZdd„Zed„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zdd
„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚGuardManagerWrappera  
    A helper class that contains the root guard manager. An instance of this
    class is stored in the Dynamo cache entry, so that the cache entry can
    access the RootGuardManager stored in the "root" attribute and directly call
    the check_nopybind from C++.
    Nc                ó&  — |€t          ¦   «         | _        n|| _        d | _        d | _        d | _        g | _        d | _        d | _        d | _        d | _	        d | _
        i | _        g | _        t          ¦   «         | _        t          ¦   «         | _        d S ©N)r   ÚrootÚdiff_guard_rootÚclosure_varsÚargsÚ
code_partsÚverbose_code_partsÚglobal_scopeÚguard_fail_fnÚcache_entryÚextra_stateÚid_matched_objsÚno_tensor_aliasing_sourcesÚsetÚprinted_relational_guardsr4   Údiff_guard_sources)Úselfr„   s     ú\/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/torch/_dynamo/guards.pyÚ__init__zGuardManagerWrapper.__init__Æ   s‘   € Øˆ<Ý(Ñ*Ô*ˆDŒIˆIàˆDŒIà#ˆÔØ ˆÔØˆŒ	ØˆŒØ"&ˆÔØ ˆÔØ!ˆÔØˆÔØˆÔØ!ˆÔØ*,ˆÔ'å),©¬ˆÔ&å3=±<´<ˆÔÐÐó    c              #  ó�   K  — t          ¦   «         | _        	 d V — t          ¦   «         | _        d S # t          ¦   «         | _        w xY wrƒ   )r�   r‘   ©r“   s    r”   Ú#_preserve_printed_relational_guardsz7GuardManagerWrapper._preserve_printed_relational_guardsÜ   sJ   è è € å),©¬ˆÔ&ð	3ØˆEˆEˆEå-0©U¬UˆDÔ*Ð*Ð*ø­S©U¬UˆDÔ*Ð2Ð2Ð2Ð2s	   —0 °Ac                ó\   ‡ ‡‡‡— ˆ ˆfd„Šˆ ˆfd„Šˆˆfd„Š ‰‰ j         ¦  «         ‰ j        S )Nc                óv  •— |                       ¦   «         ‰j        v p|                      ¦   «         dk    }t          |                      ¦   «                              ¦   «         ¦  «        D ]"\  }\  }}| ‰|¦  «         ‰|¦  «        z  z  }Œ#|r,‰j                             |                       ¦   «         ¦  «         |S ©Nr   )Ú
get_sourcer’   Ú
fail_countÚsortedÚget_key_value_managersÚitemsÚadd)ÚnodeÚis_diff_guard_nodeÚidxÚkey_mgrÚval_mgrr“   Úvisits        €€r”   Úvisit_dict_managerzJGuardManagerWrapper.collect_diff_guard_sources.<locals>.visit_dict_managerî   sÈ   ø€ à—’Ñ!Ô! TÔ%<Ð<ÐUÀÇÂÑ@QÔ@QÐTUÒ@Uð õ ,2Ø×+Ò+Ñ-Ô-×3Ò3Ñ5Ô5ñ,ô ,ð Fð FÑ'�Ñ'�g˜wð # e e¨G¡n¤n°u°u¸W±~´~Ñ&EÑEÐ"Ð"à!ð ?ØÔ'×+Ò+¨D¯OªOÑ,=Ô,=Ñ>Ô>Ð>à%Ð%r–   c                óB  •— t          | t          ¦  «        rJ ‚|                      ¦   «         ‰j        v p|                      ¦   «         dk    }|                      ¦   «         D ]}| ‰|¦  «        z  }Œ|r,‰j                             |                      ¦   «         ¦  «         |S rœ   )Ú
isinstancer   r�   r’   rž   Úget_child_managersr¢   )r£   r¤   Ú	child_mgrr“   r¨   s      €€r”   Úvisit_managerzEGuardManagerWrapper.collect_diff_guard_sources.<locals>.visit_managerü   s¯   ø€ Ý! $Õ(8Ñ9Ô9Ð9Ð9Ð9ð —’Ñ!Ô! TÔ%<Ð<ÐUÀÇÂÑ@QÔ@QÐTUÒ@Uð ð "×4Ò4Ñ6Ô6ð 7ð 7�	Ø" e e¨IÑ&6Ô&6Ñ6Ð"Ð"à!ð ?ØÔ'×+Ò+¨D¯OªOÑ,=Ô,=Ñ>Ô>Ð>à%Ð%r–   c                ób   •— | €dS t          | t          ¦  «        r ‰| ¦  «        S  ‰| ¦  «        S )NF)r«   r   )r£   r©   r®   s    €€r”   r¨   z=GuardManagerWrapper.collect_diff_guard_sources.<locals>.visit
  sA   ø€ Øˆ|Ø�uÝ˜$Õ 0Ñ1Ô1ð 0Ø)Ð)¨$Ñ/Ô/Ð/Ø �= Ñ&Ô&Ð&r–   )r„   r’   )r“   r¨   r©   r®   s   `@@@r”   Úcollect_diff_guard_sourcesz.GuardManagerWrapper.collect_diff_guard_sourcesä   s}   øøøø€ ð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	ˆˆdŒiÑÔÐàÔ&Ð&r–   c                óV   — |                       ¦   «          |                      ¦   «          d S rƒ   )r°   Úpopulate_diff_guard_managerr˜   s    r”   ÚfinalizezGuardManagerWrapper.finalize  s,   € Ø×'Ò'Ñ)Ô)Ð)Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*r–   c                óˆ   — |                       | j        ¦  «        | _        | j        r| j                             ¦   «          d S d S rƒ   )Úclone_with_chosen_sourcesr’   r…   rŒ   Úupdate_diff_guard_root_managerr˜   s    r”   r²   z/GuardManagerWrapper.populate_diff_guard_manager  sM   € Ø#×=Ò=¸dÔ>UÑVÔVˆÔð Ôð 	>ØÔ×;Ò;Ñ=Ô=Ð=Ð=Ð=ð	>ð 	>r–   c                óB   ‡— ˆfd„}| j                              |¦  «        S )Nc                ó0   •— |                       ¦   «         ‰v S rƒ   )r�   )Únode_mgrÚchosen_sourcess    €r”   Ú	filter_fnz@GuardManagerWrapper.clone_with_chosen_sources.<locals>.filter_fn'  s   ø€ Ø×&Ò&Ñ(Ô(¨NÐ:Ð:r–   )r„   Úclone_manager)r“   rº   r»   s    ` r”   rµ   z-GuardManagerWrapper.clone_with_chosen_sources&  s4   ø€ ð	;ð 	;ð 	;ð 	;ð 	;ð Œy×&Ò& yÑ1Ô1Ð1r–   c                ód   ‡— |j         j        Š|                     ¦   «         }ˆfd„|D ¦   «         }|S )Nc                ó    •— g | ]
}‰d z   |z   ‘ŒS )ú: © )Ú.0ÚpartÚ
guard_names     €r”   ú
<listcomp>z7GuardManagerWrapper.get_guard_lines.<locals>.<listcomp>/  s#   ø€ Ð<Ð<Ð<¨d�˜dÑ" TÑ)Ð<Ð<Ð<r–   )Ú	__class__Ú__name__r‰   )r“   ÚguardÚpartsrÃ   s      @r”   Úget_guard_linesz#GuardManagerWrapper.get_guard_lines,  s<   ø€ Ø”_Ô-ˆ
Ø×(Ò(Ñ*Ô*ˆØ<Ð<Ð<Ð<°eÐ<Ñ<Ô<ˆØˆr–   c                ój   — |                      ¦   «         }|j        j        }|dz   |z   }|r|d|z   z  }|S )Nz	: source=ú, )r�   rÅ   rÆ   )r“   Úguard_managerÚaccessor_strÚsourceÚtÚss         r”   Úget_manager_linez$GuardManagerWrapper.get_manager_line2  sH   € Ø×)Ò)Ñ+Ô+ˆØÔ#Ô,ˆØ�‰O˜fÑ$ˆØð 	%Ø�˜Ñ$Ñ$ˆAØˆr–   c                ó  — t          |                     ¦   «                              ¦   «         ¦  «        D ]Ò\  }\  }}|                     d|› �¦  «         |                     ¦   «         5  |rA|                     d|                      |¦  «        › �¦  «         |                      ||¦  «         |rA|                     d|                      |¦  «        › �¦  «         |                      ||¦  «         d d d ¦  «         n# 1 swxY w Y   ŒÓd S )NzKeyValueManager pair at index=zKeyManager: zValueManager: )rŸ   r    r¡   Ú	writelineÚindentrÑ   Úconstruct_manager_string)r“   ÚmgrÚbodyr¥   r¦   r§   s         r”   Úconstruct_dict_manager_stringz1GuardManagerWrapper.construct_dict_manager_string:  si  € Ý'-¨c×.HÒ.HÑ.JÔ.J×.PÒ.PÑ.RÔ.RÑ'SÔ'Sð 		Að 		AÑ#ˆCÑ#�'˜7Ø�NŠNÐA¸CÐAÐAÑBÔBÐBØ—’‘”ð Að AØð AØ—N’NÐ#R°$×2GÒ2GÈÑ2PÔ2PÐ#RÐ#RÑSÔSÐSØ×1Ò1°'¸4Ñ@Ô@Ð@àð AØ—N’NÐ#T°D×4IÒ4IÈ'Ñ4RÔ4RÐ#TÐ#TÑUÔUÐUØ×1Ò1°'¸4Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aøð		Að 		As   Á(BC;Ã;C?	ÄC?	c           
     ó~  — |                      ¦   «         5  |                     ¦   «         D ]À}t          |t          j        j        j        j        ¦  «        rm|| j        vrC| j         	                    |¦  «         | 
                    |                      |¦  «        ¦  «         Œw| 
                    |j        j        g¦  «         Œ˜| 
                    |                      |¦  «        ¦  «         ŒÁt          |t          ¦  «        r|                      ||¦  «         t!          |                     ¦   «         |                     ¦   «         ¦  «        D ]Y\  }}|                     |                      |d|                     ¦   «         › �¦  «        ¦  «         |                      ||¦  «         ŒZ	 d d d ¦  «         d S # 1 swxY w Y   d S )Nzaccessed_by=)rÔ   Úget_leaf_guardsr«   ÚtorchÚ_CÚ_dynamor|   ÚRelationalGuardr‘   r¢   Ú
writelinesrÉ   rÅ   rÆ   r   rØ   ÚzipÚget_accessorsr¬   rÓ   rÑ   ÚreprrÕ   )r“   rÖ   r×   rÇ   Úaccessorr­   s         r”   rÕ   z,GuardManagerWrapper.construct_manager_stringF  s  € Ø�[Š[‰]Œ]ð 	?ð 	?Ø×,Ò,Ñ.Ô.ð Að A�Ý˜e¥U¤XÔ%5Ô%<Ô%LÑMÔMð AØ DÔ$BÐBÐBØÔ6×:Ò:¸5ÑAÔAÐAØŸš¨×(<Ò(<¸UÑ(CÔ(CÑDÔDÐDÐDàŸšà %¤Ô 8ðñô ð ð ð —O’O D×$8Ò$8¸Ñ$?Ô$?Ñ@Ô@Ð@Ð@õ ˜#Õ/Ñ0Ô0ð >Ø×2Ò2°3¸Ñ=Ô=Ð=õ (+Ø×!Ò!Ñ#Ô# S×%;Ò%;Ñ%=Ô%=ñ(ô (ð ?ð ?Ñ#�˜)ð —’Ø×)Ò)¨)Ð5UÀHÇMÂMÁOÄOÐ5UÐ5UÑVÔVñô ð ð ×-Ò-¨i¸Ñ>Ô>Ð>Ð>ð?ð)	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?s   •FF2Æ2F6Æ9F6c                ó>  — ddl m}  G d„ d|¦  «        }|                      ¦   «         5   |¦   «         }d|_        |                     dd¬¦  «         |                     d	d¬¦  «         |                     d
¦  «         |                      | j        |¦  «         t          | j        d¦  «        rD| j                             ¦   «         D ]*}| 	                    |  
                    |¦  «        ¦  «         Œ+|                     ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S )Nr   ©ÚIndentedBufferc                  ó&   ‡ — e Zd Zd„ Zdˆ fd„	Zˆ xZS )ú=GuardManagerWrapper.__str__.<locals>.IndentedBufferWithPrefixc                ó&   — d| j         | j        z  z  S )Nz| )Ú_indentÚtabwidthr˜   s    r”   ÚprefixzDGuardManagerWrapper.__str__.<locals>.IndentedBufferWithPrefix.prefixg  s   € Ø˜tœ|¨d¬mÑ;Ñ<Ð<r–   Fc                óš   •— |r#t          ¦   «                              |¦  «         d S t          ¦   «                              d|z   ¦  «         d S )Nz+- )ÚsuperrÓ   )r“   ÚlineÚskip_prefixrÅ   s      €r”   rÓ   zGGuardManagerWrapper.__str__.<locals>.IndentedBufferWithPrefix.writelinej  sK   ø€ Øð 4Ý‘G”G×%Ò% dÑ+Ô+Ð+Ð+Ð+å‘G”G×%Ò% e¨d¡lÑ3Ô3Ð3Ð3Ð3r–   ©F)rÆ   Ú
__module__Ú__qualname__rì   rÓ   Ú__classcell__©rÅ   s   @r”   ÚIndentedBufferWithPrefixrè   f  sL   ø€ € € € € ð=ð =ð =ð4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4r–   rö   r8   Ú T)rð   zTREE_GUARD_MANAGER:r   Úget_epilogue_lambda_guards)Útorch._inductor.utilsræ   r™   rë   rÓ   rÕ   r„   Úhasattrrø   rß   rÉ   Úgetvalue)r“   ræ   rö   r×   rÇ   s        r”   Ú__str__zGuardManagerWrapper.__str__c  s†  € Ø8Ð8Ð8Ð8Ð8Ð8ð	4ð 	4ð 	4ð 	4ð 	4 ~ñ 	4ô 	4ð 	4ð ×5Ò5Ñ7Ô7ð 
	#ð 
	#Ø+Ð+Ñ-Ô-ˆDØˆDŒMØ�NŠN˜2¨4ˆNÑ0Ô0Ð0Ø�NŠNÐ0¸dˆNÑCÔCÐCØ�NŠNÐ-Ñ.Ô.Ð.Ø×)Ò)¨$¬)°TÑ:Ô:Ð:Ý�t”yÐ">Ñ?Ô?ð AØ!œY×AÒAÑCÔCð Að A�EØ—O’O D×$8Ò$8¸Ñ$?Ô$?Ñ@Ô@Ð@Ð@Ø—=’=‘?”?ð
	#ð 
	#ð 
	#ð 
	#ñ 
	#ô 
	#ð 
	#ð 
	#ð 
	#ð 
	#ð 
	#ð 
	#øøøð 
	#ð 
	#ð 
	#ð 
	#ð 
	#ð 
	#s   ©CDÄDÄDc                ó6   — | j                              |¦  «        S rƒ   )r„   Úcheck©r“   Úxs     r”   rþ   zGuardManagerWrapper.check|  s   € àŒy�Š˜qÑ!Ô!Ð!r–   c                ó6   — | j                              |¦  «        S rƒ   )r„   Úcheck_verboserÿ   s     r”   r  z!GuardManagerWrapper.check_verbose€  s   € àŒy×&Ò& qÑ)Ô)Ð)r–   c                ó`   ‡ ‡‡‡— t          ¦   «         Šd„ Šˆˆˆ ˆfd„Š ‰‰ j        ¦  «         d S )Nc                ó¼   — g }|                       ¦   «         D ]D}|                     d¦  «        d                              ¦   «         }|                     |¦  «         ŒE|S )Nú#r   )r‰   ÚsplitÚrstripÚappend)Ú
leaf_guardrˆ   Úverbose_code_partÚ	code_parts       r”   Úget_code_partszMGuardManagerWrapper.populate_code_parts_for_debugging.<locals>.get_code_partsˆ  sd   € ØˆJØ%/×%BÒ%BÑ%DÔ%Dð -ð -Ð!Ø-×3Ò3°CÑ8Ô8¸Ô;×BÒBÑDÔD�	Ø×!Ò! )Ñ,Ô,Ð,Ð,ØÐr–   c                óŒ  •— |                       ¦   «         D ]‹}t          |t          j        j        j        j        ¦  «        r=|‰vr8‰j                              ‰|¦  «        ¦  «         ‰ 	                    |¦  «         Œh‰j                              ‰|¦  «        ¦  «         ŒŒ|  
                    ¦   «         D ]} ‰|¦  «         Œd S rƒ   )rÚ   r«   rÛ   rÜ   rÝ   r|   rÞ   rˆ   Úextendr¢   r¬   )rÖ   rÇ   r­   r  Úrelational_guards_seenr“   r¨   s      €€€€r”   r¨   zDGuardManagerWrapper.populate_code_parts_for_debugging.<locals>.visit�  sÚ   ø€ à×,Ò,Ñ.Ô.ð Bð B�Ý˜e¥U¤XÔ%5Ô%<Ô%LÑMÔMð BØÐ$:Ð:Ð:Øœ×.Ò.¨~¨~¸eÑ/DÔ/DÑEÔEÐEØ.×2Ò2°5Ñ9Ô9Ð9øà”O×*Ò*¨>¨>¸%Ñ+@Ô+@ÑAÔAÐAÐAà ×3Ò3Ñ5Ô5ð !ð !�	Ø��iÑ Ô Ð Ð ð!ð !r–   )r�   r„   )r“   r  r  r¨   s   `@@@r”   Ú!populate_code_parts_for_debuggingz5GuardManagerWrapper.populate_code_parts_for_debugging„  sa   øøøø€ å!$¡¤Ðð	ð 	ð 	ð	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	ˆˆdŒiÑÔÐÐÐr–   rƒ   )rÆ   rò   ró   Ú__doc__r•   r   r™   r°   r³   r²   rµ   rÉ   rÑ   rØ   rÕ   rü   rþ   r  r  rÀ   r–   r”   r�   r�   ¾   s  € € € € € ðð ð@ð @ð @ð @ð, ð3ð 3ñ „^ð3ð/'ð /'ð /'ðb+ð +ð +ð>ð >ð >ð2ð 2ð 2ðð ð ðð ð ð ð
Að 
Að 
Að?ð ?ð ?ð:#ð #ð #ð2"ð "ð "ð*ð *ð *ðð ð ð ð r–   r�   c                óê   — t           j                             ¦   «         5  t          | t          j        t          j        f¦  «        rt          j        | ¦  «        n| cd d d ¦  «         S # 1 swxY w Y   d S rƒ   )rÛ   Ú	overridesÚ_enable_torch_functionr«   ÚnpÚgenericÚndarrayÚ	as_tensor)Úas    r”   Ú
from_numpyr  Ÿ  s»   € õ 
Œ×	/Ò	/Ñ	1Ô	1ð Tð TÝ%/°µB´JÅÄ
Ð3KÑ%LÔ%LÐS�uŒ˜qÑ!Ô!Ð!ÐRSðTð Tð Tð Tñ Tô Tð Tð Tð Tð Tð Tð Tøøøð Tð Tð Tð Tð Tð Ts   Ÿ<A(Á(A,Á/A,c                 ó�   — dd l } dd l} | j        j        | j        j        g}ddlm} |                     |¦  «         d„ |D ¦   «         S )Nr   )ÚPOLYFILLED_MODULESc                ó6   — h | ]}t          j        |¦  «        ’ŒS rÀ   )ÚinspectÚgetfile)rÁ   Úms     r”   ú	<setcomp>z&uninteresting_files.<locals>.<setcomp>³  s"   € Ð-Ð-Ð- 1�GŒO˜AÑÔÐ-Ð-Ð-r–   )Útorch._dynamo.external_utilsÚtorch._dynamo.polyfillsrÝ   Úexternal_utilsÚ	polyfillsÚtorch._dynamo.polyfills.loaderr  r  )rÛ   Úmodsr  s      r”   Úuninteresting_filesr(  ¨  sg   € à'Ð'Ð'Ð'Ø"Ð"Ð"Ð"àŒMÔ(¨%¬-Ô*AÐB€DàAÐAÐAÐAÐAÐAà‡K‚KÐ"Ñ#Ô#Ð#à-Ð-¨Ð-Ñ-Ô-Ð-r–   zOptional[dict[str, object]]Ú_CLOSURE_VARSc                 óÜ  — t           €ßi dt          “dt          “dt          j        j        “dt          “dt          “dd„ “dt          “d	t          “d
t          “dt          “dt          “dt          j        “dt          €d nt          j        “dt!          d¦  «        “dt"          j        “dt&          j        j        “dt&          j        “t.          t&          j        t&          t2          dœ¥a t           S )NÚ___check_type_idÚ___check_obj_idÚ___odict_getitemÚ___key_to_idÚ___dict_versionÚ___dict_containsc                ó8   — t                                || ¦  «        S rƒ   )ÚdictÚ__contains__)r  Úbs     r”   ú<lambda>z#_get_closure_vars.<locals>.<lambda>Â  s   € ­T×->Ò->¸qÀ!Ñ-DÔ-D€ r–   Ú___tuple_iterator_lenÚ___normalize_range_iterÚ___tuple_iterator_getitemÚ___dataclass_fieldsÚ#___get_torch_function_mode_stack_atÚ__math_isnanÚ__numpy_isnanÚinfÚ__load_moduleÚutils_deviceÚdevice)Ú___from_numpyÚ___as_tensorrÛ   r  )r)  r   r   ÚcollectionsÚOrderedDictÚ__getitem__rq   r   rv   rr   ru   ri   rm   ÚmathÚisnanr  ÚfloatÚ	importlibÚimport_modulerÛ   ÚutilsÚ_devicer@  r  Ú_as_tensor_fullprecr  rÀ   r–   r”   Ú_get_closure_varsrN  ¹  s*  € åÐð
Ø¥ð
à�|ð
ð ¥Ô 7Ô Cð
ð �Ið	
ð
 �|ð
ð Ð DÐ Dð
ð $Õ%7ð
ð &Õ';ð
ð (Õ)?ð
ð "Õ#3ð
ð 2Õ3Sð
ð �DœJð
ð ¥R Z˜T˜TµR´Xð
ð •5˜‘<”<ð
ð �YÔ4ð
ð  �EœKÔ/ð!
ð" •e”lð#
õ$ (Ý!Ô5ÝÝð+
ð 
ð 
ˆõ. Ðr–   r£   úast.ASTÚreturnÚstrc                óR   — t          j        | ¦  «                             dd¦  «        S )Nú
r÷   )ÚastÚunparseÚreplace)r£   s    r”   Ú_ast_unparserW  Ö  s"   € ÝŒ;�tÑÔ×$Ò$ T¨2Ñ.Ô.Ð.r–   r  rÇ   r&   c                óH  — d}|�˜|j         rCt          |j         ¦  «        D ]-}|j        t          ¦   «         vrdt	          |d¬¦  «        › �} nŒ.nN|j        rG|j                             ¦   «         }t          |¦  «        dk    rdt	          |d         ¦  «        › �}nd}| d›|› �S )	Nr÷   z  # T)rï   r   éÿÿÿÿz  # <unknown>z<60)Ú
user_stackÚreversedÚfilenamer(  r5   ÚstackÚsummaryÚlen)r  rÇ   ÚextraÚfsr^  s        r”   Úget_verbose_code_partrb  Ý  sÏ   € Ø€EØÐØÔð 
	(Ý˜uÔ/Ñ0Ô0ð ð �Ø”;Õ&9Ñ&;Ô&;Ð;Ð;Ø@¥<°¸Ð#>Ñ#>Ô#>Ð@Ð@�EØ�Eð <øð Œ[ð 	(Ø”k×)Ò)Ñ+Ô+ˆGÝ�7‰|Œ|˜aÒÐØ:�|¨G°B¬KÑ8Ô8Ð:Ð:��à'�ØÐ$Ð$˜UÐ$Ð$Ð$r–   rˆ   úUnion[str | list[str]]ú	list[str]c                óP   ‡— t          | t          ¦  «        s| g} ˆfd„| D ¦   «         S )Nc                ó0   •— g | ]}t          |‰¦  «        ‘ŒS rÀ   )rb  )rÁ   r  rÇ   s     €r”   rÄ   z*get_verbose_code_parts.<locals>.<listcomp>ó  s$   ø€ ÐPÐPÐP¸	Õ! )¨UÑ3Ô3ÐPÐPÐPr–   )r«   Úlist)rˆ   rÇ   s    `r”   Úget_verbose_code_partsrh  î  s8   ø€ õ �j¥$Ñ'Ô'ð "Ø �\ˆ
ØPÐPÐPÐPÀZÐPÑPÔPÐPr–   úOptional[int]c                ó–   — | €d S t          | ¦  «        s| S t          | t          j        ¦  «        sJ ‚| j                             ¦   «         S rƒ   )r1   r«   rÛ   ÚSymIntr£   Úmaybe_as_int)Údims    r”   Úconvert_int_to_concrete_valuesrn  ö  sM   € Ø
€{ØˆtÝ�sÑÔð 'Øˆ
å˜#�uœ|Ñ,Ô,Ð,Ð,Ð,ØŒx×$Ò$Ñ&Ô&Ð&r–   c                ó   — d„ | D ¦   «         S )Nc                ó,   — g | ]}t          |¦  «        ‘ŒS rÀ   )rn  )rÁ   rm  s     r”   rÄ   z.convert_to_concrete_values.<locals>.<listcomp>  s!   € ÐJÐJÐJ°CÕ*¨3Ñ/Ô/ÐJÐJÐJr–   rÀ   )Úsize_or_strides    r”   Úconvert_to_concrete_valuesrr     s   € ØJÐJ¸>ÐJÑJÔJÐJr–   c                óú   — |t           j                             ¦   «         z  t           j                             ¦   «         z
  }| j        }| j        j        }| j        }	d|› d|j        › d|› d|› d|› d|	› d|› d|› d�}
|
S )Nzcheck_tensor(rË   z	, device=z, requires_grad=z, size=z	, stride=ú))	rÛ   rÜ   Ú_dispatch_tls_local_include_setÚ_dispatch_tls_local_exclude_setÚdtyper@  ÚindexÚrequires_gradró   )ÚvalueÚnameÚsizesÚstridesÚpytypeÚdispatch_keysÚdispatch_keyrw  Údevice_indexry  Ú	guard_strs              r”   Úget_tensor_guard_code_partrƒ    sÛ   € à�œ×@Ò@ÑBÔBÑBÝŒ×0Ò0Ñ2Ô2ñ3€Lð ŒK€EØ”<Ô%€LØÔ'€Mð	a˜ð 	að 	a Ô 3ð 	að 	a°|ð 	að 	aÀuð 	að 	aØð	að 	aØ0=ð	að 	aØFKð	að 	aØV]ð	að 	að 	að ð Ðr–   c                ó`   — t          t          | ¦  «        ¦  «                             |¦  «        S rƒ   )rg  rg   rx  )ÚdctÚkeys     r”   Úget_key_indexr‡    s)   € õ
 Õ! #Ñ&Ô&Ñ'Ô'×-Ò-¨cÑ2Ô2Ð2r–   c                ó   — d| › d|› d�S )Núlist(dict.keys(ú))[ú]rÀ   )rÎ   rx  s     r”   Úget_key_index_sourcerŒ    s   € Ø0˜VÐ0Ð0¨Ð0Ð0Ð0Ð0r–   Úobjr   r	   c                óT   — t          dt          | ¦  «        › d| › d�dz   dz   ¦  «        ‚)NúType ú for object ú cannot be saved ú@into torch.compile() package since it's defined in local scope. ú@Please define the class at global scope (top level of a module).)Ú	TypeErrorÚtype)r�  s    r”   Úraise_local_type_errorr–    sB   € Ý
Ø=•�S‘	”	Ð=Ð= sÐ=Ð=Ð=Ø
Lñ	Mà
Lñ	Mñô ð r–   T)Úfrozenc                  ó:   — e Zd ZU dZded<   dZded<   dZded<   dS )ÚNNModuleAttrAccessorInfoFÚboolÚpresent_in_generic_dictNúOptional[str]Úl1_keyÚl2_key)rÆ   rò   ró   r›  Ú__annotations__r�  rž  rÀ   r–   r”   r™  r™  &  sL   € € € € € € ð %*ÐÐ)Ð)Ð)Ñ)ð !€FÐ Ð Ð Ñ ð !€FÐ Ð Ð Ñ Ð Ð r–   r™  c                óŒ  — | j                              ¦   «         }t          | j        t          ¦  «        r| j        j        }n,t          |t
          ¦  «        sJ ‚t          || j        ¦  «        }t          ||¦  «        }t          t          |¦  «        ¦  «        |         }t          |t          t          f¦  «        r	|› d|›d�}	n|› d|› d�}	t          | j        t          ¦  «        sG|                     ||| j        t          j        ¬¦  «                             | j        |› d|›�g¦  «         |                     ||	||¬¦  «        S )Nú[r‹  ©rx  rÎ   Úexample_valueÚguard_manager_enumú == )Úbaser{  r«   rx  rC   r2  r‡  rŒ  rg  rg   ÚintrQ  Úget_key_managerÚGuardManagerTypeÚGUARD_MANAGERÚadd_equals_match_guardÚget_value_manager)
rÎ   Úbase_guard_managerÚbase_example_valuer£  r¤  Úbase_source_namerx  Ú
key_sourceÚkey_example_valueÚvalue_sources
             r”   Úgetitem_on_dict_managerr³  5  ss  € ð ”{×'Ò'Ñ)Ô)ÐÝ�&”,Õ 2Ñ3Ô3ð @Ø”Ô"ˆˆåÐ,­dÑ3Ô3Ð3Ð3Ð3ÝÐ0°&´,Ñ?Ô?ˆå%Ð&6¸Ñ>Ô>€Jõ Õ.Ð/AÑBÔBÑCÔCÀEÔJÐÝÐ#¥c­3 ZÑ0Ô0ð ;Ø*ÐCÐCÐ->ÐCÐCÐCˆˆà*Ð:Ð:¨ZÐ:Ð:Ð:ˆÝ�f”lÕ$6Ñ7Ô7ð 

ð 	×*Ò*ØØØ œ,Ý/Ô=ð	 	+ñ 	
ô 	
÷
 !Ò
 ØŒL˜jÐCÐCÐ.?ÐCÐCÐDñ
ô 
ð 
ð ×/Ò/ØØØ#Ø-ð	 0ñ ô ð r–   c                ó¾   — | j         }t          |t          ¦  «        rdS |                      ¦   «         rdS |                     ¦   «         ot          |t
          ¦  «         S ©NFT)Úoriginating_sourcer«   rT   Úis_specialized_nn_moduleÚis_dict_keyrP   )rÇ   rÎ   s     r”   Úmatch_on_id_for_tensorr¹  ^  sa   € ØÔ%€Fõ �&Õ+Ñ,Ô,ð Øˆuà×%Ò%Ñ'Ô'ð Øˆtà×ÒÑÔÐF­
°6½:Ñ(FÔ(FÐ$FÐFr–   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚGuardCodeListrd  Ú	code_listr&   rÇ   N©rÆ   rò   ró   rŸ  rÀ   r–   r”   r»  r»  m  s%   € € € € € € àÐÐÑØ€L€L�L€L€Lr–   r»  c                  ó   — e Zd ZdZdZdS )r©  r8   é   N)rÆ   rò   ró   rª  ÚDICT_GUARD_MANAGERrÀ   r–   r”   r©  r©  s  s   € € € € € Ø€MØÐÐÐr–   r©  Úcodeútypes.CodeTypec                óT   — t          t          t          | ¦  «        ¦  «        ¦  «        S rƒ   )rg  r[  r   )rÁ  s    r”   Ú&code_framelocals_names_reversed_cachedrÄ  x  s!   € å•Õ/°Ñ5Ô5Ñ6Ô6Ñ7Ô7Ð7r–   c                  ó®  — e Zd Z	 dWdXd„Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ ZdYd„Z	 	 dZd!„ZdWd[d(„Zd\d*„Zd]d,„ZdYd-„ZdWd^d/„Zd^d0„ZdYd1„Zd_d5„ZdYd6„ZdYd7„ZdYd8„ZdWdYd9„ZdYd:„ZdYd;„ZdYd<„ZdYd=„ZdYd>„Z dYd?„Z!dWd`dA„Z"dYdB„Z#dYdC„Z$dYdD„Z%dYdE„Z&dYdF„Z'dG„ Z(dH„ Z)dI„ Z*dJ„ Z+dK„ Z,dL„ Z-dM„ Z.dN„ Z/dYdO„Z0dYdP„Z1dYdQ„Z2dYdR„Z3dYdS„Z4dYdT„Z5dWdYdU„Z6dWdV„Z7dS )aÚGuardBuilderNÚf_coderÂ  Úid_refúCallable[[Any, str], str]Ú
source_refúCallable[[Source], str]Úlookup_weakrefsú)Callable[[object], ReferenceType[object]]Úlocal_scopeúdict[str, object]rŠ   rÌ   r�   Úcheck_fn_managerÚCheckFunctionManagerÚserialization_moderœ  c
           	     óB  — || _         || _        || _        || _        ||dœ| _        t
          j                             ¦   «         | j        d<   t          j	        j
        j                             ¦   «         D ]]\  }
}|
                     dd¦  «                             dd¦  «                             dd¦  «        }
|| j        d         |
<   || j        |
<   Œ^|| _        g | _        g | _        g | _        g | _        g | _        || _        t+          ¦   «         | _        | j        j        j        D ]N}| j                             t5          |                      |                     ¦   «         ¦  «        ¦  «        ¦  «         ŒOi | _        i | _        t+          ¦   «         | _        |	| _         d S )N©ÚLÚGÚ__builtins__ú>Ú_ú<ú.Ú_dot_)!rÇ  rÈ  rÊ  rÌ  ÚscopeÚbuiltinsÚ__dict__ÚcopyrÛ   ÚpackageÚpackage_importerÚ_package_imported_modulesr¡   rV  rÌ   ÚargnamesrÁ  Úshape_env_codeÚno_tensor_aliasing_namesÚ!no_tensor_aliasing_guard_managersrÐ  r�   Úkey_order_guarded_dict_idsÚoutput_graphÚguard_on_key_orderr¢   ÚidÚgetr{  rŽ   Ú_cached_guard_managersÚ_cached_duplicate_input_guardsrÒ  )r“   rÇ  rÈ  rÊ  rÌ  rÎ  rŠ   rÌ   rÐ  rÒ  r{  Úpackage_modulerÎ   s                r”   r•   zGuardBuilder.__init__~  s›  € ð ˆŒØˆŒØ$ˆŒØ.ˆÔØ9DÈ<Ð3XÐ3XˆŒ
Ý%-Ô%6×%;Ò%;Ñ%=Ô%=ˆŒ
�>Ñ"õ Œ]Ô+ÔE×KÒKÑMÔMð	.ð 	.ñ 
ØØà—<’<  SÑ)Ô)×1Ò1°#°sÑ;Ô;×CÒCÀCÈÑQÔQˆDà/=ˆDŒJ�~Ô& tÑ,à-ˆDŒJ�tÑÐØ*ˆÔà#%ˆŒà)+ˆŒ	ð
 46ˆÔð 46ˆÔ%ØLNˆÔ.à6FˆÔõ +.©%¬%ˆÔ'ØÔ+Ô8ÔKð 	Mð 	MˆFØÔ+×/Ò/µ°4·8²8¸F¿KºK¹M¼MÑ3JÔ3JÑ0KÔ0KÑLÔLÐLÐLð
 BDˆÔð
 ð 	Ô#õ EHÁEÄEˆÔ+Ø"4ˆÔÐÐr–   c                ó„  — |                       |¦  «        }t          |t          ¦  «        rt          d|j        › �¦  «        ‚|j                             ¦   «         }t          |¦  «        D ]U}||         }t          |j        |¬¦  «        }|                      ||¦  «        }| 	                    ||› d|›d�||¬¦  «         ŒVd S )NzsNot expecting a DictGuardManager. Seems like Dynamo incorrectly added the dict to tx.output.guard_on_key_order for )rx  r¡  r‹  ©r†  rÎ   r£  r¤  )
Úget_guard_managerr«   r   ÚNotImplementedErrorr{  r¶  rg   rF   Úget_guard_manager_typeÚdict_getitem_manager)	r“   r£  rÇ   Údict_mgrÚdict_sourcer†  rz  r²  r¤  s	            r”   Ú#guard_on_dict_keys_and_ignore_orderz0GuardBuilder.guard_on_dict_keys_and_ignore_order¿  s  € Ø×)Ò)¨%Ñ0Ô0ˆÝ�hÕ 0Ñ1Ô1ð 	Ý%ðSØFKÄjðSð Sñô ð ð Ô.×3Ò3Ñ5Ô5ˆõ % ]Ñ3Ô3ð 	ð 	ˆCØ! #Ô&ˆEÝ,¨UÔ-EÈSÐQÑQÔQˆLØ!%×!<Ò!<Ø˜mñ"ô "Ðð ×)Ò)ØØ%Ð0Ð0¨Ð0Ð0Ð0Ø#Ø#5ð	 *ñ ô ð ð ð	ð 	r–   c                ó^  — |                       |¦  «        }t          |t          ¦  «        st          d|j        › �¦  «        ‚t          |t          ¦  «        sJ ‚t          t          |¦  «        ¦  «        D ]·\  }}t          |j        |¦  «        }|                     |||t          j
        ¬¦  «        }t          |¦  «        rB|                      ||¦  «        }|                     |t          d|› d|› d�|¦  «        ¦  «         ŒŽ|                     |t          |› d|›�|¦  «        ¦  «         Œ¸d S )Nz_Expecting a DictGuardManager. Seems like Dynamo forgot to set the right guard manager enum for r¢  z__check_obj_id(rË   rt  r¥  )rò  r«   r   ró  r{  Ú	enumeraterg   rŒ  r¨  r©  rª  rp   rÈ  Úadd_id_match_guardrh  r«  )	r“   rz  rÇ   rö  r¥   r†  r°  Úkey_managerÚid_vals	            r”   Úguard_on_dict_keys_and_orderz)GuardBuilder.guard_on_dict_keys_and_orderÛ  s{  € ð ×)Ò)¨%Ñ0Ô0ˆÝ˜(Õ$4Ñ5Ô5ð 	Ý%ðHØ;@¼:ðHð Hñô ð õ ˜(Õ$4Ñ5Ô5Ð5Ð5Ð5õ "Õ"3°EÑ":Ô":Ñ;Ô;ð 	ð 	‰HˆC�Ý-¨e¬j¸#Ñ>Ô>ˆJØ"×2Ò2ØØ!Ø!Ý#3Ô#Að	 3ñ ô ˆKõ ˜‰~Œ~ð àŸš S¨*Ñ5Ô5�Ø×.Ò.ØÝ*ØA¨*ÐAÐA¸ÐAÐAÐAÀ5ñô ñô ð ð ð ×2Ò2ØÕ/°:Ð0JÐ0JÀ3Ð0JÐ0JÈEÑRÔRñô ð ð ð'	ð 	r–   c                ó–   — t           j        r<t          j        dk    r,t          j        dk     rt	          j        dt          ¦  «         d S | S )N)é   é   )r   r  r8   zMGuards may run slower on Python 3.13.0. Consider upgrading to Python 3.13.1+.)r9   Úissue_3_13_0_warningÚsysÚversion_infoÚwarningsÚwarnÚRuntimeWarning)r£  s    r”   Ú'_get_generic_dict_manager_example_valuez4GuardBuilder._get_generic_dict_manager_example_value  sR   € õ Ô'ð		åÔ  GÒ+Ð+ÝÔ  :Ò-Ð-åŒMØ_Ýñô ð ð �4ØÐr–   c                ó0  — d„ }|j         }	|j        }
t          ¦   «         }t          j        |j        ¦  «        D ].}|                     |j                             ¦   «         ¦  «         Œ/t          ddd¦  «        }|	|
v rt          d|	d¦  «        }ncd|
v r|	|
d         v rt          dd|	¦  «        }nCd|
v r|	|
d         v rt          dd|	¦  «        }n#|	|vrd|
v r|	|
d         v rt          dd|	¦  «        }|j	        s| 
                    |j         |||¬¦  «        S |j        sJ ‚|j        }|j        }|› d	�}dx}}dx}}dx}}|rbt          |j        |¦  «        }|                     ¦   «         }|
|         }|                      ||¦  «        }|}|}|                      ||¦  «        }n|}|}|                      ||¦  «        }|                     ||                      |
¦  «        t&          j        ¬
¦  «        } |||||
||¬¦  «        }|r |||||||¬¦  «        S |S )a(  
        This tries to avoid calling the expensive nn module custom getattr method by
        checking if the attribute is accessible via __dict__. For attributes that
        are not accessible via __dict__ (like descriptors), we fallback to
        PyObject_GetAttr.

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

        The most common and expensive case for nn module guards is of type
        mod.submod1.submod2.submod3.training. We avoid the python getattr of nn
        modules by going through the __dict__.
        c                ó<  — t          | t          ¦  «        rot          ||¦  «        }d|› d|›d�}|                      |||t          j        ¬¦  «                             ||› d|›�g¦  «         |                      ||||¬¦  «        S |                      ||||¬¦  «        S )Nr‰  rŠ  r‹  r¢  r¥  rñ  )	r«   r   r‡  r¨  r©  rª  r«  r¬  rõ  )rÖ   r†  Úsource_namer®  r£  r¤  rx  r°  s           r”   Úgetitem_on_dict_mgrz>GuardBuilder.getattr_on_nn_module.<locals>.getitem_on_dict_mgr.  sç   € õ ˜#Õ/Ñ0Ô0ð õ &Ð&8¸#Ñ>Ô>�ð J¨{ÐIÐI¸uÐIÐIÐI�
Ø×#Ò#ØØ%Ø"%Ý'7Ô'Eð	 $ñ ô ÷
 )Ò(¨°*Ð/IÐ/IÀ#Ð/IÐ/IÐ.JÑKÔKÐKð ×,Ò,ØØ&Ø"/Ø'9ð	 -ñ ô ð ð ×/Ò/ØØ&Ø"/Ø'9ð	 0ñ ô ð r–   FNTÚ_parametersÚ_buffersÚ_modules©ÚattrrÎ   r£  r¤  ú	.__dict__©rÎ   r£  r¤  )rÖ   r†  r  r®  r£  r¤  )Úmemberrß  r�   r  ÚgetmrorÅ   ÚupdateÚkeysr™  r›  Úgetattr_managerr�  rž  r>   r¦  r{  rô  Úget_generic_dict_managerr  r©  rª  )r“   rÎ   r­  r®  r£  r¯  r  r¤  r  Ú	attr_nameÚmod_dictÚall_class_attribute_namesr   Úaccessor_infor�  rž  Úmod_dict_sourceÚl1_source_nameÚl2_source_nameÚl1_valueÚl2_valueÚl1_guard_manager_enumÚl2_guard_manager_enumÚ	l1_sourceÚmod_generic_dict_managerÚl1_mgrs                             r”   Úgetattr_on_nn_modulez!GuardBuilder.getattr_on_nn_module  sõ  € ð6	ð 	ð 	ð@ ”Mˆ	Ø%Ô.ˆå.1©e¬eÐ!Ý”Ð 2Ô <Ñ=Ô=ð 	@ð 	@ˆAØ%×,Ò,¨Q¬Z¯_ª_Ñ->Ô->Ñ?Ô?Ð?Ð?å0°¸¸dÑCÔCˆà˜Ð Ð Ý4°T¸9ÀdÑKÔKˆMˆMØ˜hÐ&Ð&¨9¸ÀÔ8OÐ+OÐ+OÝ4°T¸=È)ÑTÔTˆMˆMØ˜8Ð#Ð#¨	°X¸jÔ5IÐ(IÐ(IÝ4°T¸:ÀyÑQÔQˆMˆMàÐ6Ð6Ð6Ø˜hÐ&Ð&Ø˜X jÔ1Ð1Ð1õ 5°T¸:ÀyÑQÔQˆMàÔ4ð A	ð &×5Ò5Ø”]Ø"Ø+Ø#5ð	 6ñ ô ð ð !Ô'Ð'Ð'Ð'Ø"Ô)ˆFØ"Ô)ˆFð "2Ð<Ð<Ð<ˆOØ.2Ð2ˆN˜^Ø"&Ð&ˆH�xØ<@Ð@Ð!Ð$9Øð Ý& v¤{°FÑ;Ô;�	Ø!*§¢Ñ!1Ô!1�Ø# FÔ+�ð )-×(CÒ(CÀIÈxÑ(XÔ(XÐ%à!,�Ø(�Ø(,×(CÒ(CØ˜Mñ)ô )Ð%Ð%ð "-�Ø(�Ø(,×(CÒ(CØ˜Mñ)ô )Ð%ð (:×'RÒ'RØ&Ø"×JÒJÈ8ÑTÔTÝ#3Ô#Að (Sñ (ô (Ð$ð )Ð(Ø,ØØ*Ø#+Ø&Ø#8ðñ ô ˆFð ð Ø*Ð*ØØØ .Ø'/Ø"*Ø'<ðñ ô ð ð ˆMr–   c                ó�   — |                      ¦   «         }|dk    rdS t          |                      |¦  «        ¦  «        }|| j        v S )Nr÷   F)r{  rë  rì  rè  )r“   rÎ   r  Úobj_ids       r”   Úrequires_key_order_guardingz(GuardBuilder.requires_key_order_guarding¨  sF   € Ø—k’k‘m”mˆØ˜"ÒÐØ�5Ý�D—H’H˜[Ñ)Ô)Ñ*Ô*ˆØ˜Ô8Ð8Ð8r–   c                óÒ   — t           j        }|                      |¦  «        rEt          |t          ¦  «        rt           j        }n#t          |t          ¦  «        sJ ‚t           j        }|S rƒ   )r©  rª  r+  r«   rj   rÀ  r2  )r“   rÎ   r£  r¤  s       r”   rô  z#GuardBuilder.get_guard_manager_type¯  sf   € Ý-Ô;ÐØ×+Ò+¨FÑ3Ô3ð 	Iå˜-­Ñ3Ô3ð IÝ%5Ô%HÐ"Ð"å! -µÑ6Ô6Ð6Ð6Ð6Ý%5Ô%HÐ"Ø!Ð!r–   c                ó"   — |t           j        k    S rƒ   )r©  rÀ  )r“   Úmgr_enums     r”   Úmanager_guards_on_keysz#GuardBuilder.manager_guards_on_keysº  s   € ØÕ+Ô>Ò>Ð>r–   c                óˆ   — | j         j                             | j        d         d| j        d         t          j        ¬¦  «        S )NrÖ  )Ú	f_globalsrÎ   r£  r¤  )rÌ   r„   Úglobals_dict_managerrÝ  r©  rª  r˜   s    r”   Úget_global_guard_managerz%GuardBuilder.get_global_guard_manager½  s@   € ØÔ!Ô&×;Ò;Ø”j ”oØØœ* Sœ/Ý/Ô=ð	 <ñ 
ô 
ð 	
r–   c           	     ó<  ‡— | j         j        }d }‰                     ¦   «         }|dk    r|| j        v r| j        |         S |dk    r|                      |¦  «        }|                      ‰|¦  «        }d }d }d }t          j        }	t          ‰t          ¦  «        rc‰j
                             ¦   «         }|                      |¦  «        }|                      ‰j
        ¦  «        }|                      ‰j
        |¦  «        }	t          ‰t          ¦  «        rct          | j        ¦  «        }
t!          |
¦  «        |
                     ‰j        ¦  «        z
  dz
  }|                     ‰j        |f|||¬¦  «        }�n�t          ‰t(          ¦  «        r2|                      ¦   «                              ‰j        |||¬¦  «        }�nFt          ‰t0          ¦  «        r2|                      ¦   «                              ‰j        |||¬¦  «        }�nÿt          ‰t4          ¦  «        r|S t          ‰t6          ¦  «        r|S t          ‰t8          ¦  «        r|sJ ‚|                     |||¬¦  «        }�nžt          ‰t<          t>          t@          tB          tD          f¦  «        r|sJ ‚|}�nht          ‰tF          ¦  «        r| $                    ˆfd„|||¬¦  «        }�n5t          ‰tJ          ¦  «        r|sJ ‚| &                    |||¬¦  «        }�nt          ‰tN          ¦  «        r$|sJ ‚| (                    ‰j)        |||¬¦  «        }�nÉt          ‰tT          tV          f¦  «        rv|sJ ‚t          |tX          j-        j.        ¦  «        r3t_          |¦  «        t`          u r|  1                    ‰||||||¦  «        }�nW| 2                    ‰j)        |||¬¦  «        }�n7t          ‰tf          th          f¦  «        r±|sJ ‚t          |tj          tl          j7        f¦  «        sJ ‚t          |tp          ¦  «        r,|  9                    |	¦  «        sJ ‚tu          ‰||||¦  «        }�n³t          ‰j        tv          ¦  «        rty          d	¦  «        ‚|                     ‰j        |||¬¦  «        }�njt          ‰tz          ¦  «        rD t}          |d
‰j?        j         @                    ¦   «         › d�¦  «        ‰jA        |||¬¦  «        }�nt          ‰t„          ¦  «        r$|sJ ‚| C                    ‰jA        |||¬¦  «        }�nØt          ‰tˆ          ¦  «        r$|sJ ‚| E                    ‰j        |||¬¦  «        }�nŸt          ‰tŒ          ¦  «        rä|sJ ‚t          |tj          tl          j7        f¦  «        r
J d¦   «         ‚t          |tŽ          ¦  «        r'‰jH        s | E                    ‰j        |||¬¦  «        }�nt          |t’          ¦  «        r'‰jH        s | J                    ‰j        |||¬¦  «        }�nã‰j        }‰jH        r‰ K                    ¦   «         }| L                    ||||¬¦  «        }�n¦t          ‰tš          ¦  «        rÊ|sJ ‚t�          |¦  «        sJ ‚‰jO        sE| P                    ||jQ        t          j        ¬¦  «         L                    ‰jR        |||¬¦  «        }�n0|jS        }|€J ‚|dz   }| T                    ||t          j        ¬¦  «        }t          |tp          ¦  «        rJ ‚|                     ‰jR        |||¬¦  «        }�nÇt          ‰tª          ¦  «        r$|sJ ‚| $                    t¬          |||¬¦  «        }�nŽt          ‰t®          ¦  «        r |sJ ‚| $                    d„ |||¬¦  «        }�nYt          ‰t°          ¦  «        r |sJ ‚| $                    d„ |||¬¦  «        }�n$t          ‰t²          ¦  «        r |sJ ‚| $                    d„ |||¬¦  «        }�nït          ‰t´          ¦  «        r |sJ ‚| $                    d„ |||¬¦  «        }�nºt          ‰t¶          ¦  «        r |sJ ‚| $                    d„ |||¬¦  «        }�n…t          ‰t¸          ¦  «        r |sJ ‚| $                    d„ |||¬¦  «        }�nPt          ‰tº          ¦  «        r$|sJ ‚| ^                    ‰j        |||¬¦  «        }�nt          ‰tv          ¦  «        rCt          |tp          ¦  «        st¿          d¦  «        ‚| `                    ‰j        |||¬¦  «        }n¿t          ‰tÂ          ¦  «        r|sJ ‚| b                    |||¬¦  «        }n�t          ‰tÆ          ¦  «        r|sJ ‚| d                    |||¬¦  «        }n[t          ‰tÊ          ¦  «        r|sJ ‚| $                    d„ |||¬¦  «        }n't¿          d‰› d‰                     ¦   «         › �¦  «        ‚|| j        ‰                     ¦   «         <   |S )Nr÷   r8   rñ  )Úglobal_namerÎ   r£  r¤  r  c                óF   •— t          ‰                     ¦   «         ¦  «        S rƒ   )rm   Ú
_get_index)rÙ  rÎ   s    €r”   r5  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>"  s!   ø€ Õ(HØ×%Ò%Ñ'Ô'ñ)ô )€ r–   )Úpython_lambdarÎ   r£  r¤  r  zUExpecting clean index here. Likely Dynamo forgot to mark a dict as guard_on_key_orderÚtensor_property_Ú_manager)r¥   rÎ   r£  r¤  zUse DictGetItemSourcez.__kwdefaults__c                ó6   — |                       ¦   «         d         S rœ   ©Ú__tensor_flatten__©r   s    r”   r5  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>Í  s   € ¨×(<Ò(<Ñ(>Ô(>¸qÔ(A€ r–   c                ó*   — |                       ¦   «         S rƒ   )Ú__obj_flatten__r>  s    r”   r5  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>Õ  s   € ¨×(9Ò(9Ñ(;Ô(;€ r–   c                óN   — |                       ¦   «                              ¦   «         S rƒ   )Ú_typeÚqualified_namer>  s    r”   r5  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>Ý  s   € ¨¯ª©	¬	×(@Ò(@Ñ(BÔ(B€ r–   c                ó*   — |                       ¦   «         S rƒ   )Úget_baser>  s    r”   r5  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>å  s   € ¨¯
ª
©¬€ r–   c                ó*   — |                       ¦   «         S rƒ   )Úitemr>  s    r”   r5  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>í  s   € ¨¯ª©¬€ r–   c                ó*   — t          j        | ¦  «        S rƒ   )rÛ   rM  r>  s    r”   r5  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>õ  s   € ­Ô(AÀ!Ñ(DÔ(D€ r–   r¢  z4ConstDictKeySource can only work on DictGuardManagerc                ó    — t          | ¦  «        S rƒ   )ri   r>  s    r”   r5  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>  s   € Õ(8¸Ñ(;Ô(;€ r–   zmissing guard manager builder z - )frÌ   r„   r{  rí  rì  rô  r©  rª  r«   rA   r¦  Úget_guard_manager_from_sourcero   rR   rÄ  rÇ  r_  rx  Ú
local_nameÚframelocals_managerrM   r3  rõ  r5  rO   Úglobal_weakref_managerrN   rW   r[   Útype_managerrU   rS   r]   r\   rJ   rY   Úlambda_managerrP   Úgrad_managerrK   Úgeneric_getattr_managerr  r>   r^   rÛ   ÚnnÚModulerk   rw   r(  r  rF   rG   r2  rC  rD  r   r/  r³  rC   ÚRuntimeErrorr    ÚgetattrÚpropÚlowerr¥   r   Úindexed_managerrQ   Úlist_getitem_managerrL   rg  Úindex_is_sliceÚtupleÚtuple_getitem_managerÚunpack_sliceÚgetitem_managerrE   ÚcallableÚis_kwÚfunc_defaults_managerÚ__defaults__Úidx_keyÚ__kwdefaults__Úfunc_kwdefaults_managerrT   r  rX   rH   rV   r=   r@   rI   rZ   Útuple_iterator_getitem_managerÚAssertionErrorr¨  r_   Úweakref_call_managerr?   Úcall_function_no_args_managerrD   )r“   rÎ   Úroot_guard_managerr£  r  r¤  r¯  r®  r­  Úbase_guard_manager_enumÚframelocals_names_reversedÚframelocals_idxÚoutrx  Ú
kwdefaultsÚ	kw_sourcerö  s    `               r”   rJ  z*GuardBuilder.get_guard_manager_from_sourceÅ  s»  ø€ Ø!Ô/Ô4ÐàˆØ—k’k‘m”mˆà˜"ÒÐ °Ô0KÐ!KÐ!KØÔ.¨{Ô;Ð;à˜"ÒÐØ ŸHšH [Ñ1Ô1ˆMà!×8Ò8¸ÀÑOÔOÐð  ÐØ!ÐØ!ÐÝ"2Ô"@ÐÝ�f�mÑ,Ô,ð 	Ø%œ{×/Ò/Ñ1Ô1ÐØ!%§¢Ð*:Ñ!;Ô!;ÐØ!%×!CÒ!CÀFÄKÑ!PÔ!PÐØ&*×&AÒ&AØ”Ð/ñ'ô 'Ð#õ
 �&�+Ñ&Ô&ð E	õ *PØ”ñ*ô *Ð&õ Ð.Ñ/Ô/Ø,×2Ò2°6Ô3DÑEÔEñFàñð ð
 %×8Ò8ØÔ&¨Ð8Ø"Ø+Ø#5ð	 9ñ ô ˆC‰Cõ �F�LÑ)Ô)ð p	ð ×/Ò/Ñ1Ô1×FÒFØÔ&Ø"Ø+Ø#5ð	 Gñ ô ˆC‰Cõ �FÕ/Ñ0Ô0ð f	Ø×/Ò/Ñ1Ô1×HÒHØ"Ô.Ø"Ø+Ø#5ð	 Iñ ô ˆC‰Cõ �FÕ-Ñ.Ô.ð _	ð &Ð%Ý�F�NÑ+Ô+ð [	Ø%Ð%Ý�F�JÑ'Ô'ð Y	Ø%Ð%Ð%Ð%Ø$×1Ò1Ø"Ø+Ø#5ð 2ñ ô ˆC‰Cõ
 ØåÝÝ+Ý2Ý"ðñ	
ô 	
ð R	ð &Ð%Ð%Ð%Ø$ˆC‰CÝ�FÕ8Ñ9Ô9ð F	Ø$×3Ò3ðð ð ð ð #Ø+Ø#5ð 4ñ ô ˆC‰Cõ �F�JÑ'Ô'ð }	Ø%Ð%Ð%Ð%Ø$×1Ò1Ø"Ø+Ø#5ð 2ñ ô ˆC‰Cõ
 �FÕ-Ñ.Ô.ð v	Ø%Ð%Ð%Ð%Ø$×<Ò<Ø”]Ø"Ø+Ø#5ð	 =ñ ô ˆC‰Cõ �F�ZÕ)GÐHÑIÔIð n	Ø%Ð%Ð%Ð%õ Ð-­u¬x¬Ñ?Ô?ðå&Ð'9Ñ:Ô:Ý.ð/ð /ð ×/Ò/ØØ&Ø&Ø!Ø$ØØ&ñô �‘ð )×8Ò8ØœØ&Ø"/Ø'9ð	 9ñ ô �‘õ �FÕ.Õ0IÐJÑKÔKð V	Ø%Ð%Ð%Ð%ÝÐ0µ4½Ô9PÐ2QÑRÔRÐRÐRÐRÝÐ,Õ.>Ñ?Ô?ð Ø×2Ò2Ð3JÑKÔKÐKÐKÐKÝ-ØØ&Ø&Ø!Ø&ñô �‘õ ˜fœlÕ,>Ñ?Ô?ð Ý&ð8ñô ð ð )×=Ò=ØœØ&Ø"/Ø'9ð	 >ñ ô �‘õ �FÕ0Ñ1Ô1ð ~	ð•'Ø"ØE 6¤;Ô#3×#9Ò#9Ñ#;Ô#;ÐEÐEÐEñô ð ”JØ"Ø+Ø#5ðñ ô ˆC‰Cõ �F�MÑ*Ô*ð t	Ø%Ð%Ð%Ð%à$×4Ò4Ø”JØ"Ø+Ø#5ð	 5ñ ô ˆC‰Cõ �FÕ-Ñ.Ô.ð k	Ø%Ð%Ð%Ð%Ø$×9Ò9Ø”LØ"Ø+Ø#5ð	 :ñ ô ˆC‰Cõ �F�MÑ*Ô*ð c	Ø%Ð%Ð%Ð%Ý!Ø"¥T­;Ô+BÐ$Cñô ð 'ð 'à&ñ'ô 'ð 'õ Ð,­dÑ3Ô3ð ¸FÔ<Qð Ø(×=Ò=ØœØ&Ø"/Ø'9ð	 >ñ ô �‘õ Ð.µÑ6Ô6ð ¸vÔ?Tð Ø(×>Ò>ØœØ&Ø"/Ø'9ð	 ?ñ ô �‘ð œ�ØÔ(ð 2Ø"×/Ò/Ñ1Ô1�EØ(×8Ò8ØØ&Ø"/Ø'9ð	 9ñ ô �‘õ �F�NÑ+Ô+ð F	Ø%Ð%Ð%Ð%ÝÐ.Ñ/Ô/Ð/Ð/Ð/Ø”<ð Ø(×>Ò>Ø+Ø"4Ô"AÝ'7Ô'Eð ?ñ ô ÷ "’/ØœØ&Ø"/Ø'9ð	 "ñ ô ð	 ‘ð 0Ô>�
Ø'Ð3Ð3Ð3Ø,Ð/@Ñ@�	ð .×EÒEØ$Ø",Ý'7Ô'Eð Fñ ô �õ
 & hÕ0@ÑAÔAÐAÐAÐAà×3Ò3ØœØ&Ø"/Ø'9ð	 4ñ ô �‘õ �FÕ-Ñ.Ô.ð d	Ø%Ð%Ð%Ð%Ø$×3Ò3Ý(Ø"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ2Ñ3Ô3ð \	Ø%Ð%Ð%Ð%Ø$×3Ò3ØAÐAØ"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ5Ñ6Ô6ð T	Ø%Ð%Ð%Ð%Ø$×3Ò3Ø;Ð;Ø"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ;Ñ<Ô<ð L	Ø%Ð%Ð%Ð%Ø$×3Ò3ØBÐBØ"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �F�OÑ,Ô,ð D	Ø%Ð%Ð%Ð%Ø$×3Ò3Ø4Ð4Ø"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ0Ñ1Ô1ð <	Ø%Ð%Ð%Ð%Ø$×3Ò3Ø0Ð0Ø"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ-Ñ.Ô.ð 4	Ø%Ð%Ð%Ð%Ø$×3Ò3ØDÐDØ"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ6Ñ7Ô7ð ,	Ø%Ð%Ð%Ð%Ø$×CÒCØ”lØ"Ø+Ø#5ð	 Dñ ô ˆC‰Cõ ˜Õ 2Ñ3Ô3ð $	ÝÐ0Õ2BÑCÔCð Ý$ØJñô ð ð %×4Ò4Ø”lØ"Ø+Ø#5ð	 5ñ ô ˆCˆCõ �FÕ-Ñ.Ô.ð 	Ø%Ð%Ð%Ð%Ø$×9Ò9Ø"Ø+Ø#5ð :ñ ô ˆCˆCõ
 �FÕ4Ñ5Ô5ð 	Ø%Ð%Ð%Ð%Ø$×BÒBØ"Ø+Ø#5ð Cñ ô ˆCˆCõ
 �FÕ1Ñ2Ô2ð 	Ø%Ð%Ð%Ð%Ø$×3Ò3Ø;Ð;Ø"Ø+Ø#5ð	 4ñ ô ˆCˆCõ !ØK°ÐKÐK¸F¿KºK¹M¼MÐKÐKñô ð ð 69ˆÔ# F§K¢K¡M¤MÑ2Øˆ
r–   rÇ   r&   c                ó6   — |                       |j        ¦  «        S rƒ   )rJ  r¶  ©r“   rÇ   s     r”   rò  zGuardBuilder.get_guard_manager+  s   € Ø×1Ò1°%Ô2JÑKÔKÐKr–   Tc                óÖ  — |€t          ¦   «         }d                     |                     ¦   «         ¦  «        }t          ||¦  «        \  }}i }d| j        d         i}	t
                               d|¦  «         t          ||	|¦  «          |d         |                     ¦   «         Ž }
|r"| j	        j
                             |
|¦  «         d S | j	        j
                             |
|¦  «         d S )NrË   rÖ  zPython shape guard function:
%sÚ___make_guard_fn)rN  Újoinr  Úbuild_guard_functionrÝ  Ú
guards_logÚdebugÚexecÚvaluesrÌ   r„   Úadd_epilogue_lambda_guardÚadd_lambda_guard)r“   rˆ   r‰   r†   Úis_epilogueÚmake_guard_fn_argsÚ_guard_bodyÚpycodern  Úglobals_for_guard_fnÚguard_fns              r”   Ú$add_python_lambda_leaf_guard_to_rootz1GuardBuilder.add_python_lambda_leaf_guard_to_root.  s  € ð ÐÝ,Ñ.Ô.ˆLð "ŸYšY |×'8Ò'8Ñ':Ô':Ñ;Ô;ÐÝ2°:Ð?QÑRÔRÑˆ�VØ ˆØ # T¤Z°¤_Ð5ÐÝ×ÒÐ;¸VÑDÔDÐDÝˆVÐ)¨3Ñ/Ô/Ð/Ø*�3Ð)Ô*¨L×,?Ò,?Ñ,AÔ,AÐBˆØð 	Sð ÔÔ#×=Ò=ØÐ,ñô ð ð ð ð ÔÔ#×4Ò4°XÐ?QÑRÔRÐRÐRÐRr–   r{  rQ  r†   úOptional[dict[str, Any]]rP  r   c                óN   — |€t          ¦   «         }t          || j        |¦  «        S rƒ   )rN  ÚevalrÝ  )r“   r{  r†   s      r”   rì  zGuardBuilder.getQ  s'   € ØÐÝ,Ñ.Ô.ˆLÝ�D˜$œ* lÑ3Ô3Ð3r–   úUnion[str, Guard]c                ó6  — t          |t          ¦  «        r|}n|j        }t          |¦  «        }|| j        vrat
          j        j                             |¦  «        }|r;|dk    rt           
                    d|¦  «         | j                             |¦  «         |S )Nr¿  zinvalid var name: %s)r«   rQ  r{  Ústrip_function_callrä  rÛ   rÜ   rÝ   Úis_valid_var_nameÚlogÚwarningr  )r“   rÇ   r{  r¦  Úis_valids        r”   Úarg_refzGuardBuilder.arg_ref[  s•   € å�e�SÑ!Ô!ð 	ØˆDˆDà”:ˆDÝ" 4Ñ(Ô(ˆØ�t”}Ð$Ð$Ý”xÔ'×9Ò9¸$Ñ?Ô?ˆHØð +Ø˜q’=�=Ý—K’KÐ 6¸Ñ>Ô>Ð>Ø”×$Ò$ TÑ*Ô*Ð*àˆr–   r  c                ó”   — t          |j        |¦  «        }t          |||j        |j        ¬¦  «        }|                     | ¦  «         d S )N)r]  rZ  )r>   r¶  r&   r]  rZ  Úcreate)r“   rÇ   r  r‚  Úattr_sourceÚ	new_guards         r”   Ú_guard_on_attributez GuardBuilder._guard_on_attributek  sR   € Ý  Ô!9¸9ÑEÔEˆåØ˜¨¬ÀÔAQð
ñ 
ô 
ˆ	ð 	×Ò˜ÑÔÐÐÐr–   c           	     óò  — |j         }t          |t          ¦  «        r|j        }t          |t          ¦  «        sJ d|j        › �¦   «         ‚|j        }|                     ¦   «         }|j        }|                      |¦  «        }t          |  	                    |¦  «        |¦  «        }d }|r
d|› d|›d�}n	d|› d|›d�}|  
                    ||g|  	                    |¦  «        ¬¦  «         |                      |¦  «        }	|rÔ|  	                    |                     ¦   «         ¦  «        }
|  	                    |¦  «        }|                      ||
¦  «        }t          |t          j        j        ¦  «        rCt!          |¦  «        t"          u r-|                      ||	||
||                     ¦   «         |¦  «        S |	                     ||j        |
|¬¦  «         d S |	                     |t+          ||¦  «        ¦  «         d S )Nzinvalid source úhasattr(rË   rt  znot hasattr()Úprovided_guarded_objectr  )r¶  r«   rS   r¦  r>   r{  r  rŽ  rú   rì  Ú_set_guard_export_inforJ  rô  rÛ   rR  rS  rk   rw   r(  r  Úadd_no_hasattr_guardrh  )r“   rÇ   rÎ   Úbase_sourcer¦  r  ÚrefÚvalrÁ  Úbase_managerr£  r®  r¤  s                r”   ÚHASATTRzGuardBuilder.HASATTRt  s-  € ØÔ)ˆÝ�f�nÑ-Ô-ð 	!Ø”[ˆFÝ˜&¥*Ñ-Ô-ÐMÐMÐ/MÀÄÐ/MÐ/MÑMÔMÐMØ”kˆØ×ÒÑ!Ô!ˆØŒ}ˆà�lŠl˜4Ñ Ô ˆÝ�d—h’h˜t‘n”n dÑ+Ô+ˆØˆØð 	3Ø.˜cÐ.Ð. TÐ.Ð.Ð.ˆDˆDà2 #Ð2Ð2¨Ð2Ð2Ð2ˆDØ×#Ò#Ø�D�6°4·8²8¸D±>´>ð 	$ñ 	
ô 	
ð 	
ð ×9Ò9¸+ÑFÔFˆØð 	Yð !ŸHšH V§[¢[¡]¤]Ñ3Ô3ˆMØ!%§¢¨$¡¤ÐØ!%×!<Ò!<¸VÀ]Ñ!SÔ!SÐõ
 Ð-­u¬x¬Ñ?Ô?ðå&Ð'9Ñ:Ô:Ý.ð/ð /ð ×0Ò0ØØ Ø&Ø!ØØ—K’K‘M”MØ&ñô ð ð ×,Ò,ØØ œ:Ø"/Ø'9ð	 -ñ ô ð ð ð ð ×-Ò-¨dÕ4JÈ4ÐQVÑ4WÔ4WÑXÔXÐXÐXÐXr–   ÚNonec                ó¼  — |€J ‚|                       |¦  «        }|                      |j        ¦  «        }t          |t          j        j        ¦  «        sJ ‚|                      |¦  «        }|j        › d�}|                     ||  	                    |j
        ¦  «        t          j        ¬¦  «        }d|›d|› d�}|                     d|t          ||¦  «        ¦  «         d S )Nr  r  znot ___dict_contains(rË   z
.__dict__)F)rŽ  rì  r{  r«   rÛ   rR  rS  rò  r  r  rß  r©  rª  Úadd_dict_contains_guardrh  )	r“   rÇ   r  rš  r›  rœ  r  r&  rÁ  s	            r”   ÚNOT_PRESENT_IN_GENERIC_DICTz(GuardBuilder.NOT_PRESENT_IN_GENERIC_DICTª  sö   € ØÐÐÐØ�lŠl˜5Ñ!Ô!ˆØ�hŠh�u”zÑ"Ô"ˆÝ˜#�uœxœÑ/Ô/Ð/Ð/Ð/à×-Ò-¨eÑ4Ô4ˆà"œZÐ2Ð2Ð2ˆØ#/×#HÒ#HØ"Ø×FÒFÀsÄ|ÑTÔTÝ/Ô=ð $Iñ $
ô $
Ð ð A tÐ@Ð@°Ð@Ð@Ð@ˆØ ×8Ò8Ø�4Õ/°°eÑ<Ô<ñ	
ô 	
ð 	
ð 	
ð 	
r–   c                ó  — |                       |j        ¦  «        }t          |t          j        j        ¦  «        r|j        r|j        }nt          |¦  «        }| j        dk    r|j	        |j
        k    rt          |¦  «         |                      |d|j        › d�¦  «        }d|                      |¦  «        › d|› d�}|                      ||g¦  «         |                      |¦  «                             |t#          ||¦  «        ¦  «         d S )NÚsaveútype(rt  z___check_type_id(rË   )rì  r{  r«   rÛ   Ú_subclassesÚ
FakeTensorr~  r•  rÒ  ró   rÆ   r–  rÈ  rŽ  r—  rò  Úadd_type_match_guardrh  )r“   rÇ   rz  rÏ   r*  rÁ  s         r”   Ú
TYPE_MATCHzGuardBuilder.TYPE_MATCH¾  s  € à—’˜œÑ$Ô$ˆÝ�e�UÔ.Ô9Ñ:Ô:ð 	¸u¼|ð 	Ø”ˆAˆAå�U‘”ˆAàÔ" fÒ,Ð,ØŒ~ ¤Ò+Ð+Ý& uÑ-Ô-Ð-à—’˜QÐ 5¨¬
Ð 5Ð 5Ð 5Ñ6Ô6ˆØC 4§<¢<°Ñ#6Ô#6ÐCÐC¸&ÐCÐCÐCˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×:Ò:ØÕ*¨4°Ñ7Ô7ñ	
ô 	
ð 	
ð 	
ð 	
r–   c                ó¼  — | j         dk    r$t          j        j                             d¦  «        ‚|                      |¦  «        }|                      |j        ¦  «        }t          |                      |j        ¦  «        ¦  «        }d|› d|› �}|  	                    ||g¦  «         |  
                    |¦  «                             |t          ||¦  «        ¦  «         d S )Nr£  z(DICT_VERSION guard cannot be serialized.z___dict_version(ú) == )rÒ  rÛ   rÝ   r;   ÚPackageErrorrŽ  rì  r{  r   r—  rò  Úadd_dict_version_guardrh  )r“   rÇ   rš  r›  ÚversionrÁ  s         r”   ÚDICT_VERSIONzGuardBuilder.DICT_VERSIONÒ  sà   € ØÔ" fÒ,Ð,Ý”-Ô#×0Ò0Ø:ñô ð ð �lŠl˜5Ñ!Ô!ˆØ�hŠh�u”zÑ"Ô"ˆÝ˜tŸxšx¨¬
Ñ3Ô3Ñ4Ô4ˆØ5 #Ð5Ð5¨GÐ5Ð5ˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2ð 	×Ò˜uÑ%Ô%×<Ò<ØÕ'¨¨eÑ4Ô4ñ	
ô 	
ð 	
ð 	
ð 	
r–   r†  Úinvertrš  c                óò   — |                       |¦  «        }|rdnd}|› d|›d|› d�}|                      ||g¦  «         |                      |¦  «                             | |t	          ||¦  «        ¦  «         d S )Núnot r÷   z___dict_contains(rË   rt  )rŽ  r—  rò  r   rh  )r“   rÇ   r†  r¯  Údict_refÚ	maybe_notrÁ  s          r”   ÚDICT_CONTAINSzGuardBuilder.DICT_CONTAINSä  s›   € Ø—<’< Ñ&Ô&ˆà$Ð,�F�F¨"ˆ	ØÐBÐB¨cÐBÐB°xÐBÐBÐBˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×=Ò=ØˆJ˜Õ3°D¸%Ñ@Ô@ñ	
ô 	
ð 	
ð 	
ð 	
r–   c                ó®  — |                       |¦  «        }|                      |j        ¦  «        }t          |t          ¦  «        sJ ‚|› d|›�g}|                      ||¦  «         |r8|                      |¦  «                             t          ||¦  «        ¦  «         d S |                      |¦  «         	                    t          ||¦  «        ¦  «         d S )Nr¥  )
rŽ  rì  r{  ro   rš  r—  rò  Úadd_true_match_guardrh  Úadd_false_match_guard©r“   rÇ   rš  r›  rÁ  s        r”   Ú
BOOL_MATCHzGuardBuilder.BOOL_MATCHï  sì   € à�lŠl˜5Ñ!Ô!ˆØ�hŠh�u”zÑ"Ô"ˆÝ�c�4Ñ Ô Ð Ð Ð ØÐ#Ð#˜CÐ#Ð#Ð$ˆØ×#Ò# E¨4Ñ0Ô0Ð0àð 	Ø×"Ò" 5Ñ)Ô)×>Ò>Ý& t¨UÑ3Ô3ñô ð ð ð ð ×"Ò" 5Ñ)Ô)×?Ò?Ý& t¨UÑ3Ô3ñô ð ð ð r–   c                ó  — |                       |¦  «        }|                      |j        ¦  «        }|�J ‚|› d�g}|                      ||¦  «         |                      |¦  «                             t          ||¦  «        ¦  «         d S )Nz is None)rŽ  rì  r{  r—  rò  Úadd_none_match_guardrh  r¸  s        r”   Ú
NONE_MATCHzGuardBuilder.NONE_MATCH   s“   € à�lŠl˜5Ñ!Ô!ˆØ�hŠh�u”zÑ"Ô"ˆØˆ{ˆ{ˆ{ØÐ Ð Ð Ð!ˆØ×#Ò# E¨4Ñ0Ô0Ð0à×Ò˜uÑ%Ô%×:Ò:Ý" 4¨Ñ/Ô/ñ	
ô 	
ð 	
ð 	
ð 	
r–   c                ó   — | j         dk    r$t          j        j                             d¦  «        ‚t          |j        t          ¦  «        r7|                      t          |j        j
        t          j        ¦  «        ¦  «        S |                      |¦  «        }|                      |j        ¦  «        }|                      ||j        ¦  «        }d|› d|› d�}|                      ||g¦  «         |                      |¦  «                             |t'          ||¦  «        ¦  «         t          |j        t(          ¦  «        rNt          |t          j        j        ¦  «        r1|j        j        }|                      |¦  «        }|�|| j        |<   d S d S d S d S )Nr£  z$ID_MATCH guard cannot be serialized.z___check_obj_id(rË   rt  )rÒ  rÛ   rÝ   r;   r«  r«   r¶  r[   r¨  r&   r¦  rÆ  rŽ  rì  r{  rÈ  r—  rò  rû  rh  rR   rR  rS  rK  rÌ  rŽ   )r“   rÇ   rš  r›  rý  rÁ  rK  Úweak_ids           r”   ÚID_MATCHzGuardBuilder.ID_MATCH  sŽ  € ØÔ" fÒ,Ð,Ý”-Ô#×0Ò0Ð1WÑXÔXÐXå�eÔ.µ
Ñ;Ô;ð 	à—?’?Ý�eÔ.Ô3µ\Ô5LÑMÔMñô ð ð �lŠl˜5Ñ!Ô!ˆØ�hŠh�u”zÑ"Ô"ˆØ—’˜S %¤*Ñ-Ô-ˆØ2 #Ð2Ð2¨Ð2Ð2Ð2ˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×8Ò8ØÕ*¨4°Ñ7Ô7ñ	
ô 	
ð 	
õ �eÔ.µÑ<Ô<ð 	?õ ˜#�uœxœÑ/Ô/ð ?Ø"Ô5Ô@�
Ø×.Ò.¨sÑ3Ô3�ØÐ&Ø7>�DÔ(¨Ñ4Ð4Ð4ð	?ð 	?ð?ð ?ð 'Ð&r–   c                ó@  — |                       |¦  «        }|                      |j        ¦  «        }t          |t          j        ¦  «        sJ ‚|› d�}|                      ||g¦  «         |                      |¦  «                             t          ||¦  «        ¦  «         d S )Nú is not None)
rŽ  rì  r{  r«   rÛ   ÚTensorr—  rò  Úadd_not_none_guardrh  )r“   rÇ   rz  rš  r›  rÁ  s         r”   ÚNOT_NONE_MATCHzGuardBuilder.NOT_NONE_MATCH,  s¡   € Ø�lŠl˜5Ñ!Ô!ˆØ�hŠh�u”zÑ"Ô"ˆÝ˜#�uœ|Ñ,Ô,Ð,Ð,Ð,ØÐ#Ð#Ð#ˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×8Ò8Ý" 4¨Ñ/Ô/ñ	
ô 	
ð 	
ð 	
ð 	
r–   c                ó$  — |                       |¦  «        }|                      |j        ¦  «        }t          |t          j        j        ¦  «        sJ ‚|› d|›d�}|                      |¦  «                             |t          ||¦  «        ¦  «         d S )Nz.raw_repr() == z.raw_repr())
rŽ  rì  r{  r«   rÛ   rÜ   ÚDispatchKeySetrò  Úadd_dispatch_key_set_guardrh  )r“   rÇ   rš  r›  rˆ   s        r”   ÚDISPATCH_KEY_SET_MATCHz#GuardBuilder.DISPATCH_KEY_SET_MATCH7  s—   € Ø�lŠl˜5Ñ!Ô!ˆØ�hŠh�u”zÑ"Ô"ˆÝ˜#�uœxÔ6Ñ7Ô7Ð7Ð7Ð7ØÐ>Ð>¨CÐ>Ð>Ð>ˆ
à×Ò˜uÑ%Ô%×@Ò@ØÕ'¨
°EÑ:Ô:ñ	
ô 	
ð 	
ð 	
ð 	
r–   c                óH   — |                       |dt          j        ¦  «         d S )NrÆ   )r“  rÆ  ÚEQUALS_MATCHrr  s     r”   Ú
NAME_MATCHzGuardBuilder.NAME_MATCHA  s#   € Ø× Ò  ¨
µLÔ4MÑNÔNÐNÐNÐNr–   c                óð   ‡‡— | j         j        j        Šd‰› �g}|                      ||g¦  «         t          j        j        Šˆˆfd„}| j        j         	                    |t          ||¦  «        ¦  «         d S )Nz,torch.autograd.forward_ad._current_level == c                ó   •— ‰j         ‰k    S rƒ   )Ú_current_level)r   Ú
dual_levelÚ
forward_ads    €€r”   Úfnz#GuardBuilder.DUAL_LEVEL.<locals>.fnM  s   ø€ ØÔ,°
Ò:Ð:r–   )rÐ  ré  rÏ  r—  rÛ   ÚautogradrÐ  rÌ   r„   r|  rh  )r“   rÇ   rÁ  rÑ  rÏ  rÐ  s       @@r”   Ú
DUAL_LEVELzGuardBuilder.DUAL_LEVELD  sž   øø€ ð Ô*Ô7ÔBˆ
ØK¸zÐKÐKÐLˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2å”^Ô.ˆ
ð	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	ÔÔ×0Ò0ØÕ& t¨UÑ3Ô3ñ	
ô 	
ð 	
ð 	
ð 	
r–   c                ó  ‡‡— | j         j        j        }d„ |D ¦   «         Šd‰› d�g}|                      ||¦  «         t          j        j        j        Šˆˆfd„}| j        j	         
                    |t          ||¦  «        ¦  «         d S )Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS rÀ   )Ú	get_state)rÁ   Úcis     r”   rÄ   z6GuardBuilder.FUNCTORCH_STACK_MATCH.<locals>.<listcomp>X  s    € Ð/Ð/Ð/ R�"—,’,‘.”.Ð/Ð/Ð/r–   z5torch._functorch.pyfunctorch.compare_functorch_state(rt  c                ó   •—  ‰‰¦  «        S rƒ   rÀ   )r   Ú
compare_fnÚstatess    €€r”   rÑ  z.GuardBuilder.FUNCTORCH_STACK_MATCH.<locals>.fn_  s   ø€ Ø�:˜fÑ%Ô%Ð%r–   )rÐ  ré  Úfunctorch_layersr—  rÛ   Ú
_functorchÚpyfunctorchÚcompare_functorch_staterÌ   r„   r|  rh  )r“   rÇ   ÚcisrÁ  rÑ  rÙ  rÚ  s        @@r”   ÚFUNCTORCH_STACK_MATCHz"GuardBuilder.FUNCTORCH_STACK_MATCHT  s¸   øø€ ð Ô#Ô0ÔAˆØ/Ð/¨3Ð/Ñ/Ô/ˆØQÈÐQÐQÐQÐRˆØ×#Ò# E¨4Ñ0Ô0Ð0õ Ô%Ô1ÔIˆ
ð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	ÔÔ×0Ò0ØÕ& t¨UÑ3Ô3ñ	
ô 	
ð 	
ð 	
ð 	
r–   c                óL  ‡‡‡‡— t           j        j        j        j        Št           j        j        j        j        Šˆfd„Š ‰ ‰¦   «         ¦  «        Šd‰› �g}|                      ||¦  «         ˆˆˆfd„}| j        j         	                    |t          ||¦  «        ¦  «         d S )Nc                ól   •—  ‰| ¦  «        sd S | \  }}t          t          t          | ¦  «        ¦  «        S rƒ   )r[  Úmaprë  )ÚhooksÚ	pack_hookÚunpack_hookÚare_inline_hookss      €r”   Úhooks_ids_fnz?GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKS.<locals>.hooks_ids_fnl  s;   ø€ Ø#Ð# EÑ*Ô*ð Ø�tà%*Ñ"ˆI�{Ý��R ™œÑ(Ô(Ð(r–   zCtorch._functorch.aot_autograd.utils.top_saved_tensors_hooks ids == c                ó2   •— ‰ ‰ ‰¦   «         ¦  «        k    S rƒ   rÀ   )r   Ú	get_hooksÚguard_hooks_idsrè  s    €€€r”   rÑ  z5GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKS.<locals>.fnz  s   ø€ Ø" l l°9°9±;´;Ñ&?Ô&?Ò?Ð?r–   )rÛ   rÜ  Ú_aot_autogradrK  Útop_saved_tensors_hooksÚ"saved_tensors_hooks_are_inlineabler—  rÌ   r„   r|  rh  )r“   rÇ   rÁ  rÑ  rç  rê  rë  rè  s       @@@@r”   ÚAUTOGRAD_SAVED_TENSORS_HOOKSz)GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKSf  sí   øøøø€ ÝÔ$Ô2Ô8ÔPˆ	åÔÔ*Ô0ÔSð 	ð	)ð 	)ð 	)ð 	)ð 	)ð '˜, y y¡{¤{Ñ3Ô3ˆð dÐRaÐcÐcð
ˆð 	×#Ò# E¨4Ñ0Ô0Ð0ð	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	ÔÔ×0Ò0ØÕ& t¨UÑ3Ô3ñ	
ô 	
ð 	
ð 	
ð 	
r–   c                óÌ  ‡‡— |                       |j        ¦  «        Št          |                       |j        ¦  «                             ¦   «         d         ¦  «        Št	          ‰d¦  «        rt          ‰¦  «         ˆˆfd„}nˆfd„}dt          |¦  «        › dt          j        ¦   «         › �}|  	                    |¦  «         
                    |t          ||¦  «        ¦  «         d S )Nr8   Ú__metadata_guard__c                ó`   •— ‰                      ‰|                      ¦   «         d         ¦  «        S ©Nr8   )rñ  r=  )r   Úoriginal_metadatarz  s    €€r”   Úmetadata_checkerzEGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.metadata_checker‡  s1   ø€ Ø×/Ò/Ø% q×';Ò';Ñ'=Ô'=¸aÔ'@ñô ð r–   c                ó@   •— |                       ¦   «         d         ‰k    S ró  r<  )r   rô  s    €r”   rõ  zEGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.metadata_checkerŽ  s    ø€ Ø×+Ò+Ñ-Ô-¨aÔ0Ð4EÒEÐEr–   Ú___check_metadata_Ú_c)rì  r{  r   r=  rú   rx   rë  r#   Úcurrent_compile_idrò  r|  rh  )r“   rÇ   rõ  r5  rô  rz  s       @@r”   ÚTENSOR_SUBCLASS_METADATA_MATCHz+GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH�  s  øø€ Ø—’˜œÑ$Ô$ˆÝ$ T§X¢X¨e¬jÑ%9Ô%9×%LÒ%LÑ%NÔ%NÈqÔ%QÑRÔRÐÝ�5Ð.Ñ/Ô/ð 	FÝ% eÑ,Ô,Ð,ðð ð ð ð ð ð ðFð Fð Fð Fð Fð i­2Ð.>Ñ+?Ô+?ÐhÐhÅ>ÔCdÑCfÔCfÐhÐhˆØ×Ò˜uÑ%Ô%×6Ò6ØÕ4°[À%ÑHÔHñ	
ô 	
ð 	
ð 	
ð 	
r–   Úrecompile_hintc                ó@  ‡— |                       |¦  «        }|                      |j        ¦  «        }t          r|t          j        t          j        t          j        t          j        t          j        t          j	        t          j
        t          j        t          j        t          j        t          j        f}nd}t          t           f}t#          t$          t&          t"          t(          t*          t,          t.          t0          j        h|£|£z  ¦  «        }t0          j                             ¦   «         rddlm} ddlm}	m }
m!}m"} ||||
||	fz   }ddl#m$} ||fz   }dd l%m&c m'} tQ          ||¦  «        s7 |j)        t'          |¦  «        ¦  «        sJ dt'          |¦  «        › �¦   «         ‚tQ          |tT          ¦  «        r¥tW          j,        |¦  «        r‘|  -                    |¦  «         g }| .                    d|› d�¦  «         |  /                    ||¦  «         |  0                    |¦  «         1                    te          ¦   «         d	         tg          ||¦  «        ¦  «         d S tQ          |th          ¦  «        r¥t          j,        |¦  «        r‘|  -                    |¦  «         g }| .                    d
|› d�¦  «         |  /                    ||¦  «         |  0                    |¦  «         1                    te          ¦   «         d         tg          ||¦  «        ¦  «         d S |› d|›�g}tQ          ||¦  «        rtk          |¦  «        }tg          ||¦  «        }‰rˆfd„|D ¦   «         }|  0                    |¦  «         6                    ||¦  «         |  /                    ||¦  «         d S )NrÀ   r   )Ú
DeviceMesh)Ú_StridedShardÚPartialÚ	ReplicateÚShard)Ú_IntWrapperzUnexpected type z__math_isnan(rt  r;  z__numpy_isnan(r<  r¥  c                ó    •— g | ]
}|› d ‰› d�‘ŒS )z (HINT: rt  rÀ   )rÁ   rÂ   rû  s     €r”   rÄ   z-GuardBuilder.EQUALS_MATCH.<locals>.<listcomp>ú  s7   ø€ ð "ð "ð "Ø7;�4Ð2Ð2 Ð2Ð2Ð2ð"ð "ð "r–   )7rŽ  rì  r{  r  Úint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64Úfloat16Úfloat32Úfloat64rg  r�   r[  rh   r•  Ú	frozensetÚsliceÚrangerj   rÛ   ÚSizeÚdistributedÚis_availableÚtorch.distributed.device_meshrý  Ú(torch.distributed.tensor.placement_typesrþ  rÿ  r   r  Útorch.export.dynamic_shapesr  Útorch.utils._pytreerK  r3   ro   Úis_constant_classrH  rF  rG  r¨  r  r—  rò  r|  rN  rh  Úcomplexr   r«  )r“   rÇ   rû  rš  r›  Únp_typesÚok_mutable_typesÚok_typesrý  rþ  rÿ  r   r  r  ÚpytreerÁ  r‰   s     `              r”   rÊ  zGuardBuilder.EQUALS_MATCH–  s  ø€ Ø�lŠl˜5Ñ!Ô!ˆØ�hŠh�u”zÑ"Ô"ˆÝð 	å”Ý”Ý”Ý”Ý”Ý”	Ý”	Ý”	Ý”
Ý”
Ý”
ð/ˆHˆHð ˆHå ¥#˜;ÐåÝ!åÝÝÝÝÝÝ”
ð
ð ð
ð "ð
ññ
ô 
ˆõ Ô×)Ò)Ñ+Ô+ð 	Ø@Ð@Ð@Ð@Ð@Ð@ðð ð ð ð ð ð ð ð ð ð ð ð  ØØØØØð#ñ ˆHð 	<Ð;Ð;Ð;Ð;Ð;à˜{˜nÑ,ˆà,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,å�c˜8Ñ$Ô$ð 	
Ð(@¨Ô(@ÅÀcÁÄÑ(KÔ(Kð 	
ð 	
Ø*�t C™yœyÐ*Ð*ñ	
ô 	
ð 	
õ
 �#•uÑÔð 
	¥$¤*¨S¡/¤/ð 
	Ø�OŠO˜EÑ"Ô"Ð"ØˆDØ�KŠKÐ.¨Ð.Ð.Ð.Ñ/Ô/Ð/Ø×'Ò'¨¨tÑ4Ô4Ð4à×"Ò" 5Ñ)Ô)×:Ò:Ý!Ñ#Ô# NÔ3Ý& t¨UÑ3Ô3ñô ð ð ˆFõ �#•wÑÔð 
	¥B¤H¨S¡M¤Mð 
	Ø�OŠO˜EÑ"Ô"Ð"ØˆDØ�KŠKÐ/¨Ð/Ð/Ð/Ñ0Ô0Ð0Ø×'Ò'¨¨tÑ4Ô4Ð4à×"Ò" 5Ñ)Ô)×:Ò:Ý!Ñ#Ô# OÔ4Ý& t¨UÑ3Ô3ñô ð ð ˆFð Ð#Ð#˜CÐ#Ð#Ð$ˆÝ�#Ð'Ñ(Ô(ð 	 õ ˜3‘-”-ˆCå3°D¸%Ñ@Ô@ÐØð 	ð"ð "ð "ð "Ø?Qð"ñ "ô "Ðð 	×Ò˜uÑ%Ô%×<Ò<¸SÐBTÑUÔUÐUØ×#Ò# E¨4Ñ0Ô0Ð0Øˆr–   c                óP  — |                       |j        ¦  «        }t          |t          ¦  «        r|                      |¦  «         d S |€|                      |¦  «         d S t          |t          j        ¦  «        r|                      |¦  «         d S |  	                    |¦  «         d S rƒ   )
rì  r{  ro   rš  r¹  r¼  ÚtypesÚCodeTyper¿  rÊ  ©r“   rÇ   r›  s      r”   ÚCONSTANT_MATCHzGuardBuilder.CONSTANT_MATCH  s¢   € Ø�hŠh�u”zÑ"Ô"ˆÝ�#•tÑÔð 	%Ø�OŠO˜EÑ"Ô"Ð"Ð"Ð"Øˆ[Ø�OŠO˜EÑ"Ô"Ð"Ð"Ð"Ý�C�œÑ(Ô(ð 	%Ø�MŠM˜%Ñ Ô Ð Ð Ð à×Ò˜eÑ$Ô$Ð$Ð$Ð$r–   c                ó´  — | j         dk    r$t          j        j                             d¦  «        ‚|                      |¦  «         |                      |j        ¦  «        }t          |d¦  «        r?t          |j
        t          ¦  «        sJ ‚|                      |dt          j        ¦  «         d S t          j        dddt!          |¦  «        › d�dg¬	¦  «         d S )
Nr£  z%NN_MODULE guard cannot be serialized.Útrainingz-Attempted to guard on uninitialized nn.Moduler÷   zKAttempted to setup an NN_MODULE guard on uninitialized nn.Module subclass `z`.zIEnsure the `nn.Module` subclass instance has called `super().__init__()`.)Úgb_typeÚcontextÚexplanationÚhints)rÒ  rÛ   rÝ   r;   r«  r¿  rì  r{  rú   ro   r%  rš  r“  rÆ  r#  Úunimplemented_v2r•  r"  s      r”   Ú	NN_MODULEzGuardBuilder.NN_MODULE  sô   € àÔ" fÒ,Ð,Ý”-Ô#×0Ò0Ø7ñô ð ð 	�Š�eÑÔÐØ�hŠh�u”zÑ"Ô"ˆÝ�3˜
Ñ#Ô#ð 	Ý˜#œ,­Ñ-Ô-Ð-Ð-Ð-Ø×$Ò$ U¨J½Ô8SÑTÔTÐTÐTÐTåÔ ØGØð5Ý'+¨C¡y¤yð5ð 5ð 5ð `ððñ ô ð ð ð r–   c                óŠ   — | j         dk    r$t          j        j                             d¦  «        ‚|                      |¦  «        S )z0things like torch.add and user defined functionsr£  z*FUNCTION_MATCH guard cannot be serialized.)rÒ  rÛ   rÝ   r;   r«  r¿  rr  s     r”   ÚFUNCTION_MATCHzGuardBuilder.FUNCTION_MATCH#  sF   € ð Ô" fÒ,Ð,Ý”-Ô#×0Ò0Ø<ñô ð ð �}Š}˜UÑ#Ô#Ð#r–   c                ó¤  — | j         dk    r$t          j        j                             d¦  «        ‚|                      |j        ¦  «        }t          |¦  «        t          j	        k    rTt          |d¦  «        rD|                      |dt          j        ¦  «         |                      |dt          j        ¦  «         dS |                      |¦  «         dS )z!matches a closure by __code__ id.r£  z)CLOSURE_MATCH guard cannot be serialized.Ú__code__N)rÒ  rÛ   rÝ   r;   r«  rì  r{  r•  r   ÚFunctionTyperú   r“  rÆ  r�  r-  r"  s      r”   ÚCLOSURE_MATCHzGuardBuilder.CLOSURE_MATCH,  sÀ   € ð Ô" fÒ,Ð,Ý”-Ô#×0Ò0Ø;ñô ð ð �hŠh�u”zÑ"Ô"ˆå�‰9Œ9�Ô*Ò*Ð*­w°s¸JÑ/GÔ/GÐ*Ø×$Ò$ U¨J½Ô8LÑMÔMÐMØ×$Ò$ U¨J½Ô8SÑTÔTÐTÐTÐTà×Ò Ñ&Ô&Ð&Ð&Ð&r–   c                ó,   — |                       |¦  «        S rƒ   )r-  rr  s     r”   ÚBUILTIN_MATCHzGuardBuilder.BUILTIN_MATCH;  s   € Ø×"Ò" 5Ñ)Ô)Ð)r–   c                óÎ  — |                       |¦  «        }|                      |j        ¦  «        }t          |t          ¦  «        s|                      |¦  «         g }t          |¦  «        dk    r|                     d|› �¦  «         n(|                     d|› dt          |¦  «        › �¦  «         |                      ||¦  «         t          |t          ¦  «        rF|  	                    |¦  «         
                    t          |¦  «        t          ||¦  «        ¦  «         d S |  	                    |¦  «                             t          |¦  «        t          ||¦  «        ¦  «         d S )Nr   r±  zlen(rª  )rŽ  rì  r{  r«   r2  r¨  r_  r  r—  rò  Úadd_dict_length_check_guardrh  Úadd_length_check_guard©r“   rÇ   rš  rz  rÁ  s        r”   ÚSEQUENCE_LENGTHzGuardBuilder.SEQUENCE_LENGTH>  sZ  € ð �lŠl˜5Ñ!Ô!ˆØ—’˜œÑ$Ô$ˆå˜%¥Ñ&Ô&ð 	#à�OŠO˜EÑ"Ô"Ð"àˆÝˆu‰:Œ:˜Š?ˆ?Ø�KŠK˜˜s˜˜Ñ%Ô%Ð%Ð%à�KŠKÐ5˜sÐ5Ð5­¨U©¬Ð5Ð5Ñ6Ô6Ð6à×#Ò# E¨4Ñ0Ô0Ð0Ý�e�TÑ"Ô"ð 	Ø×"Ò" 5Ñ)Ô)×EÒEÝ�E‘
”
Õ2°4¸Ñ?Ô?ñô ð ð ð ð ×"Ò" 5Ñ)Ô)×@Ò@Ý�E‘
”
Õ2°4¸Ñ?Ô?ñô ð ð ð r–   c                óè  — |                       |¦  «        }|                      |j        ¦  «        }t          |¦  «        }g }|                     d|› dt          |¦  «        › �¦  «         |                      ||¦  «         t          |¦  «        }|                      |d|j        › d�¦  «        }|                      |¦  «         	                    t          |¦  «        |t          ||¦  «        ¦  «         d S )Nz___tuple_iterator_len(rª  r¤  rt  )rŽ  rì  r{  r•  r  rv   r—  rÈ  rò  Úadd_tuple_iterator_length_guardrh  )r“   rÇ   rš  rz  rÏ   rÁ  r*  s          r”   ÚTUPLE_ITERATOR_LENzGuardBuilder.TUPLE_ITERATOR_LENX  sî   € Ø�lŠl˜5Ñ!Ô!ˆØ—’˜œÑ$Ô$ˆÝ�‰KŒKˆàˆØ�ŠÐR¨SÐRÐRÕ7IÈ%Ñ7PÔ7PÐRÐRÑSÔSÐSØ×#Ò# E¨4Ñ0Ô0Ð0å�‰KŒKˆØ—’˜QÐ 5¨¬
Ð 5Ð 5Ð 5Ñ6Ô6ˆà×Ò˜uÑ%Ô%×EÒEÝ˜uÑ%Ô% vÕ/EÀdÈEÑ/RÔ/Rñ	
ô 	
ð 	
ð 	
ð 	
r–   c           
     óâ  — |                       |¦  «        }|                      |j        ¦  «        }t          |¦  «        }g }t	          |¦  «        }|                     d|› d|› �¦  «         |                      ||¦  «         t          |¦  «        }|                      |d|j        › d�¦  «        }|\  }}	}
|                      |¦  «         	                    ||	|
|t          ||¦  «        ¦  «         d S )Nz___normalize_range_iter(rª  r¤  rt  )rŽ  rì  r{  r•  rr   r  r—  rÈ  rò  Úadd_range_iterator_match_guardrh  )r“   rÇ   rš  rz  rÏ   rÁ  Únormalized_range_iterr*  ÚstartÚstopÚsteps              r”   ÚRANGE_ITERATOR_MATCHz!GuardBuilder.RANGE_ITERATOR_MATCHh  sü   € Ø�lŠl˜5Ñ!Ô!ˆØ—’˜œÑ$Ô$ˆÝ�‰KŒKˆàˆÝ 4°UÑ ;Ô ;ÐØ�ŠÐP¨sÐPÐPÐ9NÐPÐPÑQÔQÐQØ×#Ò# E¨4Ñ0Ô0Ð0å�‰KŒKˆØ—’˜QÐ 5¨¬
Ð 5Ð 5Ð 5Ñ6Ô6ˆà1Ñˆˆt�TØ×Ò˜uÑ%Ô%×DÒDØ�4˜˜vÕ'=¸dÀEÑ'JÔ'Jñ	
ô 	
ð 	
ð 	
ð 	
r–   c                óz  — | j         dk    r$t          j        j                             d¦  «        ‚|                      |¦  «        }|                      |                     ¦   «         ¦  «        }t          |j        ¦  «        st          |¦  «        rd S ||f}|| j	        v rd S | j	         
                    ||f¦  «         | j	         
                    ||f¦  «         |› d|› �g}|                      ||¦  «         t          |                      |¦  «        |                      |¦  «        t          ||¦  «        ¦  «         d S )Nr£  z/DUPLICATE_INPUT guard cannot be serialized yet.ú is )rÒ  rÛ   rÝ   r;   r«  rŽ  r{  r   r¶  rî  r¢   r—  r   rò  rJ  rh  )r“   rÇ   Úsource_bÚref_aÚref_br†  rÁ  s          r”   ÚDUPLICATE_INPUTzGuardBuilder.DUPLICATE_INPUT{  sV  € ØÔ" fÒ,Ð,Ý”-Ô#×0Ò0ØAñô ð ð —’˜UÑ#Ô#ˆØ—’˜XŸ]š]™_œ_Ñ-Ô-ˆå#ØÔ$ñ
ô 
ð 	å% hÑ/Ô/ð	ð ˆFð �eˆnˆØ�$Ô5Ð5Ð5ØˆFàÔ+×/Ò/°¸°Ñ?Ô?Ð?ØÔ+×/Ò/°¸°Ñ?Ô?Ð?àÐ%Ð%˜eÐ%Ð%Ð&ˆØ×#Ò# E¨4Ñ0Ô0Ð0å%Ø×"Ò" 5Ñ)Ô)Ø×.Ò.¨xÑ8Ô8Ý" 4¨Ñ/Ô/ñ	
ô 	
ð 	
ð 	
ð 	
r–   c                ó.  — | j         dk    r$t          j        j                             d¦  «        ‚|                      |¦  «        › d�g}|                      ||¦  «         |                      |¦  «                             t          ||¦  «        ¦  «         d S )Nr£  z)WEAKREF_ALIVE guard cannot be serialized.rÁ  )
rÒ  rÛ   rÝ   r;   r«  rŽ  r—  rò  rÃ  rh  ©r“   rÇ   rÁ  s      r”   ÚWEAKREF_ALIVEzGuardBuilder.WEAKREF_ALIVE™  s¢   € ØÔ" fÒ,Ð,Ý”-Ô#×0Ò0Ø;ñô ð ð —<’< Ñ&Ô&Ð4Ð4Ð4Ð5ˆà×#Ò# E¨4Ñ0Ô0Ð0Ø×Ò˜uÑ%Ô%×8Ò8Ý" 4¨Ñ/Ô/ñ	
ô 	
ð 	
ð 	
ð 	
r–   c           	     óZ  — |                       |¦  «        }|                      |j        ¦  «        }g }|                     d|› dt	          |                     ¦   «         ¦  «        › �¦  «         |                      ||¦  «         |                      |¦  «                             ||¦  «         dS )z7Guard on the key order of types.MappingProxyType objectzlist(z.keys()) == N)	rŽ  rì  r{  r  rg  r  r—  rò  Úadd_mapping_keys_guardr7  s        r”   ÚMAPPING_KEYS_CHECKzGuardBuilder.MAPPING_KEYS_CHECK¥  sž   € à�lŠl˜5Ñ!Ô!ˆØ—’˜œÑ$Ô$ˆàˆØ�ŠÐA˜CÐAÐA­T°%·*²*±,´,Ñ-?Ô-?ÐAÐAÑBÔBÐBØ×#Ò# E¨4Ñ0Ô0Ð0Ø×Ò˜uÑ%Ô%×<Ò<¸UÀDÑIÔIÐIÐIÐIr–   c           
     ó  — |                       |¦  «        }|                      |j        ¦  «        }|t          j        j        j        u r|                      |¦  «         dS |                      |¦  «         g }| 	                    d|› dt          t          |¦  «        ¦  «        ›�¦  «         |                      ||¦  «         |                      |j        ¦  «        r|                      ||¦  «         dS |                      ||¦  «         dS )z6Insert guard to check that the keys of a dict are sameNr‰  z)) == )rŽ  rì  r{  rÛ   rK  r3   ÚSUPPORTED_NODESr®  r8  r  rg  rg   r—  r+  r¶  rþ  rø  r7  s        r”   ÚDICT_KEYS_MATCHzGuardBuilder.DICT_KEYS_MATCH¯  s	  € à�lŠl˜5Ñ!Ô!ˆØ—’˜œÑ$Ô$ˆà•E”KÔ'Ô7Ð7Ð7à×Ò˜eÑ$Ô$Ð$ØˆFà×Ò˜UÑ#Ô#Ð#àˆð
 	�ŠÐS cÐSÐSµÕ6GÈÑ6NÔ6NÑ1OÔ1OÐSÐSÑTÔTÐTØ×#Ò# E¨4Ñ0Ô0Ð0à×+Ò+¨EÔ,DÑEÔEð 	CØ×-Ò-¨e°UÑ;Ô;Ð;Ð;Ð;à×4Ò4°U¸EÑBÔBÐBÐBÐBr–   c                óL   — t           j        rdS |                      |¦  «         dS )z\Special guard to skip guards on empty hooks. This is controlled by skip_nnmodule_hook_guardsN)r9   Úskip_nnmodule_hook_guardsr8  rr  s     r”   ÚEMPTY_NN_MODULE_HOOKS_DICTz'GuardBuilder.EMPTY_NN_MODULE_HOOKS_DICTÈ  s,   € åÔ+ð 	àˆFØ×Ò˜UÑ#Ô#Ð#Ð#Ð#r–   c                ó   — d S rƒ   rÀ   rr  s     r”   Ú	GRAD_MODEzGuardBuilder.GRAD_MODEÏ  ó   € Øˆr–   c                ó   — d S rƒ   rÀ   rr  s     r”   ÚDETERMINISTIC_ALGORITHMSz%GuardBuilder.DETERMINISTIC_ALGORITHMSÒ  rW  r–   c                ó   — d S rƒ   rÀ   rr  s     r”   ÚTORCH_FUNCTION_STATEz!GuardBuilder.TORCH_FUNCTION_STATEÕ  rW  r–   c                ó   — d S rƒ   rÀ   rr  s     r”   ÚFSDP_TRAINING_STATEz GuardBuilder.FSDP_TRAINING_STATEØ  rW  r–   c                óò   — |j         t          j        u sJ ‚d| j        j        j        ›�g}|                      ||¦  «         |                      |¦  «                             t          ||¦  «        ¦  «         dS )z/Guard on CURRENT_DEVICE per torch.utils._devicezutils_device.CURRENT_DEVICE == N)
rÎ   r)   ÚGLOBALrÐ  ré  Úcurrent_devicer—  rò  Úadd_default_device_guardrh  rJ  s      r”   ÚDEFAULT_DEVICEzGuardBuilder.DEFAULT_DEVICEÛ  s‹   € àŒ|�{Ô1Ð1Ð1Ð1Ð1ð d¨dÔ.CÔ.PÔ._ÐcÐcð
ˆð 	×#Ò# E¨4Ñ0Ô0Ð0à×Ò˜uÑ%Ô%×>Ò>Ý" 4¨Ñ/Ô/ñ	
ô 	
ð 	
ð 	
ð 	
r–   c                ó¾
  ‡ ‡"‡#‡$‡%— |j         dk    sJ ‚‰ j        j        Š%‰ j        dk    r?‰ j        j        €J ‚‰ j        j        }|j        }|j        }|j        �|j        }|j        }�nP‰%j	        Š#d„ ‰#D ¦   «         Š$ˆ%fd„}‰%j
        r­i }g }	g }
i }t          ¦   «         }‰%j
        D ][}|j        ‰%j        v r1t          j        j                             ||‰%j        ||	|
||¦  «         ŒAt&                               d¦  «         Œ\t+          |	|
t-          |                     ¦   «         ¦  «        |d¬¦  «        Š"nd Š"ˆ"ˆ#ˆ$ˆ%ˆ fd„}t0          j        r3	  |d	¦  «        \  }}}d}n0# t4          $ r d
} |d¦  «        \  }}Y nw xY wd
} |d¦  «        \  }}‰ j        j        j        s‰%j                             ¦   «          ‰ j        dk    r‚t9          ¦   «                              d¦  «        }|�t=          |t>          ¦  «        sJ ‚|€g n%t-          |j          !                    ¦   «         ¦  «        }tE          |||||¬¦  «        ‰ j        _        |j#        D ]}‰  $                    ||g¦  «         ŒtK          j&        ¦   «         x}r|j'         (                    |j#        ¦  «         g }g }|sâ|sJ ‚|j#        |j         }}|sd S | )                    ¦   «         D ]·\  }}t=          |tT          ¦  «        rd
}Œ‰                      |                      ¦   «         i tV          ¥tY          ¦   «         ¥¬¦  «        }t=          |tZ          ¦  «        r| .                    ||f¦  «         Œˆt=          |t^          ¦  «        r| .                    ||f¦  «         Œµd
}Œ¸|�s—dd l0}ddl1m2} |sJ ‚|j#        |j         }}tg          ||z   ¦  «        }	 ˆ fd„ti          |¦  «        D ¦   «         }d 5                    d„ ti          |¦  «        D ¦   «         ¦  «        }d 5                    d„ ti          |¦  «        D ¦   «         ¦  «        }|rd|› d�}|rd|› d�}tm          j7        d|› d|› dd 5                    |¦  «        › d�¦  «        }tp           9                    d||j#        ¦  «         | :                    |¦  «        } | ;                    | j<        |j=        ¦  «        j>        }!|!sJ ‚	 t          |t�          |¦  «        t�          |¦  «        |!| |j#        ¦  «         d S # t          jA        jB        jC        $ r Y nw xY w|j#        r9‰  D                    |j#        |j#        i tV          ¥tY          ¦   «         ¥¬¦  «         d S d S )Nr÷   Úloadc                ó   — g | ]	}|j         ‘Œ
S rÀ   )Úsymbolic_context©rÁ   r  s     r”   rÄ   z*GuardBuilder.SHAPE_ENV.<locals>.<listcomp>ù  s   € Ð=Ð=Ð=°Q˜aÔ0Ð=Ð=Ð=r–   c                ó8   •‡— ˆfd„‰j         |          D ¦   «         S )Nc                óF   •— g | ]}t          |t          j        ‰¦  «        ‘ŒS rÀ   )r    r   ÚSIZE)rÁ   rÎ   rm  s     €r”   rÄ   z?GuardBuilder.SHAPE_ENV.<locals>.get_sources.<locals>.<listcomp>þ  s8   ø€ ð ð ð àõ )¨µÔ1DÀcÑJÔJðð ð r–   )Útracked_fakes_id_to_source)Út_idrm  ré  s    `€r”   Úget_sourcesz+GuardBuilder.SHAPE_ENV.<locals>.get_sourcesû  s7   øø€ ðð ð ð à".Ô"IÈ$Ô"Oðñ ô ð r–   z+Untracked tensor used in export constraintsF)Úsource_pairsÚderived_equalitiesÚphantom_symbolsÚrelaxed_sourcesÚ	warn_onlyc           	     ó˜   •— ‰j                              d„ ‰D ¦   «         d„ ‰D ¦   «         ‰‰‰j        ‰j        j        j         | ¬¦  «        S )Nc                ó   — g | ]	}|j         ‘Œ
S rÀ   )Úfakerg  s     r”   rÄ   zCGuardBuilder.SHAPE_ENV.<locals>._get_code_parts.<locals>.<listcomp>%  s   € Ð(Ð(Ð( �Q”VÐ(Ð(Ð(r–   c                ó   — g | ]	}|j         ‘Œ
S rÀ   )rÎ   rg  s     r”   rÄ   zCGuardBuilder.SHAPE_ENV.<locals>._get_code_parts.<locals>.<listcomp>&  s   € Ð*Ð*Ð* !�Q”XÐ*Ð*Ð*r–   )Úinput_contextsÚequalities_inputsrÊ  Úignore_staticÚlangs)Ú	shape_envÚproduce_guards_verboserÊ  rÐ  ré  Úexport)rz  rx  ra  rw  ré  r“   s    €€€€€r”   Ú_get_code_partsz/GuardBuilder.SHAPE_ENV.<locals>._get_code_parts#  sc   ø€ Ø#Ô-×DÒDØ(Ð( RÐ(Ñ(Ô(Ø*Ð* rÐ*Ñ*Ô*Ø#1Ø&7Ø#œà'+Ô'<Ô'IÔ'PÐ#PØð Eñ 	ô 	ð 	r–   )ÚpythonÚverbose_pythonÚcppT)r  r€  r£  Úcpp_code_parts)Úpython_code_partsr‰   r‚  Úpython_fallbackÚshape_env_sources)r†   r   )ÚCppCodeCachec                ó\   •— g | ](\  }}‰                      t          ||¦  «        ¦  «        ‘Œ)S rÀ   )rJ  r   )rÁ   ÚirÎ   r“   s      €r”   rÄ   z*GuardBuilder.SHAPE_ENV.<locals>.<listcomp>�  sE   ø€ ð "ð "ð "á!˜˜6ð ×6Ò6µ}ÀVÈQÑ7OÔ7OÑPÔPð"ð "ð "r–   rË   c              3  ó2   K  — | ]\  }\  }}|› d |› d�V — ŒdS )z = int_values[r‹  NrÀ   ©rÁ   rˆ  rÙ  Úsymbols       r”   ú	<genexpr>z)GuardBuilder.SHAPE_ENV.<locals>.<genexpr>’  sO   è è € ð ,ð ,á&˜™;˜A˜vð Ð1Ð1¨QÐ1Ð1Ð1ð,ð ,ð ,ð ,ð ,ð ,r–   c              3  ó2   K  — | ]\  }\  }}|› d |› d�V — ŒdS )z = float_values[r‹  NrÀ   rŠ  s       r”   rŒ  z)GuardBuilder.SHAPE_ENV.<locals>.<genexpr>–  sO   è è € ð .ð .á&˜™;˜A˜vð Ð3Ð3¨qÐ3Ð3Ð3ð.ð .ð .ð .ð .ð .r–   zint64_t ú;zdouble aä  
                #include <algorithm>
                #include <cstdint>
                #include <cmath>
                #include <c10/util/generic_math.h>

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

                EXTERN_DLL_EXPORT int8_t guard(int64_t *int_values, double *float_values) {
                  z
                  z
                  return (z) && (z%);
                }
                zC++ shape guard function: %s %s)Er{  rÐ  ré  rÒ  Úshape_code_partsrƒ  r‰   r‚  r„  Útracked_fakesÚexport_constraintsr�   rl  rk  rÛ   r}  Údynamic_shapesÚ_process_equalitiesr{  r‹  rŒ  r0   rg  rz  r9   Ú enable_cpp_symbolic_shape_guardsÚOverflowErrorÚfreezeÚlocalsrì  r«   r.   Úsource_to_symbolr  ÚShapeCodePartsÚexprsr—  r#   Útry_getÚshape_env_guardsr  r¡   rB   r2   rN  r§  r  rH  ÚctypesÚtorch._inductor.codecacher†  r2  rú  ru  ÚtextwrapÚdedentrw  rx  rd  ÚcastrÇ   Úc_void_prz  r   r_  Ú	_inductorr;   ÚInvalidCxxCompilerrƒ  )&r“   rÇ   r�  rƒ  r‰   r‚  r„  rm  Únamesrn  ro  rp  rq  Ú
constraintr~  Úmaybe_cpp_code_partsÚmaybe_shape_env_sourcesrÁ  Úcompile_contextÚint_source_to_symbolÚfloat_source_to_symbolrˆ   r˜  rÎ   r‹  r£  r�  r†  Úguard_managersÚint_symbols_strÚfloat_symbols_strÚfunc_strÚclibÚcguardrx  ra  rw  ré  s&   `                                 @@@@r”   Ú	SHAPE_ENVzGuardBuilder.SHAPE_ENVè  si  øøøøø€ ØŒz˜RÒÐÐÐØÔ,Ô9ˆØÔ" fÒ,Ð,ØÔ(Ô9ÐEÐEÐEØ#Ô4ÔEÐØ 0Ô BÐØ!1Ô!DÐØÔ.Ð:Ø!1Ô!@�Ø.Ô>ˆO‰Oð Ô+ˆBØ=Ð=¸"Ð=Ñ=Ô=ˆNðð ð ð ð ð Ô.ð )Ø46�Ø<>�ð ð #ð 68�Ý/2©u¬u�Ø".Ô"Að Sð S�JØ!”¨,Ô*QÐQÐQÝœÔ3×GÒGØ&Ø'Ø(Ô2Ø!Ø(Ø.Ø+Ø+ñ	ô 	ð 	ð 	õ ŸšÐ$QÑRÔRÐRÐRÝ$6Ø!-Ø'9Ý$(¨×)?Ò)?Ñ)AÔ)AÑ$BÔ$BØ$3Ø#ð%ñ %ô %Ð!Ð!ð %)Ð!ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
õ Ô6ð ðð (˜Ð(KÑLÔLñ JÐ%Ð'9¸>ð ',�O�OøÝ$ð ð ð à&*�OØ<K¸OØ4ñ=ô =Ñ9Ð%Ð'9Ð'9Ð'9ðøøøð #'�Ø8G¸Ø0ñ9ô 9Ñ5Ð!Ð#5ð Ô(Ô5Ô<ð 0ØÔ&×-Ò-Ñ/Ô/Ð/àÔ" fÒ,Ð,õ $*¡8¤8§<¢<Ð0@Ñ#AÔ#AÐ Ø'Ð/µ:Ø$Õ&;ñ4ô 4Ð/Ð/Ð/ð
 (Ð/ð �åÐ.Ô?×DÒDÑFÔFÑGÔGð $õ
 6DØ"3Ø#5Ø3Ø /Ø"9ð6ñ 6ô 6ˆDÔ!Ô2ð &Ô+ð 	7ð 	7ˆDØ×'Ò'¨°¨vÑ6Ô6Ð6Ð6õ -Ô4Ñ6Ô6Ð6ˆ?ð 	NØÔ,×3Ò3Ð4FÔ4LÑMÔMÐMà!ÐØ!#Ðàð 	/Ø!Ð!Ð!Ð!àÔ$ØÔ/ð )ˆJð
 ð Ø�à"2×"8Ò"8Ñ":Ô":ð /ð /‘�˜Ý˜f¥nÑ5Ô5ð /Ø&*�O�Oà$(§H¢HØŸš™œØ%L­Ð%LÕ8IÑ8KÔ8KÐ%Lð %-ñ %ô %�Mõ " -µÑ5Ô5ð /Ø,×3Ò3°V¸VÐ4DÑEÔEÐEÐEÝ# Mµ5Ñ9Ô9ð /Ø.×5Ò5°v¸vÐ6FÑGÔGÐGÐGð +/˜˜àñ H	ØˆMˆMˆMà>Ð>Ð>Ð>Ð>Ð>à!Ð!Ð!Ð!àÔ$ØÔ/ð )ˆJõ
  $Ð$8Ð;QÑ$QÑRÔRÐð<ð"ð "ð "ð "å%.Ð/?Ñ%@Ô%@ð"ñ "ô "�ð
 #'§)¢)ð ,ð ,å*3Ð4HÑ*IÔ*Ið,ñ ,ô ,ñ #ô #�ð %)§I¢Ið .ð .å*3Ð4JÑ*KÔ*Kð.ñ .ô .ñ %ô %Ð!ð
 #ð DØ&C°Ð&CÐ&CÐ&C�OØ$ð GØ(FÐ2CÐ(FÐ(FÐ(FÐ%å#œ?ðð #ðð ð %ðð ð $Ÿ=š=¨Ñ4Ô4ðð ð ñô �õ( × Ò Ø5ØØ&Ô,ñô ð ð
 $×(Ò(¨Ñ2Ô2�ØŸš T¤Z°´ÑAÔAÔG�Ø����õ
 -Ø"ÝÐ,Ñ-Ô-ÝÐ.Ñ/Ô/ØØØ&Ô,ñô ð ð �øõ ”?Ô&Ô9ð ð ð à�ðøøøð" Ô"ð 	Ø×5Ò5Ø!Ô'Ø"Ô(ØD¥ÐDÕ0AÑ0CÔ0CÐDð 6ñ ô ð ð ð ð	ð 	s%   ÅE ÅE<Å;E<Î5DS> Ó>TÔTc                ó²	  — t           j        r|                     ¦   «         rd S t          |¦  «        r|                      |¦  «         d S t          |t          ¦  «        r
 |¦   «         }|�|n|                      |j        ¦  «        }t          |¦  «        }t          j                             |¦  «        }t          |t          j        j        ¦  «        r|j        �|j        }|j        �|j        }t          |t          j        ¦  «        sJ ‚t           j        r†t          |t          j        j        ¦  «        rgt+          ¦   «         }|                     d|                     ¦   «         ¦  «         |                     d|j        ¦  «         |                     dd¦  «         |                      |¦  «        }g }| j        j        j        rª|                      |¦  «         g d¢}|D ]Œ}	|                      |dz   |	z   ¦  «        }
t=          |
t          j        t          j         f¦  «        r,| !                    d|› d|	› dtE          |
¦  «        ›�¦  «         Œo| !                    |› d|	› d	|
› �¦  «         Œ��nV|  #                    |¦  «        }t           j$        rt=          |t          j        j        ¦  «        sNt          |j%        tL          ¦  «        s4| j'         !                    |¦  «         | j(         !                    |¦  «         | j        j        }|j)        |j%                 }tU          |d
         ¦  «        }tU          |d         ¦  «        }tW          tY          ||||||¦  «        |¦  «        }| -                    |||||||¦  «         t          |t          j        j        ¦  «        s$| j.        j/         0                    |j        ¦  «         |j1        €J ‚te          |d|j%        ¬¦  «        \  }}|sÂtg          |d¦  «        r`|j4        }d|› d|› d|› d�}| !                    |¦  «         |  #                    |¦  «         5                    |tW          ||¦  «        ¦  «         nRd|› d�}| !                    |¦  «         |  #                    |¦  «         6                    dtW          ||¦  «        ¦  «         to          |¦  «        dk    r|  8                    ||¦  «         d S d S )NÚparam_numelÚparam_bytesÚparam_countr8   )rw  r@  ry  zndimension()rÛ  zstr(rª  r¥  ÚsizeÚstrideT)Ú	is_tensorÚtensor_sourceÚ_dynamo_dynamic_indicesz((z"._dynamo_dynamic_indices.issubset(z)) if hasattr(z', '_dynamo_dynamic_indices') else True)r•  z%, '_dynamo_dynamic_indices') == Falser   )9r9   Ú_unsafe_skip_fsdp_module_guardsÚis_fsdp_moduler¹  r¿  r«   r7   rì  r{  r•  rÛ   rÜ   Ú_dispatch_keysr¥  r¦  r~  r  rÂ  Úlog_compilation_metricsrR  Ú	Parameterr"   Ú	incrementÚnumelÚnbytesrŽ  rÐ  ré  r}  r¨  ro   r@  rw  r  rQ  rò  Ú,skip_no_tensor_aliasing_guards_on_parametersr¶  rT   ræ  rç  Úinput_source_to_sizes_stridesrr  rh  rƒ  Úadd_tensor_match_guardrÌ   r’   r¢   rÎ   rt   rú   r»  Úadd_dynamic_indices_guardr˜  r_  r—  )r“   rÇ   rz  r~  r  Úmetrics_contextÚtensor_namerÁ  ÚtermsÚtermÚ
real_valuerÌ   ré  Úmetadatar·  r¸  r‰   ÚstaticÚ_reasonÚdynamic_indicesr  s                        r”   ÚTENSOR_MATCHzGuardBuilder.TENSOR_MATCHÔ  s;  € ÝÔ1ð 	°e×6JÒ6JÑ6LÔ6Lð 	ØˆFõ " %Ñ(Ô(ð e	9Ø�MŠM˜%Ñ Ô Ð Ð Ð å˜%¥Ñ/Ô/ð  Ø˜™œ�à"Ð.�E�E°D·H²H¸U¼ZÑ4HÔ4HˆEå˜%‘[”[ˆFÝ!œH×3Ò3°EÑ:Ô:ˆMÝ˜%¥Ô!2Ô!=Ñ>Ô>ð 8Ø”<Ð+Ø"œ\�FØÔ&Ð2Ø$)Ô$7�Må˜e¥U¤\Ñ2Ô2Ð2Ð2Ð2åÔ-ð <µ*¸UÅEÄHÔDVÑ2WÔ2Wð <Ý"5Ñ"7Ô"7�Ø×)Ò)¨-¸¿º¹¼ÑGÔGÐGØ×)Ò)¨-¸¼ÑFÔFÐFØ×)Ò)¨-¸Ñ;Ô;Ð;àŸ,š, uÑ-Ô-ˆKð, !ˆDØÔ$Ô1Ô8ð ?JØ—’ Ñ&Ô&Ð&ðð ð �ð "ð Mð M�DØ!%§¢¨+¸Ñ*;¸dÑ*BÑ!CÔ!C�JÝ˜j­5¬<½¼Ð*EÑFÔFð MàŸšÐ$W¨;Ð$WÐ$W¸Ð$WÐ$WÅCÈ
ÁOÄOÐ$WÐ$WÑXÔXÐXÐXàŸš {Ð$KÐ$K°TÐ$KÐ$K¸zÐ$KÐ$KÑLÔLÐLÐLñMð !%× 6Ò 6°uÑ =Ô =�õ ÔGðQå˜u¥e¤hÔ&8Ñ9Ô9ðQõ % UÔ%=Õ?PÑQÔQðQð Ô1×8Ò8¸ÑEÔEÐEØÔ:×AÒAÀ-ÑPÔPÐPà#Ô4ÔA�Ø'ÔEØÔ,ô�õ 2°(¸6Ô2BÑCÔC�Ý3°H¸XÔ4FÑGÔG�å%;Ý.Ø˜{¨D°&¸&À-ñô ð ñ	&ô &Ð"ð ×4Ò4ØØØØØ&ØØ!ñô ð õ " %­¬Ô);Ñ<Ô<ð JØÔ&Ô9×=Ò=¸e¼jÑIÔIÐIð< ”<Ð+Ð+Ð+Ý<Ø °UÔ5Mðñ ô ‰OˆF�Gð ð Ý˜5Ð";Ñ<Ô<ð Ø&+Ô&C�Oð !h [ð  !hð  !hÐTcð  !hð  !hÐs~ð  !hð  !hð  !h�IØ—K’K 	Ñ*Ô*Ð*Ø×*Ò*¨5Ñ1Ô1×KÒKØ'Õ)?À	È5Ñ)QÔ)Qñô ð ð ð V ;ÐUÐUÐUð ð —K’K 	Ñ*Ô*Ð*Ø×*Ò*¨5Ñ1Ô1×FÒFØ1Ý.¨y¸%Ñ@Ô@ñô ð õ �4‰yŒy˜1Š}ˆ}Ø×+Ò+¨E°4Ñ8Ô8Ð8Ð8Ð8ð ˆ}r–   c                óü  — t          ¦   «         }|€J ‚|j        }~|€J ‚|j        j        }~|| j        j        v sJ d|› �¦   «         ‚|€!|j        }|sd n|                      |¦  «        }n|}|�!t          j	        t          |¦  «        ¦  «        nd }	d }
t          |j        dd¦  «        dk    }|r5t          |t          j        t          f¦  «        st          j	        |¦  «        }
|                     ||	||
¦  «         d S )NzH_produce_guard_code must be called from inside GuardedCode. Called from Ú__weakrefoffset__r   )r   Úf_backrÇ  Úco_namerÅ   rß  r{  rì  Úweakrefrš  r•  rU  r«   ÚenumÚEnumr[  Úset_export_info)r“   rÇ   r¼  r–  Ú	cur_frameÚcallerÚ	func_namer{  Úguarded_objectÚguarded_object_typeÚobj_refÚsupports_weakrefs               r”   r—  z#GuardBuilder._set_guard_export_info‚	  sB  € õ !‘N”Nˆ	ØÐ$Ð$Ð$ØÔ!ˆØØÐ!Ð!Ð!Ø”MÔ)ˆ	Øà˜DœNÔ3Ð3Ð3Ð3ØbÐW`ÐbÐbñ 4Ô3Ð3ð
 #Ð*Ø”:ˆDØ)-ÐA˜T˜T°4·8²8¸D±>´>ˆNˆNà4ˆNð 2@Ð1K�GŒK�˜^Ñ,Ô,Ñ-Ô-Ð-ÐQUð 	ð ˆõ �NÔ,Ð.AÀ1ÑEÔEÈÒJð 	ð ð 	2¥J¨~ÅÄ	Í5Ð?QÑ$RÔ$Rð 	2Ý”k .Ñ1Ô1ˆGà×ÒØØØØñ		
ô 	
ð 	
ð 	
ð 	
r–   rƒ   )rÇ  rÂ  rÈ  rÉ  rÊ  rË  rÌ  rÍ  rÎ  rÏ  rŠ   rÏ  rÌ   r�   rÐ  rÑ  rÒ  rœ  )rÇ   r&   )NT)r{  rQ  r†   r„  rP  r   )rÇ   r‡  rP  rQ  )rÇ   r&   r  rQ  )rÇ   r&   rP  rž  )rÇ   r&   r†  rQ  r¯  rš  )rÇ   r&   rû  rœ  )8rÆ   rò   ró   r•   rø  rþ  Ústaticmethodr  r(  r+  rô  r/  r3  rJ  rò  rƒ  rì  rŽ  r“  r�  r¡  r¨  r®  r´  r¹  r¼  r¿  rÄ  rÈ  rË  rÓ  rà  rï  rú  rÊ  r#  r+  r-  r1  r3  r8  r;  rB  rH  rK  rN  rQ  rT  rV  rY  r[  r]  rb  r²  rÑ  r—  rÀ   r–   r”   rÆ  rÆ  }  s:  € € € € € ð -1ð?5ð ?5ð ?5ð ?5ð ?5ðBð ð ð8$ð $ð $ðL ðð ñ „\ðð"Sð Sð Sðj9ð 9ð 9ð	"ð 	"ð 	"ð?ð ?ð ?ð
ð 
ð 
ðdð dð dðLLð Lð Lð Lð ØðSð Sð Sð SðF4ð 4ð 4ð 4ð 4ðð ð ð ð ð ð ð ð4Yð 4Yð 4Yð 4Yðl
ð 
ð 
ð 
ð 
ð(
ð 
ð 
ð 
ð(
ð 
ð 
ð 
ð$	
ð 	
ð 	
ð 	
ðð ð ð ð"

ð 

ð 

ð 

ð?ð ?ð ?ð ?ð@	
ð 	
ð 	
ð 	
ð 	
ð
ð 
ð 
ð 
ðOð Oð Oð Oð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð$
ð 
ð 
ð 
ð6
ð 
ð 
ð 
ð*jð jð jð jð jðX	%ð 	%ð 	%ð 	%ðð ð ð ð,$ð $ð $ð $ð'ð 'ð 'ð 'ð*ð *ð *ð *ðð ð ð4
ð 
ð 
ð 
ð 
ð 
ð&
ð 
ð 
ð<

ð 

ð 

ðJð Jð JðCð Cð Cð2$ð $ð $ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð
ð 
ð 
ð 
ðjð jð jð jðXk9ð k9ð k9ð k9ð k9ð\)
ð )
ð )
ð )
ð )
ð )
r–   rÆ  c                  óÜ   — e Zd ZdZej        ej        ej        fZe	j
         G d„ d¦  «        ¦   «         Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Zdd
„Zddd„Zdd„Zdd„ZdS )ÚPyExprCSEPassr8   c                  ó$   — e Zd ZU ded<   ded<   dS )úPyExprCSEPass.Configzdict[str, int]Ú
expr_countzdict[str, str]Úexpr_to_nameNr½  rÀ   r–   r”   ÚConfigrå  Ç	  s*   € € € € € € à"Ð"Ð"Ñ"Ø$Ð$Ð$Ñ$Ð$Ð$r–   rè  c                  ó(   ‡ — e Zd Zd
d„Zdˆ fd	„Zˆ xZS )úPyExprCSEPass.ExprCounterr9   rå  rP  rž  c                ó   — || _         d S rƒ   )Ú_config)r“   r9   s     r”   r•   z"PyExprCSEPass.ExprCounter.__init__Í	  s   € Ø!ˆDŒLˆLˆLr–   r£   rO  r   c                óÌ   •— t          |t          j        ¦  «        r'| j        j        t          |¦  «        xx         dz  cc<   t          ¦   «                              |¦  «         d S ró  )r«   rã  ÚALLOWED_NODE_TYPESrì  ræ  rW  rî   r¨   )r“   r£   rÅ   s     €r”   r¨   zPyExprCSEPass.ExprCounter.visitÐ	  s^   ø€ Ý˜$¥Ô @ÑAÔAð AØ”Ô'­°TÑ(:Ô(:Ð;Ð;Ô;¸qÑ@Ð;Ð;Ñ;Ý‰GŒG�MŠM˜$ÑÔÐÐÐr–   )r9   rå  rP  rž  ©r£   rO  rP  r   ©rÆ   rò   ró   r•   r¨   rô   rõ   s   @r”   ÚExprCounterrê  Ì	  sQ   ø€ € € € € ð	"ð 	"ð 	"ð 	"ð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 r–   rñ  c                  ó,   ‡ — e Zd Zdˆ fd„Zdˆ fd„Zˆ xZS )úPyExprCSEPass.Replacerr9   rå  Úgen_nameúCallable[[], str]rP  rž  c                ór   •— t          ¦   «                              ¦   «          || _        || _        g | _        d S rƒ   )rî   r•   rì  Ú	_gen_nameÚpreface)r“   r9   rô  rÅ   s      €r”   r•   zPyExprCSEPass.Replacer.__init__Ö	  s4   ø€ õ
 ‰GŒG×ÒÑÔÐØ!ˆDŒLØ%ˆDŒNØ&(ˆDŒLˆLˆLr–   r£   rO  r   c                óJ  •— t          |t          j        ¦  «        rèt          |¦  «        }| j        j        |         t          j        k    r¹|| j        j        vrst          ¦   «          	                    |¦  «        }t          |¦  «        }|  
                    ¦   «         }| j                             |› d|› �¦  «         || j        j        |<   n| j        j        |         }t          j        |t          j        ¦   «         ¦  «        S t          ¦   «          	                    |¦  «        S )Nz = )r«   rã  rî  rW  rì  ræ  ÚUSE_THRESHOLDrç  rî   r¨   r÷  rø  r  rT  ÚNameÚLoad)r“   r£   ÚexprÚnode_Úexpr_Úvar_namerÅ   s         €r”   r¨   zPyExprCSEPass.Replacer.visità	  sõ   ø€ Ý˜$¥Ô @ÑAÔAð :Ý# DÑ)Ô)�ð ”<Ô*¨4Ô0µ=Ô3NÒNÐNØ 4¤<Ô#<Ð<Ð<õ !&¡¤§¢¨dÑ 3Ô 3˜Ý ,¨UÑ 3Ô 3˜Ø#'§>¢>Ñ#3Ô#3˜Øœ×+Ò+¨xÐ,CÐ,C¸EÐ,CÐ,CÑDÔDÐDØ:B˜œÔ1°$Ñ7Ð7à#'¤<Ô#<¸TÔ#B˜Ýœ8 H­c¬h©j¬jÑ9Ô9Ð9å‘7”7—=’= Ñ&Ô&Ð&r–   )r9   rå  rô  rõ  rP  rž  rï  rð  rõ   s   @r”   ÚReplacerró  Õ	  s[   ø€ € € € € ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'r–   r  rP  rž  c                ór   — d| _         |                      t          j        d„ ¦  «        i ¬¦  «        | _        d S )Nr   c                 ó   — dS rœ   rÀ   rÀ   r–   r”   r5  z(PyExprCSEPass.__init__.<locals>.<lambda>ý	  s   € °q€ r–   )ræ  rç  )Ú_counterrè  rC  Údefaultdictrì  r˜   s    r”   r•   zPyExprCSEPass.__init__ú	  s9   € ØˆŒØ—{’{Ý"Ô.¨y¨yÑ9Ô9Èð #ñ 
ô 
ˆŒˆˆr–   Ú_varrì   rQ  c                ó<   — |› | j         › �}| xj         dz  c_         |S ró  )r  )r“   rì   r{  s      r”   Ú_new_varzPyExprCSEPass._new_var 
  s)   € ØÐ)˜$œ-Ð)Ð)ˆØˆŒ˜ÑˆŒØˆr–   rš  rd  c                óü   — |                       | j        ¦  «        }|D ]^}	 |                     t          j        |¦  «        ¦  «         Œ+# t
          $ r'}t                               d|j        |¦  «         ‚ d }~ww xY wd S )Nz#Failed to visit expr at line %s.
%s)	rñ  rì  r¨   rT  ÚparseÚSyntaxErrorr‹  Ú	exceptionÚlineno)r“   rš  ÚcounterÚeÚexs        r”   ÚcountzPyExprCSEPass.count
  sŽ   € Ø×"Ò" 4¤<Ñ0Ô0ˆØð 	ð 	ˆAðØ—’�cœi¨™lœlÑ+Ô+Ð+Ð+øÝð ð ð Ý—’ÐDÀbÄiÐQRÑSÔSÐSØøøøøðøøøð	ð 	s    'AÁ
A9Á"A4Á4A9rý  útuple[list[str], str]c                ó¼   — |                       | j        | j        ¦  «        }|                     t	          j        |¦  «        ¦  «        }|j        t          |¦  «        fS rƒ   )r  rì  r  r¨   rT  r
  rø  rW  )r“   rý  ÚreplacerÚnew_nodes       r”   rV  zPyExprCSEPass.replace
  sH   € Ø—=’= ¤¨t¬}Ñ=Ô=ˆØ—>’>¥#¤)¨D¡/¤/Ñ2Ô2ˆØÔ¥¨hÑ!7Ô!7Ð7Ð7r–   N)rP  rž  )r  )rì   rQ  rP  rQ  )rš  rd  rP  rž  ©rý  rQ  rP  r  )rÆ   rò   ró   rú  rT  Ú	AttributeÚCallÚ	Subscriptrî  ÚdataclassesÚ	dataclassrè  ÚNodeVisitorrñ  ÚNodeTransformerr  r•   r  r  rV  rÀ   r–   r”   rã  rã  ¿	  s  € € € € € ð €Mð œ-¨¬°3´=ÐAÐàÔð%ð %ð %ð %ð %ñ %ô %ñ Ôð%ð ð  ð  ð  ð  �c”oñ  ô  ð  ð#'ð #'ð #'ð #'ð #'�3Ô&ñ #'ô #'ð #'ðJ
ð 
ð 
ð 
ðð ð ð ð ð
ð ð ð ð8ð 8ð 8ð 8ð 8ð 8r–   rã  c                ót   — t          | j        t          ¦  «        pt          j        o| j        t          j        u S rƒ   )r«   r¶  rE   r9   Ú guard_nn_modules_using_dict_tagsÚ	create_fnrÆ  r+  )rÇ   s    r”   Úmust_add_nn_module_guardsr!  
  s8   € õ
 	�5Ô+­^Ñ<Ô<ð 	
õ Ô3ð :Ø”¥<Ô#9Ð9ðr–   c                  ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚDeletedGuardManagerWrapperc                óV   •— t          ¦   «                              ¦   «          || _        d S rƒ   )rî   r•   Úinvalidation_reason)r“   ÚreasonrÅ   s     €r”   r•   z#DeletedGuardManagerWrapper.__init__#
  s'   ø€ Ý‰Œ×ÒÑÔÐØ#)ˆÔ Ð Ð r–   c                ó   — d | _         d S rƒ   )r…   r˜   s    r”   r²   z6DeletedGuardManagerWrapper.populate_diff_guard_manager'
  s   € Ø#ˆÔÐÐr–   )rÆ   rò   ró   r•   r²   rô   rõ   s   @r”   r#  r#  "
  sG   ø€ € € € € ð*ð *ð *ð *ð *ð$ð $ð $ð $ð $ð $ð $r–   r#  c                  óB   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
S )r™  r/   rƒ  r‰   zOptional[_CppShapeGuardsHelper]r‚  rš  r„  zlist[Source]r…  Nr½  rÀ   r–   r”   r™  r™  +
  sN   € € € € € € à)Ð)Ð)Ñ)Ø*Ð*Ð*Ñ*Ø3Ð3Ð3Ñ3ØÐÐÑØ#Ð#Ð#Ñ#Ð#Ð#r–   r™  c                  ó$   — e Zd ZU ded<   ded<   dS )ÚGuardsStater{   ré  úOptional[ShapeCodeParts]r�  Nr½  rÀ   r–   r”   r*  r*  4
  s*   € € € € € € à(Ð(Ð(Ñ(Ø.Ð.Ð.Ñ.Ð.Ð.r–   r*  c                  óÄ   ‡ — e Zd Zˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zedd„¦   «         Zedd
„¦   «         Z	edd„¦   «         Z
ed„ ¦   «         Zd„ Zˆ xZS )ÚGuardsStatePicklerc                óÐ   •—  t          ¦   «         j        |i |¤Ž t          j                             ¦   «         | _        t          j        j                             ¦   «         | _        d S rƒ   )	rî   r•   rÛ   r¥  ÚFakeTensorModeÚ	fake_modeÚfake_tensorÚFakeTensorConverterÚtensor_converter)r“   r‡   ÚkwargsrÅ   s      €r”   r•   zGuardsStatePickler.__init__;
  sU   ø€ Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)ÝÔ*×9Ò9Ñ;Ô;ˆŒÝ %Ô 1Ô =× QÒ QÑ SÔ SˆÔÐÐr–   c                ól   — t           j                             ¦   «         }|                     |¦  «         |S rƒ   )rÛ   rR  rS  Ú__setstate__)ÚclsÚstateÚmods      r”   Ú_unpickle_modulez#GuardsStatePickler._unpickle_module@
  s,   € åŒh�oŠoÑÔˆØ×Ò˜ÑÔÐØˆ
r–   c           	     óú   — t           j                             ¦   «         }t           j        j                             ¦   «         }|                     ||||t           j        j                             |¦  «        ¦  «        S rƒ   )	rÛ   r¥  r/  r1  r2  Úfrom_meta_and_devicerÜ   rÆ  Úfrom_raw_repr)r7  Úmeta_tensorr@  r~  Údispatch_keys_rawr0  r3  s          r”   Ú_unpickle_tensorz#GuardsStatePickler._unpickle_tensorF
  si   € åÔ%×4Ò4Ñ6Ô6ˆ	Ý Ô,Ô8×LÒLÑNÔNÐØ×4Ò4ØØØØÝŒHÔ#×1Ò1Ð2CÑDÔDñ
ô 
ð 	
r–   c                ó  — i }|D ]\  }}	}
 |	|
Ž ||<   Œ|j         |                     ¦   «         }}t          |¦  «                             ||||¦  «        }||_        t
          j        j                             |¦  «        |_	        |S rƒ   )
Úshaper¸  r•  Ú__tensor_unflatten__r~  rÛ   rÜ   rÆ  r=  r  )r7  r>  r@  r~  r?  ÚctxÚ
inner_dataÚinner_tensorsr  Úunpickle_funcÚunpickle_func_argsÚ
outer_sizeÚouter_stridern  s                 r”   Ú$_unpickle_traceable_wrapper_subclassz7GuardsStatePickler._unpickle_traceable_wrapper_subclassR
  sŸ   € ð
 ˆØ7Að 	Eð 	EÑ3ˆD�-Ð!3Ø"/ -Ð1CÐ"DˆM˜$ÑÐà#.Ô#4°k×6HÒ6HÑ6JÔ6J�Lˆ
Ý�;ÑÔ×4Ò4Ø˜3 
¨Lñ
ô 
ˆð ˆŒ
Ý!œHÔ3×AÒAÐBSÑTÔTˆÔØˆ
r–   ÚaliasrQ  c                ó*   — t          j        |¦  «        S rƒ   )rI  rJ  )r7  rL  s     r”   Ú_unpickle_python_modulez*GuardsStatePickler._unpickle_python_modulec
  s   € åÔ& uÑ-Ô-Ð-r–   Úraw_reprr§  c                óJ   — t           j        j                             |¦  «        S rƒ   )rÛ   rÜ   rÆ  r=  )r7  rO  s     r”   Ú_unpickle_dispatch_key_setz-GuardsStatePickler._unpickle_dispatch_key_setg
  s   € åŒxÔ&×4Ò4°XÑ>Ô>Ð>r–   ÚjsonÚbytesc                óT   — t           j        j        j                             |¦  «        S rƒ   )rÛ   rÜ   rÜ  ÚCInterpreterÚdeserialize)r7  rR  s     r”   Ú_unpickle_functorch_interpreterz2GuardsStatePickler._unpickle_functorch_interpreterk
  s   € åŒxÔ"Ô/×;Ò;¸DÑAÔAÐAr–   c                ó*   — t          j        |¦  «        S rƒ   )r   ÚMappingProxyType)r7  Úds     r”   Ú_unpickle_mapping_proxyz*GuardsStatePickler._unpickle_mapping_proxyo
  s   € åÔ% aÑ(Ô(Ð(r–   c                óJ  — dd l }t          |t          j        ¦  «        �r`|j        j        dk    �rOddlm}  ||¦  «        rÏg }|                     ¦   «         \  }}|D ]B}t          ||¦  «        }|  
                    |¦  «        \  }	}
|                     ||	|
f¦  «         ŒCt          | ¦  «        j        t          j        |d¬¦  «        |j        t          |¦  «        t          j                             |¦  «                             ¦   «         ||ffS t          | ¦  «        j        t          j        |d¬¦  «        |j        t          |¦  «        t          j                             |¦  «                             ¦   «         ffS t          |t          j        j        ¦  «        r€t          |¦  «        j        t          |¦  «        j        k    rt,          S |j        j        t          j        j        j        k    r)t          | ¦  «        j        |                     ¦   «         ffS �n—t5          j        |¦  «        rt          | ¦  «        j        |j        ffS t          |t          j        j        ¦  «        r)t          | ¦  «        j        |                     ¦   «         ffS t          |t          j        j        j         ¦  «        r)t          | ¦  «        j!        | "                    ¦   «         ffS t5          j#        |¦  «        rFtI          ||j%        ¦  «        r1tM          |d¦  «        r!tM          |d¦  «        sJ ‚|j'        |j(        ffS t          |t          j)        ¦  «        rtU          d|› d|j+        › d	�¦  «        ‚t          |tX          j-        ¦  «        r)t          | ¦  «        j.        | /                    ¦   «         ffS t          |¦  «        j        t          |¦  «        j        k    r>t          j0        j1         2                    d
t          |¦  «        › d|› d�dz   dz   ¦  «        ‚t,          S )Nr   Úmeta)Úis_traceable_wrapper_subclass)r@  Ú_torch_handler_nameÚ_torch_unpicklerzCannot serialize SymInt z (node: rt  r�  r�  r‘  r’  r“  )3Úsympyr«   rÛ   rÂ  r@  r•  Útorch.utils._python_dispatchr^  r=  rU  Úreducer_overrider  rK  Ú
empty_likerÜ   r¾  rO  r@  rR  rS  ró   rÆ   ÚNotImplementedrÅ   Ú__getstate__r:  r  ÚismodulerN  rÆ  rQ  rÜ  rU  rW  Ú	serializeÚisclassÚ
issubclassÚFunctionrú   r`  r_  rk  rT  r£   r   rY  r[  rà  rÝ   r;   r«  )r“   r�  ra  r^  rE  ÚattrsrD  r  ÚinnerÚfuncÚ
args_tuples              r”   rc  z#GuardsStatePickler.reducer_overrides
  sé  € Øˆˆˆå�c�5œ<Ñ(Ô(ñ :	E¨S¬Z¬_ÀÒ-FÑ-FØRÐRÐRÐRÐRÐRà,Ð,¨SÑ1Ô1ð ð  �
Ø ×3Ò3Ñ5Ô5‘
��sà!ð @ð @�DÝ# C¨Ñ.Ô.�EØ'+×'<Ò'<¸UÑ'CÔ'CÑ$�D˜*Ø×%Ò% t¨T°:Ð&>Ñ?Ô?Ð?Ð?å˜D‘z”zÔFÝÔ$ S°Ð8Ñ8Ô8Ø”JÝ˜‘I”IÝ”H×+Ò+¨CÑ0Ô0×9Ò9Ñ;Ô;ØØðIð ð õ ˜‘:”:Ô.ÝÔ  ¨VÐ4Ñ4Ô4Ø”
Ý�S‘	”	Ý”×'Ò'¨Ñ,Ô,×5Ò5Ñ7Ô7ð	1ð ð õ ˜�UœXœ_Ñ-Ô-ð 	EÝ�C‰yŒyÔ%­¨c©¬Ô);Ò;Ð;Ý%Ð%ØŒ}Ô)­U¬X¬_Ô-IÒIÐIÝ˜D‘z”zÔ2°S×5EÒ5EÑ5GÔ5GÐ4IÐIÐIñ Jõ Ô˜cÑ"Ô"ð 	EÝ˜‘:”:Ô5¸¼°ÐFÐFå˜�UœXÔ4Ñ5Ô5ð 	EÝ˜‘:”:Ô8¸3¿<º<¹>¼>Ð:KÐKÐKå˜�UœXÔ0Ô=Ñ>Ô>ð 	EÝ˜‘:”:Ô=ÀÇÂÁÄÐ?QÐQÐQõ ŒO˜CÑ Ô ð	Eå˜3 ¤Ñ/Ô/ð	Eõ ˜Ð2Ñ3Ô3ð	Eõ
 ˜3Ð 2Ñ3Ô3Ð3Ð3Ð3ØÔ'¨#Ô*AÐ)CÐCÐCå˜�Uœ\Ñ*Ô*ð 	EÝÐR¸#ÐRÐRÀsÄxÐRÐRÐRÑSÔSÐSå˜�UÔ3Ñ4Ô4ð 	EÝ˜‘:”:Ô5¸¿º¹
¼
°}ÐDÐDå�‰9Œ9Ô!¥T¨#¡Y¤YÔ%7Ò7Ð7Ý”-Ô#×0Ò0ØE�˜S™	œ	ÐEÐE¨sÐEÐEÐEØTñUàTñUñô ð õ Ðr–   )rL  rQ  )rO  r§  )rR  rS  )rÆ   rò   ró   r•   Úclassmethodr:  r@  rK  rN  rQ  rW  r[  rc  rô   rõ   s   @r”   r-  r-  :
  s#  ø€ € € € € ðTð Tð Tð Tð Tð
 ðð ñ „[ðð
 ð	
ð 	
ñ „[ð	
ð ðð ñ „[ðð  ð.ð .ð .ñ „[ð.ð ð?ð ?ð ?ñ „[ð?ð ðBð Bð Bñ „[ðBð ð)ð )ñ „[ð)ðFð Fð Fð Fð Fð Fð Fr–   r-  r8  rS  c                ó$  — t          j        ¦   «         }t          |¦  «        }	 |                     | ¦  «         nD# t          $ r7}t
          j        j                             t          |¦  «        ¦  «        |‚d }~ww xY w| 
                    ¦   «         S rƒ   )ÚioÚBytesIOr-  ÚdumpÚAttributeErrorrÛ   rÝ   r;   r«  rQ  rû   )r8  ÚbufÚpicklerr  s       r”   Úpickle_guards_staterx  ¼
  s‚   € Ý
Œ*‰,Œ,€CÝ  Ñ%Ô%€Gð<Ø�Š�UÑÔÐÐøÝð <ð <ð <ÝŒmÔ×,Ò,­S°©V¬VÑ4Ô4¸!Ð;øøøøð<øøøà�<Š<‰>Œ>Ðs   ¤: º
A;Á2A6Á6A;c                  óF   — e Zd Z	 	 	 	 	 	 ddd
„Z	 dd„Zd„ Zd„ Zd„ Zd„ ZdS )rÑ  Nr‹   ú%Optional[Callable[[GuardFail], None]]Úguard_filter_fnú8Optional[Callable[[list[GuardFilterEntry]], list[bool]]]Úguards_serialization_moderœ  r�  r+  c           
     óì  ‡ ‡‡‡‡‡‡‡— |r|j         nd }i ‰ _        t          |¦  «        }	|‰ _        |‰ _        |r|j        nd ‰ _        |‰ _        t          d¦  «        st           	                    d¦  «         t          |pdt          j        ¬¦  «        }
‰                      |
|	|||rd n‰ j        ¦  «        \  Š}|r•ˆfd„Š |ˆfd„|
D ¦   «         ¦  «        Št          ‰¦  «        t          |
¦  «        k    sJ ‚t          d„ ‰D ¦   «         ¦  «        sJ ‚ˆfd„t!          |
¦  «        D ¦   «         }
‰                      |
|	||‰ j        ¦  «        \  Š}|‰ _        ‰                      ‰|
|¦  «         ‰j        ‰ j        _        t(                               d	‰ j        ¦  «         ‰j        ‰ j        _        d
Š|j        sè‰ j        dk    rÝ‰ j                             |j        ¦  «        s>t3          ‰ j        |j        t5          j        ¦   «         ¦  «        }t9          d|› �¦  «        ‚t:          �t;          ‰ j        |j        ¦  «         t=          ‰ j        j        |j        d¦  «        Št(                               d‰d›¦  «         tA          j!        dtE          ‰¦  «        ¦  «         d ‰ _#        ‰ j        dk    �rztI          ¦   «         ŠtI          ¦   «         Šˆˆfd„}‰ j         %                    ¦   «         }|
D ]P}tM          |j'        tP          ¦  «        r$‰ j        sJ ‚‰ j        j)        D ]} ||¦  «         ŒŒ@ ||j'        ¦  «         ŒQ‰ j        j*        D ]} ||¦  «         Œd„ ŠtW          j,        |ˆfd„|j         -                    ¦   «         D ¦   «         ˆfd„|j.         -                    ¦   «         D ¦   «         t^          j0         1                    ˆfd„|
D ¦   «         ¦  «        te          j3        th          |j5        ¦  «        ¬¦  «        }tm          |‰ j        ¬¦  «        }to          |¦  «        ‰ _#        t^          j8         9                    dˆˆ fd„¬¦  «         ‰ j         :                    ¦   «          d ‰ _        d S )Nú!pytorch/compiler:guard_nn_modulesz9guard_nn_modules is turned off using justknobs killswitchrÀ   )r†  c           	     óˆ  •— t          ¦   «         }t          | j        ¦  «        }|dk    rd}|}nd}‰                     | j        ¦  «        }t	          | j        ¦  «        d u}| j        }t          |t          j	        ¦  «        r| j        j
        }t          ||||j        | j        rt          | j        ¦  «        nd|| ¬¦  «        S )Nr÷   FTrÀ   )r{  Ú	has_valuerz  Ú
guard_typeÚderived_guard_typesÚ	is_globalÚ
orig_guard)ÚobjectÚstrip_local_scoper{  rì  r   r¶  r   r«   Ú	functoolsÚpartialrn  re   rÆ   Úguard_typesr[  )rÇ   ÚMISSINGr{  r�  rz  r„  r‚  Úbuilders          €r”   Úmake_guard_filter_entryz>CheckFunctionManager.__init__.<locals>.make_guard_filter_entryø
  sÎ   ø€ Ý ™(œ(�Ý(¨¬Ñ4Ô4�Ø˜2’:�:Ø %�IØ#�E�Eà $�IØ#ŸKšK¨¬
Ñ3Ô3�EÝ2°5Ô3KÑLÔLÐTXÐX�	Ø œ?�Ý˜h­	Ô(9Ñ:Ô:ð 4Ø$œÔ3�HÝ'ØØ'ØØ'Ô0àÔ(ð)­¨eÔ.?Ñ(@Ô(@Ð(@àØ'Ø$ð
ñ 
ô 
ð 
r–   c                ó&   •— g | ]} ‰|¦  «        ‘ŒS rÀ   rÀ   )rÁ   rÇ   r�  s     €r”   rÄ   z1CheckFunctionManager.__init__.<locals>.<listcomp>  s%   ø€ ÐKÐKÐK°EÐ(Ð(¨Ñ/Ô/ÐKÐKÐKr–   c              3  óF   K  — | ]}t          |¦  «        t          k    V — Œd S rƒ   )r•  rš  ©rÁ   r   s     r”   rŒ  z0CheckFunctionManager.__init__.<locals>.<genexpr>  s,   è è € Ð?Ð?¨1•t˜A‘w”w¥$’Ð?Ð?Ð?Ð?Ð?Ð?r–   c                ó*   •— g | ]\  }}‰|         ¯|‘ŒS rÀ   rÀ   )rÁ   rˆ  rÇ   Úfilter_resultss      €r”   rÄ   z1CheckFunctionManager.__init__.<locals>.<listcomp>  s8   ø€ ð ð ð Ù"˜!˜UÀ.ÐQRÔBSðØðð ð r–   ú%sg        rd  zGuard check failed: r8   zGuard eval latency = %s usú.2fÚguard_latency_usr£  c                ó  •— t          | ¦  «        x}r.t          |t          ¦  «        sJ ‚‰                     |¦  «         d S t	          | ¦  «        x}r.t          |t          ¦  «        sJ ‚‰                     |¦  «         d S d S rƒ   )r   r«   rQ  r¢   r   )rÎ   r{  Úused_global_varsÚused_local_varss     €€r”   Úprune_variablez5CheckFunctionManager.__init__.<locals>.prune_variable_  s—   ø€ Ý1°&Ñ9Ô9Ð9�4ð .Ý% d­CÑ0Ô0Ð0Ð0Ð0Ø$×(Ò(¨Ñ.Ô.Ð.Ð.Ð.Ý2°6Ñ:Ô:Ð:�Tð .Ý% d­CÑ0Ô0Ð0Ð0Ð0Ø#×'Ò'¨Ñ-Ô-Ð-Ð-Ð-ð.ð .r–   c                ó   ‡— t          | t          j        ¦  «        rbd„ Št          ˆfd„| j        D ¦   «         ¦  «        }ˆfd„| j                             ¦   «         D ¦   «         }t          j        | j        g|¢R i |¤ŽS | S )Nc                ó\   — t          | t          t          j        f¦  «        r
 | ¦   «         S | S rƒ   )r«   r7   rÖ  rš  r>  s    r”   Ú_refzHCheckFunctionManager.__init__.<locals>.normalize_create_fn.<locals>._refw  s+   € Ý% a­-½¼Ð)EÑFÔFð 'Ø#$ 1¡3¤3˜JØ ˜r–   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S rƒ   rÀ   )rÁ   r  rœ  s     €r”   rŒ  zMCheckFunctionManager.__init__.<locals>.normalize_create_fn.<locals>.<genexpr>|  s+   øè è € Ð$=Ð$=° T T¨!¡W¤WÐ$=Ð$=Ð$=Ð$=Ð$=Ð$=r–   c                ó.   •— i | ]\  }}| ‰|¦  «        “ŒS rÀ   rÀ   )rÁ   ÚkÚvrœ  s      €r”   ú
<dictcomp>zNCheckFunctionManager.__init__.<locals>.normalize_create_fn.<locals>.<dictcomp>}  s'   ø€ Ð#NÐ#NÐ#N±4°1°a A t t¨A¡w¤wÐ#NÐ#NÐ#Nr–   )r«   rˆ  r‰  r[  r‡   Úkeywordsr¡   rn  )r   Únew_argsÚnew_keywordsrœ  s      @r”   Únormalize_create_fnz:CheckFunctionManager.__init__.<locals>.normalize_create_fnt  s�   ø€ Ý˜a¥Ô!2Ñ3Ô3ð 	Pð!ð !ð !õ
  %Ð$=Ð$=Ð$=Ð$=°a´fÐ$=Ñ$=Ô$=Ñ=Ô=�HØ#NÐ#NÐ#NÐ#N¸1¼:×;KÒ;KÑ;MÔ;MÐ#NÑ#NÔ#N�LÝ$Ô,¨Q¬VÐO°hÐOÐOÐOÀ,ÐOÐOÐOà�r–   c                ó$   •— i | ]\  }}|‰v ¯	||“ŒS rÀ   rÀ   )rÁ   rŸ  r   r˜  s      €r”   r¡  z1CheckFunctionManager.__init__.<locals>.<dictcomp>„  s4   ø€ ð ð ð á˜˜1Ø˜OÐ+Ð+ð �qà+Ð+Ð+r–   c                ó$   •— i | ]\  }}|‰v ¯	||“ŒS rÀ   rÀ   )rÁ   rŸ  r   r—  s      €r”   r¡  z1CheckFunctionManager.__init__.<locals>.<dictcomp>‰  s5   ø€ ð ð ð á˜˜1ØÐ,Ð,Ð,ð �qà,Ð,Ð,r–   c           
     ó\   •— h | ](}t          j        |d d  ‰|j        ¦  «        ¬¦  «        ’Œ)S )N)Úobj_weakrefÚguarded_class_weakrefr   )r  rV  r   )rÁ   rÇ   r¥  s     €r”   r!  z0CheckFunctionManager.__init__.<locals>.<setcomp>�  sV   ø€ ð ð ð ð "õ $Ô+Ø!Ø(,Ø26Ø&9Ð&9¸%¼/Ñ&JÔ&Jð	ñ ô ðð ð r–   )rÎ  rŠ   Ú_guardsrÅ  )ré  r�  Údynamo_cpp_guards_strc                 ó    •— ‰j         › d‰ d›d�S )Nz
Guard latency = r”  z us)rÌ   )Úlatencyr“   s   €€r”   r5  z/CheckFunctionManager.__init__.<locals>.<lambda>§  s   ø€  $Ô"4ÐXÐXÈÐXÐXÐXÐX€ r–   ©Ú
payload_fn);r|   Ú	_weakrefsÚ5update_diff_guard_managers_for_existing_cache_entriesré  r�  Útorch_function_mode_stackr}  r-   r‹  rŒ  rŸ   r&   Úsort_keyÚbuild_guardsr_  Úallrú  rÌ   Úcompile_check_fnrŽ   rw  rx  r}  rþ   rÎ  Úget_guard_fail_reason_helperr#   rù  rg  ry   r   r„   r!   Úincrement_toplevelr§  Úguards_stater�   Údump_guards_stater«   r¶  rW   r…  rê  r  rV  r¡   rŠ   rÛ   r«  Ú	GuardsSetr  Útree_maprn  rÅ  r*  rx  Ú_loggingÚtrace_structuredÚclear)r“   rÇ  ré  rŒ   r‹   r{  r}  r�  r|   Úexisting_diff_guard_sourcesÚsorted_guardsrÌ   Úreasonsr™  Úoutput_graph_guards_staterÇ   rÎ   rº  rŒ  r’  r®  r�  r¥  r—  r˜  s   `                 @@@@@@@r”   r•   zCheckFunctionManager.__init__Ì
  sŸ  øøøøøøøø€ ð )5Ð>�Ô$Ð$¸$ˆØ;=ˆŒõ BÀ+ÑNÔNð 	$ð )ˆÔð !1ˆÔð
 7CÐLˆLÔ2Ð2Èð 	Ô&ð *CˆÔ&åÐBÑCÔCð 	UÝ�KŠKÐSÑTÔTÐTå˜v˜|¨µ´Ð@Ñ@Ô@ˆØ!%×!2Ò!2ØØ'ØØØ#ÐGˆDˆD¨Ô)Gñ"
ô "
Ñˆ�ð ð *	ðð ð ð ð ð2 -˜_ØKÐKÐKÐK¸]ÐKÑKÔKñô ˆNõ �~Ñ&Ô&­#¨mÑ*<Ô*<Ò<Ð<Ð<Ð<ÝÐ?Ð?°Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?ðð ð ð Ý&/°Ñ&>Ô&>ðñ ô ˆMð &*×%6Ò%6ØØ+ØØØÔ.ñ&ô &Ñ"ˆG�]ð +ˆÔØ×Ò˜g }°mÑDÔDÐDð .5Ô-DˆÔÔ*å×Ò˜˜tÔ1Ñ2Ô2Ð2Ø-4Ô-DˆÔÔ*ð ˆØÔ"ð !	T tÔ'EÈÒ'OÐ'OØÔ%×+Ò+¨LÔ,DÑEÔEð GÝ6ØÔ&Ø Ô,Ý"Ô5Ñ7Ô7ñô �õ
 %Ð%E¸GÐ%EÐ%EÑFÔFÐFå,Ð8Ý-ØÔ&¨Ô(@ñô ð õ ,ØÔ"Ô'¨Ô)AÀ1ñô ˆGõ ×ÒÐ9¸gÐ;KÐ;KÑLÔLÐLõ Ô1Ð2DÅcÈ'ÁlÄlÑSÔSÐSà-1ˆÔØÔ)¨VÒ3Ñ3Ý"™uœuÐÝ!™eœeˆOð.ð .ð .ð .ð .ð .ð )-Ô(9×(KÒ(KÑ(MÔ(MÐ%à&ð =ð =�Ý˜eÔ6½ÑGÔGð =ØÔ0Ð0Ð0Ð0Ø"&Ô"7Ô"Ið /ð /˜Ø&˜ vÑ.Ô.Ð.Ð.ð/ð #�N 5Ô#;Ñ<Ô<Ð<Ð<àÔ+Ô>ð 'ð '�Ø�˜vÑ&Ô&Ð&Ð&ðð ð õ )4Ô(;Ø)ðð ð ð à 9Ô E× KÒ KÑ MÔ Mðñ ô ð
ð ð ð à 9Ô F× LÒ LÑ NÔ Nðñ ô õ
 œ×/Ò/ðð ð ð ð &3ðñ ô ñ
ô 
õ /5¬oÝ2Ø-ÔKñ/ô /ð/)ñ )ô )Ð%õ8 'Ø6Ø!%Ô!6ðñ ô ˆLõ !4°LÑ AÔ AˆDÔõ 	Œ×'Ò'Ø#ØXÐXÐXÐXÐXð 	(ñ 	
ô 	
ð 	
ð 	Œ×ÒÑÔÐØ ˆÔÐÐr–   c                ó°  ‡— t          ¦   «         }||_        d Šˆfd„}t          || j        || j        |j        |j        || |¦	  «	        }d„ }	t          j        ||	¦  «        Št          j
        ot          d¦  «        }
|D ]U}|
s<|                     ¦   «         r(d|j        vrd|j        vrt          j        s	d|j        vrŒ@|                     |¦  «         ŒV||fS )Nc                óâ   •— |                       ¦   «         }|t          j        u r|                      ¦   «         S ‰sJ ‚ ‰¦   «         }|€J ‚|                     |                      ¦   «         ¦  «        S rƒ   )Úguard_sourcer)   ÚCONSTANTr{  rŽ  )rÎ   rÇ  Ú	r_builderÚ	w_builders      €r”   rÊ  z5CheckFunctionManager.build_guards.<locals>.source_refÁ  so   ø€ Ø!×.Ò.Ñ0Ô0ˆLØ�{Ô3Ð3Ð3à—{’{‘}”}Ð$ØÐÐÐØ!˜	™œˆIØÐ(Ð(Ð(Ø×$Ò$ V§[¢[¡]¤]Ñ3Ô3Ð3r–   c                ó0   —  | ¦   «         }|r	d |_         d S d S rƒ   )rÝ  )Úweak_br4  s     r”   Úcleanup_builderz:CheckFunctionManager.build_guards.<locals>.cleanup_builderØ  s*   € Ø�‘”ˆAØð Ø�”��ðð r–   r  rb  rd  rä  )r�   r’   rÆ  rÈ  rÌ  rÎ  rŠ   rÖ  rš  r9   Úguard_nn_modulesr-   r·  r{  rS  r�  )r“   rÂ  rÁ  rÇ  ré  rÒ  rÌ   rÊ  rŒ  rÍ  Úguard_on_nn_modulesrÇ   rÊ  s               @r”   rµ  z!CheckFunctionManager.build_guards´  s0  ø€ õ ,Ñ-Ô-ˆØ+FˆÔ(àˆ	ð	4ð 	4ð 	4ð 	4ð 	4õ ØØŒKØØÔ ØÔ$ØÔ%ØØØñ

ô 

ˆð	ð 	ð 	õ ”K ¨Ñ9Ô9ˆ	å$Ô5ð 
½/Ø/ñ;
ô ;
Ðð #ð 	"ð 	"ˆEà'ð	à×2Ò2Ñ4Ô4ð	ð
 #¨%¬*Ð4Ð4Ø$¨E¬JÐ6Ð6ÝÔ5ð 7Ø9@ÈÌ
Ð9RÐ9Ràà�LŠL˜Ñ!Ô!Ð!Ð!Ø˜Ð%Ð%r–   c                óÊ  ‡‡‡‡— ‰j         }|dgz  }t                               d¦  «         g Šg Šg Št          | j        ¦  «        }| j        j                             dg¦  «         | j        j                             | j        dg¦  «         d | _        dˆˆˆfd„	}t          ¦   «         }‰j
        D ]7}|j        D ]-}	|	|vr' ||	|j        d¦  «         |                     |	¦  «         Œ.Œ8‰j        }
d }d }t          |
¦  «        dk    r0t!          ‰j        |
d	d
                     |
¦  «        z   dz   g¦  «         | j        r| j        j        ng }|D �]P}t+          |t,          ¦  «        r|j        }|j        }|                     ¦   «         › d|                     ¦   «         › �}t5          ‰                     |¦  «        ‰                     |¦  «        |g¦  «          ||d d¦  «         Œ—t+          |t8          ¦  «        r”ˆfd„|j        D ¦   «         }ˆfd„|j        D ¦   «         }dd
                     d„ |j        D ¦   «         ¦  «        › dd
                     d„ |j        D ¦   «         ¦  «        › d�}t?          |||g¦  «          ||d d¦  «         �Œ@tA          d|› �¦  «        ‚‰j!        D ]}|j        D ]}	 ||	|j        d¦  «         ŒŒ‰r$tD          j#         $                    dˆfd„¬¦  «         tJ          j&        }|€tK          j'        ¦   «         }|||j(        |dœtR          ¥tU          ¦   «         ¥}| j         +                    ¦   «          d‰j,        d         i}t          ‰¦  «        dk    sJ ‚|| j        _-        || j        _.        | j         /                    ¦   «          ‰| j        _0        || j        _1        || j        _2        d | j        _3        d | j        _4        |
| j        _5        d S )Nz**___kwargs_ignoredzGUARDS:z___check_global_state()z$___check_torch_function_mode_stack()Fc                óV  •‡ ‡— t          ‰ ‰¦  «        }t                               d|¦  «         ‰                     ˆ ˆfd„¦  «         t                               t          j        ¦  «        r�d}d}‰�l‰j        r/dd 	                    ‰j         
                    ¦   «         ¦  «        › �}‰j        r/dd 	                    ‰j         
                    ¦   «         ¦  «        › �}t                               d‰ ||¦  «         |s,‰                     ‰ ¦  «         ‰                     |¦  «         d S d S )Nr“  c                 ó¼   •— ‰ ‰r2‰j         r+t          j        ‰j                              ¦   «         ¦  «        nd ‰r ‰j        rt          j        ‰j        ¦  «        nd dœS )N)rÁ  r]  rZ  )r]  r,   Úfrom_tracebackr^  rZ  )r  rÇ   s   €€r”   r5  zNCheckFunctionManager.compile_check_fn.<locals>.add_code_part.<locals>.<lambda>  sr   ø€ Ø%ð !ð"Ø%*¤[ð"�
Ô1°%´+×2EÒ2EÑ2GÔ2GÑHÔHÐHà!ð !ð"Ø%*Ô%5ð"�
Ô1°%Ô2BÑCÔCÐCà!ðð € r–   r÷   z
Stack:
z
User stack:
zGuard: %s%s%s)rb  rw  rx  r  Úverbose_guards_logÚisEnabledForÚloggingÚDEBUGr]  ru  ÚformatrZ  )	r  rÇ   Úlog_onlyr
  Úmaybe_stackÚmaybe_user_stackrˆ   Ústructured_guard_fnsr‰   s	   ``    €€€r”   Úadd_code_partz<CheckFunctionManager.compile_check_fn.<locals>.add_code_part  sY  øøø€ Ý 5°iÀÑ GÔ GÐÝ×Ò˜TÐ#4Ñ5Ô5Ð5à ×'Ò'ðð ð ð ð ñô ð õ  "×.Ò.­w¬}Ñ=Ô=ð Ø �Ø#%Ð ØÐ$Ø”{ð SØ&R°2·7²7¸5¼;×;MÒ;MÑ;OÔ;OÑ3PÔ3PÐ&RÐ&R˜ØÔ'ð àR¨b¯gªg°eÔ6F×6MÒ6MÑ6OÔ6OÑ.PÔ.PÐRÐRð )õ #×(Ò(Ø#ØØØ$ñ	ô ð ð ð =Ø×!Ò! )Ñ,Ô,Ð,Ø"×)Ò)Ð*;Ñ<Ô<Ð<Ð<Ð<ð=ð =r–   Tr8   zcheck_no_aliasing(rË   rt  rD  c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS rÀ   ©rJ  ©rÁ   rÐ   rŒ  s     €r”   rÄ   z9CheckFunctionManager.compile_check_fn.<locals>.<listcomp>^  s7   ø€ ð .ð .ð .àð ×9Ò9¸!Ñ<Ô<ð.ð .ð .r–   c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS rÀ   rß  rà  s     €r”   rÄ   z9CheckFunctionManager.compile_check_fn.<locals>.<listcomp>b  s7   ø€ ð 2ð 2ð 2àð ×9Ò9¸!Ñ<Ô<ð2ð 2ð 2r–   zcheck_overlapping(overlapping=[c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S rƒ   ©r{  ©rÁ   rÐ   s     r”   rŒ  z8CheckFunctionManager.compile_check_fn.<locals>.<genexpr>h  s*   è è € Ð/\Ð/\¸Q°·²±´Ð/\Ð/\Ð/\Ð/\Ð/\Ð/\r–   z], non_overlapping=[c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S rƒ   rã  rä  s     r”   rŒ  z8CheckFunctionManager.compile_check_fn.<locals>.<genexpr>i  s*   è è € Ð3dÐ3dÀ°A·F²F±H´HÐ3dÐ3dÐ3dÐ3dÐ3dÐ3dr–   z])zUnknown GuardEnvExpr: Údynamo_guardsc                 ó   •— d„ ‰ D ¦   «         S )Nc                ó"   — g | ]} |¦   «         ‘ŒS rÀ   rÀ   )rÁ   Úfs     r”   rÄ   zKCheckFunctionManager.compile_check_fn.<locals>.<lambda>.<locals>.<listcomp>  s   € Ð4WÐ4WÐ4W¸Q°Q°Q±S´SÐ4WÐ4WÐ4Wr–   rÀ   )rÜ  s   €r”   r5  z7CheckFunctionManager.compile_check_fn.<locals>.<lambda>  s   ø€ Ð4WÐ4WÐBVÐ4WÑ4WÔ4W€ r–   r¯  )Ú___check_tensorsÚ___check_tensors_verboseÚ___check_global_stateÚ"___check_torch_function_mode_stackrÖ  r   rñ   )6rä  rw  rx  Ú$make_torch_function_mode_stack_guardr³  rÌ   r„   Úadd_global_state_guardÚ#add_torch_function_mode_stack_guardr�   rÁ  r¼  rÇ   r¢   ræ  r_  r   rç  ru  ré  Úaotautograd_guardsr«   r%   Úinput_source_aÚinput_source_br{  r   rJ  r+   Úoverlapping_sourcesÚnon_overlapping_sourcesr   rT  rå  rÛ   r¾  r¿  r:   Úinitial_global_stateÚGlobalStateGuardrþ   r2   rN  r³   rÝ  r†   r‡   r  r‰   rŠ   r‹   rŒ   r�   r�   )r“   rŒ  Ú
guards_outr‹   ÚlargsÚ"torch_function_mode_stack_check_fnrÝ  ÚseenÚgclrÁ  ræ  Úcheck_tensors_fnÚcheck_tensors_verbose_fnrñ  rÇ   Úsource_arE  r  Úoverlapping_guard_managersÚnon_overlapping_guard_managersÚglobal_stater†   r�  rˆ   rÜ  r‰   s    `                     @@@r”   r·  z%CheckFunctionManager.compile_check_fnó  s  øøøø€ àÔ ˆØÐ'Ð(Ñ(ˆå×Ò˜Ñ#Ô#Ð#àˆ
ØÐØCEÐå-QØÔ*ñ.
ô .
Ð*ð
 	ÔÔ×6Ò6Ð8QÐ7RÑSÔSÐSàÔÔ×CÒCØÔ*Ø3Ð4ñ	
ô 	
ð 	
ð
 *.ˆÔ&ð'	=ð '	=ð '	=ð '	=ð '	=ð '	=ð '	=ð '	=õR ‰uŒuˆØ”<ð 	#ð 	#ˆCØœð #ð #�Ø˜tÐ#Ð#ð "�M $¨¬	°4Ñ8Ô8Ð8Ø—H’H˜T‘N”N�Nøð#ð $+Ô#CÐ ØÐØ#'Ð åÐ'Ñ(Ô(¨1Ò,Ð,õ -ØÔ9Ø(Ø%¨¯	ª	Ð2JÑ(KÔ(KÑKÈcÑQÐRñô ð ð 59Ô4EÐMˆDÔÔ0Ð0È2ð 	ð (ð  	Eñ  	EˆEÝ˜%¥Ñ1Ô1ð EØ Ô/�Ø Ô/�Ø'Ÿ}š}™œÐEÐE°H·M²M±O´OÐEÐE�	Ý-Ø×9Ò9¸(ÑCÔCØ×9Ò9¸(ÑCÔCØ�Kñô ð ð
 �˜i¨¨tÑ4Ô4Ð4Ð4Ý˜E¥>Ñ2Ô2ð Eð.ð .ð .ð .à"Ô6ð.ñ .ô .Ð*ð2ð 2ð 2ð 2à"Ô:ð2ñ 2ô 2Ð.ð
kØ&*§i¢iÐ/\Ð/\À%ÔB[Ð/\Ñ/\Ô/\Ñ&\Ô&\ðkð kà*.¯)ª)Ð3dÐ3dÀeÔFcÐ3dÑ3dÔ3dÑ*dÔ*dðkð kð kð õ
 2Ø.Ø2Ø�Kñô ð ð
 �˜i¨¨tÑ4Ô4Ð4Ñ4å"Ð#C¸EÐ#CÐ#CÑDÔDÐDð Ô)ð 	5ð 	5ˆCØœð 5ð 5�ð �˜d C¤I¨tÑ4Ô4Ð4Ð4ð5ð  ð 	ÝŒN×+Ò+ØÐ,WÐ,WÐ,WÐ,Wð ,ñ ô ð õ %Ô9ˆØÐå(Ô9Ñ;Ô;ˆLà 0Ø(@Ø%1Ô%7Ø2Tð	
ð 
õ
 ð
õ  Ñ!Ô!ð
ˆð 	Ô×#Ò#Ñ%Ô%Ð%à # W¤]°3Ô%7Ð8Ðõ �:‰Œ !Ò#Ð#Ð#Ð#à*6ˆÔÔ'Ø"'ˆÔÔØÔ×<Ò<Ñ>Ô>Ð>Ø0BˆÔÔ-à*>ˆÔÔ'Ø+8ˆÔÔ(ð *.ˆÔÔ&Ø)-ˆÔÔ&Ø8PˆÔÔ5Ð5Ð5r–   c                ób  — t          | d¦  «        r˜t          | j        t          ¦  «        s€| j        j        x}�t| j        j        x}�ht          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚d|› d�}t          |¦  «        }|                     ||¦  «         || _        d S d S d S d S d S )NrÌ   zCache line invalidated because z got deallocated)	rú   r«   rÌ   r#  rŒ   r�   r`   rb   Ú
invalidate)r“   Úobj_strrŒ   r�   r&  Údeleted_guard_managers         r”   r  zCheckFunctionManager.invalidate£  sâ   € õ
 �D˜/Ñ*Ô*ð	7å˜tÔ1Õ3MÑNÔNð	7ð !%Ô 2Ô >Ð>�ÐKØ $Ô 2Ô >Ð>�ÐKå˜k­:Ñ6Ô6Ð6Ð6Ð6Ý˜k­:Ñ6Ô6Ð6Ð6Ð6ØP°wÐPÐPÐPˆFÝ$>¸vÑ$FÔ$FÐ!Ø×"Ò" ;Ð0EÑFÔFÐFØ!6ˆDÔÐÐð	7ð 	7ð 	7ð 	7ð LÐKØKÐKr–   c                ó  — 	 t          |¦  «        | j        vrWt          j        |¦  «        | j        t          |¦  «        <   t          j        |t          j        | j        |¬¦  «        ¦  «         n# t          $ r Y nw xY wt          |¦  «        S )zadd a weakref, return the id)r  )	rë  r±  rÖ  rš  r³   rˆ  r‰  r  r”  )r“   r�  r  s      r”   rÈ  zCheckFunctionManager.id_ref´  s’   € ð
	Ý�#‰wŒw˜dœnÐ,Ð,õ +2¬+°cÑ*:Ô*:�”�r #™wœwÑ'ÝÔ Ø�Ô*¨4¬?ÀGÐLÑLÔLñô ð øøõ ð 	ð 	ð 	ØˆDð	øøøå�#‰wŒwˆs   ‚A-A0 Á0
A=Á<A=c                óf   — t          |¦  «        | j        v r| j        t          |¦  «                 S dS )zFLookup the _weakrefs created in id_ref function for ID_MATCH'd objectsN)rë  r±  )r“   r�  s     r”   rÌ  z$CheckFunctionManager.lookup_weakrefsÃ  s-   € åˆc‰7Œ7�d”nÐ$Ð$Ø”>¥" S¡'¤'Ô*Ð*Øˆtr–   )NNNNNN)r‹   rz  r{  r|  r}  rœ  r�  r+  rƒ   )	rÆ   rò   ró   r•   rµ  r·  r  rÈ  rÌ  rÀ   r–   r”   rÑ  rÑ  Ë
  s¦   € € € € € ð ØØ?Cð Ø37Ø59ðf!ð f!ð f!ð f!ð f!ð\  ð=&ð =&ð =&ð =&ð~nQð nQð nQð`7ð 7ð 7ð"ð ð ðð ð ð ð r–   rÑ  útuple[str, str]c                óÒ  ‡	— ddl m} t          ¦   «         Š		 ‰	                     | ¦  «         dˆ	fd„}n# t          $ r dd„}Y nw xY w |¦   «         }| D ]} ||¦  «        \  }}|                     |¦  «         |                     d	|› d
�¦  «         |                     ¦   «         5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   Œ€ |¦   «         }|                     d¦  «         |                     ¦   «         5  |                     |¦  «         |                     d¦  «         d d d ¦  «         n# 1 swxY w Y    |¦   «         }|                     d|› d
�¦  «         |                     ¦   «         5  |                     |¦  «         |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   | 	                    ¦   «         | 	                    ¦   «         fS )Nr   rå   rý  rQ  rP  r  c                ó.   •— ‰                      | ¦  «        S rƒ   )rV  )rý  Úcsepasss    €r”   rV  z%build_guard_function.<locals>.replaceÑ  s   ø€ Ø—?’? 4Ñ(Ô(Ð(r–   c                ó
   — g | fS rƒ   rÀ   )rý  s    r”   rV  z%build_guard_function.<locals>.replaceÖ  s   € Ø�t�8ˆOr–   zif not (z):zreturn Falsezdef guard(L):zreturn Truezdef ___make_guard_fn(zreturn guardr  )
rù   ræ   rã  r  ÚRecursionErrorrß   rÓ   rÔ   Úsplicerû   )
rˆ   Úclosure_argsræ   rV  Ú
guard_bodyrý  rø  rÇ   Úmake_guard_fnr  s
            @r”   rv  rv  Ê  sû  ø€ Ø4Ð4Ð4Ð4Ð4Ð4å‰oŒo€Gð	Ø�Š�jÑ!Ô!Ð!ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øåð ð ð ð	ð 	ð 	ð 	ð 	ð 	ðøøøð  �Ñ!Ô!€JØð 1ð 1ˆØ˜ ™œ‰ˆ�Ø×Ò˜gÑ&Ô&Ð&Ø×ÒÐ0¨Ð0Ð0Ð0Ñ1Ô1Ð1Ø×ÒÑ Ô ð 	1ð 	1Ø× Ò  Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1øð ˆNÑÔ€EØ	‡O‚O�OÑ$Ô$Ð$Ø	�Š‰Œð 'ð 'Ø�Š�ZÑ Ô Ð Ø�Š˜Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð #�NÑ$Ô$€MØ×ÒÐD°LÐDÐDÐDÑEÔEÐEØ	×	Ò	Ñ	Ô	ð 0ð 0Ø×Ò˜UÑ#Ô#Ð#Ø×Ò Ñ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð ×ÒÑ Ô  -×"8Ò"8Ñ":Ô":Ð:Ð:sE   —3 ³AÁAÂ%CÃC	ÃC	Ä+D=Ä=EÅEÅ?+F6Æ6F:Æ=F:c                 óT   — t           j        j        j                             d¦  «        S )Nr}   ©rÛ   r¾  Ú	_internalÚ	log_stateÚis_artifact_enabledrÀ   r–   r”   Úis_recompiles_enabledr  õ  s   € ÝŒ>Ô#Ô-×AÒAÀ,ÑOÔOÐOr–   c                 óT   — t           j        j        j                             d¦  «        S )Nr~   r  rÀ   r–   r”   Úis_recompiles_verbose_enabledr  ù  s   € ÝŒ>Ô#Ô-×AÒAÐBVÑWÔWÐWr–   c                ó*   ‡— d„ | D ¦   «         Šˆfd„}|S )Nc                ó,   — g | ]}t          |¦  «        ‘ŒS rÀ   )r•  r�  s     r”   rÄ   z8make_torch_function_mode_stack_guard.<locals>.<listcomp>ÿ  s   € Ð,Ð,Ð,˜�T�!‰WŒWÐ,Ð,Ð,r–   c                 óÀ   •— t          ¦   «         } t          | ¦  «        t          ‰¦  «        k    rdS t          ‰| ¦  «        D ]\  }}|t          |¦  «        k    r dS ŒdS rµ  )rl   r_  rà   r•  )Ú	cur_stackÚtyÚmoder   s      €r”   Úcheck_torch_function_mode_stackzMmake_torch_function_mode_stack_guard.<locals>.check_torch_function_mode_stack  sk   ø€ Ý1Ñ3Ô3ˆ	åˆy‰>Œ>�S ™ZœZÒ'Ð'Ø�5å˜E 9Ñ-Ô-ð 	ð 	‰HˆB�Ø•T˜$‘Z”ZÒÐØ�u�uð  ð ˆtr–   rÀ   )Úinitial_stackr!  r   s     @r”   rî  rî  þ  s7   ø€ Ø,Ð,˜mÐ,Ñ,Ô,€Eð
ð 
ð 
ð 
ð 
ð +Ð*r–   c                ó@  ‡— t          | j        ¦  «        }t          j        t          ¦  «        Š| j        D ]@}||d<   t          t          |||¦  «        ¦  «        }‰|                              |¦  «         ŒAˆfd„‰D ¦   «         }d 	                    |¦  «        }d|› �gS )NÚ__compile_source__c                óT   •— g | ]$}t          ‰|         ¦  «        d k    ¯‰|         › ‘Œ%S )r8   )r_  )rÁ   r†  Úids_to_sources     €r”   rÄ   zErecompilation_reason_for_no_tensor_aliasing_guard.<locals>.<listcomp>  s@   ø€ ð ð ð Ø$'½CÀÈcÔ@RÑ<SÔ<SÐVWÒ<WÐ<Wˆ=˜ÔÐÐ<WÐ<WÐ<Wr–   rË   zDuplicate tensors found: )
r2  rŠ   rC  r  rg  r�   rë  r†  r  ru  )rÌ   rÝ  rŠ   rº  Ú	tensor_idÚduplicate_tensorsr&  r&  s          @r”   Ú1recompilation_reason_for_no_tensor_aliasing_guardr)    sÃ   ø€ Ý˜Ô2Ñ3Ô3€LÝÔ+­DÑ1Ô1€MØ&ÔAð 7ð 7ˆØ-:ˆÐ)Ñ*Ý•t˜M¨<¸Ñ?Ô?Ñ@Ô@ˆ	Ø�iÔ ×'Ò'¨Ñ6Ô6Ð6Ð6ðð ð ð Ø+8ðñ ô Ðð �YŠYÐ(Ñ)Ô)€FØ0¨Ð0Ð0Ð1Ð1r–   rÐ   c                ó<   — ddl }d}|                     |d| ¦  «        S )z®
    Replace occurrences of L[...] with just the inner content.
    Handles both single and double quotes.

    This is to generate user friendly recompilation messages.
    r   NzL\[\s*['\"](.*?)['\"]\s*\]z\1)ÚreÚsub)rÐ   r+  Úpatterns      r”   r‡  r‡     s(   € ð €I€I€Ià+€GØ�6Š6�'˜5 !Ñ$Ô$Ð$r–   rÌ   rf   Úf_localsrÏ  Ú
compile_idr$   c                ó  — || j         d         dœ}|                     | j        ¦  «         g }d}g }|                      |¦  «        }|j        s+|j        }t          |¦  «        dk    rd|d         v rd}n|}g }|rt          | |¦  «        }nÕ|D ]Ò}t          | j         ¦  «        }	||	d<   t          ¦   «         5  	 t          ||	|¦  «        }
n*# t          $ r t          ¦   «         rY d	d	d	¦  «         Œb‚ w xY w	 d	d	d	¦  «         n# 1 swxY w Y   t          |
t          ¦  «        r|
s|}
t          |
t          ¦  «        r%|                     |
¦  «         t          ¦   «         s nŒÓ|› d
�d                     |¦  «        z   }t%          |¦  «        S )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.
    rÖ  rÔ  Fr8   zDuplicate tensor foundr   Tr$  Nr¿   z; )rŠ   r  r†   r  Úresultr‰   r_  r)  r2  r6   r†  Ú	Exceptionr  r«   rš  rQ  r  ru  r‡  )rÌ   r.  r/  rÝ  rÃ  Úno_tensor_aliasing_check_failedr‰   Úguard_debug_inforÂ   rŠ   Úfail_reasonÚ
reason_strs               r”   r¸  r¸  -  sE  € ð  Ô!;¸CÔ!@ÐAÐA€EØ	‡L‚L�Ô+Ñ,Ô,Ð,Ø€Gà&+Ð#à$&ÐØ$×2Ò2°8Ñ<Ô<Ðð Ô"ð (Ø-Ô@Ðõ Ð!Ñ"Ô" aÒ'Ð'Ø'Ð+=¸aÔ+@Ð@Ð@Ø26Ð/Ð/à,�Ø%'Ð"à&ð ÝCØ˜5ñ
ô 
ˆˆð 'ð 	ð 	ˆDÝ Ô :Ñ;Ô;ˆLØ15ˆLÐ-Ñ.Ý/Ñ1Ô1ð ð ðÝ"& t¨\¸5Ñ"AÔ"A�K�KøÝ ð ð ð Ý4Ñ6Ô6ð Ø ðð ð ñ ô ð ð ð ð	øøøð  ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˜+¥tÑ,Ô,ð #°[ð #Ø"�Ý˜+¥sÑ+Ô+ð Ø—’˜{Ñ+Ô+Ð+Ý4Ñ6Ô6ð Ø�EøàÐ"Ð"Ð" T§Y¢Y¨wÑ%7Ô%7Ñ7€JÝ˜ZÑ(Ô(Ð(s6   Â6DÂ8C
Ã	DÃ
C1Ã"DÃ/C1Ã1DÄD	ÄD	c                ó†  — t          | t          ¦  «        r|› d| j        › �S t          | ||¦  «        }t          t
          |                                       |¦  «         	 | j        �0|                      t          |pdt
          |         ¦  «        ¦  «         n*# t          $ r t                               d¦  «         Y nw xY w|S )Nr¿   zunknown reasonzVFailure in guard_fail_fn callback - raising here will cause a NULL Error on guard eval)r«   r#  r%  r¸  rn   rs   r  r‹   rd   r2  r‹  r  )rÌ   rÁ  r.  r/  r6  s        r”   Úget_guard_fail_reasonr8  p  så   € õ �-Õ!;Ñ<Ô<ð DØÐCÐC Ô AÐCÐCÐCÝ-¨m¸XÀzÑRÔR€JÝ•= Ô&Ô'×.Ò.¨zÑ:Ô:Ð:ð
ØÔ&Ð2Ø×'Ò'Ý˜*Ð8Ð(8½-ÈÔ:MÑNÔNñô ð øøõ ð 
ð 
ð 
Ý�ŠØdñ	
ô 	
ð 	
ð 	
ð 	
ð
øøøð
 Ðs   Á7B Â$B>Â=B>Úframera   c                óD  ‡— g Š| �Ft          | j        | j        |j        | j        ¦  «        }|r‰                     |¦  «         | j        } | ­F|j        }t          ¦   «         pt          ¦   «         }|st          j        rýt          ¦   «         r-d                     d„ t          ‰¦  «        D ¦   «         ¦  «        }n(t          j        d                     ‰¦  «        d¦  «        }d|› �}d|j        › d|j        › d	|j        › dt          j        |d
¦  «        › �}|rCt          ¦   «         rt&                               |¦  «         nt*                               |¦  «         t          j        rt-          j        |¦  «        ‚t0          j                             dd„ ˆfd„¬¦  «         ‰S )zÒ
    Return the list of guard failure reasons using cache_entry.
    Logs the recompilation reason if `recompiles` logging is enabled.
    Raises a RecompileError if `config.error_on_recompile` is enabled.
    Nz

c              3  óT   K  — | ]#\  }}d |› d�t          j        |d¦  «        z   V — Œ$dS )zguard z failures:
ú- N)rŸ  rÔ   )rÁ   rˆ  r&  s      r”   rŒ  z:get_and_maybe_log_recompilation_reasons.<locals>.<genexpr>£  sV   è è € ð #ð #á�A�vð )˜Ð(Ð(Ð(­8¬?¸6À4Ñ+HÔ+HÑHð#ð #ð #ð #ð #ð #r–   rS  r<  z-triggered by the following guard failure(s):
zRecompiling function z in ú:z    Úartifactc                 ó   — dddœS )NÚrecompile_reasonsrR  )r{  ÚencodingrÀ   rÀ   r–   r”   r5  z9get_and_maybe_log_recompilation_reasons.<locals>.<lambda>º  s   € Ø'Øð
ð 
€ r–   c                 ó   •— ‰ S rƒ   rÀ   )rÃ  s   €r”   r5  z9get_and_maybe_log_recompilation_reasons.<locals>.<lambda>¾  s   ø€ ˜7€ r–   )Úmetadata_fnr°  )r8  rÌ   rÁ  r.  r/  r  ÚnextrÇ  r  r  r9   Úerror_on_recompileru  rú  rŸ  rÔ   rÕ  Úco_filenameÚco_firstlinenoÚrecompiles_verbose_logrx  Úrecompiles_logr;   ÚRecompileErrorrÛ   r¾  r¿  )	rŒ   r9  r&  rÁ  Údo_recompiles_logÚfailuresÚguard_failure_detailsÚmessagerÃ  s	           @r”   Ú'get_and_maybe_log_recompilation_reasonsrO  ˆ  s  ø€ ð €GØ
Ð
!Ý&ØÔ%ØÔØŒNØÔ"ñ	
ô 
ˆð ð 	#Ø�NŠN˜6Ñ"Ô"Ð"Ø!Ô&ˆð Ð
!ð Œ<€Dõ .Ñ/Ô/ÐRÕ3PÑ3RÔ3RÐàð .�FÔ5ð .Ý(Ñ*Ô*ð 	AØ—{’{ð #ð #å!*¨7Ñ!3Ô!3ð#ñ #ô #ñ ô ˆHˆHõ
  ” t§y¢y°Ñ'9Ô'9¸4Ñ@Ô@ˆHàG¸XÐGÐGð 	ð@ D¤Lð @ð @°dÔ6Fð @ð @ÈÔI\ð @ð @ÝŒÐ4°fÑ=Ô=ð@ð @ð 	ð ð 	.Ý,Ñ.Ô.ð .Ý&×,Ò,¨WÑ5Ô5Ð5Ð5å×$Ò$ WÑ-Ô-Ð-ÝÔ$ð 	.ÝÔ$ WÑ-Ô-Ð-å	„N×#Ò#Øð
ð 
ð #�?�?�?ð $ñ ô ð ð €Nr–   c                óø   — | }t          ¦   «         }| �5|                     | j                             ¦   «         ¦  «         | j        } | ­5|} | �.|| j        _        | j                             ¦   «          | j        } | ­.|S rƒ   )r�   r  rÌ   r°   rD  r’   r²   )rŒ   Úfirst_cache_entryÚacc_diff_guard_sourcess      r”   r²  r²  Ä  s›   € Ø#Ðõ
 !™UœUÐØ
Ð
!Ø×%Ò%ØÔ%×@Ò@ÑBÔBñ	
ô 	
ð 	
ð "Ô&ˆð	 Ð
!ð $€KØ
Ð
!Ø7MˆÔ!Ô4ØÔ!×=Ò=Ñ?Ô?Ð?Ø!Ô&ˆð Ð
!ð "Ð!r–   rx  r§  Úlastrš  c                ó¦  — t          d|j        › d|j        › d|j        › �¦  «         t          dd                     | j        ¦  «        z   dz   ¦  «         t          dd                     | j        ¦  «        ¦  «         t          | ¦  «         d|i| j        ¥}| j        D ]2}	 t          || j	        |¦  «         Œ#  t          d|› �¦  «         Y Œ0xY wd S )	NzERROR RUNNING GUARDS ú r=  zlambda rË   z and
  rÕ  zMalformed guard:
)
ÚprintrÕ  rF  rG  ru  r‡   rˆ   r†   r†  rŠ   )rÌ   rÁ  r.  rx  rS  rÎ  rÇ   s          r”   Úguard_error_hookrW  Ý  s   € õ 
ØW ¤ÐWÐW¨tÔ/?ÐWÐWÀ$ÔBUÐWÐWñô ð õ 
ˆ)�d—i’i Ô 2Ñ3Ô3Ñ
3°cÑ
9Ñ:Ô:Ð:Ý	ˆ#ˆz�Š˜}Ô7Ñ8Ô8Ñ9Ô9Ð9å	ˆ-ÑÔÐà˜Ð? MÔ$>Ð?€KØÔ)ð 0ð 0ˆð	0Ý�˜Ô2°KÑ@Ô@Ð@Ð@øð	0ÝÐ. uÐ.Ð.Ñ/Ô/Ð/Ð/Ð/øøøð	0ð 0s   Â!B8Â8Cc              #  ój   K  — t          ¦   «         }| D ]}||vr|V — |                     |¦  «         Œ d S rƒ   )r�   r¢   )Úseqrû  r   s      r”   ÚuniquerZ  ÷  sJ   è è € Ý‰5Œ5€DØð ð ˆØ�Dˆ=ˆ=ØˆGˆGˆGØ�HŠH�Q‰KŒKˆKøðð r–   c                óV  — |r¦|| k    r t          |¦  «        }t          | ¦  «        }t          |¦  «        st          | ¦  «        r>t          j        |                      ¦   «         › d|                     ¦   «         › d�¦  «        ‚||k    r t          j        t          j        |¬¦  «        S d S )Nz is aliasing zC. This is not supported. Please do a clone for corresponding input.)rE  )	r   r   r;   ÚUnsafeScriptObjectErrorr{  rˆ  r‰  rÆ  rH  )Ú
obj_sourceÚdupe_sourceÚser_source_is_localÚsource_is_locals       r”   Úmake_dupe_guardra  ÿ  sÏ   € ð ð Y�{ jÒ0Ð0Ý2°;Ñ?Ô?ÐÝ.¨zÑ:Ô:ˆÝ/Øñ
ô 
ð 	å1°*Ñ=Ô=ð	õ Ô-Ø—?’?Ñ$Ô$ð ?ð ?°;×3CÒ3CÑ3EÔ3Eð ?ð ?ð ?ñô ð ð  /Ò1Ð1õ Ô$¥\Ô%AÈKÐXÑXÔXÐXØˆ4r–   )Úskipc                óB  — ddl m} t                               t          j        ¦  «        p#t                               t          j        ¦  «        }|                     ¦   «         j        j	        j
        }|D ]*}t          |t          ¦  «        sJ ‚ |||| dz   ¬¦  «         Œ+dS )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   )ÚTracingContextr8   )Úcollect_debug_stackrb  N)Útorch._guardsrd  rw  rÕ  rÖ  r×  rÔ  rì  Úguards_contextræ  r¢   r«   r&   )rb  r|   rd  re  r¢   rÇ   s         r”   Úinstall_guardrh  !  s¹   € ð -Ð,Ð,Ð,Ð,Ð,å$×1Ò1ÝŒñô ð 8å	×	(Ò	(­¬Ñ	7Ô	7ð ð ×
Ò
Ñ
Ô
Ô
-Ô
;Ô
?€CØð Kð KˆÝ˜%¥Ñ'Ô'Ð'Ð'Ð'ØˆˆEÐ':ÀÈÁÐJÑJÔJÐJÐJðKð Kr–   )r£   rO  rP  rQ  )r  rQ  rÇ   r&   rP  rQ  )rˆ   rc  rÇ   r&   rP  rd  )rP  ri  )r�  r   rP  r	   )rÁ  rÂ  )r8  r*  rP  rS  )rP  r	  )rÐ   rQ  rP  rQ  )rÌ   rf   r.  rÏ  r/  r$   rP  rQ  )
rÌ   rf   rÁ  rÂ  r.  rÏ  r/  r$   rP  rQ  )r9  ra   rP  rd  )
rÌ   rf   rÁ  rÂ  r.  rÏ  rx  r§  rS  rš  )ãr  Ú
__future__r   rT  rÞ  rC  r  r×  rˆ  rI  r  rr  rÖ  rF  Úpickler  rŸ  r   r  rÖ  Ú
contextlibr   rà  r   r   Útypingr   r   r	   r
   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   Útorch._dynamo.sourcer   r   r   r   r   r   r   r    Útorch._dynamo.utilsr!   r"   rf  r#   r$   r%   r&   r'   r(   r)   r*   r+   Útorch._loggingr,   Útorch._utils_internalr-   Ú%torch.fx.experimental.symbolic_shapesr.   r/   r0   r1   r2   Útorch.utilsr3   r  Útorch.utils._ordered_setr4   Útorch.utils._tracebackr5   r6   Útorch.utils.weakr7   r÷   r9   r:   r;   Ú
eval_framer<   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`   ra   rb   rc   rd   re   rf   rK  rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rŸ  Únumpyr  ÚModuleNotFoundErrorra  rz   Útorch._dynamo.output_graphr{   Ú	getLoggerrÆ   r‹  r¾  ÚgetArtifactLoggerrw  rI  rH  rÔ  r�   r  Úcacher(  r)  rN  rW  rÜ   rÝ   r‰  rb  rh  rn  rr  rƒ  r‡  rŒ  r–  r  r™  r³  r¹  r»  rØ  r©  rÄ  rÆ  rã  r!  r#  r™  r*  ÚPicklerr-  rx  rÑ  rv  r  r  rî  r)  r‡  r¸  r8  rO  r²  rW  rZ  ra  rh  rÀ   r–   r”   ú<module>r‚     s7  ððð ð ð" #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø €€€Ø €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JØ !Ð !Ð !Ð !Ð !Ð !à €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø >Ð >Ð >Ð >Ð >Ð >ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð HÐ GÐ GÐ GÐ GÐ GÐ GÐ Gð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð &Ð %Ð %Ð %Ð %Ð %Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð ð ð ð ð ð ð ð ð ð ð *Ð )Ð )Ð )Ð )Ð )Ø /Ð /Ð /Ð /Ð /Ð /Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OØ *Ð *Ð *Ð *Ð *Ð *à (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ð$ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ðJð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð, FJÐ Ð IÐ IÐ IÑ IðØÐÐÐÐøØð ð ð Ø	€B€B€Bðøøøð ð BØÐÐÐÐÐàAÐAÐAÐAÐAÐAð €gÔ˜Ñ!Ô!€ØŒ^×-Ò-¨h¸ÑAÔA€
Ø”×1Ò1°(¸LÑIÔI€Øœ×9Ò9ØÐ"ñô Ð ð ”^×5Ò5°hÐ@PÑQÔQÐ ð^ð ^ð ^ð ^ð ^ñ ^ô ^ð ^ðBTð Tð Tð „ð
.ð 
.ñ „ð
.ð .2€Ð 1Ð 1Ð 1Ñ 1ðð ð ð:/ð /ð /ð /ð ”hÔ&Ô:Ð ð%ð %ð %ð %ð"Qð Qð Qð Qð'ð 'ð 'ð 'ðKð Kð Kðð ð ð3ð 3ð 3ð1ð 1ð 1ðð ð ð ð €Ô˜dÐ#Ñ#Ô#ð!ð !ð !ð !ð !ñ !ô !ñ $Ô#ð!ð&ð &ð &ðR
Gð 
Gð 
Gð Ôðð ð ð ð ñ ô ñ Ôðð
ð ð ð ð �t”yñ ô ð ð
 „ð8ð 8ð 8ñ „ð8ðn
ð n
ð n
ð n
ð n
Ð#ñ n
ô n
ð n
ðD:R8ð R8ð R8ð R8ð R8ñ R8ô R8ð R8ðjð ð ð$ð $ð $ð $ð $Ð!4ñ $ô $ð $ð Ôð$ð $ð $ð $ð $ñ $ô $ñ Ôð$ð Ôð/ð /ð /ð /ð /ñ /ô /ñ Ôð/ð
ð ð ð ð ˜œñ ô ð ðDð ð ð ð|ð |ð |ð |ð |ñ |ô |ð |ð~(;ð (;ð (;ð (;ðVPð Pð PðXð Xð Xð
+ð +ð +ð$2ð 2ð 2ð 
%ð 
%ð 
%ð 
%ð@)ð @)ð @)ð @)ðFð ð ð ð09ð 9ð 9ð 9ðx"ð "ð "ð20ð 0ð 0ð 0ð. Ð Ð%Ñ &Ô &Ð &ðð ð ðð ð ðD !"ð Kð Kð Kð Kð Kð Kð Ks   Æ"F' Æ'F1Æ0F1