Ë
    L²j©  ã                   ó�  — d Z ddlZddlZddlZddlmZ ddlmZmZ ddl	m
Z ddlmZmZmZmZmZ ddlmZ dd	lmZmZmZ erdd
lmZ ej4                  ej6                  ej8                  ej:                  ej6                  ej6                  ej:                  ej:                  ej<                  ej<                  ej>                  ej>                  ej@                  ej@                  ejB                  ejB                  ejD                  ejD                  ejF                  ejF                  i
Z$ej4                  ej<                  ej8                  ej>                  ej<                  ej<                  ej>                  ej>                  ej6                  ej<                  ej:                  ej>                  ej@                  ej@                  ejB                  ejB                  ejD                  ejD                  ejF                  ejF                  i
Z%ej4                  ej@                  ej8                  ejB                  ej<                  ej@                  ej>                  ejB                  ej6                  ej@                  ej:                  ejB                  ej@                  ej@                  ejB                  ejB                  ejD                  ejD                  ejF                  ejF                  i
Z&ej4                  ejD                  ej8                  ejF                  ej6                  ejD                  ej:                  ejF                  ejD                  ejD                  ejF                  ejF                  ej<                  ejD                  ej>                  ejF                  ej@                  ejD                  ejB                  ejF                  i
Z'dede(fd„Z)dedz  de*fd„Z+d˜dede(de*fd„Z, ed¬«       G d„ de«      «       Z- ed¬«       G d„ de«      «       Z. ed¬«       G d„ de«      «       Z/ ed¬«       G d„ de«      «       Z0 ed¬«       G d„ de«      «       Z1 ed¬«       G d„ d e«      «       Z2 ed¬«       G d!„ d"e«      «       Z3 ed¬«       G d#„ d$e3«      «       Z4 ed¬«       G d%„ d&e«      «       Z5 ed¬«       G d'„ d(e5«      «       Z6 ed¬«       G d)„ d*e«      «       Z7 ed¬«       G d+„ d,e«      «       Z8 ed¬«       G d-„ d.e«      «       Z9 ed¬«       G d/„ d0e«      «       Z: ed¬«       G d1„ d2e«      «       Z; ed¬«       G d3„ d4e«      «       Z< ed¬«       G d5„ d6e«      «       Z= ed¬«       G d7„ d8e5«      «       Z> ed¬«       G d9„ d:e5«      «       Z? ed¬«       G d;„ d<e«      «       Z@ ed¬«       G d=„ d>e«      «       ZA G d?„ d@ej„                  «      ZC ed¬«       G dA„ dBe«      «       ZD ed¬«       G dC„ dDe«      «       ZE ed¬«       G dE„ dFe«      «       ZF ed¬«       G dG„ dHe«      «       ZG ed¬«       G dI„ dJe«      «       ZH ed¬«       G dK„ dLe«      «       ZI ed¬«       G dM„ dNe«      «       ZJ G dO„ dPe«      ZK ed¬«       G dQ„ dRe«      «       ZL ed¬«       G dS„ dTe«      «       ZM ed¬«       G dU„ dVe«      «       ZN ed¬«       G dW„ dXe«      «       ZO ed¬«       G dY„ dZe«      «       ZP ed¬«       G d[„ d\e«      «       ZQ ed¬«       G d]„ d^eM«      «       ZR ed¬«       G d_„ d`eM«      «       ZS ed¬«       G da„ dbe«      «       ZT ed¬«       G dc„ dde«      «       ZU ed¬«       G de„ dfe«      «       ZV ed¬«       G dg„ dhe«      «       ZW ed¬«       G di„ dje«      «       ZX ed¬«       G dk„ dleX«      «       ZY ed¬«       G dm„ dneY«      «       ZZ ed¬«       G do„ dpeX«      «       Z[ ed¬«       G dq„ dre«      «       Z\ ed¬«       G ds„ dte«      «       Z] ed¬«       G du„ dve«      «       Z^ ed¬«       G dw„ dxe«      «       Z_ ed¬«       G dy„ dze«      «       Z` ed¬«       G d{„ d|e«      «       Za ed¬«       G d}„ d~e«      «       Zb ed¬«       G d„ d€e«      «       Zc ed¬«       G d�„ d‚e«      «       Zd ed¬«       G dƒ„ d„e«      «       Ze ed¬«       G d…„ d†e«      «       ZfejÎ                  dd‡œdedˆe(de*dz  fd‰„«       ZhejÎ                  dd‡œdedˆe(de(fdŠ„«       ZiejÎ                  dede(fd‹„«       ZjejÎ                  dedz  de*dz  fdŒ„«       ZkejÎ                  dede(fd�„«       ZlejÎ                  dede(fdŽ„«       ZmejÎ                  ded�ede(fd�„«       ZnejÎ                  dede(fd‘„«       ZoejÎ                  dede(fd’„«       ZpejÎ                  dede(fd“„«       ZqejÎ                  dede(fd”„«       ZrejÎ                  dede(fd•„«       ZsejÎ                  dede(fd–„«       ZtejÎ                  dede(fd—„«       Zuy)™a  
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)ÚCallable)ÚAnyÚTYPE_CHECKING)Údevice)ÚChainedSourceÚdataclass_with_cached_hashÚGuardÚGuardSourceÚSourceé   )Úutils)Úcreate_binary_subscrÚcreate_build_tupleÚcreate_call_function)Ú	PyCodegenÚsourceÚreturnc                 ó„   — 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©r   s    úS/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/_dynamo/source.pyÚis_constant_sourcer   m   sL   € Ü�&œ.Ô)ØðØ×Ñ¤+×"6Ñ"6Ò6Øð 7ð
 øô ò Øàðús   “3 ³	?¾?c                 ó@   — | €y	 | j                   S # t        $ r Y yw xY w)Nz<unknown source>)Únamer   r   s    r   Ú_get_source_debug_namer    y   s+   € Ø€~Ø!ð	&Ø—;‘;ÐøÜ"ò 	&Ù%ð	&ús   … ‘	œFÚsÚ
apply_reprc                 óx   — |rt        | «      } nt        | «      } | j                  dd«      j                  dd«      S )a!  
    Escapes curly brackets for format strings.
    e.g. "frozenset({0})" becomes "frozenset({{0}})".
    This is used by _name_template for example, because it's
    expected to return a format string, but we may wish to include
    strings that should not be accidentally formatted.
    ú{z{{ú}z}})ÚreprÚstrÚreplace)r!   r"   s     r   Ú_esc_strr)   ƒ   s7   € ñ Ü�‹G‰ä�‹FˆØ�9‰9�S˜$Ó×'Ñ'¨¨TÓ2Ð2ó    T)Úfrozenc                   ó–   — e Zd ZU eed<   dZeed<   dZee   dz  ed<   dZ	eed<   dd„Z
edefd	„«       Zej                  defd
„«       Zy)ÚLocalSourceÚ
local_nameFÚis_inputNÚdynamismÚis_derefed_cell_contentsr   c                 ó¨   — | j                   r|j                  | j                  «       y |j                  |j	                  | j                  «      «       y ©N)r1   Ú
load_derefr.   Úappend_outputÚcreate_load©ÚselfÚcodegens     r   ÚreconstructzLocalSource.reconstruct¢   s:   € Ø×(Ò(Ø×Ñ˜tŸ™Õ/à×!Ñ! '×"5Ñ"5°d·o±oÓ"FÕGr*   c                 ó"   — t         j                  S r3   )r
   ÚLOCAL©r8   s    r   r   zLocalSource.guard_source¨   s   € ä× Ñ Ð r*   c                 ó8   — dt        | j                  d¬«      › d�S )NzL[T©r"   ú]©r)   r.   r=   s    r   Ú_name_templatezLocalSource._name_template¬   s   € à”H˜TŸ_™_¸Ô>Ð?¸qÐAÐAr*   ©r9   r   r   N)Ú__name__Ú
__module__Ú__qualname__r'   Ú__annotations__r/   Úboolr0   Ú	frozensetr1   r:   Úpropertyr
   r   Ú	functoolsÚcached_propertyrB   © r*   r   r-   r-   ’   sz   … àƒOð €HˆdÓð '+€Hˆi˜‰n˜tÑ#Ó*ð
 &+Ð˜dÓ*óHð ð!˜kò !ó ð!ð ×ÑðB ò Bó ñBr*   r-   c                   óL   — e Zd ZU eed<   dd„Zedefd„«       Zedefd„«       Z	y)ÚTempLocalSourcer.   r   Nc                 óX   — |j                  |j                  | j                  «      «       y r3   ©r5   r6   r.   r7   s     r   r:   zTempLocalSource.reconstruct¶   ó   € Ø×Ñ˜g×1Ñ1°$·/±/ÓBÕCr*   c                 ó"   — t         j                  S r3   )r
   Ú
TEMP_LOCALr=   s    r   r   zTempLocalSource.guard_source¹   s   € ä×%Ñ%Ð%r*   c                 ó   — t        d«      ‚)NzhCannot create guard on TempLocalSource - this is an internal Dynamo bug. Please file an issue on GitHub.©r   r=   s    r   rB   zTempLocalSource._name_template½   s   € ä!Øvó
ð 	
r*   rC   )
rD   rE   rF   r'   rG   r:   rJ   r
   r   rB   rM   r*   r   rO   rO   ±   sE   … ð ƒOóDð ð&˜kò &ó ð&ð ð
 ò 
