
    8hT                        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JrJr  S SKrS SKJs  Jr  S SKJr  S SKJrJr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\RJ                  \RL                  5      r'S\(S\)4S jr*\ RV                   " S S5      5       r, " S S\RZ                  5      r. " S S5      r/\	" S\05      r1 " S S\Rd                  5      r3 " S S5      r4 " S S5      r5 " S S5      r6 " S S5      r7 " S  S!5      r8 " S" S#5      r9 " S$ S%5      r: " S& S'\:5      r; " S( S)\:5      r< " S* S+\:5      r= " S, S-\:5      r> " S. S/\:5      r? " S0 S15      r@ " S2 S35      rAg)4    N)abstractmethod)AnyCallableNewTypeOptionalTypeVarUnion)overrideSelf)TracingContext)
FakeTensorFakeTensorModeTensor)MetaConverterMetaTensorDescMetaTensorDescriberSymNode)ShapeEnv)no_dispatch	_SymNodeTnamereturnc                 $    U R                  S5      $ )z
An ops filter which allows pickle-safe ops. Pickle-safe ops are built-in
ones where it will be possible to unpickle on any machine which has PyTorch.
)ztorch.ops.atenztorch.ops.fbgemm)
startswithr   s    Q/var/www/fran/franai/venv/lib/python3.13/site-packages/torch/fx/_graph_pickler.py_ops_filter_safer      s     ??	
     c                   6    \ rS rSr% \r\\\/\	4      \
S'   Srg)Options(   
ops_filter N)__name__
__module____qualname____firstlineno__r   r#   r   r   strbool__annotations____static_attributes__r$   r   r   r!   r!   (   s     3CJ3%+./Br   r!   c            	          ^  \ rS rSrSrSS\R                  S\\   SS4U 4S jjjr	\
S\S\\S	\4   \\S	4   4   4S
 j5       r\
