Ë
    L²j;‘ ã                  óò  — d dl mZ d dlZd dlZd dl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mZmZmZ d dlmZmZmZmZ d dlZd dlmZ d d	lmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( d d
l)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 er*d dl5m6Z6m7Z7 d dlm8Z8 d dl9m:Z: d dl;m<Z<m=Z= d dl>m?Z?m@Z@ d dlAmBZB dKd„ZCeDZE eddejŒ                  «      ZG ed«      ZH edejŒ                  ¬«      ZI edejŒ                  d¬«      ZJdLd„ZKdMd „ZLdNd!„ZMdOd"„ZN ejž                  «       ZPd#eP_Q        edPd$„«       ZRd#d#d%œ	 	 	 	 	 	 	 	 	 	 	 dQd&„ZSdRd'„ZTdSd(„ZUdRd)„ZVdRd*„ZWdTd+„ZXdUd,„ZY	 	 	 	 	 	 dVd-„ZZ ed.e[«      Z\ ed/e[«      Z] ed0e[«      Z^ e^d «      a_ G d1„ d2«      Z` ed¬3«       G d4„ d5«      «       Za ed¬3«       G d6„ d7eeI   «      «       Zb ed¬3«       G d8„ d9ebd:   «      «       Zc ed¬3«       G d;„ d<ebeI   eeI   «      «       Zd G d=„ d>eeeJ   «      Ze G d?„ d@ed#¬A«      Zf G dB„ dCeeeJ   «      Zg ed¬3«       G dD„ dEeeI   «      «       ZhdWdF„ZidXdG„Zj	 	 	 	 	 	 dYdH„Zk G dI„ dJeeI   «      Zld dlmmnZo y)Zé    )ÚannotationsN)Úabstractmethod)ÚAbstractContextManagerÚcontextmanager)Ú	dataclass)ÚAnyÚClassVarÚGenericÚNewTypeÚProtocolÚTYPE_CHECKINGÚ	TypeGuardÚTypeVar)ÚoverrideÚ	TypedDictÚTypeIsÚUnpack)ÚCreationMeta)Ú_add_batch_dimÚ_unwrap_functional_tensorÚ_wrap_functional_tensorÚget_unwrappedÚis_batchedtensorÚis_functorch_wrapped_tensorÚis_gradtrackingtensorÚis_legacy_batchedtensorÚmaybe_get_bdimÚmaybe_get_levelÚpeek_interpreter_stack)Úenable_python_dispatcher)Útrace_structured)Ú
OpaqueBase)Úno_dispatch)Úis_traceable_wrapper_subclass)ÚWeakIdKeyDictionary)ÚCallableÚ	Generator)ÚCInterpreter)ÚSource)Ú
FakeTensorÚFakeTensorMode)ÚShapeEnvÚSymbolicContext)ÚIntLikeTypec                ó&   — ddl m} t        | |«      S )Nr   )r*   )Útorch._subclasses.fake_tensorr*   Ú
isinstance)Útr*   s     ú[/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/_subclasses/meta_utils.pyÚ_is_fake_tensorr4   =   s   € Ý8ä�a˜Ó$Ð$ó    Ú_TensorLikeTúMetaTensorDesc[Any]Ú_TÚ_TensorT)ÚboundÚ_TensorT_covT)r:   Ú	covariantc                ó:   — 	 | j                   S # t        $ r Y yw xY w)NF)Úis_leafÚRuntimeError©r2   s    r3   Úsafe_is_leafrA   J   s#   € ðØ�y‰yÐøÜò áðús   ‚ Ž	™c                óÈ   — t         j                  j                  t         j                  j                  j                  «      5  | j
                  cd d d «       S # 1 sw Y   y xY w©N)ÚtorchÚ_loggingÚhide_warningsÚ	_internalÚsafe_grad_filterÚgradr@   s    r3   Ú	safe_gradrJ   R   s@   € Ü	�‰×	%Ñ	%¤e§n¡n×&>Ñ&>×&OÑ&OÓ	Pñ à�v‰v÷÷ ò ús   ÁAÁA!c                ó6   — t        | «      }|€t        d«      ‚|S )Nz3Expected tensor to have a gradient but grad is None)rJ   ÚAssertionError)r2   rI   s     r3   Ú_expect_safe_gradrM   X   s!   € Ü�Q‹<€DØ€|ÜÐRÓSÐSØ€Kr5   c                ó.   — | |k7  rt        | › d|› �«      ‚y )Nz != )rL   )ÚaÚbs     r3   Ú	assert_eqrQ   _   s#   € ØˆA‚vÜ ˜s $ q c˜]Ó+Ð+ð r5   Fc               #  ó„   K  — t        t        dd«      } dt        _        	 d –— | t        _        y # | t        _        w xY w­w)NÚdisable_inference_modeFT)ÚgetattrÚtlsrS   )Úpriors    r3   Ú$disable_inference_mode_for_fake_proprW   k   s5   è ø€ ä”CÐ1°5Ó9€EØ!%„CÔð+Ûà%*ŒÕ"ø UŒÕ"üs   ‚A  0 ¤A °=½A ©Úskip_symbolicÚ	skip_leafc               ó˜   ‡ ‡‡‡— t        |t        j                  «      rt        «       j	                  |«      n|}dˆ ˆˆˆfd„Š ‰||«      S )Nc                ó:  •—  ‰| j                   |j                   «       ‰s ‰| j                  |j                  «        ‰| j                  |j                  «       ‰s ‰| j                  |j                  «        ‰| j                  |j                  «       t        t        dd«      s" ‰| j                  |j                  «       «       n ‰| j                  d«        ‰| j                  |j                  «       «        ‰| j                  |j                  «       «        ‰| j                  d ut        |«      d u«       | j                  � ‰| j                  t        |«      «       | j                  r� ‰| j                  |j                  «        ‰| j                  |j                  «       «        ‰| j                  |j                  «       «        ‰| j                   |j!                  «       «       y t#        | «      r` ‰| j                  |j                  «        ‰| j                  |j                  «       «        ‰| j                  |j                  «       «       y ‰sB ‰| j$                  |j%                  «       «        ‰| j&                  |j'                  «       «        ‰| j(                  |j+                  «       «       | j(                  rL| j,                  €t/        d«      ‚|j0                  €t/        d«      ‚ ‰| j,                  |j0                  «       y y )NrS   Fz*m1.base must not be None for a view tensorz+m2._base must not be None for a view tensor)ÚdtypeÚshapeÚrequires_gradr>   Ú	is_sparserT   rU   Úis_inferenceÚis_conjÚis_negrI   rJ   rM   ÚlayoutÚ	dense_dimÚ