ó ñ
r*   rO   c                   ó`   — e Zd ZU eed<   dd„Zedefd„«       Ze	j                  defd„«       Zy)ÚSyntheticLocalSourcer.   r   Nc                 óX   — |j                  |j                  | j                  «      «       y r3   rQ   r7   s     r   r:   z SyntheticLocalSource.reconstructÈ   rR   r*   c                 ó"   — t         j                  S r3   )r
   ÚSYNTHETIC_LOCALr=   s    r   r   z!SyntheticLocalSource.guard_sourceË   s   € ä×*Ñ*Ð*r*   c                 ó8   — dt        | j                  d¬«      › d�S )NzSYNTHETIC_LOCAL[Tr?   r@   rA   r=   s    r   rB   z#SyntheticLocalSource._name_templateÏ   s   € à!¤(¨4¯?©?ÀtÔ"LÐ!MÈQÐOÐOr*   rC   ©rD   rE   rF   r'   rG   r:   rJ   r
   r   rK   rL   rB   rM   r*   r   rX   rX   Ä   sL   … àƒOóDð ð+˜kò +ó ð+ð ×ÑðP ò Pó ñPr*   rX   c                   ó`   — e Zd ZU eed<   edefd„«       Zdd„Ze	j                  defd„«       Zy)ÚRandomValueSourceÚrandom_call_indexr   c                 ó"   — t         j                  S r3   )r
   ÚRANDOM_VALUEr=   s    r   r   zRandomValueSource.guard_sourceØ   s   € ä×'Ñ'Ð'r*   Nc                 ó  — |j                  |j                  |j                  j                  j                  «      «       |j                  |j                  | j                  «      «       |j                  t        «       «       y r3   )r5   r6   ÚtxÚoutputÚrandom_values_varÚcreate_load_constr`   r   r7   s     r   r:   zRandomValueSource.reconstructÜ   s\   € Ø×Ñ˜g×1Ñ1°'·*±*×2CÑ2C×2UÑ2UÓVÔWØ×Ñ˜g×7Ñ7¸×8NÑ8NÓOÔPØ×ÑÔ2Ó4Õ5r*   c                 ó2   — dt        | j                  «      › �S )NÚrandom_value_)r)   r`   r=   s    r   rB   z RandomValueSource._name_templateá   s   € àœx¨×(>Ñ(>Ó?Ð@ÐAÐAr*   rC   )rD   rE   rF   ÚintrG   rJ   r
   r   r:   rK   rL   r'   rB   rM   r*   r   r_   r_   Ô   sJ   … àÓàð(˜kò (ó ð(ó6ð
 ×ÑðB ò Bó ñBr*   r_   c                   ó`   — e Zd ZU eed<   dd„Zedefd„«       Ze	j                  defd„«       Zy)ÚGlobalSourceÚglobal_namer   Nc                 ó\   — |j                  |j                  | j                  d¬«      «       y ©NT©Úadd©r5   Úcreate_load_globalrm   r7   s     r   r:   zGlobalSource.reconstructê   s&   € Ø×Ñ˜g×8Ñ8¸×9IÑ9IÈtÐ8ÓTÕUr*   c                 ó"   — t         j                  S r3   ©r
   ÚGLOBALr=   s    r   r   zGlobalSource.guard_sourceí   ó   € ä×!Ñ!Ð!r*   c                 ó8   — dt        | j                  d¬«      › d�S )NúG[Tr?   r@   ©r)   rm   r=   s    r   rB   zGlobalSource._name_templateñ   s   € à”H˜T×-Ñ-¸$Ô?Ð@ÀÐBÐBr*   rC   r]   rM   r*   r   rl   rl   æ   sM   … àÓóVð ð"˜kò "ó ð"ð ×ÑðC ò Có ñCr*   rl   c                   ó`   — e Zd ZU eed<   dd„Zedefd„«       Ze	j                  defd„«       Zy)ÚGlobalWeakRefSourcerm   r   Nc                 óh   ‡ ‡— ‰j                  ˆˆ fd„«       ‰j                  t        dd«      «       y )Nc                  ó\   •— ‰ j                  ‰ j                  ‰j                  d¬«      «      S ro   rr   ©r9   r8   s   €€r   ú<lambda>z1GlobalWeakRefSource.reconstruct.<locals>.<lambda>ü   s+   ø€ �G×)Ñ)Ø×*Ñ*¨4×+;Ñ+;ÀÐ*ÓFó€ r*   r   F©Úadd_push_nullÚextend_outputr   r7   s   ``r   r:   zGlobalWeakRefSource.reconstructú   s.   ù€ Ø×Ñôô	
ð
 	×ÑÔ2°1°eÓ<Õ=r*   c                 ó"   — t         j                  S r3   ru   r=   s    r   r   z GlobalWeakRefSource.guard_source  rw   r*   c                 ó8   — dt        | j                  d¬«      › d�S )Nry   Tr?   z]()rz   r=   s    r   rB   z"GlobalWeakRefSource._name_template  s   € à”H˜T×-Ñ-¸$Ô?Ð@ÀÐDÐDr*   rC   r]   rM   r*   r   r|   r|   ö   sL   … àÓó>ð ð"˜kò "ó ð"ð ×ÑðE ò Eó ñEr*   r|   c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚWeakRefCallSourcer   Nc                 óh   ‡ ‡— ‰j                  ˆˆ fd„«       ‰j                  t        dd«      «       y )Nc                  ó(   •—  ‰ ‰j                   «      S r3   ©Úbaser   s   €€r   r€   z/WeakRefCallSource.reconstruct.<locals>.<lambda>  s   ø€ ¡g¨d¯i©iÓ&8€ r*   r   Fr�   r7   s   ``r   r:   zWeakRefCallSource.reconstruct  s(   ù€ Ø×ÑÔ8Ô9Ø×ÑÔ2°1°eÓ<Õ=r*   c                  ó   — y)Nz{0}()rM   r=   s    r   rB   z WeakRefCallSource._name_template  s   € àr*   rC   ©rD   rE   rF   r:   rJ   r'   rB   rM   r*   r   r‡   r‡     s"   „ ó>ð ð ò ó ñr*   r‡   c                   ó   — e Zd Zy)ÚCallFunctionNoArgsSourceN©rD   rE   rF   rM   r*   r   r�   r�     ó   „ àr*   r�   c                   óR   — e Zd ZU eed<   dd„Zdd„Zej                  defd„«       Z	y)	Ú
AttrSourceÚmemberr   Nc                 óp   — | j                   sJ d«       ‚d| j                  vsJ d| j                  ›d�«       ‚y )Nz9Can't construct an AttrSource without a valid base sourceú.z,AttrSource member must not contain '.', got ú=. Use OutputGraph.get_chained_attr_source() for dotted paths.©r‹   r”   r=   s    r   Ú__post_init__zAttrSource.__post_init__  sE   € Ø�yŠyÐUÐUÓUˆyØ˜$Ÿ+™+Ñ%ð 	
Ø:¸4¿;¹;¸/ð JJð Jó	
Ñ%r*   c                 ó|   —  || j                   «       |j                  |j                  | j                  «      «       y r3   ©r‹   rƒ   Úcreate_load_attrsr”   r7   s     r   r:   zAttrSource.reconstruct&  ó+   € Ù�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿¹ÓDÕEr*   c                 óœ   — | j                   j                  «       sdt        | j                   d¬«      › d�S dt        | j                   «      › �S )Nzgetattr({0}, Tr?   ú)ú{0}.)r”   Úisidentifierr)   r=   s    r   rB   zAttrSource._name_template*  sD   € à�{‰{×'Ñ'Ô)Ø$¤X¨d¯k©kÀdÔ%KÐ$LÈAÐNÐNØœ §¡Ó-Ð.Ð/Ð/r*   ©r   NrC   ©
rD   rE   rF   r'   rG   r™   r:   rK   rL   rB   rM   r*   r   r“   r“     s3   … àƒKó
óFð ×Ñð0 ò 0ó ñ0r*   r“   c                   óJ   — e Zd ZU dZ ej
                  d¬«      Zeed<   dd„Z	y)ÚCellContentsSourcez§
    Source for closure cell contents that also stores the freevar name.
    This allows guard failure messages to show which variable the closure cell refers to.
    Ú )ÚdefaultÚfreevar_nameNc                 óV   — | j                   sJ d«       ‚| j                  dk(  sJ d«       ‚y )Nz@Can't construct a CellContentsSource without a valid base sourceÚcell_contentsz8CellContentsSource should only be used for cell_contentsr˜   r=   s    r   r™   z CellContentsSource.__post_init__:  s6   € Ø�yŠyð 	
ØNó	
ˆyð �{‰{˜oÒ-ð 	
ØFó	
Ñ-r*   r¢   )
rD   rE   rF   Ú__doc__ÚdataclassesÚfieldr¨   r'   rG   r™   rM   r*   r   r¥   r¥   1  s%   … ñð
 *˜×)Ñ)°"Ô5€L�#Ó5ô
r*   r¥   c                   óR   — e Zd ZU eed<   dd„Zdd„Zej                  defd„«       Z	y)	ÚGenericAttrSourcer”   r   Nc                 óp   — | j                   sJ d«       ‚d| j                  vsJ d| j                  ›d�«       ‚y )Nz?Can't construct a GenericAttrSource without a valid base sourcer–   z3GenericAttrSource member must not contain '.', got r—   r˜   r=   s    r   r™   zGenericAttrSource.__post_init__G  sK   € Ø�yŠyð 	
ØMó	
ˆyð ˜$Ÿ+™+Ñ%ð 	
ØAÀ$Ç+Á+Àð QJð Jó	
Ñ%r*   c                 ó|   —  || j                   «       |j                  |j                  | j                  «      «       y r3   r›   r7   s     r   r:   zGenericAttrSource.reconstructP  r�   r*   c                 ó8   — dt        | j                  d¬«      › d�S )Nzobject.__getattribute__({0}, Tr?   rŸ   ©r)   r”   r=   s    r   rB   z GenericAttrSource._name_templateT  s"   € ð .¬h°t·{±{ÈtÔ.TÐ-UÐUVÐWð	
r*   r¢   rC   r£   rM   r*   r   r¯   r¯   C  s3   … àƒKó
óFð ×Ñð
 ò 
ó ñ
r*   r¯   c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚTypeDictSourcer   Nc                 óh   —  || j                   «       |j                  |j                  d«      «       y )NÚ__dict__©r‹   rƒ   rœ   r7   s     r   r:   zTypeDictSource.reconstruct^  ó'   € Ù�—	‘	ÔØ×Ñ˜g×7Ñ7¸
ÓCÕDr*   c                  ó   — y)Nzdict({0}.__dict__)rM   r=   s    r   rB   zTypeDictSource._name_templateb  s   € ð $r*   rC   r�   rM   r*   r   rµ   rµ   \  s#   „ óEð ð$ ò $ó ñ$r*   rµ   c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚTypeMROSourcer   Nc                 óh   —  || j                   «       |j                  |j                  d«      «       y )NÚ__mro__r¸   r7   s     r   r:   zTypeMROSource.reconstructn  ó'   € Ù�—	‘	ÔØ×Ñ˜g×7Ñ7¸	ÓBÕCr*   c                  ó   — y)Nz{0}.__mro__rM   r=   s    r   rB   zTypeMROSource._name_templater  s   € àr*   rC   r�   rM   r*   r   r¼   r¼   l  s#   „ óDð ð ò ó ñ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.   Nc                 óX   — |j                  |j                  | j                  «      «       y r3   )r5   Úcreate_load_closurer.   r7   s     r   r:   zLocalCellSource.reconstruct€  s!   € ð 	×Ñ˜g×9Ñ9¸$¿/¹/ÓJÕKr*   rC   )rD   rE   rF   r«   r'   rG   r:   rM   r*   r   rÂ   rÂ   w  s   … ñð
 ƒOôLr*   rÂ   c                   ó*   — e Zd Zdd„Zedefd„«       Zy)Ú
CodeSourcer   Nc                 óh   —  || j                   «       |j                  |j                  d«      «       y )NÚ__code__r¸   r7   s     r   r:   zCodeSource.reconstruct�  r¹   r*   c                  ó   — y)Nz{0}.__code__rM   r=   s    r   rB   zCodeSource._name_template‘  s   € àr*   rC   r�   rM   r*   r   rÆ   rÆ   ‹  s#   „ óEð ð ò ó ñr*   rÆ   c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚClosureSourcer   Nc                 óh   —  || j                   «       |j                  |j                  d«      «       y )NÚ__closure__r¸   r7   s     r   r:   zClosureSource.reconstruct™  s'   € Ù�—	‘	ÔØ×Ñ˜g×7Ñ7¸ÓFÕGr*   c                  ó   — y)Nz{0}.__closure__rM   r=   s    r   rB   zClosureSource._name_template�  s   € à r*   rC   r�   rM   r*   r   rË   rË   —  s#   „ óHð ð! ò !ó ñ!r*   rË   c                   óN   — e Zd ZU dZeed<   dd„Zej                  defd„«       Z	y)Ú
GradSourceÚgradr”   r   Nc                 ó|   —  || j                   «       |j                  |j                  | j                  «      «       y r3   r›   r7   s     r   r:   zGradSource.reconstructª  r�   r*   c                 ó2   — dt        | j                  «      › �S )Nr    r³   r=   s    r   rB   zGradSource._name_template®  s   € àœ §¡Ó-Ð.Ð/Ð/r*   rC   )
rD   rE   rF   r”   r'   rG   r:   rK   rL   rB   rM   r*   r   rÐ   rÐ   ¦  s3   … à€FˆCÓóFð ×Ñð0 ò 0ó ñ0r*   rÐ   c                   ó6   — e Zd Zej                  defd„«       Zy)ÚParamBufferSourcer   c                 ó<   — t         | j                  j                     S r3   ©Ú#_GUARD_SOURCE_SPECIALIZED_NN_MODULEr‹   r   r=   s    r   r   zParamBufferSource.guard_sourceµ  ó   € ä2°4·9±9×3IÑ3IÑJÐJr*   N©rD   rE   rF   rK   rL   r
   r   rM   r*   r   rÕ   rÕ   ³  s$   „ à×ÑðK˜kò Kó ñKr*   rÕ   c                   ó   — e Zd Zy)ÚUnspecializedParamBufferSourceNr�   rM   r*   r   rÜ   rÜ   »  r‘   r*   rÜ   c                   óˆ   — e Zd ZU dZedz  ed<   edefd„«       Ze	j                  defd„«       Zdedef   defd„Zdefd	„Zy)
ÚEphemeralSourceNÚdescr   c                 ó"   — t         j                  S r3   )r
   Ú	EPHEMERALr=   s    r   r   zEphemeralSource.guard_sourceÍ  ó   € ä×$Ñ$Ð$r*   c                 óZ   — | j                   �d| j                   z   nd}dt        |«      › d�S )Nz: r¦   z
<ephemeralú>)rß   r)   )r8   rß   s     r   rB   zEphemeralSource._name_templateÑ  s/   € à#'§9¡9Ð#8ˆt�d—i‘iÒ¸bˆØœH T›NÐ+¨1Ð-Ð-r*   Úfn.c                 ó   — t         ‚r3   rV   ©r8   rå   s     r   Ú
make_guardzEphemeralSource.make_guardÖ  ó   € Ü!Ð!r*   c                  ó   — y©NTrM   r=   s    r   Úis_ephemeralzEphemeralSource.is_ephemeralÙ  ó   € Ør*   )rD   rE   rF   rß   r'   rG   rJ   r
   r   rK   rL   rB   r   r   r	   rè   rH   rì   rM   r*   r   rÞ   rÞ   É  sr   … à€Dˆ#�‰*Óàð%˜kò %ó ð%ð ×Ñð. ò .ó ð.ð"˜X c¨3 hÑ/ð "°Eó "ð˜dô r*   rÞ   c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚSkipGuardSourcer   Nc                 ó:   — | j                   j                  |«       y r3   )r‹   r:   r7   s     r   r:   zSkipGuardSource.reconstructß  s   € Ø�	‰	×Ñ˜gÕ&r*   c                  ó   — y©Nz{0}rM   r=   s    r   rB   zSkipGuardSource._name_templateâ  ó   € àr*   rC   r�   rM   r*   r   rï   rï   Ý  s"   „ ó'ð ð ò ó ñr*   rï   c                   ó$   — e Zd ZdZdZdZdefd„Zy)ÚTensorPropertyr   r   é   r   c                 ó¢   — | t         j                  u ry| t         j                  u ry| t         j                  u ryt	        dt        | «      › �«      ‚)NÚsizeÚstrideÚstorage_offsetú
unhandled )rõ   ÚSIZEÚSTRIDEÚSTORAGE_OFFSETÚAssertionErrorr)   r=   s    r   Úmethod_namezTensorProperty.method_nameì  sL   € Ø”>×&Ñ&Ñ&ØØ”^×*Ñ*Ñ*ØØ”^×2Ñ2Ñ2Ø#ä  :¬h°t«nÐ-=Ð!>Ó?Ð?r*   N)rD   rE   rF   rü   rý   rþ   r'   r   rM   r*   r   rõ   rõ   ç  s   „ Ø€DØ€FØ€Nð@˜Sô @r*   rõ   c                   óf   — e Zd ZU eed<   dZedz  ed<   dd„Zd	d„Ze	j                  defd„«       Zy)
ÚTensorPropertySourceÚpropNÚidxr   c                 ó’   — | j                   €J ‚| j                  t        j                  u r| j                  �J ‚y | j                  €J ‚y r3   )r‹   r  rõ   rþ   r  r=   s    r   r™   z"TensorPropertySource.__post_init__ü  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                  óŒ   •— ‰ j                  t        j                  dt        ‰j                  j                  «       «      › �«      S )NÚcall_)Úload_import_fromr   rD   r)   r  r   r   s   €€r   r€   z2TensorPropertySource.reconstruct.<locals>.<lambda>  s5   ø€ �G×,Ñ,Ü—‘ %¬°·±×1FÑ1FÓ1HÓ(IÐ'JÐ Kó€ r*   rö   r   F)r‚   r‹   r  r5   rg   rƒ   r   r7   s   ``r   r:   z TensorPropertySource.reconstruct  sn   ù€ Ø×Ñôô	
ñ
 	�—	‘	Ôà�8‰8ÐØ×!Ñ! '×";Ñ";¸D¿H¹HÓ"EÔFØ×ÑÜ  d§h¡hÐ&:¡ÀÀ5ÓIõ	
r*   c                 ón  — | j                   t        j                  u rdt        | j                  «      › d�S | j                   t        j
                  u rdt        | j                  «      › d�S | j                   t        j                  u r| j                  �J ‚yt        dt        | j                   «      › �«      ‚)Nz{0}.size()[r@   z{0}.stride()[z{0}.storage_offset()rû   )r  rõ   rü   r)   r  rý   rþ   rÿ   r=   s    r   rB   z#TensorPropertySource._name_template  s™   € à�9‰9œ×+Ñ+Ñ+Ø"¤8¨D¯H©HÓ#5Ð"6°aÐ8Ð8Ø�Y‰Yœ.×/Ñ/Ñ/Ø$¤X¨d¯h©hÓ%7Ð$8¸Ð:Ð:Ø�Y‰Yœ.×7Ñ7Ñ7Ø—8‘8Ð#Ð#Ð#Ø)ä  :¬h°t·y±yÓ.AÐ-BÐ!CÓDÐDr*   r¢   rC   )rD   rE   rF   rõ   rG   r  rj   r™   r:   rK   rL   r'   rB   rM   r*   r   r  r  ÷  sD   … à
ÓØ€Cˆˆt‰Óó(ó
ð ×Ñð	E ò 	Eó ñ	Er*   r  c                   óR   — e Zd ZU eed<   dd„Zdd„Zej                  de	fd„«       Z
y)	ÚIndexedSourcer  r   Nc                 ó    — | j                   €J ‚y r3   rŠ   r=   s    r   r™   zIndexedSource.__post_init__"  ó   € Ø�y‰yÐ$Ð$Ñ$r*   c                 ó   — t         ‚r3   rV   r7   s     r   r:   zIndexedSource.reconstruct%  ré   r*   c                 ó4   — dt        | j                  «      › d�S )Nú(z, {0}))r)   r  r=   s    r   rB   zIndexedSource._name_template(  s   € à”8˜DŸH™HÓ%Ð& hÐ/Ð/r*   r¢   rC   )rD   rE   rF   rj   rG   r™   r:   rK   rL   r'   rB   rM   r*   r   r  r    s2   … à	ƒHó%ó"ð ×Ñð0 ò 0ó ñ0r*   r  c                   ó2   — e Zd Zdd„Zdd„Zedefd„«       Zy)ÚNegateSourcer   Nc                 ó    — | j                   €J ‚y r3   rŠ   r=   s    r   r™   zNegateSource.__post_init__/  r  r*   c                 ó   — t         ‚r3   rV   r7   s     r   r:   zNegateSource.reconstruct2  ré   r*   c                  ó   — y)Nz{0}.__neg__()rM   r=   s    r   rB   zNegateSource._name_template5  s   € ð r*   r¢   rC   ©rD   rE   rF   r™   r:   rJ   r'   rB   rM   r*   r   r  r  -  s'   „ ó%ó"ð ð ò ó ñr*   r  c                   ó2   — e Zd Zdd„Zdd„Zedefd„«       Zy)ÚConvertIntSourcer   Nc                 ó    — | j                   €J ‚y r3   rŠ   r=   s    r   r™   zConvertIntSource.__post_init__=  r  r*   c                 ó(   —  || j                   «       y r3   rŠ   r7   s     r   r:   zConvertIntSource.reconstruct@  ó   € Ù�—	‘	Õr*   c                  ó   — y)Nz%cast_symbool_to_symint_guardless({0})rM   r=   s    r   rB   zConvertIntSource._name_templateC  s   € à6r*   r¢   rC   r  rM   r*   r   r  r  ;  s'   „ ó%óð ð7 ò 7ó ñ7r*   r  c                   ó>   — e Zd ZU eed<   dd„Zdd„Zedefd„«       Z	y)	ÚDynamicScalarSourceÚis_intr   Nc                 ó    — | j                   €J ‚y r3   rŠ   r=   s    r   r™   z!DynamicScalarSource.__post_init__L  r  r*   c                 óˆ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  t        dd«      «       y )Nc                  ó(   •— ‰ j                  dd«      S )NÚbuiltinsrj   ©r	  ©r9   s   €r   r€   z1DynamicScalarSource.reconstruct.<locals>.<lambda>T  s   ø€  g×&>Ñ&>¸zÈ5Ó&Q€ r*   r   F©r‚   r‹   rƒ   r   r7   s    `r   r:   zDynamicScalarSource.reconstructO  s6   ø€ ð
 	×ÑÓQÔRÙ�—	‘	ÔØ×ÑÔ2°1°eÓ<Õ=r*   c                  ó   — y)Nzint({0})rM   r=   s    r   rB   z"DynamicScalarSource._name_templateX  s   € àr*   r¢   rC   )
rD   rE   rF   rH   rG   r™   r:   rJ   r'   rB   rM   r*   r   r  r  H  s,   … àƒLó%ó>ð ð ò ó ñr*   r  c                   ó2   — e Zd Zdd„Zdd„Zedefd„«       Zy)ÚFlattenScriptObjectSourcer   Nc                 ó    — | j                   €J ‚y r3   rŠ   r=   s    r   r™   z'FlattenScriptObjectSource.__post_init___  r  r*   c                 ó(   —  || j                   «       y r3   rŠ   r7   s     r   r:   z%FlattenScriptObjectSource.reconstructb  r  r*   c                  ó   — y)Nz{0}.__obj_flatten__()rM   r=   s    r   rB   z(FlattenScriptObjectSource._name_templatee  s   € à&r*   r¢   rC   r  rM   r*   r   r*  r*  ]  s'   „ ó%óð ð' ò 'ó ñ'r*   r*  c                   ó2   — e Zd Zdd„Zdd„Zedefd„«       Zy)ÚScriptObjectQualifiedNameSourcer   Nc                 ó    — | j                   €J ‚y r3   rŠ   r=   s    r   r™   z-ScriptObjectQualifiedNameSource.__post_init__l  r  r*   c                 ó(   —  || j                   «       y r3   rŠ   r7   s     r   r:   z+ScriptObjectQualifiedNameSource.reconstructo  r  r*   c                  ó   — y)Nz{0}._type().qualified_name()rM   r=   s    r   rB   z.ScriptObjectQualifiedNameSource._name_templater  s   € à-r*   r¢   rC   r  rM   r*   r   r/  r/  j  s'   „ ó%óð ð. ò .ó ñ.r*   r/  c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚAttrProxySourcer   Nc                 ó(   —  || j                   «       y r3   rŠ   r7   s     r   r:   zAttrProxySource.reconstructx  r  r*   c                  ó   — y)Nz{0}.get_base()rM   r=   s    r   rB   zAttrProxySource._name_template{  s   € àr*   rC   r�   rM   r*   r   r4  r4  w  s"   „ óð ð  ò  ó ñ r*   r4  c                   óÎ   — e Zd ZU eez  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d	„Zdd
„Zej                  defd„«       Zy)ÚDefaultsSourceÚidx_keyFÚis_kw)Úinitr&   Úcomparer­   Ú_namer   Nc           
      ó   — | j                   sJ d«       ‚| j                  rxt        | j                  t        «      sJ ‚t
        j                  | dd«       t
        j                  | ddt        | j                  «      › dt        | j                  «      › d�«       y t        | j                  t        «      sJ ‚t
        j                  | dd«       t
        j                  | ddt        | j                  «      › d	t        | 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@   )
r‹   r:  r   r9  r'   ÚobjectÚ__setattr__r)   r­   rj   r=   s    r   r™   zDefaultsSource.__post_init__‡  sã   € Ø�yŠyð 	
Økó	
ˆyð �:Š:Ü˜dŸl™l¬CÔ0Ð0Ð0Ü×Ñ˜t WÐ.>Ô?Ü×ÑØØØœ $§*¡*Ó-Ð.¨b´¸$¿,¹,Ó1GÐ0HÈÐKõô ˜dŸl™l¬CÔ0Ð0Ð0Ü×Ñ˜t W¨nÔ=Ü×ÑØ�g ¬°·±Ó(<Ð'=¸Q¼xÈÏÉÓ?UÐ>VÐVWÐXõr*   c                 ó  —  || j                   «       |j                  |j                  | j                  «      «       |j	                  |j                  | j                  «      «       |j	                  t        «       «       y r3   )r‹   rƒ   rœ   r­   r5   rg   r9  r   r7   s     r   r:   zDefaultsSource.reconstructš  sZ   € Ù�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿
¹
ÓCÔDØ×Ñ˜g×7Ñ7¸¿¹ÓEÔFØ×ÑÔ2Ó4Õ5r*   c                 ó   — | j                   S r3   )r=  r=   s    r   rB   zDefaultsSource._name_template   s   € à�z‰zÐr*   r¢   rC   )rD   rE   rF   rj   r'   rG   r:  rH   r¬   r­   r=  r™   r:   rK   rL   rB   rM   r*   r   r8  r8  €  sw   … à�3‰YÓØ€Eˆ4ÓØ"�×"Ñ"¨°EÀ5ÔI€Eˆ3ÓIØ"�×"Ñ"¨°EÀ5ÔI€Eˆ3ÓIóó&6ð ×Ñð ò ó ñr*   r8  c                   óx   ‡ — e Zd ZU eed<   dZeed<   d	ˆ fd„Zd
d„Zde	fd„Z
ej                  defd„«       Zˆ xZS )ÚGetItemSourceÚindexFÚindex_is_slicer   c                 óÈ   •— | j                   €J ‚t        | j                  t        «      r9t        ‰| �  d| j                  j                  «       «       t        ‰| �  dd«       y y )NrH  rI  T)r‹   r   rH  ÚsliceÚsuperrC  Ú
__reduce__)r8   Ú	__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        «       «       y r3   )r‹   rI  r5   rg   Úunpack_slicerH  r   r7   s     r   r:   zGetItemSource.reconstruct±  sh   € Ù�—	‘	ÔØ×ÒØ×!Ñ! '×";Ñ";¸D×<MÑ<MÓ<OÓ"PÕQà×!Ñ! '×";Ñ";¸D¿J¹JÓ"GÔHØ×ÑÔ2Ó4Õ5r*   c                 óF   — | j                   sJ ‚| j                  \  }} ||Ž S r3   )rI  rH  )r8   Úslice_classÚ
slice_argss      r   rP  zGetItemSource.unpack_slice¹  s*   € Ø×"Ò"Ð"Ð"Ø"&§*¡*Ñˆ�ZÙ˜JÐ'Ð'r*   c                 óÆ   — t        | j                  t        «      rJ ‚| j                  rdt	        | j                  «       d¬«      › d�S dt	        | j                  d¬«      › d�S )Nú{0}[Tr?   r@   )r   rH  r   rI  r)   rP  r=   s    r   rB   zGetItemSource._name_template¾  s\   € ô
 ˜dŸj™j¬&Ô1Ð1Ð1Ø×ÒØœH T×%6Ñ%6Ó%8ÀTÔJÐKÈ1ÐMÐMàœH T§Z¡Z¸DÔAÐBÀ!ÐDÐDr*   r¢   rC   )rD   rE   rF   r   rG   rI  rH   r™   r:   rK  rP  rK   rL   r'   rB   Ú__classcell__)rN  s   @r   rG  rG  ¥  sL   ø… àƒJØ €N�DÓ õ8ó6ð(˜eó (ð
 ×ÑðE ò Eó ôEr*   rG  c                   óV   — e Zd ZU eed<   dd„Zej                  defd„«       Z	de
fd„Zy)ÚConstDictKeySourcerH  r   Nc                 óÜ   ‡— ‰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   rD   r&  s   €r   r€   z0ConstDictKeySource.reconstruct.<locals>.<lambda>Ð  s   ø€ �G×,Ñ,¬U¯^©^Ð=PÓQ€ r*   rö   F©r‚   r‹   r5   rg   rH  rƒ   r   r7   s    `r   r:   zConstDictKeySource.reconstructÎ  sU   ø€ Ø×ÑÛQô	
ñ 	�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿
¹
ÓCÔDØ×ÑÔ2°1°eÓ<Õ=r*   c                 ó8   — dt        | j                  d¬«      › d�S )Nzlist(dict.keys({0}))[Tr?   r@   ©r)   rH  r=   s    r   rB   z!ConstDictKeySource._name_templateÖ  s   € ð )¬°$·*±*ÈÔ)NÐ(OÈqÐQÐQr*   c                  ó   — yrë   rM   r=   s    r   Úis_dict_keyzConstDictKeySource.is_dict_keyÛ  rí   r*   rC   )rD   rE   rF   r   rG   r:   rK   rL   r'   rB   rH   ra  rM   r*   r   rX  rX  Ê  s<   … àƒJó>ð ×ÑðR ò Ró ðRð˜Tô r*   rX  c                   ó^   — e Zd ZU eed<   dd„Zd	d„Zej                  de	fd„«       Z
defd„Zy)
ÚNonSerializableSetGetItemSourcerH  r   Nc                 óJ   — ddl m} |j                  | j                  «      sJ ‚y ©Nr   )ÚConstantVariable)Ú	variablesrf  Ú
is_literalrH  ©r8   rf  s     r   r™   z-NonSerializableSetGetItemSource.__post_init__ã  s   € Ý/à×*Ñ*¨4¯:©:Ô6Ð6Ñ6r*   c                 óÜ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  ‰j                  | j                  «      «       ‰j                  t        dd«      «       y )Nc                  óD   •— ‰ j                  t        j                  d«      S )NÚset_getitemr\  r&  s   €r   r€   z=NonSerializableSetGetItemSource.reconstruct.<locals>.<lambda>ê  s   ø€ �G×,Ñ,¬U¯^©^¸]ÓK€ r*   rö   Fr]  r7   s    `r   r:   z+NonSerializableSetGetItemSource.reconstructè  sU   ø€ Ø×ÑÛKô	
ñ 	�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿
¹
ÓCÔDØ×ÑÔ2°1°eÓ<Õ=r*   c                 ó8   — dt        | j                  d¬«      › d�S )Nz
list({0})[Tr?   r@   r_  r=   s    r   rB   z.NonSerializableSetGetItemSource._name_templateð  s   € ð œh t§z¡z¸dÔCÐDÀAÐFÐFr*   c                  ó   — y)NFrM   r=   s    r   ra  z+NonSerializableSetGetItemSource.is_dict_keyõ  s   € Ør*   r¢   rC   )rD   rE   rF   rj   rG   r™   r:   rK   rL   r'   rB   rH   ra  rM   r*   r   rc  rc  ß  sA   … àƒJó7ó
>ð ×ÑðG ò Gó ðGð˜Tô r*   rc  c                   óR   — e Zd ZU eed<   dd„Zdd„Zej                  de	fd„«       Z
y)	ÚDictGetItemSourcerH  r   Nc                 ó€   — ddl m} t        | j                  t        «      s|j                  | j                  «      sJ ‚y y re  ©rg  rf  r   rH  rX  rh  ri  s     r   r™   zDictGetItemSource.__post_init__  ó;   € Ý/äØ�J‰JÔ*ô
à×(Ñ(¨¯©Ô4ð	5ð 5à4ð
r*   c                 ó  —  || j                   «       t        | j                  t        «      r || j                  «       n*|j	                  |j                  | j                  «      «       |j	                  t        «       «       y r3   )r‹   r   rH  r   r5   rg   r   r7   s     r   r:   zDictGetItemSource.reconstruct  sY   € á�—	‘	Ôô �d—j‘j¤&Ô)Ù�D—J‘JÕà×!Ñ! '×";Ñ";¸D¿J¹JÓ"GÔHØ×ÑÔ2Ó4Õ5r*   c                 ó²   — t        | j                  t        «      r#dt        | j                  j                  «      › d�S dt        | j                  d¬«      › d�S )NrU  r@   Tr?   ©r   rH  rX  r)   r   r=   s    r   rB   z DictGetItemSource._name_template  sI   € ä�d—j‘jÔ"4Ô5ØœH T§Z¡Z§_¡_Ó5Ð6°aÐ8Ð8àœH T§Z¡Z¸DÔAÐBÀ!ÐDÐDr*   r¢   rC   ©rD   rE   rF   r   rG   r™   r:   rK   rL   r'   rB   rM   r*   r   rp  rp  ú  s7   … ð
 ƒJó5ó	6ð ×ÑðE ò Eó ñEr*   rp  c                   óR   — e Zd ZU eed<   dd„Zdd„Zej                  de	fd„«       Z
