
    #hYg                        d dl Z d dlZd dlZd dlmZmZmZ d dlmZm	Z	m
Z
 ddlmZ ddlmZmZ ddlmZ e	j"                  e	j$                  e	j&                  e	j(                  e	j$                  e	j$                  e	j(                  e	j(                  e	j*                  e	j*                  e	j,                  e	j,                  e	j.                  e	j.                  e	j0                  e	j0                  e	j2                  e	j2                  e	j4                  e	j4                  i
Ze	j"                  e	j*                  e	j&                  e	j,                  e	j*                  e	j*                  e	j,                  e	j,                  e	j$                  e	j*                  e	j(                  e	j,                  e	j.                  e	j.                  e	j0                  e	j0                  e	j2                  e	j2                  e	j4                  e	j4                  i
Ze	j"                  e	j.                  e	j&                  e	j0                  e	j*                  e	j.                  e	j,                  e	j0                  e	j$                  e	j.                  e	j(                  e	j0                  e	j.                  e	j.                  e	j0                  e	j0                  e	j2                  e	j2                  e	j4                  e	j4                  i
Ze	j"                  e	j2                  e	j&                  e	j4                  e	j$                  e	j2                  e	j(                  e	j4                  e	j2                  e	j2                  e	j4                  e	j4                  e	j*                  e	j2                  e	j,                  e	j4                  e	j.                  e	j2                  e	j0                  e	j4                  i
Zd Zd	ed
   fdZ  ejB                  d       G d de
             Z" ejB                  d       G d de
             Z# ejB                  d       G d de
             Z$ ejB                  d       G d de
             Z% ejB                  d       G d de
             Z& ejB                  d       G d de             Z' ejB                  d       G d de'             Z( ejB                  d       G d de             Z) ejB                  d       G d de
             Z* ejB                  d       G d  d!e             Z+ ejB                  d       G d" d#e)             Z, ejB                  d       G d$ d%e)             Z- ejB                  d       G d& d'e
             Z. G d( d)ej^                        Z0 ejB                  d       G d* d+e             Z1 ejB                  d       G d, d-e             Z2 ejB                  d       G d. d/e             Z3 ejB                  d       G d0 d1e             Z4 ejB                  d       G d2 d3e             Z5 G d4 d5e      Z6 ejB                  d       G d6 d7e             Z7 ejB                  d       G d8 d9e             Z8 ejB                  d       G d: d;e8             Z9 ejB                  d       G d< d=e8             Z: ejB                  d       G d> d?e             Z; ejB                  d       G d@ dAe             Z< ejB                  d       G dB dCe             Z= ejB                  d       G dD dEe             Z> ejB                  d       G dF dGe>             Z? ejB                  d       G dH dIe?             Z@ ejB                  d       G dJ dKe>             ZA ejB                  d       G dL dMe
             ZB ejB                  d       G dN dOe
             ZC ejB                  d       G dP dQe
             ZD ejB                  d       G dR dSe             ZE ejB                  d       G dT dUe             ZF ejB                  d       G dV dWe             ZG ejB                  d       G dX dYe             ZH ejB                  d       G dZ d[e
             ZI ejB                  d       G d\ d]e
             ZJd^d_d	e