sparse_dimÚis_coalescedÚis_sparse_compressedÚstrideÚstorage_offsetÚis_viewÚ_is_viewÚbaserL   Ú_base)Úm1Úm2rQ   ÚgorZ   rY   s     €€€€r3   rq   zassert_metadata_eq.<locals>.goƒ   s"  ø€ Ù�"—(‘(˜BŸH™HÔ%ÙÙ�b—h‘h §¡Ô)Ù�"×"Ñ" B×$4Ñ$4Ô5ÙÙ�b—j‘j "§*¡*Ô-ñ 	�"—,‘, §¡Ô-Ü”sÐ4°eÔ<Ù�b—o‘o r§¡Ó'8Õ9á�b—o‘o uÔ-Ù�"—*‘*˜bŸj™j›lÔ+Ù�"—)‘)˜RŸY™Y›[Ô)Ù�"—'‘' Ð%¤y°£}¸DÐ'@ÔAØ�7‰7ÐÙˆr�w‰wÔ)¨"Ó-Ô.ð �<Š<Ù�b—i‘i §¡Ô+Ù�b—l‘l B§L¡L£NÔ3Ù�b—m‘m R§]¡]£_Ô5Ù�b—o‘o r§¡Ó'8Õ9Ü! "Ô%Ù�b—i‘i §¡Ô+Ù�b—l‘l B§L¡L£NÔ3Ù�b—m‘m R§]¡]£_Õ5á Ù˜"Ÿ)™) R§Y¡Y£[Ô1Ù˜"×+Ñ+¨R×->Ñ->Ó-@ÔAÙ�b—j‘j "§+¡+£-Ô0Ø�zŠzØ—7‘7�?Ü(Ð)UÓVÐVØ—8‘8Ð#Ü(Ð)VÓWÐWÙ�2—7‘7˜BŸH™HÕ%ð r5   )ro   r7   rp   útorch.TensorÚreturnÚNone)r1   rD   ÚTensorÚMetaTensorDescriberÚdescribe_tensor)rQ   ro   rp   rY   rZ   rq   s   `  ``@r3   Úassert_metadata_eqrx   u   sG   û€ ô �bœ%Ÿ,™,Ô'ô 	Ó×-Ñ-¨bÔ1àð ÷(&ð (&ñZ ˆb�"‹:Ðr5   c                ór   — t        | t        j                  «      xr | j                  t        j                  u S rC   )r1   rD   ru   rd   Ú
sparse_coor@   s    r3   Úis_sparse_coor{   ´   s'   € Ü�aœŸ™Ó&ÒG¨1¯8©8´u×7GÑ7GÐ+GÐGr5   c                ó‚   — | t         j                  t         j                  t         j                  t         j                  hv S rC   )rD   Ú
sparse_csrÚ
sparse_cscÚ
sparse_bsrÚ
sparse_bsc)rd   s    r3   Úis_sparse_compressed_layoutr�   ¸   s8   € ØÜ×ÑÜ×ÑÜ×ÑÜ×Ñð	ð ð r5   c                ód   — t        | t        j                  «      xr t        | j                  «      S rC   )r1   rD   ru   r�   rd   r@   s    r3   rh   rh   Â   s"   € Ü�aœŸ™Ó&ÒPÔ+FÀqÇxÁxÓ+PÐPr5   c                ó2   — t        | «      xs t        | «      S rC   )r{   rh   r@   s    r3   Úis_sparse_anyr„   Ç   s   € Ü˜ÓÒ6Ô3°AÓ6Ð6r5   c                óR   — t        || «      st        d| › dt        |«      › �«      ‚|S )Nz	expected z	 but got )r1   rL   Útype)ÚtyÚobjs     r3   Ú_checked_castr‰   Ë   s-   € Ü�c˜2ÔÜ˜y¨¨¨I´d¸3³i°[ÐAÓBÐBØ€Jr5   c                ó   — | j                   S rC   ©Úreal_storage)rm   s    r3   Ú_get_real_storager�   Ñ   s   € Ø×ÑÐr5   c                ó   — || _         y rC   r‹   )rm   rŒ   s     r3   Ú_set_real_storager�   Õ   s   € ð %€DÕr5   ÚMetaStorageIdÚMetaTensorIdÚ_DescriberIdc                  ód   — e Zd ZdZddœdd„Zdd„Zdd„Zddœ	 	 	 	 	 dd„Zd	dd
œ	 	 	 	 	 	 	 dd„Zy)rv   a›  
    Given a Tensor/Storage, generate a MetaTensorDesc/MetaStorageDesc
    for it, which is enough information to reconstruct a meta tensor/fake tensor
    corresponding to a Tensor as faithfully as possible.

    This is a stateful conversion object because we keep track of the IDs
    of the tensors/storages passed to us, so we can consistently give
    the same ID when we see the same tensor/storage.
    F©Ú	copy_datac               ó  — t         | _        t        t         dz   «      a t        d«      | _        t        d«      | _        t        «       | _        t        «       | _	        || _
        t        «       | _        t        «       | _        y )Né   r   )ÚDESCRIBER_NEXT_IDÚidr’   r‘   Únext_tensor_idr�   Únext_storage_idr%   Úlookup_tensorÚlookup_storager•   ÚsetÚtraced_tensorsÚtraced_storages©Úselfr•   s     r3   Ú__init__zMetaTensorDescriber.__init__ï   sd   € ä#ˆŒÜ(Ô):¸QÑ)>Ó?ÐÜ,8¸«OˆÔÜ.;¸AÓ.>ˆÔä0Ó2ˆÔä1Ó3ˆÔØ"ˆŒÜ(+«ˆÔÜ),«ˆÕr5   c                ó¨   — || j                   vr6| j                  | j                   |<   t        | j                  dz   «      | _        | j                   |   S ©Nr—   )rœ   rš   r‘   ©r¢   r2   s     r3   Úget_tensor_idz!MetaTensorDescriber.get_tensor_idý   sO   € Ø�D×&Ñ&Ñ&Ø$(×$7Ñ$7ˆD×Ñ˜qÑ!Ü".¨t×/BÑ/BÀQÑ/FÓ"GˆDÔØ×!Ñ! !Ñ$Ð$r5   c                ó¨   — || j                   vr6| j                  | j                   |<   t        | j                  dz   «      | _        | j                   |   S r¥   )r�   r›   r�   ©r¢   Úss     r3   Úget_storage_idz"MetaTensorDescriber.get_storage_id  sO   € Ø�D×'Ñ'Ñ'Ø%)×%9Ñ%9ˆD×Ñ Ñ"Ü#0°×1EÑ1EÈÑ1IÓ#JˆDÔ Ø×"Ñ" 1Ñ%Ð%r5   ©Útracec               ó  ‡ ‡— t        ‰ j                  |«      |j                  «       ‰ j                  r|nd ¬«      Š|rN‰j                  ‰ j
                  vr6t        dˆˆ fd„¬«       ‰ j
                  j                  ‰j                  «       ‰S )N)r™   ÚsizeÚdataÚdescribe_storagec                 ó:   •— ‰ j                  ‰j                  «      S rC   ©Úas_jsonr™   ©Úrr¢   s   €€r3   ú<lambda>z6MetaTensorDescriber.describe_storage.<locals>.<lambda>  ó   ø€  A§I¡I¨d¯g©gÓ$6€ r5   ©Úmetadata_fn)ÚMetaStorageDescr«   r¯   r•   r™   r    r!   Úadd)r¢   rª   r­   r¶   s   `  @r3   r±   z$MetaTensorDescriber.describe_storage	  sv   ù€ ô Ø×"Ñ" 1Ó%Ø—‘“ð —n’n‘¨$ô
ˆñ �Q—T‘T ×!5Ñ!5Ñ5ÜØ"Ü6õð × Ñ ×$Ñ$ Q§T¡TÔ*Øˆr5   T©Úrecurser­   c               ó˜  ‡ ‡$— t        |«      }|j                  «       }|j                  }|j                  }|j                  }t        |«      }	t        |«      }
|j                  }t        |«      }t        |«      }t        |«      }t        j                  |«      }d }d}|sFt        |«      s;|r|	r7|s5|
s3|s1‰ j                  |j                  «       |¬«      }|j!                  «       }d }|st        |«      s|r|	r|j#                  «       }d }d }d }|s|r‰ j%                  t'        |«      |¬«      }nØ|rÖ|j(                  j*                  dvr¾|j                  «       rt-        d«      ‚|
s>t        j.                  |«       ‰ j%                  t        j0                  |«      |¬«      }|}nct        j2                  j5                  «       }‰ j%                  t7        ||«      |¬«      }t        j2                  j8                  j;                  «       }d }|
r2t        j8                  j<                  j?                  «       5 }	 d d d «       d }d }d }d }|	r±tA        |d«      stC        d«      ‚|jE                  «       \  }}i }i }|D ]s  }tG        ||«      }|xt        jH                  d˜ x�\    ‰ j%                  ||¬«      ||<   Œ> tJ        d˜ x�\   ddl&m'}  ||«      ||<   Œ\ 	 tC        d	t+        |«      › �«      ‚ t+        |«      }dd
l(m)}  tT        jW                  |«      }!tG        tX        dd«      }"t[        di d‰ j]                  |«      “d|“d|"rdn|j_                  «       “d|“d|j`                  “d|jc                  «       “d|jd                  “d|“d|“d|
“d|“d|“d|“d|“d|jg                  «       “d|ji                  «       “dtk        |t        jl                  jn                  «      “d|	“d|“d || v r| |   jp                  js                  «       nd “d!|“d"|“d#|j(                  “d$|ju                  «       “d%|“d&|“d'tw        tG        |d(ty        «       «      «      “d)tG        |d*i «      “d+|j                  st{        |«      r|j}                  «       nd “d,|j                  st{        |«      r|j                  «       nd “d-|j                  r|j�                  «       nd “d.|rN|j                  t        j‚                  t        j„                  hv r"‰ j%                  |j‡                  «       d|¬/«      nd “d0|rN|j                  t        j‚                  t        j„                  hv r"‰ j%                  |j‰                  «       d|¬/«      nd “d1|rN|j                  t        jŠ                  t        jŒ                  hv r"‰ j%                  |j�                  «       d|¬/«      nd “d2|rN|j                  t        jŠ                  t        jŒ                  hv r"‰ j%                  |j‘                  «       d|¬/«      nd “d3|r-t{        |«      r"‰ j%                  |j“                  «       d|¬/«      nd “d4t•        |«      x}#�‰ j%                  |#|¬«      nd “d5|j                  «       r)t        j2                  j–                  j™                  |«      nd “d6|“d7|s|rt›        |«      nd “d8|rt�        |«      nd “d9|r9|j                  «       r)|jž                  �‰ j%                  |jž                  |¬«      nd “d:t        j                   j¢                  j¥                  |«      “d;|!“d<|“d=|r|nd “d>|“d?|“d@|“dA|“dB|“dC‰ j¦                  r|nd “ŽŠ$|rN‰$j¨                  ‰ jª                  vr6t­        dDˆ$ˆ fdE„¬F«       ‰ jª                  j¯                  ‰$j¨                  «       ‰$S # 1 sw Y   �Œ‹xY w)GNr   r¬   ©ÚxlaÚlazyzVCannot safely fakify a view because this process drops the view information right now.Ú__tensor_flatten__z>Traceable wrapper subclass must have __tensor_flatten__ method© )Úmaybe_unwrap_fake_script_objectz#expected Tensor or OpaqueBase, got )Ú_tensor_symint_registryrS   Fr™   Ústoragera   r>   r_   Úndimr]   r`   Ú	is_mkldnnÚis_functorch_wrappedr   r   r   rk   rb   rc   Úis_parameterr$   Ú	is_nestedÚ
nested_intÚis_functionalrd   Údevicer¯   ri   rj   Údynamo_dynamic_indicesÚ_dynamo_dynamic_indicesÚdynamo_hint_overridesÚ_dynamo_hint_overridesrf   re   rg   Úcrow_indicesr½   Úcol_indicesÚccol_indicesÚrow_indicesÚvaluesrI   Úcreation_metaÚ	unwrappedÚlevelÚbdimrm   Ú	fake_modeÚ	view_funcÚattrsÚopaque_attrsÚctxr†   Úfunctorch_stackÚautograd_meta_fromÚcurrent_levelr°   rw   c                 ó:   •— ‰ j                  ‰j                  «      S rC   r³   rµ   s   €€r3   r·   z5MetaTensorDescriber.describe_tensor.<locals>.<lambda>  r¸   r5   r¹   )XrA   rl   r`   rd   rÌ   r$   r   rÉ   r   r   r   rD   Ú_is_functional_tensorr�   r±   Úuntyped_storagerj   ri   rw   r   rÏ   r†   r?   Ú_syncÚ_from_functional_tensorÚ_CÚ$_functionalization_reapply_views_tlsr   Ú
_functorchrä   ÚpyfunctorchÚ#temporarily_clear_interpreter_stackÚhasattrrL   rÃ   rT   ru   r"   Ú"torch._library.fake_class_registryrÅ   Ú$torch.nested._internal.nested_tensorrÆ   ÚViewFuncÚfrom_tensorrU   ÚMetaTensorDescr§   ra   r_   Údimr]   rb   rc   r1   ÚnnÚ	ParameterÚnoderÍ   r¯   Úlistrž   rh   rf   re   rg   r}   r   rÔ   rÕ   r~   r€   rÖ   r×   rØ   rJ   Ú	_autogradÚ_get_creation_metar   r   rn   Ú_subclassesÚfake_tensorÚmaybe_get_fake_moder•   r™   rŸ   r!   r¼   )%r¢   r2   r¾   r­   r>   rk   r`   rd   rÌ   Úis_traceable_wrapper_subclass_vrÊ   rÉ   Úis_batchedtensor_vÚis_legacy_batchedtensor_vÚis_gradtrackingtensor_vrÎ   rÇ   rj   ri   rÚ   rã   rä   Úreapply_viewsÚmaybe_functorch_stackrß   rà   rá   Útype_vÚ	raw_attrsÚattrÚinnerrÅ   rÆ   rÞ   Úis_inference_mode_disabledrI   r¶   s%   `                                   @r3   rw   z#MetaTensorDescriber.describe_tensor  sŽ  ù€ ô ˜q“/ˆØ—*‘*“,ˆØ—K‘Kˆ	Ø—‘ˆØ—K‘Kˆ	Ü*GÈÓ*JÐ'Ü:¸1Ó=ÐØ—K‘Kˆ	Ü-¨aÓ0ÐÜ$;¸AÓ$>Ð!Ü"7¸Ó":ÐÜ×3Ñ3°AÓ6ˆàˆð ˆáÜ*¨6Ô2ÙÑ"AÙñ $Ù(ð ×+Ñ+¨A×,=Ñ,=Ó,?ÀuÐ+ÓMˆGØ×-Ñ-Ó/ˆNàˆáÜ*¨6Ô2ÙÑ"Að
 —X‘X“ZˆFð
 ˆ	Ø!ÐØˆÙÑ!8Ø×,Ñ,¬]¸1Ó-=ÀUÐ,ÓK‰Iñ ˜qŸx™xŸ}™}°OÑCØ�z‰zŒ|Ü"Ølóð ñ (Ü—‘˜A”Ø ×0Ñ0Ü×1Ñ1°!Ó4¸Eð 1ó �	ð &'Ñ"ä %§¡× MÑ MÓ O�à ×0Ñ0Ü-¨a°Ó?Àuð 1ó �	ô !&§¡× 3Ñ 3× AÑ AÓ C�à $ÐÙä× Ñ ×,Ñ,×PÑPÓRðà&Ø÷ð
 ˆØˆØˆØˆÙ*Ü˜1Ð2Ô3Ü$ØTóð ð ×1Ñ1Ó3‰NˆI�sØˆEØˆLØ!ò �Ü  4Ó(�ØØ'œŸ™žØ&*×&:Ñ&:¸5ÈÐ&:Ó&N˜˜dšð (ä#�õñ .MÈUÓ-S˜ TÒ*ð &ð Ü,ØAÄ$ÀuÃ+ÀÐOóð ðô ˜!“WˆFåPä×(Ñ(¨Ó+ˆ	ô &-¬SÐ2JÈEÓ%RÐ"Ü!/ò k"
Ø×!Ñ! !Ô$ðk"
áðk"
ñ #=™À!Ç.Á.ÓBRøðk"
ñ ð	k"
ð
 Ÿ/š/ðk"
ð —‘”ðk"
ð —'’'ðk"
ñ  ðk"
ñ  ðk"
ñ  "6ð!k"
ñ" 0ð#k"
ñ$ %>ð%k"
ñ& #:ð'k"
ñ( ð)k"
ð* —I‘I”Kð+k"
ð, —8‘8”:ð-k"
ô. $ A¤u§x¡x×'9Ñ'9Ô:ð/k"
ñ0 +Jð1k"
ñ2  ð3k"
ð8 Ð/Ñ/ð (¨Ñ*×/Ñ/×:Ñ:Ô<àøð;k"
ñ> (ð?k"
ñ@ ðAk"
ðB —8’8ðCk"
ðD —‘”ðEk"
ñF ðGk"
ñJ *ðKk"
ôL $(¬°Ð3LÌcËeÓ(TÔ#UðMk"
ôN #*¨!Ð-EÀrÔ"JðOk"
ðR #$§+¢+Ô1EÀaÔ1H�—‘”ÈdøðSk"
ðV ()§{¢{Ô6JÈ1Ô6M�a—k‘k”mÐSWøðWk"
ðX ./¯[ª[˜Ÿ™Ô)¸døðYk"
ñd ˜qŸx™x¬E×,<Ñ,<¼e×>NÑ>NÐ+OÑOð ×$Ñ$ Q§^¡^Ó%5¸uÈEÐ$ÔRàøðgk"
ñn ˜qŸx™x¬E×,<Ñ,<¼e×>NÑ>NÐ+OÑOð ×$Ñ$ Q§]¡]£_¸eÈ5Ð$ÔQàøðqk"
ñx ˜qŸx™x¬E×,<Ñ,<¼e×>NÑ>NÐ+OÑOð ×$Ñ$ Q§^¡^Ó%5¸uÈEÐ$ÔRàøð{k"
ñB ˜qŸx™x¬E×,<Ñ,<¼e×>NÑ>NÐ+OÑOð ×$Ñ$ Q§]¡]£_¸eÈ5Ð$ÔQàøðEk"
ñL Ô3°AÔ6ð ×$Ñ$ Q§X¡X£Z¸ÀeÐ$ÔLàøðOk"
ôV & a›LÐ(�DÐ5ð ×$Ñ$ T°Ð$Ô7àøðYk"
ð^ =>¿J¹J¼L”—‘×"Ñ"×5Ñ5°aÔ8Èdøð_k"
ñb  ðck"
ñh &Ñ)@ô   Ô"àøðkk"
ñn '9” Ô"¸døðok"
ñt ˜qŸz™zœ|°·±Ð0Cð ×$Ñ$ Q§W¡W°EÐ$Ô:àøðwk"
ôz ×'Ñ'×3Ñ3×GÑGÈÔJð{k"
ñ|  ð}k"
ñ@ ðAk"
ñB *6™¸4øðCk"
ñD ðEk"
ñF ðGk"
ñN 2ðOk"
ñP  2ðQk"
ñR (ðSk"
ðT —n’n‘¨$øðUk"
ˆñX �Q—T‘T ×!4Ñ!4Ñ4ÜØ!Ü6õð ×Ñ×#Ñ# A§D¡DÔ)Øˆ÷wñ ús   È4^?Þ?_	N©r•   Úboolrs   rt   )r2   rr   rs   r‘   )rª   útorch.UntypedStoragers   r�   )rª   r  r­   r  rs   r»   )r2   rr   r¾   r  r­   r  rs   r7   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r£   r§   r«   r±   rw   rÄ   r5   r3   rv   rv   ä   sn   „ ñð -2õ /ó%ó&ð 9>ñØ%ðØ15ðà	óð& 37ÀeñlØðlØ+/ðlØ?Cðlà	ôlr5   rv   )Úfrozenc                  ó4   — e Zd ZU ded<   ded<   ded<   d	d„Zy)
r»   r�   r™   Úintr¯   útorch.UntypedStorage | Noner°   c                ó˜   — | j                   |t        | j                  t        «      r| j                  dœS t	        | j                  «      dœS )N)r™   Údescriber_idr¯   )r™   r1   r¯   r  Úrepr)r¢   r  s     r3   r´   zMetaStorageDesc.as_json  sC   € à—'‘'Ø(Ü!+¨D¯I©I´sÔ!;�D—I‘Iñ
ð 	
ô BFÀdÇiÁiÃñ
ð 	
r5   N©r  r’   rs   zdict[str, object])r  r  r  Ú__annotations__r´   rÄ   r5   r3   r»   r»   
  s   … àÓØ
ƒIð &Ó%ô
r5   r»   c                  óH   — e Zd Ze	 	 d	 	 	 	 	 	 	 	 	 dd„«       Zedd„«       Zy)rò   Nc                 ó   — y rC   rÄ   ©r¢   r2   Únew_baseÚsymint_visitor_fnÚtensor_visitor_fns        r3   ÚapplyzViewFunc.apply  s   € ð r5   c                óV   — t        | «      r
t        «       S t        | j                  «      S rC   )r4   Ú_FakeTensorViewFuncÚ_CustomViewFuncÚ_view_func_unsafer@   s    r3   ró   zViewFunc.from_tensor%  s$   € ä˜1ÔÜ&Ó(Ð(ä" 1×#6Ñ#6Ó7Ð7r5   ©NN)
r2   r9   r  r9   r  úCallable[[int], int] | Noner  ú)Callable[[torch.Tensor], _TensorT] | Noners   r9   )r2   rr   rs   zViewFunc[Any])r  r  r  r   r   Ústaticmethodró   rÄ   r5   r3   rò   rò     sa   „ àð
 :>ØGKðàðð ðð 7ð	ð
 Eðð 
òó ðð ò8ó ñ8r5   rò   c                  ó6   — e Zd Ze	 	 d	 	 	 	 	 	 	 	 	 dd„«       Zy)r"  Nc                ón   — t         j                  j                  j                  j	                  ||||«      S rC   )rD   rü   rý   r*   r$  r  s        r3   r   z_FakeTensorViewFunc.apply/  s5   € ô × Ñ ×,Ñ,×7Ñ7×IÑIàØØØó
ð 	
r5   r%  )
r2   rr   r  rr   r  r&  r  z+Callable[[torch.Tensor], FakeTensor] | Noners   r*   )r  r  r  r   r   rÄ   r5   r3   r"  r"  -  sM   „ àð
 :>ØIMð
àð
ð ð
ð 7ð	
ð
 Gð
ð 
ò
ó ñ
r5   r"  r*   c                  óB   — e Zd ZU ded<   e	 	 d	 	 	 	 	 	 	 	 	 dd„«       Zy)r#  zjCallable[[torch.Tensor, Callable[[int], int] | None, Callable[[torch.Tensor], _TensorT] | None], _TensorT]ÚfuncNc                ó(   — | j                  |||«      S rC   )r,  r  s        r3   r   z_CustomViewFunc.applyK  s   € ð �y‰y˜Ð#4Ð6GÓHÐHr5   r%  )
r2   rr   r  rr   r  r&  r  r'  rs   r9   )r  r  r  r  r   r   rÄ   r5   r3   r#  r#  @  s`   … ðó ð ð
 :>ØGKðIàðIð ðIð 7ð	Ið
 EðIð 
òIó ñIr5   r#  c                  ó    — e Zd Z	 	 	 	 	 	 dd„Zy)Ú_MetaTensorCallbackc               ó   — y rC   rÄ   )r¢   ÚargrÏ   s      r3   Ú__call__z_MetaTensorCallback.__call__]  s   € àr5   N)r1  úCallable[[], torch.Tensor]rÏ   útorch.device | strrs   r;   ©r  r  r  r2  rÄ   r5   r3   r/  r/  \  s   „ ðØ-ðØ=Oðà	ôr5   r/  c                  ó   — e Zd ZU ded<   y)Ú_MetaTensorCallbackKwargsr4  rÏ   N)r  r  r  r  rÄ   r5   r3   r7  r7  b  s   … ØÔr5   r7  )Útotalc                  ó    — e Zd Z	 	 	 	 	 	 dd„Zy)Ú_MetaTensorCallbackOptDevicec                ó   — y rC   rÄ   )r¢   r1  Úkwargss      r3   r2  z%_MetaTensorCallbackOptDevice.__call__k  s   € ð
 r5   N)r1  r3  r<  z!Unpack[_MetaTensorCallbackKwargs]rs   r;   r5  rÄ   r5   r3   r:  r:  j  s#   „ ðà'ðð 4ð	ð
 
ôr5   r:  c                  ó
  — e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ej
                  Zded<   dZded<   dZded<   dZ	ded<   dZ
ded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded <   dZded!<   dZded"<   dZded#<   dZded$<   dZded%<   dZd&ed'<   d(Zded)<   dZd*ed+<   dZded,<   dZded-<   dZd.ed/<   dZd0ed1<   dZd0ed2<   dZ d0ed3<   dZ!d0ed4<   dZ"d0ed5<   dZ#d0ed6<   dZ$ded7<   dZ%d0ed8<   dZ&d9ed:<   dZ'd;ed<<   dZ(d=ed><   dZ)d0ed?<   h d@£Z*dAedB<   dZ+dCedD<   dZ,dEedF<   dZ-dGedH<   dZ.dIedJ<   dZ/dedK<   dZ0dedL<   dZ1dMedN<   dZ2dOedP<   dZ3dOedQ<   dTdR„Z4e5dUdS„«       Z6y)Vrô   r‘   r™   r  rÈ   útorch.dtyper]   ztorch.devicerÏ   útuple[int, ...]r¯   z	list[int]rÐ   zdict[int, int]rÒ   útorch.layoutrd   Fr  ra   r>   r_   r`   rÉ   rÊ   r   r   r   rk   rÌ   Nz
int | NonerÍ   r$   rÎ   rb   rc   rË   útuple[int, ...] | Noneri   r   rj   zMetaStorageDesc | NonerÇ   rf   re   zbool | Nonerg   zMetaTensorDesc[Any] | NonerÔ   rÕ   rÖ   r×   rØ   rÚ   rÜ   rm   z%dict[str, MetaTensorDesc[Any]] | Nonerß   zdict[str, OpaqueBase] | Nonerà   zCreationMeta | NonerÙ   rI   >
   rá   r°   r†   rÛ   rÝ   rÞ   rÍ   rä   râ   rã   zClassVar[set[str]]Ú_UNSERIALIZABLEzobject | Nonerá   ztype | Noner†   zFakeTensorMode | NonerÝ   zViewFunc[Any] | NonerÞ   rÛ   rä   zlist[CInterpreter] | Nonerâ   útorch.Tensor | Nonerã   r°   c                óv  ‡— dˆfd„Št        j                  | «      D �ci c]{  }t        | |j                  «      |j                  u sW|j                  dk(  rt        | |j                  «      r2|j                   ‰|j                  t        | |j                  «      «      “Œ} }}|j                  d|i«       |S c c}w )Nc                óŽ  •— | dv ry | t         j                  v rt        |«      S t        |t        j
                  t        j                  t        j                  f«      rt        |«      S t        |t        j                  «      rt        |«      S t        |t        t        f«      r|D �cg c]  } ‰| |«      ‘Œ c}S t        |t        t         f«      r|j                  S t        |t        «      rt        |«      S | dk(  r>t        |t        «      r.|j!                  «       D ��ci c]  \  }}||j                  “Œ c}}S |S c c}w c c}}w )N)r°   rã   rß   )rô   rB  r  r1   rD   rÏ   r]   rd   ÚSymIntÚtuplerù   r»   r™   r   ÚstrÚdictÚitems)ÚkÚvÚv1Úk1Újsons       €r3   rO  z$MetaTensorDesc.as_json.<locals>.jsonç  s÷   ø€ ð Ð2Ñ2ØØ”N×2Ñ2Ñ2Ü˜A“w�Ü˜!œeŸl™l¬E¯K©K¼¿¹ÐFÔGÜ˜A“w�Ü˜!œUŸ\™\Ô*Ü˜A“w�Ü˜!œe¤T˜]Ô+Ø./Ö0¨™˜Q �Ò0Ð0Ü˜!œo¬~Ð>Ô?Ø—t‘t�Ü˜!œ\Ô*Ü˜1“v�Ø�GŠ|¤
¨1¬dÔ 3Ø01·±³	×:¡f b¨"˜˜BŸE™E™	Ó:Ð:ØˆHùò 1ùó ;s   Â'D<ÄErÐ   r  )rK  rH  rL  Úobjectrs   rP  )ÚdataclassesÚfieldsrT   ÚnameÚdefaultÚupdate)r¢   r  Úfieldr¶   rO  s       @r3   r´   zMetaTensorDesc.as_jsonæ  s    ø€ õ	ô. %×+Ñ+¨DÓ1ö

àä˜˜eŸj™jÓ)¨U¯]©]Ñ:à—J‘JÐ":Ò:Ü# D¨%¯*©*Ô5ð �J‰J™˜UŸZ™Z¬°°u·z±zÓ)BÓCÑCð

ˆð 

ð 	
�‰�. ,Ð/Ô0Øˆùò

s   ŸB B6c                ó   — | j                   S rC   )r¯   ©r¢   s    r3   r^   zMetaTensorDesc.shape
  s   € à�y‰yÐr5   r  )rs   r?  )7r  r  r  r  rD   Ústridedrd   ra   r>   r_   r`   rÉ   rÊ   r   r   r   rk   rÌ   rÍ   r$   rÎ   rb   rc   rË   ri   rj   rÇ   rf   re   rg   rÔ   rÕ   rÖ   r×   rØ   rÚ   rÜ   rm   rß   rà   rÙ   rI   rB  rá   r†   rÝ   rÞ   rÛ   rä   râ   rã   r°   r´   Úpropertyr^   rÄ   r5   r3   rô   rô   s  sG  … àÓØ
ƒIØÓØÓð ÓØ%Ó%Ø)Ó)à Ÿ=™=€FˆLÓ(Ø€L�$ÓØ€GˆTÓØ€M�4ÓØ€IˆtÓØ€IˆtÓØ!&Ð˜$Ó&Ø"Ð�dÓ"Ø$)Ð˜TÓ)Ø"'Ð˜4Ó'Ø€GˆTÓØ€IˆtÓð "€J�
Ó!Ø*/Ð! 4Ó/Ø€M�4ÓØ€GˆTÓØ€FˆDÓØ€L�$ÓØ%)€FÐ"Ó)Ø€N�CÓð
 '+€GÐ#Ó*Ø!€J�
Ó!Ø €IˆzÓ Ø $€L�+Ó$Ø/3€LÐ,Ó3Ø.2€KÐ+Ó2Ø/3€LÐ,Ó3Ø.2€KÐ+Ó2Ø)-€FÐ&Ó-Ø,0€IÐ)Ó0Ø€Dˆ*ÓØ'+€DÐ
$Ó+Ø37€EÐ0Ó7ð 	ð Ð.ó ð *.€MÐ&Ó-Ø'+€DÐ
$Ó+ò+€OÐ'ó ð €CˆÓØ€Dˆ+ÓØ'+€IÐ$Ó+Ø&*€IÐ#Ó*ð €Eˆ:ÓØ $€M�:Ó$Ø15€OÐ.Ó5Ø.2ÐÐ+Ó2ð
 !%€DÐ
Ó$ó"ðH òó ñr5   rô   c                ó^   — t        |«      t        j                  ury | j                  |«       y rC   )r†   rD   ru   Úcopy_)ÚdstÚsrcs     r3   Ú
_safe_copyr_    s    € ÜˆCƒyœŸ™Ñ$ØØ‡I�Iˆc…Nr5   c                óZ   — t        | «      t        j                  ury | j                  «       S rC   )r†   rD   ru   Úclone)r^  s    r3   Ú_safe_clonerb  !  s!   € ÜˆCƒyœŸ™Ñ$ØØ�9‰9‹;Ðr5   c                ó<  ‡— ddl mŠm} 	 	 	 	 	 	 dˆfd„}t        | ‰«      sy || |«      syt        | |«      rd|j                  €y| j
                  j                  «       D ]:  \  }}||j                  vr yt        |‰«      sŒ# |||j                  |   «      rŒ: y y)a¶  Check if a symbolic_context is compatible with a grad tensor.

    Returns False when the view base structure in symbolic_context doesn't
    match the grad, which means we need a fresh symbolic context.  This
    happens in FSDP2 where param._local_tensor is a view of an N-D padded
    base while grad._local_tensor is a view of a 1-D flat gradient buffer.

    We check at both the outer level and the inner (subclass attr) level.
    r   )ÚStatelessSymbolicContextÚSubclassSymbolicContextc                ó   •— | j                   }|j                  r|€y|j                  s|�y|j                  rG|�Et        |‰«      r9|j                  �-t	        |j
                  «      |j                  j                  k7  ryy)NFT)Úview_base_contextrk   r1   rm   ÚlenÚdynamic_sizesrÈ   )rá   Úgrad_tÚvbcrd  s      €r3   Ú_view_base_compatiblez7_grad_context_compatible.<locals>._view_base_compatible9  sp   ø€ ð ×#Ñ#ˆØ�>Š>˜c˜kØØ�~Š~ # /Øà�NŠNØ�Ü˜3Ð 8Ô9Ø—‘Ð'Ü�C×%Ñ%Ó&¨&¯+©+×*:Ñ*:Ò:àØr5   TF)rá   z"StatelessSymbolicContext[Any, Any]rj  úMetaTensorDesc[torch.Tensor]rs   r  )Ú%torch.fx.experimental.symbolic_shapesrd  re  r1   rß   Úinner_contextsrJ  )Úsymbolic_contextÚ	grad_descre  rl  r  Ú	inner_ctxrd  s         @r3   Ú_grad_context_compatiblers  '  s½   ø€ ÷ð
Ø/ðà,ðð 
õô& Ð&Ð(@ÔAØñ !Ð!1°9Ô=Øô Ð"Ð$;Ô<Ø�?‰?Ð"ØØ/×>Ñ>×DÑDÓFò 	‰OˆD�)Ø˜9Ÿ?™?Ñ*ÙÜØÐ3õá+¨I°y·±ÀtÑ7LÕMÙð	ð r5   c                  ó  — e Zd Zddœdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd	„Z		 	 	 	 	 	 dd
„Z
edd„«       Ze	 d	 	 	 	 	 dd„«       Zedd„«       Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d d„Z	 	 	 	 	 	 	 	 	 	 	 	 d!d„Z	 ddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 d"d„Zy)#ÚMetaConverterFr”   c               óÐ   — t        j                  «       | _        t        j                  «       | _        d| _        d| _        d | _        d| _        || _        t        |¬«      | _
        y )Nr   r”   )ÚweakrefÚWeakValueDictionaryÚstorage_memoÚtensor_memoÚhitÚmissÚdel_hookÚarg_cntr•   rv   Ú	describerr¡   s     r3   r£   zMetaConverter.__init__j  sa   € ô ×'Ñ'Ó)ð 	Ôô ×'Ñ'Ó)ð 	Ôð ˆŒØˆŒ	ØˆŒØˆŒð
 #ˆŒÜ,°yÔAˆ�r5   c                óB   — | j                   dkD  xr | j                  dk(  S )Nr   )r{  r|  rX  s    r3   Ú
successfulzMetaConverter.successful  s   € Ø�x‰x˜!‰|Ò. §	¡	¨Q¡Ð.r5   c                óN   — | j                   j                  |j                  d «      S rC   )rz  Úgetr™   r¦   s     r3   Úget_tensor_memozMetaConverter.get_tensor_memo‚  s   € Ø×Ñ×#Ñ# A§D¡D¨$Ó/Ð/r5   c                óˆ   — | j                   j                  |j                  d «      }|€t        d|j                  › d�«      ‚|S )NzTensor memo for id z is None)rz  rƒ  r™   rL   )r¢   r2   r¶   s      r3   Ú_checked_get_tensor_memoz&MetaConverter._checked_get_tensor_memo…  sA   € Ø×Ñ× Ñ  §¡ tÓ,ˆØˆ9Ü Ð#6°q·t±t°f¸HÐ!EÓFÐFØˆr5   c                ó6   — || j                   |j                  <   y rC   )rz  r™   )r¢   r2   rL  s      r3   Úset_tensor_memozMetaConverter.set_tensor_memo‹  s   € Ø!"ˆ×Ñ˜Ÿ™Òr5   c                óN   — | j                   j                  |j                  d «      S rC   )ry  rƒ  r™   r©   s     r3   Úget_storage_memozMetaConverter.get_storage_memoŽ  s   € Ø× Ñ ×$Ñ$ Q§T¡T¨4Ó0Ð0r5   c                ó6   — || j                   |j                  <   y rC   )ry  r™   )r¢   rª   rL  s      r3   Úset_storage_memozMetaConverter.set_storage_memo‘  s   € Ø"#ˆ×Ñ˜!Ÿ$™$Òr5   c                ó¦  ‡— | j                  ‰«      x}€¤ |ˆfd„«      j                  «       }| j                  rkt        j                  «       5  t        «       5  ‰j                  €t        d«      ‚t        |‰j                  j                  «       «       d d d «       d d d «       | j                  ‰|«       |S |S # 1 sw Y   Œ'xY w# 1 sw Y   Œ+xY w)Nc                 ód   •— t        j                  ‰ j                  t         j                  d¬«      S ©NÚmeta©r]   rÏ   )rD   Úemptyr¯   Úuint8)rª   s   €r3   r·   z,MetaConverter.meta_storage.<locals>.<lambda>�  s   ø€ œŸ™ A§F¡F´%·+±+ÀfÔM€ r5   z.s.data must not be None when copy_data is True)rŠ  rç   r•   rD   Úno_gradr#   r°   rL   r�   ra  rŒ  )r¢   rª   ÚcallbackÚmemoÚr_ss    `   r3   Úmeta_storagezMetaConverter.meta_storage”  sÀ   ø€ ð ×)Ñ)¨!Ó,Ð,ˆDÐ5ÙÛMóç‰oÓð ð �~Š~ô —]‘]“_ñ ;¤k£mñ ;Ø—v‘v�~Ü,ØLóð ô & c¨1¯6©6¯<©<«>Ô:÷;÷ ;ð ×!Ñ! ! SÔ)ØˆJàˆK÷;ð ;ú÷ ;ð ;ús$   ÁCÁ<B;ÂCÂ;C	Ã CÃCc                ó6   — t        j                  t        |«      S rC   )ÚtypingÚcastr9   )Úclsr2   s     r3   Ú_checked_cast_tensor_tz$MetaConverter._checked_cast_tensor_t­  s   € ô �{‰{œ8 QÓ'Ð'r5   Nc                ó.   — | j                   |«       «      S rC   )r�  )rœ  r2   rÏ   s      r3   Ú_identity_callablez MetaConverter._identity_callable²  s   € ð ×)Ñ)©!«#Ó.Ð.r5   c                óš   — t         j                  j                  j                  dd«      } ||«      }t	        j
                  t        |«      S )Nz9Internal error: Tried to backward() through example inputr—   )rD   rê   Ú
_functionsÚDelayedErrorrš  r›  r9   )rœ  r2   ÚerrfnÚerrs       r3   Ú_backward_errorzMetaConverter._backward_errorº  s>   € ä—‘×#Ñ#×0Ñ0ØGØó
ˆñ �A‹hˆÜ�{‰{œ8 SÓ)Ð)r5   c           
     ó@  — ddl m} ddlm}	 |j                  €| j                  |||||«      S i }
|j                  j                  «       D ]í  \  }}d }|�Št        ||	«      st        dt        |«      › �«      ‚||j                  vrt        d|›d�«      ‚|j                  |   x}	 �8t        t        j                  j                  j                  j                   |«      } |||«      }t#        j$                  ||j&                  ¬«      }| j)                  ||j*                  |j,                  ||||«      }||
|<   Œï |j.                  r|
j1                  |j.                  «       |j                  €t        d«      ‚|j                  j3                  |
|j4                  ||«      S )	Nr   ©Ú
AttrSource©re  z&Expected SubclassSymbolicContext, got ztensor attr z missing from inner_contexts©rÏ   ú$t.type must not be None for subclass)Útorch._dynamo.sourcer¨  rn  re  rß   Úmeta_tensorrJ  r1   rL   r†   ro  r‰   rD   ÚfxÚexperimentalÚsymbolic_shapesr-   Ú	functoolsÚpartialrÏ   Ú_empty_create_subclassr¯   ri   rà   rU  Ú__tensor_unflatten__rá   )r¢   r2   Ú
outer_sizeÚouter_strideÚ	shape_envrp  r•  Úsourcer¨  re  Úinner_tensorsr  Úmeta_tensor_descÚcurrent_contextÚcurrent_context_Úcurrent_sourceÚinner_callbackÚnew_empty_tensors                     r3   r³  z$MetaConverter._empty_create_subclassÃ  s¾  € õ 	4ÝQð �7‰7ˆ?Ø×#Ñ#ØØØØØ óð ð ?AˆØ&'§g¡g§m¡m£oò 	3Ñ"ˆDÐ"Ø"ˆOØÐ+Ü!Ð"2Ð4KÔLÜ(Ø@ÄÐFVÓAWÐ@XÐYóð ð Ð/×>Ñ>Ñ>Ü(Ø& t hÐ.JÐKóð ð )9×(GÑ(GÈÑ(MÐMÐ$Øðô '4ÜŸ™×-Ñ-×=Ñ=×MÑMØ(ó'�Oñ
 (¨°Ó5ˆNÜ&×.Ñ.¨xÐ@P×@WÑ@WÔXˆNØ#×:Ñ:Ø Ø ×%Ñ%Ø ×'Ñ'ØØØØó Ðð #3ˆM˜$Òð=	3ðB �>Š>Ø× Ñ  §¡Ô0à�6‰6ˆ>Ü Ð!GÓHÐHØ�v‰v×*Ñ*Ø˜1Ÿ5™5 *¨ló
ð 	
r5   c                óØ%  ‡ ‡‡‡‡‡"‡#‡$‡%‡&‡'‡(‡)‡*‡+‡,— t        j                  |‰j                  ¬«      Š&‰€$ddlm}  |dt        ‰ j                  «      › �«      Šd}t        j                  j                  «       j                  t        j                  j                  j                  «      rt        |«      ‚‰ xj                  dz  c_        t        j                   Š)‰�‰j"                  Š)‰f	 	 	 	 	 	 	 d;ˆfd„Š,‰f	 	 	 	 	 	 	 d<ˆ,fd„}‰‰f	 	 	 	 	 	 	 	 	 	 	 d=ˆ&ˆ ˆfd	„Š'	 	 	 	 	 	 	 	 	 	 d>ˆ$fd
„Š$‰f	 	 	 	 	 	 	 d?ˆ$ˆ&ˆ'ˆ)ˆ ˆˆ,ˆfd„}	‰ j%                  ‰«      �€0dŠ"t        j&                  ‰j(                  «      5  ‰j*                  �rY‰j,                  }
 ‰&ˆfd„«      }‰ j.                  rw‰j0                  €t        d«      ‚t        j2                  «       5  t5        «       5  t7        |«      st        d«      ‚t9        ‰j0                  «      |_        d d d «       d d d «       t=        |«      st        d«      ‚|j?                  tA        ‰jB                  «      «       ‰jD                  rd|_"        ‰jD                  �rN|
