Ë
    òÍ:jƒ  ã                   ó0  — d Z ddlZddlZddlZddlmZ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 erddlmZ 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                  ej6                  ej6                  ej8                  ej8                  ej:                  ej:                  i
Zej(                  ej0                  ej,                  ej2                  ej0                  ej0                  ej2                  ej2                  ej*                  ej0                  ej.                  ej2                  ej4                  ej4                  ej6                  ej6                  ej8                  ej8                  ej:                  ej:                  i
Zej(                  ej4                  ej,                  ej6                  ej0                  ej4                  ej2                  ej6                  ej*                  ej4                  ej.                  ej6                  ej4                  ej4                  ej6                  ej6                  ej8                  ej8                  ej:                  ej:                  i
Z ej(                  ej8                  ej,                  ej:                  ej*                  ej8                  ej.                  ej:                  ej8                  ej8                  ej:                  ej:                  ej0                  ej8                  ej2                  ej:                  ej4                  ej8                  ej6                  ej:                  i
Z!d	„ Z" ejF                  d
¬«       G d„ de«      «       Z$ ejF                  d
¬«       G d„ de«      «       Z% ejF                  d
¬«       G d„ de«      «       Z& ejF                  d
¬«       G d„ de«      «       Z' ejF                  d
¬«       G d„ de«      «       Z( ejF                  d
¬«       G d„ de
«      «       Z) ejF                  d
¬«       G d„ de)«      «       Z* ejF                  d
¬«       G d„ de
«      «       Z+ ejF                  d
¬«       G d„ de
«      «       Z, ejF                  d
¬«       G d„ de«      «       Z- ejF                  d
¬«       G d „ d!e
«      «       Z. ejF                  d
¬«       G d"„ d#e+«      «       Z/ ejF                  d
¬«       G d$„ d%e+«      «       Z0 ejF                  d
¬«       G d&„ d'e«      «       Z1 G d(„ d)ejd                  «      Z3 ejF                  d
¬«       G d*„ d+e
«      «       Z4 ejF                  d
¬«       G d,„ d-e
«      «       Z5 ejF                  d
¬«       G d.„ d/e
«      «       Z6 ejF                  d
¬«       G d0„ d1e
«      «       Z7 ejF                  d
¬«       G d2„ d3e
«      «       Z8 ejF                  d
¬«       G d4„ d5e
«      «       Z9 G d6„ d7e
«      Z: ejF                  d
¬«       G d8„ d9e
«      «       Z; ejF                  d
¬«       G d:„ d;e
«      «       Z< ejF                  d
¬«       G d<„ d=e
«      «       Z= ejF                  d
¬«       G d>„ d?e
«      «       Z> ejF                  d
¬«       G d@„ dAe
«      «       Z? ejF                  d
¬«       G dB„ dCe<«      «       Z@ ejF                  d
¬«       G dD„ dEe<«      «       ZA ejF                  d
¬«       G dF„ dGe
«      «       ZB ejF                  d
¬«       G dH„ dIe
«      «       ZC ejF                  d
¬«       G dJ„ dKe
«      «       ZD ejF                  d
¬«       G dL„ dMe
«      «       ZE ejF                  d
¬«       G dN„ dOeE«      «       ZF ejF                  d
¬«       G dP„ dQeF«      «       ZG ejF                  d
¬«       G dR„ dSeE«      «       ZH ejF                  d
¬«       G dT„ dUe«      «       ZI ejF                  d
¬«       G dV„ dWe«      «       ZJ ejF                  d
¬«       G dX„ dYe«      «       ZK ejF                  d
¬«       G dZ„ d[e
«      «       ZL ejF                  d
¬«       G d\„ d]e
«      «       ZM ejF                  d
¬«       G d^„ d_e
«      «       ZN ejF                  d
¬«       G d`„ dae
«      «       ZO ejF                  d
¬«       G db„ dce«      «       ZP ejF                  d
¬«       G dd„ dee«      «       ZQdfdgœdhedieeR   fdj„ZSdfdgœdhefdk„ZTdhedieUfdl„ZVdhedieeR   fdm„ZWdhefdn„ZXdhedoefdp„ZYej´                  dhefdq„«       Z[ej´                  dhefdr„«       Z\ej´                  dhefds„«       Z]ej´                  dhefdt„«       Z^ej´                  dhefdu„«       Z_ej´                  dhefdv„«       Z`y)wa  
This module provides Source classes that track the origins of values in PyTorch Dynamo.
Sources represent where values come from (e.g. local variables, globals, attributes) and
are used for guard generation and code reconstruction during compilation.

The module includes specialized sources for:
- Local variables and synthetic locals
- Global variables and constants
- Object attributes and method calls
- NN module specialization (specialized vs unspecialized)
- Random values and tensor properties
- Default argument handling
- FSDP (Fully Sharded Data Parallel) modules

Sources play a key role in Dynamo's guard system by tracking value origins for
guard generation, and in code reconstruction by providing methods to rebuild
the code needed to recreate values.
é    N)ÚAnyÚOptionalÚTYPE_CHECKINGÚUnion)ÚChainedSourceÚGuardSourceÚSourceé   )Úutils)Úcreate_call_functionÚcreate_instruction)Ú	PyCodegenc                 óŒ   — 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    úi/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/torch/_dynamo/source.pyÚis_constant_sourcer   c   sO   € Ü�&œ.Ô)ØðØ×ÑÓ ¤K×$8Ñ$8Ò8Øð 9ð
 øô ò Øàðús   “!7 ·	AÁAT)Úfrozenc                   ób   — e Zd ZU eed<   dZeed<   dZee	e      ed<   dZ
eed<   d
d„Zd„ Zd	„ Zy)ÚLocalSourceÚ
local_nameFÚis_inputNÚdynamismÚis_derefed_cell_contentsc                 ó¨   — | j                   r|j                  | j                  «       y |j                  |j	                  | j                  «      «       y ©N)r    Ú
load_derefr   Úappend_outputÚcreate_load©ÚselfÚcodegens     r   ÚreconstructzLocalSource.reconstruct   s:   € Ø×(Ò(Ø×Ñ˜tŸ™Õ/à×!Ñ! '×"5Ñ"5°d·o±oÓ"FÕGó    c                 ó"   — t         j                  S r"   )r   ÚLOCAL©r'   s    r   r   zLocalSource.guard_source…   s   € Ü× Ñ Ð r*   c                 ó4   — dt        | j                  «      › d�S )NzL[ú])Úreprr   r-   s    r   ÚnamezLocalSource.nameˆ   s   € Ø”D˜Ÿ™Ó)Ð*¨!Ð,Ð,r*   ©r(   r   )Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   Úboolr   r   Ú	frozensetr    r)   r   r1   © r*   r   r   r   o   sE   … àƒOð €HˆdÓð *.€Hˆh�y ‘~Ñ&Ó-ð
 &+Ð˜dÓ*óHò!ó-r*   r   c                   ó,   — e Zd ZU eed<   dd„Zd„ Zd„ Zy)ÚSyntheticLocalSourcer   c                 óX   — |j                  |j                  | j                  «      «       y r"   )r$   r%   r   r&   s     r   r)   z SyntheticLocalSource.reconstruct�   s   € Ø×Ñ˜g×1Ñ1°$·/±/ÓBÕCr*   c                 ó"   — t         j                  S r"   )r   ÚSYNTHETIC_LOCALr-   s    r   r   z!SyntheticLocalSource.guard_source“   s   € Ü×*Ñ*Ð*r*   c                 ó"   — d| j                   ›d�S )NzSYNTHETIC_LOCAL[r/   )r   r-   s    r   r1   zSyntheticLocalSource.name–   s   € Ø! $§/¡/Ð!4°AÐ6Ð6r*   Nr2   ©r3   r4   r5   r6   r7   r)   r   r1   r:   r*   r   r<   r<   Œ   s   … àƒOóDò+ó7r*   r<   c                   ó,   — e Zd ZU eed<   d„ Zdd„Zd„ Zy)ÚRandomValueSourceÚrandom_call_indexc                 ó"   — t         j                  S r"   )r   ÚRANDOM_VALUEr-   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_varÚcreate_load_constrD   r   r&   s     r   r)   zRandomValueSource.reconstruct¡   s^   € Ø×Ñ˜g×1Ñ1°'·*±*×2CÑ2C×2UÑ2UÓVÔWØ×Ñ˜g×7Ñ7¸×8NÑ8NÓOÔPØ×ÑÔ0°ÓAÕBr*   c                 ó    — d| j                   › �S )NÚrandom_value_)rD   r-   s    r   r1   zRandomValueSource.name¦   s   € Ø˜t×5Ñ5Ð6Ð7Ð7r*   Nr2   )r3   r4   r5   Úintr7   r   r)   r1   r:   r*   r   rC   rC   š   s   … àÓò(óCó