y)	ÚDictSubclassGetItemSourcerH  r   Nc                 ó€   — ddl m} t        | j                  t        «      s|j                  | j                  «      sJ ‚y y re  rr  ri  s     r   r™   z'DictSubclassGetItemSource.__post_init__$  rs  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   r€   z7DictSubclassGetItemSource.reconstruct.<locals>.<lambda>0  ó   ø€ �G×,Ñ,¬U¯^©^¸^ÓL€ r*   rö   F)	r‚   r‹   r   rH  r   r5   rg   rƒ   r   r7   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        «      r#dt        | j                  j                  «      › d�S dt        | j                  d¬«      › d�S )Nzdict.__getitem__({0}, rŸ   rU  Tr?   r@   rv  r=   s    r   rB   z(DictSubclassGetItemSource._name_template>  sI   € ä�d—j‘jÔ"4Ô5Ø-¬h°t·z±z·±Ó.GÐ-HÈÐJÐJàœH T§Z¡Z¸DÔAÐBÀ!ÐDÐDr*   r¢   rC   rw  rM   r*   r   ry  ry    s7   … ð
 ƒJó5ó>ð& ×ÑðE ò Eó ñEr*   ry  c                   óB   — e Zd ZdZdd„Zej                  defd„«       Zy)ÚListGetItemSourcezY
    Same as GetItemSource with reconstruct and name overridden to be list specific.
    r   Nc                 ó
  ‡— ‰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   r€   z/ListGetItemSource.reconstruct.<locals>.<lambda>R  r~  r*   ú>List[slice] is a temporary object and should not have a sourcerö   F)	r‚   r‹   rI  ÚRuntimeErrorr5   rg   rH  rƒ   r   r7   s    `r   r:   zListGetItemSource.reconstructL  st   ø€ ð
 	×ÑÛLô	
ñ
 	�—	‘	Ôð ×ÒÜØPóð ð ×!Ñ! '×";Ñ";¸D¿J¹JÓ"GÔHà×ÑÔ2°1°eÓ<Õ=r*   c                 óž   — t        | j                  t        «      rJ ‚| j                  rt	        d«      ‚dt        | j                  d¬«      › d�S )Nr…  zlist.__getitem__({0}, Tr?   rŸ   )r   rH  r   rI  r†  r)   r=   s    r   rB   z ListGetItemSource._name_templateb  sO   € ô
 ˜dŸj™j¬&Ô1Ð1Ð1Ø×ÒÜØPóð ð .¬h°t·z±zÈdÔ.SÐ-TÐTUÐVÐVr*   rC   )	rD   rE   rF   r«   r:   rK   rL   r'   rB   rM   r*   r   r�  r�  F  s0   „ ñó>ð, ×Ñð
W ò 
Wó ñ
Wr*   r�  c                   ó>   — e Zd Zdd„Zej
                  defd„«       Zy)ÚTupleIteratorGetItemSourcer   Nc                 óÜ   ‡— ‰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   r€   z8TupleIteratorGetItemSource.reconstruct.<locals>.<lambda>t  s   ø€ �G×,Ñ,¬U¯^©^Ð=UÓV€ r*   rö   Fr]  r7   s    `r   r:   z&TupleIteratorGetItemSource.reconstructr  sU   ø€ Ø×ÑÛVô	
ñ 	�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿
¹
ÓCÔDØ×ÑÔ2°1°eÓ<Õ=r*   c                 ó8   — dt        | j                  d¬«      › d�S )Nz___tuple_iterator_getitem({0}, Tr?   rŸ   r_  r=   s    r   rB   z)TupleIteratorGetItemSource._name_templatez  s#   € ð 0´¸¿¹ÐPTÔ0UÐ/VÐVWÐXð	
r*   rC   )rD   rE   rF   r:   rK   rL   r'   rB   rM   r*   r   r‰  r‰  p  s(   „ ó>ð ×Ñð
 ò 
ó ñ
r*   r‰  c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚNamedTupleFieldsSourcer   Nc                 óh   —  || j                   «       |j                  |j                  d«      «       y )NÚ_fieldsr¸   r7   s     r   r:   z"NamedTupleFieldsSource.reconstructƒ  r¿   r*   c                  ó   — y)Nz___namedtuple_fields({0})rM   r=   s    r   rB   z%NamedTupleFieldsSource._name_template‡  s   € à*r*   rC   r�   rM   r*   r   r�  r�  �  s#   „ óDð ð+ ò +ó ñ+r*   r�  c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚDataclassFieldsSourcer   Nc                 óˆ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  t        dd«      «       y )Nc                  óD   •— ‰ j                  t        j                  d«      S )NÚdataclass_fieldsr\  r&  s   €r   r€   z3DataclassFieldsSource.reconstruct.<locals>.<lambda>�  s   ø€ �G×,Ñ,¬U¯^©^Ð=OÓP€ r*   r   Fr'  r7   s    `r   r:   z!DataclassFieldsSource.reconstructŽ  s8   ø€ Ø×ÑÛPô	
ñ 	�—	‘	ÔØ×ÑÔ2°1°eÓ<Õ=r*   c                  ó   — y)Nz___dataclass_fields({0})rM   r=   s    r   rB   z$DataclassFieldsSource._name_template•  s   € à)r*   rC   r�   rM   r*   r   r”  r”  Œ  s"   „ ó>ð ð* ò *ó ñ*r*   r”  c                   ó2   — e Zd Zdd„Zdd„Zedefd„«       Zy)Ú
TypeSourcer   Nc                 ó    — | j                   €J ‚y r3   rŠ   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 )Nr$  Útyper%  r&  s   €r   r€   z(TypeSource.reconstruct.<locals>.<lambda>   s   ø€  g×&>Ñ&>¸zÈ6Ó&R€ r*   r   Fr'  r7   s    `r   r:   zTypeSource.reconstructŸ  s4   ø€ Ø×ÑÓRÔSÙ�—	‘	ÔØ×ÑÔ2°1°eÓ<Õ=r*   c                  ó   — y)Nz	type({0})rM   r=   s    r   rB   zTypeSource._name_template¤  s   € àr*   r¢   rC   r  rM   r*   r   rš  rš  š  s'   „ ó%ó>ð
 ð ò ó ñr*   rš  c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚOptimizerSourcer   Nc                 ó(   —  || j                   «       y r3   rŠ   r7   s     r   r:   zOptimizerSource.reconstruct«  r  r*   c                  ó   — yrò   rM   r=   s    r   rB   zOptimizerSource._name_template®  ró   r*   rC   r�   rM   r*   r   r¡  r¡  ©  s"   „ óð ð ò ó ñr*   r¡  c                   óT   — e Zd Zdd„Zej
                  defd„«       Zede	fd„«       Z
y)ÚNNModuleSourcer   Nc                 ó(   —  || j                   «       y r3   rŠ   r7   s     r   r:   zNNModuleSource.reconstructµ  r  r*   c                 ó<   — t         | j                  j                     S r3   r×   r=   s    r   r   zNNModuleSource.guard_source¸  rÙ   r*   c                  ó   — yrò   rM   r=   s    r   rB   zNNModuleSource._name_template¼  ró   r*   rC   )rD   rE   rF   r:   rK   rL   r
   r   rJ   r'   rB   rM   r*   r   r¥  r¥  ³  sF   „ óð ×ÑðK˜kò Kó ðKð ð ò ó ñr*   r¥  c                   ó6   — e Zd Zej                  defd„«       Zy)ÚUnspecializedNNModuleSourcer   c                 ó<   — t         | j                  j                     S r3   )Ú%_GUARD_SOURCE_UNSPECIALIZED_NN_MODULEr‹   r   r=   s    r   r   z(UnspecializedNNModuleSource.guard_sourceÃ  s   € ä4°T·Y±Y×5KÑ5KÑLÐLr*   NrÚ   rM   r*   r   rª  rª  Á  s$   „ à×ÑðM˜kò Mó ñMr*   rª  c                   ó6   — e Zd Zej                  defd„«       Zy)Ú"UnspecializedBuiltinNNModuleSourcer   c                 ó<   — t         | j                  j                     S r3   )Ú-_GUARD_SOURCE_UNSPECIALIZED_BUILTIN_NN_MODULEr‹   r   r=   s    r   r   z/UnspecializedBuiltinNNModuleSource.guard_sourceÊ  s   € ä<¸T¿Y¹Y×=SÑ=SÑTÐTr*   NrÚ   rM   r*   r   r®  r®  È  s$   „ à×ÑðU˜kò Uó ñUr*   r®  c                   ó6   — e Zd Zej                  defd„«       Zy)ÚFSDPNNModuleSourcer   c                 ó<   — t         | j                  j                     S r3   )Ú_GUARD_SOURCE_FSDP_MODULEr‹   r   r=   s    r   r   zFSDPNNModuleSource.guard_sourceÑ  s   € ä(¨¯©×)?Ñ)?Ñ@Ð@r*   NrÚ   rM   r*   r   r²  r²  Ï  s$   „ à×ÑðA˜kò Aó ñAr*   r²  c                   ó8   — e Zd Zedefd„«       Zedefd„«       Zy)ÚGlobalStateSourcer   c                  ó   — y©Nr¦   rM   r=   s    r   rB   z GlobalStateSource._name_templateØ  ó   € àr*   c                 ó"   — t         j                  S r3   ru   r=   s    r   r   zGlobalStateSource.guard_sourceÜ  rw   r*   N©rD   rE   rF   rJ   r'   rB   r
   r   rM   r*   r   r¶  r¶  Ö  s6   „ àð ò ó ðð ð"˜kò "ó ñ"r*   r¶  c                   ól   — e Zd ZU dZeed<   d	d„Zej                  defd„«       Z	d
d„Z
edefd„«       Zy)ÚImportSourcezˆPoints to an imported module - used instead of GlobalSource
    in case the user has overridden the module name in their local namespaceÚmodule_namer   Nc                 óV   — ddl m}m}  || j                  |j                  «      «       y )Nr   )ÚGuardBuilderÚinstall_guard)ÚguardsrÀ  rÁ  rè   ÚID_MATCH)r8   rÀ  rÁ  s      r   r™   zImportSource.__post_init__è  s   € ß7á�d—o‘o l×&;Ñ&;Ó<Õ=r*   c                 ó"   — d| j                   › d�S )Nz__import__('z'))r¾  r=   s    r   rB   zImportSource._name_templateí  s   € à˜d×.Ñ.Ð/¨rÐ2Ð2r*   c                 óŽ   — |j                  |j                  d«      t        d«      |j                  | j                  «      g«       y )Nr   )rƒ   rg   r   Úcreate_import_namer¾  r7   s     r   r:   zImportSource.reconstructñ  s?   € Ø×Ñà×)Ñ)¨!Ó,Ü" 1Ó%Ø×*Ñ*¨4×+;Ñ+;Ó<ðõ	
r*   c                 ó"   — t         j                  S r3   ru   r=   s    r   r   zImportSource.guard_sourceú  rw   r*   r¢   rC   )rD   rE   rF   r«   r'   rG   r™   rK   rL   rB   r:   rJ   r
   r   rM   r*   r   r½  r½  á  sV   … ñPð Óó>ð
 ×Ñð3 ò 3ó ð3ó
ð ð"˜kò "ó ñ"r*   r½  c                   ól   — e Zd ZU eed<   ej                  defd„«       Zdefd„Z	dd„Z
edefd„«       Zy)	ÚTorchFunctionModeStackSourceÚindr   c                 ó<   — dt        | j                  «       «      › d�S )Nz$___get_torch_function_mode_stack_at(rŸ   )r)   Ú
_get_indexr=   s    r   rB   z+TorchFunctionModeStackSource._name_template  s   € à5´h¸t¿¹Ó?PÓ6QÐ5RÐRSÐTÐTr*   c                 óD   — ddl m} |j                  | j                  «      S )Nr   )ÚTorchFunctionModeStackVariable)Úvariables.torch_functionrÎ  Úget_mode_indexrÊ  )r8   rÎ  s     r   rÌ  z'TorchFunctionModeStackSource._get_index  s   € ÝLà-×<Ñ<¸T¿X¹XÓFÐFr*   Nc                 óÂ   ‡— ‰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   r€   z:TorchFunctionModeStackSource.reconstruct.<locals>.<lambda>  s   ø€ �G×,Ñ,Ü—‘Ð Bó€ r*   r   F)r‚   rƒ   rg   rÌ  r   r7   s    `r   r:   z(TorchFunctionModeStackSource.reconstruct  sQ   ø€ Ø×Ñóô	
ð
 	×Ñ˜w×8Ñ8¸¿¹Ó9JÓKÐLÔMØ×ÑÔ2°1°eÓ<Õ=r*   c                 ó"   — t         j                  S r3   ru   r=   s    r   r   z)TorchFunctionModeStackSource.guard_source  rw   r*   rC   )rD   rE   rF   rj   rG   rK   rL   r'   rB   rÌ  r:   rJ   r
   r   rM   r*   r   rÉ  rÉ  ÿ  sW   … à	ƒHà×ÑðU ò Uó ðUðG˜Có Gó
>ð ð"˜kò "ó ñ"r*   rÉ  c                   óp   — e Zd ZU eed<   d	d„Zedefd„«       Ze	j                  defd„«       Zdedefd„Zy)
r   Úsource_namer   Nc                 ó\   — |j                  |j                  | j                  d¬«      «       y )NFrp   )r5   rs   rÖ  r7   s     r   r:   zConstantSource.reconstruct  s&   € Ø×Ñ˜g×8Ñ8¸×9IÑ9IÈuÐ8ÓUÕVr*   c                 ó"   — t         j                  S r3   )r
   r   r=   s    r   r   zConstantSource.guard_source!  s   € ä×#Ñ#Ð#r*   c                 ó   — | j                   S r3   )rÖ  r=   s    r   rB   zConstantSource._name_template%  s   € à×ÑÐr*   rå   c                 ó   — t         ‚r3   rV   rç   s     r   rè   zConstantSource.make_guard)  ré   r*   rC   )rD   rE   rF   r'   rG   r:   rJ   r
   r   rK   rL   rB   r   rè   rM   r*   r   r   r     s]   … àÓóWð ð$˜kò $ó ð$ð ×Ñð  ò  ó ð ð"˜Sð " Sô "r*   r   c                   ó*   — e Zd Zedefd„«       Zdd„Zy)ÚNumpyTensorSourcer   c                  ó   — y)Nz___from_numpy({0})rM   r=   s    r   rB   z NumpyTensorSource._name_template/  s   € à#r*   Nc                 óˆ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  t        dd«      «       y )Nc                  ó(   •— ‰ j                  dd«      S )NÚtorchÚ	as_tensorr%  r&  s   €r   r€   z/NumpyTensorSource.reconstruct.<locals>.<lambda>4  s   ø€  g×&>Ñ&>¸wÈÓ&T€ r*   r   Fr'  r7   s    `r   r:   zNumpyTensorSource.reconstruct3  s4   ø€ Ø×ÑÓTÔUÙ�—	‘	ÔØ×ÑÔ2°1°eÓ<Õ=r*   rC   )rD   rE   rF   rJ   r'   rB   r:   rM   r*   r   rÜ  rÜ  -  s    „ àð$ ò $ó ð$ô>r*   rÜ  c                   ó"   — e Zd Zedefd„«       Zy)ÚSubclassAttrListSourcer   c                  ó   — y)Nz{0}.__tensor_flatten__()[0]rM   r=   s    r   rB   z%SubclassAttrListSource._name_template;  s   € à,r*   N©rD   rE   rF   rJ   r'   rB   rM   r*   r   rã  rã  9  s   „ àð- ò -ó ñ-r*   rã  c                   ó"   — e Zd Zedefd„«       Zy)ÚFloatTensorSourcer   c                  ó   — y)Nz___as_tensor({0})rM   r=   s    r   rB   z FloatTensorSource._name_templateD  s   € à"r*   Nrå  rM   r*   r   rç  rç  B  s   „ àð# ò #ó ñ#r*   rç  c                   ó"   — e Zd Zedefd„«       Zy)ÚCallMethodItemSourcer   c                  ó   — y)Nz
{0}.item()rM   r=   s    r   rB   z#CallMethodItemSource._name_templateK  s   € àr*   Nrå  rM   r*   r   rê  rê  I  s   „ àð ò ó ñr*   rê  c                   ó8   — e Zd Zedefd„«       Zedefd„«       Zy)ÚShapeEnvSourcer   c                  ó   — yr¸  rM   r=   s    r   rB   zShapeEnvSource._name_templateU  r¹  r*   c                 ó"   — t         j                  S r3   )r
   Ú	SHAPE_ENVr=   s    r   r   zShapeEnvSource.guard_sourceY  râ   r*   Nr»  rM   r*   r   rí  rí  S  s6   „ àð ò ó ðð ð%˜kò %ó ñ%r*   rí  c                   ó`   — e Zd ZU eed<   ej                  defd„«       Zdd„Z	e
defd„«       Zy)ÚCurrentStreamSourcer   r   c                 óˆ   — dt        | j                  j                  «      › dt        | j                  j                  «      › d�S )Nz$___get_current_stream(torch.device('z', z)))r)   r   rž  rH  r=   s    r   rB   z"CurrentStreamSource._name_templateb  s=   € à5´h¸t¿{¹{×?OÑ?OÓ6PÐ5QÐQTÔU]Ð^b×^iÑ^i×^oÑ^oÓUpÐTqÐqsÐtÐtr*   Nc                 óÐ  ‡— d}‰j                  ˆfd„«       ‰j                  ˆfd„«       ‰j                  ‰j                  | j                  j                  «      g«       | j                  j
                  �:|dz  }‰j                  ‰j                  | j                  j
                  «      g«       ‰j                  t        |d«      «       ‰j                  t        dd«      «       y )Nr   c                  óD   •— ‰ j                  t        j                  d«      S )NÚget_current_streamr\  r&  s   €r   r€   z1CurrentStreamSource.reconstruct.<locals>.<lambda>i  s   ø€ �G×,Ñ,¬U¯^©^Ð=QÓR€ r*   c                  ó(   •— ‰ j                  dd«      S )Nrà  r   r%  r&  s   €r   r€   z1CurrentStreamSource.reconstruct.<locals>.<lambda>k  s   ø€  g×&>Ñ&>¸wÈÓ&Q€ r*   F)r‚   rƒ   rg   r   rž  rH  r   )r8   r9   Únum_argss    ` r   r:   zCurrentStreamSource.reconstructf  s»   ø€ ØˆØ×ÑÛRô	