�sK‰ jG                  |jI                  «       «      }t        jJ                  «       5  |j?                  tA        ‰jB                  «      «       d d d «       �nétM        ‰jN                  «      �r(‰j,                  }
‰jN                  t        jP                  t        jR                  hv r‹‰jT                  €t        d«      ‚‰jV                  €t        d«      ‚‰jX                  €t        d«      ‚‰jZ                  ‰jT                  z
  ‰jV                  z
  }‰jX                  j\                  |dz   |dz    Š%ndŠ%‰jN                  t        j^                  t        jP                  hv r.‰j`                  €t        d«      ‚‰j`                  jb                  Š(n-‰jd                  €t        d«      ‚‰jd                  jb                  Š( ‰&ˆ%ˆ(ˆfd„«      }‰ j.                  rw‰j0                  €t        d«      ‚t        j2                  «       5  t5        «       5  t7        |«      st        d«      ‚t9        ‰j0                  «      |_        d d d «       d d d «       t=        |«      st        d«      ‚‰jD                  rd|_"        ‰jD                  �
rÁ|
�
s¾‰ jg                  |«      }�
n«‰jh                  r)‰jj                  sddl6m7}  |dtq        ‰«      dg ¬«       �
nv‰jr                  �ro‰j,                  }
 ‰,‰‰«      \  Š*Š+} ‰&ˆ*ˆ+ˆfd„«      }‰ j.                  rñt        j2                  «       5  t5        «       5  ‰jt                  €t        d«      ‚‰jv                  €t        d «      ‚t7        |«      st        d«      ‚t        jx                  ‰jt                  ‰jv                  ‰jb                  ‰j                  ¬!«      |_        ‰j0                  €t        d«      ‚t{        |j:                  ‰j0                  «       d d d «       d d d «       t=        |«      st        d«      ‚‰jD                  rd|_"        ‰jD                  �	r|
�	s‰ jg                  |«      }�nú‰j|                  r=‰j~                  rddl6m7}  |d"tq        ‰«      dg ¬«       d@ˆ"ˆ#ˆ&ˆ ˆˆˆfd#„Š# ‰#‰«      }�n±‰j€                  r«‰j                  j‚                  d$vr“‰j„                  €t        d%«      ‚‰j|                  rt        d&«      ‚‰ j‡                  ‰j„                  ‰‰&‰‰«      }‰ jG                  t        jˆ                  |«      «      }t        jŠ                  ‰jŒ                  |«       �nú‰j~                  �r ‰jŽ                  €t        d'«      ‚d }‰rC‰�Add(lHmI} t•        ‰|«      st        d)tƒ        ‰«      › �«      ‚‰j–                  �‰j–                  }‰r‰j™                  «       nt        j                   «       5  ‰ j‡                  ‰jŽ                  ‰‰&t        jš                  jœ                  jŸ                  ‰d*«      |«      }d d d «       	 	 	 	 	 	 dAd+„}t        j                  j¡                  t        j                  j                  j¢                  «      }t        j                  j¥                  t        j                  j                  j¢                  d,«       	 jb                  ‰jb                  k(  rn® ||jb                  ‰jb                  «      r%‰ jG                  t        j¦                  |«      «      }nl |‰jb                  |jb                  «      r%‰ jG                  t        j¨                  |«      «      }n*‰ jG                  |j«                  ‰jb                  «      «      }‰j,                  r8t        j2                  «       5   |	|‰«      }d d d «       ‰jD                  _"        nò‰jŽ                  jD                  ‰jD                  k(  r't        jJ                  «       5   |	|‰«      }d d d «       n¨‰jD                  st        d-«      ‚t        j2                  «       5  t­        «       5  ‰ jG                  |j«                  |j\                  «      «      }d d d «       d d d «       ‰jD                  _"        t        jJ                  «       5   |	|‰«      }d d d «       ‰j®                  €t        d.«      ‚t        j                  j°                  j³                  ‰j®                  «       t        j                  j¥                  t        j                  j                  j¢                  |«       ‰j                  |_Z        �ní‰j,                  }
‰j¶                  s‰j¸                  s‰j|                  s‰jº                  rt¼        cd d d «       S  ‰,‰‰‰«      \  Š*Š+}‰jj                  r ‰'‰‰*‰+¬/«      }nó ‰&ˆ*ˆ+ˆfd0„«      }‰ j.                  rÚt        j2                  «       5  t5        «       5  ‰jt                  €t        d«      ‚‰jv                  €t        d «      ‚t7        |«      st        d«      ‚t        jx                  ‰jt                  ‰jv                  ‰jb                  ‰j                  ¬!«      |_        t{        |j:                  ‰j0                  «       d d d «       d d d «       t=        |«      st        d«      ‚‰jD                  r$‰jD                  |_"        |
s‰ jg                  |«      }‰j¾                  }|€t        d1«      ‚|jÀ                  ‰ jÂ                  vrÀ|jh                  s&|jw                  «       ‰+k(  r¡|jÅ                  «       |k(  rŽ‰ jÇ                  ||jÉ                  «       «       ‰ j.                  �r³t7        |«      st        d«      ‚|j:                  €t        d2«      ‚tË        |jÉ                  «       |j:                  jÉ                  «       «       �nR‰ jÍ                  |‰&¬3«      }t        j                   «       }dd4lgmh}mi}  ||«      }|� ||«      }t        j2                  «       5   ‰)«       5  |5  |jÕ                  ||‰*‰+«       d d d «       ‰ j.                  r¹t        j2                  «       5  t5        «       5  t7        |«      st        d«      ‚|j:                  €t        d2«      ‚‰jv                  €t        d «      ‚|j:                  jÕ                  t×        |«      ‰jÄ                  ‰jt                  ‰jv                  «       d d d «       d d d «       d d d «       d d d «       ‰jØ                  �ddd5lmO}  |‰d6«      }‰}‰�-‰�+tÛ        ‰‰jØ                  «      s ‰$‰jØ                  |‰‰&«      }‰ j‡                  ‰jØ                  ‰‰&||«      _l        t        j                  jÝ                  ‰jÞ                  «       t        j                  já                  |‰jâ                  «       d d d «       ‰j¸                  xr ‰jä                  ‰"k(  } tç        tè        ‰d| ¬7«       dd8lHmu}! ‰j¾                  �> |!‰j¾                  jt                  dk(  «      r|jÉ                  «       jí                  d«       ‰jî                  rd|_x        ‰jò                  �At7        |«      st        d9«      ‚|jô                  j÷                  ‰jò                  ¬:«      |_|        ‰ jû                  ‰|«       ‰ jý                  ‰«      S # 1 sw Y   �ŒŠxY w# 1 sw Y   �Œ�xY w# 1 sw Y   �ŒôxY w# 1 sw Y   �Œ xY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒixY w# 1 sw Y   �ŒnxY w# 1 sw Y   �	ŒNxY w# 1 sw Y   �ŒÓxY w# 1 sw Y   �ŒÜxY w# 1 sw Y   �Œ(xY w# 1 sw Y   �Œ-xY w# 1 sw Y   �ŒxY w# t        j                  j¥                  t        j                  j                  j¢                  |«       w xY w# 1 sw Y   �Œ[xY w# 1 sw Y   �Œ`xY w# 1 sw Y   �Œ¹xY w# 1 sw Y   �Œ	xY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒYxY w)BNrª  r   )ÚConstantSourceÚ__meta_utils_unknown_tensora   This indicates you set no_dispatch() before calling into this function.  This is an error: we may be creating fake tensors and will perform operations on them which need fake tensor mode to be active.  You will segfault if you are in a no_dispatch() block.r—   c           
     óV  •‡	— ddl mŠ	 | j                  €t        d«      ‚‰
��`| j                  }t        ˆ	fd„| j                  D «       «      xs2 t        ˆ	fd„| j                  D «       «      xs  ‰	| j                  «      }|�1|j                  ‰
u r#| j                  | j                  | j                  fS |�'|s%|€#| j                  | j                  | j                  fS t        ˆ
fd„| j                  D «       «      }t        ˆ
fd„| j                  D «       «      }‰
j                  | j                  «      }‰
j                  |||t        | j                  «      D �cg c]  }|| j                  v ‘Œ c}||| j                  ¬«      S | j                  | j                  | j                  fS c c}w )	Nr   )Úis_symbolicút.stride must not be Nonec              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wrC   rÄ   )Ú.0ÚszrÄ  s     €r3   ú	<genexpr>zVMetaConverter.meta_tensor.<locals>.sym_sizes_strides_storage_offset.<locals>.<genexpr>T  s   øè ø€ Ò9¨B™ BŸÑ9ùó   ƒc              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wrC   rÄ   )rÇ  ÚsdrÄ  s     €r3   rÉ  zVMetaConverter.meta_tensor.<locals>.sym_sizes_strides_storage_offset.<locals>.<genexpr>U  s   øè ø€ Ò>¨r™; rŸ?Ñ>ùrÊ  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrC   ©Ú#_maybe_specialize_sym_int_with_hint)rÇ  rÈ  r·  s     €r3   rÉ  zVMetaConverter.meta_tensor.<locals>.sym_sizes_strides_storage_offset.<locals>.<genexpr>d  s$   øè ø€ ò #àð "×EÑEÀb×Iñ#ùó   ƒc              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrC   rÎ  )rÇ  rÌ  r·  s     €r3   rÉ  zVMetaConverter.meta_tensor.<locals>.sym_sizes_strides_storage_offset.<locals>.<genexpr>h  s$   øè ø€ ò %àð "×EÑEÀb×Iñ%ùrÐ  )rp  Úhint_overrides)rn  rÄ  ri   rL   rÝ   Úanyr¯   rj   r·  rG  rÏ  Ú-_create_symbolic_sizes_strides_storage_offsetÚrangerÈ   rÐ   rÒ   )r2   r^  rp  rÝ   Úhas_symbolicÚt_sizeÚt_strideÚt_storage_offsetÚdrÄ  r·  s            @€r3   Ú sym_sizes_strides_storage_offsetzCMetaConverter.meta_tensor.<locals>.sym_sizes_strides_storage_offsetE  s˜  ù€ õ Jà�x‰xÐÜ$Ð%@ÓAÐAàÑ$ØŸK™K�	äÓ9°!·&±&Ô9Ó9ò 5ÜÓ>°Q·X±XÔ>Ó>ò5á" 1×#3Ñ#3Ó4ð ð
 Ð(¨Y×-@Ñ-@ÀIÑ-Mð ŸF™F A§H¡H¨a×.>Ñ.>Ð?Ð?àÐ)Ù(Ø(Ð0àŸF™F A§H¡H¨a×.>Ñ.>Ð?Ð?ô #ó #à"#§&¡&ô#ó �Fô  %ó %à"#§(¡(ô%ó  �Hð (1×'TÑ'TØ×(Ñ(ó(Ð$ð %×RÑRØØ Ø(Ü@EÀaÇfÁfÃÖN¸1˜˜a×6Ñ6Ò6ÒNØØ)9Ø'(×'>Ñ'>ð Só ð ð Ÿ™ §¡¨!×*:Ñ*:Ð;Ð;ùò Os   ÅF&c                óf   •—  ‰| ||«      \  }}}t        j                  ||| j                  d¬«      S r�  ©rD   Úempty_stridedr]   )Úinner_tÚ	inner_srcrp  Úinner_sizesÚinner_stridesÚ_inner_storage_offsetrÛ  s         €r3   Úempty_createz/MetaConverter.meta_tensor.<locals>.empty_create{  sC   ø€ ñ 1°¸)ÐEUÓVñ	ØØØ%ä×&Ñ&ØØØ—m‘mØô	ð r5   c           	     ó.  •— ddl m} | j                  €t        d«      ‚| j                  €t        d«      ‚|�|n| j
                  }|�|n| j                  }|�#t        ||«      st        dt	        |«      › �«      ‚|€t        d«      ‚‰j                  | ||‰	|‰|«      }|j                  |k7  r(t        d| j                  › d|› d	|j                  › �«      ‚|j                  «       |k7  r,t        d| j                  › d
|› d	|j                  «       › �«      ‚|S )Nr   r©  ú%t.attrs must not be None for subclassr«  z.Expected SubclassSymbolicContext or None, got zsource must not be NonezExpected return value from z.__tensor_unflatten__() to have shape equal to z, but got: z/__tensor_unflatten__() to have stride equal to )
rn  re  rß   rL   r†   r¯   ri   r1   r³  r^   )
r2   rµ  r¶  rp  r¸  re  Úsubr•  r¢   r·  s
          €€€r3   Úempty_create_subclassz8MetaConverter.meta_tensor.<locals>.empty_create_subclass�  sK  ø€ õ Và�w‰wˆÜ$Ð%LÓMÐMØ�v‰vˆ~Ü$Ð%KÓLÐLð (2Ð'=™À1Ç6Á6ˆJà+7Ð+C™<ÈÏÉˆLàÐ+´JØ Ð"9ô5ô %ØDÄTÐJZÓE[ÐD\Ð]óð ð ˆ~Ü$Ð%>Ó?Ð?Ø×-Ñ-ØààØØ ØØó
ˆCð �y‰y˜JÒ&Ü$Ø1°!·&±&°ð :&Ø&0 \°¸S¿Y¹Y¸KðIóð ð �z‰z‹|˜|Ò+Ü$Ø1°!·&±&°ð :'Ø'3 n°KÀÇ
Á
Ã¸~ðOóð ð
 ˆJr5   c                óP  •— ddl m} ddlm}m}m} d }| j                  r3| j                  €t        d«      ‚ ‰| j                   ||d«      ||«      }|j                  g| j                  z  }	| j                  r”| j                  €t        d«      ‚i }
| j                  j                  «       D ]A  \  }}t        |t        «      st        dt!        |«      › �«      ‚ ‰| |||«      ||«      |
|<   ŒC  ||	d g| j                  z  |
||¬«      }|S  ||	d g| j                  z  |¬	«      }|S )
Nr   r§  )Ú
DimDynamicrd  re  ú't.base must not be None for view tensorrn   ræ  zExpected attr to be str, got )ri  Úconstraint_sizesro  Útensor_sourcerg  )ri  rì  rg  )r¬  r¨  rn  rê  rd  re  rk   rm   rL   ÚDYNAMICrÈ   r$   rß   rJ  r1   rH  r†   )r2   r¸  r·  r•  r¨  rê  rd  re  rg  Út_dynamic_sizesro  r  r  Út_symbolic_contextÚall_dynamic_symbolic_contexts                 €r3   rñ  z?MetaConverter.meta_tensor.<locals>.all_dynamic_symbolic_contextÖ  sV  ø€ õ 8÷ñ ð ð ð �yŠyØ—6‘6�>Ü(Ð)RÓSÐSÙ$@Ø—F‘F™J v¨wÓ7¸ÀHó%Ð!ð
  *×1Ñ1Ð2°Q·V±VÑ;ˆOØ×.Ò.Ø—7‘7�?Ü(Ð)PÓQÐQð ð ð $%§7¡7§=¡=£?ò ‘K�D˜%Ü% d¬CÔ0Ü,Ø;¼DÀ»J¸<ÐHóð ñ ,HØ™z¨&°$Ó7¸ÀHó,�N 4Ò(ðñ &=Ø"1Ø&* V¨a¯f©f¡_Ø#1Ø"(Ø&7ô&Ð"ð &Ð%ñ &>Ø"1Ø&* V¨a¯f©f¡_Ø&7ô&Ð"ð &Ð%r5   c           	     ó  •‡‡‡‡— t        «       5   ‰|‰«      \  }}}|j                  sGt        | «      s< ‰«       5  ‰j                  | j                  |||«      «      cd d d «       cd d d «       S ddlmŠ ddlmŠm} d
ˆˆˆˆfd„}i Š|j                  rˆ|j                  €t        d«      ‚|j                  €t        d«      ‚ ‰|||¬«      }|j                  «       \  }	}
|	D ]7  }||j                  v sŒt        ||«      ‰|j                  |   j                  <   Œ9 ‰‰f	 	 	 	 	 	 	 dˆˆˆˆfd„}|j                  €t        d	«      ‚|j                  j!                  || ||«      }t#        j$                   ||j'                  «       |«      «       t#        j$                   ||j)                  «       |«      «       t#        j$                   ||j+                  «       |«      «       |cd d d «       S # 1 sw Y   �ŒˆxY w# 1 sw Y   y xY w)Nr   )ÚEphemeralSource)rd  Úsym_eqc                óâ   •‡— ddl mŠ ‰d uxr, t        ‰‰«      xr t        ˆfd„‰j                  D «       «      }|s‰€| S  ‰d«      }‰j                  | |d ¬«      }‰j                  || |¬«      S )Nr   )rê  c              3  ó:   •K  — | ]  }|‰j                   u –— Œ y ­wrC   )ÚSTATIC)rÇ  Úxrê  s     €r3   rÉ  z_MetaConverter.meta_tensor.<locals>.view_from_base.<locals>.symint_visitor_fn.<locals>.<genexpr>N  s$   øè ø€ ò  à !ð  ×!2Ñ!2Ô2ñ ùs   ƒr  )Úpositive)Úhintr¸  )rn  rê  r1   Úallri  Úcreate_symbolÚcreate_symintnode)	rª   Úall_static_sizesÚ
sym_sourceÚsymbolrê  ró  rd  r·  rp  s	       @€€€€r3   r  zLMetaConverter.meta_tensor.<locals>.view_from_base.<locals>.symint_visitor_fnG  s˜   ù€ åPð )°Ð4ò Ü&Ð'7Ð9QÓRòäó  à%5×%CÑ%Cô ó ð %ñ (¨9Ð+<Ø ˜ñ "1Ð1DÓ!E�Jà&×4Ñ4°Q¸
ÈTÐ4ÓR�FØ$×6Ñ6Ø Q¨zð 7ó ð r5   ræ  r«  ©rµ  r¶  c                óì   •— | €y ‰
j                   j                  | «      }‰	j                  |«      }|�|S ‰
j                   j                  | «      } ‰d«      }‰
j	                  |||| ‰||||«      «      S )Nr  )r  r§   rƒ  rw   r­  )Ú	visited_tr·  r•  Ú
visited_idÚfake_visited_tÚvisited_descÚtemp_sourceró  rñ  Úreal_to_fake_mappingr¢   s          €€€€r3   r  zLMetaConverter.meta_tensor.<locals>.view_from_base.<locals>.tensor_visitor_fn‚  s‘   ø€ ð !Ð(à#ð "&§¡×!=Ñ!=¸iÓ!H�JØ%9×%=Ñ%=¸jÓ%I�NØ%Ð1Ø-Ð-à#'§>¡>×#AÑ#AÀ)Ó#L�Lñ #2Ð2EÓ"F�KØ×+Ñ+Ø$Ø!Ø Ø#Ù4Ø(¨+°yÀ(óóð r5   z,t.view_func must not be None for view replay)rª   r  rs   r.   )r  rr   r·  ú5torch.fx.experimental.symbolic_shapes.ShapeEnv | Noner•  ú&_MetaTensorCallbackOptDevice[_TensorT]rs   rr   )r    r$   r�  Ú
as_stridedr¬  ró  rn  rd  rô  rß   rL   r†   rÃ   rT   r™   rÞ   r   rD   Ú_checkr¯   ri   rj   )rm   r2   r·  ÚsizesÚstridesrj   rô  r  Úfake_trß   Ú_r  r  ró  rd  r  rñ  r•  rè  Úmaybe_suppressr¢   r¸  rÛ  rp  s     `          @@@€€€€€€€€r3   Úview_from_basez1MetaConverter.meta_tensor.<locals>.view_from_base*  s  ü€ ô *Ó+ñ Oá3SØ�vó4Ñ0�˜ ð ×7Ò7Ü9¸$Ô?ñ
 (Ó)ñ Ø#×:Ñ:Ø ŸO™O¨E°7¸NÓKó ÷ð ÷Oñ Oõ" A÷÷