8r*   rC   c                   ó,   — e Zd ZU eed<   dd„Zd„ Zd„ Zy)ÚGlobalSourceÚglobal_namec                 ó\   — |j                  |j                  | j                  d¬«      «       y ©NT©Úadd©r$   Úcreate_load_globalrS   r&   s     r   r)   zGlobalSource.reconstruct®   s&   € Ø×Ñ˜g×8Ñ8¸×9IÑ9IÈtÐ8ÓTÕUr*   c                 ó"   — t         j                  S r"   ©r   ÚGLOBALr-   s    r   r   zGlobalSource.guard_source±   ó   € Ü×!Ñ!Ð!r*   c                 ó4   — dt        | j                  «      › d�S )NúG[r/   ©r0   rS   r-   s    r   r1   zGlobalSource.name´   s   € Ø”D˜×)Ñ)Ó*Ð+¨1Ð-Ð-r*   Nr2   rA   r:   r*   r   rR   rR   ª   s   … àÓóVò"ó.r*   rR   c                   ó,   — e Zd ZU eed<   dd„Zd„ Zd„ Zy)ÚGlobalWeakRefSourcerS   c                 óh   ‡ ‡— ‰j                  ˆˆ fd„«       ‰j                  t        dd«      «       y )Nc                  ó\   •— ‰ j                  ‰ j                  ‰j                  d¬«      «      S rU   rX   ©r(   r'   s   €€r   ú<lambda>z1GlobalWeakRefSource.reconstruct.<locals>.<lambda>¾   s+   ø€ �G×)Ñ)Ø×*Ñ*¨4×+;Ñ+;ÀÐ*ÓFó€ r*   r   F©Úadd_push_nullÚextend_outputr   r&   s   ``r   r)   zGlobalWeakRefSource.reconstruct¼   s.   ù€ Ø×Ñôô	
ð
 	×ÑÔ2°1°eÓ<Õ=r*   c                 ó"   — t         j                  S r"   r[   r-   s    r   r   z GlobalWeakRefSource.guard_sourceÄ   r]   r*   c                 ó4   — dt        | j                  «      › d�S )Nr_   z]()r`   r-   s    r   r1   zGlobalWeakRefSource.nameÇ   s   € Ø”D˜×)Ñ)Ó*Ð+¨3Ð/Ð/r*   Nr2   rA   r:   r*   r   rb   rb   ¸   s   … àÓó>ò"ó0r*   rb   c                   ó    — e Zd Zdd„Zd„ Zd„ Zy)ÚWeakRefCallSourcec                 óh   ‡ ‡— ‰j                  ˆˆ fd„«       ‰j                  t        dd«      «       y )Nc                  ó(   •—  ‰ ‰j                   «      S r"   ©Úbasere   s   €€r   rf   z/WeakRefCallSource.reconstruct.<locals>.<lambda>Î   s   ø€ ¡g¨d¯i©iÓ&8€ r*   r   Frg   r&   s   ``r   r)   zWeakRefCallSource.reconstructÍ   s(   ù€ Ø×ÑÔ8Ô9Ø×ÑÔ2°1°eÓ<Õ=r*   c                 ó6   — | j                   j                  «       S r"   ©rq   r   r-   s    r   r   zWeakRefCallSource.guard_sourceÑ   ó   € Ø�y‰y×%Ñ%Ó'Ð'r*   c                 ó<   — | j                   j                  «       › d�S )Nz()©rq   r1   r-   s    r   r1   zWeakRefCallSource.nameÔ   s   € Ø—)‘)—.‘.Ó"Ð# 2Ð&Ð&r*   Nr2   ©r3   r4   r5   r)   r   r1   r:   r*   r   rm   rm   Ë   s   „ ó>ò(ó'r*   rm   c                   ó   — e Zd Zy)ÚCallFunctionNoArgsSourceN©r3   r4   r5   r:   r*   r   ry   ry   Ø   ó   „ àr*   ry   c                   ó2   — e Zd ZU eed<   d„ Zd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ú.rq   éÿÿÿÿr~   ©rq   r~   ÚsplitÚobjectÚ__setattr__r}   Újoin©r'   Úmember_partss     r   Ú__post_init__zAttrSource.__post_init__á   ó‚   € Ø�yŠyÐUÐUÓUˆyØ�$—+‘+ÑØŸ;™;×,Ñ,¨SÓ1ˆLÜ×ÑØ�fœj¨¯©°C·H±H¸\È#È2Ð=NÓ4OÓPôô ×Ñ˜t X¨|¸BÑ/?Õ@ð r*   c                 ó|   —  || j                   «       |j                  |j                  | j                  «      «       y r"   ©rq   ri   Úcreate_load_attrsr~   r&   s     r   r)   zAttrSource.reconstructê   ó+   € Ù�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿¹ÓDÕEr*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zAttrSource.guard_sourceî   rt   r*   c                 óÞ   — | j                   j                  «       s+d| j                  j                  «       › d| j                   ›d�S | j                  j                  «       › d| j                   › �S )Nzgetattr(ú, ú)r�   )r~   Úisidentifierrq   r1   r-   s    r   r1   zAttrSource.nameñ   sX   € Ø�{‰{×'Ñ'Ô)Ø˜dŸi™iŸn™nÓ.Ð/¨r°$·+±+°ÀÐBÐBØ—)‘)—.‘.Ó"Ð# 1 T§[¡[ MÐ2Ð2r*   Nr2   ©	r3   r4   r5   r6   r7   rŠ   r)   r   r1   r:   r*   r   r}   r}   Ý   s   … àƒKòAóFò(ó3r*   r}   c                   ó2   — e Zd ZU eed<   d„ Zdd„Zd„ Zd„ Zy)ÚGenericAttrSourcer~   c                 ó,  — | 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 r€   rƒ   rˆ   s     r   rŠ   zGenericAttrSource.__post_init__û   r‹   r*   c                 ó|   —  || j                   «       |j                  |j                  | j                  «      «       y r"   r�   r&   s     r   r)   zGenericAttrSource.reconstruct  r�   r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zGenericAttrSource.guard_source  rt   r*   c                 óX   — d| j                   j                  «       › d| j                  ›d�S )Nzobject.__getattribute__(r’   r“   ©rq   r1   r~   r-   s    r   r1   zGenericAttrSource.name  s'   € Ø)¨$¯)©)¯.©.Ó*:Ð);¸2¸d¿k¹k¸_ÈAÐNÐNr*   Nr2   r•   r:   r*   r   r—   r—   ÷   s   … àƒKòAóFò(óOr*   r—   c                   ó$   — e Zd ZU dZeed<   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   r&   s     r   r)   zLocalCellSource.reconstruct  s!   € ð 	×Ñ˜g×9Ñ9¸$¿/¹/ÓJÕKr*   Nr2   )r3   r4   r5   Ú__doc__r6   r7   r)   r:   r*   r   rž   rž     s   … ñð
 ƒOôLr*   rž   c                   ó0   — e Zd ZU dZeed<   dd„Zd„ Zd„ Zy)Ú
GradSourceÚgradr~   c                 ó|   —  || j                   «       |j                  |j                  | j                  «      «       y r"   r�   r&   s     r   r)   zGradSource.reconstruct*  r�   r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zGradSource.guard_source.  rt   r*   c                 óT   — | j                   j                  «       › d| j                  › �S )Nr�   rœ   r-   s    r   r1   zGradSource.name1  s#   € Ø—)‘)—.‘.Ó"Ð# 1 T§[¡[ MÐ2Ð2r*   Nr2   )	r3   r4   r5   r~   r6   r7   r)   r   r1   r:   r*   r   r£   r£   &  s   … à€FˆCÓóFò(ó3r*   r£   c                   ó   — e Zd Zd„ Zy)ÚParamBufferSourcec                 óD   — t         | j                  j                  «          S r"   ©Ú#_GUARD_SOURCE_SPECIALIZED_NN_MODULErq   r   r-   s    r   r   zParamBufferSource.guard_source7  ó   € Ü2°4·9±9×3IÑ3IÓ3KÑLÐLr*   N©r3   r4   r5   r   r:   r*   r   r©   r©   5  s   „ óMr*   r©   c                   ó   — e Zd Zy)ÚUnspecializedParamBufferSourceNrz   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   Ú	EPHEMERALr-   s    r   r   zEphemeralSource.guard_sourceN  ó   € Ü×$Ñ$Ð$r*   c                 óJ   — d| j                   �d| j                   z   › d�S d› d�S )Nz
<ephemeralz: Ú ú>)r³   r-   s    r   r1   zEphemeralSource.nameQ  s1   € Ø°·	±	Ð0E˜D 4§9¡9Ñ,ÐNÈaÐPÐPÈ2ÐNÈaÐPÐPr*   c                 ó   — t         ‚r"   ©r   ©r'   Úfns     r   Ú
make_guardzEphemeralSource.make_guardT  ó   € Ü!Ð!r*   c                  ó   — y©NTr:   r-   s    r   Úis_ephemeralzEphemeralSource.is_ephemeralW  ó   € Ør*   )r3   r4   r5   r³   r   r6   r7   r   r1   r¾   rÂ   r:   r*   r   r²   r²   J  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_OFFSETr-   s    r   Úmethod_namezTensorProperty.method_name`  s:   € Ø”>×&Ñ&Ñ&ØØ”^×*Ñ*Ñ*ØØ”^×2Ñ2Ñ2Ø#ð 3r*   N)r3   r4   r5   rË   rÌ   rÍ   rÎ   r:   r*   r   rÅ   rÅ   [  s   „ Ø€DØ€FØ€Nó$r*   rÅ   c                   óF   — e Zd ZU eed<   dZee   ed<   d„ Zdd„Z	d„ Z
d„ Zy)	ÚTensorPropertySourceÚpropNÚidxc                 ó’   — | j                   €J ‚| j                  t        j                  u r| j                  �J ‚y | j                  €J ‚y r"   )rq   rÑ   rÅ   rÍ   rÒ   r-   s    r   rŠ   z"TensorPropertySource.__post_init__n  sD   € Ø�y‰yÐ$Ð$Ð$Ø�9‰9œ×5Ñ5Ñ5Ø—8‘8Ð#Ð#Ñ#à—8‘8Ð'Ð'Ñ'r*   c                 ó  ‡ ‡— ‰j                  ˆˆ fd„«        ‰‰ 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   r3   rÑ   rÎ   re   s   €€r   rf   z2TensorPropertySource.reconstruct.<locals>.<lambda>w  s0   ø€ �G×,Ñ,Ü—‘ %¨¯	©	×(=Ñ(=Ó(?Ð'@Ð Aó€ r*   rÆ   r
   F)rh   rq   rÒ   r$   rM   ri   r   r&   s   ``r   r)   z TensorPropertySource.reconstructu  sn   ù€ Ø×Ñôô	
