ó
    Eñi‡
 ã                   óz  • S r SSKrSSKrSSKrSSKrSSKrSSKrSSKJrJ	r	J
r
  SSKJr  SSKJrJrJrJrJrJr  SSKJr  SSKrSSKrSSKrSSKrSSKJs  Jr  SSKJr  SSKJ r J!r!  SS	K"J#r#  SS
K$J%r%  SSK&J'r'J(r(J)r)  SSK*J+r+  SSK,J-r-  SSK.J/r/  SSK0J1r1J2r2J3r3J4r4  SSK5J6r6  SSK7J8r8J9r9J:r:  SSK;J<r<  SSK=J>r>J?r?  SSK@JArAJBrB  SSKCJDrDJErEJFrFJGrGJHrH  SSKJIrIJJrJJKrKJLrLJMrMJNrNJOrOJPrP  SSKQJRrRJSrSJTrT  SSKUJVrVJWrWJXrXJYrY  SSKZJ[r[  SSK\J]r]J^r^  SSK_J`r`Jara  SSKbJcrcJdrdJere  SSKfJgrgJhrhJiriJjrj   SSKkrl SS KnJoro  \(       a  SS!KpJqrq  SS"KrJsrs  SS#KJtrt  \" S$5      ru\" S%5      rv\Rî                  " \x5      ry\zR÷                  \Rø                  Rø                  Rú                  \Rü                  Rþ                  GR                   \Rü                  Rþ                  GR                  \Rü                  Rø                  Rú                  \Rü                  Rø                  GR                  \GR                  GR                  \GR                  GR
                  \GR                  GR                  GR                  \GR                  GR                  GR                  \GR                  GR                  GR                  \GR                  GR                  GR                  \GR                  GR                  GR                  \Rü                  GR                   GR"                  \Rü                  GR                   GR$                  \Rü                  GR                   GR&                  \Rü                  GR                   GR(                  \Rü                  GR*                  GR,                  \GR.                  GR                  GR                  GR                  \GR0                  GR                  GR                  GR                  \GR2                  GR4                  GR6                  \GR2                  GR4                  GR6                  GR8                  \GR:                  GR<                  GR>                  GR8                  /5      r \zR÷                  \GRB                  /5      r¢\GRF                  GRH                  \GRF                  GRJ                  \GR0                  GRL                  \GR0                  GRN                  \GRP                  GRL                  \GRP                  GRN                  /r©\GRT                  \GRV                  GRX                  \GR                  GRZ                  \GR                  GR\                  \GRF                  GR^                  \GR0                  GR`                  \GR0                  GR^                  \R¸                  GR^                  \GRb                  \GRd                  \GRf                  \GRh                  \GRj                  \GRl                  \GRn                  \GRp                  \GR:                  GRr                  GRt                  GRv                  \GRx                  \GR                  GRz                  \Rü                  GR|                  \GRP                  GR`                  \GRP                  GR^                  /\©-   r¿\R¸                  GR_                  5       (       aT  \¿GR�                  \R¸                  GRN                  \R¸                  GR‚                  \R¸                  GR„                  /5        \zR÷                  \©5      r©\zR÷                  \¿5      r¿\GR†                  S&\z\/ \4   \\Ä   4   4S' j5       rÅ\zR÷                  / S(Q5      rÆ\GR                  GRŽ                  \GR                  GR�                  \GR                  GR’                  1rÊS)\TS*\ËS&S4S+ jrÌS,\GRš                  S&\Î\Rü                  GR*                  GRž                     4S- jrÐS)\TS&\Ñ\Ò\GRš                  \\Ë   4      4S. jrÓ\GR†                  S&\Î\S/\4      4S0 j5       rÔ " S1 S2\T5      rÕ " S3 S4\Õ5      rÖ " S5 S6\GR®                  5      rØ " S7 S8\Õ5      rÙ " S9 S:\Õ5      rÚ " S; S<\Õ5      rÛg! \m a    Srl GNf = f! \m a    Sro GN‡f = f)=ak  
This module implements variable tracking for torch functions and operations during Dynamo tracing.

It provides classes to handle different types of torch operations:

TorchInGraphFunctionVariable: Handles torch.* functions that should be captured in the FX graph.
Provides special handling for constant folding, tensor methods, and torch function overrides.
Manages complex cases like out= variants and parameter construction.

TorchCtxManagerClassVariable: Handles torch context managers like torch.no_grad(), autocast, etc.
Provides implementations for entering/exiting these contexts during tracing.

DispatchKeySetVariable: Represents torch.DispatchKeySet for managing dispatch keys and
device-specific operations during tracing.

The module includes special handling for:
- Constant folding of pure functions
- Tensor method calls
- torch.nn.Parameter construction
- __torch_function__ overrides
- Context manager state tracking
- Device and dtype management

This is a core part of Dynamo's tracing system, translating torch operations into
traceable graph nodes while preserving correct semantics and handling edge cases.
é    N)ÚCallableÚIterableÚSequence)Únullcontext)ÚAnyÚNoReturnÚOptionalÚTYPE_CHECKINGÚTypeVarÚUnion)ÚTypeIs)ÚDispatchKeySet)ÚCONSTANT_VARIABLE_NONEÚConstantVariable)ÚStreamVariable)ÚTorchFunctionModeVariable)ÚGuardÚSourceÚTracingContext)Úwarning_once)ÚGradientEdge)Ú"is_traceable_wrapper_subclass_typeé   )ÚconfigÚgraph_break_hintsÚ	polyfillsÚ	variables)Ú	PyCodegen)Ú!can_convert_to_tracable_parameterÚnew_parameter_placeholderÚtracable_create_parameter)Ú get_registered_device_interfaces)Úraise_observed_exceptionÚunimplemented)ÚGuardBuilderÚinstall_guard)Ú
AttrSourceÚCallFunctionNoArgsSourceÚGlobalStateSourceÚImportSourceÚSyntheticLocalSource)Úcheck_unspec_or_constant_argsÚguard_if_dynÚhas_torch_functionÚhashableÚis_wrapper_or_member_descriptorÚproductÚproxy_args_kwargsÚunwrap_if_wrapperé   )Úraise_type_error_excÚtypestrÚVariableTracker)ÚAutocastModeVariableÚProfilerContextVariableÚ%ProfilerRecordFunctionContextVariableÚTorchFunctionDisableVariable)ÚConstDictVariable)ÚDistributedVariableÚProcessGroupVariable)Úbind_args_cachedÚNestedUserFunctionVariable)ÚListVariableÚNamedTupleVariableÚTupleVariable)Úcan_dispatch_torch_functionÚdispatch_torch_functionÚTensorWithTFOverrideVariableÚTorchFunctionModeStackVariable)Ú_fsdp_param_group)ÚInstructionTranslator)Ú
OpaqueType)ÚTreeSpecÚVÚTÚreturnc                  ó"  • [         R                  R                  S[         R                  R                  S[         R                  R
                  S [         R                  R                  R                  S[         R                  R                  R                  S[         R                  R                  S[         R                  R                  R                  S[         R                  R                  S[         R                   R                  S[         R                   R"                  S[         R                   R$                  S[         R                  R&                  R(                  S[         R*                  R,                  R.                  R0                  S0$ )NFT)ÚtorchÚjitÚis_scriptingÚ
is_tracingÚ_CÚ_get_tracing_stateÚfxÚ_symbolic_traceÚis_fx_tracingÚis_fx_symbolic_tracingÚonnxÚis_in_onnx_exportÚ_dynamoÚexternal_utilsÚis_compilingÚ_utilsÚcompilerÚis_dynamo_compilingÚis_exportingÚ
eval_frameÚ_is_in_optimized_moduleÚnnÚmodulesÚ
activationÚ_is_make_fx_tracing© ó    ÚZ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_dynamo/variables/torch.pyÚtracing_state_functionsrl   Ð   s÷   € ô 	�	‰	×Ñ Ü�	‰	×Ñ˜eÜ�‰×#Ñ# TÜ�‰× Ñ ×.Ñ.°Ü�‰× Ñ ×7Ñ7¸Ü�
‰
×$Ñ$ eä�‰×$Ñ$×1Ñ1°4ä�‰×!Ñ! 4Ü�‰×#Ñ# TÜ�‰×*Ñ*¨DÜ�‰×#Ñ# TÜ�‰× Ñ ×8Ñ8¸$ô 	�‰×Ñ×#Ñ#×7Ñ7¸ð#ð rj   )ÚaddÚsubÚmulÚdivÚsqrtÚvarÚarg_namec                 ó˜  • SSK Jn  [        U [        5      (       ao  U R                  [
        L a\  U R                  (       a  U R                  R                  OSnSU 3nU(       a  USU 3-  n[        SUSSS	/[        R                  QS
9  g[        X5      (       a0  [        U R                  5       H  u  pV[        Xa SU S35        M     gg)z¬Check if var contains a GradientEdge from outside the compiled region.

Used by handle_autograd_grad to reject external GradientEdge objects that
cannot be traced through.
r4   ©ÚBaseListVariableNzGradientEdge in z: z(autograd.grad with external GradientEdgea  torch.autograd.grad() cannot be used with GradientEdge inputs passed from outside the compiled region. The GradientEdge contains a reference to an autograd node that was created before torch.compile started tracing, so Dynamo cannot trace through its computation.z?Move the autograd.grad() call outside the torch.compile region.z>Or use tensor inputs directly instead of GradientEdge objects.©Úgb_typeÚcontextÚexplanationÚhintsÚ[Ú])Úlistsrv   Ú
isinstancerB   Ú	tuple_clsr   ÚsourceÚnamer$   r   ÚSUPPORTABLEÚ	enumerateÚitemsÚ_check_for_gradient_edge)rr   rs   rv   Úsource_infory   ÚiÚitems          rk   r†   r†   ñ   sÃ   € õ (ä�#Ô)×*Ñ*¨s¯}©}ÄÒ/Là),¯¯�c—j‘j—o’o¸ˆØ$ X JÐ/ˆÞØ˜˜K˜=Ð)Ñ)ˆGäØ>ØðSð RØPðô #×.Ñ.ðó	
ô 
�C×	*Ñ	*Ü  §¡Ö+‰GˆAÜ$ T¨Z°q¸¸¸1Ð+=Ö>ò ,ð 
+rj   Útensorc                 ó¾  • SSK Jn  SSKJn  [	        5       n/ nU" U 5      (       a  U" XS9  OUR                  U 5        U H™  n[        U[        R                  5      (       d  M$  UR                  b  UR                  UR                  5        UR                  c  M[  UR                  R                  c  Mt  UR                  UR                  R                  5        M›     U$ )Nr   )Úget_plain_tensors)Úis_traceable_wrapper_subclass)Úout)Útorch._subclasses.fake_tensorrŒ   Útorch.utils._python_dispatchr�   ÚsetÚappendr   rP   ÚTensorÚgrad_fnrm   Ú_base)rŠ   rŒ   r�   Úgrad_fnsÚplain_tensorsÚts         rk   Ú_collect_all_grad_fnsr™     s¡   € Ý?ÝJä/2«u€HàJL€Má$ V×,Ñ,Ù˜&Ó4à×Ñ˜VÔ$ãˆÜ˜!œUŸ\™\×*Ñ*Ùà�9‰9Ñ Ø�L‰L˜Ÿ™Ô#ð �7‰7Ó 1§7¡7§?¡?Ó#>Ø�L‰L˜Ÿ™Ÿ™Ö)ñ ð €Orj   c                 óþ  • SSK Jn  SSKJn  SSKJn  / n[        X5      (       a¥  U R                  5       R                  R                  R                  S5      n[        U[        R                  R                  R                  5      (       d   eU R                  (       a  U R                  R                   OSnUR#                  XV45        U$ [        X5      (       a*  UR%                  ['        U R)                  5       5      5        U$ [        X5      (       a/  U R*                   H  nUR%                  ['        U5      5        M     U$ [-        SS[/        U 5      R0                   3S	[/        U 5      R0                   S
3S/S9  U$ )z»Extract (fake_tensor, source_name) pairs from a VariableTracker.

Used by handle_autograd_grad to collect tensors from the outputs and inputs
arguments for grad_fn reachability analysis.
r4   )ÚLazyVariableTrackerru   ©ÚTensorVariableÚexample_valueNz,autograd.grad with unsupported argument typezgot z3torch.autograd.grad() received an argument of type z@ which is not supported. Expected tensor or sequence of tensors.zHEnsure outputs and inputs arguments are tensors or sequences of tensors.rw   )Úlazyr›   r~   rv   rŠ   r�   r   Úas_proxyÚnodeÚmetaÚgetrP   Ú_subclassesÚfake_tensorÚ
FakeTensorr�   r‚   r’   ÚextendÚ_collect_tensors_with_sourcesÚrealizer…   r$   ÚtypeÚ__name__)rr   r›   rv   r�   Úresultsr¥   Úsource_namer‰   s           rk   r¨   r¨   /  sB  € õ *Ý'Ý&à8:€GÜ�#×&Ñ&Ø—l‘l“n×)Ñ)×.Ñ.×2Ñ2°?ÓCˆÜ˜+¤u×'8Ñ'8×'DÑ'D×'OÑ'O×PÑPÐPÐPØ),¯¯�c—j‘j—o’o¸ˆØ�‰˜Ð1Ô2ð& €Nô% 
�C×	-Ñ	-à�‰Ô4°S·[±[³]ÓCÔDð  €Nô 
�C×	*Ñ	*Ø—I”IˆDØ�N‰NÔ8¸Ó>Ö?ñ ð €Nô 	ØBØœ4 ›9×-Ñ-Ð.Ð/àEÄdÈ3Ãi×FXÑFXÐEYð ZRð Rð [ðò
	
ð €Nrj   .c                  óR  • SSK Jn   SSKJn  [	        U R                  U" 5       R                  5       5      5      n[        R                  [        R                  [        R                  [        R                  [        R                  [        R                  1nUR                  U5        U$ )Nr   )Úchain)Úget_overridable_functions)Ú	itertoolsr¯   Útorch.overridesr°   r‘   Úfrom_iterableÚvaluesrP   ÚonesÚ	ones_likeÚzerosÚ
zeros_likeÚemptyÚfullÚupdate)r¯   Úget_overridable_functions_ÚfuncsÚmores       rk   r°   r°   V  sp   € ååWä�×#Ñ#Ñ$>Ó$@×$GÑ$GÓ$IÓJÓK€Eä�
‰
Ü�‰Ü�‰Ü×ÑÜ�‰Ü�
‰
ð%€Dð 
‡L�L�ÔØ€Lrj   c                   ó¦   ^ • \ rS rSrSr\S\S\SS 4S j5       rS\S\SS4U 4S	 jjr	SS
 jr
S\4S jrS\4S jrSSS\S\4S jrS\4S jrSrU =r$ )ÚBaseTorchVariableii  zHcommon base for all torch.* functions, classes, modules and other thingsÚvaluer�   rN   c                 ó�  • [         R                  " U5      (       a*  [        UR                  [        R
                  5      5        GO|[         R                  " U5      (       a*  [        UR                  [        R                  5      5        GO7[         R                  " U5      (       a)  [        UR                  [        R                  5      5        Oó[         R                  " U5      (       dC  [        U[        R                  R                  [        R                  R                  45      (       a)  [        UR                  [        R                   5      5        Ol[#        U5      (       d3  [        U[        R$                  R&                  R(                  5      (       a  O([        UR                  [        R*                  5      5        U " XS9$ ©N©r�   )ÚinspectÚisclassr&   Ú
make_guardr%   ÚCLASS_MATCHÚismoduleÚMODULE_MATCHÚ
isfunctionÚCLOSURE_MATCHÚ	isbuiltinr   rP   Ú_opsÚ
OpOverloadÚOpOverloadPacketÚBUILTIN_MATCHr0   r\   Úcompiled_autogradÚOpÚFUNCTION_MATCH©ÚclsrÁ   r�   s      rk   Úcreate_with_sourceÚ$BaseTorchVariable.create_with_sourcel  s)  € ä�?Š?˜5×!Ñ!Ü˜&×+Ñ+¬L×,DÑ,DÓEÖFÜ×Ò˜e×$Ñ$Ü˜&×+Ñ+¬L×,EÑ,EÓFÖGÜ×Ò ×&Ñ&Ü˜&×+Ñ+¬L×,FÑ,FÓGÕHÜ×Ò˜u×%Ñ%¬Ø”E—J‘J×)Ñ)¬5¯:©:×+FÑ+FÐG÷*
ñ *
ô ˜&×+Ñ+¬L×,FÑ,FÓGÕHÜ,¨U×3Ñ3´zØ”5—=‘=×2Ñ2×5Ñ5÷8
ñ 8
ð ä˜&×+Ñ+¬L×,GÑ,GÓHÔIÙ�5Ñ(Ð(rj   ÚkwargsNc                 ó2   >• [         TU ]  " S0 UD6  Xl        g )Nri   )ÚsuperÚ__init__rÁ   )ÚselfrÁ   rÙ   Ú	__class__s      €rk   rÜ   ÚBaseTorchVariable.__init__�  s   ø€ Ü‰ÒÑ"˜6Ò"Ø�
rj   c                 ó>  •  U R                   R                   SU R                   R                   3nS[
        R                  " SSU5      -   nUR                  UR                  X0R                   5      5        g ! [         a    S[	        U R                   5       3n Njf = f)NÚ.Ú
torch_obj_Ú__z[^a-zA-Z0-9_]+Ú_)	rÁ   Ú
__module__r«   Ú	ExceptionÚidÚrern   Úextend_outputÚsetup_globally_cached)rÝ   Úcodegenr‚   Úunique_var_names       rk   ÚreconstructÚBaseTorchVariable.reconstruct…  s�   € ð	1Ø—j‘j×+Ñ+Ð,¨A¨d¯j©j×.AÑ.AÐ-BÐCˆDð ¤§¢Ð(9¸3ÀÓ!EÑEˆØ×ÑØ×)Ñ)¨/¿:¹:ÓFõ	
øô ó 	1Ø¤ 4§:¡:£Ð/Ð0ŠDð	1ús   ‚/A7 Á7"BÂBc                 ó   • U R                   $ ©N©rÁ   ©rÝ   s    rk   r    ÚBaseTorchVariable.as_proxy�  ó   € Ø�z‰zÐrj   c                 ó   • U R                   $ rð   rñ   rò   s    rk   Úas_python_constantÚ$BaseTorchVariable.as_python_constant’  rô   rj   ÚtxrI   r‚   c                 ól   • [        U R                  U5      n[        R                  R	                  U5      $ rð   )ÚhasattrrÁ   r   r   Úcreate)rÝ   rø   r‚   Úresults       rk   Úcall_obj_hasattrÚ"BaseTorchVariable.call_obj_hasattr•  s+   € ô ˜Ÿ™ TÓ*ˆÜ×)Ñ)×0Ñ0°Ó8Ð8rj   c                 óÚ   • U R                   [        ;   a  gU R                   [        R                  R                  L a  [
        R                  (       a  g[        U R                   SS 5      S:H  $ )NTrå   Úmath)rÁ   Úconstant_fold_functionsrP   ÚautogradÚ_profiler_enabledr   Ú'constant_fold_autograd_profiler_enabledÚgetattrrò   s    rk   Úcan_constant_fold_throughÚ+BaseTorchVariable.can_constant_fold_through›  sP   € Ø�:‰:Ô0Ó0Øð �J‰Jœ%Ÿ.™.×:Ñ:Ò:Ü×>×>ð ä�t—z‘z <°Ó6¸&Ñ@Ð@rj   rñ   )rë   r   rN   N)r«   rå   Ú__qualname__Ú__firstlineno__Ú__doc__Úclassmethodr   r   r×   rÜ   rí   r    rö   Ústrr   rý   Úboolr  Ú__static_attributes__Ú__classcell__©rÞ   s   @rk   rÀ   rÀ   i  s–   ø† ÙRàð) sð )°Fð )Ð?Ró )ó ð)ð(˜cð ¨Sð °T÷ ô
ð˜#ô ð Cô ð9Ø)ð9Ø14ð9à	ô9ðA¨4÷ Aò Arj   rÀ   c                   óp   ^ • \ rS rSrSrS\4S jr\S\S\	4S j5       r
SSS	\\   S
SSS4U 4S jjrSrU =r$ )ÚTorchCtxManagerClassVariableiµ  zLPoints to a context manager class in torch.* that dynamo has implementationsrN   c                 ó"   • SU R                    S3$ )NzTorchCtxManagerClassVariable(Ú)rñ   rò   s    rk   Ú__repr__Ú%TorchCtxManagerClassVariable.__repr__¸  s   € Ø.¨t¯z©z¨l¸!Ð<Ð<rj   rÁ   c                 ór   • [        U 5      n [        U 5      =(       a    [        U 5      =(       a	    U [        ;   $ rð   )r3   Úcallabler/   Úsupported_ctx_manager_classesrñ   s    rk   Úis_matching_clsÚ,TorchCtxManagerClassVariable.is_matching_cls»  s6   € ô " %Ó(ˆô �U‹O÷ ä˜“÷ ;ØÔ:Ñ:ð	
rj   rø   rI   ÚargsrÙ   údict[str, VariableTracker]r7   c           
      ó¢  >• SSK JnJnJnJnJnJn	Jn
JnJ	nJ
nJnJnJn  U R                  [        R                   L aq  [#        U5      S:X  aP  [%        US   [&        R(                  R*                  5      (       a$  U
R-                  US5      nUR/                  XU5      $ U
R-                  US5      $ U R                  [        R0                  L aq  [#        U5      S:X  aP  [%        US   [&        R(                  R*                  5      (       a$  U
R-                  US5      nUR/                  XU5      $ U
R-                  US5      $ U R                  [        R2                  L a0  [#        U5      S:X  a!  U
R-                  XS   R5                  5       SS9$ U R                  [        R6                  L aV  [#        U5      S::  a  [#        U5      S:X  d   e[#        U5      S:X  a  US   R5                  5       OSnUR-                  UU5      $ U R                  [        R8                  R:                  R<                  [        R8                  R:                  R<                  R>                  4;   aB  [#        U5      S::  a  [#        U5      S:X  d   eU" US   R5                  5       U R@                  S9$ [B        RD                  " U R                  5      (       a_  [G        U R                  [        RH                  5      (       a6  SSK%J&n  U" UUURN                  RQ                  S	U R                  S
0 5      5      $ U R                  [        RR                  RT                  RV                  [        RX                  RR                  RV                  [        RZ                  RR                  RV                  4;   a!  [\        R,                  " U R                  X#5      $ U R                  [        R^                  R`                  [        Rb                  R^                  R`                  4;   a  [d        R,                  " U R                  X#S9$ U R                  [        R^                  Rf                  [        Rb                  R^                  Rf                  4;   a%  [i        [j        SU R                  5        [m        5       $ U R                  [        Rn                  Rp                  L d'  U R                  [        Rn                  Rr                  L aH  U(       d  U(       a   e[t        R,                  " XR                  [        Rn                  Rp                  L S9$ U R                  [        Rv                  Rx                  Rz                  L a#  [#        U5      S:X  d   eUR-                  UU5      $ U R                  [        Rv                  R|                  R~                  L a"  [#        U5      S:X  d   eUR-                  U5      $ U R                  [        Rb                  R€                  R‚                  L a=  [#        U5      S:X  d   eUR-                  UU Vs/ s H  n[…        U5      PM     sn5      $ U R                  [        Rb                  R€                  R†                  L a"  [#        U5      S:X  d   eUR-                  U5      $ U R                  [        Rv                  R|                  Rˆ                  L a"  [#        U5      S:X  d   eUR-                  U5      $ U R                  [        Rv                  R|                  RŠ                  L a=  [#        U5      S:X  d   eU	R-                  UU Vs/ s H  n[…        U5      PM     sn5      $ U R                  [        Rb                  RŒ                  RŽ                  L a3  [#        U5      S:X  d   eUR-                  XS   R5                  5       5      $ [�        b^  U R                  [�        R’                  R”                  L a7  [#        U5      S:X  d   eUR-                  XS   US   R5                  5       5      $ U R                  [        R–                  R˜                  Rš                  R>                  L a\  [�        U R                  UU R@                  UU5      nUS   R5                  5       nUS   R5                  5       nUR-                  UUU5      $ [ž        TU ]]  XU5      $ s  snf s  snf )Nr4   )Ú!DisabledSavedTensorsHooksVariableÚDualLevelContextManagerÚ&FSDPParamGroupUseTrainingStateVariableÚFxTracebackAnnotateVariableÚ&GradIncrementNestingCtxManagerVariableÚ)GradInplaceRequiresGradCtxManagerVariableÚGradModeVariableÚInferenceModeVariableÚ%JvpIncrementNestingCtxManagerVariableÚSDPAKernelVariableÚSetFwdGradEnabledContextManagerr   Ú&VmapIncrementNestingCtxManagerVariabler   FT)ÚinitializedrÄ   )Úwrap_fx_proxy_clsÚcall_functionri   )ÚfuncÚrecord_argsÚrecord_kwargsz$Profiler function %s will be ignored)Úonly_subclassr   ÚbackendsÚset_priority)PÚ r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r   r*  rÁ   rP   Úno_gradÚlenr   r   Ú	functionsÚBaseUserFunctionVariablerû   r-  Úenable_gradÚset_grad_enabledrö   Úinference_moderV   Ú	tracebackÚannotateÚ__wrapped__r�   rÅ   rÆ   Ú
issubclassÚStreamÚtorch._dynamo.variables.builderr,  ÚoutputÚcreate_proxyÚampÚautocast_modeÚautocastÚcudaÚcpur8   ÚprofilerÚrecord_functionr  r:   Úprofiler   Úlogr9   rT   ÚDisableTorchFunctionSubclassÚDisableTorchFunctionr;   Ú
_functorchÚvmapÚvmap_increment_nestingÚeager_transformsÚjvp_increment_nestingÚ
forward_adÚ_set_fwd_grad_enabledr-   Ú
dual_levelÚgrad_increment_nestingÚenable_inplace_requires_gradÚgraphÚdisable_saved_tensors_hooksrH   ÚFSDPParamGroupÚuse_training_statere   Ú	attentionÚsdpa_kernelr?   rÛ   )rÝ   rø   r  rÙ   r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r   r*  ÚctxÚinf_moder,  ÚxÚname_to_arg_mapr2  r3  rÞ   s                           €rk   r-  Ú*TorchCtxManagerClassVariable.call_functionË  sð  ø€ ÷	
÷ 	
÷ 	
õ 	
ð  �:‰:œŸ™Ò&Ü�4‹y˜A‹~¤*Ø�Q‘œ×,Ñ,×EÑE÷#ñ #ð '×-Ñ-¨b°%Ó8�Ø×(Ñ(¨°6Ó:Ð:à'×.Ñ.¨r°5Ó9Ð9Ø�Z‰Zœ5×,Ñ,Ò,Ü�4‹y˜A‹~¤*Ø�Q‘œ×,Ñ,×EÑE÷#ñ #ð '×-Ñ-¨b°$Ó7�Ø×(Ñ(¨°6Ó:Ð:Ø#×*Ñ*¨2¨tÓ4Ð4Ø�Z‰Zœ5×1Ñ1Ò1´c¸$³iÀ1³nØ#×*Ñ*Ø˜‘G×.Ñ.Ó0¸dð +ð ð ð �Z‰Zœ5×/Ñ/Ò/Ü�t“9 “>¤c¨&£k°QÓ&6Ð6Ð6Ü7:¸4³yÀA³~�t˜A‘w×1Ñ1Ô3È4ˆHØ(×/Ñ/°°HÓ=Ð=Ø�Z‰ZÜ�H‰H×Ñ×'Ñ'Ü�H‰H×Ñ×'Ñ'×3Ñ3ð
ó 
ô �t“9 “>¤c¨&£k°QÓ&6Ð6Ð6Ù.Ø�Q‘×*Ñ*Ó,°T·[±[ñð ô �_Š_˜TŸZ™Z×(Ñ(¬Z¸¿
¹
ÄEÇLÁL×-QÑ-QÝIá$ØØØ—	‘	×&Ñ&Ø#Ø—J‘JØØó	ó	ð 	ð �Z‰ZÜ�I‰I×#Ñ#×,Ñ,Ü�J‰J�N‰N×#Ñ#Ü�I‰I�M‰M×"Ñ"ð
ó 
ô (×.Ò.¨t¯z©z¸4ÓHÐHØ�Z‰ZÜ�N‰N×*Ñ*Ü�N‰N×#Ñ#×3Ñ3ð
ó 
ô 9×?Ò?Ø—Z‘Z¨Tñð ð �Z‰ZÜ�N‰N×"Ñ"Ü�N‰N×#Ñ#×+Ñ+ð
ó 
ô œÐDÀdÇjÁjÔQÜ*Ó,Ð,à�J‰Jœ%Ÿ(™(×?Ñ?Ò?Ø�z‰zœUŸX™X×:Ñ:Ò:æ¦Ð'Ð'Ü/×6Ò6Ø§*¡*´·±×0UÑ0UÐ"Uñð ð �Z‰Zœ5×+Ñ+×0Ñ0×GÑGÒGÜ�t“9 “>Ð!�>Ø9×@Ñ@ØØóð ð �Z‰Zœ5×+Ñ+×<Ñ<×RÑRÒRÜ�t“9 “>Ð!�>Ø8×?Ñ?ÀÓCÐCØ�Z‰Zœ5Ÿ>™>×4Ñ4×JÑJÒJÜ�t“9 “>Ð!�>Ø2×9Ñ9ØÙ*.Ó/ª$ Q”˜a–©$Ñ/óð ð �Z‰Zœ5Ÿ>™>×4Ñ4×?Ñ?Ò?Ü�t“9 “>Ð!�>Ø*×1Ñ1°"Ó5Ð5Ø�Z‰Zœ5×+Ñ+×<Ñ<×SÑSÒSÜ�t“9 “>Ð!�>Ø9×@Ñ@ÀÓDÐDà�J‰Jœ%×*Ñ*×;Ñ;×XÑXÒXä�t“9 “>Ð!�>Ø<×CÑCØÙ*.Ó/ª$ Q”˜a–©$Ñ/óð ð �Z‰Zœ5Ÿ>™>×/Ñ/×KÑKÒKÜ�t“9 “>Ð!�>Ø4×;Ñ;Ø˜‘G×.Ñ.Ó0óð ô Ñ)Ø—
‘
Ô/×>Ñ>×QÑQÒQä�t“9 “>Ð!�>Ø9×@Ñ@Ø˜‘G˜T !™W×7Ñ7Ó9óð ð �Z‰Zœ5Ÿ8™8×-Ñ-×9Ñ9×EÑEÒEÜ.à—
‘
ØØ—‘ØØóˆOð ' zÑ2×EÑEÓGˆHØ*¨>Ñ:×MÑMÓOˆLØ%×,Ñ,¨R°¸<ÓHÐHä‰wÑ$ R¨vÓ6Ð6ùòU 0ùò 0s   Ø'c
Ü;c
ri   )r«   rå   r  r	  r
  r  r  Ústaticmethodr   r  r  r   r7   r-  r  r  r  s   @rk   r  r  µ  so   ø† ÙVð=˜#ô =ð ð
˜sð 
 tó 
ó ð
ðU7à#ðU7ð �Ñ'ðU7ð -ð	U7ð
 
÷U7õ U7rj   r  c                   ó    • \ rS rSrSrSrSrSrg)ÚAllowInGraphKindic  ÚdefaultÚnonstrict_traceÚleaf_functionri   N)r«   rå   r  r	  ÚDEFAULTÚNONSTRICT_TRACEÚLEAF_FUNCTIONr  ri   rj   rk   rf  rf  c  s   † Ø€GØ'€OØ#ƒMrj   rf  c            
       ó~  ^ • \ rS rSrSr S#S\S\4   S\S-  S\SS4U 4S	 jjjrS\	4S
 jr
S\S\4   4S jr\\R                  S\\S\4   \S\4   4   4S j5       5       rSSS\\   SSSS4S jrSSS\\   SSS\4S jrSSS\\   S\\	\4   S\\\4   4S jrSSS\\   S\\	\4   S\4S jrSSS\\   S\\	\4   S\4S jr\  S$SSS\S-  S\S\4S jj5       r\SSS\S\S\4S j5       rSSS\\   S\\	\4   S\4S jrS\4S jrSSS\ \   S\\	\4   S\4S jr!S\4S jr"S\#4S jr$S \%S\4S! jr&S"r'U =r($ )%ÚTorchInGraphFunctionVariableii  z@Points to a torch function/method that should be put in FX graphNrÁ   .ÚkindrÙ   rN   c                 óâ   >• [         TU ]  " U40 UD6  SSKJnJn  UcL  U" U5      (       a  [
        R                  nO.U" U5      (       a  [
        R                  nO[
        R                  nX l	        g )Nr   )Úis_leaf_functionÚis_nonstrict_trace_callable)
rÛ   rÜ   Útrace_rulesrq  rr  rf  rl  rk  rj  ro  )rÝ   rÁ   ro  rÙ   rq  rr  rÞ   s         €rk   rÜ   Ú%TorchInGraphFunctionVariable.__init__l  s[   ø€ ô 	‰Ò˜Ñ) &Ò)ßOà‰<Ù ×&Ñ&Ü'×5Ñ5‘Ù,¨U×3Ñ3Ü'×7Ñ7‘ä'×/Ñ/�à�	rj   c                 ó<   • SU R                    SU R                   S3$ )NzTorchInGraphFunctionVariable(z, kind=r  )rÁ   ro  rò   s    rk   r  Ú%TorchInGraphFunctionVariable.__repr__  s   € Ø.¨t¯z©z¨l¸'À$Ç)Á)ÀÈAÐNÐNrj   c                 ó   • U R                   $ rð   rñ   rò   s    rk   Úget_functionÚ)TorchInGraphFunctionVariable.get_function‚  rô   rj   c                  óð!  ^G^H^I^J^K^L^M^N^O• 0 mMS[         S[        4   S[         [         S[        4   /[         S[        4   4   4UM4S jjn SSKJn  SSKJmGJmHJmIJmJJ	mKJ
mL  SS	KJmNJmO  U " [        5       6 S
SS[        S[        S[        4UG4S jj5       nU " [         6 S
SS[        S[        S[        4S j5       nU " ["        R$                  R&                  R(                  5      S
SS[        S[        S[        4S j5       nU " ["        R*                  R,                  R.                  R0                  5      S
SS[        S[        S[        4S j5       nU " [2        R4                  5      S
SS[        S[        S[        S-  4S j5       n[7        [2        S5      (       a5  U " [2        R8                  5      S
SS[        S[        S[        S-  4S j5       nU " ["        R:                  5      S
SS[<        4S j5       nU " ["        R>                  ["        R$                  R@                  5      S
SS[        S[        4UGUL4S jj5       n	U " ["        RB                  ["        RD                  5      S
SS[        S[        S-  4UG4S jj5       n
U " ["        RF                  5      S
SS[        S[        S-  4UG4S jj5       nU " ["        RH                  5      S
SS[        S[        S[        4S j5       nU " ["        RJ                  RL                  5      S
SS[        S[        S[        4S j5       nU " [N        6 S
SS[        S[        4S j5       nU " ["        RP                  RR                  RT                  RV                  ["        RP                  RR                  RT                  RX                  ["        RP                  RR                  RT                  RZ                  ["        RP                  RR                  RT                  R\                  ["        RP                  RR                  RT                  R^                  5      S
SS[        S[        S[        4S j5       nU " ["        R`                  5      S
SSTG4UGUH4S  jj5       nU " ["        Rb                  5       SiS
SS![        S"[d        S[        4S# jj5       nU " ["        Rf                  5      S
SSTG4UG4S$ jj5       nU " ["        Rh                  Rj                  5      S
SSTG4UG4S% jj5       nU " ["        Rh                  Rl                  5      S
SSTG4UG4S& jj5       nU " ["        Rh                  Rn                  5      S
SSTG4S' j5       nU " ["        R$                  Rp                  ["        R$                  Rr                  ["        R$                  Rt                  5      S
SS[        STG4UG4S( jj5       nU " [v        Ry                  S) [{        5        5       5      6 S
SS*S+STI4UI4S, jj5       nU " ["        R|                  5      S
SS[        STK4UKUO4S- jj5       nU " ["        R~                  R€                  5      S
SS.[        S/[‚        S[‚        4S0 j5       nU " ["        R„                  R†                  Rˆ                  5      S
SS1[        S2[        STG4UG4S3 jj5       nU " ["        RT                  RŠ                  RŒ                  5      S
SS[        S[        S[        4S4 j5       nU " ["        RP                  RŽ                  5      S
SS[        S[        S[        4S5 j5       nU " ["        R*                  R�                  R’                  ["        R*                  R�                  R’                  R”                  5       SjS6[        S
SS7[        S-  S[        S-  4S8 jj5       nU " ["        R*                  R�                  R–                  ["        R*                  R�                  R–                  R”                  5       SjS6[        S
SS7[        S-  S[        S-  4S9 jj5       nU " ["        R˜                  5      S
SS[        S[        S[        S-  4S: j5       nU " ["        Rš                  5      S
SS;[        S<[        S[        S[        S-  4
S= j5       n U " ["        Rœ                  5      S>[        S
SS[        S[        S[        S-  4
S? j5       n!U " ["        Rž                  5      S>[        S
SS[        S[        S[        S-  4
S@ j5       n"U " ["        Rh                  R                   5      S>[        S
SS[        S[        S[        4
SA j5       n#U " ["        R¢                  5      S
SSB[        SC[        S[        S-  4SD j5       n$U " U5      S
SS[        S[        S[        4UN4SE jj5       n%[¤        R¦                  " 5       (       ag  SSFKTJUn&JVn'JWn(JXn)JYn*  SSGKZJ[n+  U " U&U'U(U*U)5      S
SS[        S[        4SH j5       n,U " U+R¸                  5      S
SS[        S[        S[        4UN4SI jj5       n-U " ["        Rº                  R¼                  5       SjSSJ.S
SSK[        S-  S[        SL[        S-  S[        SS4SM jjj5       n.U " ["        RP                  R¾                  RÀ                  5      S
SS[        S[        SS4SN j5       n/U " ["        RÂ                  RÄ                  RÆ                  RÈ                  5       SjS
SSO[        SP[Ê        [           S[        S-  4UJ4SQ jjj5       n0U " ["        RÂ                  RÄ                  RÆ                  RÌ                  5      S
SSO[        S[        S-  4UJ4SR jj5       n1U " ["        RÂ                  RÄ                  RÆ                  RÎ                  5      S
SSO[        S[        S-  4UJ4SS jj5       n2U " ["        RÂ                  RÄ                  RÆ                  RÐ                  5      S
SSO[        S[        S-  4UJ4ST jj5       n3U " ["        RÂ                  RÄ                  RÆ                  RÒ                  5      S
SSO[        S[        S-  4UJ4SU jj5       n4U " ["        RÂ                  RÄ                  RÆ                  RÔ                  5      S
SSO[        S[        4UJ4SV jj5       n5U " ["        RÂ                  RÄ                  RÆ                  RÖ                  5      S
SSO[        S[        S-  4UJ4SW jj5       n6U " ["        RÂ                  RÄ                  RÆ                  RØ                  5      S
SSX[        S[        S-  4UJ4SY jj5       n7U " ["        RÂ                  RÄ                  RÆ                  RÚ                  5      S
SSX[        S[        S-  4UJ4SZ jj5       n8U " ["        RÂ                  RÄ                  RÆ                  RÜ                  5      S
SSO[        S[        S-  4UJ4S[ jj5       n9U " ["        Rh                  RÞ                  Rà                  5      S
SS[        S[        S[        4S\ j5       n:U " ["        Rh                  Râ                  Rä                  5      S
SS[        S[        STL4UL4S] jj5       n;U " ["        Râ                  Ræ                  Rè                  5      S
SS[        S[        S[ê        4S^ j5       n<U " ["        Rì                  5      S
SS[        S[        S[        S-  4UJ4S_ jj5       n=U " ["        Rh                  Rî                  5      S
SS[        S[        S[ð        4S` j5       n>U " ["        Rh                  Rò                  5      S
SS[        S[        S[        4Sa j5       n?U " ["        Rh                  Rô                  5      S
SS[        S[        S[        4UG4Sb jj5       n@U " ["        Rh                  Rö                  5      S
SS[        S[        S[ð        4Sc j5       nAU " ["        Rø                  R(                  5      S
SS[        S[        S[        4Sd j5       nBU " ["        Rú                  Rü                  ["        Rþ                  Rü                  5      S
SS[        S[        SG[         4Se j5       nCU " ["        GR                  5      S
SS[        S[        S[        4Sf j5       nDU " ["        GR                  5      S
SS[        S[        S[        4UN4Sg jj5       nEU " ["        GR                  GR                  5      SkSh j5       nFTM$ )lzBuild a dict from function -> method to handle it so that we are O(1)
in terms of the number of function with special handling.Úfns.rN   c                  ó‚   >^ • S[         S[        4   S[         S[        4   4U U4S jjn[        T S   5      (       d   eU$ )NÚhandler.rN   c                 ó>   >• T H  nUT;  d   U5       eU TU'   M     U $ rð   ri   )r}  Úfnr{  Úhandlerss     €€rk   Ú	_registerÚOTorchInGraphFunctionVariable._get_handlers.<locals>.register.<locals>._register�  s0   ø€ Û�BØ XÓ-Ð1¨rÓ1Ð-Ø#*�H˜R“Lñ ð �rj   r   )r   r   r  )r{  r�  r€  s   ` €rk   ÚregisterÚ<TorchInGraphFunctionVariable._get_handlers.<locals>.registerŒ  sJ   ù€ ð¤8¨C´¨HÑ#5ð ¼(À3ÌÀ8Ñ:L÷ ð ô ˜C ™F×#Ñ#Ð#Ð#ØÐrj   r   )Ú
SDPAParamsr4   )r   r%  ÚStreamContextVariableÚSymNodeVariabler�   ÚUserDefinedObjectVariable)Úwrap_fx_proxyr,  rø   rI   r  rÙ   c                 ó  >• U(       d  U(       a   eU R                   [        R                  R                  [        R                  R
                  R                  [        R                  R                  [        R                  R                  [        R                  R                  [        R                  R                  R                  4;   a  UR                  5         TR                  " [        5       U R                      5      $ rð   )rÁ   rP   r_   r^   r\   r]   r`   ra   rb   rc   rd   Úmark_inconsistent_side_effectsrû   rl   ©rÝ   rø   r  rÙ   r   s       €rk   Úhandle_tracing_state_functionsÚRTorchInGraphFunctionVariable._get_handlers.<locals>.handle_tracing_state_functions¤  s§   ø€ ö ¦FÐ*Ð*à�z‰zä—‘×)Ñ)ä—‘×,Ñ,×9Ñ9Ü—‘×+Ñ+Ü—‘×2Ñ2Ü—‘×+Ñ+Ü—‘×(Ñ(×@Ñ@ð	ó 	ð ×1Ñ1Ô3Ø#×*Ò*Ô+BÓ+DÀTÇZÁZÑ+PÓQÐQrj   c                 ó  • U(       a   eU R                   [        R                  R                  L Ga&  [	        U5      S:X  d   eUS   R                  5       (       d   eUS   R                  R                  R                  S   nU R                  U5      n[        U[        R                  R                  5      (       a†  U[        R                  R                  [        R                  R                  R                  5      -
  [        R                  R                  [        R                  R                  R                  5      -
  n[         R#                  U5      $ U(       a   e[         R#                  U R                  5       5      $ )Nr4   r   rž   )rÁ   rP   rT   Ú_dispatch_keysr6  Ú	is_tensorÚproxyr¡   r¢   r   r¤   r¦   r   ÚDispatchKeyÚPythonÚPythonTLSSnapshotÚDispatchKeySetVariablerû   )rÝ   rø   r  rÙ   rž   Údkss         rk   Ú!handle_dispatch_key_set_functionsÚUTorchInGraphFunctionVariable._get_handlers.<locals>.handle_dispatch_key_set_functionsº  s  € ö Ð�:Ø�z‰zœUŸX™X×4Ñ4Ó4Ü˜4“y A“~Ð%�~Ø˜A‘w×(Ñ(×*Ñ*Ð*Ð*à $ Q¡§¡× 2Ñ 2× 7Ñ 7¸Ñ H�Ø—j‘j Ó/�ô ˜m¬U×->Ñ->×-IÑ-I×JÑJàÜŸ(™(×1Ñ1´%·(±(×2FÑ2F×2MÑ2MÓNñOäŸ(™(×1Ñ1Ü!ŸH™H×0Ñ0×BÑBóñð ô .×4Ñ4°SÓ9Ð9æ��xÜ-×4Ñ4°T·Z±Z³\ÓBÐBrj   c                 óh   • [         R                  " U[        R                  R	                  5       5      $ rð   )r7   ÚbuildrP   Ú	overridesÚget_default_nowrap_functions©rÝ   rø   r  rÙ   s       rk   Ú#handle_get_default_nowrap_functionsÚWTorchInGraphFunctionVariable._get_handlers.<locals>.handle_get_default_nowrap_functionsÚ  s)   € ô #×(Ò(Ø”E—O‘O×@Ñ@ÓBóð rj   c                 ól   • UR                  [        R                  " U[        R                  5      X#5      $ rð   )Úinline_user_function_returnr7   r›  r   Úaccumulate_gradrž  s       rk   Úhandle_accumulate_grad_ÚKTorchInGraphFunctionVariable._get_handlers.<locals>.handle_accumulate_grad_é  s/   € ð ×1Ñ1Ü×%Ò% b¬)×*CÑ*CÓDÀdóð rj   Nc                 óŽ   • [        X#5      (       d5  UR                  [        R                  " U[        R
                  5      X#5      $ g rð   )r,   r¢  r7   r›  r   Úradiansrž  s       rk   Úhandle_radiansÚBTorchInGraphFunctionVariable._get_handlers.<locals>.handle_radiansô  s?   € ô 1°×>Ñ>à×5Ñ5Ü#×)Ò)¨"¬i×.?Ñ.?Ó@À$óð ð ?rj   Úfmac                 óÄ   • [        U5      S:w  d  U(       a  g [        S U 5       5      (       a2  Uu  pEn[        [        R                  5      nUR                  XXE/0 5      $ g )Né   c              3   ó@   #   • U  H  oR                  5       v •  M     g 7frð   )r‘  )Ú.0Úargs     rk   Ú	<genexpr>ÚQTorchInGraphFunctionVariable._get_handlers.<locals>.handle_fma.<locals>.<genexpr>  s   é € Ð7²$¨3—}‘}—�²$ùó   ‚)r6  Úallrn  rP   Úaddcmulr-  )rÝ   rø   r  rÙ   ra  ÚyÚzÚ
addcmul_fns           rk   Ú
handle_fmaÚ>TorchInGraphFunctionVariable._get_handlers.<locals>.handle_fma  sX   € ô �t“9 “>¦VØäÑ7±$Ó7×7Ñ7Ø"‘G�A˜!Ü!=¼e¿m¹mÓ!L�JØ%×3Ñ3°B¸A¸	À2ÓFÐFð rj   c                 ó\   • [        SSS/ [        R                  Q[        R                  QS9  g )Nz:Encountered torch.is_inference_mode_enabled during tracingr4  z2torch.is_inference_mode_enabled() is not supportedrw   )r$   r   ÚFUNDAMENTALÚINFERENCE_MODE©rÝ   rø   s     rk   Ú handle_is_inference_mode_enabledÚTTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_inference_mode_enabled  s6   € ô ØTØØPðÜ&×2Ñ2ðä&×5Ñ5ðó	rj   r¯  c                 ó  >• UR                  5       (       dS  U R                  [        R                  R                  L a>  [        UT5      (       a-  [        UR                  S5      (       a  TR                  " S5      $ TR                  " S5      $ )NÚ__torch_function__TF)r‘  rÁ   rP   rœ  Úis_tensor_liker   rú   rû   )rÝ   rø   r¯  r   rˆ  s      €€rk   Úhandle_is_tensorÚDTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_tensor#  sh   ø€ ð �}‰}�‰Ø—
‘
œeŸo™o×<Ñ<Ò<Ü˜sÐ$=×>Ñ>Ü˜CŸI™IÐ';×<Ñ<à'×.Ò.¨tÓ4Ð4à'×.Ò.¨uÓ5Ð5rj   Úinputc                 óŠ  >• UnUR                  5       (       a«  UR                  bž  U R                  [        R                  L a&  TR
                  " UR                  R                  5      $ U R                  [        R                  L a&  TR
                  " UR                  R                  5      $ [        SU R                   35      eg )Nzcalling )r‘  ÚdtyperÁ   rP   Úis_floating_pointrû   Ú
is_complexÚAssertionError)rÝ   rø   rÅ  Ú	input_argr   s       €rk   Úhandle_is_floating_pointÚLTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_floating_point0  s•   ø€ ð ˆIØ×"Ñ"×$Ñ$¨¯©Ñ)DØ—:‘:¤×!8Ñ!8Ò8Ø+×2Ò2°9·?±?×3TÑ3TÓUÐUØ—Z‘Z¤5×#3Ñ#3Ò3Ø+×2Ò2°9·?±?×3MÑ3MÓNÐNä(¨8°D·J±J°<Ð)@ÓAÐAØrj   c                 óö   >• UR                  5       (       a:  UR                  5       (       a%  TR                  " [        UR                  5      5      $ UR                  5       (       a  UR                  US/ 0 5      $ g )NÚnumel)r‘  Ú
valid_sizerû   r1   ÚsizeÚcall_method)rÝ   rø   rÅ  r   s      €rk   Úhandle_numelÚ@TorchInGraphFunctionVariable._get_handlers.<locals>.handle_numelA  sa   ø€ ð �‰× Ñ  U×%5Ñ%5×%7Ñ%7Ø'×.Ò.¬w°u·z±zÓ/BÓCÐCØ—‘×"Ñ"à×(Ñ(¨¨W°b¸"Ó=Ð=Ørj   c                 ór   • [        U5      S:X  a  US   $ [        SSU SU 3SS/[        R                  QS9  g )	Nr4   r   z torch.compile call with > 1 argsúargs=ú	, kwargs=zNAttempted to call `torch.compile` with > 1 args. Dynamo does not support this.z5Remove the torch.compile call or its additional args.rw   ©r6  r$   r   rƒ   rž  s       rk   Úhandle_torch_compileÚHTorchInGraphFunctionVariable._get_handlers.<locals>.handle_torch_compileL  sL   € ô �4‹y˜A‹~à˜A‘w�äØ:Ø ˜v Y¨v¨hÐ7ØlàKðä&×2Ñ2ðó	rj   c                 ór   • [        U5      S:X  a  US   $ [        SSU SU 3SS/[        R                  QS9  g )	Nr4   r   z,torch.library.wrap_triton call with > 1 argsrÖ  r×  zZAttempted to call `torch.library.wrap_triton` with > 1 args. Dynamo does not support this.zARemove the torch.library.wrap_triton call or its additional args.rw   rØ  rž  s       rk   Úhandle_wrap_tritonÚFTorchInGraphFunctionVariable._get_handlers.<locals>.handle_wrap_tritona  sL   € ô �4‹y˜A‹~à˜A‘w�äØFØ ˜v Y¨v¨hÐ7ØxàWðä&×2Ñ2ðó	rj   c                 óX   • UR                  5       (       d   eUR                  US/ 0 5      $ ©NrÑ  )r‘  rÒ  )rÝ   rø   rÅ  s      rk   Úhandle_tensor_size_rewritesÚOTorchInGraphFunctionVariable._get_handlers.<locals>.handle_tensor_size_rewritesv  s.   € ð —?‘?×$Ñ$Ð$Ð$Ø×$Ñ$ R¨°°RÓ8Ð8rj   c                 ó&   • U R                  XU5      $ rð   )Ú_call_ntuplerž  s       rk   Úhandle_ntupleÚATorchInGraphFunctionVariable._get_handlers.<locals>.handle_ntuple}  s   € ð ×$Ñ$ R¨vÓ6Ð6rj   c                 óx   >• [        TR                  5        TR                  " [        R                  " 5       5      $ rð   )r&   Ú_guards_singletonrû   rP   Úis_grad_enabled)rÝ   rø   r   r%  s     €€rk   Úhandle_is_grad_enabledÚJTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_grad_enabledŒ  s.   ø€ ô Ð*×<Ñ<Ô=Ø#×*Ò*¬5×+@Ò+@Ó+BÓCÐCrj   ÚmodeÚ	warn_onlyc                 óX  • U(       a8  UR                  5       (       a#  [        SSU SU 3SS/[        R                  QS9  UR                  5       nUR                  R                  S[        R                  R                  U40 5        [        R                  R                  U5        [        $ )NzCAttempted to use torch.use_deterministic_algorithms(warn_only=True)zmode=z, warn_only=úDynamo does not support this.zKRemove param warn_only in function call torch.use_deterministic_algorithms.rw   r-  )
rö   r$   r   rƒ   rB  Úcreate_noderP   rT   Ú_set_deterministic_algorithmsr   )rÝ   rø   rë  rì  rÁ   s        rk   Ú#handle_use_deterministic_algorithmsÚWTorchInGraphFunctionVariable._get_handlers.<locals>.handle_use_deterministic_algorithms“  s›   € ö
 ˜Y×9Ñ9×;Ñ;ÜØaØ# D 6¨°i°[ÐAØ ?àeðä*×6Ñ6ðò	ð ×+Ñ+Ó-ˆEØ�I‰I×!Ñ!Ø¤§¡×!GÑ!GÈ%ÈÐSUôô �H‰H×2Ñ2°5Ô9Ü)Ð)rj   c                 ó¨   >• [        [        5       [        R                  5      n[	        U5        TR
                  " [        R                  " 5       5      $ rð   )r   r)   r%   ÚDETERMINISTIC_ALGORITHMSr&   rû   rP   Ú$are_deterministic_algorithms_enabled)rÝ   rø   Úguardr   s      €rk   Ú+handle_are_deterministic_algorithms_enabledÚ_TorchInGraphFunctionVariable._get_handlers.<locals>.handle_are_deterministic_algorithms_enabledª  sB   ø€ ô Ü!Ó#Ü×5Ñ5óˆEô ˜%Ô Ø#×*Ò*¬5×+UÒ+UÓ+WÓXÐXrj   c                 ó‚   >• [        [        R                  5        TR                  " UR                  R
                  5      $ rð   )r&   r;   rç  rû   Úsymbolic_torch_function_stateÚtorch_function_subclass_enabled©rÝ   rø   r   s     €rk   Ú handle_is_torch_function_enabledÚTTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_torch_function_enabledµ  s8   ø€ ô Ô6×HÑHÔIð $×*Ò*Ø×0Ñ0×PÑPóð rj   c                 óŒ   >• [        [        R                  5        TR                  " UR                  R
                  (       + 5      $ rð   )r&   r;   rç  rû   rú  Útorch_function_mode_enabledrü  s     €rk   Ú%handle_is_torch_function_all_disabledÚYTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_torch_function_all_disabledÀ  s9   ø€ ô Ô6×HÑHÔIØ#×*Ò*Ø×4Ñ4×PÑPÔPóð rj   c                 óÌ   • [        [        R                  5        [        R                  " UUR
                  R                  =(       a    UR
                  R                  5       5      $ rð   )r&   r;   rç  r7   r›  rú  r   Úin_torch_function_moder½  s     rk   Ú%handle_is_torch_function_mode_enabledÚYTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_torch_function_mode_enabledÉ  sR   € ô Ô6×HÑHÔIô #×(Ò(ØØ×0Ñ0×LÑL÷ NØ×4Ñ4×KÑKÓMóð rj   c                 óÂ   >• [        U5      S:X  a,  [        US   [        5      (       a  US   R                  U5      OUnTR                  " [        S U 5       5      5      $ )Nr4   r   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7frð   )r.   ©r®  ra  s     rk   r°  Ú`TorchInGraphFunctionVariable._get_handlers.<locals>.handle_has_torch_function.<locals>.<genexpr>å  s   é € Ð9²5¨aÔ& q×)Ð)²5ùs   ‚)r6  r   rC   Úunpack_var_sequencerû   Úany)rÝ   rø   r  Úelemsr   s       €rk   Úhandle_has_torch_functionÚMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_has_torch_function×  s_   ø€ ô �t“9 “>¤j°°a±¼-×&HÑ&Hð �Q‘×+Ñ+¨BÔ/àð ð
 $×*Ò*ÜÑ9±5Ó9Ó9óð rj   c              3   ó>   #   • U  H  u  pUR                   v •  M     g 7frð   )Ústream)r®  rä   Údevice_interfaces      rk   r°  Ú=TorchInGraphFunctionVariable._get_handlers.<locals>.<genexpr>é  s    é € ð â+MÑ'�Að !×'Ö'Ú+Mùs   ‚r  r   c                 ó&   >• TR                  X5      $ rð   )rû   )rÝ   rø   r  r†  s      €rk   Úhandle_device_interface_streamÚRTorchInGraphFunctionVariable._get_handlers.<locals>.handle_device_interface_streamè  s   ø€ ð )×/Ñ/°Ó;Ð;rj   c                 ó4  >• [         R                  (       d  [        SS[         R                   3SS/S9  [        (       d  [        SSSS	/[        R
                  QS9  T" TUUR                  R                  " S
[        R                  /[        U0 5      Q76 S S9$ )NzEcall `torch.from_numpy` with `torch._dynamo.config.trace_numpy=False`ztrace_numpy=zcAttempted to call `torch.from_numpy` with config `torch._dynamo.config.trace_numpy` set to `False`.z4Change `torch._dynamo.config.trace_numpy` to `True`.rw   z)`torch.from_numpy` with NumPy unavailabler4  z@Attempted to call `torch.numpy` but NumPy could not be imported.z9Check NumPy version and installation in your environment.r-  )Ú
target_clsrø   r’  rž   )r   Útrace_numpyr$   Únpr   Ú
USER_ERRORrB  rC  rP   Ú	as_tensorr2   )rÝ   rø   r  r�   r,  s      €€rk   Úhandle_from_numpyÚETorchInGraphFunctionVariable._get_handlers.<locals>.handle_from_numpyó  s°   ø€ ô ×%×%ÜØcØ*¬6×+=Ñ+=Ð*>Ð?ðMð Oðò
÷ ’2ÜØGØØ bàSðä*×5Ñ5ðò	ñ %Ø)ØØ—i‘i×,Ò,Ø#Ü—O‘Oðô ' t¨RÓ0òð
 #ñ	ð 	rj   Úthe_typeÚ	the_valuec                 ó   • U$ rð   ri   )rÝ   rø   r  r   s       rk   Úhandle_jit_annotateÚGTorchInGraphFunctionVariable._get_handlers.<locals>.handle_jit_annotate  s
   € ð Ðrj   rŠ   Úextrac                 ó  >• U(       a   S5       eUR                  5       (       d   S5       e[        R                  " SUR                  UR                  S9nTR
                  " [        R                  R                  R                  U5      5      $ )Nz%Expect 1 input to cudnn.is_acceptablez2Expect input to cudnn.is_acceptable to be a tensorr   )rÇ  Údevice)	r‘  rP   rŠ   rÇ  r&  rû   r2  ÚcudnnÚis_acceptable)rÝ   rø   rŠ   r$  Ú
tensor_inpr   s        €rk   Úhandle_cudnn_is_acceptableÚNTorchInGraphFunctionVariable._get_handlers.<locals>.handle_cudnn_is_acceptable  sy   ø€ ö ÐEÐEÓE�9Ø×#Ñ#×%Ñ%ð ØDóÐ%ô Ÿš a¨v¯|©|ÀFÇMÁMÑRˆJØ#×*Ò*Ü—‘×$Ñ$×2Ñ2°:Ó>óð rj   c                 óJ   • [         R                  R                  " U/UQ70 UD6$ rð   )r   ÚBackwardHookVariablerû   rž  s       rk   Úhandle_backward_hookÚHTorchInGraphFunctionVariable._get_handlers.<locals>.handle_backward_hook0  s%   € ô ×1Ñ1×8Ò8¸ÐM¸dÒMÀfÑMÐMrj   c                 ó.   • U R                   " U/UQ70 UD6$ rð   )Úcall_nn_parameterrž  s       rk   Úhandle_parameterÚDTorchInGraphFunctionVariable._get_handlers.<locals>.handle_parameter9  s   € ð ×)Ò)¨"Ð>¨tÒ>°vÑ>Ð>rj   Úself_Údimc                 ó4   • Ub  UR                  USU/0 5      $ g rß  ©rÒ  ©r4  rø   rÝ   r5  s       rk   Úhandle_sym_sizeÚCTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_sizeB  s%   € ð
 ‰Ø×'Ñ'¨¨F°S°E¸2Ó>Ð>Ørj   c                 ó4   • Ub  UR                  USU/0 5      $ g )NÚstrider7  r8  s       rk   Úhandle_sym_strideÚETorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_strideK  s%   € ð ‰Ø×'Ñ'¨¨H°s°e¸RÓ@Ð@Ørj   c                 ób  • [        U5      S:X  a   SU;   aš  [        U5      S:X  a‹  [        [        R                  5      R	                  U/ USS  Q0 5      n[        [        R
                  5      R	                  XUS   /0 5      n[        [        R                  5      R	                  XS   U/0 5      $ g )Nr¬  rÁ   r4   r   )r6  rn  rP   rp   r-  ro   rm   )rÝ   rø   r  rÙ   rü   s        rk   Úhandle_addcdivÚBTorchInGraphFunctionVariable._get_handlers.<locals>.handle_addcdivS  s§   € ô �4‹y˜A‹~ '¨VÓ"3¼¸F»ÀqÓ8Hô 6´e·i±iÓ@×NÑNØ˜˜$˜q˜r˜(˜ Ró�ô 6´e·i±iÓ@×NÑNØ ¨¡Ð1°2ó�ô 4´E·I±IÓ>×LÑLØ˜a™ &Ð)¨2óð ð rj   rÑ  Ú
fill_valuec                 ó¬   • UR                  5       (       a?  [        [        R                  5      R	                  X/U5      nUR                  USU/0 5      $ g )NÚfill_)r‘  rn  rP   r¹   r-  rÒ  )rÝ   rø   rÑ  rB  rÙ   Úempty_results         rk   Úhandle_fullÚ?TorchInGraphFunctionVariable._get_handlers.<locals>.handle_fullh  sS   € ð ×#Ñ#×%Ñ%ô  <¼E¿K¹KÓH×VÑVØ˜ ó �ð $×/Ñ/°°G¸j¸\È2ÓNÐNØrj   rä   c                 óø   • [         R                  (       d  g [        U5      S:X  aU  [        US   [        5      (       d=  U(       d6  UR                  [        R                  " U[        R                  5      UU5      $ g )Nr¬  r   )
r   Úenable_dynamo_decompositionsr6  r   rA   r¢  r7   r›  r   Úforeach_lerp_inplace©rä   rø   r  rÙ   s       rk   Ú"handle_inplace_foreach_lerp_scalarÚVTorchInGraphFunctionVariable._get_handlers.<locals>.handle_inplace_foreach_lerp_scalarz  sb   € ô ×6×6Øä�4‹y˜A‹~¤j°°a±¼,×&GÑ&GÖPVØ×5Ñ5Ü#×)Ò)¨"¬i×.LÑ.LÓMØØóð ð
 rj   c                 óø   • [         R                  (       d  g [        U5      S:X  aU  US   R                  5       (       a=  U(       d6  UR	                  [
        R                  " U[        R                  5      UU5      $ g )Nr   r   )	r   rI  r6  r‘  r¢  r7   r›  r   Úforeach_pow_scalarrK  s       rk   Úhandle_foreach_pow_scalarÚMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_foreach_pow_scalarŒ  se   € ô ×6×6Øô �4‹y˜A‹~ $ q¡'×"3Ñ"3×"5Ñ"5¾fØ×5Ñ5Ü#×)Ò)¨"¬i×.JÑ.JÓKØØóð ð
 rj   c                 ón   • UR                  [        R                  " U[        R                  5      UU5      $ rð   )r¢  r7   r›  r   Ú!group_tensors_by_device_and_dtyperK  s       rk   Ú(handle_group_tensors_by_device_and_dtypeÚ\TorchInGraphFunctionVariable._get_handlers.<locals>.handle_group_tensors_by_device_and_dtype   s3   € ð ×1Ñ1Ü×%Ò% b¬)×*UÑ*UÓVØØóð rj   Ú	conditionÚmessagec                 óÌ   • UR                  5       (       a  UR                  5       (       d4  [        U[        R                  5      (       a  UR                  5       (       a  [        $ g rð   )Úis_python_constantrö   r   r   r‡  Úevaluate_exprr   )rÝ   rø   rV  rW  s       rk   Úhandle_assertÚATorchInGraphFunctionVariable._get_handlers.<locals>.handle_assert­  sL   € ð ×,Ñ,×.Ñ.°9×3OÑ3O×3QÑ3QÜ˜9¤i×&?Ñ&?×@Ñ@Ø×+Ñ+×-Ñ-ä-Ð-Ørj   c           
      óŽ   >• T" UUR                   R                  " S[        R                  R                  /[        X#5      Q76 US9$ )Nr-  )r’  Ú
param_vars)rB  rC  rP   rT   Ú_SDPAParamsr2   )rÝ   rø   r  rÙ   r‰  s       €rk   Úhandle_sdpa_paramsÚFTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sdpa_params»  sK   ø€ ñ !ØØ—i‘i×,Ò,Ø#Ü—H‘H×(Ñ(ðô ' tÓ4òð
  ñð rj   )Ú_get_group_size_by_nameÚ_get_group_tagÚ_rank_not_in_groupÚ$_resolve_group_name_by_ranks_and_tagÚget_process_group_ranks)ÚDTensorc                 óÒ  • [        U5      S:X  a3  [        US   [        5      (       d  US   R                  5       (       d   eO][        U5      S:X  a3  [        US   [        5      (       a  US   R                  5       (       d   eO[        SU SU R                   35      eU Vs/ s H  o3R                  5       PM     nnU R                  " U6 n[        R                  " X5      $ s  snf )Nr4   r   r   zInvalid group value (z) for constant pg function )
r6  r   r>   rY  rA   rÊ  rÁ   rö   r7   r›  )rÝ   rø   r  r¯  Úargs_as_valueÚinvocation_results         rk   Ú&handle_constant_processgroup_functionsÚZTorchInGraphFunctionVariable._get_handlers.<locals>.handle_constant_processgroup_functionsÖ  sñ   € ô �t“9 “>ô # 4¨¡7Ô,@×AÑAØ ™7×5Ñ5×7Ñ7ðð8øô ˜“Y !“^ô # 4¨¡7¬L×9Ñ9Ø  ™G×6Ñ6×8Ñ8ðð9Ø8ô )Ø/°¨vð 6$Ø$(§J¡J <ð1óð ñ FJÓ JÂT¸c×!7Ñ!7Ö!9ÁT�Ð JØ$(§J¢J°Ð$>Ð!ô
 '×,Ò,¨RÓCÐCùò !Ks   Â$C$c           
      óx  >^ ^^• SSK Jn  UR                  S5      nUc  [        U5      S:¼  a  US   nUc  [        nOF[        U[        R                  5      (       a'  UR                  U[        5      R                  X/0 5      n[        U5      n[        U5      S:¼  a  XVS'   OUR                  S5      b  XSS'   USS   Vs/ s H  owR                  5       PM     snmUR                  5        VV	s0 s H  u  p‰US;  d  M  X‰R                  5       _M     sn	nmS Vs0 s H  oˆU;   d  M
  XƒU   _M     n
n SS[        S[        S -  S	[        S -  S
[        4UUU 4S jjjnST R                  R                   -   Ul        T" UUR"                  R$                  " SU/['        US   /U
5      Q76 S9$ s  snf s  sn	nf s  snf )Nr4   )ÚSourcelessBuilderÚ
placementsr¬  r   ©Úshaper<  ra  rq  r<  rN   c                 ó8   >• TR                   " U /TQ70 TDXS.D6$ )Nrp  rñ   )ra  rq  r<  ri  Úkwargs_as_valuerÝ   s      €€€rk   Úfn_with_prim_typesÚaTorchInGraphFunctionVariable._get_handlers.<locals>.handle_from_local.<locals>.fn_with_prim_types&  s1   ø€ ð  Ÿ:š:ØðØ)òØ-<ðØDIóð rj   zprim r-  r   ©rø   r’  )NN)Úbuilderrn  r£   r6  r   r   r   rˆ  rû   Útupler-  Úliströ   r…   r   rÁ   r«   rB  rC  r2   )rÝ   rø   r  rÙ   rn  Úplacements_vtÚnew_argsra  ÚkÚvÚkwargs_to_be_proxiedrt  ri  rs  r‰  s   `           @@€rk   Úhandle_from_localÚETorchInGraphFunctionVariable._get_handlers.<locals>.handle_from_localþ  sØ  û€ õ 7ð !'§
¡
¨<Ó 8�à Ñ(¬S°«Y¸!«^Ø$(¨¡G�Mà Ñ(Ü$:‘MÜ ¬y×/RÑ/R×SÑSØ$5×$<Ñ$<¸RÄÓ$G×$UÑ$UØ˜O¨Ró%�Mô   ›:�Ü�x“= AÓ%Ø"/˜Q’KØ—Z‘Z Ó-Ñ9Ø+8˜<Ñ(àAIÈ!È"ÁÓ NÂ¸A×!5Ñ!5Ö!7ÁÑ N�ð !'§¡¤ô#â .™˜ØÐ 3Ñ3ó .�A×+Ñ+Ó-Ò-Ù .ò#�ñ +>ó(Ú*= QÀfÁ“L�A˜a‘y’LÑ*=ð %ð (ð
 LPñÜðÜ#&¨¡:ðÜ>AÀD¹jðä÷ò ð /6¸¿
¹
×8KÑ8KÑ.KÐ"Ô+á$ØØŸ)™)×0Ò0Ø'Ø*ðô +Ø! !™W˜IØ0óòñ
ð 
ùò+ !Oùó#ùò(s   Â?F,Ã.F1Ã>F1Ä	F7Ä'	F7)ÚlayoutÚtensor_listr�  c                ó  • SSK Jn  U(       aD  UR                  [        R                  5      (       a   [        SSU 3SS/[        R                  QS9  [        X&5      (       d   [        SS	U 3SS
/[        R                  QS9  g )Nr4   ru   z%Attempted to use strided NestedTensorzlayout=rî  zChange layout=torch.jagged.rw   z4Attempted to use `nested_tensor` with non-list inputztensor_list=z'Change `nested_tensor` with list input.)
r~   rv   Úis_constant_matchrP   Ústridedr$   r   rƒ   r   r  )rÝ   rø   r‚  r�  r  rÙ   rv   s          rk   Úhandle_nested_tensorÚHTorchInGraphFunctionVariable._get_handlers.<locals>.handle_nested_tensor<  sŒ   € õ 0æ˜&×2Ñ2´5·=±=×AÑAÜØCØ% f XÐ.Ø ?à5ðä*×6Ñ6ðò	ô ˜k×<Ñ<ÜØRØ*¨;¨-Ð8Ø ?àAðä*×5Ñ5ðò	ð rj   c                 ó°   • [        U5      [        U5      -   S:X  d(  [        U5      S:X  a,  US   R                  S5      (       a  [        SSU SU 3SS/S	9  g )
Nr4   r   éÿÿÿÿzOAttempted to use `torch.nn.functional.one_hot` with data-dependent output shaperÖ  r×  rî  zuExplicitly set the `num_classes` param of the function call `torch.nn.functional.one_hot` to something other than -1.rw   )r6  r„  r$   rž  s       rk   Úhandle_one_hotÚBTorchInGraphFunctionVariable._get_handlers.<locals>.handle_one_hot]  sf   € ô �4‹yœ3˜v›;Ñ&¨!Ó+Ü�D“	˜Q“ 4¨¡7×#<Ñ#<¸R×#@Ñ#@äØmØ# D 6¨°6°(Ð;Ø ?ðTðò	ð rj   ÚexprÚfallbackc                 ó>  >• U(       a  UR                  5       OS n[        UT5      (       a[  [        R                  R	                  [
        R                  R                  R                  R                  UR                  U5      5      $ UR                  5       (       a  U$ g rð   )rö   r   r   r   rû   rP   rV   ÚexperimentalÚsymbolic_shapesÚ	size_hintÚsym_numrY  )rÝ   rø   rŒ  r�  Úfallback_intr‡  s        €rk   Úhandle_size_hintÚDTorchInGraphFunctionVariable._get_handlers.<locals>.handle_size_hintr  s~   ø€ ö =E˜8×6Ñ6Ô8È$ˆLÜ˜$ ×0Ñ0Ü ×1Ñ1×8Ñ8Ü—H‘H×)Ñ)×9Ñ9×CÑCØŸ™ lóóð ð
 ×(Ñ(×*Ñ*Ø�àrj   c                 ó
  >• [        UT5      (       aZ  [        R                  R                  [        R
                  R                  R                  R                  UR                  5      5      $ UR                  5       (       a  U$ g rð   )r   r   r   rû   rP   rV   r�  r�  Úguard_size_obliviousr’  rY  ©rÝ   rø   rŒ  r‡  s      €rk   Úhandle_guard_size_obliviousÚOTorchInGraphFunctionVariable._get_handlers.<locals>.handle_guard_size_oblivious…  sk   ø€ ô ˜$ ×0Ñ0ô !×1Ñ1×8Ñ8Ü—H‘H×)Ñ)×9Ñ9×NÑNØŸ™óóð ð
 ×(Ñ(×*Ñ*Ø�àrj   c                 ó
  >• [        UT5      (       aZ  [        R                  R                  [        R
                  R                  R                  R                  UR                  5      5      $ UR                  5       (       a  U$ g rð   )r   r   r   rû   rP   rV   r�  r�  Úguard_or_truer’  rY  r˜  s      €rk   Úhandle_guard_or_trueÚHTorchInGraphFunctionVariable._get_handlers.<locals>.handle_guard_or_true–  sh   ø€ ô ˜$ ×0Ñ0ô !×1Ñ1×8Ñ8Ü—H‘H×)Ñ)×9Ñ9×GÑGÈÏÉÓUóð ð ×(Ñ(×*Ñ*Ø�àrj   c                 ó
  >• [        UT5      (       aZ  [        R                  R                  [        R
                  R                  R                  R                  UR                  5      5      $ UR                  5       (       a  U$ g rð   )r   r   r   rû   rP   rV   r�  r�  Úguard_or_falser’  rY  r˜  s      €rk   Úhandle_guard_or_falseÚITorchInGraphFunctionVariable._get_handlers.<locals>.handle_guard_or_false¥  sh   ø€ ô ˜$ ×0Ñ0ô !×1Ñ1×8Ñ8Ü—H‘H×)Ñ)×9Ñ9×HÑHÈÏÉÓVóð ð ×(Ñ(×*Ñ*Ø�àrj   c                 ó
  >• [        UT5      (       aZ  [        R                  R                  [        R
                  R                  R                  R                  UR                  5      5      $ UR                  5       (       a  U$ g rð   )r   r   r   rû   rP   rV   r�  r�  Ústatically_known_falser’  rY  r˜  s      €rk   Úhandle_statically_known_falseÚQTorchInGraphFunctionVariable._get_handlers.<locals>.handle_statically_known_false´  si   ø€ ô ˜$ ×0Ñ0Ü ×1Ñ1×8Ñ8Ü—H‘H×)Ñ)×9Ñ9×PÑPØŸ™óóð ð
 ×(Ñ(×*Ñ*Ø�àrj   c                 óJ  >• [        UT5      (       a  UR                  nO5UR                  5       (       a  UR                  5       nO[	        SSU 3S/ S9  [
        R                  R                  [        R                  R                  R                  R                  W5      5      $ )NzGtorch.fx.experimental.symbolic_shapes.guard_scalar branch not supportedzexpr: z6Expected `expr` to be a symbolic variable or constant.rw   )r   r’  rY  rö   r$   r   r   rû   rP   rV   r�  r�  Úguard_scalar©rÝ   rø   rŒ  Úvalr‡  s       €rk   r¨  Ú@TorchInGraphFunctionVariable._get_handlers.<locals>.guard_scalarÃ  s‹   ø€ ô ˜$ ×0Ñ0Ø—l‘l‘Ø×(Ñ(×*Ñ*Ø×-Ñ-Ó/‘äØeØ$ T F˜OØ XØò	ô ×-Ñ-×4Ñ4ä—‘×%Ñ%×5Ñ5×BÑBÀ3ÓGóð rj   c                 ó
  >• [        UT5      (       aZ  [        R                  R                  [        R
                  R                  R                  R                  UR                  5      5      $ UR                  5       (       a  U$ g rð   )r   r   r   rû   rP   rV   r�  r�  Ústatically_known_truer’  rY  r˜  s      €rk   Úhandle_statically_known_trueÚPTorchInGraphFunctionVariable._get_handlers.<locals>.handle_statically_known_true×  si   ø€ ô ˜$ ×0Ñ0Ü ×1Ñ1×8Ñ8Ü—H‘H×)Ñ)×9Ñ9×OÑOØŸ™óóð ð
 ×(Ñ(×*Ñ*Ø�àrj   Útermsc                 óÈ   >• [        U4S jU 5       5      (       aG  TR                  U[        R                  R                  R
                  R                  " S U 5       6 S S9$ g )Nc              3   ó<   >#   • U  H  n[        UT5      v •  M     g 7frð   ©r   ©r®  ra  r‡  s     €rk   r°  ÚUTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_and.<locals>.<genexpr>ê  ó   øé € ÐAº5°a”:˜a ×1Ð1º5ùó   ƒc              3   ó@   #   • U  H  oR                  5       v •  M     g 7frð   ©r    r	  s     rk   r°  rµ  î  ó   é € Ð6²¨1Ÿ*™*Ÿ,˜,²ùr²  ©r’  )r³  rû   rP   rV   r�  r�  Úsym_and©rÝ   rø   r°  r‡  s      €rk   Úhandle_sym_andÚBTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_andæ  sa   ø€ ô ÔA¹5ÓA×AÑAØ&×-Ñ-ØÜ—H‘H×)Ñ)×9Ñ9×AÒAÙ6±Ó6ðð !ð .ð ð ð rj   c                 óÈ   >• [        U4S jU 5       5      (       aG  TR                  U[        R                  R                  R
                  R                  " S U 5       6 S S9$ g )Nc              3   ó<   >#   • U  H  n[        UT5      v •  M     g 7frð   r³  r´  s     €rk   r°  ÚTTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_or.<locals>.<genexpr>ø  r¶  r·  c              3   ó@   #   • U  H  oR                  5       v •  M     g 7frð   r¹  r	  s     rk   r°  rÂ  ü  rº  r²  r»  )r³  rû   rP   rV   r�  r�  Úsym_orr½  s      €rk   Úhandle_sym_orÚATorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_orô  sa   ø€ ô ÔA¹5ÓA×AÑAØ&×-Ñ-ØÜ—H‘H×)Ñ)×9Ñ9×@Ò@Ù6±Ó6ðð !ð .ð ð ð rj   c                 ó.  >• [        UT5      (       a  UR                  nO'UR                  5       (       a  UR                  5       nOg [        R
                  R                  [        R                  R                  R                  R                  U5      5      $ rð   )r   r’  rY  rö   r   r   rû   rP   rV   r�  r�  Úhas_static_valuer©  s       €rk   Úhandle_has_static_valueÚKTorchInGraphFunctionVariable._get_handlers.<locals>.handle_has_static_value  sr   ø€ ô ˜$ ×0Ñ0Ø—l‘l‘Ø×(Ñ(×*Ñ*Ø×-Ñ-Ó/‘àä×-Ñ-×4Ñ4Ü—‘×%Ñ%×5Ñ5×FÑFÀsÓKóð rj   c                 óJ   • SSK Jn  [        U5      R                  U/ UQU5      $ )Nr   )Ú_unsafe_set_version_counter)Útensor_version_oprÌ  rn  r-  )rÝ   rø   r  rÙ   rÌ  s        rk   Ú!handle_unsafe_set_version_counterÚUTorchInGraphFunctionVariable._get_handlers.<locals>.handle_unsafe_set_version_counter  s*   € õ Hä/Ø+óç‰m˜B  $ ¨Ó0ð1rj   c                 ó`   >• T" [         R                  R                  R                  5       5      $ rð   )rP   rT   rO  Úpeek_interpreter_stack)rÝ   rø   r  rÙ   rˆ  s       €rk   Ú'handle_functorch_peek_interpreter_stackÚ[TorchInGraphFunctionVariable._get_handlers.<locals>.handle_functorch_peek_interpreter_stack  s(   ø€ ñ -Ü—‘×#Ñ#×:Ñ:Ó<óð rj   c                 ó„   • US   R                   n[        [        R                  R                  R                  U5      5      $ ©Nr   )rÁ   ÚFuncTorchInterpreterVariablerP   rO  ÚpyfunctorchÚcoerce_cinterpreter)rÝ   rø   r  rÙ   Úcinterpreters        rk   Ú0handle_functorch_pyfunctorch_coerce_cinterpreterÚdTorchInGraphFunctionVariable._get_handlers.<locals>.handle_functorch_pyfunctorch_coerce_cinterpreter+  s8   € ð   ™7Ÿ=™=ˆLÜ/Ü× Ñ ×,Ñ,×@Ñ@ÀÓNóð rj   c                 ó  >^• S[         S[        4UU4S jjmS nU(       a  US   nOSU;   a  US   nUbX  UR                  5       (       dC  T" U5      (       a6  [        [        R
                  R                  5      R                  U/ UQU5      $ g )Nra  rN   c                 óÈ   >• U R                  5       (       d  [        U T5      (       a  g[        U [        [        45      (       a  [	        U4S jU R
                   5       5      $ g)NTc              3   ó4   >#   • U  H  nT" U5      v •  M     g 7frð   ri   )r®  rµ  Úcheck_any_unspecs     €rk   r°  ÚtTorchInGraphFunctionVariable._get_handlers.<locals>.handle_torch_tensor.<locals>.check_any_unspec.<locals>.<genexpr>D  s   øé € ÐDºG°qÑ/°×2Ð2ºGùs   ƒF)r‘  r   rA   rC   r  r…   )ra  r‡  rß  s    €€rk   rß  ÚaTorchInGraphFunctionVariable._get_handlers.<locals>.handle_torch_tensor.<locals>.check_any_unspec?  sI   ø€ à—;‘;—=‘=¤J¨q°/×$BÑ$BØÜ ¤L´-Ð#@×AÑAÜÔD¸A¿GºGÓDÓDÐDð !rj   r   Údata)r7   r  r‘  rn  rP   Ú_refsrŠ   r-  )rÝ   rø   r  rÙ   Údata_argrß  r‡  s        @€rk   Úhandle_torch_tensorÚGTorchInGraphFunctionVariable._get_handlers.<locals>.handle_torch_tensor8  s•   ù€ ð	!¤Oð 	!¼÷ 	!ð 	!ð ˆHÞØ ™7‘Ø˜6Ó!Ø! &™>�ð Ñ$Ø ×*Ñ*×,Ñ,Ù$ X×.Ñ.ô 4´E·K±K×4FÑ4FÓG×UÑUØ˜˜$˜ óð ð rj   c                 óò   • U(       d  U(       a   eUR                   R                  (       d  [        SSSS/[        R                  QS9  [
        R                  " U5        UR                   R                  5       $ )Nz5Attempted to pop from empty torch function mode stackr4  zTCalled `torch._C._pop_torch_function_stack` when torch function mode stack is empty.z0Do not pop from empty torch function mode stack.rw   )rú  Ú
mode_stackr$   r   r  rG   Úregister_mutationÚpop_torch_function_moderž  s       rk   Úhandle_pop_torch_functionÚMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_pop_torch_function^  sj   € ö ¦FÐ*Ð*Ø×3Ñ3×>×>ÜØSØØ vàJðä*×5Ñ5ðò	ô +×<Ò<¸RÔ@Ø×3Ñ3×KÑKÓMÐMrj   c                 óÔ   • [        U5      S:w  d  U(       a  [        US[        U5       S35        [        R                  " U5        UR                  R                  US   5        [        $ )Nr4   z0push_torch_function takes exactly one argument (ú given)r   )r6  r5   rG   ré  rú  Úpush_torch_function_moder   rž  s       rk   Úhandle_push_torch_functionÚNTorchInGraphFunctionVariable._get_handlers.<locals>.handle_push_torch_functions  s[   € ô �4‹y˜A‹~¦Ü$ØØFÄsÈ4ÃyÀkÐQXÐYôô +×<Ò<¸RÔ@à×,Ñ,×EÑEÀdÈ1ÁgÔNÜ)Ð)rj   c                 ó–   >• U(       d  U(       a  [        US5        TR                  " [        UR                  R                  5      5      $ )Nz+len_torch_function_stack takes no arguments)r5   rû   r6  rú  rè  rŒ  s       €rk   Úhandle_len_torch_functionÚMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_len_torch_function„  s<   ø€ ö –vÜ$ RÐ)VÔWØ#×*Ò*Ü�B×4Ñ4×?Ñ?Ó@óð rj   c                 ó  • [        U5      S:w  d  U(       a  [        US[        U5       S35        US   R                  5       nUS:¼  a#  U[        UR                  R                  5      :  d   eUR                  R                  U   $ )Nr4   z2get_function_stack_at takes exactly one argument (rî  r   )r6  r5   rö   rú  rè  )rÝ   rø   r  rÙ   Úinds        rk   Úhandle_get_stack_atÚGTorchInGraphFunctionVariable._get_handlers.<locals>.handle_get_stack_at‘  s}   € ô �4‹y˜A‹~¦Ü$ØØHÌÈTËÈÐSZÐ[ôð �q‘'×,Ñ,Ó.ˆCØ˜!“8 ¤c¨"×*JÑ*J×*UÑ*UÓ&VÓ VÐVÐVØ×3Ñ3×>Ñ>¸sÑCÐCrj   c           	      ó¶  • [        U5      [        U5      -   S:”  d  U(       a(  SU;  a"  [        SSU SU 3S/ [        R                  QS9   U(       a  US   R	                  5       nOU(       a  US   R	                  5       nOS n[
        R                  " U5      nWc=  [        U R                  5      n[        UR                  [        R                  5      5        [        [        S5      WR                   R#                  SSS9S   5      n[$        R&                  " XU5      $ ! [         a-  n[        S	SU SU 3S
/ [        R                  QUS9   S nAN¹S nAff = f)Nr4   r&  z*improper torch.get_device_module argumentsrÖ  r×  z<torch.get_device_module accepts 1 optional argument `device`rw   r   z.bad device argument to torch.get_device_moduleúAExpected valid string/torch.device argument ('cpu', 'cuda', etc.)©rx   ry   rz   r{   Úfrom_excrP   rá   )Úmaxsplitr‰  )r6  r$   r   r  rö   rP   Úget_device_moduleræ   r(   r�   r&   rÇ   r%   ÚID_MATCHr'   r*   r«   Úrsplitr7   r›  )	rÝ   rø   r  rÙ   r&  ÚmoduleÚer�   Ú
new_sources	            rk   Úhandle_get_device_moduleÚLTorchInGraphFunctionVariable._get_handlers.<locals>.handle_get_device_module¡  sK  € ô �4‹yœ3˜v›;Ñ&¨Ó*®v¸(È&Ó:PÜØHØ# D 6¨°6°(Ð;Ø ^ðÜ*×5Ñ5ðò	ðÞØ# HÑ-×@Ñ@ÓB‘FÞØ! !™W×7Ñ7Ó9‘Fà!�FÜ×0Ò0°Ó8�ð ‰~Ü1°$·+±+Ó>�Ü˜f×/Ñ/´×0EÑ0EÓFÔGä#Ü˜WÓ%à—‘×&Ñ& s°QÐ&Ð7¸Ñ;óˆJô #×(Ò(¨°ZÓ@Ð@øô+ ó ÜØLØ# D 6¨°6°(Ð;Ø cØ9Ô-×8Ñ8Ð9Ø÷ûðús   ÁAD! Ä!
EÄ+#EÅEc           	      ó  • [        U5      [        U5      -   S:”  d  U(       a(  SU;  a"  [        SSU SU 3S/ [        R                  QS9   U(       a(  [        R
                  " US   R                  5       5      nO1U(       a(  [        R
                  " US   R                  5       5      nOS nUR                  R                  U5      $ ! [         a-  n[        S	SU SU 3S
/ [        R                  QUS9   S nAg S nAff = f)Nr4   r&  z9unsupported arguments to torch.accelerator.current_streamrÖ  r×  zGtorch.accelerator.current_stream accepts one optional argument `device`rw   r   z7bad device argument to torch.accelerator.current_streamrú  rû  )
r6  r$   r   r  rP   r&  rö   Úsymbolic_stream_stateÚ
cur_streamræ   )rÝ   rø   r  rÙ   r&  r  s         rk   Úhandle_current_streamÚITorchInGraphFunctionVariable._get_handlers.<locals>.handle_current_streamÐ  sñ   € ô �4‹yœ3˜v›;Ñ&¨Ó*®v¸(È&Ó:PÜØWØ# D 6¨°6°(Ð;Ø iðÜ*×5Ñ5ðò	ðÞÜ"Ÿ\š\¨&°Ñ*:×*MÑ*MÓ*OÓP‘FÞÜ"Ÿ\š\¨$¨q©'×*DÑ*DÓ*FÓG‘Fà!�Fà×/Ñ/×:Ñ:¸6ÓBÐBøÜó ÜØUØ# D 6¨°6°(Ð;Ø cØ9Ô-×8Ñ8Ð9Ø÷ûðús   ÁA:C Ã
C>Ã#C9Ã9C>c                 óÎ   • [         R                  " U5        US   R                  5       (       a  [         R                  " U5        [
        $ [         R                  " U5        [
        $ rÕ  )rG   ré  Úis_constant_noneÚclear_default_deviceÚ!register_device_context_insertionr   rž  s       rk   Úhandle_set_default_deviceÚMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_set_default_deviceò  sR   € ô +×<Ò<¸RÔ@Ø�A‰w×'Ñ'×)Ñ)Ü.×CÒCÀBÔGô *Ð)ô /×PÒPÐQSÔTä)Ð)rj   c           	      ó  >• S nS nU(       a  US   nUSS  nOSnUc  SU;   a  UR                  S5      nU(       a  US   nOSU;   a  UR                  S5      nUc-  T" UUR                  R                  SU R                  S0 5      S9$ S nS nUb}  [	        U[
        5      (       a  UR                  5       (       a'  [        S[        U5      S	S
S/[        R                  QS9  UR                  5       nUR                  R                  SU5      nUR                  5       (       a&  U R                  UR                  5       U5        [        $ UR!                  5       n	Uc  U	4n
OX˜4n
T" UUR                  R                  SU R                  U
0 5      S9$ )Nr   r4   ri   ÚcondrW  r-  rv  z)Can't extract message from torch._check()zŽThe second argument of torch._check() must be a function defined within the torch.compile region that does not reference a non-local variable.zFMake sure the message function is defined in the torch.compile region.zmRemove any closure variables, e.g. remove references to closure variable `x` in `lambda: f'{x} failed check'`rw   Ú_check_message)ÚpoprB  rC  rÁ   r   r@   Úhas_closurer$   r  r   rƒ   rx  Ú%register_static_attr_and_return_proxyrY  rö   r   r    )rÝ   rø   r  rÙ   Úpredicate_vtÚ
message_vtÚ	rest_argsÚmessage_eagerÚmessage_graph_proxyÚpredicate_proxyÚ
proxy_argsr‰  s              €rk   Úhandle_checkÚ@TorchInGraphFunctionVariable._get_handlers.<locals>.handle_check  s¹  ø€ ð  ˆLØˆJæØ# A™w�Ø   ˜H‘	à�	àÑ#¨°&Ó(8Ø%Ÿz™z¨&Ó1�æØ& q™\‘
Ø˜fÓ$Ø#ŸZ™Z¨	Ó2�
àÑ#Ù$ØØŸ)™)×0Ñ0Ø'ØŸ
™
ØØó	ñð ð !ˆMØ"&ÐØÑ%ä" :Ô/I×JÑJØ!×-Ñ-×/Ñ/ä!Ø KÜ # J£ðLð
 eðiðô /×:Ñ:ð	òð  !+× 7Ñ 7Ó 9�à&(§i¡i×&UÑ&UØ$ mó'Ð#ð ×.Ñ.×0Ñ0Ø—
‘
˜<×:Ñ:Ó<¸mÔLÜ-Ð-à*×3Ñ3Ó5ˆOð #Ñ*Ø-Ð/‘
à-ÐC�
á ØØ—i‘i×,Ñ,Ø#Ø—J‘JØØó	ñð rj   c           
      óþ  • SSK JnJn  SSKJn  SSKJn  SSKJn  UR                  (       d  [        SSUR                   3S	S
/S9  UR                  R                  (       a  [        SSSSS/S9  UR                  (       a  [        SSS/ SQS9  [        U5      S:¼  a  [        US   S5        [        U5      S:¼  a  [        US   S5        [!        5       n	0 n
UR"                  R$                  R'                  5        Hµ  n[)        X¸5      (       d  M  UR+                  5       R,                  R.                  R1                  S5      n[)        U[2        R4                  5      (       d   e[7        U5      nU	R9                  U5        UR:                  c  M”  U H  nUR:                  R<                  X®'   M     M·     SSKJ n  [        U5      S:¼  a  [C        US   5      O/ n[        U5      S:¼  a  [C        US   5      O/ n[!        5       nU HQ  u  nn[)        U[2        R4                  5      (       d  M'  URD                  c  M6  URG                  URD                  5        MS     U" UUS9nUU	-  nU(       aG  U Vs/ s H  nXê;   d  M
  X®   PM     nnU(       a  SU 3OSn[        SUSSS/[H        RJ                  QS9  UR1                  S 5      nUR1                  S!5      n[)        UU5      =(       a    URL                  S"L =(       d!    [)        UU5      =(       a    URL                  S"L nU(       d�  U Vs1 s H   n[O        U5      RP                  S#:w  d  M  UiM"     nnUR"                  RR                  nUU-  nU(       a  [        S$S%[        U5       3S&S'/S9  UR"                  RR                  R9                  U5        U" UUR"                  RT                  " S([2        RV                  RX                  /[[        X#5      Q76 S)9$ s  snf s  snf )*a­  
Handle torch.autograd.grad() calls within compiled regions.

NOTE [Tracing autograd.grad in dynamo]

We validate two things:

1. External grad_fns cannot be consumed: The grad_fn on external inputs
   could change at runtime, so we would need to guard on it if we wanted
   to trace through it. For now, we reject this case.
   We compute "consumed" grad_fns (reachable from outputs, excluding
   autograd.grad inputs parameter) and verify no graph input's grad_fn is in this set.

2. Returned tensors cannot have consumed grad_fns: If autograd.grad
   consumes a grad_fn and we return a tensor connected to it, the user
   would get "backward through graph a second time" error. We track
   consumed grad_fns and check at output time. If violated, we retry
   with a graph break at autograd.grad.

Safe vs Unsafe Cases:

Case 1 - Safe (external tensor is autograd.grad input):
    x = torch.randn(4, requires_grad=True)
    external = x * 2  # has external grad_fn

    @torch.compile
    def fn(external_input):
        loss = external_input.sum()
        return torch.autograd.grad(loss, external_input)

    Safe because autograd.grad stops at external_input, never consuming
    its external grad_fn.

Case 2 - Unsafe (external grad_fn in path):
    @torch.compile
    def fn(external_input):
        loss = mod(external_input).sum()
        return torch.autograd.grad(loss, mod.weight)

    Unsafe because autograd.grad must traverse through external_input's
    grad_fn to reach mod.weight. The external grad_fn could change at
    runtime, so we would need to guard on it (like AOTAutograd does).
    For now, we reject this case.

Case 3 - Unsafe (returning tensor with consumed grad_fn):
    @torch.compile
    def fn(x):
        y = x * 2
        grad = torch.autograd.grad(y.sum(), x)
        return y, grad  # y's grad_fn was consumed!

    Unsafe because y's grad_fn was consumed by autograd.grad. Trying to
    backward through y later would error.
r   )rÒ   r   r4   ©r‰  )r   rœ   zPusing `torch.autograd.grad` with `torch._dynamo.config.trace_autograd_ops=False`ztrace_autograd_ops=zmAttempted to call `torch.autograd.grad` with config `torch._dynamo.config.trace_autograd_ops` set to `False`.z;Change `torch._dynamo.config.trace_autograd_ops` to `True`.rw   z0autograd.grad consumed returned tensor's grad_fnr4  z¨torch.autograd.grad() consumes grad_fns that are needed by tensors returned from this compiled function. This would cause 'backward through graph a second time' errors.zrIf you don't need to backward through the returned tensor, call .detach() before returning: `return loss.detach()`z^If you need to backward through the returned tensor, use retain_graph=True in autograd.grad().z$autograd.grad with compiled autogradz&compiled_autograd is currently enabledzµtorch.autograd.grad() inside torch.compile is not supported when compiled autograd is enabled. These two features have conflicting requirements for how the autograd graph is traced.)zLDisable compiled autograd by removing the compiled_autograd context manager.zBOr move the autograd.grad() call outside the torch.compile region.zPOr restructure your code so autograd.grad() and compiled_autograd don't overlap.r   ÚoutputsÚinputsrž   )Úcollect_reachable_grad_fns)Ústop_atzinputs with external grad_fn: z#autograd.grad with external grad_fna	  torch.autograd.grad() cannot trace through the autograd graph because it's output depends on a tensor that was created outside the compiled region and has a grad_fn attached. The autograd graph extends beyond the compiled region boundary, which Dynamo cannot trace.z–If you don't need gradients to flow back to the original tensor outside the compiled region, detach the input: `tensor.detach().requires_grad_(True)`.zEOtherwise, move the autograd.grad() call outside the compiled region.Úretain_graphÚcreate_graphTÚAccumulateGradz+autograd.grad with already consumed grad_fnzdouble consumed grad_fns: z½torch.autograd.grad() is trying to consume grad_fns that were already consumed by a previous autograd.grad() call. This would cause 'backward through graph a second time' errors at runtime.zUse retain_graph=True in the first autograd.grad() call if you need to compute gradients through the same graph multiple times.r-  rv  ).r4  rÒ   r   rw  r‰  Úconstantr   rŠ   r�   Útrace_autograd_opsr$   Úspeculation_logÚgraph_break_on_autograd_gradÚcompiled_autograd_enabledr6  r†   r‘   rB  Úinput_source_to_varr´   r   r    r¡   r¢   r£   rP   r“   r™   r»   r�   r‚   Úoutput_graphr$  r¨   r”   rm   r   rƒ   rÁ   rª   r«   Úautograd_grad_consumed_grad_fnsrC  r  Úgradr2   )rÝ   rø   r  rÙ   rÒ   r   r‰  r   r�   Úexternal_grad_fnsÚgrad_fn_to_sourcerr   r¥   Útensor_grad_fnsÚgfr$  Úoutputs_with_sourcesÚinputs_with_sourcesÚinputs_grad_fnsrŠ   rä   Úconsumed_grad_fnsÚexternal_in_consumedÚsourcesry   r&  r'  Úgraph_preservedÚnon_leaf_consumedÚalready_consumedÚdouble_consumeds                                  rk   Úhandle_autograd_gradÚHTorchInGraphFunctionVariable._get_handlers.<locals>.handle_autograd_grad^  sø  € ÷r 5Ý.Ý2Ý.à×,×,ÜØnØ1°&×2KÑ2KÐ1LÐMðTð Vðò
ð ×!Ñ!×>×>ÜØNØð?ð
Ràxðòð$ !×:×:ÜØBØDðMòòô" �4‹y˜A‹~Ü(¨¨a©°)Ô<Ü�4‹y˜A‹~Ü(¨¨a©°(Ô;ô ADÃÐàFHÐØ—y‘y×4Ñ4×;Ñ;Ö=�Ü˜c×2Ó2Ø"%§,¡,£.×"5Ñ"5×":Ñ":×">Ñ">¸Ó"O�KÜ% k´5·<±<×@Ñ@Ð@Ð@Ü&;¸KÓ&H�OØ%×,Ñ,¨_Ô=à—z‘zÓ-Û"1˜BØ47·J±J·O±OÐ-Ó1ó #2ñ >õ Bô ;>¸d»)Àq».Ô-¨d°1©gÔ6Èbð !ô ;>¸d»)Àq».Ô-¨d°1©gÔ6Èbð  ô ?B»eˆOÛ0‘	�˜Ü˜f¤e§l¡l×3Ó3¸¿¹Ó8RØ#×'Ñ'¨¯©Ö7ñ 1ñ !;Ø$¨oñ!Ðð $5Ð7HÑ#HÐ æ#ñ 3óâ2˜ØÑ.ó *Ð%Ô)Ù2ð ð ö
 IPÐ:¸7¸)ÑDÐUW�ÜØAØ#ðbðià_ðô +×6Ñ6ð	òð* "Ÿ:™: nÓ5ˆLØ!Ÿ:™: nÓ5ˆLä˜<Ð)9Ó:÷ /Ø ×&Ñ&¨$Ð.÷ô ˜<Ð)9Ó:÷ /Ø ×&Ñ&¨$Ð.ð ö #ñ 0ó%â/˜Ü˜B“x×(Ñ(Ð,<Ñ<÷ Ù/ð "ð %ð $&§9¡9×#LÑ#LÐ Ø"3Ð6FÑ"F�Þ"Ü!Ø MØ"<¼SÀÓ=QÐ<RÐ Sð^ð
_ðòð —	‘	×9Ñ9×@Ñ@ÐARÔSá ØØ—i‘i×,Ò,Ø#Ü—N‘N×'Ñ'ðô ' tÓ4òñð ùòEùòP%s   É/	O5É<O5Ì(O:Í	O:)Frð   )rø   rI   )…r   r   Útorch.backends.cudar…  r4  r   r%  r†  r‡  r�   rˆ  rw  r‰  r,  rl   r7   Údispatch_key_set_functionsrP   rœ  r�  r>  ÚopsÚinductorÚaccumulate_grad_rg  r   r§  rú   rª  Úis_inference_mode_enabledr   r‘  rÂ  rÈ  rÉ  rÏ  ÚcompileÚlibraryÚwrap_tritonÚ!REWRITE_OPS_TO_TENSOR_SIZE_METHODre   rf   ÚutilsÚ_singleÚ_pairÚ_tripleÚ
_quadrupleÚ_ntuplerè  Úuse_deterministic_algorithmsr  rõ  rT   Ú_is_torch_function_enabledÚ_is_torch_function_all_disabledÚ_is_torch_function_mode_enabledr.   Úhas_torch_function_variadicÚhas_torch_function_unaryÚdictÚfromkeysr"   Ú
from_numpyrQ   r=  rL   r2  r'  r(  ÚhooksÚBackwardHookÚ	ParameterÚatenÚsym_sizeÚintÚ
sym_strideÚaddcdivrº   Ú_foreach_lerp_Ú_foreach_powÚ"_group_tensors_by_device_and_dtypeÚ_assertr=   Úis_availableÚ"torch.distributed.distributed_c10drb  rc  rd  re  rf  Útorch.distributed.tensorrg  Ú
from_localÚnestedÚnested_tensorÚ
functionalÚone_hotrV   r�  r�  r‘  r	   r—  rœ  r   r¤  r¨  r­  r¼  rÄ  rÈ  Ú	_autogradrÌ  rO  rÑ  r×  rØ  rÖ  rŠ   Ú_pop_torch_function_stackr   Ú_push_on_torch_function_stackÚ_len_torch_function_stackÚ_get_function_stack_atrþ  ÚacceleratorÚcurrent_streamrG  r   Úset_default_deviceÚ_checkr  r1  )Prƒ  r…  r�  r˜  rŸ  r¤  r¨  r¸  r¾  rÃ  rÌ  rÓ  rÙ  rÜ  rà  rä  ré  rñ  r÷  rý  r  r  r  r  r  r"  r*  r.  r2  r9  r=  r@  rF  rL  rP  rT  r[  r`  rb  rc  rd  re  rf  rg  rk  r  r†  rŠ  r”  r™  r�  r¡  r¥  r¨  r®  r¾  rÅ  rÉ  rÎ  rÒ  rÚ  rå  rë  rð  ró  r÷  r  r	  r  r  r@  r   r%  r†  r‡  r�   rˆ  r€  r‰  r,  sP                                                                          @@@@@@@@@rk   Ú_get_handlersÚ*TorchInGraphFunctionVariable._get_handlers…  s  ÿø€ ð
 ˆð
	Ü˜3¤˜8Ñ$ð
	ä”x ¤S Ñ)Ð*¬H°S¼#°XÑ,>Ð>Ñ?÷
	õ 	3÷	
÷ 	
÷ 	>á	Ô*Ó,Ð	-ð	Rà'ð	Rô #ð	Rô &ð		Rô
 ö	Ró 
.ð	Rñ* 
Ô-Ð	.ð	Cà'ð	Cô #ð	Cô &ð		Cô
 ó	Có 
/ð	Cñ> 
”%—/‘/×>Ñ>×JÑJÓ	Kð	à'ð	ô #ð	ô &ð		ô
 ó	ó 
Lð	ñ 
”%—)‘)×$Ñ$×5Ñ5×=Ñ=Ó	>ð	à'ð	ô #ð	ô &ð		ô
 ó	ó 
?ð	ñ 
”$—,‘,Ó	ð
	à'ð
	ô #ð
	ô &ð	
	ô
 ˜tÑ#ó
	ó 
 ð
	ô ”4˜×Ñá”d—h‘hÓðà+ðô 'ðô *ð	ô
 ! 4Ñ'óó  ðñ" 
”%×1Ñ1Ó	2ð	Ø-ð	äó	ó 
3ð	ñ 
”%—/‘/¤5§?¡?×#AÑ#AÓ	Bð
	6Ø-ð
	6Ü4Cð
	6ä÷
	6ó 
Cð
	6ñ 
Ü×#Ñ#Ü×Ñó

ð	Ø-ð	Ü69ð	ä˜tÑ#ö	ó	

ð	ñ 
”%—+‘+Ó	ð	Ø-ð	Ü69ð	ä˜tÑ#ö	ó 
ð	ñ 
”%—-‘-Ó	 ð	à'ð	ô #ð	ô &ð		ô
 ó	ó 
!ð	ñ( 
”%—-‘-×+Ñ+Ó	,ð	à'ð	ô #ð	ô &ð		ô
 ó	ó 
-ð	ñ( 
Ô4Ð	5ð	9Ø-ð	9Ü6Eð	9äó	9ó 
6ð	9ñ 
Ü�H‰H×Ñ×"Ñ"×*Ñ*Ü�H‰H×Ñ×"Ñ"×(Ñ(Ü�H‰H×Ñ×"Ñ"×*Ñ*Ü�H‰H×Ñ×"Ñ"×-Ñ-Ü�H‰H×Ñ×"Ñ"×*Ñ*ó

ð	7à'ð	7ô #ð	7ô &ð		7ô
 ó	7ó

ð	7ñ 
”%×'Ñ'Ó	(ð	DØ-ð	Dà÷	Dó 
)ð	Dñ 
”%×4Ñ4Ó	5àLQñ	*Ø-ð	*Ü58ð	*ÜEIð	*äô	*ó 
6ð	*ñ, 
”%×<Ñ<Ó	=ð	YØ-ð	Yàö	Yó 
>ð	Yñ 
”%—(‘(×5Ñ5Ó	6ð	Ø-ð	àö	ó 
7ð	ñ 
”%—(‘(×:Ñ:Ó	;ð	Ø-ð	àö	ó 
<ð	ñ 
”%—(‘(×:Ñ:Ó	;ð	Ø-ð	àó	ó 
<ð	ñ 
Ü�O‰O×.Ñ.Ü�O‰O×7Ñ7Ü�O‰O×4Ñ4ó

ð

	Ø-ð
	Ü6Eð
	àö
	ó

ð

	ñ 
Ü�]‰]ñ ä+KÔ+Móó ð

ð	<Ø-ð	<Ø7Gð	<à"ö	<ó

ð	<ñ
 
”%×"Ñ"Ó	#ð"	Ø-ð"	Ü6Eð"	à÷"	ó 
$ð"	ñH 
”%—)‘)×$Ñ$Ó	%ð	Ø-ð	Ü9<ð	ÜIJð	äó	ó 
&ð	ñ
 
”%—.‘.×&Ñ&×4Ñ4Ó	5ð	Ø-ð	Ü7:ð	ÜDGð	àö	ó 
6ð	ñ" 
”%—+‘+×#Ñ#×0Ñ0Ó	1ð	Nà'ð	Nô #ð	Nô &ð		Nô
 ó	Nó 
2ð	Nñ 
”%—(‘(×$Ñ$Ó	%ð	?à'ð	?ô #ð	?ô &ð		?ô
 ó	?ó 
&ð	?ñ 
”%—)‘)—.‘.×)Ñ)¬5¯9©9¯>©>×+BÑ+B×+FÑ+FÓ	GàMQñ	Üð	Ø3ð	Ü@CÀdÁ
ð	ä˜tÑ#ô	ó 
Hð	ñ 
”%—)‘)—.‘.×+Ñ+¬U¯Y©Y¯^©^×-FÑ-F×-JÑ-JÓ	KàMQñ	Üð	Ø3ð	Ü@CÀdÁ
ð	ä˜tÑ#ô	ó 
Lð	ñ 
”%—-‘-Ó	 ð	à'ð	ô #ð	ô &ð		ô
 ˜tÑ#ó	ó 
!ð	ñ( 
”%—*‘*Ó	ð	à'ð	ô "ð	ô (ð		ô
 &ð	ô ˜tÑ#ó	ó 
ð	ñ" 
”%×&Ñ&Ó	'ð	Üð	à'ð	ô #ð	ô &ð		ô
 ˜tÑ#ó	ó 
(ð	ñ" 
”%×$Ñ$Ó	%ð	Üð	à'ð	ô #ð	ô &ð		ô
 ˜tÑ#ó	ó 
&ð	ñ& 
”%—(‘(×=Ñ=Ó	>ð
	Üð
	à'ð
	ô #ð
	ô &ð	
	ô
 ó
	ó 
?ð
	ñ 
”%—-‘-Ó	 ð	à'ð	ô 'ð	ô %ð		ô
 ˜tÑ#ó	ó 
!ð	ñ 
�*Ó	ð	à'ð	ô #ð	ô &ð		ô
 ö	ó 
ð	ô  ×+Ò+×-Ñ-÷õ õ 9áØ'ØØ"Ø'Ø4óðDØ1ðDÜ:IðDä óDóðDñB �g×(Ñ(Ó)ð;à+ð;ô 'ð;ô *ð	;ô
 !ö;ó *ð;ñz 
”%—,‘,×,Ñ,Ó	-ð 37ð	ð
 "&ò	à'ð	ô )¨4Ñ/ð	ô #ð		ô
 ˜$‘Jð	ô &ð	ð õ	ó 
.ð	ñ@ 
”%—(‘(×%Ñ%×-Ñ-Ó	.ð	à'ð	ô #ð	ô &ð		ð
 ó	ó 
/ð	ñ( 
”%—(‘(×'Ñ'×7Ñ7×AÑAÓ	Bð
 37ñ		à'ð	ô "ð	ô œÑ/ð		ô
 ˜tÑ#÷	ó 
Cð	ñ$ 
”%—(‘(×'Ñ'×7Ñ7×LÑLÓ	Mð	Ø-ð	Ü5Dð	ä˜tÑ#ö	ó 
Nð	ñ  
”%—(‘(×'Ñ'×7Ñ7×EÑEÓ	Fð	Ø-ð	Ü5Dð	ä˜tÑ#ö	ó 
Gð	ñ 
”%—(‘(×'Ñ'×7Ñ7×FÑFÓ	Gð	Ø-ð	Ü5Dð	ä˜tÑ#ö	ó 
Hð	ñ 
”%—(‘(×'Ñ'×7Ñ7×NÑNÓ	Oð	Ø-ð	Ü5Dð	ä˜tÑ#ö	ó 
Pð	ñ 
”%—(‘(×'Ñ'×7Ñ7×DÑDÓ	Eð	Ø-ð	Ü5Dð	äö	ó 
Fð	ñ& 
”%—(‘(×'Ñ'×7Ñ7×MÑMÓ	Nð	Ø-ð	Ü5Dð	ä˜tÑ#ö	ó 
Oð	ñ 
”%—(‘(×'Ñ'×7Ñ7×?Ñ?Ó	@ð	Ø-ð	Ü7Fð	ä˜tÑ#ö	ó 
Að	ñ 
”%—(‘(×'Ñ'×7Ñ7×>Ñ>Ó	?ð	Ø-ð	Ü7Fð	ä˜tÑ#ö	ó 
@ð	ñ 
”%—(‘(×'Ñ'×7Ñ7×HÑHÓ	Ið	Ø-ð	Ü5Dð	ä˜tÑ#ö	ó 
Jð	ñ 
”%—(‘(×$Ñ$×@Ñ@Ó	Að
	1à'ð
	1ô #ð
	1ô &ð	
	1ô
 ó
	1ó 
Bð
	1ñ 
”%—(‘(×%Ñ%×<Ñ<Ó	=ð
	à'ð
	ô #ð
	ô &ð	
	ð
 'ö
	ó 
>ð
	ñ 
”%×"Ñ"×.Ñ.×BÑBÓ	Cð
	à'ð
	ô #ð
	ô &ð	
	ô
 *ó
	ó 
Dð
	ñ 
”%—,‘,Ó	ð#	à'ð#	ô #ð#	ô &ð	#	ô
 ˜tÑ#ö#	ó 
 ð#	ñJ 
”%—(‘(×4Ñ4Ó	5ð	Nà'ð	Nô #ð	Nô &ð		Nô
 'ó	Nó 
6ð	Nñ( 
”%—(‘(×8Ñ8Ó	9ð	*à'ð	*ô #ð	*ô &ð		*ô
 ó	*ó 
:ð	*ñ  
”%—(‘(×4Ñ4Ó	5ð
	à'ð
	ô #ð
	ô &ð	
	ô
 ö
	ó 
6ð
	ñ 
”%—(‘(×1Ñ1Ó	2ð	Dà'ð	Dô #ð	Dô &ð		Dô
 'ó	Dó 
3ð	Dñ 
”%×)Ñ)×5Ñ5Ó	6ð,	Aà'ð,	Aô #ð,	Aô &ð	,	Aô
 ó,	Aó 
7ð,	Añ\ 
”%×#Ñ#×2Ñ2´E·J±J×4MÑ4MÓ	Nð	à'ð	ô #ð	ô &ð		õ
 ó	ó 
Oð	ñB 
”%×*Ò*Ó	+ð	*à'ð	*ô #ð	*ô &ð		*ô
 ó	*ó 
,ð	*ñ* 
”%—,’,Ó	ðS	à'ðS	ô #ðS	ô &ð	S	ô
 öS	ó 
 ðS	ñj 
”%—.’.×%Ò%Ó	&óx	ó 
'ðx	ðt ˆrj   rø   rI   r  r  r7   c                 ó6  ^• SSK JnJm  SSKJn  U R
                  [        R                  :X  a  U R                  XU5      $ U R
                  [        R                  :X  a  U R                  XU5      $ U R                  XU5      (       a  [        XX#5      $ U R                  5       (       aæ  [        X#5      (       aÖ  U R                  [         ;   aL  U R"                  c   e[%        U R"                  5      n['        UR)                  [*        R,                  5      5         UR.                  " U R1                  5       " U Vs/ s H  owR1                  5       PM     sn0 UR3                  5        VV	s0 s H  u  p‰X‰R1                  5       _M     sn	nD65      $ U RE                  5       (       Ga[  U R                  RF                  nU(       Ga!  US   RI                  5       (       Ga  US   nUR"                  bö  [K        [L        RN                  RP                  U5      (       aÍ  [S        [L        RN                  RP                  U5      n[K        US5      (       a˜  [K        XÝRU                  5       S   5      (       aw  [L        RV                  RX                  [S        XÝRU                  5       S   5      RZ                  ;   a5  []        SSS	[_        U R                  5       S
3/ [`        Rb                  QSPS9  U Re                  U[?        U5      U5      $ U Rg                  5       Ri                  U R                  5      nU(       a  U" X/UQ70 UD6nU(       a  U$ [k        U4S jU 5       5      n[m        U4S jU 5       5      n[S        U R                  SS5      S:X  a   U R                  RF                  [n        ;   a‚  U(       a{  U(       at  S[q        U R                  5       S3n[r        Ru                  U5        []        SSU R                   SU SU 3S[q        U R                  5       S3/ [`        Rb                  QS9  U R                  nU(       aY  SU R                  RF                   3n[S        U R                  SS 5      S:X  a%  [K        [L        U5      (       a  [S        [L        U5      nS nS nSU;   aÕ  US   n[w        U[x        [z        45      (       ao  / nUR2                   H]  nURI                  5       (       a2  UR}                  5       R~                  R€                  S   R‚                  nOS nUR…                  U5        M_     URI                  5       (       a1  UR}                  5       R~                  R€                  S   R‚                  n[L        R†                  [L        Rˆ                  [L        RŠ                  [L        RŒ                  [L        RŽ                  [L        R�                  [L        R’                  [L        R”                  [L        R–                  [L        R˜                  [L        Rš                  [L        Rœ                  [L        Rž                  [L        R                   [L        R¢                  [L        R¤                  [L        R¦                  [L        R¨                  [L        Rª                  [L        R¬                  [L        R®                  [L        R°                  [L        R²                  [L        R´                  1n[¶        nUU;   aL  UR¸                  (       a;  UR¸                  Rº                  (       a   UR¸                  Rº                  R¼                  nU" 5          U" UUR¾                  RÀ                  " SU/[Ã        X#5      Q76 S9nS S S 5        WRI                  5       (       aO  SU;   aI  US   R1                  5       (       a1  []        S SU R                   SU SU 3S!S"S#/[`        Rb                  QS9  UGbD  [w        U[>        5      (       Ga  [Å        UR2                  U5       H÷  u  nnUc  M  URI                  5       (       d   eURÆ                  R~                  R€                  S   nUUR‚                  :w  aM  []        S$SU R                   SU SU 3S%U R                   S&U S'UR‚                   S
3/ [`        Rb                  QS9  [L        RÈ                  RË                  U5      (       a  MÈ  []        S(S)U R                   SU SU 3S!/ [`        Rb                  QS9  Mù     U$ Ub  URI                  5       (       d   eSUR}                  5       R~                  R€                  ;   d   eUR}                  5       R~                  R€                  S   nUUR‚                  :w  aM  []        S*SU R                   SU SU 3S%U R                   S&U S'UR‚                   S
3/ [`        Rb                  QS9  [L        RÈ                  RÍ                  U5      (       d/  []        S+S)U R                   SU SU 3S!/ [`        Rb                  QS9  U$ s  snf s  sn	nf ! [4        [6        [8        4 aF  n
[;        [=        U
5      U[?        [A        UR.                  U
RB                  5      5      S9   S n
A
GNóS n
A
ff = f! , (       d  f       GN&= f),Nr4   )r   r‡  r!  )r  r   Ú	overloadszInplace op on input tensorr4  z6Attempted to trace an inplace view op on input tensor rá   z/Ensure you do not modify input tensor in place.rw   c              3   ó<   >#   • U  H  n[        UT5      v •  M     g 7frð   r³  r´  s     €rk   r°  Ú=TorchInGraphFunctionVariable.call_function.<locals>.<genexpr>¤  s   øé € Ð&TÊtÈ!¤z°!°_×'EÐ'EÊtùr·  c              3   ój   >#   • U  H(  n[        UT5      =(       d    UR                  5       v •  M*     g 7frð   )r   rY  r´  s     €rk   r°  r}  ¦  s,   øé € ð !
ÚNRÈŒJ�q˜/Ó*×D¨a×.BÑ.BÓ.DÔDÊdùs   ƒ03rå   rP   zCalling zí on only torch.SymInt arguments is not yet supported.
To support this behavior, we need to allow const-propping tensors that store symint data.
For now, dynamo will explicitly graph break when it encounters user code with this behavior.
zHAttempted to call torch in-graph function on only torch.SymInt argumentszfn=z, args=r×  zAttempted to call zc (that should be put in the FX graph) on only torch.SymInt arguments. Dynamo does not support this.Ú_sym_r   rŽ   rž   r-  rv  Úrequires_gradzAAttempted to use tensor creation function with requires_grad=Truerî  z.Create the tensor outside the compiled region.z Do not set `requires_grad=True`.z0Shape mismatch with out= list of tensor variantszShape mismatch when calling z% with `out=`. Provided `out=` shape: z. Actual shape: z?Attempted to call op with non-contiguous `out=` list of tensorszself.value=z'Shape mismatch with out= tensor variantz6Attempted to call op with non-contiguous `out=` tensor)gr4  r   r‡  rw  r‰  ro  rf  rk  Ú"_call_nonstrict_traceable_functionrl  Ú_call_leaf_functionÚtorch_function_override_enabledrE   r  r,   rÁ   Ú#constant_fold_functions_need_guardsr�   r(   r&   rÇ   r%   ÚEQUALS_MATCHrû   rö   r…   ÚOverflowErrorÚ	TypeErrorÚ
ValueErrorr#   rª   ry  Úmapr  Úis_tensor_methodr«   r‘  rú   rP   rD  r^  r  r{  ÚTagÚinplace_viewÚtagsr$   r6   r   rƒ   Úcall_tensor_methodrx  r£   r  r³  Úbin_opsr  rL  Úwarningr   rC   rA   r    r¡   r¢   rq  r’   Ú_foreach_addÚ_foreach_add_Ú_foreach_subÚ_foreach_sub_Ú_foreach_mulÚ_foreach_mul_Ú_foreach_divÚ_foreach_div_Ú_foreach_clamp_maxÚ_foreach_clamp_max_Ú_foreach_clamp_minÚ_foreach_clamp_min_Ú_foreach_maximumÚ_foreach_maximum_Ú_foreach_minimumÚ_foreach_minimum_rd  Ú_foreach_pow_Ú_foreach_lerprc  Ú_foreach_addcmulÚ_foreach_addcmul_Ú_foreach_addcdivÚ_foreach_addcdiv_r   Ú	fake_modeÚ	shape_envÚignore_fresh_unbacked_symbolsrB  rC  r2   Úzipr’  Ú_prims_commonÚis_contiguousÚis_contiguous_or_false) rÝ   rø   r  rÙ   r   r‰  r�   ra  r|  r}  Úexcr‚   Ú
tensor_varr  Úspecial_handlerrü   Úany_symints_or_symfloatsÚall_ints_or_floatsÚmsgÚfn_Útorch_sym_opÚsaved_out_shapesÚout_kwarg_vtÚvtrq  Úops_consuming_unbacked_scalarsr_  Útensor_variableÚout_tensor_vtÚsaved_out_shapeÚfake_outr‡  s                                   @rk   r-  Ú*TorchInGraphFunctionVariable.call_function\  s;	  ø€ ÷ 	8Ý*à�9‰9Ô(×8Ñ8Ó8Ø×:Ñ:¸2ÀVÓLÐLà�9‰9Ô(×6Ñ6Ó6Ø×+Ñ+¨B°fÓ=Ð=à×/Ñ/°¸&×AÑAÜ*¨2°TÓBÐBà×)Ñ)×+Ñ+Ô0MØ÷1
ñ 1
ð �z‰zÔ@Ó@Ø—{‘{Ñ.Ð.Ð.Ü1°$·+±+Ó>�Ü˜f×/Ñ/´×0IÑ0IÓJÔKðØ'×.Ò.Ø×+Ñ+Ô-Ù:>Ó?º$°Q×.Ñ.Ö0¹$Ñ?ðàAGÇÁÄÔPÂ¹¸˜1×2Ñ2Ó4Ò4ÁÒPñóð ð × Ñ ×"Ò"Ø—:‘:×&Ñ&ˆDç˜˜Q™×)Ñ)×+Ò+Ø! !™W�
à×$Ñ$Ñ0´W¼U¿Y¹Y¿^¹^ÈT×5RÑ5RÜ ¤§¡§¡°Ó6�Bä  K×0Ñ0Ü# B¯©«°qÑ(9×:Ñ:Ü!ŸI™I×2Ñ2Ü" 2§|¡|£~°aÑ'8Ó9×>Ñ>ó?ô &Ø$@Ø$&Ø*`ÔahÐim×isÑisÓatÐ`uÐuvÐ(wð#Ü!2×!>Ñ!>ð#à Qð#ò	ð ×*Ñ*¨2¬t°D«z¸6ÓBÐBà×,Ñ,Ó.×2Ñ2°4·:±:Ó>ˆÞÙ$ TÐ?°Ò?¸Ñ?ˆFÞØ�ä#&Ô&TÉtÓ&TÓ#TÐ ä ô !
ÙNRó!
ó 
Ðô �D—J‘J ¨bÓ1°WÓ<Ø—
‘
×#Ñ#¤wÓ.Þ(Þ"ð	Ü	ˆT�Z‰Z‹Ðð ðˆCô
 �K‰K˜ÔÜØbØ˜dŸj™j˜\¨°°°iÀ¸xÐHà(¬¨T¯Z©Z«Ð(9ð :4ð 4ðÜ&×2Ñ2ðò
ð �j‰jˆÞ#Ø" 4§:¡:×#6Ñ#6Ð"7Ð8ˆLÜ�t—z‘z <°Ó6¸&Ó@ÄWÜ�|÷Fñ Fô œe \Ó2�ð  ÐØˆØ�F‹?Ø! %™=ˆLô ˜,¬¼Ð(E×FÑFØ#%Ð Ø&×,Ô,�BØ—|‘|—~‘~Ø "§¡£× 2Ñ 2× 7Ñ 7¸Ñ H× NÑ N™à $˜Ø$×+Ñ+¨EÖ2ñ -ð ×%Ñ%×'Ñ'à ×)Ñ)Ó+×0Ñ0×5Ñ5°oÑF×LÑLð !ô ×ÑÜ×ÑÜ×ÑÜ×ÑÜ×ÑÜ×ÑÜ×ÑÜ×ÑÜ×$Ñ$Ü×%Ñ%Ü×$Ñ$Ü×%Ñ%Ü×"Ñ"Ü×#Ñ#Ü×"Ñ"Ü×#Ñ#Ü×ÑÜ×ÑÜ×ÑÜ× Ñ Ü×"Ñ"Ü×#Ñ#Ü×"Ñ"Ü×#Ñ#ð3*
Ð&ô6 ˆØÐ0Ó0Ø�|�| §¡× 6× 6Ø—l‘l×,Ñ,×JÑJ�á�UÙ+ØØ—i‘i×,Ò,Ø#Øðô ' tÓ4òñˆO÷ ð ×%Ñ%×'Ñ'Ø 6Ó)Ø�Ñ'×:Ñ:×<Ñ<äØ[Ø˜dŸj™j˜\¨°°°iÀ¸xÐHØ;àDØ6ðô '×2Ñ2ðò		ð Ò'ô Ð*¬D×1Ò1Ü69Ø ×&Ñ&Ø$ö7Ñ2�M ?ð 'Ñ.ñ !à(×2Ñ2×4Ñ4Ð4Ð4Ø,×2Ñ2×7Ñ7×<Ñ<¸_ÑM�HØ&¨(¯.©.Ó8ô &Ø$VØ&)¨$¯*©*¨°W¸T¸FÀ)ÈFÈ8Ð$Tà">¸t¿z¹z¸lð K:Ø:IÐ9JÐJZÐ[c×[iÑ[iÐZjÐjkð!mð#Ü!2×!>Ñ!>ð#ò
ô !×.Ñ.×<Ñ<¸X×FÓFô &Ø$eØ&1°$·*±*°¸WÀTÀFÈ)ÐTZÐS[Ð$\Ø(Gð#Ü!2×!>Ñ!>ð#ô	ñ;7ðF Ðð; $Ñ/°L×4JÑ4J×4LÑ4LÐLÐLØ&¨,×*?Ñ*?Ó*A×*FÑ*F×*KÑ*KÓKÐKÐKØ'×0Ñ0Ó2×7Ñ7×<Ñ<¸_ÑM�Ø# x§~¡~Ó5ô "Ø IØ"% d§j¡j \°¸¸¸iÈÀxÐ Pà:¸4¿:¹:¸,ð G6Ø6FÐ5GÐGWÐX`×XfÑXfÐWgÐghðjðÜ.×:Ñ:ðò
ô ×*Ñ*×AÑAÀ(×KÑKô "Ø XØ"-¨d¯j©j¨\¸ÀÀÀiÐPVÈxÐ XØ$CðÜ.×:Ñ:ðò	ð ÐùòG @ùÛPøô "¤9¬jÐ9ó Ü(Ü˜“IØÜœcÐ"2×"9Ñ"9¸3¿8¹8ÓDÓE÷ð ûðú÷f ŽUúsB   Ä h+ Ä9h Åh+ Å(h%Æ	h+ Ü=-j	è h+ è+jé ;jêjê	
jc           
      ó*  ^ ^!^"^#^$^%• SSK Jm"JnJnJm$Jm%  SSKJm!  SSKJ	n  SSK
Jn  SSKJnJn	  [        R                   " U[        R                   " X5      ["        R                   " X5      45      n
UR%                  X5      R'                  X/0 5      n[)        U[        5      (       a  [+        UR,                  5      S:X  d   eUR,                  u  pÍ[)        U[.        5      (       d   eUR,                   HM  nUR1                  5       nU" U5      (       a  M"  UR1                  5       R2                  n[5        S	S
U S3SS/S9  MO     UR,                   Vs/ s H  oîR7                  5       PM     nn UR9                  5       nU RF                  m#S[H        S[H        S[H        4U!U#4S jjnU" U5      u  nnURJ                  RM                  T#RN                   S 3U5      nURJ                  RM                  T#RN                  S!-   W5      n[Q        U5      URR                  l(        [Q        U5      URR                  l(        UU/UQ7nS m S[T        S[V        [X           4U U"U$U%4S" jjnURJ                  R[                  S#UU0 5      n U	" UU5      nT c   e[H        R                   " UT 5      nUR%                  U[>        Rh                  5      R'                  UUU/0 5      nU$ s  snf ! U a­  nUR:                  R1                  5       nUR2                  nSS KJs  Jn  URA                  U5      (       a/  [5        SSU SU S3SU S3S/[B        RD                  QUS9   S nAGN×[5        SSU SU S3SU S3SSU S3/[B        RD                  QUS9   S nAGNS nAff = f! [\        R^                  R`                  Rb                  [\        R^                  R`                  Rd                  4 a5    [5        S$S%T#RN                   3S&/ [B        RD                  QS9  [g        S'5      ef = f)(Nr   )Ú
flat_applyÚfunc_to_graphableÚis_graphable_typeÚis_valid_outputÚto_graphable)Úfake_tensor_tls)Útree_flattenr4   )Ú#AsPythonConstantNotImplementedError)rn  r‰  r   z2Invalid input type for nonstrict_trace-ed functionzEncountered input of type <z>.z¾For `nonstrict_trace`-ed functions, only basic types (e.g., torch.Tensor, int, float) or pytree containers of those are allowed as inputs. The provided argument contains an unsupported type.z¼Use one of the following to register the type with pytree:
* `torch.utils._pytree.register_constant`
* `torch.utils._pytree.register_dataclass`
* `torch.utils._pytree.register_pytree_node`rw   zVInput marked with `pytree.register_constant` constructed in the `torch.compile` regionzInput=z, offending type <zWCalling a `nonstrict_trace`-ed function with an input that contains an object of type <z”>, which was marked with `pytree.register_constant`. However, the object was constructed _inside_ the `torch.compile` region. This is not supported.zXConstruct the object _outside_ the `torch.compile` region, or submit an issue to GitHub.rû  z>Invalid use of pytree_flatten with nonstrict_trace-ed functionz‹Calling a `nonstrict_trace`-ed function where one of the inputs has been registered with a `pytree_flatten` that places an object of type <z> into the context.zLModifying the `pytree_flatten` to avoid placing the object into the context.zApply one of the following to <z„>:
* `torch.utils._pytree.register_constant`
* `torch.utils._pytree.register_dataclass`
* `torch.utils._pytree.register_pytree_node`r  rÙ   rN   c                  óf   >• TR                   nSTl          T" U 0 UD6nUTl         U$ ! UTl         f = f©NT)Úallow_non_fake_inputs_override)r  rÙ   Úold_valÚresrÅ  r  s       €€rk   Ú
patched_fnÚSTorchInGraphFunctionVariable._call_nonstrict_traceable_function.<locals>.patched_fnì	  sH   ø€ ð &×DÑDˆGØ=AˆOÔ:ðIÙ˜$Ð) &Ñ)�àAH�Ô>ØˆJøð BI�Õ>ús   –' §	0Ú_specÚ_input_specc                  ó€   >• T" U SS06nT" U5      u  p#Tc  UmOTU:X  d   SU< ST< 35       eT" U5      (       d   eU$ )NÚchecked_outputFzTError: nonstrict-traced functions must return the same output shape every time. got z vs but expected ri   )r  rŽ   Úflat_outÚspecÚcaptured_specrÀ  rÃ  rÄ  s       €€€€rk   Úflat_apply_captureÚ[TorchInGraphFunctionVariable._call_nonstrict_traceable_function.<locals>.flat_apply_capture
  sp   ø€ á˜dÐ9°5Ñ9ˆCñ
 *¨#Ó.‰NˆHØÑ$Ø $‘à$¨Ó,ð ð4Ø48±8Ð;LÈ]ÑL]ð_óÐ,ñ # 8×,Ñ,Ð,Ð,ØˆOrj   r-  z7Unsupported output type for nonstrict_trace-ed functionz
Function: z¡For `nonstrict_trace`-ed functions, only basic types (e.g., torch.Tensor, int, list) are allowed as output. The result of this call contains an unsupported type.Úunreachable)5Ú"torch._higher_order_ops.flat_applyrÀ  rÁ  rÂ  rÃ  rÄ  r�   rÅ  Útorch.utils._pytreerÆ  ÚbaserÇ  rw  rn  r‰  rC   r›  r<   rû   r-  r   r6  r…   rA   Úpython_typer  r$   r    rö   r¸  rL  Ú_pytreeÚis_constant_classr   rƒ   rÁ   r7   rB  r  r«   rª   r¡   r   ry  ÚobjectrC  rP   r\   r®  ÚUnsupportedÚTorchRuntimeErrorrÊ  Útree_unflatten)&rÝ   rø   r  rÙ   rÁ  rÂ  rÆ  rÇ  rn  r‰  Úpacked_input_vtÚout_vtÚflat_args_vtsÚinput_spec_vtÚflat_arg_vtÚarg_typeÚ	type_nameÚproxified_flat_argsÚ
input_specr  ÚtypÚpytreerÍ  rä   Úf_specÚf_spec_proxyÚinput_spec_proxyÚall_argsrÖ  r’  Úproxy_list_vtÚout_spec_vtrÕ  rÅ  rÀ  r  rÃ  rÄ  s&                                   @@@@@@rk   r�  Ú?TorchInGraphFunctionVariable._call_nonstrict_traceable_function	  sX  ý€ ÷	
õ 	
õ 	BÝ4å=ß=ô (×-Ò-Ø”×$Ò$ RÓ.Ô0A×0GÒ0GÈÓ0SÐTó
ˆð #×)Ñ)¨"Ó;×IÑIØÐ! 2ó
ˆô ˜&¤-×0Ñ0´S¸¿¹Ó5FÈ!Ó5KÐKÐKØ'-§|¡|Ñ$ˆÜ˜-¬×6Ñ6Ð6Ð6ð )×.Ô.ˆKØ"×.Ñ.Ó0ˆHÙ$ X×.Ó.Ø'×3Ñ3Ó5×BÑB�	ÜØPØ9¸)¸ÀBÐGð/ð
Gðôñ	 /ð. 7D×6IÒ6Ió
Ú6I {× Ñ Ö"Ñ6Ið 	ð 
ð'	Ø&×9Ñ9Ó;ˆJðP �Z‰Zˆð	Ü"ð	Ü.=ð	ä÷	ð 	ñ & jÓ1‰	ˆˆ6ð —y‘y×FÑFØ�{‰{ˆm˜5Ð! 6ó
ˆð Ÿ9™9×JÑJØ�K‰K˜-Ñ'àó
Ðô
 "& f£ˆ×ÑÔä%)¨*Ó%5Ð×ÑÔ"Ø Ð"2ÐIÐ5HÑIˆð *.ˆð	¤cð 	¬d´6©l÷ 	ò 	ð$ —	‘	×&Ñ&ØÐ/°¸2ó
ˆð	0Ù)¨"¨eÓ4ˆMð& Ñ(Ð(Ð(Ü%×+Ò+¨B°Ó>ˆð #×)Ñ)¨"¬g×.DÑ.DÓE×SÑSØ� Ð,¨bó
ˆð ˆùòo
øð 3ó %	Ø—$‘$×"Ñ"Ó$ˆCØ×(Ñ(ˆIß0Ð0à×'Ñ'¨×,Ñ,ÜØtØ$ ] OÐ3EÀiÀ[ÐPRÐSð$Ø$- ;ð /fðfð
 sðä*×6Ñ6ðð ÷ð ô Ø\Ø$ ] OÐ3EÀiÀ[ÐPRÐSðRØR[ÐQ\Ð\oðqð gØ9¸)¸ð EGð Gðô +×6Ñ6ðð ÷ð ûð+%	ûôh �M‰M×Ñ×)Ñ)ä�M‰M×Ñ×/Ñ/ð	
ó 	0ô ØQØ$ R§[¡[ MÐ2ðdð 7Ô)×5Ñ5Ð6òô ! Ó/Ð/ð!	0ús2   ÅKÅ.K É<	N ËNË!A.N	Í.N	Î	NÎBPc                 óÂ  ^^^^• SSK Js  Jm  SSKJn  SSKJm  SSKJn  SSK	J
mJm  S[        S	[        [        S      4UU4S
 jjnU" UTR                  5      " [        R                   " XU45      5      R#                  U5      u  px0 n	UR#                  U5       H�  n
U" U
5      (       d  M  U
R$                  c.  ['        SS[)        U
R*                  5      R,                   3SSS/S9  U
R$                  c   eU" U
R*                  U
R$                  5      U	[/        U
R*                  5      '   M‘     U	(       d9  [        R                   " U[1        U5      5      n[        R                   " X5      nX¼4$ S[2        S[4        [6        [6        4   S	[2        4UU4S jjn[        R                   " X5      nU" X5      " [        R                   " XU45      U5      nUR#                  U5      $ )zÐ
Extract nn.Module states from arguments for leaf function invocation.

Replaces nn.Module arguments with LeafModuleState objects containing
the module's index (for later retrieval), parameters, and buffers.
r   N)Úregister_user_object)ÚLeafModuleStater4   ©Ú_make_inlined)ÚNNModuleVariableÚUnspecializedNNModuleVariablerr   rN   c                 ó    >• [        U TT45      $ rð   r³  )rr   rú  rû  s    €€rk   Úis_module_variableÚRTorchInGraphFunctionVariable._extract_nn_module_states.<locals>.is_module_variablee
  s   ø€ ô ˜cÐ$4Ð6SÐ#TÓUÐUrj   z0leaf_function: nn.Module argument without sourcezmodule type: z°leaf_function received an nn.Module argument that cannot be traced back to its origin. This typically happens when the module is created dynamically inside the compiled region.zXEnsure the nn.Module is created outside the compiled function and passed as an argument.zCIf the module is a class attribute, access it via self.module_name.rw   r´   Úmodule_to_indexc                 óR   >^• S[         S[         4UU4S jjnTR                  X 5      $ )Nrª  rN   c                 óÞ   >• [        U [        R                  R                  5      (       aB  T" T[	        U 5         [        U R                  5       5      [        U R                  5       5      S9$ U $ )N)Únn_module_indexÚnamed_parametersÚnamed_buffers)r   rP   re   ÚModulerç   rX  r  r  )rª  r÷  rÿ  s    €€rk   Úmodule_to_stateÚrTorchInGraphFunctionVariable._extract_nn_module_states.<locals>.convert_modules_to_states.<locals>.module_to_state�
  sZ   ø€ Ü˜c¤5§8¡8§?¡?×3Ñ3Ù*Ø(7¼¸3»Ñ(@Ü)-¨c×.BÑ.BÓ.DÓ)EÜ&*¨3×+<Ñ+<Ó+>Ó&?ñð ð
 �
rj   )r   Útree_map)r´   rÿ  r  r÷  rí  s    ` €€rk   Úconvert_modules_to_statesÚYTorchInGraphFunctionVariable._extract_nn_module_states.<locals>.convert_modules_to_statesŠ
  s,   ù€ ð¤Sð ¬S÷ ð ð —?‘? ?Ó;Ð;rj   )rÚ  rL  rÝ  Ú#torch._dynamo.graph_bytecode_inputsrö  Ú,torch._higher_order_ops.invoke_leaf_functionr÷  Úhigher_order_opsrù  Ú	nn_modulerú  rû  r7   r   r   rÆ  r›  r  r�   r$   rª   rÁ   r«   rç   rx  r   rX  r`  )rÝ   rø   r  rÙ   rö  rù  rý  Úflat_args_varÚtree_spec_varrÿ  r¯  Úargs_varÚ
kwargs_varr	  Úmodule_to_index_varÚ
result_varr÷  rú  rû  rí  s                   @@@@rk   Ú_extract_nn_module_statesÚ6TorchInGraphFunctionVariable._extract_nn_module_statesR
  sÁ  û€ ÷ 	-Ð,ÝLÝPå3ßNð	VÜ ð	Vä”EÐMÑNÑO÷	Vð 	Vñ
 (5°R¸×9LÑ9LÔ'MÜ×!Ò! "¨V nÓ5ó(
ç
Ñ
˜bÓ
!ñ 	%ˆð +-ˆØ ×4Ñ4°RÖ8ˆCÙ! #×&Ó&Ø—:‘:Ñ%Ü!Ø RØ"/´°S·Y±Y³×0HÑ0HÐ/IÐ JðXð
9àaðòð —z‘zÑ-Ð-Ð-Ù1EØ—I‘I˜sŸz™zó2�¤ 3§9¡9£Ó.ñ% 9ö, Ü&×,Ò,¨R´°t³Ó=ˆHÜ(×.Ò.¨rÓ:ˆJØÐ'Ð'ð	<Üð	<Ü*.¬s´C¨x©.ð	<ä÷	<ð 	<ô .×3Ò3°BÓHÐá" 2ÔAÜ×!Ò! "¨V nÓ5Ð7Jó
ˆ
ð ×-Ñ-¨bÓ1Ð1rj   c                 óN  ^^^• SS K Js  Jn  SSKJn  SSKJnJm  SSKJ	n  SSK
Jn  U R                  n	U	R                  n
U	R                  nUc  [        S[!        U	SU	5       S	35      eU R#                  TX#5      u  pÍU" TUR$                  5      " [&        R(                  " TXÍ45      5      R+                  T5      u  pïUR+                  T5       Vs/ s H  nUR-                  5       PM     nnUR/                  5       mS
[0        S[2        4   S[0        S[2        4   4UU4S jjnU" U
5      nU" U5      nU" U5      u  nnU" U5      u  nnS[4        S[2        S[2        4U4S jjnU" SU5      nU" SU5      nUU/UQ7nTR6                  R9                  SUU0 5      nU" TU5      $ s  snf )Nr   )rÁ  )Úinvoke_leaf_functionÚreconstruct_original_argsr4   r!  rø  zleaf_function 'r«   zŒ' requires a fake implementation. Please provide one using the @<func>.register_fake decorator. See the leaf_function docstring for details.Úimpl.rN   c                 ó6   >^ • S[         S[         4U UU4S jjnU$ )NÚ	flat_argsrN   c                  ób   >• T" TU 5       u  nnT" U0 UD6sS S S 5        $ ! , (       d  f       g = frð   ri   )r  Úargs_with_modulesÚkwargs_with_modulesr  rë  r  s      €€€rk   Úwrapped_implÚoTorchInGraphFunctionVariable._call_leaf_function.<locals>.wrap_impl_for_leaf_module_state.<locals>.wrapped_implÊ
  s7   ø€ ñ /¨z¸9ÔEñ JØ%Ø'áÐ!2ÐJÐ6IÑJ÷	 F×E×Eús   ‹  
.)r   )r  r   rë  r  s   ` €€rk   Úwrap_impl_for_leaf_module_stateÚYTorchInGraphFunctionVariable._call_leaf_function.<locals>.wrap_impl_for_leaf_module_stateÇ
  s'   ù€ ð
K¬ð 
K´÷ 
Kñ 
Kð  Ðrj   r‚   rÔ  c                 ór   >• TR                   R                  X5      n[        U5      UR                  l        U$ rð   )rB  r  rª   r¡   )r‚   rÔ  r’  rø   s      €rk   Úmake_spec_proxyÚITorchInGraphFunctionVariable._call_leaf_function.<locals>.make_spec_proxyÞ
  s+   ø€ Ø—I‘I×CÑCÀDÓOˆEÜ" 4›jˆE�J‰JŒOØˆLrj   Úreal_fnÚfake_fnr-  )rÚ  rL  rÝ  rÙ  rÁ  r  r  r  rw  r‰  r  rù  rÁ   Ú_torchdynamo_leaf_real_fnÚ_torchdynamo_leaf_fake_fnrˆ  r  r  rÆ  r7   r›  r  r    rö   r   r   r  rB  rC  )rÝ   rø   r  rÙ   rí  rÁ  r  r‰  rù  Údecorated_fnÚ	real_implÚ	fake_implÚargs_with_statesÚkwargs_with_statesr  Úinput_spec_varr¯  Úflat_arg_proxiesr"  Úwrapped_real_implÚwrapped_fake_implrä   Úreal_impl_specÚfake_impl_specr%  Úreal_impl_proxyÚfake_impl_proxyÚinvoke_argsÚresult_proxyrë  r  s    `                           @@rk   r‚  Ú0TorchInGraphFunctionVariable._call_leaf_functionŸ
  sì  ú€ ÷ 	-Ð,ÝH÷	
õ
 	+Ý3à—z‘zˆØ ×:Ñ:ˆ	Ø ×:Ñ:ˆ	àÑÜØ!¤'¨,¸
ÀLÓ"QÐ!Rð SJð Jóð ð 04×/MÑ/MØ�ó0
Ñ,Ðñ )6°b¸&×:MÑ:MÔ(NÜ×!Ò! "Ð'7Ð&LÓMó)
ç
Ñ
˜bÓ
!ñ 	&ˆð '4×&GÑ&GÈÔ&Kó
Ú&K˜sˆC�L‰LŽNÑ&Kð 	ð 
ð ×-Ñ-Ó/ð 	ð	 Ü˜3¤˜8Ñ$ð	 ä�cœ3�hÑ÷	 ð 	 ñ" <¸IÓFÐÙ;¸IÓFÐá-Ð.?Ó@Ñˆˆ>Ù-Ð.?Ó@Ñˆˆ>ð	¤#ð 	¬Sð 	´S÷ 	ñ
 *¨)°^ÓDˆÙ)¨)°^ÓDˆð Øð
ð ñ
ˆð
 —y‘y×-Ñ-ØÐ1°;Àó
ˆñ ˜R Ó.Ð.ùò]
s   ÃF"c                 ó  ^^• U R                   [        R                  R                  R                  R
                  L a  US   R                  5       mO#U R                   R                  S   R                  m[        T[        5      (       d   eU(       a   eS[        S[        4UU4S jjnU R                   [        R                  R                  R                  R
                  L a  [        R                  " U5      $ U" US   5      $ )z1inline behavior of torch.nn.modules.utils._ntupler   rÁ   rN   c                 ó   >• U R                  T5      (       a.  [        R                  " [        U R	                  T5      5      5      $ U R                  5       (       ad  [        R                  R                  [        R                  R                  R                  R                  T5      " U R                  5       5      5      $ [        SSU  3SS/S9  g )NzPAttempted to use `torch.nn.modules.utils._ntuple` with unsupported argument typezvalue=rî  z:Change use of _ntuple with argument as constant or tensor.rw   )Úhas_unpack_var_sequencer   rC   ry  r  rY  r   rû   rP   re   rf   rL  rQ  rö   r$   )rÁ   Úcountrø   s    €€rk   rä  Ú@TorchInGraphFunctionVariable._call_ntuple.<locals>.handle_ntupleþ
  s²   ø€ Ø×,Ñ,¨R×0Ñ0Ü ×.Ò.Ü˜×2Ñ2°2Ó6Ó7óð ð ×)Ñ)×+Ñ+ä ×1Ñ1×8Ñ8Ü—H‘H×$Ñ$×*Ñ*×2Ñ2°5Ô9¸%×:RÑ:RÓ:TÓUóð ô ØnØ$ U GÐ,Ø ?àTðó	rj   )rÁ   rP   re   rf   rL  rQ  rö   Ú__closure__Úcell_contentsr   r`  r7   r   ÚLambdaVariable)rÝ   rø   r  rÙ   rä  r>  s    `   @rk   rã  Ú)TorchInGraphFunctionVariable._call_ntupleð
  sÊ   ù€ ð �:‰:œŸ™×)Ñ)×/Ñ/×7Ñ7Ò7Ø˜‘G×.Ñ.Ó0‰Eà—J‘J×*Ñ*¨1Ñ-×;Ñ;ˆEÜ˜%¤×%Ñ%Ð%Ð%ÞÐˆzð	¤ð 	´_÷ 	ð 	ð( �:‰:œŸ™×)Ñ)×/Ñ/×7Ñ7Ò7Ü×+Ò+¨MÓ:Ð:á   a¡Ó)Ð)rj   râ  r€  c           
      óˆ  • UR                   (       a  [        SSSS/[        R                  QS9  [	        U[
        R                  5      (       a   UR                  5       nUb  UR                  5       (       d   [        S
SU 3SS/[        R                  QS9  UR                  (       a  U R                  XU5      $ [        R                  (       a  [        SSSSS/[        R                  QS9  [	        U[        5      (       d  [!        UR"                  5      (       a%  [        S[%        U5      S/ [        R                  QS9  ['        5       (       d  [        SSSS/[        R(                  QS9   [+        UR-                  US5      R                  5       5      nUR-                  US5      R                  5       nUR-                  US5      R                  5       nUR.                  R1                  [2        WWWU45      nUR4                  (       a  UR7                  US/ 0 5      nSSKJn	  U	" UUR.                  R=                  S[>        URA                  5       URA                  5       40 5      UR                  S 9n
U
R                  5       (       d   e[B        RD                  RF                  U
l        S!U
l$        UR.                  RJ                  RM                  U
5        U
$ ! [         a$    [        SSU 3SS/[        R                  QS9   GN¨f = f! [         a,  n[        SSU 3SS/[        R                  QUS9   S	nAGNeS	nAff = f)"z>A call to torch.nn.Parameter() gets lifted to before the graphz3Attempted to use `torch.nn.Parameter()` with exportr4  rî  z.Do not use `torch.nn.Parameter()` with export.rw   z=non-constant `requires_grad` argument to `torch.nn.Parameter`zrequires_grad=z$Change `requires_grad` to be a bool.Nz1`torch.nn.Parameter()` with unsupported data typezdata=z7Called `torch.nn.Parameter()` with non-Tensor argument.zBEnsure the argument to `torch.nn.Parameter()` is a `torch.Tensor`.z?Attempted to use `torch.nn.Parameter()` constructor with DynamozDynamo does not support thiszDTry to construct `torch.nn.Parameter()` outside the compiled region.z@If this is not possible, turn `graph_break_on_nn_param_ctor` offzDAttempted to use torch.nn.Parameter constructor with tensor subclassz:`torch.nn.Parameter`: cannot convert to traceable tracablez+convert_tracable_parameter is set to False.zDCheck usage of context manager: do_not_convert_to_tracable_parameterrq  rÇ  r&  z8`torch.nn.Parameter` with non-constant Tensor attributeszBEnsure the Tensor argument's shape, dtype, and device are correct.rû  Údetachr4   r!  r-  rÄ   F)'Úexportr$   r   rƒ   r   r   r7   rö   ÚNotImplementedErrorr  r‘  r�   Ú_nn_param_via_prefix_insertr   Úgraph_break_on_nn_param_ctorrF   r   Ú
class_typer  r   Ú	DIFFICULTrx  Úvar_getattrrB  Úsynthetic_graph_inputr    r€  rÒ  rw  r‰  rC  r!   r    rP   re   r]  Úhas_grad_fnÚleaf_var_creation_orderr’   )rÖ   rø   râ  r€  rq  rÇ  r&  r  Úplaceholderr‰  rü   s              rk   r1  Ú.TorchInGraphFunctionVariable.call_nn_parameter  s6  € ð �9�9ÜØMØØ;àDðä&×2Ñ2ðò	ô �m¤Y×%>Ñ%>×?Ñ?ðØ -× @Ñ @Ó B�ð ‰<˜tŸ~™~×/Ñ/ÜØKØ ˜v˜ØUàXðä&×1Ñ1ðò	ð �;�;Ø×2Ñ2°2¸]ÓKÐKä×.×.äØYØØ:àZØVðô '×2Ñ2ðò		ô ØÜ(÷
ñ 
ô 0°·±×@Ñ@ÜØ^Ü˜D›	Ø;ðÜ&×2Ñ2ðò	ô 1×2Ñ2ÜØTØØIàZðä&×0Ñ0ðò	ð	ä˜$×*Ñ*¨2¨wÓ7×JÑJÓLÓMˆEà×$Ñ$ R¨Ó1×DÑDÓFˆEà×%Ñ% b¨(Ó3×FÑFÓHˆFð —i‘i×5Ñ5Ü%à�E˜6 =Ð1ó
ˆð ××à×#Ñ# B¨°"°bÓ9ˆDå*áØØ�I‰I×"Ñ"ØÜ)à—‘“ +×"6Ñ"6Ó"8Ð9Øóð ×%Ñ%ñ
ˆð ×Ñ×!Ñ!Ð!Ð!Ü!ŸH™H×.Ñ.ˆÔð #ˆÔð
 	�	‰	×)Ñ)×0Ñ0°Ô8ð ˆøô} 'ó 	ÜØ[Ø,¨]¨OÐ<Ø ?à>ðä*×5Ñ5ðõ	ð	ûôR #ó 
	ÜØRØ ˜v˜Ø;àXðä&×1Ñ1ðð ÷	ð 	ûð
	ús+   ÁK Å.A)L Ë*LÌLÌ
MÌ!L<Ì<Mc                 óö  ^• U R                   R                  5       nU R                   R                  c   e[        U R                   R                  5      mTR	                  U4S j5        T" UR
                  5        T" [        R                  " U5      5        TR                  SS5        TR                  U5        U R                   R                  R                  TR                  5       5        UR                  5       R                  nUR                  S;  a)  [!        SSUR                   3S/ ["        R$                  QS9  ['        U5      n[(        R*                  R-                  U R                   R/                  UR                  5       R                  5      US	9n[0        R2                  " XU5      nUR5                  5       n[6        R8                  " 5       R:                  R<                  R?                  U5        U$ )
Nc                  ó(   >• T R                  SS5      $ )Nztorch.nnr]  )Úload_import_from)Úcgs   €rk   Ú<lambda>ÚJTorchInGraphFunctionVariable._nn_param_via_prefix_insert.<locals>.<lambda>·  s   ø€  ×!4Ñ!4°ZÀÔ!Mrj   r   F)rP  Úget_attrzAUnexpected type of data placeholder op for parameter constructionzdata_node.op=z/Data node op should be placeholder or get_attr.rw   )r€  ) rB  Únew_varÚroot_txr   Úadd_push_nullr�   r   r   r-  ÚstoreÚpregraph_bytecoder§   Úget_instructionsr    r¡   Úopr$   r   rK  r+   rP   re   r]  Úexample_value_from_input_noder7   r›  r©   r   r£   Úguards_contextÚdynamo_guardsÚremove_guards_with_source)	rø   râ  r€  ÚvarnameÚ	data_noder�   rž   rü   rU  s	           @rk   rH  Ú8TorchInGraphFunctionVariable._nn_param_via_prefix_insert­  s�  ø€ ð
 —)‘)×#Ñ#Ó%ˆð �y‰y× Ñ Ñ,Ð,Ð,Ü�r—y‘y×(Ñ(Ó)ˆØ
×ÑÔMÔNÙ
ˆ4�;‰;ŒÙ
Œ9×%Ò% mÓ4Ô5Ø
×Ñ˜˜EÔ"Ø
�‰�ÔØ
�	‰	×#Ñ#×*Ñ*¨2×+>Ñ+>Ó+@ÔAà—M‘M“O×(Ñ(ˆ	Ø�<‰<Ð:Ó:ÜØ[Ø'¨	¯© ~Ð6ØMðÜ&×0Ñ0ðò	ô & gÓ.ˆÜŸ™×*Ñ*Ø�I‰I×3Ñ3°D·M±M³O×4HÑ4HÓIØ'ð +ð 
ˆô !×&Ò& r¸&ÓAˆà—‘Ó!ˆô 	×ÒÓ×+Ñ+×9Ñ9×SÑSØô	
ð ˆrj   c                 ód   • US   R                  XR                  5       R                  USS  U5      $ )Nr   r4   )rÒ  rx  r«   rž  s       rk   rŽ  Ú/TorchInGraphFunctionVariable.call_tensor_methodÙ  s2   € ð �A‰w×"Ñ" 2×'8Ñ'8Ó':×'CÑ'CÀTÈ!È"ÀXÈvÓVÐVrj   c                 óN  • SSK Jn  [        R                  " U R	                  5       5      =(       aV    [        U R	                  5       S5      =(       a5    U R	                  5       R                  [        R                  R                  :H  =(       d    U R	                  5       U" 5       ;   $ )Nr   )Úget_tensor_methodÚ__objclass__)
rs  rj  rÅ   Úismethoddescriptorrx  rú   rk  rP   rT   Ú
TensorBase)rÝ   rj  s     rk   rŠ  Ú-TorchInGraphFunctionVariable.is_tensor_methodá  s�   € Ý3ô ×&Ò& t×'8Ñ'8Ó':Ó;÷ HÜ˜×)Ñ)Ó+¨^Ó<÷Hð ×!Ñ!Ó#×0Ñ0´E·H±H×4GÑ4GÑG÷	8ð
 ×ÑÓ Ñ$5Ó$7Ñ7ð	8rj   c                 ó  • U R                  5       [        5       ;   =(       dL    [        U R                  5       [        R                  R
                  [        R                  R                  45      =(       a    [        XU5      $ rð   )rx  r°   r   rP   rÎ   rÏ   rÐ   rD   rž  s       rk   rƒ  Ú<TorchInGraphFunctionVariable.torch_function_override_enabledë  sd   € ð ×ÑÓÔ#<Ó#>Ñ>÷ ÜØ×!Ñ!Ó#Ü—‘×&Ñ&¬¯
©
×(CÑ(CÐDó÷<ô *¨"°FÓ;ð	<rj   c                 ó   • grÉ  ri   rò   s    rk   Úis_python_hashableÚ/TorchInGraphFunctionVariable.is_python_hashableö  s   € Ørj   c                 ó,   • [        U R                  5      $ rð   )ÚhashrÁ   rò   s    rk   Úget_python_hashÚ,TorchInGraphFunctionVariable.get_python_hashù  s   € Ü�D—J‘JÓÐrj   Úotherc                 óp   • [        U[        5      (       d  gU R                  5       UR                  5       :H  $ )NF)r   r7   rö   )rÝ   rx  s     rk   Úis_python_equalÚ,TorchInGraphFunctionVariable.is_python_equalü  s/   € Ü˜%¤×1Ñ1ØØ×&Ñ&Ó(¨E×,DÑ,DÓ,FÑFÐFrj   )ro  rð   rÉ  ))r«   rå   r  r	  r
  r   r   rf  rÜ   r  r  rx  rd  Ú	functoolsÚcacherX  rx  r   r7   r-  r�  rx  r  r‚  rã  r  r  r1  rH  ry  rŽ  rŠ  r   rƒ  rr  r`  rv  rß  rz  r  r  r  s   @rk   rn  rn  i  s  ø† ÙJð
 )-ñà˜˜S˜Ñ!ðð  Ñ%ðð ð	ð
 
÷ð ð&O˜#ô Oð˜h s¨C xÑ0ô ð Ø‡_�_ðS˜4 ¨¨c¨Ñ 2°H¸SÀ#¸XÑ4FÐ FÑGó Só ó ðSðj.aà#ðað �Ñ'ðað -ð	að
 
ôaðF	Qà#ðQð �Ñ'ðQð -ð	Qð
 
ôQðfK2à#ðK2ð �Ñ'ðK2ð �S˜/Ð)Ñ*ð	K2ð
 
ˆ Ð/Ñ	0ôK2ðZO/à#ðO/ð �Ñ'ðO/ð �S˜/Ð)Ñ*ð	O/ð
 
ôO/ðb%*à#ð%*ð �Ñ'ð%*ð �S˜/Ð)Ñ*ð	%*ð
 
ô%*ðN ð  Ø"ñ	Sà#ðSð �D‰jðSð ð	Sð
 
ôSó ðSðj ð)Ø#ð)Ø+.ð)Ø?Cð)à	ó)ó ð)ðVWà#ðWð �?Ñ#ðWð �S˜/Ð)Ñ*ð	Wð
 
ôWð8 $ô 8ð	<Ø)ð	<Ø19¸#±ð	<ØHLÈSÐRUÈXÉð	<à	ô	<ð Dô ð  ô  ðG Vð G°÷ Gò Grj   rn  c            
       ó¦   ^ • \ rS rSrSr\S\S\SS 4S j5       r\	S\S\
SS 4S j5       rS	\S\4S
 jrSSS	\S\\   S\\\4   SS4
U 4S jjrSrU =r$ )r–  i  zrepresents torch.DispatchKeySetrÁ   rÙ   rN   c                 ó   • [        U 40 UD6$ rð   )r–  )rÁ   rÙ   s     rk   rû   ÚDispatchKeySetVariable.create  s   € ä% eÑ6¨vÑ6Ð6rj   r�   c                 ó^   • [        UR                  [        R                  5      5        U " XS9$ rÃ   )r&   rÇ   r%   ÚDISPATCH_KEY_SET_MATCHrÕ   s      rk   r×   Ú)DispatchKeySetVariable.create_with_source	  s(   € ô 	�f×'Ñ'¬×(KÑ(KÓLÔMÙ�5Ñ(Ð(rj   r‚   c                 ó   • US:H  $ )NÚhasri   )rÝ   r‚   s     rk   Úis_constant_fold_methodÚ.DispatchKeySetVariable.is_constant_fold_method  s   € Ø�u‰}Ðrj   rø   rI   r  r7   c                 ó  >• U R                  U5      (       aš  [        X45      (       aŠ  [        U R                  U5      n[        R
                  R                  U" U Vs/ s H  ofR                  5       PM     sn0 UR                  5        VVs0 s H  u  pxXxR                  5       _M     snnD65      $ US:X  a.  [        R                  " U R                  R                  5       5      $ [        T	U ]1  XX45      $ s  snf s  snnf )NÚhighestPriorityTypeId)r†  r,   r  rÁ   r   r   rû   rö   r…   ÚEnumVariabler‰  rÛ   rÒ  )
rÝ   rø   r‚   r  rÙ   Úmethodra  r|  r}  rÞ   s
            €rk   rÒ  Ú"DispatchKeySetVariable.call_method  sà   ø€ ð ×'Ñ'¨×-Ñ-Ô2OØ÷3
ñ 3
ô ˜TŸZ™Z¨Ó.ˆFÜ×-Ñ-×4Ñ4ÙÙ6:Ó;²d°×*Ñ*Ö,±dÑ;ðà=C¿\¹\¼^ÔLº^±T°Q�q×.Ñ.Ó0Ò0¹^ÒLñóð ð Ð,Ó,Ü×)Ò)¨$¯*©*×*JÑ*JÓ*LÓMÐMÜ‰wÑ" 2¨TÓ:Ð:ùò <ùÛLs   ÁC6ÂC;ri   )r«   rå   r  r	  r
  rd  r   r   rû   r  r   r×   r  r  r†  ry  r7   rX  rÒ  r  r  r  s   @rk   r–  r–    s¶   ø† Ù)àð7�nð 7°ð 7Ð8Pó 7ó ð7ð ð)Ø"ð)Ø,2ð)à	!ó)ó ð)ð¨Cð °Dô ð;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;õ ;rj   r–  c            
       ót   ^ • \ rS rSrSr\S\S\SS 4S j5       rSSS	\	S
\
\   S\\	\4   SS4
U 4S jjrSrU =r$ )rÖ  i)  z<represents torch._functorch.pyfunctorch.FuncTorchInterpreterrÁ   r�   rN   c                 ó^   • [        UR                  [        R                  5      5        U " XS9$ rÃ   )r&   rÇ   r%   rÿ  rÕ   s      rk   r×   Ú/FuncTorchInterpreterVariable.create_with_source,  s(   € ô 	�f×'Ñ'¬×(=Ñ(=Ó>Ô?Ù�5Ñ(Ð(rj   rø   rI   r‚   r  rÙ   r7   c                 ó  >• US:X  a.  [         R                  " U R                  R                  5       5      $ US:X  aI  UR	                  [
        R                  " XR                  R                  R                  5      U /U-   U5      $ US;   a8  [         R                  R                  [        U R                  U5      " 5       5      $ US:X  a0  U(       d  U(       a   e[         R                  R                  US 5      $ [        TU ]9  XX45      $ )NÚkeyÚprocess)ÚlevelÚ
batch_sizeÚ
randomnessÚlower)r   rŠ  rÁ   r‘  r¢  r7   r›  r’  Ú__func__r   rû   r  Ú0TemporarilyPopInterpreterStackCtxManagerVariablerÛ   rÒ  )rÝ   rø   r‚   r  rÙ   rÞ   s        €rk   rÒ  Ú(FuncTorchInterpreterVariable.call_method3  sá   ø€ ð �5‹=Ü×)Ò)¨$¯*©*¯.©.Ó*:Ó;Ð;Ø�YÓØ×1Ñ1Ü×%Ò% b¯*©*×*<Ñ*<×*EÑ*EÓFØ�˜‘Øóð ð
 Ð:Ó:Ü×-Ñ-×4Ñ4´W¸T¿Z¹ZÈÔ5NÓ5PÓQÐQØ�W‹_Þ¦FÐ*Ð*Ü×MÑM×TÑTØ�Dóð ô ‰wÑ" 2¨TÓ:Ð:rj   ri   )r«   rå   r  r	  r
  r  r   r   r×   r  ry  r7   rX  rÒ  r  r  r  s   @rk   rÖ  rÖ  )  sy   ø† ÙFàð)Øð)Ø!'ð)à	'ó)ó ð)ð;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;õ ;rj   rÖ  )Ür
  Úenumr|  rÅ   Úloggingr   rè   Úcollections.abcr   r   r   Ú
contextlibr   Útypingr   r   r	   r
   r   r   Útyping_extensionsr   Útorch._CrP   Útorch._refsÚtorch.fxÚtorch.nnrÚ  rL  rÝ  r   Ú torch._dynamo.variables.constantr   r   Útorch._dynamo.variables.streamsr   Ú&torch._dynamo.variables.torch_functionr   Útorch._guardsr   r   r   Útorch._loggingr   Útorch.autograd.graphr   r�   r   r4  r   r   r   r   rë   r   Úcreate_parameter_opr   r    r!   r  r"   r®  r#   r$   Úguardsr%   r&   r�   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   rÛ  r5   r6   r7   Úctx_managerr8   r9   r:   r;   Údictsr<   Údistributedr=   r>   r7  r?   r@   r~   rA   rB   rC   Útorch_functionrD   rE   rF   rG   Únumpyr  ÚModuleNotFoundErrorÚ#torch.distributed.fsdp._fully_shardrH   Útorch._dynamo.symbolic_convertrI   Útorch._library.opaque_objectrJ   rK   rL   rM   Ú	getLoggerr«   rL  rX  rY  rI  rK  r  rT  rU  rV  rJ  rT   rM  rN  rO  rP  rQ  rR  rW  rS  rX  rD  rE  rF  Ú	grad_moder9  r;  r5  r:  rY  rZ  rH  rG  rV   r<  r=  r>  re   r]  r^  r  Ú_shape_as_tensorrK  rt  Úcurrent_device_indexÚcurrent_acceleratorÚcurrent_deviceÚis_initializedÚxpur„  rf  r_   Ú_get_device_indexÚ_get_cublas_allow_tf32Ú_is_any_autocast_enabledrg  Úget_device_propertiesÚget_autocast_dtypeÚget_autocast_gpu_dtypeÚget_default_dtypeÚis_autocast_cache_enabledÚis_autocast_cpu_enabledÚis_autocast_enabledrÉ  rÈ  rm  Ú
_ReductionÚget_enumÚpromote_typesÚ_get_privateuse1_backend_nameÚ_is_checkpoint_validr  r§   Úget_rankÚget_world_sizer}  r  rl   r�  r�  Ú_dispatch_tls_local_include_setÚ_dispatch_tls_local_exclude_setrC  r  r†   r“   r‘   ÚNoder™   ry  rx  r¨   r°   rÀ   r  ÚEnumrf  rn  r–  rÖ  ri   rj   rk   Ú<module>rÒ     s€  ðñó6 Û Û Û Û Û 	ß 8Ñ 8Ý "ß I× IÝ $ã Û Û Û ß %Ð %Ý #ß UÝ :Ý Lß 7Ñ 7Ý 'Ý -Ý Kç >Ó >Ý ÷ñ õ
 @ß 9ß 0÷õ ÷	÷ 	ó 	÷ AÑ @÷ó õ %ß Bß Cß BÑ B÷ó ðÛðÝEö
 ÝDÝ7Ý,ñ ˆCƒL€ÙˆCƒL€à×Ò˜Ó!€à $§¡à�‰×Ñ×'Ñ'Ø�‰×!Ñ!×7Ò7Ø�‰×!Ñ!×,Ò,Ø�‰×Ñ×'Ñ'Ø�‰×Ñ×/Ò/Ø�Š×-Ò-Ø�Š×%Ò%Ø×Ò×Ò×4Ò4Ø×Ò×)Ò)×@Ò@Ø×Ò×)Ò)×?Ò?Ø×Ò×)Ò)×FÒFØ�	Š	×Ò×(Ò(Ø�‰× Ò ×,Ò,Ø�‰× Ò ×/Ò/Ø�‰× Ò ×(Ò(Ø�‰× Ò ×1Ò1Ø�‰×Ò×8Ò8Ø�	Š	�Š×#Ò#×,Ò,Ø�
Š
�Š×$Ò$×-Ò-Ø�Š×Ò×#Ò#Ø�Š×Ò×#Ò#×/Ò/ð 	�Š×Ò×&Ò&×2Ò2ð;ó !Ð ðF %)§M¡Mà×Òðó%Ð !ð 
×Ò×*Ò*Ø	×Ò×)Ò)Ø	‡J‚J×ÒØ	‡J‚J×ÒØ	‡I‚I×ÒØ	‡I‚I×Òð'Ð #ð 
‡M‚MØ	‡L‚L×"Ò"Ø	‡H‚H×#Ò#Ø	‡H‚H×%Ò%Ø	×Ò×"Ò"Ø	‡J‚J×$Ò$Ø	‡J‚J×ÒØ	×Ñ×"Ò"Ø	×ÒØ	× Ò Ø	×ÒØ	×#Ò#Ø	×!Ò!Ø	×ÒØ	×ÒØ	×ÒØ	‡H‚H×Ò×"Ò"×+Ò+Ø	×ÒØ	‡H‚H×*Ò*Ø	‡N�N×'Ò'Ø	‡I‚I×#Ò#Ø	‡I‚I×Òð-ð. (ñ/(Ð ð0 	×Ñ×!Ò!×#Ñ#Ø×"Ò"à×Ñ×,Ò,Ø×Ñ×&Ò&Ø×Ñ×,Ò,ð	
ôð '+§m¡mÐ4WÓ&XÐ #ØŸ-™-Ð(?Ó@Ð ð ‡‚ð  h¨r°3¨wÑ&7¸À$¹Ð&GÑ!Hó ó ðð. �-‰-Ò<Ó
=€ð 
‡H‚H×ÒØ	‡H‚H×,Ò,Ø	‡H‚H×,Ò,ðÐ ð ? /ð  ?¸Sð  ?ÀTô  ?ðF %§,¢,ð °3°u·~±~×7KÒ7K×7PÒ7PÑ3Qô ð6$Ø	ð$à	ˆ%�—’˜h s™mÐ+Ñ
,Ñ-ô$ðN ‡‚ð 3 x°°S°Ñ'9Ñ#:ó ó ðô$IA˜ô IAôXk7Ð#4ô k7ô\$�t—y’yô $ôV&GÐ#4ô V&GôrL$;Ð.ô $;ôN ;Ð#4õ  ;øðI^ ó Ø	ƒBðûð
 ó ØÓðús$   Ä'b Ä,b. âb+â*b+â.b:â9b: