
    IЦi                     F   S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJr  S SK	J
r
JrJrJrJrJr  S SKrSSKJrJr  SSKJrJrJrJr  SSKJr  SS	KJr  SS
KJrJ r J!r!J"r"  SSKJ#r#J$r$J%r%  SSK&J'r'J(r(J)r)J*r*J+r+J,r,  SSK-J.r.  S r/ " S S5      r0\ Rb                  SS j5       r2g)    N)MutableMapping)CellType)AnyDictListOptionalSetType   )utils	variables)bytecode_from_templatecreate_call_functioncreate_call_methodcreate_instruction)	PyCodegen)unimplemented)GlobalSourceLocalCellSourceLocalSourceSource)is_frozen_dataclassnn_module_new
object_new)AttributeMutationAttributeMutationExistingAttributeMutationNewis_side_effect_safeValueMutationExistingVariableTracker)FrozenDataClassVariablec                 >    U R                  5        H	  u  p#X1U'   M     g N)items)	dict_fromdict_tokvs       Y/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torch/_dynamo/side_effects.py_manual_update_dictr*   #   s    !
 "    c                   &  ^  \ rS rSr% Sr\\\4   \S'   \\\\	\4   4   \S'   \
\   \S'        S<U 4S jjrS\S\4S	 jrSS S\\	   4S
 jrS rS rS rS rS rS\S\	S\4S jrS=S jrS rS rS\S\	4S jrS\S\	S\4S jr\S 5       rS rS r S r!S r"\#4S\S\4S  jjr$\$r%S\S\4S! jr&S"\'S#\S$\4S% jr(  S>S& jr)S' r*S(\\'   S)\+S*\4S+ jr,S(\'S\4S, jr-S- r.S. r/S/ r0S0 r1S1 r2S2\34S3 jr4S4 r5S5 r6S6 r7S7 r8S2\34S8 jr9S9 r:S: r;S;r<U =r=$ )?SideEffects(   zd
Track side effects (list mutation, setattr, etc) that need to be
applied after an FX graph is run.
id_to_variablestore_attr_mutations	keepalivec                   > [         TU ]  5         [        R                  " U5      U l        U=(       d    0 U l        U=(       d    0 U l        U=(       d    / U l        U=(       d    / U l        U=(       d    0 U l	        S U l
        g r#   )super__init__weakrefrefoutput_graph_weakrefr/   r0   r1   save_for_backwardtensor_hooksca_final_callbacks_var)selfoutput_graphr/   r0   r1   r8   r9   	__class__s          r)   r4   SideEffects.__init__2   sj     	$+KK$=!,2$8$>B!"b!2!8b(.B '+#r+   otherreturnc                 "   [        U[        5      (       d   eU R                  UR                  :H  =(       aY    U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R
                  UR
                  :H  $ r#   )
isinstancer-   r/   r0   r8   r9   )r;   r?   s     r)   __eq__SideEffects.__eq__F   s}    %---- 5#7#77 8))U-G-GG8&&%*A*AA8 !!U%7%77		
r+   c                    U R                   UR                   :w  aB  U R                   R                  5       nUR                   R                  5       nX#:w  a  SU SU 3$ gU R                  UR                  :w  aB  U R                  R                  5       nUR                  R                  5       nXE:w  a  SU SU 3$ gU R                  UR                  :w  a  gU R                  UR                  :w  a  gg )Nzid_to_variable keys: z != zid_to_variable: unknown diffzstore_attr_mutations keys: z"store_attr_mutations: unknown diffr8   r9   )r/   keysr0   r8   r9   )r;   r?   sk_itvok_itvsk_samok_sams         r)   diffSideEffects.diffP   s    %"6"66((--/F))..0F.vhd6(CC 2&&%*D*DD..335F//446F4VHDII7##u'>'>>&%"4"44!r+   c                 4   U R                  U R                  5       [        U R                  5      U R                  R                  5        VVs0 s H  u  pU[        U5      _M     snn[        U R                  5      U R                  U R                  S9$ s  snnf )zCreate a shallow copy)r<   r/   r0   r1   r8   r9   )
r=   r7   dictr/   r0   r$   listr1   r8   r9   )r;   r'   r(   s      r)   cloneSideEffects.clonef   s    ~~224 3 34'+'@'@'F'F'H"'Htq47
'H" 4>>*"44**  	
 		
"s   Bc                 2    [        U5      U R                  ;   $ r#   )idr/   r;   items     r)   __contains__SideEffects.__contains__s   s    $x4....r+   c                 2    U R                   [        U5         $ r#   )r/   rS   rT   s     r)   __getitem__SideEffects.__getitem__v   s    ""2d8,,r+   c                     U R                  5       nU=(       a[    UR                  R                  R                  R                  =(       a*    UR                  R                  R                  R
                  $ r#   )r7   
current_txoutputcurrent_tracerunder_activation_checkpoint#allow_side_effects_under_checkpoint)r;   r<   s     r)   *should_allow_side_effects_under_checkpoint6SideEffects.should_allow_side_effects_under_checkpointy   sZ    002 b''..==YYb''..==aa	
r+   c                     SSK Jn  [        X5      (       a  gU R                  5       (       a  g[	        UR
                  5      (       d  [        S5        g g )Nr   )AutogradFunctionContextVariableTzOHigherOrderOperator: Mutating a variable not in the current scope (SideEffects))torch._dynamo.variables.miscrd   rB   ra   r   mutation_typer   )r;   rU   rd   s      r)   check_allowed_side_effect%SideEffects.check_allowed_side_effect   sH    P d<<::<<"4#5#566a 7r+   rU   namevaluec                     U R                  U5      (       d   eU R                  U5        XR                  ;  a  0 U R                  U'   X0R                  U   U'   g r#   )is_attribute_mutationrg   r0   )r;   rU   ri   rj   s       r)   
store_attrSideEffects.store_attr   sV    ))$////&&t,000.0D%%d+05!!$'-r+   c                     U(       a  U R                  U5      (       d   eU R                  U   U   nU(       d*  [        U[        R                  5      (       a  [        S5        U$ )Nzread deleted attribute)rl   r0   rB   r   DeletedVariabler   )r;   rU   ri   
deleted_okcheckresults         r)   	load_attrSideEffects.load_attr   sT    --d3333**406j1J1JKK23r+   c                     UR                  5       (       a  [        S5        [        U[        R                  5      (       d   e[        U[        R
                  5      (       d   eU R                  USU5        g )Nz5Dynamo currently doesn't support writing to such cellcell_contents)is_immutabler   rB   r   CellVariabler    rm   )r;   cellvarrj   s      r)   
store_cellSideEffects.store_cell   s\    !!QR'9#9#9::::%!:!:;;;;%8r+   c                     [        U[        R                  5      (       d   eU R                  US5      (       a  U R	                  USSS9$ UR
                  (       a  UR
                  $ [        S5        g )Nrw   F)rr   zcannot read uninitialized cell)rB   r   ry   has_pending_mutation_of_attrrt   pre_existing_contentsr   )r;   rz   s     r)   	load_cellSideEffects.load_cell   sa    '9#9#9::::,,WoFF>>'?%>HH((00067r+   gvarc                 f    [        U[        R                  5      (       d   eU R                  X5      $ r#   )rB   r   r    rt   )r;   r   ri   s      r)   load_globalSideEffects.load_global   s*    $	 9 9::::~~d))r+   c                     [        U[        R                  5      (       d   e[        U[        R                  5      (       d   eU R                  XU5        g r#   )rB   r   r    rm   )r;   r   ri   rj   s       r)   store_globalSideEffects.store_global   sB    $	 9 9::::%!:!:;;;;E*r+   c                 R    [         R                  " U SS 5      [        R                  L $ )N__getattribute__)inspectgetattr_staticobjectr   )clss    r)   "cls_supports_mutation_side_effects.SideEffects.cls_supports_mutation_side_effects   s*     ""3(:DA&&'	
r+   c                 6    [        UR                  [        5      $ r#   )rB   rf   r   rT   s     r)   rl   !SideEffects.is_attribute_mutation   s    $,,.?@@r+   c                 z    U R                  U5      =(       a$    [        U R                  R                  U5      5      $ r#   )rl   boolr0   getrT   s     r)   has_pending_mutation SideEffects.has_pending_mutation   s5    ))$/ 
D%%))$/5
 	
r+   c                 n    U R                  U5      =(       a    X R                  R                  US5      ;   $ )N )rl   r0   r   )r;   rU   ri   s      r)   r~   (SideEffects.has_pending_mutation_of_attr   s6    ))
 >//33D"==	>r+   c                     UR                  5       (       a  g[        UR                  [        5      (       a  gU R	                  U5      (       a  XR
                  ;   $ UR                  R                  $ )NFT)rx   rB   rf   r   rl   r0   is_modifiedrT   s     r)   r   SideEffects.is_modified   s]    d((*>??%%d++4444!!---r+   variablec           
      N   UR                   c   e[        U5      U R                  ;   a>  [        U SUR                    SU R                  [        U5         R                    S35      eU" 5       Ul        X R                  [        U5      '   U R
                  R                  U5        U$ )z*Start tracking a new variable for mutationz is already tracked for mutation. This could be because you are not using VariableBuilder to construct the variable tracker. Source of new object: z'. Source of previously tracked object: .)sourcerS   r/   AssertionErrorrf   r1   append)r;   rU   r   mutation_type_clss       r)   
_track_objSideEffects._track_obj   s     ***d8t*** * ) *2(9 :88<8K8KBtH8U8\8\7]]^	`  "3!4(0BtH%d#r+   c                 *    U R                  X[        S9$ )N)r   )r   r   )r;   rU   r   s      r)   track_object_existing!SideEffects.track_object_existing   s     
 .G  
 	
r+   
cls_sourceuser_clsvariable_clsc                 8   U[         R                  R                  R                  L a<  [        R
                  " SS9   [         R                  R                  5       nS S S 5        OA[        U[         R                  R                  5      (       a  [        U5      nO [        U5      nU" W4S[        U5      0UD6nX`R                  [!        U5      '   U R"                  R%                  U5        U$ ! , (       d  f       NV= f! [         a    [        SU 35         Nsf = f)NT)recordz'Unable to construct the object of type rf   )torchautogradfunctionFunctionCtxwarningscatch_warningsFunction
issubclassnnModuler   r   	TypeErrorr   r   r/   rS   r1   r   )r;   r   r   r   optionsobjr   s          r)   track_object_newSideEffects.track_object_new   s     u~~..:::((5nn--/ 65%((//22)CT *  
.z:
 

 (0BsG$c"' 65  T  GzRS	Ts   C-C> -
C;>DDc                    UR                   nUR                  n[        R                  n[	        U[
        R                  R                  5      (       a  [        R                  nOM[	        U[        5      (       a  [        R                  nO'[        U5      (       a  [        nO[        R                  n[	        U[        R                  5      (       d   e[        R                  " XBS9nU R                  X#U0 5      $ )N)r   )r   rj   r   UserDefinedObjectVariabler   r   r   r   UnspecializedNNModuleVariabler   MutableMappingVariabler   r!   	functoolspartialr   )r;   cls_variabler   r   r   s        r)   (track_object_new_from_user_defined_class4SideEffects.track_object_new_from_user_defined_class  s     "((
%%
 // 	 h00$BBL.11$;;L **2L$>>L,	(K(KLLLL ((M$$Z<LLr+   c                     [        5       n[        R                  " [        5       S9nX R                  [        U5      '   U R                  R                  U5        U$ )Nrf   )r   r   ry   r   r/   rS   r1   r   )r;   r   r   s      r)   track_cell_newSideEffects.track_cell_new,  sL     h)).0
 (0BsG$c"r+   r   cellcontentsc                     [         R                  " Uc  S O	[        5       UUS9nX@R                  [	        U5      '   U R
                  R                  U5        U$ )N)rf   r   r   )r   ry   r   r/   rS   r1   r   )r;   r   r   r   r   s        r)   track_cell_existingSideEffects.track_cell_existing7  sT     )) #).$6O6Q"*
 )1BtH%d#r+   c                     [         R                  " [        5       US9nX0R                  [	        U5      '   U R
                  R                  U5        U$ )N)rf   r   )r   NewGlobalVariabler   r/   rS   r1   r   )r;   r   rU   r   s       r)   track_global_existing!SideEffects.track_global_existingE  sF    ..35
 )1BtH%d#r+   c                 ~    [        U[        R                  5      (       d   eU R                  R	                  X45        g r#   )rB   r   rd   r8   r   )r;   ctxargss      r)   track_save_for_backward#SideEffects.track_save_for_backwardN  s1    #yHHIIII%%sk2r+   c                     UR                    H`  n[        U5      nUR                  U   nX0R                  ;  d  M.  [        U[        R
                  5      (       d  MO  U R                  X$5        Mb     g r#   )r1   rS   r/   rB   r   TensorVariabler   )r;   r?   
other_itemother_idother_variables        r)   1track_tensor_variables_from_runahead_side_effects=SideEffects.track_tensor_variables_from_runahead_side_effectsR  s^      //J*~H"11(;N222z	 8 88 8 **:F *r+   c                   ^ ^^^	 [        5       m	[        5       mS[        4UU UU	4S jjmS[        4U4S jjnT R                  R                  5        Vs/ s H&  n[	        UR
                  [        5      (       a  M$  UPM(     nn[        R                  " TUR                  UR                  UUR                  R                  T R                  45        @T R                  R                  5        VVs0 s H  u  pVU" U5      (       d  M  XV_M     snnT l        T R                  R                  5        VVs0 s H  u  pVU" U5      (       d  M  XV_M     snnT l        g s  snf s  snnf s  snnf )Nvarc                    > U T;   a  g TR                  U 5        [        U R                  [        5      (       a  TR                  U 5        U TR                  ;   a%  [
        R                  " TTR                  U    5        g g r#   )addrB   rf   r   r0   r    visit)r   live_new_objectsr;   r   visiteds    r)   r   0SideEffects.prune_dead_object_new.<locals>.visitc  sn    g~KK#++-ABB $$S) d///%%444S9 0r+   c                 N   > [        U R                  [        5      (       a  U T;   $ gNT)rB   rf   r   )r   r   s    r)   is_live2SideEffects.prune_dead_object_new.<locals>.is_liver  s&    #++-ABB...r+   )setr    r/   valuesrB   rf   r   r   stacksymbolic_localsr]   backward_stater9   r$   r0   )
r;   txr   r   pre_existing_varsr'   r(   r   r   r   s
   `      @@@r)   prune_dead_object_new!SideEffects.prune_dead_object_new^  s=   (+14	 	 		 	 **113
3c//1EF 3 	 
 	 ""!		((!!
	
  "00668
8TQGAJDAD8
 "66<<>%
>TQ'!*DAD>%
!E
>
%
s$   #E;E/EE2E$	E$c                     U R                  U5        [        UR                  [        5      (       a  SUR                  l        g g r   )rg   rB   rf   r   r   r;   r   s     r)   mutationSideEffects.mutation  s8    &&s+c'')>??,0C) @r+   c                     U R                   R                  5        Vs/ s H  oR                  U5      (       d  M  UPM     sn$ s  snf r#   )r/   r   r   r   s     r)   _get_modified_varsSideEffects._get_modified_vars  s7    #2299;U;?O?OPS?T;UUUs
   AAcgc           	        ^ U R                  5        GH  n[        UR                  [        5      (       a  [        U[        R
                  5      (       a  UR                  c`  TR                  U4S j5        TR                  [        SS5      5        TR                  U5        [        TR                  U   5      Ul        M  UR                  c  [        UR                  5      Ul        M  M  [        UR                  [        5      (       a  [        U[        R                  5      (       a  [!        S5        TR                  U4S j5        T" UR                  R"                  5        TR                  [        SS5      5        TR                  U5        [        TR                  U   5      Ul        GM  UR                  b  GM   e   U R$                   Hi  u  p4T" UR                  5        TR'                  S5        U H  nT" U5        M     TR                  / [)        [+        U5      5      Q[-        S5      P5        Mk     g )	Nc                  D   > T R                  [        R                  S5      $ )N	make_cellload_import_fromr   __name__r   s   r)   <lambda>3SideEffects.codegen_save_tempvars.<locals>.<lambda>       3 3ENNK Pr+   r   Fz'AutogradFunctionContextVariable escapedc                  D   > T R                  [        R                  S5      $ )Nr   r   r  s   r)   r  r    s    B//Mr+   r   r8   POP_TOP)r   rB   rf   r   r   ry   
local_nameadd_push_nullextend_outputr   	add_cacher   tempvarsr   r   rd   r   r   r8   load_methodr   lenr   )r;   r   r   r   r   args    `    r)   codegen_save_tempvars!SideEffects.codegen_save_tempvars  s    **,C#++-ABBzY++H H >>)$$P $$%9!U%CDLL%!,R[[-=!>CJZZ'!0!@CJ (C--/CDDc9#L#LMM!"KL  M 3$$//0  !5a!?@S!(S)9:
 zz---= -@ //ICszzNNN./3 'D	2&y1 0r+   c                    [        U[        R                  5      (       d   e[        U[        R                  5      (       d   e[        U[        R                  5      (       a  UR                  5       (       d   e[        [        R                  U5      (       d   e[        U R                  R                  5       5      nXPR                  ;   a  US-  nXPR                  ;   a  M  XX44U R                  U'   UR                  (       a   eXSl        g )Nr   )rB   r   r   r    RemovableHandleVariable
is_mutablehasattrr   Tensorr  r9   rF   idx)r;   tensorhookhandleri   r  s         r)   register_hookSideEffects.register_hook  s    &)":":;;;;$	 9 9::::vy@@AA!!##	
$ u||T****$##((*+&&&1HC &&&"(!=#::~
r+   c                     U R                   U	 g r#   )r9   )r;   r  s     r)   remove_hookSideEffects.remove_hook  s    c"r+   c                    ^^^ U R                   R                  5        Hm  u  mnnmTR                  (       d   S5       eUUU4S jnTR                  U5        T" U5        TR	                  [        SS5      5        TR                  U5        Mo     g )Nz4Hooks on non input tensors NYI - should not get herec                  X   > T " T5        T R                  T R                  T5      /5        g r#   )r  create_load_attr)r   ri   r  s   r)   gen_fn)SideEffects.codegen_hooks.<locals>.gen_fn  s&    6
  ""5"5d";!<=r+   r   F)r9   r   r   r
  r  r   r  )r;   r   r  r  r$  ri   r  s    `   @@r)   codegen_hooksSideEffects.codegen_hooks  s     %%'
F ==X"XX=> V$tH1!U;< LL ] (r+   c                 ~    SSK Jn  U R                  c  [        R                  " / U" 5       S9U l        U R                  $ )Nr   )ValueMutationNewr   )variables.baser)  r:   r   ListVariable)r;   r)  s     r)   get_ca_final_callbacks_var&SideEffects.get_ca_final_callbacks_var  s;    4&&.*3*@*@"2"4+D' ***r+   c           
         ^^ / nU R                  5        G	HB  m[        T[        R                  5      (       ap  T" TSS9  T" TR                  5        TR                  TR                  S 5      TR                  S 5      [        SSS9/5        UR                  [        S5      /5        M  [        T[        R                  R                  5      (       a  [        TR                  [        R                  5      (       a  TR                  R                  b  [        S5        T" TR                  5        TR                  S5        T" TSS9  UR                  / [!        S	5      Q[        S
5      P5        T" TR                  5        TR                  S5        UR                  / [!        S5      Q[        S
5      P5        GM  [        T[        R"                  5      (       Ga  0 n[$        R&                  R(                   H)  nTR*                  R,                  R/                  5       X4'   M+     T" TR                  5        TR                  [        SUS   S9/5        T" TSS9  TR                  [        SUS   S9/5        T" TR                  5        TR                  S5        [1        [$        US9nUR                  / [!        S5      Q[        S
5      PUQ[        S
5      P5        GM  [        T[        R2                  5      (       a  TR5                  5       (       a  T" TR                  5        TR                  S5        T" TSS9  TR6                  (       a#  T" TR                  5        TR                  S5        UR                  / [!        S	5      Q[        S
5      P5        TR6                  (       a*  UR                  / [!        S5      Q[        S
5      P5        GM  GM  GM  [        T[        R8                  R:                  5      (       Ga  TR=                  U4S j5        TR?                  SS5        [        R8                  RA                  5       nTRB                  S==   U4-  ss'   TRE                  [        SUS95        TR=                  U4S j5        TRG                  TRH                  5        TRE                  [        S[K        TRH                  5      S95        TR?                  S	S5        TRE                  [        S
5      5        GM  [        T[        RL                  5      (       ag  TRN                  bZ  TU RP                  ;   aG  U RS                  T5      nT" U5        UR                  TRU                  TRN                  5      /5        GMq  GMt  U RW                  T5      (       Ga  [Y        U RP                  R[                  T0 5      R]                  5       5       GHS  u  pG[        T[        R^                  5      (       aj  TR*                  R,                  Ra                  U5        T" U5        [        TR                  [b        5      (       d   eUR                  [        SUS9/5        M  [        U[        Rd                  5      (       a  [        TRf                  [h        5      (       as  [k        [m        TSS 5      U5      (       aT  TR*                  R,                  Ra                  U5        T" TR                  5        UR                  [        SUS9/5        GM=  GM@  GMC  [        T[        Rn                  5      (       a  TRq                  5       (       a  TRs                  SS5        TR                  S5        T" TR                  5        T" [        R                  " U5      5        T" U5        UR                  / [!        S5      Q[        S
5      P5        GM  TR*                  R,                  Ra                  U5        T" U5        T" TR                  5        UR                  [        SUS9/5        GMV     GM  [        T[        Rt                  5      (       ah  [w        TRx                  5       HL  nTR=                  U4S j5        T" TR                  5        TR?                  S	S5        TR{                  5         MN     GM  [        T[        R|                  5      (       ar  UU4S  jn	TR=                  U	5        T" TR                  TR                  R                  5       5      5        UR                  / [        S	S5      Q[        S
5      P5        G	M1  [        [        T5      5      e   [Y        U5       H  n
TR                  U
5        M     g )!NF)allow_cacheBUILD_SLICE   )r  STORE_SUBSCRz1side effect on existing deque with limited maxlenextendr   r  clearr   
STORE_FASTr&   )argvalr%   )varname_mapupdatec                  D   > T R                  [        R                  S5      $ )Nget_torch_function_mode_stackr   r  s   r)   r  4SideEffects.codegen_update_mutated.<locals>.<lambda>      B//(Gr+   co_varnamesc                  D   > T R                  [        R                  S5      $ )Nset_torch_function_mode_stackr   r  s   r)   r  r;    r<  r+   
BUILD_LISTSTORE_GLOBALrj   DELETE_ATTRbuiltinsr   __setattr__   
STORE_ATTRc                  D   > T R                  [        R                  S5      $ )N	iter_nextr   r  s   r)   r  r;    r  r+   c                  L   > T " TR                   5        T R                  S5        g )Nsetstate)r   rt   )r   r   s   r)   r$  2SideEffects.codegen_update_mutated.<locals>.gen_fn  s    szzNLL,r+   )Er   rB   r   r+  r   r  create_load_constr   r   listsDequeVariablemaxlenConstantVariablerj   r   r  r   CustomizedDictVariabler*   __code__r=  r   r]   new_varr   ConstDictVariablehas_new_itemsshould_reconstruct_alltorch_functionTorchFunctionModeStackVariabler
  call_functionget_prev_stack_var_namecode_optionsappend_outputforeachsymbolic_stackr  ry   r	  r0   r   create_store_derefrl   reversedr   r$   r   update_co_namesr   rp   rf   r   r  getattrr   needs_slow_setattrr  ListIteratorVariablerangeindexpop_topRandomVariable
wrap_staterandomgetstater   r   type)r;   r   suffixesr7  ri   dict_update_instscontents_varrj   _r$  suffixr   s    `         @r)   codegen_update_mutated"SideEffects.codegen_update_mutated&  s   **,C#y55663E*3::  ,,T2,,T2*=a@ !3N!C DEC!>!>?? szz9+E+EFF

((0!"UV 3::x(3E*+A.*95 3::w'+A.*95 C!A!ABB /88DDD(*(<(<(>K% E 3::  '[=STU 3E*  '[=UVW 3::w' %;'[%! +A.*95 + +95	 C!<!<== $$&&szzNNN8,s.113::w/OO/2.y9 11 !!3A!6 29 = 2! '4 Y--LL    
   E* //GGI.4'9.  !3L!NO   

3--.  &|S=O=O9PQ   E*  !3I!>?C!7!788S^^=W $333#'>>##6L|$OOR%:%:3>>%J$KL 4
 ++C00" $,--11#r:@@B$KD "#y'B'BCC44T:5	)#**lCCCC /tLM $E9+D+DEE%--/H %gc7D&A4HHEELL88>szzN$OO!3M$!O P I #3	(K(KLL2244 ++JA}53::955d;<5	 S03S5G	5RS 44T:5	3:: );LQU)V(WXI$J C!?!?@@syy)A$$P szzN$$Q.JJL * C!9!9::-   (3>>#**"5"5"789-a7*95 %T#Y// -D x(FV$ )r+   c                     [        [        U R                  U R                  R	                  5       5      5      =(       d2    U R
                  =(       d    U R                  =(       d    U R
                  (       + $ r#   )anymapr   r/   r   r9   r8   r;   s    r)   is_emptySideEffects.is_empty  s\    D$$d&9&9&@&@&BCD !  !%%!   	
 	
r+   c                 l    U R                   R                  5         U R                  R                  5         g r#   )r1   r4  r/   rw  s    r)   r4  SideEffects.clear  s$    !!#r+   )r:   r/   r1   r7   r8   r0   r9   )NNNNN)FF)r   z"variables.UserDefinedClassVariable)>r  
__module____qualname____firstlineno____doc__r   intr    __annotations__strr   r   r4   r   r   rC   r   rK   rP   rV   rY   ra   rg   rm   rt   r{   r   r   r   staticmethodr   rl   r   r~   r   r   r   track_mutabler   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r&  r,  rr  rx  r4  __static_attributes____classcell__)r=   s   @r)   r-   r-   (   s   
 o-..S/5I0JJKKCy
 !+(
F 
t 
- HSM ,
/-
6 6c 6/ 698* *s *+ + +O +
 
 
A

>
. 0	 ". M

 "
  	:M:M4	v&.6BQF # 3
G=
~1
V-	 -^ #4!l+e% e%N
$ $r+   r-   c              #   L  #    U R                   R                  R                  (       d   eU R                   R                  R                  n SU R                   R                  l        S v   XR                   R                  l        g ! XR                   R                  l        f = f7fr   )r]   r^   r_   r`   )r   orig_vals     r)   r`   r`     sn     99##????yy''KKHPGK		  DGO		  Dx		  Ds   AB$B *B$B!!B$)r   InstructionTranslator)3
contextlibr   r   r   r5   collections.abcr   typesr   typingr   r   r   r   r	   r
   torch.nnr    r   r   bytecode_transformationr   r   r   r   codegenr   excr   r   r   r   r   r   r   r   r   r*  r   r   r   r   r   r    variables.user_definedr!   r*   r-   contextmanagerr`   r   r+   r)   <module>r     s         *  7 7      F F A A  <
o$ o$d P Pr+   