ñ
 	�—	‘	Ôà�8‰8ÐØ×!Ñ! '×";Ñ";¸D¿H¹HÓ"EÔFØ×ÑÜ  d§h¡hÐ&:¡ÀÀ5ÓIõ	
r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   z!TensorPropertySource.guard_sourceƒ  rt   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()[r/   z
.stride()[z.storage_offset()z
unhandled )	rÑ   rÅ   rË   rq   r1   rÒ   rÌ   rÍ   ÚAssertionErrorr-   s    r   r1   zTensorPropertySource.name†  s¾   € Ø�9‰9œ×+Ñ+Ñ+Ø—i‘i—n‘nÓ&Ð' x°·±¨z¸Ð;Ð;Ø�Y‰Yœ.×/Ñ/Ñ/Ø—i‘i—n‘nÓ&Ð' z°$·(±(°¸1Ð=Ð=Ø�Y‰Yœ.×7Ñ7Ñ7Ø—8‘8Ð#Ð#Ð#Ø—i‘i—n‘nÓ&Ð'Ð'8Ð9Ð9ä  :¨d¯i©i¨[Ð!9Ó:Ð:r*   r2   )r3   r4   r5   rÅ   r7   rÒ   r   rP   rŠ   r)   r   r1   r:   r*   r   rÐ   rÐ   i  s*   … à
ÓØ€Cˆ�#‰Óò(ó
ò(ó	;r*   rÐ   c                   ó2   — e Zd ZU eed<   d„ Zdd„Zd„ Zd„ Zy)ÚIndexedSourcerÒ   c                 ó    — | j                   €J ‚y r"   rp   r-   s    r   rŠ   zIndexedSource.__post_init__–  ó   € Ø�y‰yÐ$Ð$Ñ$r*   c                 ó   — t         ‚r"   r»   r&   s     r   r)   zIndexedSource.reconstruct™  r¿   r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zIndexedSource.guard_sourceœ  rt   r*   c                 óX   — d| j                   › d| j                  j                  «       › d�S )Nú(r’   r“   )rÒ   rq   r1   r-   s    r   r1   zIndexedSource.nameŸ  s'   € Ø�4—8‘8�*˜B˜tŸy™yŸ~™~Ó/Ð0°Ð2Ð2r*   Nr2   )	r3   r4   r5   rP   r7   rŠ   r)   r   r1   r:   r*   r   rÜ   rÜ   ’  s   … à	ƒHò%ó"ò(ó3r*   rÜ   c                   ó&   — e Zd Zd„ Zdd„Zd„ Zd„ Zy)ÚNegateSourcec                 ó    — | j                   €J ‚y r"   rp   r-   s    r   rŠ   zNegateSource.__post_init__¥  rÞ   r*   c                 ó   — t         ‚r"   r»   r&   s     r   r)   zNegateSource.reconstruct¨  r¿   r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zNegateSource.guard_source«  rt   r*   c                 ó<   — | j                   j                  «       › d�S )Nz
.__neg__()rv   r-   s    r   r1   zNegateSource.name®  s   € à—)‘)—.‘.Ó"Ð# :Ð.Ð.r*   Nr2   ©r3   r4   r5   rŠ   r)   r   r1   r:   r*   r   rä   rä   £  s   „ ò%ó"ò(ó/r*   rä   c                   ó&   — e Zd Zd„ Zdd„Zd„ Zd„ Zy)ÚConvertIntSourcec                 ó    — | j                   €J ‚y r"   rp   r-   s    r   rŠ   zConvertIntSource.__post_init__µ  rÞ   r*   c                 ó(   —  || j                   «       y r"   rp   r&   s     r   r)   zConvertIntSource.reconstruct¸  ó   € Ù�—	‘	Õr*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zConvertIntSource.guard_source»  rt   r*   c                 ó>   — d| j                   j                  «       › d�S )Nz!cast_symbool_to_symint_guardless(r“   rv   r-   s    r   r1   zConvertIntSource.name¾  s   € Ø2°4·9±9·>±>Ó3CÐ2DÀAÐFÐFr*   Nr2   ré   r:   r*   r   rë   rë   ³  s   „ ò%óò(óGr*   rë   c                   ó&   — e Zd Zd„ Zdd„Zd„ Zd„ Zy)ÚFlattenScriptObjectSourcec                 ó    — | j                   €J ‚y r"   rp   r-   s    r   rŠ   z'FlattenScriptObjectSource.__post_init__Ä  rÞ   r*   c                 ó(   —  || j                   «       y r"   rp   r&   s     r   r)   z%FlattenScriptObjectSource.reconstructÇ  rî   r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   z&FlattenScriptObjectSource.guard_sourceÊ  rt   r*   c                 ó<   — | j                   j                  «       › d�S )Nz.__obj_flatten__()rv   r-   s    r   r1   zFlattenScriptObjectSource.nameÍ  s   € Ø—)‘)—.‘.Ó"Ð#Ð#5Ð6Ð6r*   Nr2   ré   r:   r*   r   rò   rò   Â  s   „ ò%óò(ó7r*   rò   c                   ó&   — e Zd Zd„ Zdd„Zd„ Zd„ Zy)ÚScriptObjectQualifiedNameSourcec                 ó    — | j                   €J ‚y r"   rp   r-   s    r   rŠ   z-ScriptObjectQualifiedNameSource.__post_init__Ó  rÞ   r*   c                 ó(   —  || j                   «       y r"   rp   r&   s     r   r)   z+ScriptObjectQualifiedNameSource.reconstructÖ  rî   r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   z,ScriptObjectQualifiedNameSource.guard_sourceÙ  rt   r*   c                 ó<   — | j                   j                  «       › d�S )Nz._type().qualified_name()rv   r-   s    r   r1   z$ScriptObjectQualifiedNameSource.nameÜ  s   € Ø—)‘)—.‘.Ó"Ð#Ð#<Ð=Ð=r*   Nr2   ré   r:   r*   r   rø   rø   Ñ  s   „ ò%óò(ó>r*   rø   c                   ó    — e Zd Zdd„Zd„ Zd„ Zy)ÚAttrProxySourcec                 ó(   —  || j                   «       y r"   rp   r&   s     r   r)   zAttrProxySource.reconstructá  rî   r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zAttrProxySource.guard_sourceä  rt   r*   c                 ó<   — | j                   j                  «       › d�S )Nz.get_base()rv   r-   s    r   r1   zAttrProxySource.nameç  s   € Ø—)‘)—.‘.Ó"Ð# ;Ð/Ð/r*   Nr2   rw   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d„Zd	„ Zd
„ Zy)ÚDefaultsSourceÚidx_keyFÚis_kw)Úinitr0   ÚcompareÚfieldÚ_namec           
      ó@  — | j                   sJ d«       ‚| j                  r€t        | 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__ú[r/   )
rq   r  r   r  r6   r…   r†   r1   r  rP   r-   s    r   rŠ   zDefaultsSource.__post_init__ò  sé   € Ø�yŠyð 	
Økó	
ˆyð �:Š:Ü˜dŸl™l¬CÔ0Ð0Ð0Ü×Ñ˜t WÐ.>Ô?Ü×ÑØ�g $§)¡)§.¡.Ó"2Ð!3°1°T·Z±Z°LÀÀ4Ç<Á<À.ÐPRÐSõô ˜dŸl™l¬CÔ0Ð0Ð0Ü×Ñ˜t W¨nÔ=Ü×ÑØ�g $§)¡)§.¡.Ó"2Ð!3°1°T·Z±Z°LÀÀ$Ç,Á,ÀÈqÐQõr*   c                 ó  —  || j                   «       |j                  |j                  | j                  «      «       |j	                  |j                  | j                  «      «       |j	                  t        d«      «       y rH   )rq   ri   rŽ   r  r$   rM   r  r   r&   s     r   r)   zDefaultsSource.reconstruct  s\   € Ù�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿
¹
ÓCÔDØ×Ñ˜g×7Ñ7¸¿¹ÓEÔFØ×ÑÔ0°ÓAÕBr*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zDefaultsSource.guard_source	  rt   r*   c                 ó   — | j                   S r"   )r	  r-   s    r   r1   zDefaultsSource.name  s   € Ø�z‰zÐr*   Nr2   )r3   r4   r5   r   rP   r6   r7   r  r8   Údataclassesr  r	  rŠ   r)   r   r1   r:   r*   r   r  r  ë  se   … à�3˜�8‰_ÓØ€Eˆ4ÓØ"�×"Ñ"¨°EÀ5ÔI€Eˆ3ÓIØ"�×"Ñ"¨°EÀ5ÔI€Eˆ3ÓIòó"Cò(ór*   r  c                   óR   ‡ — e Zd ZU eed<   dZeed<   ˆ fd„Zd	d„Zd„ Z	d„ Z
d„ Zˆ xZS )
ÚGetItemSourceÚindexFÚindex_is_slicec                 óÈ   •— | j                   €J ‚t        | j                  t        «      r9t        ‰| �  d| j                  j                  «       «       t        ‰| �  dd«       y y )Nr  r  T)rq   r   r  ÚsliceÚsuperr†   Ú
__reduce__)r'   Ú	__class__s    €r   rŠ   zGetItemSource.__post_init__  sR   ø€ Ø�y‰yÐ$Ð$Ð$Ü�d—j‘j¤%Ô(ä‰GÑ ¨¯©×)>Ñ)>Ó)@ÔAÜ‰GÑÐ 0°$Õ7ð )r*   c                 ó&  —  || j                   «       | j                  r/|j                  |j                  | j	                  «       «      «       n*|j                  |j                  | j
                  «      «       |j                  t        d«      «       y rH   )rq   r  r$   rM   Úunpack_slicer  r   r&   s     r   r)   zGetItemSource.reconstruct  sj   € Ù�—	‘	ÔØ×ÒØ×!Ñ! '×";Ñ";¸D×<MÑ<MÓ<OÓ"PÕQà×!Ñ! '×";Ñ";¸D¿J¹JÓ"GÔHØ×ÑÔ0°ÓAÕBr*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zGetItemSource.guard_source$  rt   r*   c                 óF   — | j                   sJ ‚| j                  \  }} ||Ž S r"   )r  r  )r'   Úslice_classÚ