fd`ZKd	e
fdaZLd	e
fdbZMd	e
fdcZNd	e
fddZOy)e    N)AnyOptionalUnion)ChainedSourceGuardSourceSource   )utils)create_call_functioncreate_instruction)	enum_reprc                     t        | t              ry	 | j                         t        j                  k(  ry	 y# t
        $ r Y yw xY wNTF)
isinstanceConstantSourceguard_sourcer   CONSTANTNotImplementedErrorsources    Q/var/www/html/sandstorm/venv/lib/python3.12/site-packages/torch/_dynamo/source.pyis_constant_sourcer   M   sO    &.) K$8$88 9
   s   !7 	AAr   )GetItemSourceODictGetItemSourcec                    | j                   j                  |       t        | j                  t              r| j                  j                  |       y |rAt        | t
              sJ |j                  |j                  | j                                      y |j                  |j                  | j                               y N)	basereconstructr   indexr   r   append_outputcreate_load_constunpack_slice)r   codegenindex_is_slices      r   reconstruct_getitemr%   Y   s     KKG$&,,'  )fm444!!'";";F<O<O<Q"RS!!'";";FLL"IJ    T)frozenc                   F    e Zd ZU eed<   dZeed<   dZeed<   d Zd Z	d Z
y)	LocalSource
local_nameFis_inputis_derefed_cell_contentsc                     | j                   r|j                  | j                         y |j                  |j	                  | j                               y r   )r,   
load_derefr*   r    create_loadselfr#   s     r   r   zLocalSource.reconstructs   s:    ((t/!!'"5"5doo"FGr&   c                 "    t         j                  S r   )r   LOCALr1   s    r   r   zLocalSource.guard_sourcey   s       r&   c                 4    dt        | j                         dS )NzL[])reprr*   r4   s    r   namezLocalSource.name|   s    D)*!,,r&   N)__name__
__module____qualname__str__annotations__r+   boolr,   r   r   r8    r&   r   r)   r)   g   s0    O Hd
 &+d*H!-r&   r)   c                   *    e Zd ZU eed<   d Zd Zd Zy)SyntheticLocalSourcer*   c                 X    |j                  |j                  | j                               y r   )r    r/   r*   r0   s     r   r   z SyntheticLocalSource.reconstruct   s    g11$//BCr&   c                 "    t         j                  S r   )r   SYNTHETIC_LOCALr4   s    r   r   z!SyntheticLocalSource.guard_source   s    ***r&   c                 "    d| j                   dS )NzSYNTHETIC_LOCAL[r6   )r*   r4   s    r   r8   zSyntheticLocalSource.name   s    !$//!4A66r&   Nr9   r:   r;   r<   r=   r   r   r8   r?   r&   r   rA   rA      s    OD+7r&   rA   c                   *    e Zd ZU eed<   d Zd Zd Zy)RandomValueSourcerandom_call_indexc                 "    t         j                  S r   )r   RANDOM_VALUEr4   s    r   r   zRandomValueSource.guard_source   s    '''r&   c                    |j                  |j                  |j                  j                  j                               |j                  |j                  | j                               |j                  t        d             y NBINARY_SUBSCR)r    r/   txoutputrandom_values_varr!   rI   r   r0   s     r   r   zRandomValueSource.reconstruct   s^    g11'**2C2C2U2UVWg778N8NOP0ABr&   c                      d| j                    S )Nrandom_value_)rI   r4   s    r   r8   zRandomValueSource.name   s    t55677r&   N)r9   r:   r;   intr=   r   r   r8   r?   r&   r   rH   rH      s    (C
8r&   rH   c                   *    e Zd ZU eed<   d Zd Zd Zy)GlobalSourceglobal_namec                 \    |j                  |j                  | j                  d             y NTaddr    create_load_globalrW   r0   s     r   r   zGlobalSource.reconstruct   s&    g889I9It8TUr&   c                 "    t         j                  S r   r   GLOBALr4   s    r   r   zGlobalSource.guard_source       !!!r&   c                 4    dt        | j                         dS )NG[r6   r7   rW   r4   s    r   r8   zGlobalSource.name   s    D))*+1--r&   NrF   r?   r&   r   rV   rV      s    V".r&   rV   c                   *    e Zd ZU eed<   d Zd Zd Zy)GlobalWeakRefSourcerW   c                 h     j                   fd       j                  t        dd             y )Nc                  \     j                   j                  j                  d            S rY   r\   r#   r1   s   r   <lambda>z1GlobalWeakRefSource.reconstruct.<locals>.<lambda>   s+    G))**4+;+;*F r&   r   Fadd_push_nullextend_outputr   r0   s   ``r   r   zGlobalWeakRefSource.reconstruct   s.    	

 	21e<=r&   c                 "    t         j                  S r   r_   r4   s    r   r   z GlobalWeakRefSource.guard_source   ra   r&   c                 4    dt        | j                         dS )Nrc   z]()rd   r4   s    r   r8   zGlobalWeakRefSource.name   s    D))*+3//r&   NrF   r?   r&   r   rf   rf      s    >"0r&   rf   c                       e Zd Zd Zd Zd Zy)WeakRefCallSourcec                 h     j                   fd       j                  t        dd             y )Nc                  :    j                   j                         S r   r   r   ri   s   r   rj   z/WeakRefCallSource.reconstruct.<locals>.<lambda>   s    dii&;&;G&D r&   r   Frk   r0   s   ``r   r   zWeakRefCallSource.reconstruct   s(    DE21e<=r&   c                 6    | j                   j                         S r   r   r   r4   s    r   r   zWeakRefCallSource.guard_source       yy%%''r&   c                 <    | j                   j                          dS )Nz()r   r8   r4   s    r   r8   zWeakRefCallSource.name   s    )).."#2&&r&   Nr9   r:   r;   r   r   r8   r?   r&   r   rq   rq      s    >('r&   rq   c                       e Zd Zy)CallFunctionNoArgsSourceNr9   r:   r;   r?   r&   r   r|   r|          r&   r|   c                   0    e Zd ZU eed<   d Zd Zd Zd Zy)
AttrSourcememberc                 ,   | j                   sJ d       d| j                  v rs| j                  j                  d      }t        j	                  | dt        | j                   dj                  |d d                    t        j	                  | d|d          y y )Nz9Can't construct an AttrSource without a valid base source.r   r   )r   r   splitobject__setattr__r   join)r1   member_partss     r   __post_init__zAttrSource.__post_init__   s    yyUUUy$++;;,,S1LfjCHH\#2=N4OP tX|B/?@ r&   c                     | j                   j                  |       |j                  |j                  | j                               y r   r   r   rm   create_load_attrsr   r0   s     r   r   zAttrSource.reconstruct   1    		g&g77DEr&   c                 6    | j                   j                         S r   rv   r4   s    r   r   zAttrSource.guard_source   rw   r&   c                     | j                   j                         s+d| j                  j                          d| j                   dS | j                  j                          d| j                    S )Nzgetattr(, )r   )r   isidentifierr   r8   r4   s    r   r8   zAttrSource.name   sX    {{'')diinn./r$++BB)).."#1T[[M22r&   N)	r9   r:   r;   r<   r=   r   r   r   r8   r?   r&   r   r   r      s    KAF(3r&   r   c                   "    e Zd ZU dZeed<   d Zy)LocalCellSourcez
    Conceptually, this class is `LocalSource` for cell objects implicitly
    generated by Python (e.g., captured variables).
    r*   c                 X    |j                  |j                  | j                               y r   )r    create_load_closurer*   r0   s     r   r   zLocalCellSource.reconstruct   s!     	g99$//JKr&   N)r9   r:   r;   __doc__r<   r=   r   r?   r&   r   r   r      s    
 OLr&   r   c                   .    e Zd ZU dZeed<   d Zd Zd Zy)
GradSourcegradr   c                     | j                   j                  |       |j                  |j                  | j                               y r   r   r0   s     r   r   zGradSource.reconstruct  r   r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   zGradSource.guard_source
  rw   r&   c                 T    | j                   j                          d| j                   S )Nr   )r   r8   r   r4   s    r   r8   zGradSource.name  s#    )).."#1T[[M22r&   N)	r9   r:   r;   r   r<   r=   r   r   r8   r?   r&   r   r   r     s    FCF(3r&   r   c                       e Zd Zd Zy)ParamBufferSourcec                 D    t         | j                  j                            S r   #_GUARD_SOURCE_SPECIALIZED_NN_MODULEr   r   r4   s    r   r   zParamBufferSource.guard_source      24993I3I3KLLr&   Nr9   r:   r;   r   r?   r&   r   r   r     s    Mr&   r   c                       e Zd Zy)UnspecializedParamBufferSourceNr}   r?   r&   r   r   r     r~   r&   r   c                   :    e Zd ZU dZee   ed<   d Zd Zd Z	d Z
y)EphemeralSourceNdescc                 "    t         j                  S r   )r   	EPHEMERALr4   s    r   r   zEphemeralSource.guard_source*      $$$r&   c                 J    d| j                   d| j                   z    dS d dS )Nz
<ephemeralz:  >)r   r4   s    r   r8   zEphemeralSource.name-  s1    		0ED499,NaPP2NaPPr&   c                     t         r   r   r1   fns     r   
make_guardzEphemeralSource.make_guard0      !!r&   c                      yNTr?   r4   s    r   is_ephemeralzEphemeralSource.is_ephemeral3      r&   )r9   r:   r;   r   r   r<   r=   r   r8   r   r   r?   r&   r   r   r   &  s%    D(3-%Q"r&   r   c                       e Zd ZdZdZdZd Zy)TensorPropertyr   r	      c                 v    | t         j                  u ry| t         j                  u ry| t         j                  u ryy )Nsizestridestorage_offset)r   SIZESTRIDESTORAGE_OFFSETr4   s    r   method_namezTensorProperty.method_name<  s:    >&&&^***^222# 3r&   N)r9   r:   r;   r   r   r   r   r?   r&   r   r   r   7  s    DFN$r&   r   c                   D    e Zd ZU eed<   dZee   ed<   d Zd Z	d Z
d Zy)TensorPropertySourcepropNidxc                     | j                   J | j                  t        j                  u r| j                  J y | j                  J y r   )r   r   r   r   r   r4   s    r   r   z"TensorPropertySource.__post_init__J  sD    yy$$$9955588###88'''r&   c                 &    j                   fd        j                  j                          j                  *j	                  j                   j                               j                  t         j                  dndd             y )Nc                  z     j                  t        j                  dj                  j	                                S )Ncall_)load_import_fromr
   r9   r   r   ri   s   r   rj   z2TensorPropertySource.reconstruct.<locals>.<lambda>S  s0    G,,%		(=(=(?'@ A r&   r   r	   F)rl   r   r   r   r    r!   rm   r   r0   s   ``r   r   z TensorPropertySource.reconstructQ  st    	

 			g&88!!'";";DHH"EF dhh&:5I	
r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   z!TensorPropertySource.guard_source_  rw   r&   c                    | j                   t        j                  u r*| j                  j	                          d| j
                   dS | j                   t        j                  u r*| j                  j	                          d| j
                   dS | j                   t        j                  u r+| j
                  J | j                  j	                          dS t        d| j                          )Nz.size()[r6   z
.stride()[z.storage_offset()z
unhandled )	r   r   r   r   r8   r   r   r   AssertionErrorr4   s    r   r8   zTensorPropertySource.nameb  s    99+++iinn&'xz;;YY.///iinn&'z$((1==YY.77788###iinn&''899 :dii[!9::r&   )r9   r:   r;   r   r=   r   r   rT   r   r   r   r8   r?   r&   r   r   r   E  s*    
C#(
(	;r&   r   c                   $    e Zd Zd Zd Zd Zd Zy)NegateSourcec                      | j                   J y r   r   r4   s    r   r   zNegateSource.__post_init__p      yy$$$r&   c                     t         r   r   r0   s     r   r   zNegateSource.reconstructs  r   r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   zNegateSource.guard_sourcev  rw   r&   c                 <    | j                   j                          dS )Nz
.__neg__()ry   r4   s    r   r8   zNegateSource.namey  s    )).."#:..r&   Nr9   r:   r;   r   r   r   r8   r?   r&   r   r   r   n  s    %"(/r&   r   c                   $    e Zd Zd Zd Zd Zd Zy)ConvertIntSourcec                      | j                   J y r   r   r4   s    r   r   zConvertIntSource.__post_init__  r   r&   c                 :    | j                   j                  |       y r   rt   r0   s     r   r   zConvertIntSource.reconstruct      		g&r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   zConvertIntSource.guard_source  rw   r&   c                 >    d| j                   j                          dS )Nz!cast_symbool_to_symint_guardless(r   ry   r4   s    r   r8   zConvertIntSource.name  s    2499>>3C2DAFFr&   Nr   r?   r&   r   r   r   ~  s    %'(Gr&   r   c                   $    e Zd Zd Zd Zd Zd Zy)FlattenScriptObjectSourcec                      | j                   J y r   r   r4   s    r   r   z'FlattenScriptObjectSource.__post_init__  r   r&   c                 :    | j                   j                  |       y r   rt   r0   s     r   r   z%FlattenScriptObjectSource.reconstruct  r   r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   z&FlattenScriptObjectSource.guard_source  rw   r&   c                 <    | j                   j                          dS )Nz.__obj_flatten__()ry   r4   s    r   r8   zFlattenScriptObjectSource.name  s    )).."##566r&   Nr   r?   r&   r   r   r     s    %'(7r&   r   c                   $    e Zd Zd Zd Zd Zd Zy)ScriptObjectQualifiedNameSourcec                      | j                   J y r   r   r4   s    r   r   z-ScriptObjectQualifiedNameSource.__post_init__  r   r&   c                 :    | j                   j                  |       y r   rt   r0   s     r   r   z+ScriptObjectQualifiedNameSource.reconstruct  r   r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   z,ScriptObjectQualifiedNameSource.guard_source  rw   r&   c                 <    | j                   j                          dS )Nz._type().qualified_name()ry   r4   s    r   r8   z$ScriptObjectQualifiedNameSource.name  s    )).."##<==r&   Nr   r?   r&   r   r   r     s    %'(>r&   r   c                       e Zd Zd Zd Zd Zy)AttrProxySourcec                 :    | j                   j                  |       y r   rt   r0   s     r   r   zAttrProxySource.reconstruct  r   r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   zAttrProxySource.guard_source  rw   r&   c                 <    | j                   j                          dS )Nz.get_base()ry   r4   s    r   r8   zAttrProxySource.name  s    )).."#;//r&   Nrz   r?   r&   r   r   r     s    '(0r&   r   c                       e Zd ZU eeef   ed<   dZeed<    e	j                  ddd      Z
eed<    e	j                  ddd      Zeed<   d Zd Zd	 Zd
 Zy)DefaultsSourceidx_keyFis_kw)initr7   comparefield_namec           
      @   | j                   sJ d       | j                  rt        | j                  t              sJ t
        j                  | dd       t
        j                  | d| j                   j                          d| j                   d| j                   d       y t        | j                  t              sJ t
        j                  | dd       t
        j                  | d| j                   j                          d| j                   d	| j                   d
       y )Nz]Base must be a valid source in order to properly track and guard this Defaults to its origin.r   __kwdefaults__r   r   z['z']__defaults__[r6   )
r   r   r   r   r<   r   r   r8   r   rT   r4   s    r   r   zDefaultsSource.__post_init__  s    II	kj	k::dllC000tW.>?g$)).."2!31TZZL4<<.PRS dllC000tWn=g$)).."2!31TZZL$,,qQr&   c                    | j                   j                  |       |j                  |j                  | j                               |j                  |j                  | j                               |j                  t        d             y rM   )	r   r   rm   r   r   r    r!   r   r   r0   s     r   r   zDefaultsSource.reconstruct  sb    		g&g77

CDg77EF0ABr&   c                 6    | j                   j                         S r   rv   r4   s    r   r   zDefaultsSource.guard_source  rw   r&   c                     | j                   S r   )r   r4   s    r   r8   zDefaultsSource.name  s    zzr&   N)r9   r:   r;   r   rT   r<   r=   r   r>   dataclassesr   r   r   r   r   r8   r?   r&   r   r   r     se    38_E4"""E5IE3I"""E5IE3I"C(r&   r   c                   P     e Zd ZU eed<   dZeed<    fdZd Zd Z	d Z
d Z xZS )	r   r   Fr$   c                     | j                   J t        | j                  t              r9t        |   d| j                  j                                t        |   dd       y y )Nr   r$   T)r   r   r   slicesuperr   
__reduce__)r1   	__class__s    r   r   zGetItemSource.__post_init__  sR    yy$$$djj%(G)>)>)@AG 0$7 )r&   c                 h    t        | || j                         |j                  t        d             y )Nr$   rN   )r%   r$   r    r   r0   s     r   r   zGetItemSource.reconstruct  s(    D'$:M:MN0ABr&   c                 6    | j                   j                         S r   rv   r4   s    r   r   zGetItemSource.guard_source  rw   r&   c                 F    | j                   sJ | j                  \  }} || S r   )r$   r   )r1   slice_class
slice_argss      r   r"   zGetItemSource.unpack_slice  s*    """""&**ZJ''r&   c                    t        | j                  t              r]t        | j                  t              st	        d      | j
                  j                          d| j                  j                          dS | j                  r.| j
                  j                          d| j                         dS t        | j                  t        j                        rP| j
                  j                          dt        | j                  | j                         j                                dS | j
                  j                          d| j                  dS )NzBGetItemSource index must be a constant, enum or ConstDictKeySourcer   r6   )r   r   r   ConstDictKeySource
ValueErrorr   r8   r$   r"   enumEnumr   r   is_localr4   s    r   r8   zGetItemSource.name  s    djj&)djj*<= X  iinn&'q):(;1==  iinn&'q):):)<(?qAA

DII.iinn&'q4::t?P?P?R?[?[?])^(__`aaiinn&'qa88r&   )r9   r:   r;   r   r=   r$   r>   r   r   r   r"   r8   __classcell__)r  s   @r   r   r     s,    J ND 8C((
9r&   r   c                       e Zd Zd Zd Zd Zy)r  c                      yr   r?   r4   s    r   is_dict_keyzConstDictKeySource.is_dict_key	  r   r&   c                     j                  fd       | j                  j                         j                  j	                  | j
                               j                  t        dd             y )Nc                  D     j                  t        j                  d      S )Ndict_keys_getitemr   r
   r9   r#   s   r   rj   z0ConstDictKeySource.reconstruct.<locals>.<lambda>  s    G,,U^^=PQ r&   r   Frl   r   r   r    r!   r   rm   r   r0   s    `r   r   zConstDictKeySource.reconstruct  s[    Q	
 			g&g77