ð 	×ÑÓQÔRØ×Ñ˜w×8Ñ8¸¿¹×9IÑ9IÓJÐKÔLØ�;‰;×ÑÐ(Ø˜‰MˆHØ×!Ñ! 7×#<Ñ#<¸T¿[¹[×=NÑ=NÓ#OÐ"PÔQØ×ÑÔ2°8¸UÓCÔDØ×ÑÔ2°1°eÓ<Õ=r*   c                 ó"   — t         j                  S r3   ru   r=   s    r   r   z CurrentStreamSource.guard_sources  rw   r*   rC   )rD   rE   rF   Údevice_typerG   rK   rL   r'   rB   r:   rJ   r
   r   rM   r*   r   rò  rò  ^  sJ   … àÓà×Ñðu ò uó ðuó>ð ð"˜kò "ó ñ"r*   rò  c                   ó8   — e Zd Zedefd„«       Zedefd„«       Zy)ÚBackwardStateSourcer   c                  ó   — yr¸  rM   r=   s    r   rB   z"BackwardStateSource._name_templatez  r¹  r*   c                 ó"   — t         j                  S r3   )r
   ÚBACKWARD_STATEr=   s    r   r   z BackwardStateSource.guard_source~  s   € ä×)Ñ)Ð)r*   Nr»  rM   r*   r   rü  rü  x  s6   „ àð ò ó ðð ð*˜kò *ó ñ*r*   rü  ©Úonly_allow_inputr  c                ó¨   — t        | t        «      rt        | j                  |¬«      S t        | t        «      sy |r| j
                  sy | j                  S ©Nr   )r   r   Úget_local_source_namer‹   r-   r/   r.   ©r   r  s     r   r  r  ƒ  sE   € ô �&œ-Ô(Ü$ 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 r3   )Ú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 r3   )r   r   r	  r‹   rl   rm   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 r3   )r   r   Úis_from_nonlocal_sourcer‹   r-   r1   r/   r   s    r   r  r  £  sG   € ä�&œ-Ô(Ü& v§{¡{Ó3Ð3ä�6œ;Ó'ò 	 Ø×+Ñ+ò	 à—‘Ððr*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   rË   r   Úis_from_closure_sourcer‹   r   s    r   r  r  ®  s+   € ä�&œ-Ô(ØÜ�&œ-Ô(Ü% f§k¡kÓ2Ð2Ør*   Útargetc                 ó\   — | |k(  ryt        | t        «      rt        | j                  |«      S yr   )r   r   Úis_from_sourcer‹   )r   r  s     r   r  r  ·  s+   € à�ÒØÜ�&œ-Ô(Ü˜fŸk™k¨6Ó2Ð2Ør*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   rª  r   Ú&is_from_unspecialized_nn_module_sourcer‹   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   r®  r   Ú.is_from_unspecialized_builtin_nn_module_sourcer‹   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_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ØÜ	�FœMÔ	*Ü3°F·K±KÓ@Ð@Ø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                 ó€  — 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   r8  rp  r‹   r“   r”   rG  r   Úis_from_defaultsr   s    r   r  r  ï  s‹   € ä�&œ.Ô)Øô 	�6Ô,Ô-Ü�v—{‘{¤JÔ/Ø�K‰K×ÑÐ"2Ò2àô 	�6œ=Ô)Ü�v—{‘{¤JÔ/Ø�K‰K×Ñ .Ò0àä�&œ-Ô(Ü §¡Ó,Ð,Ør*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   rï   r   Úis_from_skip_guard_sourcer‹   r   s    r   r   r   	  s+   € ä�&œ/Ô*Øä�&œ-Ô(Ü(¨¯©Ó5Ð5àr*   )F)vr«   r¬   ÚenumrK   Úcollections.abcr   Útypingr   r   rà  r   rú  Útorch._guardsr   r   r	   r
   r   r¦   r   Úbytecode_transformationr   r   r   r9   r   r<   ÚLOCAL_SPECIALIZED_NN_MODULErv   Ú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Ø   r¬  r°  r´  rH   r   r'   r    r)   r-   rO   rX   r_   rl   r|   r‡   r�   r“   r¥   r¯   rµ   r¼   rÂ   rÆ   rË   rÐ   rÕ   rÜ   rÞ   rï   ÚEnumrõ   r  r  r  r  r  r*  r/  r4  r8  rG  rX  rc  rp  ry  r�  r‰  r�  r”  rš  r¡  r¥  rª  r®  r²  r¶  r½  rÉ  r   rÜ  rã  rç  rê  rí  rò  rü  Ú	lru_cacher  r  r
  r	  r  r  r  r  r  r  r  r  r  r   rM   r*   r   ú<module>r0     så  ðñó& Û Û Ý $ß %å '÷õ õ ÷ñ ñ Ý"ð ×Ñ�{×>Ñ>Ø×Ñ˜×@Ñ@Ø×+Ñ+¨[×-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ðÐ ð	˜vð 	¨$ó 	ð& 6¨D¡=ð &°Só &ñ3�ð 3 ð 3°#ó 3ñ  4Ô(ôB�&ó Bó )ðBñ<  4Ô(ô
�fó 
ó )ð
ñ$  4Ô(ôP˜6ó Pó )ðPñ  4Ô(ôB˜ó Bó )ðBñ"  4Ô(ôC�6ó Có )ðCñ  4Ô(ôE˜&ó Eó )ðEñ(  4Ô(ô˜ó ó )ðñ  4Ô(ô	Ð0ó 	ó )ð	ñ  4Ô(ô0�ó 0ó )ð0ñ*  4Ô(ô
˜ó 
ó )ð
ñ"  4Ô(ô
˜ó 
ó )ð
ñ0  4Ô(ô$�]ó $ó )ð$ñ  4Ô(ô�Mó ó )ðñ  4Ô(ôL�fó Ló )ðLñ&  4Ô(ô�ó ó )ðñ  4Ô(ô!�Mó !ó )ð!ñ  4Ô(ô	0�ó 	0ó )ð	0ñ  4Ô(ôK˜
ó Kó )ðKñ  4Ô(ô	 Zó 	ó )ð	ñ  4Ô(ô�fó ó )ðñ&  4Ô(ô�mó ó )ðô@�T—Y‘Yô @ñ   4Ô(ô#E˜=ó #Eó )ð#EñL  4Ô(ô0�Mó 0ó )ð0ñ  4Ô(ô
�=ó 
ó )ð
ñ  4Ô(ô	7�}ó 	7ó )ð	7ñ  4Ô(ô˜-ó ó )ðñ(  4Ô(ô	' ó 	'ó )ð	'ñ  4Ô(ô	. mó 	.ó )ð	.ô �mô  ñ  4Ô(ô!�]ó !ó )ð!ñH  4Ô(ô!E�Mó !Eó )ð!EñH  4Ô(ô˜ó ó )ðñ(  4Ô(ô mó ó )ðñ4  4Ô(ôE˜ó Eó )ðEñD  4Ô(ô%E ó %Eó )ð%EñP  4Ô(ô&W˜ó &Wó )ð&WñR  4Ô(ô
 ó 
ó )ð
ñ   4Ô(ô+˜]ó +ó )ð+ñ  4Ô(ô
*˜Mó 
*ó )ð
*ñ  4Ô(ô�ó ó )ðñ  4Ô(ô�mó ó )ðñ  4Ô(ô
�]ó 
ó )ð
ñ  4Ô(ôM .ó Mó )ðMñ  4Ô(ôUÐ)Dó Uó )ðUñ  4Ô(ôA˜ó Aó )ðAñ  4Ô(ô"˜ó "ó )ð"ñ  4Ô(ô"�6ó "ó )ð"ñ:  4Ô(ô" 6ó "ó )ð"ñ4  4Ô(ô"�Vó "ó )ð"ñ$  4Ô(ô>˜ó >ó )ð>ñ  4Ô(ô-˜]ó -ó )ð-ñ  4Ô(ô#˜ó #ó )ð#ñ  4Ô(ô˜=ó ó )ðñ  4Ô(ô%�Vó %ó )ð%ñ  4Ô(ô"˜&ó "ó )ð"ñ2  4Ô(ô*˜&ó *ó )ð*ð ×Ñà05ò	Øð	Ø)-ð	àˆ4�Zò	ó ð	ð ×ÑØEJò X ð X¸dð XÈtò Xó ðXð ×Ñð6 &ð 6¨Tò 6ó ð6ð ×Ñð 6¨D¡=ð °S¸4±Zò ó ðð ×Ñð Fð ¨tò ó ðð ×Ñð 6ð ¨dò ó ðð ×Ñð˜6ð ¨6ð °dò ó ðð ×Ñð°6ð ¸dò ó ðð ×Ñð¸6ð Àdò ó ðð ×Ñð°fð Àò ó ðð ×Ñð°ð ¸Dò ó ðð ×Ñð Vð °ò ó ðð ×Ñð˜Vð ¨ò ó ðð2 ×Ñð fð °ò ó ñr*   