S\S\\   4S j5       r\SS\S\\   S\4S jj5       r\S\S\S\4S j5       rSrU =r$ )GraphPickler/   zV
GraphPickler is a Pickler which helps pickling fx graph - in particular
GraphModule.
Nfileoptionsr   c                    > [         TU ]  U5        U=(       d
    [        5       U l        [	        [        5       5      U l        [        SS9U l        g )NF)	copy_data)	super__init__r!   r1   _UnpickleStateTokenobject_unpickle_stater   _meta_tensor_describer)selfr0   r1   	__class__s      r   r5   GraphPickler.__init__5   s>    +')  368< ':E&J#r   obj.c                 X   [        U[        5      (       a  [        R                  X5      $ [        U[        R
                  R                  5      (       a  [        R                  X5      $ [        U[        R                  R                  [        R                  R                  45      (       a  [        R                  X5      $ [        U[        5      (       a  [        R                  X5      $ [        U[        R                  5      (       a  [        R                  X5      $ [        U[        R                   R"                  5      (       a  [$        R                  X5      $ [        U[        R
                  R&                  5      (       a   e[(        R                  X5      =n(       a  U$ [*        $ N)
isinstancer   _TensorPickleDatareduce_helpertorchfxGraphModule_GraphModulePickleData_opsOperatorBaseOpOverloadPacket_OpPickleDatar   _ShapeEnvPickleDataSymInt_SymNodePickleData_guardsr   _TracingContextPickleDataNode_TorchNumpyPickleDataNotImplemented)r:   r=   reduces      r   reducer_overrideGraphPickler.reducer_overrideC   s)   * c:&&$224==UXX1122)77BBejj55uzz7R7RSTT ..t99X&&&44T??U\\**%33D>>U]]99::,::4EE "#uxx}}5555.<<TGGvG "!r   c                 "    XR                   L a  gg )Nunpickle_stater8   )r:   r=   s     r   persistent_idGraphPickler.persistent_idn   s    &&&#r   c                     [         R                  " 5        nU " X25      nUR                  U5        UR                  5       sSSS5        $ ! , (       d  f       g= f)z
Pickle an object.
N)ioBytesIOdumpgetvalue)clsr=   r1   streampicklers        r   dumpsGraphPickler.dumpsu   s9    
 ZZ\V&*GLL??$ \\s   )A		
Adata	fake_modec                     [        U5      n[        R                  " U 5       n[        X25      nUR	                  5       sSSS5        $ ! , (       d  f       g= f)z
Unpickle an object.
N)_UnpickleStater\   r]   _GraphUnpicklerload)re   rf   statera   	unpicklers        r   loadsGraphPickler.loads   s<    
 y)ZZ'6I>># s   A
A)r9   r8   r1   r?   )r%   r&   r'   r(   __doc__r\   r]   r   r!   r5   r
   r7   tupler   r   rT   r)   rY   classmethodbytesrc   staticmethodr   rm   r,   __classcell__r;   s   @r   r.   r.   /   s    
KRZZ K(72C Kt K K ("("	xS!5c?2	3(" ("T  HSM   % %'): %e % % $E $n $ $ $r   r.   c                   &    \ rS rSrS\SS4S jrSrg)rh      rf   r   Nc                 .    Xl         [        5       U l        g r?   )rf   r   meta_converter)r:   rf   s     r   r5   _UnpickleState.__init__   s    "9Fr   )rf   ry   )r%   r&   r'   r(   r   r5   r,   r$   r   r   rh   rh      s    I. IT Ir   rh   r6   c                   h   ^  \ rS rSrS\R
                  S\SS4U 4S jjr\S\	S\	4S j5       r
S	rU =r$ )
ri      ra   rW   r   Nc                 0   > [         TU ]  U5        X l        g r?   )r4   r5   r8   )r:   ra   rW   r;   s      r   r5   _GraphUnpickler.__init__   s     -r   pidc                 R    US:X  a  U R                   $ [        R                  " S5      e)NrW   zInvalid persistent ID)r8   pickleUnpicklingError)r:   r   s     r   persistent_load_GraphUnpickler.persistent_load   s)    ""'''(()@AAr   rX   )r%   r&   r'   r(   r\   r]   rh   r5   r
   r7   r   r,   rt   ru   s   @r   ri   ri      sG    .rzz .> .d . B6 Bf B Br   ri   c                       \ rS rSr% \\\4   \S'   \S\	S\
S\\\\/\
4   \\\4   4   4S j5       rS\
SS4S	 jrS
\S\
4S jrSrg)rK      re   rb   r=   r   c                 B    U R                   U " U5      UR                  44$ r?   unpickler8   r`   rb   r=   s      r   rB   !_ShapeEnvPickleData.reduce_helper   s"     ||c#h(?(?@@@r   envNc                     UR                   (       a   eUR                  R                  5       U l        U R                  S	 U R                  S	 g )Ntracked_fakesfake_tensor_cache)_translation_validation_enabled__dict__copyre   )r:   r   s     r   r5   _ShapeEnvPickleData.__init__   s@     6666LL%%'	IIo&II)*r   rW   c                    UR                   (       d   eUR                   R                  (       d   eU R                  R                  5        H%  u  p#[	        UR                   R                  X#5        M'     UR                   R                  $ r?   )rf   	shape_envre   itemssetattr)r:   rW   kvs       r   r   _ShapeEnvPickleData.unpickle   sg    ''''''1111IIOO%DAN,,66= & ''111r   )re   )r%   r&   r'   r(   dictr)   r7   r+   rq   r.   r   rp   r   r   rh   r6   rB   r5   r   r,   r$   r   r   rK   rK      s    
sF{
A"A)1A	$'12E$@S:S4TT
A A+H + +2~ 2( 2r   rK   c                       \ rS rSr\S\S\S\\\	\
/\4   \\	\4   4   4S j5       rS\SS4S jrS\4S	 jrS
\
S\R"                  4S jrSrg)rM      rb   r=   r   c                     U " UR                   5      UR                  4n[        U[        R                  5      (       a  [
        R                  U4$ [        S[        U5       35      e)NzUnhandled SymNode type )	noder8   r@   rC   rL   rM   unpickle_sym_intNotImplementedErrortype)r`   rb   r=   argss       r   rB    _SymNodePickleData.reduce_helper   sU     CHHw667c5<<((%66<<%(?S	{&KLLr   r   Nc                     UR                   U l        UR                  U l        UR                  U l        UR                  U l        g r?   )_exprexprr   pytype_hinthint)r:   r   s     r   r5   _SymNodePickleData.__init__   s.    JJ	kkJJ	r   c                     SSK Jn  U R                  c   eU" U R                  U R                  U R                  U R
                  5      $ )Nr   r   )torch.fx.experimental.sym_noder   r   r   r   r   )r:   r   s     r   _to_sym_node_SymNodePickleData._to_sym_node   s6    :~~)))tyy$..$++tyyIIr   rW   c                 J    [         R                  " U R                  5       5      $ r?   )rC   rL   r   r:   rW   s     r   r   #_SymNodePickleData.unpickle_sym_int   s    ||D--/00r   )r   r   r   r   )r%   r&   r'   r(   rq   r.   r   rp   r   r   rh   r6   rB   r   r5   r   rC   rL   r   r,   r$   r   r   rM   rM      s    MM M 
$'23U4AT;T5UU
	M MW  Jg J1~ 1%,, 1r   rM   c                       \ rS rSr% \\   \S'   \S\S\S\	\
\\/\4   \	\\4   4   4S j5       rS\S\SS	4S
 jrS\S\4S jrSrg	)rA      metadatarb   r=   r   c                 X    U R                   U " UR                  U5      UR                  44$ r?   )r   r9   r8   r   s      r   rB   _TensorPickleData.reduce_helper   s3     ||..4##
 
 	
r   	describertNc           	         UR                  U5      nUR                  (       a?  [        UR                  [        R                  R
                  R                  5      (       d   e[        R                  " US S9U l	        [        R                   HC  nUS;   a  M  [        U R                  U5      c  M$   SU S[        U R                  U5       35       e   g )Nrf   )rf   	view_funcz
not None: z: )describe_tensorr   r@   rC   _subclasses
meta_utils_FakeTensorViewFuncdataclassesreplacer   r   _UNSERIALIZABLEgetattr)r:   r   r   r   r   s        r   r5   _TensorPickleData.__init__   s    
 ,,Q/ %% 1 1 < < P P*
 *
 	
 
 $++HE  //A..4==!,4 QCr'$--";!<=4 0r   rW   c                 D  ^ [         R                  " U R                  TR                  S9nS[        / [
        R                  4   S[        [
        R                  [        4   S[        4U4S jjnTR                  R                  UTR                  R                  US S 5      $ )Nr   make_meta_tdevicer   c                    > [        5          [        TR                  U " 5       U5      sS S S 5        $ ! , (       d  f       g = fr?   )r   r   rf   )r   r   rW   s     r   	with_fake-_TensorPickleData.unpickle.<locals>.with_fake  s-     !",,M s	   2
A )r   r   r   rf   r   rC   r   r	   r   r)   r   ry   meta_tensorr   )r:   rW   r   r   s    `  r   r   _TensorPickleData.unpickle  s    &&MM$..

	!"ell"23	=B5<<QTCT=U		 ,,88$$..
 	
r   )r   )r%   r&   r'   r(   r   r   r+   rq   r.   rp   r   r   rh   r6   rB   r   r   r5   r   r,   r$   r   r   rA   rA      s    Z((
"
)3
	$'34eDBU<U6VV

 
"5 & T ,
~ 
* 
r   rA   c                       \ rS rSr\S\S\S\\\	\
\/\4   \\
\4   4      4S j5       rS\S\SS4S	 jrS
\S\	S\4   4S jr\S\S\\
   4S j5       rSrg)rQ   i  rb   r=   r   c                 f    U R                  U5      =n(       a  U R                  X1R                  44$ g r?   )from_objectr   r8   )r`   rb   r=   re   s       r   rB   #_TorchNumpyPickleData.reduce_helper  s3     ??3''4'LL4)@)@"ABBr   modr   Nc                     Xl         X l        g r?   r   r   )r:   r   r   s      r   r5   _TorchNumpyPickleData.__init__,  s    	r   rW   .c                     [        [        R                  " U R                  5      U R                  5      n[
        R                  R                  R                  R                  5       U   $ r?   )
r   	importlibimport_moduler   r   rC   _dynamo	variablesmiscget_np_to_tnp_map)r:   rW   nps      r   r   _TorchNumpyPickleData.unpickle0  sE    Y,,TXX6		B}}&&++==?CCr   tnpc                    [        U5      (       d  g [        R                  R                  R                  R                  5       n UR                  U5      =n(       d  g  [        USS 5      =n(       d  Sn[        USS 5      =n(       d  g U[        [        R                  " U5      U5      :X  d   eU " XE5      $ ! [         a     g f = f)Nr&   numpyr%   )callablerC   r   r   r   get_tnp_to_np_mapget	TypeErrorr   r   r   )r`   r   	tnp_to_npr   r   r   s         r   r   !_TorchNumpyPickleData.from_object4  s    }}MM++00BBD		#--,,B, -
 r<666CJ555WY44S94@@@@3~  		s   B8 8
CCr   )r%   r&   r'   r(   rq   r.   r7   r   rp   r   r   rh   r6   rB   r)   r5   r   r   r,   r$   r   r   rQ   rQ     s    
"
)/
	dN+V34eDBU<U6VV	


 
C s t D~ D(3;:O D f $  r   rQ   c                      \ rS rSr\S\S\R                  R                  S\	\
\\/\R                  R                  4   \	\\4   4   4S j5       rS\R                  R                  S\SS4S	 jrS
\S\R                  R                  4S jrSrg)rF   iJ  rb   r=   r   c                 V    U R                   U " X!R                  5      UR                  44$ r?   )r   r1   r8   r   s      r   rB   $_GraphModulePickleData.reduce_helperK  s/     ||__%##
 
 	
r   gmr1   Nc                 :   [        U[        R                  R                  R                  5      (       a  UR                  5       nOUR                  5       nUR                  R                  5       U l	        U R                  S	 [        UR                  U5      U l        g )N_graph)r@   rC   rD   _lazy_graph_module_LazyGraphModule_real_recompile	recompiler   r   gm_dict_GraphPickleDatar   graph)r:   r   r1   _python_codes       r   r5   _GraphModulePickleData.__init__W  sj    b%((55FFGG--/L<<>L{{'')LL"%bii9
r   rW   c                     [         R                  R                  R                  [         R                  R                  5      nU R                  Ul        U R                  R                  X!5      Ul        U$ r?   )	rC   rD   rE   __new__r   r   r   r   r   )r:   rW   r   s      r   r   _GraphModulePickleData.unpicklea  sL    XX!!))%((*>*>?llJJ'';		r   )r   r   )r%   r&   r'   r(   rq   r.   rC   rD   rE   rp   r   r   rh   r6   rB   r!   r5   r   r,   r$   r   r   rF   rF   J  s    	
"	
).)=)=	
	$')=)==>d''(	*
	
 	
:588// :' :d :~ %((:N:N r   rF   c                   $   \ rS rSrS\R
                  R                  S\\R
                  R                  S 4   S\SS4S jr	S\R
                  R                  S\S \R
                  R                  4   S	\S\R
                  R                  4S
 jrSrg)_NodePickleDataih  r   mappingr1   r   Nc                   ^ [         R                  " [        R                  R                  U4S jUR
                  5      U l        [         R                  " [        R                  R                  U4S jUR                  5      U l        UR                  U l        UR                  U l        [        R                  UR                  U5      U l        UR                  U l        UR                  U l        g )Nc                    > TU    $ r?   r$   nr   s    r   <lambda>*_NodePickleData.__init__.<locals>.<lambda>o  s	    '!*r   c                    > TU    $ r?   r$   r   s    r   r  r  q  s	    WQZr   )pytreetree_map_onlyrC   rD   rP   r   kwargsr   oprJ   r   targetr   meta)r:   r   r   r1   s     ` r   r5   _NodePickleData.__init__i  s     ((8LdiiX	**HHMM/
 II	''#**4;;@ II	 II	r   r   rW   c                   ^ [         R                  " [        U4S jU R                  5      n[         R                  " [        U4S jU R                  5      nU R
                  R                  U5      n[        U5      (       d  [        U[        5      (       d   eUR                  U R                  XdXPR                  U R                  5      nU R                  Ul        U$ )Nc                    > TU    $ r?   r$   r   s    r   r  *_NodePickleData.unpickle.<locals>.<lambda>  s	    wqzr   c                    > TU    $ r?   r$   r   s    r   r  r    s	    wqzr   )r  r  r   r   r  r  r   r   r@   r)   create_noder  r   r   r	  )r:   r   r   rW   r   r  r  r   s     `     r   r   _NodePickleData.unpickle  s     ##O5I499U%%14;;
 %%n5:fc#:#:::  &		499UII	r   )r   r  r	  r   r  r  r   )r%   r&   r'   r(   rC   rD   rP   r   r!   r5   Graphrh   r   r,   r$   r   r   r   r   h  s    hhmm ehhmm%667 	
 
,xx~~ '67 '	
 
r   r   c            
          \ rS rSr\S\S\S\\\	/\4   \\
   4   4S j5       r\S\S\SS 4S j5       r\S\S	\\S
   \S   4   S\SS 4S j5       r\S\	S\4S j5       r\S\S\4S j5       r\S\S\S\4S j5       rSrg)rJ   i  rb   r  r   c                 j    U R                  X!R                  5      nUR                  UR                  44$ r?   )r   r1   r   r8   )r`   rb   r  results       r   rB   _OpPickleData.reduce_helper  s.     B0'"9"9!;<<r   r1   c                    [        U[        5      (       a  [        U5      $ [        R                  R
                  R                  U5      n[        U[        R                  R                  5      (       a  U R                  U[        U5      $ [        U[        R                  R                  5      (       a  U R                  U[        U5      $ UR                  S5      (       a  UR                  SS5      u  pE[        XE5      $ UR                  S5      (       a  UR                  SS5      u  pe[!        U5      $ [#        S[%        U5       SU SU 35      e)N)z	builtins.zmath.ztorch..   z	operator.zTARGET:  )r@   r)   _OpStrPickleDatarC   rD   rP   _pretty_print_targetrG   
OpOverload
_pickle_op_OpOverloadPickleDatarI   _OpOverloadPacketPickleDatar   split_OpBuiltinPickleData_OpOperatorPickleDatar   r   )r`   r  r1   r   rootdetail_s          r   r   _OpPickleData.pickle  s   b##B''xx}}11"5b%**//00>>$(=wGGEJJ7788>>$(CWMM__=>>::c1-LD'55__[))

3*IA(00 &b
!B4q&GHHr   r   dataclsr  r  c                 t    UR                   =n(       a  U" U 5      (       d  SSKJn  U" SU  35      eU" U 5      $ )Nr   )BypassFxGraphCachez"Unable to pickle non-standard op: )r#   torch._inductor.codecacher)  )r   r'  r1   r#   r)  s        r   r  _OpPickleData._pickle_op  s?     ",,,J,j6F6FD$'I$%PQQt}r   rW   c                     g r?   r$   r   s     r   r   _OpPickleData.unpickle  s    r   c                     SU;   a2  UR                  SS5      u  p#[        5       U   nU R                  XC5      $ [        5       U   $ )z3
Like `globals()[name]` but supports dotted names.
r  r  )r   globals_getattr_by_name)r`   r   r   restr#  s        r   _lookup_global_by_name$_OpPickleData._lookup_global_by_name  sE    
 $;

3*IC9S>D''339T?"r   r#  c                 r    SU;   a'  UR                  SS5      u  p![        X5      n SU;   a  M'  [        X5      $ )z7
Like `getattr(root, name)` but supports dotted names.
r  r  )r   r   )r#  r   r   s      r   r0  _OpPickleData._getattr_by_name  s=    
 Tk

3*IC4%D Tk t""r   r$   N)r%   r&   r'   r(   rq   r.   r7   rp   r   rh   r6   rB   r!   r   rs   r)   r	   r   r  r   r   r2  r0  r,   r$   r   r   rJ   rJ     s5   ="=(.=	x(&0159L3MM	N= = I I I_ I I& ()40M+NN

  
  ~ &   	## 	#& 	# 	# #v #S #V # #r   rJ   c                   8    \ rS rSrS\SS4S jrS\S\4S jrSrg)	r  i  r   r   Nc                     Xl         g r?   r   r:   r   s     r   r5   _OpStrPickleData.__init__      	r   rW   c                     U R                   $ r?   r   r   s     r   r   _OpStrPickleData.unpickle  s    yyr   r   )	r%   r&   r'   r(   r)   r5   rh   r   r,   r$   r   r   r  r    s(    S T ~ # r   r  c                   `    \ rS rSrS\SS4S jrS\S\R                  R                  4S jr
Srg)	r  i  r   r   Nc                     Xl         g r?   r   r8  s     r   r5   _OpOverloadPickleData.__init__  r:  r   rW   c                     U R                  U R                  5      n[        U[        R                  R
                  5      (       d   eU$ r?   )r2  r   r@   rC   rG   r  r:   rW   r=   s      r   r   _OpOverloadPickleData.unpickle  s8    ))$))4#uzz445555
r   r   )r%   r&   r'   r(   r)   r5   rh   rC   rG   r  r   r,   r$   r   r   r  r    s2    S T ~ %**:O:O r   r  c                   `    \ rS rSrS\SS4S jrS\S\R                  R                  4S jr
Srg)	r  i  r   r   Nc                     Xl         g r?   r   r8  s     r   r5   $_OpOverloadPacketPickleData.__init__  r:  r   rW   c                     U R                  U R                  5      n[        U[        R                  R
                  5      (       d   eU$ r?   )r2  r   r@   rC   rG   rI   rA  s      r   r   $_OpOverloadPacketPickleData.unpickle  s8    ))$))4#uzz::;;;;
r   r   )r%   r&   r'   r(   r)   r5   rh   rC   rG   rI   r   r,   r$   r   r   r  r    s2    S T ~ %**:U:U r   r  c                   <    \ rS rSrS\S\SS4S jrS\S\4S jrS	r	g)
r!  i  r#  r   r   Nc                     Xl         X l        g r?   )r#  r   )r:   r#  r   s      r   r5   _OpBuiltinPickleData.__init__  s    		r   rW   c                 *   U R                   S:X  a  [        R                  U R                  5      $ U R                   S:X  a  SS KnU R                  X R                  5      $ U R                   S:X  a   U R                  [        U R                  5      $ [        e)Nbuiltinsmathr   rC   )r#  __builtins__r   r   rM  r0  rC   r   )r:   rW   rM  s      r   r   _OpBuiltinPickleData.unpickle  sp    99
"##DII..YY& ((yy99YY'!((		::%%r   )r   r#  
r%   r&   r'   r(   r)   r5   rh   r7   r   r,   r$   r   r   r!  r!    s/    S   
&~ 
&& 
&r   r!  c                   8    \ rS rSrS\SS4S jrS\S\4S jrSr	g)	r"  i  r   r   Nc                     Xl         g r?   r   r8  s     r   r5   _OpOperatorPickleData.__init__  r:  r   rW   c                 @    SS K nU R                  X R                  5      $ )Nr   )operatorr0  r   )r:   rW   rU  s      r   r   _OpOperatorPickleData.unpickle  s    $$Xyy99r   r   rP  r$   r   r   r"  r"    s(    S T :~ :& :r   r"  c                       \ rS rSrS\R
                  R                  S\SS4S jrS\R
                  R                  S\
S\R
                  R                  4S	 jrS
rg)r   i  r   r1   r   Nc                     UR                   U l        UR                  U l        0 nUR                   H  n[        XCU5      X4'   M     [        UR                  5       5      U l        g r?   )_tracer_cls
tracer_cls_tracer_extrastracer_extrasnodesr   rp   values)r:   r   r1   r]  r   s        r   r5   _GraphPickleData.__init__  sP    ++"1168KKD)$w?EK  5<<>*
r   r   rW   c                     [         R                  R                  XR                  U R                  5      n0 nU R
                   H  nUR                  X4U5      XE'   M     U$ r?   )rC   rD   r  rZ  r\  r]  r   )r:   r   rW   r   r]  nds         r   r   _GraphPickleData.unpickle!  sN     r??D4F4FG68**BE.AEI  r   )r]  rZ  r\  )r%   r&   r'   r(   rC   rD   r  r!   r5   rE   rh   r   r,   r$   r   r   r   r     sS    +ehhnn +w +4 +&	((&&	8F			r   r   c                       \ rS rSr\S\S\R                  R                  S\	\
\\/\R                  R                  4   \	\\4   4   4S j5       rS\SS4S jrS	\S\4S
 jrSrg)rO   i-  rb   r=   r   c                 B    U R                   U " U5      UR                  44$ r?   r   r   s      r   rB   '_TracingContextPickleData.reduce_helper.  s*     LLC''
 	
r   contextNc                 6   UR                   U l         UR                  U l        UR                  U l        UR                  U l        UR                  U l        UR
                  U l        UR                  U l        UR                  U l        UR                  U l        g r?   )	module_contextframe_summary_stackloc_in_frameaot_graph_nameparams_flatparams_flat_unwrap_subclassesparams_unwrapped_to_flat_indexoutput_strides#force_unspec_int_unbacked_size_like)r:   rf  s     r   r5   "_TracingContextPickleData.__init__=  s    %44#*#>#> #00%44"..-4-R-R*.5.T.T+%4477 	0r   rW   c                 b   [        UR                  5      nU R                  Ul        U R                  Ul        U R                  Ul        U R
                  Ul        U R                  Ul        U R                  Ul        U R                  Ul        U R                  Ul	        U R                  Ul
        U$ r?   )r   rf   rh  ri  rj  rk  rl  rm  rn  ro  rp  )r:   rW   rf  s      r   r   "_TracingContextPickleData.unpickleS  s     !9!9:!%!4!4&*&>&>##00!%!4!4"..040R0R-151T1T.!%!4!444 	3 r   )	rk  rp  ri  rj  rh  ro  rl  rm  rn  )r%   r&   r'   r(   rq   r.   rC   rN   r   rp   r   r   rh   r6   rB   r5   r   r,   r$   r   r   rO   rO   -  s    
"
).)E)E
	$')E)EEFd''(	*

 

 
4 
,~ . r   rO   )Br   r   r\   r   abcr   typingr   r   r   r   r   r	   typing_extensionsr
   r   rC   torch.utils._pytreeutils_pytreer  torch._guardsr   torch._subclasses.fake_tensorr   r   r   torch._subclasses.meta_utilsr   r   r   r   r   %torch.fx.experimental.symbolic_shapesr   torch.utils._mode_utilsr   rL   SymFloatr   r)   r*   r   	dataclassr!   Picklerr.   rh   r7   r6   	Unpicklerri   rK   rM   rA   rQ   rF   r   rJ   r  r  r  r!  r"  r   rO   r$   r   r   <module>r     sq     	   C C ,  $ $ ( L L 
 3 : / Ku~~>	3 4  C C CX$6>> X$vI I 3V< 
Bf&& 
B2 2>1 1>;
 ;
|) )X <% %PB# B#J} M - &= &$:M : @3 3r   