slice_argss      r   r  zGetItemSource.unpack_slice'  s*   € Ø×"Ò"Ð"Ð"Ø"&§*¡*Ñˆ�ZÙ˜JÐ'Ð'r*   c                 ó  — t        | j                  t        «      rJ ‚| j                  r.| j                  j                  «       › d| j                  «       ›d�S | j                  j                  «       › d| j                  ›d�S ©Nr  r/   )r   r  r	   r  rq   r1   r  r-   s    r   r1   zGetItemSource.name,  sm   € ô ˜dŸj™j¬&Ô1Ð1Ð1Ø×ÒØ—i‘i—n‘nÓ&Ð' q¨×):Ñ):Ó)<Ð(?¸qÐAÐAà—i‘i—n‘nÓ&Ð' q¨¯©¨°aÐ8Ð8r*   r2   )r3   r4   r5   r   r7   r  r8   rŠ   r)   r   r  r1   Ú__classcell__)r  s   @r   r  r    s,   ø… àƒJØ €N�DÓ ô8óCò(ò(ö
9r*   r  c                   ó2   — e Zd ZU eed<   d„ Zdd„Zd„ Zd„ Zy)ÚConstDictKeySourcer  c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zConstDictKeySource.guard_source;  rt   r*   c                 óÜ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  ‰j                  | j                  «      «       ‰j                  t        dd«      «       y )Nc                  óD   •— ‰ j                  t        j                  d«      S )NÚdict_keys_getitem©r×   r   r3   ©r(   s   €r   rf   z0ConstDictKeySource.reconstruct.<locals>.<lambda>@  s   ø€ �G×,Ñ,¬U¯^©^Ð=PÓQ€ r*   rÆ   F©rh   rq   r$   rM   r  ri   r   r&   s    `r   r)   zConstDictKeySource.reconstruct>  sU   ø€ Ø×ÑÛQô	
ñ 	�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿
¹
ÓCÔDØ×ÑÔ2°1°eÓ<Õ=r*   c                 óX   — d| j                   j                  «       › d| j                  ›d�S )Nzlist(dict.keys(z))[r/   ©rq   r1   r  r-   s    r   r1   zConstDictKeySource.nameF  s'   € à  §¡§¡Ó!1Ð 2°#°d·j±j°^À1ÐEÐEr*   c                  ó   — yrÁ   r:   r-   s    r   Úis_dict_keyzConstDictKeySource.is_dict_keyJ  rÃ   r*   Nr2   )	r3   r4   r5   r   r7   r   r)   r1   r0  r:   r*   r   r%  r%  7  s   … àƒJò(ó>òFór*   r%  c                   ó2   — e Zd ZU eed<   d„ Zd„ Zdd„Zd„ Zy)ÚDictGetItemSourcer  c                 ó€   — ddl m} t        | j                  t        «      s|j                  | j                  «      sJ ‚y y ©Nr
   )ÚConstantVariable©Ú	variablesr5  r   r  r%  Ú
is_literal©r'   r5  s     r   rŠ   zDictGetItemSource.__post_init__V  ó;   € Ý/äØ�J‰JÔ*ô
à×(Ñ(¨¯©Ô4ð	5ð 5à4ð
r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zDictGetItemSource.guard_source]  rt   r*   c                 ó
  —  || j                   «       t        | j                  t        «      r || j                  «       n*|j	                  |j                  | j                  «      «       |j	                  t        d«      «       y rH   )rq   r   r  r	   r$   rM   r   r&   s     r   r)   zDictGetItemSource.reconstruct`  s[   € á�—	‘	Ôô �d—j‘j¤&Ô)Ù�D—J‘JÕà×!Ñ! '×";Ñ";¸D¿J¹JÓ"GÔHØ×ÑÔ0°ÓAÕBr*   c                 óú   — t        | j                  t        «      r8| j                  j	                  «       › d| j                  j	                  «       › d�S | j                  j	                  «       › d| j                  ›d�S r"  ©r   r  r%  rq   r1   r-   s    r   r1   zDictGetItemSource.namek  s_   € Ü�d—j‘jÔ"4Ô5Ø—i‘i—n‘nÓ&Ð' q¨¯©¯©Ó):Ð(;¸1Ð=Ð=à—i‘i—n‘nÓ&Ð' q¨¯©¨°aÐ8Ð8r*   Nr2   ©	r3   r4   r5   r   r7   rŠ   r   r)   r1   r:   r*   r   r2  r2  O  s   … ð
 ƒJò5ò(ó	Có9r*   r2  c                   ó2   — e Zd ZU eed<   d„ Zd„ Zdd„Zd„ Zy)ÚDictSubclassGetItemSourcer  c                 ó€   — ddl m} t        | j                  t        «      s|j                  | j                  «      sJ ‚y y r4  r6  r9  s     r   rŠ   z'DictSubclassGetItemSource.__post_init__{  r:  r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   z&DictSubclassGetItemSource.guard_source‚  rt   r*   c                 ó6  ‡— ‰j                  ˆfd„«        ‰| j                  «       t        | j                  t        «      r ‰| j                  «       n*‰j                  ‰j                  | j                  «      «       ‰j                  t        dd«      «       y )Nc                  óD   •— ‰ j                  t        j                  d«      S )NÚdict_getitemr*  r+  s   €r   rf   z7DictSubclassGetItemSource.reconstruct.<locals>.<lambda>Š  ó   ø€ �G×,Ñ,¬U¯^©^¸^ÓL€ r*   rÆ   F)	rh   rq   r   r  r	   r$   rM   ri   r   r&   s    `r   r)   z%DictSubclassGetItemSource.reconstruct…  ss   ø€ ð 	×ÑÛLô	