CD21e<=r&   c                 X    d| j                   j                          d| j                  dS )Nzlist(z	.keys())[r6   r   r8   r   r4   s    r   r8   zConstDictKeySource.name  s'    tyy~~'(	$**qAAr&   N)r9   r:   r;   r  r   r8   r?   r&   r   r  r    s    >Br&   r  c                       e Zd Zd Zd Zy)TupleIteratorGetItemSourcec                     j                  fd       | j                  j                         j                  j	                  | j
                               j                  t        dd             y )Nc                  D     j                  t        j                  d      S )Ntuple_iterator_getitemr  r  s   r   rj   z8TupleIteratorGetItemSource.reconstruct.<locals>.<lambda>  s    G,,U^^=UV r&   r   Fr  r0   s    `r   r   z&TupleIteratorGetItemSource.reconstruct  s[    V	
 			g&g77

CD21e<=r&   c                 X    d| j                   j                          d| j                  dS )Nz___tuple_iterator_getitem(r   r   r   r4   s    r   r8   zTupleIteratorGetItemSource.name#  s'    +DIINN,<+=R

~QOOr&   N)r9   r:   r;   r   r8   r?   r&   r   r"  r"    s    >Pr&   r"  c                   $    e Zd Zd Zd Zd Zd Zy)
TypeSourcec                      | j                   J y r   r   r4   s    r   r   zTypeSource.__post_init__)  r   r&   c                     j                  fd       | j                  j                         j                  t	        dd             y )Nc                  (     j                  dd      S )Nbuiltinstyper   r  s   r   rj   z(TypeSource.reconstruct.<locals>.<lambda>-  s    g&>&>z6&R r&   r	   Frl   r   r   rm   r   r0   s    `r   r   zTypeSource.reconstruct,  s:    RS		g&21e<=r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   zTypeSource.guard_source1  rw   r&   c                 >    d| j                   j                          dS )Nztype(r   ry   r4   s    r   r8   zTypeSource.name4  s    tyy~~'(**r&   Nr   r?   r&   r   r(  r(  '  s    %>
(+r&   r(  c                   0    e Zd ZU eed<   d Zd Zd Zd Zy)r   r   c                      | j                   J y r   r   r4   s    r   r   z ODictGetItemSource.__post_init__<  r   r&   c                     j                  fd       t        | d       j                  t        dd             y )Nc                  t     j                   j                  t        j                  j                              S r   )r    create_load_const_uncheckedcollectionsOrderedDict__getitem__r  s   r   rj   z0ODictGetItemSource.reconstruct.<locals>.<lambda>A  s,    G))33K4K4K4W4WX r&   Fr
  r   )rl   r%   rm   r   r0   s    `r   r   zODictGetItemSource.reconstruct?  s:    	

 	D'%@21e<=r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   zODictGetItemSource.guard_sourceH  rw   r&   c                    t        | j                  t              rQd| j                  j                   d| j                  j                   }d| j
                  j                          d| dS t        | j                  t              r9d| j
                  j                          d| j                  j                          dS d| j
                  j                          d| j                  dS )Nz__load_module("z").z___odict_getitem(r   r   )r   r   r-  r:   r;   r   r8   r   )r1   reps     r   r8   zODictGetItemSource.nameK  s    djj$'#DJJ$9$9#:#djj>U>U=VWC&tyy~~'7&83%qAA

F+&tyy~~'7&84::??;L:MQOO&tyy~~'7&84::.JJr&   N)	r9   r:   r;   r   r=   r   r   r   r8   r?   r&   r   r   r   8  s    J%>(Kr&   r   c                       e Zd Zd Zd Zd Zy)OptimizerSourcec                 :    | j                   j                  |       y r   rt   r0   s     r   r   zOptimizerSource.reconstructW  r   r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   zOptimizerSource.guard_sourceZ  rw   r&   c                 6    | j                   j                         S r   ry   r4   s    r   r8   zOptimizerSource.name]      yy~~r&   Nrz   r?   r&   r   r>  r>  U  s    '( r&   r>  c                       e Zd Zd Zd Zd Zy)NNModuleSourcec                 :    | j                   j                  |       y r   rt   r0   s     r   r   zNNModuleSource.reconstructc  r   r&   c                 D    t         | j                  j                            S r   r   r4   s    r   r   zNNModuleSource.guard_sourcef  r   r&   c                 6    | j                   j                         S r   ry   r4   s    r   r8   zNNModuleSource.namei  rB  r&   Nrz   r?   r&   r   rD  rD  a  s    'M r&   rD  c                       e Zd Zd Zy)UnspecializedNNModuleSourcec                 D    t         | j                  j                            S r   )%_GUARD_SOURCE_UNSPECIALIZED_NN_MODULEr   r   r4   s    r   r   z(UnspecializedNNModuleSource.guard_sourceo  s    4TYY5K5K5MNNr&   Nr   r?   r&   r   rI  rI  m  s    Or&   rI  c                       e Zd Zd Zy)"UnspecializedBuiltinNNModuleSourcec                 D    t         | j                  j                            S r   )-_GUARD_SOURCE_UNSPECIALIZED_BUILTIN_NN_MODULEr   r   r4   s    r   r   z/UnspecializedBuiltinNNModuleSource.guard_sourceu  s    <TYY=S=S=UVVr&   Nr   r?   r&   r   rM  rM  s  s    Wr&   rM  c                       e Zd Zd Zy)FSDPNNModuleSourcec                 D    t         | j                  j                            S r   )_GUARD_SOURCE_FSDP_MODULEr   r   r4   s    r   r   zFSDPNNModuleSource.guard_source{  s    ()?)?)ABBr&   Nr   r?   r&   r   rQ  rQ  y  s    Cr&   rQ  c                       e Zd Zd Zd Zy)GlobalStateSourcec                      yNr   r?   r4   s    r   r8   zGlobalStateSource.name      r&   c                 "    t         j                  S r   r_   r4   s    r   r   zGlobalStateSource.guard_source  ra   r&   Nr9   r:   r;   r8   r   r?   r&   r   rU  rU    s    "r&   rU  c                   0    e Zd ZU eed<   d Zd Zd Zd Zy)TorchFunctionModeStackSourceindc                 *    d| j                          dS )Nz$___get_torch_function_mode_stack_at(r   )
_get_indexr4   s    r   r8   z!TorchFunctionModeStackSource.name  s    5doo6G5HJJr&   c                 D    ddl m} |j                  | j                        S )Nr	   )TorchFunctionModeStackVariable)variables.torch_functionra  get_mode_indexr]  )r1   ra  s     r   r_  z'TorchFunctionModeStackSource._get_index  s    L-<<TXXFFr&   c                     j                  fd       j                  j                  | j                               g       j                  t	        dd             y )Nc                  D     j                  t        j                  d      S )N get_torch_function_mode_stack_atr  r  s   r   rj   z:TorchFunctionModeStackSource.reconstruct.<locals>.<lambda>  s    G,, B r&   r	   F)rl   rm   r!   r_  r   r0   s    `r   r   z(TorchFunctionModeStackSource.reconstruct  sQ    	

 	w889JKLM21e<=r&   c                 "    t         j                  S r   r_   r4   s    r   r   z)TorchFunctionModeStackSource.guard_source  ra   r&   N)	r9   r:   r;   rT   r=   r8   r_  r   r   r?   r&   r   r\  r\    s    	HKG
>"r&   r\  c                   0    e Zd ZU eed<   d Zd Zd Zd Zy)r   source_namec                 \    |j                  |j                  | j                  d             y )NFrZ   )r    r]   ri  r0   s     r   r   zConstantSource.reconstruct  s&    g889I9Iu8UVr&   c                 "    t         j                  S r   )r   r   r4   s    r   r   zConstantSource.guard_source  s    ###r&   c                     | j                   S r   )ri  r4   s    r   r8   zConstantSource.name  s    r&   c                     t         r   r   r   s     r   r   zConstantSource.make_guard  r   r&   N)	r9   r:   r;   r<   r=   r   r   r8   r   r?   r&   r   r   r     s    W$ "r&   r   c                   $    e Zd ZdefdZd Zd Zy)NumpyTensorSourcereturnc                 >    d| j                   j                          dS )Nz___from_numpy(r   ry   r4   s    r   r8   zNumpyTensorSource.name  s    		 0133r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   zNumpyTensorSource.guard_source  rw   r&   c                     j                  fd       | j                  j                         j                  t	        dd             y )Nc                  (     j                  dd      S )Ntorch	as_tensorr.  r  s   r   rj   z/NumpyTensorSource.reconstruct.<locals>.<lambda>  s    g&>&>w&T r&   r	   Fr/  r0   s    `r   r   zNumpyTensorSource.reconstruct  s:    TU		g&21e<=r&   N)r9   r:   r;   r<   r8   r   r   r?   r&   r   ro  ro    s    4c 4(>r&   ro  c                       e Zd ZdefdZd Zy)SubclassAttrListSourcerp  c                 <    | j                   j                          dS )Nz.__tensor_flatten__()[0]ry   r4   s    r   r8   zSubclassAttrListSource.name  s    )).."##;<<r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   z#SubclassAttrListSource.guard_source  rw   r&   Nr9   r:   r;   r<   r8   r   r?   r&   r   rx  rx    s    =c =(r&   rx  c                       e Zd ZdefdZd Zy)FloatTensorSourcerp  c                 >    d| j                   j                          dS )Nz___as_tensor(r   ry   r4   s    r   r8   zFloatTensorSource.name  s    tyy~~/022r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   zFloatTensorSource.guard_source  rw   r&   Nr{  r?   r&   r   r}  r}    s    3c 3(r&   r}  c                       e Zd ZdefdZd Zy)CallMethodItemSourcerp  c                 <    | j                   j                          dS )Nz.item()ry   r4   s    r   r8   zCallMethodItemSource.name  s    )).."#7++r&   c                 6    | j                   j                         S r   rv   r4   s    r   r   z!CallMethodItemSource.guard_source  rw   r&   Nr{  r?   r&   r   r  r    s    ,c ,(r&   r  c                       e Zd Zd Zd Zy)ShapeEnvSourcec                      yrW  r?   r4   s    r   r8   zShapeEnvSource.name  rX  r&   c                 "    t         j                  S r   )r   	SHAPE_ENVr4   s    r   r   zShapeEnvSource.guard_source  r   r&   NrZ  r?   r&   r   r  r    s    %r&   r  c                       e Zd Zd Zd Zy)BackwardStateSourcec                      yrW  r?   r4   s    r   r8   zBackwardStateSource.name  rX  r&   c                 "    t         j                  S r   )r   BACKWARD_STATEr4   s    r   r   z BackwardStateSource.guard_source  s    )))r&   NrZ  r?   r&   r   r  r    s    *r&   r  Fonly_allow_inputc                    t        | t              rt        | j                  |      S t        | t              sy|r| j
                  syy)Nr  FT)r   r   is_from_local_sourcer   r)   r+   )r   r  s     r   r  r    s:    &-(#FKKBRSSfk*r&   c                 p    t        | t              ryt        | t              rt        | j                        S yr   )r   r   r   )is_from_unspecialized_param_buffer_sourcer   r   s    r   r  r    s,    &89&-(8EEr&   c                 p    t        | t              ryt        | t              rt        | j                        S yr   )r   r   r   $is_from_flatten_script_object_sourcer   r   s    r   r  r    s,    &34	FM	*3FKK@@r&   c                 p    t        | t              ryt        | t              rt        | j                        S yr   )r   r>  r   is_from_optimizer_sourcer   r   s    r   r  r    s+    &/*&-('44r&   c                 p    t        | t              ryt        | t              rt        | j                        S yr   )r   r   r   is_from_defaultsr   r   s    r   r  r    s+    &.)&-(,,r&   )Pr7  r  r  typingr   r   r   torch._guardsr   r   r   r   r
   bytecode_transformationr   r   r   r3   LOCAL_SPECIALIZED_NN_MODULEr`   GLOBAL_SPECIALIZED_NN_MODULELOCAL_UNSPECIALIZED_NN_MODULEGLOBAL_UNSPECIALIZED_NN_MODULE%LOCAL_UNSPECIALIZED_BUILTIN_NN_MODULE&GLOBAL_UNSPECIALIZED_BUILTIN_NN_MODULELOCAL_FSDP_MODULEGLOBAL_FSDP_MODULEr   rK  rO  rS  r   r%   	dataclassr)   rA   rH   rV   rf   rq   r|   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r  r"  r(  r   r>  rD  rI  rM  rQ  rU  r\  r   ro  rx  r}  r  r  r  r  r  r  r  r  r?   r&   r   <module>r     s{	      ' ' < <  M  {>>@@++[-T-T,,k.V.V--{/X/X..0Z0Z55{7h7h668j8j!!;#@#@""K$B$B' #  {@@BB--{/X/X..0Z0Z++[-V-V,,k.X.X55{7h7h668j8j!!;#@#@""K$B$B) %" {HHJJ--{/`/`..0b0b++[-^-^,,k.`.`55{7h7h668j8j!!;#@#@""K$B$B1 - {4466++[-J-J,,k.L.L!!;#@#@""K$B$B--{/L/L..0N0N55{7T7T668V8V 	K78K d#-& - $-0 d#
76 
7 $
7 d#8 8 $8 d#
.6 
. $
. d#0& 0 $0$ d#	' 	' $	' d#	0 	 $	 d#3 3 $32 d#Lf L $L, d#3 3 $3 d#M
 M $M d#	Z 	 $	 d#f  $ $TYY $ d#%;= %; $%;P d#/= / $/ d#G} G $G d#7 7 $7 d#>m > $>0m 0 d#!] ! $!H d#(9M (9 $(9V d#B B $B" d#
P 
P $
P d#+ + $+  d#K K $K8 d# m   $  d# ]   $  d#O. O $O
 d#W)D W $W
 d#C C $C
 d#" " $" d#"6 " $"0 d#"V " $"  d#
> 
> $
> d#(] ( $( d#( ( $( d#(= ( $( d#%V % $% d#*& * $* >C  f  V V r&   