ð ð< (*Ð$Ø×2Ò2Ø—w‘w�Ü,Ð-TÓUÐUð —v‘v�~Ü,Ð-SÓTÐTñ (=Ø e¸'ô(�Fð  &×8Ñ8Ó:‘H�E˜1Ø %ò ˜Ø 1§7¡7š?ÜELØ &¨óFÐ0°·±¸±×1AÑ1AÒBðð 'ØGOð'Ø+ð'ð ð	'ð Eð'ð "÷'ð 'ðV —;‘;Ð&Ü(Ð)WÓXÐXð Ÿ™×*Ñ*ØØà%Ø%ó�ô —‘™V F§K¡K£M°5Ó9Ô:Ü—‘™V F§M¡M£O°WÓ=Ô>Ü—‘™V F×$9Ñ$9Ó$;¸^ÓLÔMØ÷_Oñ O÷ñ ú÷Oð Oús0   �,G<¼"G/Á	G<Á1BG<Ã6C/G<Ç/G9	Ç4G<Ç<Héþÿÿÿc                 óÎ   •— t         j                  j                  j                  ‰ j                  ‰ j
                  ‰ j                  ‰ j                  t         j                  d¬«      S )Nr�  )r]   rd   rÏ   )	rD   ÚopsÚatenÚ_sparse_coo_tensor_with_dimsrf   re   r¯   r]   rz   r@   s   €r3   r·   z+MetaConverter.meta_tensor.<locals>.<lambda>Ì  sH   ø€ ¤§	¡	§¡× KÑ KØŸL™LØŸK™KØŸF™FØ"#§'¡'Ü#(×#3Ñ#3Ø#)ð !Ló !€ r5   ú.t.data must not be None when copy_data is TruezExpected r to be a FakeTensorz)the callback you passed in doesn't detachTz5t.sparse_dim must not be None for sparse block layoutz4t.dense_dim must not be None for sparse block layoutz1t.values must not be None for sparse block layouté   rÄ   z9t.crow_indices must not be None for sparse csr/bsr layoutz9t.ccol_indices must not be None for sparse csc/bsc layoutc            
     ó¶   •— t         j                  j                  j                  d‰j                  ‰j
                  ‰ ‰‰j                  ‰j                  d¬«      S )Nr   r�  )rd   r]   rÏ   )rD   r  r  Ú#_sparse_compressed_tensor_with_dimsre   r^   rd   r]   )Ú	blocksizeÚindex_dtyper2   s   €€€r3   r·   z+MetaConverter.meta_tensor.<locals>.<lambda>  sH   ø€ ¤§	¡	§¡× RÑ RØØŸK™KØŸG™GØ%Ø'Ø#$§8¡8Ø"#§'¡'Ø#)ð !Só 	!€ r5   )Úunimplementedz;attempted to apply meta conversion to strided nested tensorzThis is not supported.)Úgb_typeÚcontextÚexplanationÚhintsc                 óJ   •— t        j                  ‰ ‰‰j                  d¬«      S r�  rÝ  ©r  r  r2   s   €€€r3   r·   z+MetaConverter.meta_tensor.<locals>.<lambda>K  s   ø€ ¤× 3Ñ 3Ø! 7°!·'±'À&ô!€ r5   z.t.size must not be None when copy_data is Truez0t.stride must not be None when copy_data is Truer‘  z;attempted to apply meta conversion to view functorch tensorc                óÀ  •‡ ‡‡— ‰ j                   rÉ‰ j                  €t        d«      ‚‰ j                  €t        d«      ‚‰ j                  €t        d«      ‚ ‰
‰ j                  «      }‰ j                  }‰ j                  }t
        j                  j                  j                  ‰ j                  «      5  ‰j                  t        |||«      «      }d d d «       |S ‰ j                  �r@‰ j                  €t        d«      ‚‰ j                  €t        d«      ‚t
        j                  j                  } |«       5   ‰
‰ j                  «      }d d d «       ‰ j                  }|‰	k(  r}nut
        j                  j                  j                  ‰ j                  «      5  ‰j                  t
        j                  j                  j                  |«      «      }d d d «       ‰ j                   }‰ j"                  rt%        «      r	d|_        |S ‰ j"                  r|s‰j'                  «      }S ‰ j(                  rt‰ j                  €t        d«      ‚‰ j*                  €t        d«      ‚‰j-                  ‰ j                  ‰‰‰‰«      }‰j                  t/        |‰ j*                  «      «      }|S ‰ j0                  €t        d	«      ‚‰ j2                  Š‰ j0                  Š ‰ˆˆˆ fd
„«      }‰j4                  r¯t        j6                  «       5  t9        «       5  t        j:                  ‰ j2                  ‰ j0                  ‰ j<                  ‰ j>                  ¬«      |_         ‰ jB                  €t        d«      ‚tE        |j@                  ‰ jB                  «       d d d «       d d d «       |S |S # 1 sw Y   S xY w# 1 sw Y   �ŒfxY w# 1 sw Y   �ŒêxY w# 1 sw Y   Œ<xY w# 1 sw Y   |S xY w)Nz.t.unwrapped must not be None for batchedtensorz*t.level must not be None for batchedtensorz)t.bdim must not be None for batchedtensorz3t.unwrapped must not be None for gradtrackingtensorz/t.level must not be None for gradtrackingtensorTú2t.unwrapped must not be None for functional tensorz6t.current_level must not be None for functional tensorrÅ  c                 óJ   •— t        j                  ‰ ‰‰j                  d¬«      S r�  rÝ  r$  s   €€€r3   r·   zDMetaConverter.meta_tensor.<locals>._to_fake_tensor.<locals>.<lambda>Ò  s"   ø€ ¬×(;Ñ(;Ø$)Ø$+Ø*+¯'©'Ø+1ô	)"€ r5   r‘  r  )#r   rÚ   rL   rÛ   rÜ   rD   rì   rí   Ú%temporarily_restore_interpreter_stackrâ   r�  r   r   rê   Ú_DisableFuncTorchÚ_wrap_for_gradr>   r_   rA   r¥  rÎ   rä   r­  r   ri   r¯   r•   r”  r#   rÞ  r]   rÏ   Úreal_tensorr°   r_  )r2   ÚftÚlvlrÜ   r¶   Údisable_functorchr>   r  r  ÚGRAD_TENSOR_SENTINEL_VALUEÚ_to_fake_tensorr•  r¢   r·  r¸  rp  s   `      @@€€€€€€€r3   r0  z2MetaConverter.meta_tensor.<locals>._to_fake_tensory  s¥  û€ ð ×-Ò-Ø Ÿ{™{Ð2Ü&4Ø$Tó'"ð !"ð  !Ÿw™w˜Ü&4Ø$Pó'"ð !"ð  !Ÿv™v˜~Ü&4Ø$Oó'"ð !"ñ "1°·±Ó!=˜BØ"#§'¡'˜CØ#$§6¡6˜Dô
 "'×!1Ñ!1×!=Ñ!=×!cÑ!cØ !× 1Ñ 1ó"ñ "ð %)×$?Ñ$?Ü$2°2°t¸SÓ$Aó%" ÷"ðn  !˜ðc ×4Ó4Ø Ÿ{™{Ð2Ü&4Ø$Yó'"ð !"ð  !Ÿw™w˜Ü&4Ø$Uó'"ð !"ô 16·±×0JÑ0JÐ-Ù!2Ó!4ñ BÙ%4°Q·[±[Ó%A ÷Bà"#§'¡'˜CØ"Ð&@Ò@Ø$&¡ä%*×%5Ñ%5×%AÑ%A×%gÑ%gØ$%×$5Ñ$5ó&"ñ !&ð )-×(CÑ(CÜ(-¯©×(;Ñ(;×(JÑ(JÈ2ÈsÓ(Só)& A÷!&ð '(§i¡i˜GØ Ÿš´<À´?Ø26 ¤ðp  !˜ðo "#§¢¹Ø$(×$8Ñ$8¸Ó$; ðl  !˜ðk Ÿ_š_Ø Ÿ{™{Ð2Ü&4Ø$Xó'"ð !"ð  !Ÿ™Ð6Ü&4Ø$\ó'"ð !"ð "&×!1Ñ!1Ø !§¡Ø )Ø (ð
 !'Ø 0ó
