
    [Thy                       % 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rSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKJrJrJrJrJrJr  SSKrSSK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
K*J+r+J,r,J-r-  SSK.J/r/J0r0  SSK1J2r2  SSK3J4r4  SSK5J6r6  SSK7J8r8J9r9J:r:J;r;J<r<J=r=J>r>  SSK?J@r@JArA  SSKBJCrC  SSKDJErE  SSKFJGrG  SSKHJIrIJJrJJKrKJLrLJMrM  SSKNJOrO  SSKPJQrQJRrRJSrS  SSKTJUrUJVrVJWrW  SSKXJYrYJZrZJ[r[J\r\J]r]  SSK^J_r_  SSK`JaraJbrbJcrcJdrdJereJfrfJgrgJhrhJiriJjrjJkrkJlrlJmrmJnrnJoroJprpJqrqJrrrJsrsJtrt  SSKuJvrvJwrwJxrxJyryJzrzJ{r{J|r|J}r}J~r~JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SSKJrJrJrJrJr  SSKJrJr  SS KJrJrJrJrJrJr  SS!KJrJrJrJrJrJr  SS"KJrJrJrJrJr  SS#KJrJrJrJrJrJrJrJrJrJrJrJr  SS$KJr  SS%KJr  SS&KJr  SS'KJrJrJrJrJrJrJrJrJr  SS(KJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SS)KJrJrJr  SS*KJr  SS+KJr  SS,KJr  SS-KJrJrJrJrJrJr  SS.KJrJrJrJr  SS/KJrJrJrJr  SS0GK GJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJ	Gr	GJ
Gr
   SSGKGr\(       a	  SS1GKGJGr  \
GR                   " G\5      Gr\GR&                  GR)                  G\S25      GrG\GrS3 Gr " S4 S55      Gr\GR4                   " S6 S75      5       Gr " S8 S9G\5      GrG\" S: G\" \	5      GR?                  5        5       5      Gr G\G\!   G\"S;'   G\#" 5       Gr$G\#G\!   G\"S<'    " S= S>5      Gr%S? Gr&S@ Gr' SVSA\4SB jjGr(SC Gr) SVSD jGr* SWSE jGr+ SVSF jGr,SG Gr-SH Gr.SGq/\G\#G\0      G\"SI'   SAG\#G\0   4SJ jGr1\GR4                   " SK SL5      5       Gr2 SXSA\>4SM jjGr3SSN.SO\\r   SPG\44SQ jjGr5 " SR SS5      Gr6G\6GRo                  5       G\6Gl8         " ST SU5      Gr9g! G\ a    SGr GNf = f)Yaq  
This module contains classes and utilities for building variable trackers in Dynamo.
Variable trackers are used to convert Python values into symbolic representations
that can be traced and transformed during graph capture.

The key classes are:

- VariableBuilder: Handles source-tracked objects that need guards and proper
  reconstruction in the output graph. Used for inputs, module attributes, etc.

- SourcelessBuilder: Handles ephemeral objects created during tracing that don't
  need source tracking or guards. Used for temporary lists, intermediate values, etc.

Variable trackers enable Dynamo to track the flow of values through the program,
maintain guards for dynamic properties, and reconstruct values in the output graph.
The builders in this module handle converting Python values into appropriate
VariableTracker instances based on their type and usage context.
    N)MutableMapping)AnyCallable
NamedTupleOptionalTYPE_CHECKINGUnion)SymInt)get_metrics_contextis_int_specialization_caseis_torch_sym)TracingContext)call_torchbind)HigherOrderOperator)
FakeTensoris_fakemaybe_get_fake_mode)is_sparse_any	safe_grad)justknobs_check)BackwardState)normalize_source_name)_constrain_range_for_size_nested_int_aware_sort
DimDynamicRelaxedUnspecConstraintStatefulSymbolicContextSubclassSymbolicContextSymbolicContext)immutable_dictimmutable_list)is_traceable_wrapper_subclass)ValueRanges)TensorWeakRef   )configgraph_break_hintsmutation_guardreplay_recordtrace_rules) get_registered_device_interfaces)InternalTorchDynamoErrorunimplementedunimplemented_v2)GuardBuilderinstall_guardmake_dupe_guard)auto_dynamic
auto_unsetFrameStateSizeEntryInferStrideprocess_automatic_dynamic)SideEffects)AttrProxySource
AttrSourceCallMethodItemSourceChainedSourceConstDictKeySourceConvertIntSourceDictGetItemSourceFloatTensorSourceGetItemSource
GradSourceis_constant_sourceis_from_optimizer_sourceListGetItemSourceLocalSourceNumpyTensorSourceOptimizerSourceRandomValueSourceSourceSubclassAttrListSourceTupleIteratorGetItemSource)_extract_tensor_dictbuild_checkpoint_variablebuild_invoke_subgraph_variableclone_inputcommon_constant_types	dict_keysget_fake_valueget_items_from_dictget_locals_to_stealget_static_address_typeis_frozen_dataclassis_function_or_wrapperis_invoke_subgraphis_lru_cache_wrapped_functionis_namedtupleis_parameter_freezing	is_typingis_utils_checkpointis_wrapper_or_member_descriptoristypenamedtuple_fieldsodict_valuesproxy_args_kwargsrange_iteratorset_example_valuetensor_always_has_static_shapetuple_iteratortuple_iterator_getitemtuple_iterator_len unwrap_with_attr_name_if_wrapperwrap_fake_exception   )typestrValueMutationExistingValueMutationNewVariableTrackerVariableTrackerMeta)ConstantVariableEnumVariable)AutocastModeVariableEventVariableNullContextVariablePreserveVersionContextVariableStreamContextVariableStreamVariable)ConstDictVariableDefaultDictVariableDictKeySetVariableFrozensetVariableMappingProxyVariableSetVariable)DeviceMeshVariablePlacementClassVariablePlacementVariableProcessGroupVariableWorldMetaClassVariable)BuiltinMethodVariableCollectionsNamedTupleFunction!CollectiveFunctionRewriteVariableCreateTMADescriptorVariableFunctoolsPartialVariableFunctoolsWrapsVariableSysFunctionVariableTracebackVariableTritonKernelVariableUserFunctionVariableUserMethodVariableWrapperUserFunctionVariable) TorchHigherOrderOperatorVariable)ItertoolsVariable)LazyVariableTracker)	BaseListVariableListIteratorVariableListVariableNamedTupleVariableRangeVariableSizeVariableSliceVariableTupleIteratorVariableTupleVariable)AutogradEngineVariableAutogradFunctionContextVariableAutogradFunctionVariableComptimeVariableDebuggingVariableDelayGraphBreakVariableGetAttrVariableGetSetDescriptorVariableLambdaVariableLoggingLoggerVariableMethodWrapperVariableNumpyDTypeVariableNumpyTypeInfoVariableNumpyVariablePythonModuleVariableRandomClassVariableRandomVariableRegexPatternVariableSavedTensorBoxTorchVersionVariableTypingVariableWeakRefVariable)FSDPManagedNNModuleVariable$UnspecializedBuiltinNNModuleVariableUnspecializedNNModuleVariable)OptimizerVariable)TorchScriptObjectVariableSDPAParamsVariable)NumpyNdarrayVariable$supported_const_comparison_op_valuesSymNodeVariableTensorSubclassVariableTensorVariableUnspecializedPythonVariable)DispatchKeySetVariableFuncTorchInterpreterVariableTorchCtxManagerClassVariableTorchInGraphFunctionVariable)build_torch_function_fnTensorWithTFOverrideVariable#torch_function_mode_stack_state_mgrTorchFunctionModeVariable)
FrozenDataClassVariableKeyedJaggedTensorVariableMutableMappingVariableSourcelessGraphModuleVariableUserDefinedClassVariableUserDefinedDictVariable!UserDefinedExceptionClassVariableUserDefinedListVariableUserDefinedObjectVariableUserDefinedTupleVariable)InstructionTranslatorcudagraph_static_inputsc                     [         R                  " 5          [         R                  " SS5        [        U S5      sS S S 5        $ ! , (       d  f       g = f)NignorezThe .grad attribute of a Tensorgrad)warningscatch_warningsfilterwarningshasattr)ts    W/var/www/auris/envauris/lib/python3.13/site-packages/torch/_dynamo/variables/builder.pysafe_has_gradr     s5    		 	 	"*KLq&! 
#	"	"s   #A
Ac                       \ rS rSrSrg)_missingi$   N__name__
__module____qualname____firstlineno____static_attributes__r       r   r   r   $  s    r   r   c                       \ rS rSr% \\S'   \\\R                  4   \S'   \
\S'   \\R                  R                  R                     \S'   Sr\
\S'   Sr\\R"                     \S	'   \S
 5       rS rS rS rS rSrg)GraphArgi(  source_examplepass_arg_as_tensorfake_tensorT	is_tensorNexample_strong_refc                     [        U R                  [        5      (       a  U R                  5       nUc   eU$ U R                  $ N)
isinstancer   r$   )selfrs     r   exampleGraphArg.exampleL  s7    dmm]33A= =H== r   c                     [        U R                  [        R                  5      (       a7  [	        U R                  5      U l        [        U R                  5      (       d   eg g r   )r   r   torchTensorr$   r   r   r   s    r   __post_init__GraphArg.__post_init__U  sC    dmmU\\22)$--8DM4++,,,, 3r   c                 (    U" U R                   5        g r   r   r   codegens     r   reconstructGraphArg.reconstructZ  s    r   c                      S U l         S U l        g r   r   r   r   s    r   eraseGraphArg.erase]  s    "&r   c                 l    U R                   R                  5       UR                   R                  5       :H  $ r   )r   namer   others     r   __eq__GraphArg.__eq__a  s'    {{!U\\%6%6%888r   r  )r   r   r   r   rI   __annotations__r	   r$   r   r
   boolr   _subclassesr   r   r   r   r   propertyr   r   r   r  r
  r   r   r   r   r   r   (  s    N M5<</00" %++77BBCC It 26.5! !-
'9r   r   c                   2   ^  \ rS rSrSU 4S jjrS rSrU =r$ )BackwardStateGraphArgie  c                 8   > [         TU ]  S [        5       SS SS9  g )NF)r   r   r   r   r   )super__init__r   )r   	__class__s    r   r  BackwardStateGraphArg.__init__f  s&    "_$ 	 	
r   c                    ^ TR                   R                  R                  (       d   eTR                  U4S j5        TR	                  SS5        TR                  5         TR                  TR                   R                  R                  5        g )Nc                  D   > T R                  [        R                  S5      $ )Nr   )load_import_fromr   r   )r   s   r   <lambda>3BackwardStateGraphArg.reconstruct.<locals>.<lambda>r  s    G,,]-E-EWr   r   F)txoutputbackward_state_varadd_push_nullcall_functiondup_topstorer   s    `r   r   !BackwardStateGraphArg.reconstructo  se    zz  3333W	
 	a'gjj''::;r   r   returnN)r   r   r   r   r  r   r   __classcell__r  s   @r   r  r  e  s    
< <r   r  c              #      #    U  HG  u  pUR                  S 5      (       a  M  [        R                  " U5      (       d  M:  [        U5      v   MI     g7f)_N)
startswithinspectisclassid).0r  members      r   	<genexpr>r0  {  s>      //??3 $+OOF$; BvJJ/s   AAAITERTOOLS_TYPE_IDSITERTOOLS_POLYFILLED_TYPE_IDSc                   l  ^  \ rS rSrSrS\SS4U 4S jjrS rS rS	 r	S
 r
\S 5       r\\R                  " S5      S 5       5       rS\R"                  4S jrS\R(                  4S jrS rS rS r\\R                  " S5      S\\\S \/\4   4   4S j5       5       rS rS\4S jr S\!\"\#\$\%4   4S jr&S\'4S jr(S\)4S jr*S\!\+\,4   4S jr-S\.R^                  S\04S jr1S\.Rd                  Rf                  4S jr4S r5S\.R^                  4S jr6S\.R^                  4S jr7S  r8S! r9S" r:S# r;S$r<U =r=$ )%VariableBuilderi  z3Wrap a python value in a VariableTracker() instancer   r%  Nc                    > Uc   S5       e[         R                  " 5       c   S5       e[        TU ]  5         Xl        X l        UR                  5       U l        g )NzRConsider SourcelessBuilder for ephemeral objects, usually objects created locally.zExpected active TracingContext)r   try_getr  r  r  r   r  )r   r  r   r  s      r   r  VariableBuilder.__init__  sZ    
 ! 	
`	
! %%'3U5UU3KKM	r   c                 2   XR                   R                  R                  ;   a]  U R                   R                  R                  U   n[        U R                  UR                  5      nU(       a  U R                  U5        U$ U R                   R                  R                  R                  XR                  5      nU(       a  U$ U R                  U5      nU R                  Ul        U R                  U5      (       ab  XR                   R                  R                  ;  a?  [        U5      (       d/  U R                   R                  R                  R                  X5      nU R                   R                  R                  R                  XR                  U5        U$ r   )r  r  side_effectsr1   r   install_guardsvariable_tracker_cachelookup_wrap_can_lift_attrs_to_inputsr^   track_object_existingadd)r   valueside_effect_result	dup_guard	cached_vtvts         r   __call__VariableBuilder.__call__  s   GGNN///!%!<!<U!C'5G5N5NOI##I.%%GGNN99@@T	ZZKK	**2..WW^^8883E::,,BB5MB--11%bI	r   c                 F    [        U5      [        [        [        [        1;   $ r   )typer   r   r   r   )r   rE  s     r   r>  )VariableBuilder._can_lift_attrs_to_inputs  s$    Bx(% 	
 
 	
r   c                     U R                   $ r   r   r   s    r   
get_sourceVariableBuilder.get_source  s    {{r   c                     U R                  5       n U Vs/ s H  o2R                  U5      PM     nn[        USS06  0 $ s  snf ! [         a     g f = f)Nskiprk   )rL  
make_guardNotImplementedErrorr0   )r   guardsr   guardtmps        r   r:  VariableBuilder.install_guards  s\    "	9?@$$U+C@ 	s##		 A" 		s   A ?A A 
AAc                 @    U R                  [        R                  5      $ r   )_type_dispatch_implr&   trace_numpy)clss    r   _type_dispatchVariableBuilder._type_dispatch  s    &&v'9'9::r   c                 <   [         R                  [         R                  R                  [         R                  R
                  [         R                  R                  R                  4U R                  4[        [        [        [        R                  [         R                  4U R                  4[         U R"                  4[$        U R&                  4[(        [*        4U R,                  4[        [.        5      U R0                  4[2        R4                  U R6                  4[8        R:                  U R<                  4[         R>                  R@                  RB                  U RD                  4[         RF                  RH                  U RJ                  4[L        RN                  U RP                  4/nU(       a6  [R        (       a+  URU                  [R        RV                  U RX                  45        0 nU H1  u  pE[[        U[        5      (       a  UOU4 H  nXc;  d   eXSU'   M     M3     U$ r   ).r   r   nn	Parameterr  r   functional_tensorFunctionalTensorwrap_tensortuplelistra   collectionsdequeSizewrap_listlikerf   wrap_tuple_iteratorrc   wrap_range_iteratorslicerangewrap_slice_rangerP   wrap_literalrePatternwrap_regex_patternweakrefReferenceTypewrap_weakrefutilshooksRemovableHandlewrap_removable_handlejitScriptFunctionwrap_jit_functiontypesMappingProxyTypewrap_mapping_proxynpappendndarraywrap_numpy_ndarrayr   )rY  rX  entriesresulttsfnr   s          r   rW  #VariableBuilder._type_dispatch_impl  s    LLHH&&%%00%%77HH	  lK,=,=uzzJ!! S445S445U^S112()3+;+;<ZZ//0""C$4$45[[..0I0IJYY%%s'<'<=##S%;%;<-
2 22NNBJJ(>(>?@FB%b%00Rre;&q	 < 
 r   rA  c                 V    U R                  [        R                  5        [        U5      $ r   )r:  r/   ID_MATCHr   r   rA  s     r   rp  "VariableBuilder.wrap_regex_pattern  s!    L112#E**r   c                     U R                  [        R                  5        [        R                  " U R
                  XR                  S9$ Nr   )r:  r/   
TYPE_MATCHr   buildr  r   r  s     r   rs  VariableBuilder.wrap_weakref  s1    L334$$TWWeKKHHr   c                     [        S5        g )Nz"unregistered hook removable handle)r-   r  s     r   rw  %VariableBuilder.wrap_removable_handle  s    
 	:;r   c                 j    U R                  [        R                  5        [        USU R                  S9$ )N_torchdynamo_inliner   )r:  r/   r  r   r   r  s     r   rz  !VariableBuilder.wrap_jit_function  s/    L334*(
 	
r   c                   ^ ^ T R                  [        R                  5        T R                  [        R                  5        [	        S UR                  5        5       5      nU(       d  [        S5        U 4S jm[        U4S jUR                  5        5       5      n[        US S9n[        UT R                  S9nT R                  R                  R                  R                  X5      $ )Nc              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr   rq   
is_literalr.  ks     r   r0  5VariableBuilder.wrap_mapping_proxy.<locals>.<genexpr>  s     M1(33A66   #%z+mapping proxy type supports only const keysc                    > [         R                  " U 5      nU n[        TR                  5       U5      n[        R                  " X5      nX%4$ r   )rq   creater@   rL  r   )r  vkey
source_keysource_valuerA  r   s         r   build_key_value;VariableBuilder.wrap_mapping_proxy.<locals>.build_key_value  sC    "))!,CJ():JGL'..q?E:r   c              3   8   >#    U  H  u  pT" X5      v   M     g 7fr   r   )r.  r  r  r  s      r   r0  r    s     E}tq_Q**}s   r   )r:  r/   r  MAPPING_KEYS_CHECKallkeysr-   dictitemsry   r}   r   r  r  r9  track_mutable)r   rA  	all_constr  dict_vtr  r  s   `     @r   r}  "VariableBuilder.wrap_mapping_proxy  s    L334 	L;;<M

MM	GH	 Eu{{}EE $E$7%gdkkBww~~**88GGr   c                     SSK J n  US 4[        R                  S 4[        R                  S 4/n0 nU H@  u  pE[        U[        [        45      (       a  UOU4 H  nXc;  d   eXS[        U5      '   M     MB     U$ )Nr%   )comptimec                     [        5       $ r   )r   r  s     r   r  .VariableBuilder._id_dispatch.<locals>.<lambda>%  s    +;+=r   c                 t    [        [        4SU R                  0U R                  [        R
                  5      D6$ )Nr   )r   _dataclasses_fields_lambdar   r:  r/   FUNCTION_MATCHr  s     r   r  r  (  s3    N.%;;% )),*E*EF%r   c                     [        5       $ r   )r   r  s     r   r  r  .  s    4H4Jr   )	r  dataclassesfieldsr   __version__r   rb  rc  r-  )rY  r  r  r  r  r  r   s          r   _id_dispatchVariableBuilder._id_dispatch  s    
 	( =>""  JK
 FB%b5$-88RreC& "r!u D 
 r   c           
      U  ^ ^1^2 SSK JnJn  U" 5       (       a  SSKJn  SSKJn  O " S S5      n " S S5      nU" 5       (       a	  SS	KJnJ	n  OS
 nS nT R                  5       R                  [        U5      5      nUb	  U" T U5      $ T R                  5       R                  [        U5      5      n	U	b	  U	" T U5      $ [        U5      (       d  [!        U["        R$                  5      (       a  T R'                  U5      $ [)        U5      (       a  T R+                  [,        R.                  5        [1        [        U5      5       V
s/ s H5  n
[2        R4                  " [7        X5      [9        T R:                  U
5      S9PM7     nn
[=        U[        U5      T R:                  S9nU$ [!        U[>        [@        RB                  [@        RD                  45      (       Ga  T R+                  [,        RF                  5        [I        S URK                  5        5       5      m1T1(       dG  T RL                  RN                  RP                  RS                  T R:                  RU                  5       5        U1U 4S jm2[?        U24S j[W        [Y        U5      5       5       5      n[!        U[@        RB                  5      (       aZ  [9        T R:                  S5      n[[        U[        U5      []        T RL                  U5      " UR^                  5      T R:                  S9nO[a        U[        U5      T R:                  S9nT RL                  RN                  Rb                  Re                  X5      $ [g        U[h        Rj                  Rl                  5      (       a  T Ro                  U5      $ [p        Rr                  " U5      (       a  T Ru                  U5      $ [g        U[h        Rv                  Rx                  5      (       aE  [{        UT R:                  S9nT RL                  RN                  Rb                  R}                  X5        U$ [!        U[~        5      (       az  [I        S U 5       5      (       ac  U Vs/ s H#  n[        R5                  T RL                  U5      PM%     nnT R+                  [,        R                  5        [        UT R:                  S9$ [g        U[        R                  [h        R                  [h        R                  R                  R                  45      (       a3  T R+                  [,        R                  5        [        UT R:                  S9$ [        R                  " U5      (       a3  T R+                  [,        R                  5        [        UT R:                  S9$ [g        U[        R                  5      (       a3  T R+                  [,        R                  5        [        UT R:                  S9$ [        U5      (       a  [        T R:                  S9$ [        U5      (       a  [        T R:                  S9$ [g        U[        R                  5      (       Ga  [9        T R                  5       S5      n[]        T RL                  U5      " UR                  5      n/ n[9        T R                  5       S5      n[W        UR                  5       H;  u  nnUR                  []        T RL                  [        UU5      5      " U5      5        M=     0 n[9        T R                  5       S5      nUR                  R                  5        HU  u  nn[p        Rr                  " U5      (       d  [        S5        []        T RL                  [        UU5      5      " U5      UU'   MW     [        T R                  5       R                  [,        RF                  5      UR                  [,        R                  5      UR                  [,        R.                  5      5        [        UUU5      $ [        U5      (       a3  T R+                  [,        R                  5        [        UT R:                  S9$ [        bD  [g        U[        R                  5      (       a%  T R                  [        R                  " U5      5      $ [        R                  " U5      (       a`  [        (       d   eT R+                  [        U5      (       a  [,        R                  O[,        RF                  5        [        UT R:                  S9$ [        R                  " U5      (       a3  T R+                  [,        R                  5        [        UT R:                  S9$ [        R                  " U5      (       a  [g        U[        R                  5      (       a^  T R+                  [,        RF                  5        [9        T R:                  S5      n[        UR                  [,        R                  5      5        OT R+                  [,        R                  5        [        UT R:                  S9$ [        R                  " U5      (       aI  T R+                  [,        R                  5        [        R4                  " T RL                  UT R:                  S9$ [!        U[h        R                  R                  R                  5      (       a3  T R+                  [,        R                  5        [        UT R:                  S9$ [g        U[h        R                  R                  R                  5      (       Ga2  S n UR                  n/ nT R:                  R                  [,        RF                  5      /n[g        U[        5      (       a  [9        T R:                  S5      nUR                  UR                  [,        R.                  5      5        [W        U5       H;  u  nnUR                  []        T RL                  [        UU5      5      " U5      5        M=     [        U6   T RL                  RN                  Rb                  R}                  U[        UT R:                  [        U5      S95      $ [g        U[        GR                   5      (       a  [!        [7        USS 5      [h        R                  R                  R                  5      (       a~  [7        USS5      S :X  am  U[7        UGR                  S S 5      :X  aQ  T R+                  [,        R                  5        G[        [        UGR                  [9        T R:                  SS!9S9S 5      $ [g        U[h        R                  GR                  5      (       a4  T R+                  [,        R                  5        G[	        UT R:                  S9$ U[h        GR
                  GR                  GR                  GR                  L a/  T R+                  [,        R                  5        G[        U 4S" j5      $ [        U5      (       a  [        GR                  " U5      bg  [        GR                  " U5      (       a  S#T RL                  RN                  l        [        GR                  " U5      GR                  UT R:                  S9$ [        (       a2  [g        U[        GR                  5      (       a  T GR                  U5      $ [g        UG[         5      (       az  U[h        GR"                  GR$                  L a  [        S$5        T R+                  [,        RF                  [,        GR&                  5        G[(        GR*                  " UT R:                  S9$ [g        U[h        GR,                  GR.                  5      (       a~  T R+                  [,        R                  5        [9        T R:                  S%5      n[]        T RL                  U5      " UGR0                  5      n G[2        R4                  " T RL                  U 5      $ [g        U[h        GR4                  5      (       a  T R+                  [,        R                  5        T RL                  RN                  GR7                  S&[        U5      S'UGR8                  UGR:                  UGR<                  S(.5      n!G[?        U!GR@                  U5        G[C        U!UUGRD                  T R:                  S9$ [g        U[h        R                  GRF                  5      (       aL  T R+                  [,        RF                  5        G[H        R4                  " T RL                  UT R:                  5      $ [g        U[h        R                  GRJ                  GRL                  5      (       a+  T R+                  [,        R                  5        G[O        U5      $ [g        U[h        GRP                  5      (       a  T R+                  [,        R                  5        [h        GR
                  GRR                  GRU                  U5        T RL                  RN                  GR7                  S&[h        GR
                  GRR                  GRV                  [        U5      40 5      n"G[?        U"GR@                  U5        G[Y        U"UT R:                  S9$ [g        U[h        R                  GRZ                  5      (       a)  U["        R$                  ;   a  G[]        UT R:                  S9$ [!        UG[^        GR`                  5      (       aN  G[b        GRd                  " US)S 5      c3  T R+                  [,        RF                  5        G[g        T R:                  S9$ G[h        GRj                  " U5      (       ac  T R+                  [,        RF                  5        G[i        UT R:                  S9nT RL                  RN                  Rb                  R}                  X5      $ [g        U[h        GRl                  GRn                  5      (       aO  T R+                  [,        R                  5        G[q        T R:                  5      T l        G[s        UT R:                  S9$ [g        U[h        GRt                  5      (       a,  T R+                  [,        GRv                  5        G[y        U5      $ G[z        GR|                  " U5      (       a  G[{        UT R:                  S9$ G[~        GR                  " U5      (       a4  T R+                  [,        R                  5        G[        UT R:                  S9$ G[        GR                  " U5      (       a5  T R+                  [,        GR                  5        G[        UT R:                  S9$ G[        GR                  " U5      (       a4  T R+                  [,        R                  5        G[        UT R:                  S9$ G[        GR                  " U5      (       a5  T R+                  [,        GR                  5        G[        UT R:                  S9$ [        U5      G[        ;   aH  [        U5      G[        ;  a4  T R+                  [,        R                  5        G[        UT R:                  S9$ G[        U5      (       GaY  [g        U[h        GR                  5      (       a  T R:                  OG[        T R:                  5      n#UGR@                  GR                  5       (       ab  T RL                  RN                  GR                  GR                  G[        UGR@                  GR                  5      U#G[        GR                  S*9n$O\[g        U[h        GR                  5      (       a1  T RL                  RN                  GR                  GR                  5       n$O[        S+5        T RL                  RN                  GR                  GR                  G[        GR                  " S,S-T RT                  5      [        W$5      U$U#S9n%G[        U#U$S.S S.U$S/9U%GR@                  GR                  S0'   U$GR@                  GR                  n&[g        U&G[        GR                  5      (       d
   U& S135       eT RL                  RN                  GR                  R                  G[        U$U#S 5      5        [g        U[h        GR                  5      (       a  U$OU$S2:H  n'G[        U%U'5      $ [g        XU45      (       a6  T R+                  [,        R                  5        G[        US S T R:                  S9$ XL a
  G[        S2S39$ XL a
  G[        S4S39$ [g        U[h        GR                  GR                  GR                  5      (       ad  T R+                  [,        R                  5        G[        UGRD                  UGR                  UGR                  UGR                  /T R:                  S59$ G[        GR                  " U5      (       a4  T R+                  [,        R                  5        G[        UT R:                  S9$ G[b        GRd                  " US6S.5      (       a5  T R+                  [,        RF                  5        G[        US7T R:                  S9$ G[        U5      (       a5  T R+                  [,        RF                  5        G[        US8T R:                  S9$ UG[        GR                  L a  G[        T R:                  S9$ UG[        GR                  L d+  G[        GR                  S9:  a*  UG[        GR                  L a  G[        UT R:                  S9$ G[        U5      (       aT  G[b        GRd                  " US:S.5      (       a5  T R+                  [,        RF                  5        G[        US:T R:                  S9$ U[        GR                  L a4  T R+                  [,        R                  5        G[        UT R:                  S9$ U[@        GR                  L a4  T R+                  [,        R                  5        G[        UT R:                  S9$ [g        U[        GR                  5      (       aQ  G[        GR                  " U5      (       a4  T R+                  [,        R                  5        G[        UT R:                  S9$ G[        U5      (       a]  G[        U5      u  nn(U(b  [9        T R:                  U(5      T l        [        GR                  " U5      GR                  UT R:                  S9$ UG[        GR                  L a3  T R+                  [,        R                  5        G[	        T R:                  S9$ [!        UG[        GR                  5      (       a  G[
        GR                  " U5      (       ae  T R+                  [,        RF                  5        G[        UT R:                  S9nT RL                  RN                  Rb                  Re                  X5        U$ [g        U[        GR                  G[        GR                  45      (       ae  T R+                  [,        R                  5        G[        UT R:                  S9nT RL                  RN                  Rb                  R}                  X5        U$ [g        U[        GR                   5      (       a  [g        UGR                  [h        Rj                  Rl                  [h        GRR                  GR                  GR                  45      (       a  []        T RL                  [9        T R:                  S5      S9" UGR                  5      n)U)(       a  [g        U)G[        5      (       d   S;5       eT R+                  [,        R                  5        G[        UGR                  U)T R:                  S9$ [g        U[        GR                   5      (       a  G[#        U5      $ [g        U[        GR$                  5      (       a  G['        U5      $ G[)        [        U5      [        5      (       aB  G[)        UG[*        5      (       a+  T R+                  [,        R                  5        G[-        U5      $ G[)        [        U5      [        5      (       Ga#  U[h        GRR                  GR.                  GR0                  [h        Rj                  GR2                  [h        Rj                  GR4                  4;   a0  [        GR                  " U5      GR                  UT R:                  S9$ U[h        R                  GR6                  L aA  T R+                  [,        R                  5        G[8        GR:                  " T RL                  5      $ T R+                  [,        R                  5        G[=        UT R:                  S9$ G[>        GR                  " [        U5      5      (       Ga  S4S<KGJ n*GJ!n+  [h        GRD                  GRF                  GRI                  U5      (       a  T RL                  RN                  GR                  GR                  G[        GR                  " S,S-T RT                  5      [        U5      UT R:                  S9n,G[        T R:                  US.S S.U5      U,GR@                  GR                  S0'   G[>        R4                  " U,UT R:                  S9$ G[K        US=5      (       d  T GRM                  U5      $ [2        GRN                  " []        T RL                  U+" T R:                  5      5      " UGRQ                  5       GRS                  5       5      5        [2        GRN                  " []        T RL                  U*" T R:                  5      5      " UGRU                  5       5      5        [h        GRD                  GRF                  GRW                  T RL                  RN                  GRX                  U5      n-T RL                  RN                  GR                  GR                  G[        GR                  " S,S-T RT                  5      [        U5      U-T R:                  S9n,G[        T R:                  US.S S.U-5      U,GR@                  GR                  S0'   G[>        R4                  " U,U-T R:                  S9$ [g        U[>        [@        RD                  45      (       Gaz  [        U5      GRZ                  [>        GRZ                  L GaQ  T R+                  [,        RF                  5        T R+                  [,        R.                  5        T RL                  RN                  RP                  RS                  T R:                  RU                  5       5        U 4S> jm2[?        U24S? j[W        [Y        U5      5       5       5      n[a        U[g        U[@        RD                  5      (       a  [@        RD                  O[>        G[]        5       T R:                  S@9n.S#U.Gl/        G[a        UU.T R:                  SA9nT RL                  RN                  Rb                  R}                  X5      $ [g        U[        5      (       GaF  [        U5      GRZ                  [        GRZ                  L Ga  T R+                  [,        RF                  5        T R+                  [,        R.                  5        G[c        [        GRe                  U5      5       Vs/ s HE  n[2        R4                  " [        GRg                  UU5      [        T R                  5       U5      S9PMG     nnG[i        UT R:                  G[]        5       SB9n/G[j        R4                  " UU/T R:                  SC9nT RL                  RN                  Rb                  R}                  X5      $ [g        UG[l        5      (       Ga  T R+                  [,        RF                  5        T R+                  [,        R.                  5        G[c        G[l        GRe                  U5      5       Vs/ s HG  n[2        R4                  " G[l        GRg                  UU5      G[o        T R                  5       U5      S9PMI     nnG[q        UT R:                  G[]        5       SB9n0G[s        UU0T R:                  SD9nT RL                  RN                  Rb                  R}                  X5      $ G[)        [        U5      G[t        5      (       a4  T R+                  [,        RF                  5        G[w        UT R:                  S9$ G[y        U5      (       ay  T R+                  [,        RF                  5        G[z        R4                  " T RL                  UT R:                  S9nT RL                  RN                  Rb                  R}                  X5      $ [g        UG[|        5      (       a  [I        SE U 5       5      (       a  U Vs/ s H#  n[        R5                  T RL                  U5      PM%     nn[        T R                  5       R                  [,        R.                  5      T R                  5       R                  [,        GR                  5      5        G[        UT R:                  S9$ [        SF5        g T GRM                  U5      $ s  sn
f s  snf ! [         a     GN~f = fs  snf s  snf s  snf )GNr   )
has_tritonhas_triton_tma)	Autotuner)JITFunctionc                       \ rS rSrSrg)*VariableBuilder._wrap.<locals>.JITFunctioniB  r   Nr   r   r   r   r  r  B      r   r  c                       \ rS rSrSrg)(VariableBuilder._wrap.<locals>.AutotuneriE  r   Nr   r   r   r   r  r  E  r  r   r  )create_1d_tma_descriptorcreate_2d_tma_descriptorc                      g r   r   r   r   r   r  7VariableBuilder._wrap.<locals>.create_1d_tma_descriptorO      r   c                      g r   r   r   r   r   r  7VariableBuilder._wrap.<locals>.create_2d_tma_descriptorR  r  r   r   )	tuple_clsr   c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr   r  r  s     r   r0  (VariableBuilder._wrap.<locals>.<genexpr>s  s     QLq,77::Lr  c                 
  > T(       a  [         R                  " U5      nUnO0[        TR                  5       U 5      n[        R                  " X5      n[        TR                  5       U5      n[        R                  " X%5      nX64$ r   )rq   r  r<   rL  r   r>   )	ir  r  r  r  r  rA  r  r   s	          r   r  .VariableBuilder._wrap.<locals>.build_key_value  si    *11!4C!"J!3DOO4Eq!IJ-44QCC01BJO+221Cz!r   c              3   @   >#    U  H  u  nu  p#T" XU5      v   M     g 7fr   r   r.  r  r  r  r  s       r   r0  r    (      !FIAv  a((!F   default_factory)r  r   )user_clsr   c              3      #    U  Hd  n[        U5      [        R                  L =(       a    UR                  S :H  =(       d'    U[        R
                  R                  R                  ;   v   Mf     g7f)r   N)rI  r{  BuiltinMethodTyper   r   rt  _pytreeBUILTIN_TYPESr.  xs     r   r0  r    s\      	.
  aE333O8O 7 U[[((6667
 s   A,A.rA  r   funcargskeywordsz*functools.partial with non-literal keyworddtypesaved_tensors)r   r  __self__r    apply)r/  c                    > [        [        R                  R                  R                  R
                  5      R                  T R                  T R                  R                  R                  R                  5       40 5      $ r   )r   r   _dynamoexternal_utilsFakeCompiledAutogradEngineexec_final_callbacksr   r  r  r9  get_ca_final_callbacks_varr   s   r   r  'VariableBuilder._wrap.<locals>.<lambda>Z  sZ    ,MM00KK``-GGWW^^00KKMOr   TzHDirectly using invoke_subgraph is not supported. Use mark_compile_regionstreamr   r   )	stream_iddevice_indexdevice_typeenter_result)dynamic_dimzaunbacked symint input is not supported yet. If you need this feature, please file a github issue.[^a-zA-Z0-9]+r)  F)r   r   grapharg is not a basic Symbol.rk   )rankr%   )target_valuesr   __script_if_tracing_wrapper__original_fn__wrapped__)      r  z"Failed to produce a valid self obj)FlattenScriptObjectSourceScriptObjectQualifiedNameSource__obj_flatten__c                    > [        TR                  5       U 5      n[        R                  " X5      n[	        TR                  5       U5      n[        R                  " X%5      nXF4$ r   )r<   rL  r   r  r>   )r  r  r  r  r  r  rA  r   s          r   r  r    sQ    /0A1E
)00?01BJO+221Cz!r   c              3   @   >#    U  H  u  nu  p#T" XU5      v   M     g 7fr   r   r  s       r   r0  r    r  r  )r  mutation_typer   )r  r   )r   r  )tuple_vtr   )list_vtr   c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr   r  r  s     r   r0  r  J  s     A5a#..q115r  z2dict_keys with non-constant keys are not supported(@  torch.utils._tritonr  r  triton.runtime.autotunerr  triton.runtime.jitr  $triton.tools.experimental_descriptorr  r  rZ  getrI  r  r-  r"   r_   r&   traceable_tensor_subclassesra  rZ   r:  r/   SEQUENCE_LENGTHr`   r   r  getattrr9   r   r   r  rd  defaultdictOrderedDictr  r  r  r  r  guard_on_key_orderr@  r  	enumeraterS   rz   r4  r  ry   r9  r  r   r   r]  Modulewrap_modulerq   r  rm  	overridesTorchFunctionModer   r?  	frozensetSourcelessBuilderr  r|   enumEnumDispatchKey_C
_functorchTransformTyperr   r   is_reorderable_logging_functionBUILTIN_MATCHloggingLoggerr  r   r]   rM   rX   rN   	functoolspartialrL  r  r  r  r@   r  r  r-   r>   r0   rP  DICT_KEYS_MATCHr   r\   r   r~  genericr  asarrayr*   is_numpycallabler   is_numpy_dtyper   is_numpy_type_infoiinfor   r   can_rewriteautogradfunctionFunctionMetar   FunctionCtxr  RuntimeErrorrb  r   r   r{  
MethodTyper  r   _ImperativeEnginer   r  r  r  _exec_final_callbacks_stubr   lookup_callableis_callable_allowed!has_user_defined_allowed_in_graphcreate_with_sourcenumberwrap_unspecialized_primitiver   _higher_order_opsinvoke_subgraph
NAME_MATCHr   makecudaStreamContextr  rw   Streamcreate_proxyr  r  r  rd   noderx   device_SDPAParamsr   pyfunctorchFuncTorchInterpreterr   Eventrt  store_user_object_weakrefget_user_object_from_idrt   _TensorMetar   
contextlibnullcontextr+  getattr_staticru   r   is_matching_objectoptim	OptimizerrG   r   DispatchKeySetDISPATCH_KEY_SET_MATCHr   r   is_group_member_typer   is_process_groupr   is_device_meshEQUALS_MATCHr   is_placement_typer   is_placementr1  r2  r   r   r
   r=   has_hint	shape_env$create_unspecified_symint_and_symbolinthintr   DYNAMICSymBoolcreate_unbacked_symintroot_tracercreate_graph_inputrn  subr   metaexprsympySymboltracked_fakesTrackedFaker   r   r   ampautocast_modeautocastrs   
fast_dtype_enabled_cache_enabledr   is_matching_clsr   rY   	tracebackclear_framesr   sysexc_infoversion_info	exceptionr   rW   wrapsr   
namedtupler   r  r   is_supported_builtin_methodri   r<  randomRandomr   r   is_supported_random_obj
ModuleTyper)   DummyModuler   r  TreeSpecro   r   __func__GetSetDescriptorTyper   MethodWrapperTyper   
issubclassBaseExceptionr   ru  BackwardHookr^  Buffer _unsafe_preserve_version_counterrv   constructorr   r   r  r   _libraryfake_class_registrytracing_with_realr   wrap_user_definedrealize_all_typequalified_namer  maybe_to_fake_obj	fake_mode__new__rm   should_reconstruct_allr   rk  __len____getitem__r   r   rc  rD   r   r   r   r   rV   r   rQ   r{   )3r   rA  r  r  r  r  r  r  type_dispatchid_dispatchr  r  r  factory_sourcevarr  r  func_srcfunc_objr  args_sourcer  argr  keywords_sourcer  	dt_sourceactual_saved_tensorsr  rR  saved_tensors_sourcestream_source
stream_varstream_proxyevent_proxyr   
new_symintsym_node_proxysym_exprtracing_symint	attr_nameself_objr  r   proxyfake_script_objr  r  r  r  r  s3   `                                                @@r   r=  VariableBuilder._wrap9  s2   B<<:6     ++-11$u+>$ u-- '')--bi8"tU++ )//66554
 4
 ##E**5!! < <= .d5k:
 ;D	 $**E(%dkk48 ;   ($u+dkkF MED+"9"9;;R;RSTT 7 78QEJJLQQI " 1155dkk6F6F6HI""  !*+>u+E!F F
 e[4455!+DKK9J!K,K$3DGG^$L--%  ;; +T%[ 77>>..<<UKKuxx//##E**((//$$U++u@@AA+E$++FCGGNN''==eIJE9%%# 	.
 	.
 	+
 	+
 DII5a&--dggq95EI 5 56$U4;;??DIIu00%((2E2E2S2ST
 
  5 56eDKK@@>>uEE  : :;$U4;;??w~~.. ; ;<(t{{CC '',DKK@@&&1EEy0011!$//"3V<H&tww9%**EHD$T__%6?K#EJJ/3#DGG];-JKCP 0
 H():JGO,,.1'22155!"NO-GG.B / !,,\-D-DE**<+G+GH&&|'C'CD
 ,HdHEEu 5 56!{{  ^
5"** = =**2::e+<==!!%((2I2E?? ++!,,
 !t{{;;''.. 5 56%eDKK@@++E22%**##L$;$;<&t{{G<	i22<3H3HIJ##L$9$9:(t{{CC.::5AA ; ;<4;;{{ 
 E5>>22??@@ ; ;<+{{  u~~66BBCC#' ',':':$ Mkk,,\-D-DEFF.66'1$++'O$(33L4P4PQ &&:;DAq!((' GG]3G%K < 6"77>>..DD/;;"0"?  ue..//z40%..2I2I2V2V  z2.'9$??  ; ;<"(NN:dkk*+U 	  uxx99:: 5 56)%DD}}++FFaab  ; ;<!  e__!<!<U!C!O..u55CG@..u5HHdkk I   RJubii0044U;;233//???^  7 79P9PQ388t{{SSuzz7788 5 56&t{{H=M(-@NJ(//DDu||,, 5 5677>>66U!&$)$6$6#(#4#4		L l//7!{{	   4 466 7 78%,,TWWeT[[IIu//;;PPQQ 5 56/66u{{++ 5 56MM99%@''..55##;;E	K k..6 {{  uehh2233;;;)%DD5*0011&&undCK 7 78&dkk::&99%@@ 7 78.uT[[IF77>>..DDUSSu{{4455 5 56)$++6DK$U4;;??u3344 C CD)%00#88??)%DD!22599 5 56'dkkBB..u55 9 9:%eDKK@@#55e<< 5 56)%DD++E22 9 9:${{ 
 uI++5	!>> ; ;<$U4;;??%   eU\\22 %dkk2 
 zz""$$GGNN,,QQEJJOO,$.$6$6 R   eU]]33!%!9!9!P!P!RJ "{ "WW^^77JJ'dii8Z 	 K N 4<#-4N$$Z0 "++Hh55 *345 GGNN((//JPT0UV )==
:QR?  #>>BBY788 5 56'{{	  ..A66..A66uyy66??@@ 5 56'LL$$NN((	 {{  *99%@@ ; ;</dkkJJ##E+H%PP 7 78.t{{  +511 7 78.umDKKXXi,,,$DKK88cll"'ES]],B&uT[[AA#E**w/E/E(%0
 0
  7 78.,T[[  ioo% 5 56)%DDk,,, 5 560t{{KK5**
 
#??FF 5 56(t{{CC#E**?FE9 $(i@%%e,??dkk @   fmm# 5 56&dkk::E6==))n.T.T/
 /
  7 78#E$++>FGGNN''55eDM  0 0-2K2KLMM ; ;<){{F GGNN''==eLMu//00ZNNUXX__ekk.A.A.J.JK6
 6
 '
4;;
 CnnH 
8_ E E 4E  ; ;<%{{ 
 u99:: ,E22u6677
 )//UT**z%/O/O 5 564U;;UT**!!..""  #))%0CC$++ D   GGG##L$?$?@5AA$''JJ  5 56+{{  '66tE{CC 
 ~~11CCEJJ22EEFF+S$))<K;;	 F  /7KKtUE/


+ 177;;  5"344--e44  ++)H)UVKKM002  ++)B4;;)OP))+ $nn@@RR((%O GGNN..AA'dii8U{{	 B E +3UE4+EJJOOJ' -33{{  ut[%<%<=>>U##t||3  7 78 < <= GGNN--11$++2B2B2DE"  !*+>u+E!F F
 ( "%)@)@AA  ++35{{	G .2G*,UGDKKXF77>>..DDUSSu%%$u+*=*=*N 7 78 < <= u}}U34
 5A	 $**%%eQ/():A> 5   %t{{:O:QH .44F 77>>..DDUSSt$$ 7 78 < <= t||E23
 4A	 $**$$UA.,T__->B 4   #t{{:O:QG -UGDKKXF77>>..DDUSSU^44 7 78)%DD '' 7 78,33DGGU4;;WF77>>..DDUSSy))A5AAA HMMu!*11$''1=uMOO%001M1MNOO%001J1JK *%DDRS))%00gH Jz   t*4 Ns?   <Bj*Bj$Bj! [ABj2`ABj7g*Bj<j!
Bj/j.Bj/c                    U R                  [        R                  5        [        XR                  S9n[
        R                  " [        U5      5      (       d  U$ U R                  R                  R                  R                  X5      $ r  )r:  r/   r  r   r   r7   "cls_supports_mutation_side_effectsrI  r  r  r9  r?  r   rA  r  s      r   r  !VariableBuilder.wrap_user_defined[  s]    L334*5E==d5kJJMww~~**@@OOr   c                 .   [         R                  (       aO  [        U5      [        R                  L a3  U R                  [        R                  5        [        R                  " US9$ U R                  [        R                  5        [        U[        5      (       a  [        S U 5       5      (       a|  U R                  R                  5       R!                  5       (       aO  U R                  [        R                  5        [#        U Vs/ s H  n[        R                  " U5      PM     sn5      $ [%        U5       VVs/ s H2  u  p2[&        R                  " U[)        U R+                  5       U5      S9PM4     nnnU R,                  R.                  R0                  R3                  S5      n[5        U R                  [6        5      (       Ga  U R                  R8                  [;        U5      ;   Ga  U R                  n[5        U[<        5      (       d   eU R,                  R.                  R>                  RA                  [B        RD                  " SSU RF                  5      [        U5      UUS9nSURH                  RJ                  S'   [M        [N        U R,                  UUS US	9n/ n	[%        URP                  5       H  u  p:[)        XcS
S9nXR,                  R.                  RR                  U'   [U        X   5      U
RV                  RH                  RJ                  S'   [X        RZ                  " [        R\                  [_        X   5      S9nU	Ra                  URc                  U5      5        M     [e        U	SS06  [g        UUS
S S
S9nXRH                  RJ                  S'   [h        Rj                  " U5      " X@R                  S9n[        U[<        [l        Rn                  45      (       a/  U R,                  R.                  Rp                  Rs                  X5      $ U$ s  snf s  snnf )NrA  c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr   r  )r.  items     r   r0  0VariableBuilder.wrap_listlike.<locals>.<genexpr>q  s     H%$$//55%r  r   r   r  r)  T	steal_arg)
target_clsr  r  example_valuesubclass_typer   Fbaseindexindex_is_slicetensor_dictrO  rk   )r   r   r   r  ):r&   specialize_intrI  r   rf  r:  r/   CONSTANT_MATCHrq   r  r  r_   rb  r  r   guard_sourceis_unspecialized_nn_moduler   r  r   r@   rL  r  r  local_scoper  r   rE   
local_namerT   rc  rd  re  rn  rf  r  rE  rg  wrap_fx_proxy_clsr   r  input_source_to_varrL   r  r$  r%  TENSOR_MATCHr$   r  rP  r0   r   r   cls_for_instancerd  re  r9  r  )r   rA  r  r  r  maybe_gmr   tensor_list_proxylist_variablerR  tensor_variablesource_irS  r  r  s                  r   rg  VariableBuilder.wrap_listlikec  sH     T%[EJJ%> ; ;<#**77 	L889 5%  H%HHH((*EEGG ; ;< E!RED"2"9"9$"?E!RSS %U+

 ,	  &&$T__%6: , 	 
 77>>--11&9KK
 
kk$$(;H(EE [[FeT**** $ : : M M'dii8U	 !N ! 8<""''4-)77'#"M F&/0C0C&D"(feT?N228<AUHB%%**//> ")) --]585L h11%89 'E 6**#( H 7?""''
3!2259&U%$ 1 123377>>..<<UKKK "S
s    P:9Pc           
         U R                  [        R                  5        [        [	        U5      5       Vs/ s H@  n[        U R                  [        U R                  5       U5      5      " [        X5      5      PMB     nn[        X0R                  S9nU R                  R                  R                  R                  X5      $ s  snf r  )r:  r/   TUPLE_ITERATOR_LENrk  rh   r4  r  rK   rL  rg   r   r   r  r9  r  )r   rA  r  r  r  s        r   rh  #VariableBuilder.wrap_tuple_iterator  s    L;;<
 -e45	
 6 DGG%?@QST%UV&u0 6	 	 
 'vkkBww~~**88GG
s   ACc                 B   U R                  [        R                  5        [        R                  " U5       Vs/ s H  n[
        R                  " U5      PM     nn[        X0R                  S9nU R                  R                  R                  R                  X5      $ s  snf r  )r:  r/   RANGE_ITERATOR_MATCHcopydeepcopyrq   r  r   r   r  r  r9  r  )r   rA  r  r  r  s        r   ri  #VariableBuilder.wrap_range_iterator  sv    L==> 6:]]55IJ5I!((+5IJ%eKK@ww~~**88GG Ks    Bc           
      Z   S Vs/ s H@  n[        U R                  [        U R                  5       U5      5      " [	        X5      5      PMB     nnU R                  [        R                  5        [        U[        5      (       a  [        X0R                  S9$ [        X0R                  S9$ s  snf )N)startstopstepr   )r4  r  r9   rL  r  r:  r/   r  r   rj  r   r   r   )r   rA  r  r  s       r   rl   VariableBuilder.wrap_slice_range  s    
 /	
 / DGGZ0A1%EF! /	 	 
 	L334eU## {{;; {{;;
s   AB(rS  c                 z   SSK Jn  [        R                  SU R                  R                  5       [        U5      5        U" XS9  XR                  R                  R                  ;   aT  U R                  R                  R                  U   nUR                  UR                  R                  R                  S   S'   g g )Nr%   )mark_static_addressz Marking static input %s, id: %s)rS  r  _dynamo_static_input_type)
decoratorsr  static_inputs_logdebugr   r  r-  r  r  r9  r  r  rE  rg  )r   rA  rS  r  r  s        r   mark_static_input!VariableBuilder.mark_static_input  s    4.0@0@0BBuI	
 	E/ GGNN///''..--e4C// IINN./JK 0r   c                 
   SSK Jn  [        UR                  5      S:X  a4  [	        S[        U5      S[        U5       S3/ [        R                  QSPS9  [        X5      (       a  [        R                  " UR                  S	S
5      (       a  [        U R                  S9$ U R                  [        R                   5        [#        U R                  S5      U l        U R%                  UR&                  5      $ [)        U[*        R,                  R.                  [*        R,                  R0                  [*        R,                  R2                  45      (       a   [4        R6                  (       d  [9        S5        [;        USS
5      (       a  [;        USS
5      (       d  [9        S5        U R                  [        R                   5        [=        XR?                  5       S9n[@        RB                  " [E        U5      5      (       d  U$ U RF                  RH                  RJ                  RM                  X5      $ [N        RP                  " XRF                  RR                  5      (       Ga  [)        U[*        RT                  RV                  RX                  RZ                  5      (       a*  UR]                  5       n[_        U R                  5      U l        U R                  [        R                   5        [*        R`                  R4                  Rb                  (       a  [e        5       nURg                  5        H  nU Ri                  XTS9  M     URk                  5        H  nU Ri                  XdS9  M     U(       a,  XRF                  RH                  Rl                  U Rn                  '   URp                  Rs                  S5      (       d  [;        URt                  SS
5      (       a  [w        XR                  S9nO[y        XR                  S9n[@        RB                  " [E        U5      5      (       d  U$ U RF                  RH                  RJ                  RM                  X5      $ [{        URt                  [*        R,                  R|                  R~                  R                  5      (       a6  U R                  [        R                   5        [y        XR?                  5       S9$ U RF                  RH                  R                  UU Rn                  U R?                  5       S9$ )Nr%   )OptimizedModuler   zUninitialized nn.Modulez6Attempted to trace an uninitialized nn.Module of type .z?Ensure your nn.Module instance has called `super().__init__()`.)gb_typecontextexplanationhints_torchdynamo_disableFr   	_orig_modz5TorchDynamo purposely graph breaks on RNN, GRU, LSTMs_is_fsdp_managed_module_fsdp_use_orig_paramsz3Dynamo only supports FSDP with use_orig_params=Truer  )z	torch.nn.z	torch.ao._dynamo_marked_static)B
eval_framer  len__dict__r.   rl   r'   
USER_ERRORr_   r+  rP  forwardr   r   r:  r/   r  r9   r  r  r   r   r]  RNNGRULSTMr&   	allow_rnnr-   r  r   rL  r7   r  rI  r  r  r9  r?  r(   is_dynamic_nn_moduleexportfxexperimentalproxy_tensor
_AttrProxyget_baser8   r  inline_inbuilt_nn_modulesr[   
parametersr  buffers
nn_modulesr  r   r*  r  r   r   r  paralleldistributedDistributedDataParallelregister_attr_or_module)r   rA  r  r  freezingpbs          r   r  VariableBuilder.wrap_module  s   0u~~!#1TU\]bUcTddef&11U	 %))%%emm5KUSS
 /dkkBB 7 78$T[[+>DK##EOO44 uuxx||UXX\\588==IJJ$$QR53U;; 5"95AAST  7 780?PQFAA$u+NN77>>..DDUSS00GG
 %!6!6!C!C!N!NOO(-dkk: 7 78}}##==02))+A**1*= , A**1*= )  <AGGNN--dii8**+EFF'!8%K K >eKKX6u[[QAA$u+NN77>>..DDUSSOOUXX..::RR
 
  7 780?PQQ77>>99		( :  r   c                    [         R                  (       dz  [        U5      [        L ah  [	        XR
                  5      (       a=  U R                  [        R                  5        [        R                  " XR
                  S9$ U R                  U5      $ [         R                  (       d#  [        U5      [        L a  U R                  U5      $ U R                  [        R                  5        [        R                  " XR
                  S9n[        U[         ["        45      (       a/  U R$                  R&                  R(                  R+                  X5      $ U$ )Nr  )r&   r  rI  r_  r   r   r:  r/   r  rq   r  wrap_symintspecialize_floatfloatwrap_symfloatr   rc  setr  r  r9  r  r  s      r   rm  VariableBuilder.wrap_literalU  s    $$e); *%==##L$?$?@'..U;;OO''..((T%[E-A%%e,, ; ;<%,,5MF%$--ww~~22@@OOMr   c                     [        U5      (       a/  [        U5      U R                  R                  L a  [	        SS5      eg g )Nz*Cannot wrap a Tensor that has already beenz"wrapped by this instance of Dynamo)r   r   r  r  r,   r  s     r    assert_not_wrapped_by_this_graph0VariableBuilder.assert_not_wrapped_by_this_graphg  s=    5>>1%8DGG<M<MM*<4  N>r   c           	         U R                  5       nXR                  R                  R                  ;  d   e[	        U5      S Ln[
        R                  (       at  U(       dm  [        U[        R                  R                  5      (       d*  U(       a=  UR                  5       R                  5       (       a  U R                  U[        5       S9  SnU=(       aQ    [
        R                  (       + =(       d5    [        5       =(       d$    [        R                  R
                  R                   nUR                  5       R#                  5       (       d  U(       ab  UR                  5       R%                  5       (       d?  U R'                  U5        U R                  R                  R)                  XR*                  US9$ [	        U5      S:X  a^  U R-                  [.        R0                  5        U R'                  U5        U R                  R                  R)                  XR*                  US9$ [3        U5      (       aV  U R'                  U5        U R                  R                  R)                  U[4        R6                  " SSU R*                  5      US9$ [9        U5      [
        R:                  ;   a  [9        U5      nO[9        U5      [        R<                  [        R                  R                  [        R>                  R@                  RB                  [        R>                  RD                  RF                  4;   d   [I        U5      (       d   [9        U5      5       eS nX R                  R                  RJ                  ;   nU(       a#  U R                  R                  RJ                  U   $ [	        U5      S:X  a  U R-                  [.        R0                  5        U R'                  U5        0 n[9        U5      [
        R:                  ;   aB  [M        U R                  XRN                  5      US'   U R-                  [.        RP                  5        [        U[        R<                  5      (       aY  URR                  (       aH  [        U[        RT                  RV                  RX                  RZ                  5      (       d  []        S5        [        U[        R<                  5      (       aK  [_        U5      (       a;  U R                  R`                  (       a  [
        Rb                  (       d  []        S	5        [e        U5      (       a:  [g        U5      b.  URh                  [g        U5      Rh                  :w  a  []        S
5        [k        XR                  SUS9nU R                  R                  Rl                  Ro                  [4        R6                  " SSU R*                  5      [9        U5      UUS9n	[q        U R                  X5        [s        SU R                  U	UUUS.UD6n
URu                  5       (       a*  [k        URv                  U R                  [y        US5      SS9  [.        Rz                  n[        U[|        5      (       a   [        U5      (       a  [.        R                  nU R-                  [        R                  " U[        U[        5      (       a  UO
[        U5      S95        [I        U5      (       a  U R-                  [.        R                  5        U R-                  [.        RP                  5        [        [        U5      R                  [.        R                  5      5        UR                  5       u  pU HT  n[        X5      n[y        U RN                  U5      n[        R                  " [        U R                  U5      " U5      5        MV     XR                  R                  RJ                  U'   SU	R                  R                  ;  d   e[        U5      U	R                  R                  S'   U
R                  R                  R                  S   n[        U5      U R                  R                  La  [        S5      e[        X!SU5      nUU	R                  R                  S'   U
$ )Nr  Tr   guardedr  r)  torch_function_fn3torch.compile does not support strided NestedTensorz-torch.compile does not support sparse TensorszInconsistent dtype between tensor and its gradient. This can happen in FSDP and crashes meta tensor creation. This is potentially a workaround. Fixing it correctly requires some design around FSDP + torch.compile.r  r   r   )r  r  r  r  r   _base)r  r   r   r  r  r  z(Wrapped Tensor must be this graph's fakeFr  r   )WrL  r  r  r9  rU   r&   r  r   r   r]  r^  r  r  r  r[   r  prepare_freezingis_specialized_nn_moduleis_fsdp_moduler  r  r  r:  r/   r  rB   rn  rf  rI  r  r   r  r   r   r_  r`  r"   r  r   r   r  	is_nestednested	_internalnested_tensorNestedTensorr-   r   r   capture_sparse_computer   r   r  wrap_to_fake_tensor_and_recordrd  re  cache_real_value_when_exportwrap_fx_proxy_is_viewr!  r9   r  rA   rC   NOT_NONE_MATCHr$  r%  rF   r$   TENSOR_SUBCLASS_METADATA_MATCHr0   rJ   rP  rY  __tensor_flatten__r  r   r  r4  rE  rg  rL   r  r   r  r,   r   )r   rA  r   is_static_inputmake_graph_attributer  is_duplicate_tensoroptionsr  tensor_proxyr  
guard_typeattrsr)  attrinner_valueinner_sourcefake_tensor_valuer  s                      r   ra  VariableBuilder.wrap_tensorn  s   " GGNN777771%8D ,,#5%(("4"455 v224OOQQ ""50E0G"H"O.  
000 5$&5}}##44 	 !::<<@T%%'668811%877>>99yy :   #5)Y6  5 5611%877>>99yy :   f%%11%877>>99'dii8 :   ;&<<<$ !KM;""!!--88!!33DD	# 
 /u55C
 8<E{C 6 !M %(J(JJ77>>55f=="5)Y6 5 56 	--e4;&<<<+B,G'(  7 78 uell++uell&<&<&J&J&W&WXXOP uell++e$$WW^^6+H+H
 IJ %  % ,y/555D  7ggf
 ww~~11DDFF#S$))4K	 E 
 	%TWWlB' 
ww''
 
 >> +77!&'2	 "..
fj)).Fv.N.N%44J "&*;<< &u-		
 )// K KL 7 78&v.99,:S:ST //1HE%e2)$++t<#//#DGG\:;G  6E**62L$5$5$:$::::0DU0K}- ,1166;;OL019J9JJ*+UVVF52CD-5z*r   c           	         [         c   e[        U[         R                  5      (       d   e[        U R	                  5       5      nSSKJn  UR                  R                  (       + nU(       a   SUR                  l        [        R                  " 5           UR                  U5      nU(       a  SSKJn  U" U5      nS S S 5        [(        R*                  " [-        U R.                  U5      " W5      5        [1        UU R.                  SUS9nU R.                  R2                  R4                  R7                  [8        R:                  " SSU R<                  5      [?        U5      UUS	9n	[A        U R.                  X5        S
U0n
[C        S[D        U R.                  U	US.U
D6nXR.                  R2                  RF                  U'   URH                  RJ                  RL                  S   n[O        UUSUSUS9nXRJ                  RL                  S'   U$ ! [         a/    [        UR                  [         R                  5      (       d   e GNf = f! ["         a  n[%        ['        U5      5         S nAGNS nAff = f! , (       d  f       GN= f)Nr   )_utilT)clone_preserve_stridesFr   r  r)  r   r   r  r  r  r  r  r   r   r   r   r  r   )(r~  r   r  rF   rL  torch._numpyr?  flags	writeable
ValueErrorr  nditerr   temp_restore_stack_try_convert_to_tensortorch._prims_commonr@  rQ  r-   strr   r  r4  r  r+  r  rd  re  rn  rf  r  rI  r,  r  r   r  r  rE  rg  r   )r   rA  r   r?  readonlytensor_valuer@  er  r  r5  numpy_ndarray_variabler  s                r   r  "VariableBuilder.wrap_numpy_ndarrayP  s    ~~%,,,,"4??#45&{{,,,9(,% 1CCE&$;;EBJ#9,#GL F 	''(H(VW6ww	
 **==FF#S$))4	 > 
 	%TWWeBV$!2 "
+ww'	"

 "
 6L**62.4499>>O #%+
 '/


#%%u  9 "%**bii88889 ' &c!f%%& FEsB   -H I/&I5I ?I 
I,I'!I/'I,,I//
I>c           	         [        U5      [        L d   eU R                  U R                  R                  R
                  ;   a-  U R                  R                  R
                  U R                     $ U R                  R                  R                  n[        R                  " 5       R                  (       a`  UR                  5       n[        U5        U R                  R                  R                  R                  [        X0R                  S 5      5        GOA[!        U R#                  5       5      (       Gd  [$        R&                  R(                  R*                  (       a=  U R-                  [.        R0                  5        [2        R4                  " XR                  S9$ U R                  R                  5       n[7        U R                  U[8        R:                  " U5      U R                  R=                  5       R?                  5       S9n[A        U R                  R                  5       5      nU R                  n[C        U[D        5      (       a  URG                  5       nU R                  R                  5       [I        5       ;   a?  [J        RM                  SU R                  R                  5       5        [N        RP                  nO[(        RR                  (       a  URT                  [V        L a  [Y        5       nO[C        U[Z        5      (       a<  UR\                  b/  [_        UR\                  5      R                  USS05      S   (       d  [(        R`                  (       d  [N        RP                  nO3U R-                  [.        R0                  5        [2        R4                  " US9$ URc                  UU R                  US9nU R                  R                  R                  R                  [        X0R                  S 5      5        O][!        U R#                  5       5      (       d   eU R-                  [.        R0                  5        [2        R4                  " XR                  S9$ [C        U R#                  5       [d        5      (       a   e[g        U R#                  5       Ri                  [.        Rj                  5      5        SU R#                  5       0n	U R                  R                  Rl                  Ro                  [p        Rr                  " S	S
U R                  5      [        U5      UU R#                  5       S9n
URt                  Rv                  n[C        U[x        Rz                  5      (       d
   U S35       eXR                  R                  Rl                  R|                  U'   [        X40 U	D6nXR                  R                  R
                  U R                  '   [!        U R#                  5       5      (       d  U R                  R                  (       aB  [C        U R#                  5       [Z        5      (       d  [        SU SU R#                  5        35      e[        U R#                  5       USS SUS9U
Rt                  R                  S'   U$ )Nr  r  &%s marked dynamic via source whitelistr   Fr  )r   r  r   r  r)  r   r  =Dynamo attempts to add additional input during export: value=	, source=rB  r  )DrI  r_  r  r  r  unspec_variable_mapr]  r   r  #force_unspec_int_unbacked_size_likerc  r   rk  r  rl  r   rB   rL  r   r  r&   r  r:  r/   r  rq   r  r6   r4   make_scalarr  r  r   r   r;   r  get_dynamic_sourceslogr  r   ra  automatic_dynamic_shapesscalarr2   $get_automatic_dynamic_shapes_mark_asrE   dynamismr  assume_static_by_defaultr^  rH   r0   rP  r  rd  re  rn  rf  rE  rh  ri  rj  bound_symbolsr   r   AssertionErrorr   rg  )r   rA  r]  wrapped_valuer  frame_state_entrynormalized_source_namebase_sourcer  r5  r  r  
unspec_vars                r   r  VariableBuilder.wrap_symint  s   E{c!!!99:::77>>55dii@@GGNN,,	CC%<<>M%m4GGNN((//M;;= $DOO$566}}##22 ##L$?$?@'..U;;OO;;##%D 9#//6+/;;+C+C+E+`+`+b	! &;4;;;K;K;M%N"++K+}55)224{{!%8%::		BDKKDTDTDVW(00//%,,<BD;44((4--.223IAu:V 44(00 ##L$?$?@'..U;;%JJ{{' K M GGNN((//M;;= &doo&78888 ; ;<#**{{KKdoo/1BCCCCdoo'22<3J3JKLT__./**==FF#S$))4??$	 > 
 !%%**(ELL11WhZ?V3WW1=B""00:$UEWE
8B**4995!$//"344ww~~j1BK&P&P$STaSbbklpl{l{l}k~  +3!#( #0+EJJOOJ' r   c           
      
   U R                   U R                  R                  R                  ;   a-  U R                  R                  R                  U R                      $ [	        U R                  U R
                  R                  5       [        R                  " U5      U R
                  R                  5       R                  5       S9n[        R                  R                  R                  (       d  [        U R                  5       5      (       d  [         R"                  " U5      (       dr  [         R$                  " U5      (       dW  [        R&                  R                  R(                  R*                  (       d$  [-        SS5      (       d  UR.                  [0        La=  U R3                  [4        R6                  5        [8        R:                  " XR
                  S9$ [        R<                  " U[        R>                  S9n[        R@                  RB                  RE                  U5      (       a=  U R3                  [4        R6                  5        [8        R:                  " XR
                  S9$ [G        U R                  5       [H        5      (       a   e[K        U R                  5       RM                  [4        RN                  5      5        [Q        U R                  5       5      nXAS.n[S        X0R                  SUS9nU R                  R                  RT                  RW                  [X        RZ                  " SS	U R                   5      []        U5      UUS
9n[_        U R                  Xs5        [a        [b        4U R                  UUS.UD6n[G        U[b        5      (       d   eXR                  R                  R                  U R                   '   U R                  Rd                  (       aB  [G        U R                  5       [f        5      (       d  [i        SU SU R                  5        35      eS n	URj                  Rl                  Rn                  S   n[q        U5      (       d   eUn	U	Rr                  U R                  Rr                  L d   SU	Rr                   S35       e[u        U R                  5       USU	SUS9URl                  Rn                  S'   [w        U R                  U R                  R                  Rx                  " SS/[{        U/0 5      Q76 5      n
U R                  R                  R|                  R                  [        U
R                  U R
                  S 5      5        [        5       R                  SSSS9  U
$ )NrR  z.pytorch/compiler:unspecialize_float_killswitchFr  )r  )r   	raw_valuer   r  r)  r   r  r  r  rT  rU  r  fake mode (^) from fake tensor metadata doesn't match mode({self.tx.fake_mode}) from InstructionTranslatorTrB  r  call_methodr  tensorify_float_attempt)	overwrite)Dr  r  r  rV  r6   r   r4   rX  r  r  r   r  r&   r  rB   rL  mathisnanisinf	_inductortriton
cudagraphsr   r\  r2   r:  r/   r  rq   r  tensorfloat64r  r  is_gradtrackingtensorr   rH   r0   rP  r  r?   r+  rd  re  rn  rf  rI  r,  r  r   r   rE   ra  r  rE  rg  r   r  r   r-  rD  rb   rk  r  rl  sym_numr   r  )r   rA  rc  rb  r   r5  r  r  rf  r<  r   s              r   r  VariableBuilder.wrap_symfloat  s)    99:::77>>55dii@@5GGKK++E2'+{{'?'?'A'\'\'^	
 MM  11!$//"344zz%  zz%   %%,,77OQVWW ''|; ; ;<#**{{KK U%--@
 8844]CC ; ;<#**{{KK doo/1BCCCCdoo'22<3J3JKL #4??#45#8 7ggv
 **==FF#S$))4	 > 
 	%TWWeC&'
ww'	

 

 *&ABBBB8B**499577>>*T__->"L"L OP]^ghlhwhwhygz{  !"((--22?C}%%%%) **dgg.?.?? 	
+556 7? ?	
?  '/OO#),'



# GGGGNN'' #J<4
 	$$++K		4;;PT,UV!!";TT!Rr   c           	      <   U R                   U R                  R                  R                  ;   a-  U R                  R                  R                  U R                      $ [        R
                  " U5      n[        U R                  5       [        5      (       d6  [        U R                  5       R                  [        R                  5      5        SU R                  5       0nUR                  SU05        [        X R                  SU R                  5       S9nU R                  R                  R                  R!                  ["        R$                  " SSU R                   5      ['        U5      UU R                  5       S9n[)        U R                  XR5        [+        [,        4U R                  UUS.UD6nX`R                  R                  R                  U R                   '   [/        U R                  5       5      (       Gd#  U R                  R0                  (       aB  [        U R                  5       [2        5      (       d  [5        S	U S
U R                  5        35      eS n[        U[6        5      (       a  UR8                  nO#UR:                  R<                  R>                  S   n[A        U5      (       d   eUnURB                  U R                  RB                  L d   SURB                   S35       e[E        U R                  5       USUSUS9UR<                  R>                  S'   U$ )Nr   ri  Fr   r  r)  r   rj  rT  rU  r  rk  rl  TrB  r  )#r  r  r  rV  r   rv  r   rL  rH   r0   rP  r/   r  updater+  rd  re  rn  rf  rI  r,  r  r   rB   r   rE   ra  rq   rA  r  rE  rg  r   r  r   )r   rA  rb  r5  r  r  rf  r<  s           r   r<  ,VariableBuilder.wrap_unspecialized_primitive  s   99:::77>>55dii@@U+$//+->??$//+66|7N7NOPT__./U+,6ggt?P
 **==FF#S$))4??$	 > 
 	%TWWeC&'
ww'	

 

 9C**4995!$//"344ww~~j1BK&P&P$STaSbbklpl{l{l}k~  !%*&677 * 0 0 * 0 0 5 5 : :? K=)))) -$..$''2C2CC /99: ;C CC
 +3!#'-#0+EJJOOJ' r   )r  r   r  )>r   r   r   r   __doc__rI   r  rF  r>  rL  r:  classmethodrZ  r$  	lru_cacherW  rn  ro  rp  rq  rr  rs  rw  rz  r}  r  r_  r   r   ro   r  r=  r  r	   rb  rc  ra   r   rg  rf   rh  rc   ri  rj  rk  rl  r   r   r  r  r]  r  r  rm  r  ra  r  r  r  r<  r   r&  r'  s   @r   r4  r4    s   =" " 
	"0
 ; ; $  $L+

 +
I'"7"7 I<
H4 	c8.4oEFF	G  4`1DPs PW5lJ)N#O Wr	H 	HH H<eE5L&9 <u|| D  g gR$ell ` `DF&PrhGR9 9r   r4  c                 `   [        U [        5      (       a  U R                  nO[        SU  35        / n[        R
                  " W5       HX  nS nU R                  (       a*  [        [        U R                  S5      UR                  5      nUR                  [        X4S95        MZ     [        U5      $ )Nz)Dataclass fields handling fails for type __dataclass_fields__r   )r   r   rA  r-   r  r  r   r>   r9   r  r  r   )objrA  r  fieldr   s        r   r  r    s    #011		A#GHE##E*::&3::'=>

F 	.uDE + r   c                     [        U [        R                  5      (       aZ  [        U [        5      (       dE  [        R                  " U 5      (       a  [        U 5      UL d  U R                  (       d  [        U 5      n U $ r   )r   r   r   r   _is_functional_tensorr   r%  rO   )rA  r  s     r   _clone_inputr    sZ    %&& uj)) ++E22'.);  &ELr   r%  c                     U UUUS.UEnUc  [        SS[        0UD6$ [        SS[        0UD6nUR                  U 5        U$ )N)r  r  r  r  r  r   )r  r   r   install_global)r  r  r  r  r5  kwargsr  s          r   r-  r-    sb     &&	
 F  ENEfEE"U.JUfUb!r   c                    U R                   (       a^  [        R                  R                  5          [	        X R
                  5      UR                  R                  UR                  '   S S S 5        g g ! , (       d  f       g = fr   )	r   r   r  DisableTorchFunctionSubclassr  r  tracerreal_value_cacherE  rj  s      r   r,  r,  	  sU    	yy XX2248D||9ELL))%**5 54	  54s   7A11
A?c                     Uc  [        XX#U40 UD6$ [        U[        R                  5      (       a  [	        XX#U40 UD6$ [        X1X%X@5      $ r   )_wrap_fx_proxyr   r   r   _wrap_fx_preexisting_tensorhandle_traced_output)r  r  r  r  r  r5  s         r   r  r  <	  sk     E-
CJ
 	
 
M5<<	0	0*E-
CJ
 	
 $u}
 	
r   c                    SSK Jn  [        U[        R                  5      (       d   S[        U5       35       e[        X5      (       d   eSU;   a.  US   b(  UR                  R                  R                  US   5        UR                  R                  S:X  a&  SUR                  R                  ;   d   SU S35       eO9SUR                  R                  ;  d   UR                  R                  S    5       e[        R                  R                  R                  5          [        U5      UR                   L a  O[#        XU5        UR$                  (       a]  [        R&                  R)                  5          [+        X1R                   5      UR,                  R.                  UR                  '   S S S 5        S	U [0        [2        4;   0nS
U;   a  US
   c   eUS
   US
'   [5        U4SU0UD6nUR6                  R
                  S:w  a&  [        U5      UR                   La  [9        SU 35      eS S S 5        [;        X1X%X@5      $ ! , (       d  f       N= f! , (       d  f       N,= f)Nr%   InstructionTranslatorBasez1_wrap_fx_preexisting_tensor expected tensor, got rR  placeholderr  zplaceholder z* doesn't have 'example_value' in node.metar   r   r  rg  zN`tensor` needs to be a `FakeTensor`wrapped by this instance of Dynamo. Found: )symbolic_convertr  r   r   r   rI  r  rR  r|  rE  oprg  r  rt  +_disable_saved_tensors_hooks_during_tracingr   r  r,  r   r  r  r  r  r  r   r   r+  rF  r,   r  )r  r  r  rv  r  r5  r  r  s           r   r  r  Q	  s!    =fell++ 
;DL>J+ b44447wx0<
		 12 zz}}%%**//1 	
5'!KL	
1 ejjoo5 	
zz/0	
5
 
			H	H	Jv&",,6(F;yy XX::<@LAELL11%**= = Z"$@ABF w&78+<+HHH&x0F83FLrLVLF==''r||;*>>DXG ; 
KD  EMVV1 =< 
K	Js&    AI57H>,A=I>
I	I
Ic                    SSK Jn  [        X5      (       d   eSU;   a.  US   b(  UR                  R                  R                  US   5        SUR                  R                  ;  d   UR                  R                  S    5       e[        R                  R                  R                  5          [        UR                  USS9nS S S 5        [        X1X%X@5      $ ! , (       d  f       N= f)Nr%   r  rR  r  T)allow_non_graph_fake)r  r  r   r  rR  r|  rE  rg  r   r  rt  r  rR   r  )r  r  r  r  r  r5  r  s          r   r  r  	  s     =b44447wx0<
		 12%**//1Xejjooo6V5WX1 
			H	H	J 'uzz2DQ	 
K  5=  
K	Js   .C
C'c                 >   SS K nSS KnSS Kn[        XR                  5      (       GaT  [        XR
                  R                  5      n[        XR
                  R                  5      n[        XR                  5      n [        UR                  U 5        UR                  R                  R                  X5        UR                  U 5      n	[        XR                   R"                  R$                  5      (       am  U R                  UR                  L aT  U(       a  UOUR                  n
U(       a  UR
                  R                  OU(       a  UR
                  R                  OU
U	S'   UR'                  U	5        U" U40 UD6$ [)        UR                  R*                  S5      (       ag  UR                  R*                  R,                  S:X  aC  [        UR                  R*                  R.                  UR0                  R2                  5      (       d.  UR                  R*                  UR4                  R6                  :X  a  [9        UR                  R*                  5      $ UR                  R*                  UR0                  R:                  :X  d.  UR                  R*                  UR<                  R>                  :X  a  [A        U 5      $ [C        XRD                  5      (       aI  [G        S U  5       5      (       a2  U  Vs/ s H  n[H        RJ                  " U5      PM     nn[M        U40 UD6$ [        U [N        [P        45      (       Ga  [        UR                  U 5        / n[S        U 5       H  u  pUc'  URU                  [H        RJ                  " S0 UD65        M/  URV                  RY                  S[Z        R\                  X.40 S9nSU;   a;  [        U [P        5      (       d   eUS   nUR_                  5       n[a        UUS	S
9US'   OUnURU                  [c        SUUUUS.UD65        M     [        XRD                  5      (       a  [M        X40 UD6$ [C        U [N        5      (       a  [e        U40 UD6$ [C        U [P        [f        45      (       a  [i        U40 UD6$ U Rj                  Rl                  S:X  d;  [)        U S5      (       d*   SU Rj                  Rl                   S[o        U 5       35       e[q        XRj                  40 UD6$ U b#  UR                  R*                  URr                  L a  [H        RJ                  " S0 UD6$ [        XRt                  URv                  URx                  45      (       aG  UR                  R                  R                  X5        [        UR                  U 5        [{        X 40 UD6$ [|        R~                  " UR                  R*                  5      (       a/  [        UR                  R*                  UR                  5      (       dB  UR                  R*                  [        5        VVs/ s H  u  nnUR                  PM     snn;   a-  [        UR                  U 5        [        X U R                  40 UD6$ [|        R~                  " UR                  R*                  5      (       a/  [        UR                  R*                  UR                  5      (       dB  UR                  R*                  [        5        VVs/ s H  u  nnUR                  PM     snn;   a"  [        UR                  U 5        [        X 40 UD6$ UR                  R*                  S:X  a<  UR                  R                  S:X  a"  [        UR                  U 5        [I        U 40 UD6$ U bp  [        XR                  5      (       aV  UR                  R*                  S:X  a<  UR                  R                  S:X  a"  [        UR                  U 5        [        X 40 UD6$ [        U [        5      (       Ga'  UR                  R*                  UR                  [        [Z        R\                  UR                  R                  UR                  [Z        R                  UR                  R                  R                  [        UR                  S[        5      [        UR                  S[        5      UR                  4
;   d4  UR                  R                  S:X  aG  UR                  R*                  S;   a-  [        UR                  U 5        [H        RJ                  " U 40 UD6$ [        XR                  R<                  R                  5      (       a%  SSKXJYn  [        UR                  U 5        U" U40 UD6$ [        U [        5      (       a  UR                  R*                  UR0                  R                  UR                  R<                  R                  UR                  R<                  R                  UR                  R<                  R                  S/[Q        [        R                  " 5       5      -   ;   a-  [        UR                  U 5        [H        RJ                  " U 40 UD6$ [        U [        [        [        45      (       aJ  UR                  R*                  [        L a-  [        UR                  U 5        [H        RJ                  " U 40 UD6$ [        U [        5      (       d  UR                  R*                  S;   a-  [        UR                  U 5        [H        RJ                  " U 40 UD6$ [        S[        U 5       SUR                  R                   SUR                  R*                   3-   SS9  g s  snf s  snnf s  snnf ) Nr   
class_typer   	set_statec              3   B   #    U  H  n[        U[        5      v   M     g 7fr   )r   r_  r  s     r   r0  'handle_traced_output.<locals>.<genexpr>	  s      3$1q
1cMs   r   )kindtargetr  r  r   Fr  rA  ztorch.return_types_fieldsz	expected z. == torch.return_types or named tuple but got queryrm  record_eventget_rankget_world_size)
bit_lengthrk   r   
is_integer)hex	__round__ztorch.* op returned non-Tensor  unsupported_operator)	case_namer   r   )etorch._functorch.vmaptorch._subclasses.fake_tensortorch._utilsr   r   r]  r^  r  r  r  rd   rE  r  current_tracertrack_unbacked_symbols
specializer  r   r   r|  r   r  r   r  r  	Generatorr}  set_rng_stater   _DisableFuncTorchrA  _is_in_bad_forkr   r_   rf  r  rq   r  r   rb  rc  r  r  r  rD  operatorgetitemr  r@   r  r   r!   r   r  r   rI  r   manual_seedr
   SymFloatrb  r   r+  r,  r  rC  r+   current_streamrx   rF  rJ  rt   r  r_  sym_intr  _utils_element_sizeseedmodr  vmap_validate_and_get_batch_sizer  r   _constrain_as_sizebackends
SDPAParamssdpar   r   _are_functorch_transforms_activeis_flash_attention_availablecan_use_flash_attentioncan_use_efficient_attentionr   r  r  r   r-   rl   )r  r  r  r5  r  r  r   is_parameter	is_bufferspecialized_propstensor_typer  sizesunpackedr  valproxy_ir   	options_ir)  device_interfacer   s                         r   r  r  	  s	    (-..!-1C1CD}hhoo>	
 %]LLA%**m4
 			  77M&11-@ }&7&7&C&C&N&NOO''2<<7+8-ellK   ""  XX__  l+ 	()%+7++

!!:..JJ&&+5uzz((115883E3EFF:: : ::+EJJ,=,=>>

UXX777::

 : ::(77	zz	*	*s 3$13 0 0 6CC]!((+]CE-W--	ME4=	1	1%**m4.FA{$++<G<  ,,33(#++	 4  w& &mT::::$X.F 'I*7#1U+Ih'
 !(I % #-%&)	
 $9 /J mZZ00  ;7;;M5)) 5W55MD.#9::4G44 ''226JJ=)44 M33>>??mnr  tA  oB  nC  D	5
 &h0G0GS7SS		%**"3"3u7H7H"H&&7w77	MLL%..%--#P	Q	Q
		  77M%**m4u?w??

))**uzz((%,,77			#C#E#EA 	''#E 
 	%**m4eM4H4HTGTT

))**uzz((%++66			#C#E#EA 	#E 
 	%**m4U=W==			g	%%**--=*H%**m4999!}kk22JJ/JJMM]*%**m4U=W==	M3	'	'

MMLL&&JJLL!!>>E%%z8<E%%'7B $$
	
$ JJMM]*uzz/@/@N/R 	%**m4&&}@@@	M>>#6#6#A#A	B	B,%**m4!%3733	M4	(	(

HH55NN<<NN77NN;;
 388:
;<	< 	%**m4&&}@@@=3t"455JJ/%**m4&&}@@@	M5	)	)UZZ->->BV-V%**m4&&}@@@-'(%**--%**:K:K9LMN,	
c DFs   1 n+n8nc                     [         R                  S:X  a  [        R                  $ [         R                  S:X  a  [        R                  $ [         R                  S:X  a  [        R
                  $ [        S[         R                   35      e)Ndynamicunbacked	obliviousz+invalid automatic_dynamic_shapes_mark_as = )r&    automatic_dynamic_shapes_mark_asr   ra  SIZE_LIKE_UNBACKEDOBLIVIOUS_SIZErF  r   r   r   r]  r]  s
  sn    ..);!!!		0	0J	>,,,		0	0K	?(((9&:a:a9bc
 	
r   _DYNAMIC_SOURCESc                      [         b  [         $ [        [        R                  R                  R
                  R                  SS5      R                  S5      5      q [         $ )Nr  r  ,)r  r  r   compilerr&   dynamic_sourcesreplacesplitr   r   r   rY  rY  
  sL    #--55c2>DDSI r   c                   d    \ rS rSr% \\\4   \S'   \\S'   \	\
   \S'   S\4S jrS\S\4S jrS	rg
)rl  i
  faker   symbolic_contextr%  c                 `    [        U R                  U R                  R                  5       45      $ r   )hashr  r   r  r   s    r   __hash__TrackedFake.__hash__
  s#    TYY 0 0 2344r   r	  c                     [        U[        5      (       aT  U R                  UR                  L =(       a5    U R                  R	                  5       UR                  R	                  5       :H  $ g)NF)r   rl  r  r   r  r  s     r   r
  TrackedFake.__eq__
  sI    e[))99

*Xt{{/?/?/AU\\EVEVEX/XXr   r   N)r   r   r   r   r	   r   r
   r  rI   r   r   r_  r  objectr  r
  r   r   r   r   rl  rl  
  sA    

F"
##N//5# 5F t r   rl  c                 B  ^8^9 U R                   (       aH  [        U [        R                  R                  R
                  R                  5      (       d  [        S5        UR                  5       n[        5       nUR                  R                  R                  R                  U S 5      nU(       a  UR                  OS nS n	U R                  5       (       a#  [!        US5      n
[#        U R$                  XU5      n	['        U 5      (       a  U(       d  [#        XX#SS9n0 n[)        U 5      R+                  U 5      u  pU H)  n[-        X5      n[!        X/5      n[#        UUUU5      X'   M+     [/        UR0                  UR2                  UR4                  UR6                  U	UR8                  UR                  US9$ U(       ax  XV;  as  [;        [<        R>                  /U RA                  5       -  [<        RB                  /U RA                  5       -  S /U RA                  5       -  S /U RA                  5       -  U	UUS9$ SSK"J#m9  [I        U94S	 jU RK                  5        5       5      (       a  [;        U RK                  5        Vs/ s H8  n[        U[L        5      (       a  [<        RN                  O[<        R>                  PM:     sn[<        RB                  /U RA                  5       -  S /U RA                  5       -  S /U RA                  5       -  U	UUS9$ U RK                  5       n[Q        U 5      (       d  U RS                  5       nU RA                  5       nS /U-  n[U        U5       Vs/ s H  nUU   U* 4PM     nnURW                  [X        S
9  0 nU H?  u  nnU* nUR                  UU5      UU'   UR[                  UUU   -  []        U5      5        MA     O/ n[_        X[`        Rb                  " [e        U5      [e        U5      5      5      n[g        U 5      n0 m8U84S jnSSK4J5n  UR                  Rl                  (       aj  UR                  Rl                   HP  n [        U U5      (       a  M  U Rn                  U:X  d  M(  U" U R@                  U Rp                  U R                  5        MR     / n!/ n"/ n#/ n$[U        U RA                  5       5       GHF  nU[-        U S[s        5       5      ;   n%U[-        U S[s        5       5      ;   n&U[-        U S[s        5       5      ;   n'U[-        U S[s        5       5      ;   n(U[-        U S[s        5       5      ;   n)[u        UR                  5       5      n*Un
[        U
[v        5      (       a  U
Ry                  5       n
U'(       dQ  [        U
[z        5      (       a  U
R|                  b}  [        U
R|                  5      R                  U*US05      U   (       aN  [        R                  SU5        [        /U RA                  5       -  n+[        U+U'   U[`        R                  " U+S9-  n[        R                  =(       a    UR                  U5      n,[        R                  =(       a    UR                  U5      n-XV;   a  [        R                  SU5        Sn,Sn-U,=(       d    U-n.T8R                  U5      n U Gc  S n/S n0U'(       a  [        R                  (       d  S n0[        U S5      (       a  U R                   V1s/ s H  n1U1R@                  U:X  d  M  U1PM     sn1R                  5       n2U2R                  c  U2R                  c
  [        SS9n/OSSK"JPn3  U3" [        U2R                  U2R                  S9SS9n/O[        SS9n/OwU%(       a
  [        SS9n/OfU)(       d(  U.(       a!  U,(       a	  [        SS9n/U-(       a	  [        SS9n0O7S n/S n0O2U u  n/n4S n0U SU S3n5U4UR                  R                  R                  U5'   U#R                  U/5        U$R                  U05        U&(       a  [<        R                  n6OU/c,  U'(       d%  U((       d  T9" U RK                  5       U   5      (       a#  U.(       a  [        5       n6OU[<        RN                  n6ODU(       d  [        R                  (       d  U)(       a  [<        R>                  n6O[<        R                  n6U0b  [<        RN                  n7O[<        RB                  n7U!R                  U65        U"R                  U75        GMI     [;        U!U"U#U$U	UUS9$ s  snf s  snf s  sn1f )Nr  r!  T)
outer_only)dynamic_sizesdynamic_stridesconstraint_sizesconstraint_stridesview_base_contexttensor_source#shape_env_to_source_to_symbol_cacheinner_contexts)r  r  r  r  r  r  r  r   )is_nested_intc              3   l   >#    U  H)  n[        U[        5      =(       a    T" U5      (       + v   M+     g 7fr   )r   r
   )r.  sr  s     r   r0  %_automatic_dynamic.<locals>.<genexpr>
  s(     
L8a:a 9q)9%998s   14)r  c                    > U T;   a=  SSK Jn  TU    u  pEU" UR                  UR                  -  SS9nU=(       d    UnXg4TU '   g X4TU '   g )Nr   StrictMinMaxConstraintFvr	warn_only)%torch.fx.experimental.symbolic_shapesr  r  )	dimconstraint_ranger  r  old_constraint_rangeold_namenew_constraint_rangenew_namedim2constraints	           r   update_dim2constraint1_automatic_dynamic.<locals>.update_dim2constraint  se    . T-;C-@* #9#&&)=)@)@@$   '4H"6"@N3"2"8N3r   )_RelaxedConstraint_dynamo_strict_unbacked_indices_dynamo_unbacked_indices_dynamo_dynamic_indices_dynamo_weak_dynamic_indices_dynamo_static_indicesFz#automatic dynamic %s marked dynamic)sizerS  _dynamo_dynamic_range)r  r  )lowerupperr   z.size()[])Yr%  r   r   r&  r'  r(  r)  r-   r  rY  r  tracing_contexttensor_to_contextr  r  r.  r9   _automatic_dynamicr!  r"   rI  r1  r  r   r  r  r  r  r  r   r   STATICr  INFER_STRIDEr  r  anyr  r
   ra  r   striderk  sortr   
setdefaultr5   r6   r4   make_tensorrb  r-  torch.export.dynamic_shapesr  export_constraintst_idr  r  r   r;   r  rE   r^  r  rZ  r  r3   r2   	make_sizer&   r[  is_size_dynamicis_stride_dynamicallow_ignore_mark_dynamicr   r  popminmaxr   r  r#   r]  source_name_to_debug_namer  r  r]  r_  DUCK):rN  r  r   static_shapesr  r  r  prior_policyr  r  re  outer_contextr  r8  r)  r9  inner_tensorr;  r  ex_size	ex_strider  r  r  pending
candidatesi_strideneg_irc  r$  r  r  
constraintr  r  r  r  marked_strict_unbackedmarked_unbackedmarked_dynamicmarked_weak_dynamicmarked_staticrd  	mark_sizeautomatic_dynamic_sizeautomatic_dynamic_strideautomatic_dynamicconstraint_sizeconstraint_stridedr	dim_ranger  name_dim_namedynamic_sizedynamic_strider
  r  s:                                                           @@r   r  r  
  s    	{{:	5<<!!//<<  	KL;;=D)+O99,,>>BB1dKL<H88d (
 48zz|| 1.qwwW$Q''
*6T

 7--a0D"1+L%f3L#5b,$N   ''55)99*;;,??/'550=0a0a)	
 		
 4&%,,-7'445?"Vaeeg- $v// 0S
 	
 D

L1668
LLL& !A '1F&;&;
""ARARR! (445?"Vaeeg- $v// 0S
 	
  ffhGHHJ	eeg#/4Sz:z!IaL1"%z:/0
&OHeA"x:F1I!!(WQZ"7QH  '
 1
%11%.%-P a5DN9  ?	yy##))66J*&899$&%NNJ$?$?	 7 MO1557^!"g0#%'
 "
 wq*DceLLga)BCEJJ71.Lce#TTWQ(@#%HH
 "7v{{}!Ek=11%..0K{K00$$0[))*../E5zRSTU II;TB#quuw.I'IaL!4!>!>I!NN ++T0A0Q0QRS0T 	 ++V0A0S0STU0V 	! "II>E%)"'+$2N6N
 $''*
"O $f&F&F$(!1566%&%<%<!%<r!%<!ce  !}},1F*AE*R +A*immT&++
 '>&NO'"9E"J"'8)&=&MO+(?$(O%"&$(!%/"OU $xs!,HFKBII99(C0!!"34%88L'"QVVXa[))
 !CE)11f==%,,L &??L('//N'44N\*~.u x ##')-+,O G* ;^!s   4?dd*dd)parent_contextr   r   c          
        ^ ^^^ [        T 5      [        R                  [        R                  R                  [
        4;   d0  [        T [        R                  5      (       d  [        T 5      (       Ga
  Tc   e[        T UTS9u  pVU(       d  [        T TTU5      mO2[        T[        5      (       d   eTR                  nUR                  U   m[        R                  STR                  5       [!        T R"                  5      T[        T 5      5        [%        U UUU4S j5      nTb]  [        U[
        5      (       aH  UR&                  =n	b9  TR(                  R*                  R-                  [/        U	[1        T5      T5      5        [        U5      (       ac  UR3                  5       u  pU
 HK  n[5        X5      n[5        T U5      n[        TU5      n[7        UTU[        U[        R                  5      TS9  MM     TTR(                  R8                  R:                  T '   [=        U5      (       a  UR>                  (       a  URA                  5       OURC                  5       nURE                  5       SURF                  -  URE                  5       URI                  5       S.TR(                  RJ                  T'   O8URE                  5       URI                  5       S.TR(                  RJ                  T'   U(       a  U(       a  TRM                  5       (       dq  [O        T5      (       da  TR(                  R*                  R-                  [/        UTT5      5        TR(                  RP                  [S        T 5         R-                  T5        U$ T $ )N)r  zwrap_to_fake %s %s %s %sc                  :   > TR                   R                  T TTS9$ )N)r   r  )r  from_tensor)rN  r   r  r  s   r   r  0wrap_to_fake_tensor_and_record.<locals>.<lambda>  s"    BLL,,!1 - r   )r   r   rJ  )rk   )r  r  values_sizevalues_stride)r  r  )*rI  r   r   r]  r^  r   r   r"   re   r  r9   r/  r  rZ  r  r  rb  shaperj   	item_memor  rk  r  rl  r:   r1  r  r+  r  r  r   	is_sparse_valuesvaluesr  ndimr  input_source_to_sizes_stridesr#  rB   tracked_fakes_id_to_sourcer-  )rN  r  r   r   rJ  r.  _reasoninner_context_namefake_esym_valr8  r)  r9  
fake_innerinnerr;  rU  r  s   ```              @r   r+  r+    s    	QELL%(("4"4jAAa&&(++!!!!? "
 1!RO fj1111!'-<<=OP		&KKM!''NG	
 %
 6:..",,,9II##**G%9&%ACST )00002HE$V2
4()&$7.'(U\\B#3	  :J		!!33A6   *0)9)9V^^%v}}F ,%{{}!'?BII33F;  --/?BII33F; "v'F'F'H'H&v..II##**FF,<= II00A7>>vFr   c                   ^    \ rS rSrSrSS jr\SSS\4S j5       r\S	 5       r	\S
 5       r
Srg)r  i  a  
Like builder, but stateless and does not require a source. Useful for simple type->VT objects, or objects
that are being created/evaporated during inlining (ex: consider a locally made list of tensors we then iterate over
.), such a list should not show up as an artifact from inputs, nor in reconstruction, nor in the graph. However,
there may be reasons to represent it as a ListVariable internally.

NOTE - Objects produced here are born UNGUARDED due to the nature of sources!

NOTE - This class is very new! It will have some rough edges, but it was created to stem the bleeding of giant
if/else type->VariableTracker trees that were cropping up all over dynamo.
r%  Nc                     [        S5      e)NzUse SourcelessBuilder.create()ra  r   s    r   r  SourcelessBuilder.__init__%  s    =>>r   r  r   c                 ,
   [        U5      n[        R                  R                  U5      nU(       a  U" X5      $ [	        U[
        5      (       a  U$ [	        U[        R                  5      (       a  [        U5      $ [        R                  " U5      (       a  [        R                  " U5      $ [        U5      (       a_  [        R                  " U5      bH  [        R                  " U5      (       a  SU R                   l        [        R                  " U5      " U5      $ [%        U5      (       a  [        R&                  " U5      " U5      $ [	        U[(        R*                  [,        R.                  [,        R0                  R2                  R4                  45      (       a  [7        U5      $ [	        U[         [8        R:                  45      (       a  [=        U5      $ [	        U[>        R@                  5      (       a  [C        U5      $ [	        U[>        RD                  5      (       a  [	        URF                  [         [8        R:                  45      (       au  [I        URF                  URJ                  RL                  5      U:X  d   e[        R                  XRF                  5      n URO                  XRJ                  RL                  5      $ [	        U[,        RR                  RT                  RV                  5      (       a  [Y        U5      $ [	        U[,        RZ                  R\                  R^                  [,        RZ                  R\                  R`                  45      (       a  [        U5      $ [b        Rd                  " U5      (       a  [c        U5      $ [f        Rh                  " U5      (       a  [g        U5      $ U[j        Rl                  L a  [o        U5      $ [	        U[p        Rr                  5      (       a  [u        U5      $ [	        U[,        Rv                  Rx                  Rz                  R|                  5      (       a  [        R                  " [        U5      5      $ [	        U[        [,        R                  R                  5      5      (       a3  [,        Rv                  Rx                  R                  R                  U5      $ [	        U[>        R                  5      (       a  [        U5      $ [        SUR                   SUR                   35        g ! [P         a     N2f = f)NTz&Unexpected type in sourceless builder r  )IrI  r  _type_handlersr  r   ro   r  _HAS_DEFAULT_FACTORY_CLASSr   rq   r  r  r*  r*   r7  r8  r  r9  rW   r<  r  r  r   r  r  r  r  rr   abcABCMetar   r{  r  r   r4  r  r  r  r   var_getattrrQ  r  graph_moduleGraphModuler   rt  r  r  LeafSpecr   r[  r   rX  r$  rz  r   rn  ro  r   r  	variableslazyLazySymNodeFormatStringrK  r=  flex_attention_backwardhigher_order_ops&FlexAttentionBackwardHighOrderVariableGenericAliasr   r-   r   r   )r  rA  
value_typefast_handler
cls_obj_vts        r   r  SourcelessBuilder.create(  s   %[
(77;;JG**e_--L{EEFF,U33((//#**511e__!<!<U!C!O..u55>B		;..u5e<<#E**%%e,U33DIIu00%((2E2E2S2ST
 
  &&ckk233+E22u6677(//ue..// 5>>D#+++>?? 5>>5>>+B+BCuLLL*11"nnEJ!--b..2I2IJJ uxx44@@AA077EKK''00%++2E2E2N2NO
 
 -U33++E22$U++..u55%e,,ioo%)%00rzz**'..u}}66;;SSTT#**3u:66tE$;$;$S$STUU==**;;bb  u1122!%((4Z5J5J4K1ZMdMdLef	
1 ' s   $T 
TTc                 d    [         R                  " U 5      (       d   e[         R                  " U S9$ )Nr  )rq   r  r  r  s    r   wrap_constant_literal'SourcelessBuilder.wrap_constant_literalk  s*    **51111&&U33r   c                  R  ^ [         R                  m0 n [         H  nS X'   M
     U4S jU [        '   U4S jU [        '   U4S jU [
        '   U4S jU [        '   U4S jU [        R                  '   U [           U [        R                  '   U [           U [        '   U [
           U [        '   S U [        R                  '   S U [        R                   '   S	 U [        R"                  '   S
 U [        R$                  R&                  R(                  '   S U [        R*                  R,                  R.                  '   S U [        R*                  R,                  R0                  '   S U [        R*                  R,                  R2                  '   SS jn[4        R6                   H  nX U'   M	     U $ )Nc                     [        U5      $ r   )rq   r  rA  s     r   r  6SourcelessBuilder.make_type_handlers.<locals>.<lambda>u  s
    ,<U,Cr   c           	      `   > [        U Vs/ s H  nT" X5      PM     sn[        5       S9$ s  snf N)r  )r~   rn   r  rA  r  r  s      r   r  r}  v  s)    +$)*EqVB]E*:J:L+
*   +c                    > [        UR                  5        VVs0 s H  u  p#T" X5      T" X5      _M     snn[        U5      [        5       S9$ s  snnf r  )ry   r  rI  rn   )r  rA  r  r  r  s       r   r  r}  y  sB    +<6;kkmDmdaVB]F2M)mDK*,,
Ds   A
c           	      `   > [        U Vs/ s H  nT" X5      PM     sn[        5       S9$ s  snf r  )r   rn   r  s      r   r  r}  ~  s)    <$)*EqVB]E*:J:L,
*r  c           	      R   > [        U Vs/ s H  nT" X5      PM     sn5      $ s  snf r   )r   r  s      r   r  r}    s#    M$)*EqVB]E*-
*   $c           	      R   > [        U Vs/ s H  nT" X5      PM     sn5      $ s  snf r   )r   r  s      r   r  r}    s#    $)*EqVB]E*2
*r  c                     [        5       $ r   )r   r|  s     r   r  r}    s    4G4Ir   c                     [        U5      $ r   )r   r|  s     r   r  r}    s
    7KE7Rr   c                 &    [        U[        5       S9$ r  )r   rn   r|  s     r   r  r}    s    ;Q!1!3<
r   c                 &    [        U[        5       S9$ r  )r   rn   r|  s     r   r  r}    s    :%5%7r   c                 &    [        U[        5       S9$ r  r   rn   r|  s     r   r  r}        7%5%7r   c                 &    [        U[        5       S9$ r  r  r|  s     r   r  r}    r  r   c                 &    [        U[        5       S9$ r  r  r|  s     r   r  r}    r  r   c                     U$ r   r   r|  s     r   passthrough9SourcelessBuilder.make_type_handlers.<locals>.passthrough  s    Lr   )r  r   )r  r  rP   r  r  rc  rb  r   rf  rd  r  r    r!   r}  r~  r{  r  rT  r  rH  rI  distributionsconstraints_Real	_Interval
Constraintrp   all_subclasses)handlersr   r  rY  r  s       @r   make_type_handlers$SourcelessBuilder.make_type_handlersp  si   "))&ACHK '




 
 -5TN(()#+D> #+D> "I%R!!"*
%%& 	!!--BBC 	$$00667 	$$00::; 	$$00;;<	 '55C'SM 6r   r   r$  )r   r   r   r   r~  r  staticmethodro   r  rx  r  r   r   r   r   r  r    s\    
? @
* @
o @
 @
D 4 4 : :r   r  c                   >    \ rS rSrSrS
S jr\SSS\4S j5       rS	r	g)"SourcelessUserDefinedObjectBuilderi  z
SourceLessBuilder does not return a UserDefinedObjectVariable, but in some
cases it might be ok to return UserDefinedObjects. In such case, use this
builder.
r%  Nc                     [        S5      e)Nz/Use SourcelessUserDefinedObjectBuilder.create()ra  r   s    r   r  +SourcelessUserDefinedObjectBuilder.__init__  s    NOOr   r  r   c                     [        U5      n[        U[        5      (       a  [        U[	        5       S9$ [        U[        R                  R                  5      (       a  [        U[	        5       S9$ [        U[	        5       S9$ r  )rI  r  r   r   rn   r   r   r]  r  r   r   )r  rA  rs  s      r   r  )SourcelessUserDefinedObjectBuilder.create  sg    %[
j.11)%?O?QRRuxx//0%5%7  -UBRBTUUr   r   r$  )
r   r   r   r   r~  r  r  ro   r  r   r   r   r   r  r    s4    P 	V* 	Vo 	V 	Vr   r  )NNr   )F(:  r~  rf  rd  rN  r  r  r  r$  r+  	itertoolsr"  rp  r  r}  rn  rv  rt  r{  r   rq  collections.abcr   typingr   r   r   r   r   r	   ri  r   r
   torch._dynamo.utilsr   r   r   torch._guardsr   !torch._higher_order_ops.torchbindr   
torch._opsr   r  r   r   r   torch._subclasses.meta_utilsr   r   torch._utils_internalr   %torch.fx.experimental._backward_stater   torch.fx.experimental._dynamismr   r  r   r   r   r   r   r   r   torch.fx.immutable_collectionsr    r!   torch.utils._python_dispatchr"   torch.utils._sympy.value_rangesr#   torch.utils.weakr$   r  r&   r'   r(   r)   r*   r  r+   excr,   r-   r.   rR  r/   r0   r1   pgor2   r3   r4   r5   r6   r9  r7   r   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rt  rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   r  rl   rm   rn   ro   rp   constantrq   rr   ctx_managerrs   rt   ru   rv   rw   rx   dictsry   rz   r{   r|   r}   r~   r  r   r   r   r   r   	functionsr   r   r   r   r   r   r   r   r   r   r   r   rp  r   iterr   rm  r   listsr   r   r   r   r   r   r   r   r   miscr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	nn_moduler   r   r   	optimizerr   script_objectr   r  r   rv  r   r   r   r   r   r   r   r   r   r   torch_functionr   r   r   r   user_definedr   r   r   r   r   r   r   r   r   r   numpyr~  ModuleNotFoundErrortorch._dynamo.symbolic_convertr   	getLoggerr   rZ  _logginggetArtifactLoggerr  rc  DimListr   r   	dataclassr   r  r  varsr  r1  r_  r  r  r2  r4  r  r  r-  r,  r  r  r  r  r]  r  rK  rY  rl  r  r  r+  r  r  rd  r  r   r   r   <module>r     s  &              	 
     * L L    
 ) < * R R A 1 ? A   J F 7 * T T ? K K A A  '     ,                 B  5       ? # %
 
 
     0 
 ) 4 $        
 DD !NN44' 
 "	 	 99 99 99x<H <, &/ /Y--// & IcN  +.% s3x /J JZ:  & 26$p >B
, 26;W@ >B0H
V

 (, (3s8$ +	SX 	   $ .3MMd IMav&a37aHS Sl $5#G#G#I   V VI]  	Bs   4Q 
QQ