ñ
 	�—	‘	Ôô �d—j‘j¤&Ô)Ù�D—J‘JÕà×!Ñ! '×";Ñ";¸D¿J¹JÓ"GÔHà×ÑÔ2°1°eÓ<Õ=r*   c                 óü   — t        | j                  t        «      r9d| j                  j	                  «       › d| j                  j	                  «       › d�S | j                  j	                  «       › d| j                  ›d�S )Nzdict.__getitem__(r’   r“   r  r/   r>  r-   s    r   r1   zDictSubclassGetItemSource.name˜  sa   € Ü�d—j‘jÔ"4Ô5Ø& t§y¡y§~¡~Ó'7Ð&8¸¸4¿:¹:¿?¹?Ó;LÐ:MÈQÐOÐOà—i‘i—n‘nÓ&Ð' q¨¯©¨°aÐ8Ð8r*   Nr2   r?  r:   r*   r   rA  rA  t  s   … ð
 ƒJò5ò(ó>ó&9r*   rA  c                   ó   — e Zd ZdZdd„Zd„ Zy)ÚListGetItemSourcezY
    Same as GetItemSource with reconstruct and name overridden to be list specific.
    c                 ó
  ‡— ‰j                  ˆfd„«        ‰| j                  «       | j                  rt        d«      ‚‰j	                  ‰j                  | j                  «      «       ‰j                  t        dd«      «       y )Nc                  óD   •— ‰ j                  t        j                  d«      S )NÚlist_getitemr*  r+  s   €r   rf   z/ListGetItemSource.reconstruct.<locals>.<lambda>«  rG  r*   ú>List[slice] is a temporary object and should not have a sourcerÆ   F)	rh   rq   r  ÚRuntimeErrorr$   rM   r  ri   r   r&   s    `r   r)   zListGetItemSource.reconstruct¥  st   ø€ ð
 	×ÑÛLô	
ñ
 	�—	‘	Ôð ×ÒÜØPóð ð ×!Ñ! '×";Ñ";¸D¿J¹JÓ"GÔHà×ÑÔ2°1°eÓ<Õ=r*   c                 ó¾   — t        | j                  t        «      rJ ‚| j                  rt	        d«      ‚d| j
                  j                  «       › d| j                  ›d�S )NrN  zlist.__getitem__(r’   r“   )r   r  r	   r  rO  rq   r1   r-   s    r   r1   zListGetItemSource.name»  sX   € ô ˜dŸj™j¬&Ô1Ð1Ð1Ø×ÒÜØPóð ð ' t§y¡y§~¡~Ó'7Ð&8¸¸4¿:¹:¸.ÈÐJÐJr*   Nr2   )r3   r4   r5   r¡   r)   r1   r:   r*   r   rJ  rJ  Ÿ  s   „ ñó>ó,
Kr*   rJ  c                   ó   — e Zd Zdd„Zd„ Zy)ÚTupleIteratorGetItemSourcec                 óÜ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  ‰j                  | j                  «      «       ‰j                  t        dd«      «       y )Nc                  óD   •— ‰ j                  t        j                  d«      S )NÚtuple_iterator_getitemr*  r+  s   €r   rf   z8TupleIteratorGetItemSource.reconstruct.<locals>.<lambda>Ì  s   ø€ �G×,Ñ,¬U¯^©^Ð=UÓV€ r*   rÆ   Fr,  r&   s    `r   r)   z&TupleIteratorGetItemSource.reconstructÊ  sU   ø€ Ø×ÑÛVô	
ñ 	�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿
¹
ÓCÔDØ×ÑÔ2°1°eÓ<Õ=r*   c                 óX   — d| j                   j                  «       › d| j                  ›d�S )Nz___tuple_iterator_getitem(r’   r“   r.  r-   s    r   r1   zTupleIteratorGetItemSource.nameÒ  s'   € Ø+¨D¯I©I¯N©NÓ,<Ð+=¸RÀÇ
Á
¸~ÈQÐOÐOr*   Nr2   )r3   r4   r5   r)   r1   r:   r*   r   rR  rR  È  s   „ ó>óPr*   rR  c                   ó    — e Zd Zdd„Zd„ Zd„ Zy)ÚDataclassFieldsSourcec                 óˆ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  t        dd«      «       y )Nc                  óD   •— ‰ j                  t        j                  d«      S )NÚdataclass_fieldsr*  r+  s   €r   rf   z3DataclassFieldsSource.reconstruct.<locals>.<lambda>Ú  s   ø€ �G×,Ñ,¬U¯^©^Ð=OÓP€ r*   r
   F©rh   rq   ri   r   r&   s    `r   r)   z!DataclassFieldsSource.reconstructØ  s8   ø€ Ø×ÑÛPô	
ñ 	�—	‘	ÔØ×ÑÔ2°1°eÓ<Õ=r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   z"DataclassFieldsSource.guard_sourceß  rt   r*   c                 ó>   — d| j                   j                  «       › d�S )Nz___dataclass_fields(r“   rv   r-   s    r   r1   zDataclassFieldsSource.nameâ  s   € Ø% d§i¡i§n¡nÓ&6Ð%7°qÐ9Ð9r*   Nr2   rw   r:   r*   r   rX  rX  Ö  s   „ ó>ò(ó:r*   rX  c                   ó&   — e Zd Zd„ Zdd„Zd„ Zd„ Zy)Ú
TypeSourcec                 ó    — | j                   €J ‚y r"   rp   r-   s    r   rŠ   zTypeSource.__post_init__è  rÞ   r*   c                 óˆ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  t        dd«      «       y )Nc                  ó(   •— ‰ j                  dd«      S )NÚbuiltinsÚtype©r×   r+  s   €r   rf   z(TypeSource.reconstruct.<locals>.<lambda>ì  s   ø€  g×&>Ñ&>¸zÈ6Ó&R€ r*   r
   Fr\  r&   s    `r   r)   zTypeSource.reconstructë  s4   ø€ Ø×ÑÓRÔSÙ�—	‘	ÔØ×ÑÔ2°1°eÓ<Õ=r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zTypeSource.guard_sourceð  rt   r*   c                 ó>   — d| j                   j                  «       › d�S )Nztype(r“   rv   r-   s    r   r1   zTypeSource.nameó  s   € Ø�t—y‘y—~‘~Ó'Ð(¨Ð*Ð*r*   Nr2   ré   r:   r*   r   r`  r`  æ  s   „ ò%ó>ò
(ó+r*   r`  c                   ó    — e Zd Zdd„Zd„ Zd„ Zy)ÚOptimizerSourcec                 ó(   —  || j                   «       y r"   rp   r&   s     r   r)   zOptimizerSource.reconstructù  rî   r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zOptimizerSource.guard_sourceü  rt   r*   c                 ó6   — | j                   j                  «       S r"   rv   r-   s    r   r1   zOptimizerSource.nameÿ  ó   € Ø�y‰y�~‰~ÓÐr*   Nr2   rw   r:   r*   r   rj  rj  ÷  s   „ óò(ó r*   rj  c                   ó    — e Zd Zdd„Zd„ Zd„ Zy)ÚNNModuleSourcec                 ó(   —  || j                   «       y r"   rp   r&   s     r   r)   zNNModuleSource.reconstruct  rî   r*   c                 óD   — t         | j                  j                  «          S r"   r«   r-   s    r   r   zNNModuleSource.guard_source  r­   r*   c                 ó6   — | j                   j                  «       S r"   rv   r-   s    r   r1   zNNModuleSource.name  rn  r*   Nr2   rw   r:   r*   r   rp  rp    s   „ óòMó r*   rp  c                   ó   — e Zd Zd„ Zy)ÚUnspecializedNNModuleSourcec                 óD   — t         | j                  j                  «          S r"   )Ú%_GUARD_SOURCE_UNSPECIALIZED_NN_MODULErq   r   r-   s    r   r   z(UnspecializedNNModuleSource.guard_source  s   € Ü4°T·Y±Y×5KÑ5KÓ5MÑNÐNr*   Nr®   r:   r*   r   ru  ru    s   „ óOr*   ru  c                   ó   — e Zd Zd„ Zy)Ú"UnspecializedBuiltinNNModuleSourcec                 óD   — t         | j                  j                  «          S r"   )Ú-_GUARD_SOURCE_UNSPECIALIZED_BUILTIN_NN_MODULErq   r   r-   s    r   r   z/UnspecializedBuiltinNNModuleSource.guard_source  s   € Ü<¸T¿Y¹Y×=SÑ=SÓ=UÑVÐVr*   Nr®   r:   r*   r   ry  ry    s   „ óWr*   ry  c                   ó   — e Zd Zd„ Zy)ÚFSDPNNModuleSourcec                 óD   — t         | j                  j                  «          S r"   )Ú_GUARD_SOURCE_FSDP_MODULErq   r   r-   s    r   r   zFSDPNNModuleSource.guard_source  s   € Ü(¨¯©×)?Ñ)?Ó)AÑBÐBr*   Nr®   r:   r*   r   r}  r}    s   „ óCr*   r}  c                   ó   — e Zd Zd„ Zd„ Zy)ÚGlobalStateSourcec                  ó   — y©Nr¸   r:   r-   s    r   r1   zGlobalStateSource.name#  ó   € Ør*   c                 ó"   — t         j                  S r"   r[   r-   s    r   r   zGlobalStateSource.guard_source&  r]   r*   N©r3   r4   r5   r1   r   r:   r*   r   r�  r�  !  s   „ òó"r*   r�  c                   ó2   — e Zd ZU eed<   d„ Zd„ Zdd„Zd„ Zy)ÚTorchFunctionModeStackSourceÚindc                 ó*   — d| j                  «       › d�S )Nz$___get_torch_function_mode_stack_at(r“   )Ú
_get_indexr-   s    r   r1   z!TorchFunctionModeStackSource.name.  s   € Ø5°d·o±oÓ6GÐ5HÈÐJÐJr*   c                 óD   — ddl m} |j                  | j                  «      S )Nr
   )ÚTorchFunctionModeStackVariable)Úvariables.torch_functionr�  Úget_mode_indexr‰  )r'   r�  s     r   r‹  z'TorchFunctionModeStackSource._get_index1  s   € ÝLà-×<Ñ<¸T¿X¹XÓ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   rf   z:TorchFunctionModeStackSource.reconstruct.<locals>.<lambda>8  s   ø€ �G×,Ñ,Ü—‘Ð Bó€ r*   r
   F)rh   ri   rM   r‹  r   r&   s    `r   r)   z(TorchFunctionModeStackSource.reconstruct6  sQ   ø€ Ø×Ñóô	
ð
 	×Ñ˜w×8Ñ8¸¿¹Ó9JÓKÐLÔMØ×ÑÔ2°1°eÓ<Õ=r*   c                 ó"   — t         j                  S r"   r[   r-   s    r   r   z)TorchFunctionModeStackSource.guard_source?  r]   r*   Nr2   )	r3   r4   r5   rP   r7   r1   r‹  r)   r   r:   r*   r   rˆ  rˆ  *  s   … à	ƒHòKòGó