"˜Bð !%× ;Ñ ;Ü 7¸¸A¿O¹OÓ Ló!˜AðB  !˜ð9  !Ÿx™xÐ/Ü&4Ð5PÓ&QÐ Qà$%§F¡F˜EØ&'§h¡h˜GÙ (õ!"ó!˜Að  $Ÿ~š~Ü%*§]¡]£_ñ !F´k³mñ !FÜ49×4GÑ4GØ()¯©Ø()¯©Ø./¯g©gØ/0¯x©xô	5& A¤Mð ()§v¡v ~Ü.<Ø,\ó/*ð )*ô %/¨q¯}©}¸a¿f¹fÔ$E÷!F÷ !Fð  !˜˜q˜÷o"ðn  !˜ú÷OBñ Bú÷!&ñ !&ú÷h!Fð !Fú÷ !Fð  !˜úsI   Â3N Ä6N-Æ:N:ÌOÌA>OÎOÎ N*Î-N7Î:OÏO	ÏOÏOrÀ   r&  z0Expected non-functorch wrapped functional tensorrë  )rd  z'Expected StatelessSymbolicContext, got rn   c                ó`   — t        j                  | «      xr t        j                  | «      |k(  S rC   )ÚutilsÚis_complex_dtypeÚcorresponding_real_dtype)Úcomplex_dtypeÚ
real_dtypes     r3   Ú	is_c_of_rz,MetaConverter.meta_tensor.<locals>.is_c_of_r*  s2   € ô "×2Ñ2°=ÓAò *Ü %× >Ñ >¸}Ó MØ)ñ!*ðr5   Fz.t.requires_grad must be True for non-leaf viewz0t.creation_meta must not be None for view tensorr  c                 óJ   •— t        j                  ‰ ‰‰j                  d¬«      S r�  rÝ  r$  s   €€€r3   r·   z+MetaConverter.meta_tensor.<locals>.<lambda>¦  s"   ø€ ¤E×$7Ñ$7Ø %Ø 'Ø&'§g¡gØ'-ô	%€ r5   zt.storage must not be Nonez5r.real_tensor must not be None when copy_data is True)r•  )Úin_kernel_invocation_managerrþ   r§  rI   rX   )Úguard_or_falsez,Expected r to be a FakeTensor for nested int)Únt_tensor_id)r2   r7   r^  útorch._guards.Sourcerp  ú<torch.fx.experimental.symbolic_shapes.SymbolicContext | Noners   zDtuple[tuple[IntLikeType, ...], tuple[IntLikeType, ...], IntLikeType])rß  r7   rà  r<  rp  r=  rs   rr   )r2   r7   rµ  útuple[IntLikeType, ...]r¶  r>  rp  r=  r¸  ztorch._guards.Source | Noners   r9   )
r2   r7   r¸  r<  r·  r	  r•  ú_MetaTensorCallback[_TensorT]rs   ú5torch.fx.experimental.symbolic_shapes.SymbolicContext)rm   r9   r2   r7   r·  r	  rs   r9   ©r2   r7   rs   r9   )r5  r>  r6  r>  rs   r  )r±  r²  rÏ   r¬  rÁ  rh  rz  rD   rê   Ú_dispatch_tls_local_exclude_setÚhasÚDispatchKeyÚPythonrL   r~  Ú
contextlibÚnullcontextÚsuppress_guardsr„  Úinference_modera   r`   r>   r•   r°   r”  r#   r4   rb  r+  rA   Ú_coalesced_r  rg   r_   r�  ra  Úenable_gradr�   rd   r   r€   rf   re   rØ   rÈ   r^   r}   rÔ   r]   rÖ   r¥  rÌ   r$   Útorch._dynamo.excr  rH  rÉ   r¯   ri   rÞ  r_  rÊ   rk   rÎ   r†   rÚ   r­  Ú_to_functional_tensorÚ_mirror_autograd_meta_torã   rm   rn  rd  r1   rg  Úignore_fresh_unbacked_symbolsÚ_dynamor¸  r¨  Ú&_dispatch_tls_is_dispatch_key_excludedÚADInplaceOrViewÚ'_dispatch_tls_set_dispatch_key_excludedÚview_as_realÚview_as_complexÚviewr    rÙ   rú   Ú_set_creation_metaÚfake_devicer   r   r   ÚNotImplementedrÇ   r™   ry  rj   rŒ  rç   r�   r˜  r0   r9  rþ   Úset_r�   rI   rs  Ú	_set_conjrb   Ú_set_negrc   rÛ   rx   rQ   r:  Úresize_rË   Ú	_is_paramrÍ   rÝ   Úcreate_symbolic_nested_intÚnested_int_memorˆ  r†  )-r¢   r2   r·  Ú	callback_r¸  rp  rÁ  Úmsgrä  r  r>   r¶   Ú	batch_dimr  Ú_storage_offsetrÚ   Úbase_symbolic_contextrd  rm   r7  Úold_excludeÚmidrj   rª   r—  Úmaybe_fake_mgrr9  rþ   Úmb_fake_moder¨  Úgrad_sourceÚgrad_symbolic_contextrZ   r:  r/  r0  rñ  r  r•  rè  r  r  r  r  rÛ  s-   ``` ``                            @@@@@@@@@@@r3   r­  zMetaConverter.meta_tensor  s*  ÿÿ€ ô <E×;LÑ;LØ˜aŸh™hô<
ˆð ˆ>Ý;ñ $Ø-¬c°$×2BÑ2BÓ.CÐ-DÐEóˆFð
Rð 	ô �8‰8×3Ñ3Ó5×9Ñ9¼%¿(¹(×:NÑ:N×:UÑ:UÔVÜ  Ó%Ð%Ø�Š˜Ñ�ô4 -7×,BÑ,BˆØÐ Ø&×6Ñ6ˆNð &ð	4	<Ø"ð4	<à%ð4	<ðð4	<ð
 Rõ4	<ðt &ð		Ø(ð	à+ð	ðð	ð
 õ	ð2 &Ø28ðA	Ø"ðA	à/ðA	ð 2ðA	ðð	A	ð 0ðA	ð ÷A	ðN5	&Ø"ð5	&à(ð5	&ð Mð5	&ð 4ð	5	&ð
 Cõ5	&ðp ð	U	ØðU	à"ðU	ððU	ð
 ÷U	ô U	ðn ×Ñ Ó"Ñ*Ø)+Ð&ä×%Ñ% a§n¡nÓ5ñ C
/Ø—;“;ØŸi™i�Gñ
 !óó	�Að —~’~àŸ6™6˜>Ü"0Ø Pó#ð ô #Ÿ]™]›_ñ @¬k«mñ @Ü#2°1Ô#5Ü&4Ð5TÓ&UÐ Uä,7¸¿¹Ó,?˜AœM÷	@÷ @ô
 (¨œ?Ü,ØGóð ð —M‘M¤$ q§~¡~Ó"6Ô7Ø—’Ø*.˜œØ—“ªwð
 !×7Ñ7¸¿¹»	ÓB˜Ü"×.Ñ.Ó0ñ @ØŸM™M¬$¨q¯~©~Ó*>Ô?÷@ñ @ä0°·±Õ:ØŸi™i�Gà—x‘x¤E×$4Ñ$4´e×6FÑ6FÐ#GÑGØŸ<™<Ð/Ü"0Ø Wó#ð ð Ÿ;™;Ð.Ü"0Ø Vó#ð ð Ÿ8™8Ð+Ü"0Ø Só#ð ð %&§F¡F¨Q¯\©\Ñ$9¸A¿K¹KÑ$G˜	Ø$%§H¡H§N¡N°9¸q±=À9ÈqÁ=Ð$Q™	à$&˜	Ø—x‘x¤E×$4Ñ$4´e×6FÑ6FÐ#GÑGØŸ>™>Ð1Ü"0Ø [ó#ð ð '(§n¡n×&:Ñ&:™àŸ>™>Ð1Ü"0Ø [ó#ð ð '(§n¡n×&:Ñ&:˜á õ	ó�Að —~’~àŸ6™6˜>Ü"0Ø Pó#ð ô #Ÿ]™]›_ñ @¬k«mñ @Ü#2°1Ô#5Ü&4Ð5TÓ&UÐ Uä,7¸¿¹Ó,?˜AœM÷	@÷ @ô
 (¨œ?Ü,ØGóð ð —’Ø*.˜œØ—“ªwØ ×0Ñ0°Ó3šØ—[’[¨×)HÒ)Hõ @ñ "Ø ]Ü # A£Ø$<Ø ÷	ð —[“[ØŸi™i�Gñ
 9¸¸FÓCñ	ØØØ'ñ !õó�Að
 —~’~Ü"Ÿ]™]›_ñ >¬k«mñ >Ø Ÿv™v˜~Ü&4Ø$Tó'"ð !"ð  !Ÿx™xÐ/Ü&4Ø$Vó'"ð !"ô $3°1Ô#5Ü&4Ð5TÓ&UÐ Uä,1×,?Ñ,?Ø !§¡¨¯©¸¿¹ÈÏÉô-˜AœMð  !Ÿv™v˜~Ü&4Ø$Tó'"ð !"ô ' q§}¡}°a·f±fÔ=÷'>÷ >ô( (¨œ?Ü,ØGóð ð —’Ø*.˜œØ—“ªwØ ×0Ñ0°Ó3šØ×+Ò+Ø—y’yÝCá%Ø$aÜ$'¨£FØ(@Ø"$õ	÷o!ó o!ñb (¨Ó*’Aà—_’_¨¯©¯©¸oÑ)MØ—{‘{Ð*Ü,ØPóð ð ×-Ò-Ü,ØNóð ð !%× 0Ñ 0ØŸ™Ø!Ø ØØ(ó!�Ið ×3Ñ3Ü×3Ñ3°IÓ>ó�Aô ×2Ñ2°1×3GÑ3GÈÖKà—Y“Yð —v‘v�~Ü,Ð-VÓWÐWà,0Ð)Ù Ð%5Ð%Aõô  *Ð*:Ð<TÔUÜ"0Ø"IÌ$ÐO_ÓJ`ÐIaÐ bó#ð ð ,×=Ñ=ÐIØ4D×4VÑ4VÐ1ñ %ð "×?Ñ?ÔAä'×3Ñ3Ó5ñð
  $×/Ñ/ØŸF™FØ%Ø$Ü!ŸM™M×0Ñ0×;Ñ;¸FÀGÓLØ1ó ˜÷ðØ'2ðØ@Kðàóô #(§(¡(×"QÑ"QÜŸ™×,Ñ,×<Ñ<ó#�Kô —H‘H×DÑDÜŸ™×,Ñ,×<Ñ<¸eôðKØŸ:™:¨¯©Ò0Ø Ù& t§z¡z°1·7±7Ô;Ø#'×#>Ñ#>¼u×?QÑ?QÐRVÓ?WÓ#X™DÙ& q§w¡w°·
±
Ô;Ø#'×#>Ñ#>Ü %× 5Ñ 5°dÓ ;ó$™Dð $(×#>Ñ#>¸t¿y¹yÈÏÉÓ?QÓ#R˜Dð& Ÿ9š9ô "'§¡£ñ <Ù$2°4¸Ó$; ÷<ð /0¯o©o˜A�Oà Ÿv™v×3Ñ3°q·±ÒFä%*×%6Ñ%6Ó%8ñ !@Ù(6°t¸QÓ(? A÷!@ð !@ð ()§¢Ü*8Ø(Xó+&ð %&ô &+§]¡]£_ñ !&Ô6NÓ6Pñ !&Ø*.×*EÑ*EØ(,¯	©	°$·*±*Ó(=ó+& C÷!&÷ !&ð 56·O±O Ô 1Ü%*×%6Ñ%6Ó%8ñ !?Ù(6°s¸AÓ(> A÷!?ð
 Ÿ?™?Ð2Ü"0Ø Ró#ð ô Ÿ™×*Ñ*×=Ñ=¸aÀÇÁÔQäŸ™×HÑHÜ!ŸH™H×0Ñ0×@Ñ@À+ôð %&§H¡H�A–Mð  Ÿi™i�Gð ×/Ò/°1×3JÒ3JØ×2Ò2Ø×2Ò2ä-÷eC
/ñ C
/ñp 9¸¸FÐDTÓUñ	ØØØ&ð
 ×6Ò6Ù1Ø¨%¸gô™ñ %õó˜ð  Ÿ>š>Ü!&§¡£ñ B´+³-ñ BØ#$§6¡6 >Ü*8Ø(Xó+&ð %&ð $%§8¡8Ð#3Ü*8Ø(Zó+&ð %&ô (7°qÔ'9Ü*8Ø(Gó+&ð %&ô 16×0CÑ0CØ$%§F¡F¨A¯H©H¸A¿G¹GÈAÏHÉHô1" ¤ô !+¨1¯=©=¸!¿&¹&Ô A÷#B÷ Bô& (¨œ?Ü,ØGóð ð —’Ø*+¯/©/˜œÙ&ð !%× 4Ñ 4°QÓ 7˜AàŸ	™	�AØ�yÜ,Ð-IÓJÐJØ—t‘t 4×#4Ñ#4Ñ4ØŸšàŸH™H›J¨'Ò1Ø !× 0Ñ 0Ó 2°nÒ Dð ×-Ñ-¨a°×1BÑ1BÓ1DÔEØŸ>›>Ü#2°1Ô#5Ü&4Ð5TÓ&UÐ UØ Ÿ}™}Ð4Ü&4Ø$[ó'"ð !"ô .Ø !× 1Ñ 1Ó 3°Q·]±]×5RÑ5RÓ5Töð #×/Ñ/°¸HÐ/ÓE˜ô, '×2Ñ2Ó4ð '÷ñ
 (;¸1Ó'=˜Ø'Ð3Ù-IÈ,Ó-W˜NÜ"Ÿ]™]›_ñ &©nÓ.>ñ &Ø!/ñ LØ !§¡ s¨N¸EÀ7Ô K÷Là#Ÿ~š~Ü%*§]¡]£_ñ !&´k³mñ !&Ü+:¸1Ô+=Ü.<Ø,Kó/*ð )*ð ()§}¡}Ð'<Ü.<Ø,có/*ð )*ð ()§x¡xÐ'7Ü.<Ø,^ó/*ð )*ð %&§M¡M×$6Ñ$6Ü(9¸#Ó(>Ø()×(8Ñ(8Ø()¯©Ø()¯©ô	%&÷!&÷ !&÷	&÷ &ð0 —6‘6Ð%Ý?á",¨V°VÓ"<�KØ,<Ð)ð !Ð,Ð1AÐ1MÜ7Ð8HÈ!Ï&É&ÔQÙ4PØ !§¡¨°YÀó5Ð1ð
 "×-Ñ-ØŸ™Ø!Ø Ø#Ø-ó�A”Fô —‘×"Ñ" 1 a§i¡iÔ0ä—‘×!Ñ! ! Q§X¡XÔ.÷GC
/ðL ×'Ñ'ÒQ¨A¯G©GÐ7QÑ,Qð ô œy¨!¨Q¸dÈiÕXõ Mà�y‰yÐ$©¸¿	¹	¿¹È!Ñ8KÔ)Là×!Ñ!Ó#×+Ñ+¨AÔ.à�~Š~à"�”ð �|‰|Ð'ä& qÔ)Ü(Ð)WÓXÐXà$%§K¡K×$JÑ$JØ!"§¡ð %Kó %�Ô!ð
 × Ñ   AÔ&à×,Ñ,¨QÓ/Ð/÷[@ñ @ú÷ @ñ @ú÷.@ñ @ú÷j@ñ @ú÷ @ñ @ú÷R>ñ >ú÷ >ñ >ú÷Zñ ú÷H<ñ <ú÷!@ñ !@ú÷!&ñ !&ú÷ !&ñ !&ú÷
!?ñ !?ûô Ÿ™×HÑHÜ!ŸH™H×0Ñ0×@Ñ@À+õú÷NBñ Bú÷ Bñ Bú÷JLñ Lú÷!&ñ !&ú÷ !&ñ !&ú÷	&ñ &ú÷ &ñ &ú÷]C
/ñ C
/úsž  Å4AAKÇAF!Ç1AFÈAF!ÈBAKÊ,%AF.ËF0AKÒAGÒ1AF;Ò=AGÓCAKÖ!AG"Ö,CAGÙ.AG"Ù6G%AKáAAG/â#BAKä9C(AH=è!
AG<è+AAH=é<
AH	ê4AH=ê:AH#ë+AHë0AH#ë8-AH=ì%
AH0ì/AAH=îBAKð"AAKñ5AJò B+AJô+AJô3FAKûAKûAKûAJ	û'(AKüAJ8	üB
AJ+þ$AJ8	þ,AKþ4AKþ<CAKÁFAFÁFAF!ÁF!AF+	ÁF&AKÁF.AF8	ÁF3AKÁF;AGÁG AGÁGAG	ÁGAKÁGAGÁGAG"ÁG"AG,	ÁG'AKÁG/AG9	ÁG4AKÁG<AH	ÁHAH=ÁH	AH	ÁHAH=ÁHAH ÁHAH#ÁH#AH-	ÁH(AH=ÁH0AH:	ÁH5AH=ÁH=AAJÁJAKÁJAJÁJ	AJÁJAJ	ÁJAKÁJAJ(ÁJ#AKÁJ+AJ5ÁJ0AJ8	ÁJ8AKÁJ=AKÁKAKÁK
AKÁKAK	ÁKAKÁKAK)T)r•  r¸  rp  r­   c               ó˜  ‡ ‡‡— |€‰ j                   }n|}t        |t        j                  «      rˆ|j                  j
                  dk(  s>|j                  s2|j                  «       r=|j                  �1|j                  j                  r‰ xj                  dz  c_
        t        S ‰ xj                  dz  c_        n<t        j                  j                  |«      r‰ xj                  dz  c_
        t        S |S ‰€d}‰ j                  j!                  ||¬«      Š|r‰€t#        d«      ‚t%        dˆ ˆˆfd„¬«       t'        j(                  «       5 }|j+                  t        j,                  j.                  j1                  «       «       t3        «       }	|	�7|j+                  t        j4                  j6                  j9                  «       «       ‰ j;                  ‰||‰|«      }
d d d «       t        |«      t        j<                  j>                  u rd	
_         tC        |d
d«      r$d	
_"        tG        |d«      r|jH                  |
_$        
S # 1 sw Y   ŒhxY w)NrÂ   r—   Fr¬   z*source must not be None when trace is TrueÚdescribe_sourcec                 ó`   •— ‰ j                   j                  ‰j                  ‰j                  dœS )N)r  r™   r¸  )r  r™   rS  )r¢   r¸  Út_descs   €€€r3   r·   z(MetaConverter.__call__.<locals>.<lambda>©  s%   ø€ Ø$(§N¡N×$5Ñ$5Ø Ÿ)™)Ø$Ÿk™kñ%€ r5   r¹   TÚ
_is_bufferÚ
persistent)%rŸ  r1   rD   ru   rÏ   r†   Úis_quantizedrl   rn   r`   r|  rY  r{  Ú	overridesÚis_tensor_liker  rw   rL   r!   rF  Ú	ExitStackÚenter_contextÚ	_dispatchÚpythonÚsuspend_functionalizationr   rì   rí   rî   r­  rö   r÷   r^  rT   rp  rï   rq  )r¢   r2   r·  r•  r¸  rp  r­   ra  Ú
exit_stackÚstr¶   ro  s   `   `      @r3   r2  zMetaConverter.__call__j  sç  ú€ ð ÐØ×/Ñ/‰Ià ˆIô �aœŸ™Ô&ð —‘—‘ Ò'ð —’ð —‘” !§'¡'Ð"5¸!¿'¹'×:KÒ:Kà—	’	˜Q‘•	ä%Ð%à—’˜A‘–Ü�_‰_×+Ñ+¨AÔ.Ø�IŠI˜‰N�Iä!Ð!ð ˆHàˆ>ØˆEð —‘×/Ñ/°¸Ð/Ó?ˆáØˆ~Ü$Ð%QÓRÐRÜØ!õõô ×!Ñ!Ó#ð 	 zØ×$Ñ$¤U§_¡_×%;Ñ%;×%UÑ%UÓ%WÔXÜ'Ó)ˆBØˆ~Ø×(Ñ(Ü×$Ñ$×0Ñ0×TÑTÓVôð × Ñ ØØØØØ óˆA÷	ô  �‹7”e—h‘h×(Ñ(Ñ(ð ˆAŒKô �1�l EÔ*àˆAŒLÜ�q˜,Ô'à Ÿ|™|�”ð ˆ÷=	ð 	ús   Å	BI É I	r
  )rs   r  )r2   r7   rs   rC  rA  )r2   r7   rL  r9   rs   rt   )rª   r»   rs   r  )rª   r»   rL  r  rs   rt   )rª   r»   r•  z0Callable[[Callable[[], torch.Tensor]], _TensorT]rs   r  )r2   rr   rs   r9   rC   )r2   r3  rÏ   ztorch.device | str | Noners   r9   )r2   r9   rs   r9   )r2   r7   rµ  rA  r¶  rA  r·  úShapeEnv | Nonerp  r=  r•  r
  r¸  r<  rs   r9   )r2   r7   r·  r|  ra  r?  r¸  úSource | Nonerp  úSymbolicContext | Noners   r9   )r2   rr   r·  r|  r•  z$_MetaTensorCallback[_TensorT] | Noner¸  r}  rp  r~  r­   r  rs   r9   )r  r  r  r£   r�  r„  r†  rˆ  rŠ  rŒ  r˜  Úclassmethodr�  rŸ  r¥  r³  r­  r2  rÄ   r5   r3   ru  ru  i  s¹  „ Ø,1õ Bó*/ó0óó#ó1ó$ðàðð Cðð 