>ó"r*   rˆ  c                   ó2   — e Zd ZU eed<   dd„Zd„ Zd„ Zd„ Zy)r   Úsource_namec                 ó\   — |j                  |j                  | j                  d¬«      «       y )NFrV   )r$   rY   r•  r&   s     r   r)   zConstantSource.reconstructG  s&   € Ø×Ñ˜g×8Ñ8¸×9IÑ9IÈuÐ8ÓUÕVr*   c                 ó"   — t         j                  S r"   )r   r   r-   s    r   r   zConstantSource.guard_sourceJ  s   € Ü×#Ñ#Ð#r*   c                 ó   — | j                   S r"   )r•  r-   s    r   r1   zConstantSource.nameM  s   € Ø×ÑÐr*   c                 ó   — t         ‚r"   r»   r¼   s     r   r¾   zConstantSource.make_guardP  r¿   r*   Nr2   )	r3   r4   r5   r6   r7   r)   r   r1   r¾   r:   r*   r   r   r   C  s   … àÓóWò$ò ó"r*   r   c                   ó&   — e Zd Zdefd„Zd„ Zdd„Zy)ÚNumpyTensorSourceÚreturnc                 ó>   — d| j                   j                  «       › d�S )Nz___from_numpy(r“   rv   r-   s    r   r1   zNumpyTensorSource.nameV  s   € Ø §	¡	§¡Ó 0Ð1°Ð3Ð3r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zNumpyTensorSource.guard_sourceY  rt   r*   c                 óˆ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  t        dd«      «       y )Nc                  ó(   •— ‰ j                  dd«      S )NÚtorchÚ	as_tensorrf  r+  s   €r   rf   z/NumpyTensorSource.reconstruct.<locals>.<lambda>]  s   ø€  g×&>Ñ&>¸wÈÓ&T€ r*   r
   Fr\  r&   s    `r   r)   zNumpyTensorSource.reconstruct\  s4   ø€ Ø×ÑÓTÔUÙ�—	‘	ÔØ×ÑÔ2°1°eÓ<Õ=r*   Nr2   )r3   r4   r5   r6   r1   r   r)   r:   r*   r   r›  r›  T  s   „ ð4�có 4ò(ô>r*   r›  c                   ó   — e Zd Zdefd„Zd„ Zy)ÚSubclassAttrListSourcerœ  c                 ó<   — | j                   j                  «       › d�S )Nz.__tensor_flatten__()[0]rv   r-   s    r   r1   zSubclassAttrListSource.named  s   € Ø—)‘)—.‘.Ó"Ð#Ð#;Ð<Ð<r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   z#SubclassAttrListSource.guard_sourceg  rt   r*   N©r3   r4   r5   r6   r1   r   r:   r*   r   r¤  r¤  b  s   „ ð=�có =ó(r*   r¤  c                   ó   — e Zd Zdefd„Zd„ Zy)ÚFloatTensorSourcerœ  c                 ó>   — d| j                   j                  «       › d�S )Nz___as_tensor(r“   rv   r-   s    r   r1   zFloatTensorSource.nameo  s   € Ø˜tŸy™yŸ~™~Ó/Ð0°Ð2Ð2r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   zFloatTensorSource.guard_sourcer  rt   r*   Nr§  r:   r*   r   r©  r©  m  s   „ ð3�có 3ó(r*   r©  c                   ó   — e Zd Zdefd„Zd„ Zy)ÚCallMethodItemSourcerœ  c                 ó<   — | j                   j                  «       › d�S )Nz.item()rv   r-   s    r   r1   zCallMethodItemSource.namex  s   € Ø—)‘)—.‘.Ó"Ð# 7Ð+Ð+r*   c                 ó6   — | j                   j                  «       S r"   rs   r-   s    r   r   z!CallMethodItemSource.guard_source{  rt   r*   Nr§  r:   r*   r   r­  r­  v  s   „ ð,�có ,ó(r*   r­  c                   ó   — e Zd Zd„ Zd„ Zy)ÚShapeEnvSourcec                  ó   — yrƒ  r:   r-   s    r   r1   zShapeEnvSource.name„  r„  r*   c                 ó"   — t         j                  S r"   )r   Ú	SHAPE_ENVr-   s    r   r   zShapeEnvSource.guard_source‡  r¶   r*   Nr†  r:   r*   r   r±  r±  ‚  s   „ òó%r*   r±  c                   ó   — e Zd Zd„ Zd„ Zy)ÚBackwardStateSourcec                  ó   — yrƒ  r:   r-   s    r   r1   zBackwardStateSource.name�  r„  r*   c                 ó"   — t         j                  S r"   )r   ÚBACKWARD_STATEr-   s    r   r   z BackwardStateSource.guard_source�  s   € Ü×)Ñ)Ð)r*   Nr†  r:   r*   r   r¶  r¶  ‹  s   „ òó*r*   r¶  F©Úonly_allow_inputr   rœ  c                ó¨   — t        | t        «      rt        | j                  |¬«      S t        | t        «      sy |r| j
                  sy | j                  S ©Nrº  )r   r   Úget_local_source_namerq   r   r   r   ©r   r»  s     r   r¾  r¾  ”  sC   € Ü�&œ-Ô(Ü$ V§[¡[ÐCSÔTÐTÜ�fœkÔ*ØÙ §¢ØØ×ÑÐr*   c                ó    — t        | |¬«      d uS r½  )r¾  r¿  s     r   Úis_from_local_sourcerÁ  ž  s   € Ü  Ð:JÔKÐSWÐWÐWr*   c                 ó   — t        | «      d uS r"   )Úget_global_source_namer   s    r   Úis_from_global_sourcerÄ  ¢  s   € Ü! &Ó)°Ð5Ð5r*   c                 ó†   — t        | t        «      rt        | j                  «      S t        | t        «      sy | j
                  S r"   )r   r   rÃ  rq   rR   rS   r   s    r   rÃ  rÃ  ¦  s4   € Ü�&œ-Ô(Ü% f§k¡kÓ2Ð2Ü�fœlÔ+ØØ×ÑÐr*   c                 ó¦   — t        | t        «      rt        | j                  «      S t        | t        «      xr | j
                  xr | j                   S r"   )r   r   Úis_from_nonlocal_sourcerq   r   r    r   r   s    r   rÇ  rÇ  ®  sG   € Ü�&œ-Ô(Ü& v§{¡{Ó3Ð3ä�6œ;Ó'ò 	 Ø×+Ñ+ò	 à—‘Ððr*   Útargetc                 óX   — t        | t        «      rt        | j                  |«      S | |k(  S r"   )r   r   Úis_from_sourcerq   )r   rÈ  s     r   rÊ  rÊ  ¸  s(   € Ü�&œ-Ô(Ü˜fŸk™k¨6Ó2Ð2Ø�VÑÐr*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   ru  r   Ú&is_from_unspecialized_nn_module_sourcerq   r   s    r   rÌ  rÌ  ¾  s,   € ä�&Ô5Ô6ØÜ�&œ-Ô(Ü5°f·k±kÓBÐBØr*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   ry  r   Ú.is_from_unspecialized_builtin_nn_module_sourcerq   r   s    r   rÎ  rÎ  Ç  s,   € ä�&Ô<Ô=ØÜ�&œ-Ô(Ü=¸f¿k¹kÓJÐJØr*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   r°   r   Ú)is_from_unspecialized_param_buffer_sourcerq   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_sourcerq   r   s    r   rÒ  rÒ  Ù  s,   € ä�&Ô3Ô4ØÜ	�FœMÔ	*Ü3°F·K±KÓ@Ð@Ør*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   rj  r   Úis_from_optimizer_sourcerq   r   s    r   rÔ  rÔ  â  s+   € ä�&œ/Ô*ØÜ�&œ-Ô(Ü'¨¯©Ó4Ð4Ør*   c                 ó€  — t        | t        «      ryt        | t        «      r4t        | j                  t        «      r| j                  j
                  dk(  ryt        | t        «      r4t        | j                  t        «      r| j                  j
                  dk(  ryt        | t        «      rt        | j                  «      S y)NTr  r  F)	r   r  r2  rq   r}   r~   r  r   Úis_from_defaultsr   s    r   rÖ  rÖ  í  s‹   € ä�&œ.Ô)Øô 	�6Ô,Ô-Ü�v—{‘{¤JÔ/Ø�K‰K×ÑÐ"2Ò2àô 	�6œ=Ô)Ü�v—{‘{¤JÔ/Ø�K‰K×Ñ .Ò0àä�&œ-Ô(Ü §¡Ó,Ð,Ør*   )ar¡   r  ÚenumÚ	functoolsÚtypingr   r   r   r   Útorch._guardsr   r   r	   r¸   r   Úbytecode_transformationr   r   r(   r   r,   Ú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¬   rw  r{  r  r   Ú	dataclassr   r<   rC   rR   rb   rm   ry   r}   r—   rž   r£   r©   r°   r²   ÚEnumrÅ   rÐ   rÜ   rä   rë   rò   rø   rþ   r  r  r%  r2  rA  rJ  rR  rX  r`  rj  rp  ru  ry  r}  r�  rˆ  r   r›  r¤  r©  r­  r±  r¶  r6   r¾  rÁ  r8   rÄ  rÃ  rÇ  rÊ  Ú	lru_cacherÌ  rÎ  rÐ  rÒ  rÔ  rÖ  r:   r*   r   ú<module>rç     s<  ðñó& Û Û ß 6Ó 6ç <Ñ <å ß Mñ Ý"ð ×Ñ�{×>Ñ>Ø×Ñ˜×@Ñ@Ø×+Ñ+¨[×-TÑ-TØ×,Ñ,¨k×.VÑ.Và×-Ñ-¨{×/XÑ/XØ×.Ñ.°×0ZÑ0ZØ×5Ñ5°{×7hÑ7hØ×6Ñ6¸×8jÑ8jØ×!Ñ! ;×#@Ñ#@Ø×"Ñ" K×$BÑ$Bð'Ð #ð  ×Ñ�{×@Ñ@Ø×Ñ˜×BÑBØ×-Ñ-¨{×/XÑ/XØ×.Ñ.°×0ZÑ0Zà×+Ñ+¨[×-VÑ-VØ×,Ñ,¨k×.XÑ.Xà×5Ñ5°{×7hÑ7hØ×6Ñ6¸×8jÑ8jØ×!Ñ! ;×#@Ñ#@Ø×"Ñ" K×$BÑ$Bð)Ð %ð" ×Ñ�{×HÑHØ×Ñ˜×JÑJØ×-Ñ-¨{×/`Ñ/`Ø×.Ñ.°×0bÑ0bØ×+Ñ+¨[×-^Ñ-^Ø×,Ñ,¨k×.`Ñ.`à×5Ñ5°{×7hÑ7hØ×6Ñ6¸×8jÑ8jØ×!Ñ! ;×#@Ñ#@Ø×"Ñ" K×$BÑ$Bð1Ð -ð ×Ñ�{×4Ñ4Ø×Ñ˜×6Ñ6Ø×+Ñ+¨[×-JÑ-JØ×,Ñ,¨k×.LÑ.LØ×!Ñ! ;×#@Ñ#@Ø×"Ñ" K×$BÑ$BØ×-Ñ-¨{×/LÑ/LØ×.Ñ.°×0NÑ0NØ×5Ñ5°{×7TÑ7TØ×6Ñ6¸×8VÑ8VðÐ ò	ð €×Ñ˜dÔ#ô-�&ó -ó $ð-ð8 €×Ñ˜dÔ#ô
7˜6ó 
7ó $ð
7ð €×Ñ˜dÔ#ô8˜ó 8ó $ð8ð €×Ñ˜dÔ#ô
.�6ó 
.ó $ð
.ð €×Ñ˜dÔ#ô0˜&ó 0ó $ð0ð$ €×Ñ˜dÔ#ô	'˜ó 	'ó $ð	'ð €×Ñ˜dÔ#ô	Ð0ó 	ó $ð	ð €×Ñ˜dÔ#ô3�ó 3ó $ð3ð2 €×Ñ˜dÔ#ôO˜ó Oó $ðOð. €×Ñ˜dÔ#ôL�fó Ló $ðLð, €×Ñ˜dÔ#ô3�ó 3ó $ð3ð €×Ñ˜dÔ#ôM˜
ó Mó $ðMð €×Ñ˜dÔ#ô	 Zó 	ó $ð	ð €×Ñ˜dÔ#ô�fó ó $ðô $�T—Y‘Yô $ð €×Ñ˜dÔ#ô%;˜=ó %;ó $ð%;ðP €×Ñ˜dÔ#ô3�Mó 3ó $ð3ð  €×Ñ˜dÔ#ô/�=ó /ó $ð/ð €×Ñ˜dÔ#ôG�}ó Gó $ðGð €×Ñ˜dÔ#ô7 ó 7ó $ð7ð €×Ñ˜dÔ#ô> mó >ó $ð>ô0�mô 0ð €×Ñ˜dÔ#ô!�]ó !ó $ð!ðH €×Ñ˜dÔ#ô#9�Mó #9ó $ð#9ðL €×Ñ˜dÔ#ô˜ó ó $ðð. €×Ñ˜dÔ#ô9˜ó 9ó $ð9ðH €×Ñ˜dÔ#ô'9 ó '9ó $ð'9ðT €×Ñ˜dÔ#ô%K˜ó %Kó $ð%KðP €×Ñ˜dÔ#ô
P ó 
Pó $ð
Pð €×Ñ˜dÔ#ô:˜Mó :ó $ð:ð €×Ñ˜dÔ#ô+�ó +ó $ð+ð  €×Ñ˜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Ô#ô*˜&ó *ó $ð*ð ?Dò  &ð ÈÐQTÉó ð >Cò X ó Xð6 &ð 6¨Tó 6ð 6ð ¨h°s©mó ð Fó ð˜6ð ¨6ó ð ×Ñð°6ò ó ðð ×Ñð¸6ò ó ðð ×Ñð°fò ó ðð ×Ñð°ò ó ðð ×Ñð Vò ó ðð ×Ñð˜Vò ó ñr*   