ó	ð2 ò(ó ð(ð ð -1ð/à%ð/ð *ð/ð 
ò	/ó ð/ð ò*ó ð*ðA
àðA
ð +ðA
ð -ð	A
ð
 #ðA
ð WðA
ð 9ðA
ð %ðA
ð 
óA
ðR\0àð\0ð #ð\0ð 1ð	\0ð
 ð\0ð 1ð\0ð 
ó\0ðB# &*ðgð
 :>Ø $Ø37ð ñgàðgð #ðgð
 7ðgð ðgð 1ðgð ðgð 
ôgr5   ru  )r2   rP  rs   zTypeIs[FakeTensor])r2   ú"MetaTensorDesc[Any] | torch.Tensorrs   r  )r2   r6   rs   z_TensorLikeT | None)r2   r6   rs   r6   )rO   r8   rP   r8   rs   rt   )rs   zGenerator[None, None, None])rQ   z Callable[[object, object], None]ro   r€  rp   rr   rY   r  rZ   r  rs   rt   )r2   rP  rs   zTypeGuard[torch.Tensor])rd   r@  rs   r  )r‡   ztype[_T]rˆ   rP  rs   r8   )rm   r  rs   r  )rm   r  rŒ   r  rs   rt   )r]  rr   r^  rC  rs   rt   )r^  rr   rs   rC  )rp  r@  rq  rm  rs   r  )pÚ
__future__r   rF  rQ  r±  Ú	threadingrš  rw  Úabcr   r   r   r   r   r	   r
   r   r   r   r   r   Útyping_extensionsr   r   r   r   rD   Útorch._C._autogradr   Útorch._C._functorchr   r   r   r   r   r   r   r   r   r   r   Útorch._dispatch.pythonr    Útorch._loggingr!   Útorch._opaque_baser"   Útorch.utils._mode_utilsr#   Útorch.utils._python_dispatchr$   Útorch.utils.weakr%   Úcollections.abcr&   r'   r(   Útorch._guardsr)   r0   r*   r+   rn  r,   r-   Útorch.typesr.   r4   rù   ÚDimListru   r6   r8   r9   r;   rA   rJ   rM   rQ   ÚlocalrU   rS   rW   rx   r{   r�   rh   r„   r‰   r�   r�   r  r�   r‘   r’   r˜   rv   r»   rò   r"  r#  r/  r7  r:  rô   r_  rb  rs  ru  Útorch._prims_commonÚ_prims_commonr2  rÄ   r5   r3   ú<module>r”     s  ðÝ "ã Û Û Û Û Û Ý ß =Ý !÷	÷ 	ó 	÷ BÓ Aã Ý +÷÷ ÷ ñ õ <Ý +Ý )Ý /Ý FÝ 0ñ ß3å0Ý$ßH÷
 PÝ'ó%ð €Ù�~Ð'<¸e¿l¹lÓK€ÙˆTƒ]€Ù�: U§\¡\Ô2€Ù�~¨U¯\©\ÀTÔJ€óóóó,ð
 €i‡o�oÓ€ð #€Ô ð ò+ó ð+ð  Øñ;Ø/ð;à*ð;ð 	ð;ð
 ð;ð ð;ð 
ó;ó~HóóQó
7óóð%Ø
ð%Ø.Bð%à	ó%ñ ˜¨Ó-€Ù�~ sÓ+€ñ �~ sÓ+€Ù  “OÐ ÷cñ cñL	 �$Ô÷
ð 
ó ð
ñ �$Ôô8ˆw�xÑ ó 8ó ð8ñ$ �$Ôô
˜( <Ñ0ó 
ó ð
ñ$ �$ÔôI�h˜xÑ(¨'°(Ñ*;ó Ió ðIô6˜( G¨LÑ$9ô ô 	°õ ô 8¨W°\Ñ-Bô ñ �$ÔôX�W˜XÑ&ó Xó ðXóNóð8ØKð8à+ð8ð 
ó8ôDh�G˜HÑ%ô höV+ $r5   