+
    –°³j�  ã                  ó®  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
Ht ^ RIHtHt ^ RIHtHtHt ]R7,          t^ RIt^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIH t H!t! ^ RI"H#t# ^ RI$H%t% ^ RI&H't' ^ RI(H)t) ^RI*H+t+ ^RI,H-t-H.t. ]'       d   ^ RI/H0t0H1t1 ^ RI2H3t3 ^ RIH4t4 ^RI5H6t6 ]Pn                  ! ]84      t9 ! R R]
4      t: ! R R]:4      t; ! R R]:4      t<R R lt=R8R R llt>]P~                  R8R  R! ll4       t@R"R#R$R#R%R/R& R' lltA ! R( R)]B4      tCR* R+ ltDR, R- ltER. R/ ltFR8R0 R1 lltGR2R/R3 R4 lltHR9R5 R6 lltIR# ):é    )ÚannotationsN)ÚABCÚabstractmethod)ÚAbstractContextManagerÚnullcontext)ÚAnyÚLiteralÚTYPE_CHECKING)Ú&BundledAOTAutogradSerializableCallable)Údynamo_timed)Únormalize_path_separator)ÚBoxedDeviceIndex)Útemporary_cache_dir)Ú	BoxedBoolÚ	InputType)ÚFakeTensorMode)Úmaybe_get_fake_mode)ÚShapeEnv)Ú._share_torchbind_and_process_group_on_deepcopy)Úconfig)Ú"_functionalize_inplace_collectivesÚ_unbox_process_group_torchbinds)ÚCallableÚSequence)Ú	CacheInfo)ÚGraphModule)Ú
OutputCodec                  óx   € ] tR t^0tRtR R lt]R R l4       t]RR/R R	 ll4       t]	RR/R
 R ll4       t
RtR# )ÚCompiledArtifactax  
CompiledArtifact class represents the inductor cache artifacts that
can be invoked in order to avoid repeated compilation.

CompiledArtifact can be obtained by calling standalone_compile(gm, example_inputs)
to create a fresh CompiledArtifact from a GraphModule and example inputs.

Later this CompiledArtifact can be saved to disk, either as a binary or unpacked
into the provided folder via the CompiledArtifact.save function.

CompiledArtifact.load provides a way to create a CompiledArtifact from the
binary or unpacked data.

Finally, the CompiledArtifact can be invoked via the __call__ method
to execute the cached artifact.
c               ó    € V ^8„  d   QhRRRR/# ©é   Úcompiled_fnúCallable[..., Any]Ú	artifactsútuple[bytes, CacheInfo] | None© )Úformats   "Úc/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_inductor/standalone_compile.pyÚ__annotate__ÚCompiledArtifact.__annotate__B   ó   € ÷ $ñ $à'ð$ð 2ñ$ó    c                	ó   € Wn         W n        R # ©N©Ú_compiled_fnÚ
_artifacts©Úselfr#   r%   s   &&&r)   Ú__init__ÚCompiledArtifact.__init__B   ó   € ð
 (ÔØ#Žr-   c               ó    € V ^8„  d   QhRRRR/# ©r"   Úargsr   Úreturnr'   )r(   s   "r)   r*   r+   K   s   € ×.Ñ.˜cÐ. cÑ.r-   c                	ó   € R # r/   r'   ©r4   r:   s   &*r)   Ú__call__ÚCompiledArtifact.__call__J   s   € Ù+.r-   r(   Úbinaryc               ó$   € V ^8„  d   QhRRRRRR/# ©r"   ÚpathÚstrr(   úLiteral['binary', 'unpacked']r;   ÚNoner'   )r(   s   "r)   r*   r+   N   s$   € ÷ ñ ØðØ$Aðà	ñr-   c               	ó   € R # r/   r'   )r4   rC   r(   s   &$$r)   ÚsaveÚCompiledArtifact.saveM   s   € ñ r-   c               ó$   € V ^8„  d   QhRRRRRR/# ©r"   rC   rD   r(   rE   r;   r   r'   )r(   s   "r)   r*   r+   S   s$   € ÷ &ñ &Øð&Ø;ð&à	ñ&r-   c                	óú  € VR 8X  d   \         P                  WR7      # VR8w  d   \        RV 24      h\        V R4      ;_uu_ 4       p^ RIHp ^RIHp VP                  4       pV! V4      pVP                  4       pV\        P                  8X  dv   VP                  4       V! 4       8w  d   \        R4      hVP                  4       pVP                  4       '       g   \        R4      h\        P                  V4      uuR	R	R	4       # V\         P                  8X  d®   VP                  4       V! 4       8w  d   \        R4      hVP                  4       p	VP                  4       p
VP                  4       '       g   \        R4      h\         P"                  P%                  V
4       \         P'                  \)        4       V	4      uuR	R	R	4       # \+        R
VP-                  R4      ,           4      h  + '       g   i     R	# ; i)Úunpacked©rC   r(   r@   z!expected format == 'binary', got Úrb©ÚBytesReader©Ú	torch_keyú)torch_key mismatch in serialized artifactúexpected reader to be finishedNzLInvalid header, expected CacheCompiledArtifact or AOTCompiledArtifact, got: úutf-8)ÚCacheCompiledArtifactÚloadÚAssertionErrorÚopenÚ&torch.utils._appending_byte_serializerrQ   Ú	codecacherS   ÚreadÚ
read_bytesÚAOTCompiledArtifactÚ
AOT_HEADERÚis_finishedÚdeserializeÚCACHE_HEADERÚread_strÚtorchÚcompilerÚload_cache_artifactsÚ
_load_implr   ÚRuntimeErrorÚdecode)rC   r(   ÚfilerQ   rS   Úresult_bytesÚreaderÚheaderÚartifactÚkeyÚartifact_bytess   $$         r)   rX   ÚCompiledArtifact.loadR   s   € ð �ZÔä(×-Ñ-°4Ð-ÓGÐGà�XÔÜ Ð#DÀVÀHÐ!MÓNÐNÜ�$˜×Ô ÝJå,àŸ9™9›;ˆLÙ  Ó.ˆFØ×&Ñ&Ó(ˆFØÔ,×7Ñ7Ô7Ø×$Ñ$Ó&©)«+Ô5Ü(Ð)TÓUÐUØ!×,Ñ,Ó.�Ø×)Ñ)×+Ò+Ü(Ð)IÓJÐJÜ*×6Ñ6°xÓ@÷ Òð  Ô0×=Ñ=Ô=Ø×$Ñ$Ó&©)«+Ô5Ü(Ð)TÓUÐUØ—o‘oÓ'�Ø!'×!2Ñ!2Ó!4�Ø×)Ñ)×+Ò+Ü(Ð)IÓJÐJÜ—‘×3Ñ3°NÔCÜ,×7Ñ7¼»ÀsÓK÷1 Òô4 #ØbØ—m‘m GÓ,õ-óð ÷5 ×Ðús'   ÁBG)ÃG)ÄA/G)Å6AG)Ç!G)Ç)G:	©r2   r1   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r5   r   r>   rH   ÚstaticmethodrX   Ú__static_attributes__r'   r-   r)   r   r   0   sR   † ñõ"$ð Ü.ó Ø.àðØDLöó ðð ð&Ø>Fö&ó ô&r-   r   c                  óÎ   € ] tR t^|tRt]! R R4      tR R ltR R ltR R lt	R	 R
 lt
R R ltRR/R R llt]R R l4       t]RR/R R ll4       t]RR/R R ll4       tRtR# )rW   zF
CompiledArtifact that depends on torch.compiler.save_cache_artifacts
rV   c               ó    € V ^8„  d   QhRRRR/# r!   r'   )r(   s   "r)   r*   Ú"CacheCompiledArtifact.__annotate__ƒ   r,   r-   c                	ó   € Wn         W n        R # r/   r0   r3   s   &&&r)   r5   ÚCacheCompiledArtifact.__init__ƒ   r7   r-   c               ó    € V ^8„  d   QhRRRR/# r9   r'   )r(   s   "r)   r*   r}   ‹   s   € ÷ (ñ (˜cð ( cñ (r-   c                	ó"   € V P                   ! V!  # r/   )r1   r=   s   &*r)   r>   ÚCacheCompiledArtifact.__call__‹   s   € Ø× Ò  $Ñ'Ð'r-   c               ó   € V ^8„  d   QhRR/# )r"   r;   Úboolr'   )r(   s   "r)   r*   r}   Ž   s   € ÷ ;ñ ;˜Tñ ;r-   c                	ón   € V P                   f   R# V P                   w  r\        VP                  4      ^8H  # )NF)r2   ÚlenÚaot_autograd_artifacts)r4   Ú_Ú
cache_infos   &  r)   Úis_saveableÚ!CacheCompiledArtifact.is_saveableŽ   s2   € Ø�?‰?Ò"ÙØŸ™‰ˆô �:×4Ñ4Ó5¸Ñ:Ð:r-   c               ó   € V ^8„  d   QhRR/# )r"   r;   ztuple[bytes, str]r'   )r(   s   "r)   r*   r}   —   s   € ÷ Dñ DÐ&7ñ Dr-   c                ó  € V P                   f   \        R4      hV P                   w  r\        VP                  4      ^ 8X  d   \        RV 24      h\        VP                  4      ^8”  d   \	        RV 24      hWP                  ^ ,          3# )aQ  Validate the cached artifact, returning ``(artifact_bytes, key)``.

Single source of the None / empty / multiple aot_autograd_artifacts checks,
shared by ``_to_binary_bytes`` and ``save``'s unpacked branch. Messages are
neutral (not tied to ``save``) because ``_to_binary_bytes`` callers obtain the
bytes without going through ``save``.
z-CompiledArtifact has no artifact to serializea  CompiledArtifact has no aot_autograd artifacts to serialize. This likely means there was something that was not serializable in the graph passed to standalone_compile. This can generally be fixed by ensuring that your model only uses constructs that are serializable. zSCompiledArtifact has more than one aot_autograd artifact but we only expected one. )r2   ri   r†   r‡   rY   )r4   rq   r‰   s   &  r)   Ú_validate_and_unpackÚ*CacheCompiledArtifact._validate_and_unpack—   s¢   € ð �?‰?Ò"ÜÐNÓOÐOØ%)§_¡_Ñ"ˆÜˆz×0Ñ0Ó1°QÔ6ÜðOð PZÈlð\óð ô ˆz×0Ñ0Ó1°AÔ5Ü ð!Ø!+ ð.óð ð ×@Ñ@ÀÕCÐCÐCr-   c               ó   € V ^8„  d   QhRR/# ©r"   r;   Úbytesr'   )r(   s   "r)   r*   r}   °   s   € ÷ !ñ ! %ñ !r-   c                ó  € V P                  4       w  r^ RIHp ^RIHp V! 4       pVP                  \        P                  4       VP                  V! 4       4       VP                  V4       VP                  V4       VP                  4       # )a›  Serialize this artifact to the in-memory ``binary`` byte format.

Produces exactly the bytes that ``save(format="binary")`` writes to disk, so
callers that only need the bytes (rather than a file on disk) can reuse this
without going through ``save``. The byte layout is the one
``load(format="binary")`` reads back: header, ``torch_key``, the autograd-cache
``key`` string, then the opaque ``artifact_bytes``.
©ÚBytesWriterrR   )
rŽ   r[   r•   r\   rS   Úwrite_bytesrW   rc   Ú	write_strÚto_bytes)r4   rq   rp   r•   rS   Úwriters   &     r)   Ú_to_binary_bytesÚ&CacheCompiledArtifact._to_binary_bytes°   sp   € ð #×7Ñ7Ó9ÑˆåFå(á“ˆØ×ÑÔ0×=Ñ=Ô>Ø×Ñ™9›;Ô'Ø×Ñ˜ÔØ×Ñ˜>Ô*Ø�‰Ó Ð r-   r(   r@   c               ó$   € V ^8„  d   QhRRRRRR/# rB   r'   )r(   s   "r)   r*   r}   Æ   s)   € ÷ /Pñ /PØð/PØ$Að/Pà	ñ/Pr-   c               	ó  € \        R 4      ;_uu_ 4        VR8X  dR   \        P                  P                  V4      '       d   \	        RV 24      h^ RIHp V! WP                  4       4       EMÚVR8w  d   \	        RV 24      hV P                  4       w  rE\        P                  P                  V4      '       dL   \        P                  P                  V4      '       g   \	        RV 24      h\        P                  ! VRR7       ^R	IHp \        V4      ;_uu_ 4        \        P                   P#                  V4      pVf   \	        R4      hVP$                   Fã  pVP'                  V4      p	\        P                  P                  V	4      '       g   \	        RV	 24      h\)        \        P*                  ! V	4      4       Fy  p\-        \        P                  P/                  W‘4      R4      ;_uu_ 4       p
\0        P2                  ! V
4      pR
R
R
4       XP5                  4       p\6        P9                  RV4       K{  	  Kå  	  R
R
R
4       R
R
R
4       R
#   + '       g   i     LP; i  + '       g   i     L-; i  + '       g   i     R
# ; i)zCompiledArtifact.saver@   úexpected path to not be a dir: ©Úwrite_atomicrM   ú#expected format == 'unpacked', got úexpected path to be a dir: T)Úignore_errors)ÚFxGraphCacheNz)expected loaded_cache_info to not be Nonezexpected subdir to exist: rO   zOutput code written to: %s)r   ÚosrC   ÚisdirrY   Útorch._inductor.codecacher    rš   rŽ   ÚexistsÚshutilÚrmtreer\   r¤   r   re   rf   rg   Úinductor_artifactsÚ_get_tmp_dir_for_keyÚsortedÚlistdirrZ   ÚjoinÚpicklerX   Úwrite_to_diskÚlogÚinfo)r4   rC   r(   r    rq   Ú_keyr¤   Úloaded_cache_inforp   ÚsubdirÚfÚgraphÚoutput_files   &$$          r)   rH   ÚCacheCompiledArtifact.saveÆ   sá  € ô Ð1×2Õ2Ø˜Ô!ä—7‘7—=‘= ×&Ò&Ü(Ð+JÈ4È&Ð)QÓRÐRåBñ
 ˜T×#8Ñ#8Ó#:Ö;à˜ZÔ'Ü(Ð+NÈvÈhÐ)WÓXÐXð (,×'@Ñ'@Ó'BÑ$�Ü—7‘7—>‘> $×'Ò'ÜŸ7™7Ÿ=™=¨×.Ò.Ü,Ð/JÈ4È&Ð-QÓRÐRÜ—M’M $°dÕ;å3ä(¨×.Õ.ä(-¯©×(KÑ(KØ&ó)Ð%ð )Ò0Ü,ØGóð ð
  1×CÔC˜Ø!-×!BÑ!BÀ3Ó!G˜Ü!Ÿw™wŸ~™~¨f×5Ò5Ü"0Ð3MÈfÈXÐ1VÓ"WÐWÜ$*¬2¯:ª:°fÓ+=Ö$>˜DÜ!%¤b§g¡g§l¡l°6Ó&@À$×!GÔ!GÈ1Ü(.¯ª°A« ÷ "Hà*/×*=Ñ*=Ó*?˜KÜŸH™HÐ%AÀ;ÖOó	 %?ñ	  D÷ /÷3 3Ñ2÷R "H×!Gú÷! /×.ú÷3 3×2Ð2úsI   ”,I7ÁBI7Ã?I7ÄCI$	Ç2IÈ	6I$	È?I7ÉI!ÉI$	É$I4É/I7É7J	c               ó$   € V ^8„  d   QhRRRRRR/# )r"   Úcache_dir_ctxzAbstractContextManager[Any]rp   rD   r;   r   r'   )r(   s   "r)   r*   r}   ø   s)   € ÷ 'Rñ 'RØ2ð'RØ9<ð'Rà	ñ'Rr-   c                	óH  a	€ T ;_uu_ 4        \         P                  ! R R7      ;_uu_ 4        \        P                  P                   P                  R R7      ;_uu_ 4        ^ RIHp VP                  VR R. / RR7      pRRR4       Xf   \        R4      hTw  rE^RIH	p V! \        R4      \        ^ 4      R	7      p\        P                  P                  \        \        4       R
7      4      p\        P                  P!                  V4      ;_uu_ 4        VP#                  . VP$                  V4      o	RRR4       RRR4       RRR4       \'        V	3R lR4      #   + '       g   i     Lã; i  + '       g   i     LC; i  + '       g   i     LN; i  + '       g   i     LY; i)T)Ú&unsafe_skip_cache_dynamic_shape_guards)Ústrict_autograd_cache)ÚAOTAutogradCacheFN)ÚlocalÚremoter:   r‰   Ú
aot_configz6expected AOTAutogradCache lookup result to not be None)Ú_CompileFxKwargs)Ú
cudagraphsÚboxed_forward_device_index©Ú	shape_envc                 ó&   <€ S! \        V 4      4      # r/   )Úlist)r:   r#   s   *€r)   Ú<lambda>Ú2CacheCompiledArtifact._load_impl.<locals>.<lambda>  s   ø€ ±;¼tÀD»zÔ3Jr-   )r   Úpatchre   Ú
_functorchÚ-torch._functorch._aot_autograd.autograd_cacherÀ   Ú_lookuprY   Ú
compile_fxrÄ   r   r   Ú_guardsÚTracingContextr   r   ÚtracingÚwrap_post_compileÚsanitized_aot_configrW   )
r¼   rp   rÀ   ÚresultÚentryrˆ   rÄ   Ú	fx_configÚcontextr#   s
   &&       @r)   rh   Ú CacheCompiledArtifact._load_impl÷   s@  ø€ ÷
 ŠMÜ�LŠLÀ×EÖEä×!Ñ!×(Ñ(×.Ñ.ÀTÐ.×JÕJõð *×1Ñ1ØØØ ØØ!Ø#ð 2ó �÷ Kð Š~Ü$ØLóð ð  ‰JˆUå4á(Ü$ UÓ+Ü+;¸AÓ+>ôˆIô
 —m‘m×2Ñ2´>ÌHËJÔ3WÓXˆGÜ—‘×&Ñ& w×/Õ/Ø#×5Ñ5Ø˜×2Ñ2°Ió�÷ 0÷= F÷ ôF %Ô%JÈDÓQÐQ÷A K×Jú÷8 0×/ú÷= F×Eú÷ �MúsS   Œ F¬3E>	ÁEÁ=BE>	ÄE+Ä0E>	Ä8FÅE(Å#E>	Å+E;Å6E>	Å>FÆ	FÆF!	c               ó$   € V ^8„  d   QhRRRRRR/# )r"   rC   rD   r(   rE   r;   z'tuple[str, AbstractContextManager[Any]]r'   )r(   s   "r)   r*   r}   "  s$   € ÷ +*ñ +*Øð+*Ø;ð+*à	0ñ+*r-   c           	     óÂ  € \        V 4      p \        R4      ;_uu_ 4        VR8X  Ed   \        P                  P	                  V 4      '       d   \        RV  24      h\        V R4      ;_uu_ 4       pVP                  4       pRRR4       ^ RIH	p ^RI
Hp V! X4      pVP                  4       V! 4       8w  d   \        R4      hVP                  4       pVP                  4       pVP                  4       '       g   \        R	4      h\        P                   P#                  V4       V\%        4       3uuRRR4       # VR
8w  d   \        RV 24      h\        P                  P	                  V 4      '       g   \        RV  24      h\        P                  P'                  V R4      p	\        P                  P	                  V	4      '       g   \        RV	 24      h\)        \        P*                  ! V	4      4      p
\-        V
4      ^8w  d   \        R\-        V
4       24      hV
^ ,          p\/        V 4      pW{3uuRRR4       #   + '       g   i     ELÂ; i  + '       g   i     R# ; i)zE
Do format specific prep and loads, return a context manager and key
zCompiledArtifact.loadr@   rž   rO   NrP   rR   rT   rU   rM   r¡   r¢   Úaotautogradz)expected autograd_cache_dir to be a dir: zexpected exactly 1 file, got )r   r   r¥   rC   r¦   rY   rZ   r]   r[   rQ   r\   rS   r^   rd   ra   re   rf   rg   r   r¯   rÊ   r®   r†   r   )rC   r(   rk   r%   rQ   rS   rm   rp   rq   Úautograd_cache_dirÚfilesr¼   s   $$          r)   Ú_prepare_loadÚ#CacheCompiledArtifact._prepare_load!  sæ  € ô (¨Ó-ˆÜÐ1×2Õ2Ø˜Õ!ä—7‘7—=‘= ×&Ò&Ü(Ð+JÈ4È&Ð)QÓRÐRÜ˜$ ×%Ô%¨Ø $§	¡	£�I÷ &åNå0á$ YÓ/�Ø×$Ñ$Ó&©)«+Ô5Ü(Ð)TÓUÐUØ—o‘oÓ'�Ø!'×!2Ñ!2Ó!4�Ø×)Ñ)×+Ò+Ü(Ð)IÓJÐJä—‘×3Ñ3°NÔCØœK›MÐ)÷) 3Ò2ð, ˜ZÔ'Ü(Ð+NÈvÈhÐ)WÓXÐXÜ—w‘w—}‘} T×*Ò*Ü(Ð+FÀtÀfÐ)MÓNÐNÜ%'§W¡W§\¡\°$¸Ó%FÐ"Ü—w‘w—}‘}Ð%7×8Ò8Ü(ØCÐDVÐCWÐXóð ô œRŸZšZÐ(:Ó;Ó<�Ü�u“: ”?Ü(Ð+HÌÈUËÈÐ)UÓVÐVØ˜A•h�Ü 3°DÓ 9�ØÐ)÷I 3Ò2÷
 &×%Ð%ú÷ 3×2Ð2úsD   Ÿ-IÁ"IÁ/H9	Â A6IÃ75IÄ79IÅ1AIÇA*IÈ9I
É	IÉI	c               ó$   € V ^8„  d   QhRRRRRR/# rK   r'   )r(   s   "r)   r*   r}   P  s)   € ÷ Dñ DØðDØ;ðDà	ñDr-   c                	ó\   € \         P                  WR 7      w  r#\         P                  W24      # )rN   )rW   rá   rh   )rC   r(   rp   r¼   s   $$  r)   rX   ÚCacheCompiledArtifact.loadO  s3   € ô 3×@Ñ@Øð Aó 
Ñˆô %×/Ñ/°ÓCÐCr-   rs   N)rt   ru   rv   rw   rx   r’   rc   r5   r>   rŠ   rŽ   rš   rH   ry   rh   rá   rX   rz   r'   r-   r)   rW   rW   |   s“   † ññ Ð0°'Ó:€Lõ$õ(õ;õDõ2!ð,/PØDL÷/Pðb ô'Ró ð'RðR ð+*Ø>Fö+*ó ð+*ðZ ðDØ>FöDó ôDr-   rW   c                  ó®   € ] tR tRtRt]! R R4      tR R lt]R R l4       t	R R	 lt
R
R/R R lltR R lt]R R l4       t]R
R/R R ll4       tRtR# )r_   iY  a%  
Similar to CompiledArtifact, but the object is a single, bundled precompiled function.
This object is always a serializable callable function.

This object is essentially a wrapper for BundledAOTAutogradSerializableCallable, which
is used by torch._dynamo.aot_compile for AOT Precompilation.
rV   c               ó   € V ^8„  d   QhRR/# )r"   r#   r$   r'   )r(   s   "r)   r*   Ú AOTCompiledArtifact.__annotate__d  s   € ÷ 
ñ 
à'ñ
r-   c                	ó4   € \        V4      V n        R V n        R # r/   )r   Úinner_fnr2   )r4   r#   s   &&r)   r5   ÚAOTCompiledArtifact.__init__d  s   € ô ?¸{ÓKˆŒàð 	Žr-   c               ó    € V ^8„  d   QhRRRR/# )r"   Ú
bundled_fnr   r;   r_   r'   )r(   s   "r)   r*   rè   n  s   € ÷ ;ñ ;Ø:ð;à	ñ;r-   c                	ó,   € \        V P                  4      # r/   )r_   r#   )rí   s   &r)   Úfrom_bundled_callableÚ)AOTCompiledArtifact.from_bundled_callablem  s   € ô # :×#9Ñ#9Ó:Ð:r-   c               ó    € V ^8„  d   QhRRRR/# r9   r'   )r(   s   "r)   r*   rè   s  s   € ÷ $ñ $˜cð $ cñ $r-   c                	ó"   € V P                   ! V!  # r/   )rê   r=   s   &*r)   r>   ÚAOTCompiledArtifact.__call__s  s   € Ø�}Š}˜dÑ#Ð#r-   r(   r@   c               ó$   € V ^8„  d   QhRRRRRR/# rB   r'   )r(   s   "r)   r*   rè   v  s$   € ÷ .ñ .Øð.Ø$Að.à	ñ.r-   c               	ó4  € VR 8X  d   \        R4      hT P                  4       p^ RIHp ^RIHp V! 4       pVP                  \        P                  4       VP                  V! 4       4       VP                  V4       ^ RI	H
p V! WP                  4       4       R# )rM   ú8AOTCompiledArtifact does not support unpacked format yetr”   rR   rŸ   N)ri   Ú	serializer[   r•   r\   rS   r–   r_   r`   r§   r    r˜   )r4   rC   r(   rl   r•   rS   r™   r    s   &$$     r)   rH   ÚAOTCompiledArtifact.savev  s~   € ð �ZÔÜØJóð ð —~‘~Ó'ˆÝFå(á“ˆØ×ÑÔ.×9Ñ9Ô:Ø×Ñ™9›;Ô'Ø×Ñ˜<Ô(å:ñ 	�TŸ?™?Ó,Ö-r-   c               ó   € V ^8„  d   QhRR/# r‘   r'   )r(   s   "r)   r*   rè   Œ  s   € ÷ 
ñ 
˜5ñ 
r-   c                	óB   € \         P                  ! V P                  4      # r/   )r   Úserialize_compile_artifactsrê   )r4   s   &r)   r÷   ÚAOTCompiledArtifact.serializeŒ  s   € Ü5×QÒQØ�M‰Mó
ð 	
r-   c               ó    € V ^8„  d   QhRRRR/# )r"   rl   r’   r;   r_   r'   )r(   s   "r)   r*   rè   ’  s   € ÷ 
Gñ 
G %ð 
GÐ,?ñ 
Gr-   c                	ó²   € \         P                  ! V 4      p\        V\         4      '       g   \        R \	        V4       24      h\
        P                  V4      # )z5expected BundledAOTAutogradSerializableCallable, got )r   Údeserialize_compile_artifactsÚ
isinstancerY   Útyper_   rï   )rl   Údeserializeds   & r)   rb   ÚAOTCompiledArtifact.deserialize‘  sZ   € ô 3×PÒPØóð 	ô
 ˜,Ô(N×OÒOÜ ØGÌÈ\ÓHZÐG[Ð\óð ô #×8Ñ8¸ÓFÐFr-   c               ó$   € V ^8„  d   QhRRRRRR/# rK   r'   )r(   s   "r)   r*   rè   Ÿ  s$   € ÷ =ñ =Øð=Ø;ð=à	ñ=r-   c                	ó
  € VR 8X  d   \        R4      h\        V R4      ;_uu_ 4       p^ RIHp ^RIHp VP                  4       pV! V4      pVP                  4       pV\        P                  8w  d   \        R4      hVP                  4       V! 4       8w  d   \        R4      hVP                  4       pVP                  4       '       g   \        R4      h\        P                  V4      uuRRR4       #   + '       g   i     R# ; i)	rM   rö   rO   rP   rR   z#expected AOTCompiledArtifact headerrT   rU   N)ri   rZ   r[   rQ   r\   rS   r]   r^   r_   r`   rY   ra   rb   )	rC   r(   rk   rQ   rS   rl   rm   rn   ro   s	   $$       r)   rX   ÚAOTCompiledArtifact.loadž  sÖ   € ð �ZÔÜØJóð ô �$˜×Ô ÝJå,àŸ9™9›;ˆLÙ  Ó.ˆFØ×&Ñ&Ó(ˆFØÔ,×7Ñ7Ô7Ü$Ð%JÓKÐKØ× Ñ Ó"¡i£kÔ1Ü$Ð%PÓQÐQØ×(Ñ(Ó*ˆHØ×%Ñ%×'Ò'Ü$Ð%EÓFÐFÜ&×2Ñ2°8Ó<÷ ××Óús   §BC1ÃC1Ã1D	)r2   rê   N)rt   ru   rv   rw   rx   r’   r`   r5   ry   rï   r>   rH   r÷   rb   rX   rz   r'   r-   r)   r_   r_   Y  sx   † ññ Ð,¨gÓ6€Jõ
ð ô;ó ð;õ
$ð.ØDL÷.õ,
ð
 ô
Gó ð
Gð ð=Ø>Fö=ó ô=r-   r_   c               ó   € V ^8„  d   QhRR/# )r"   Údynamic_shapesÚDynamicShapesTyper'   )r(   s   "r)   r*   r*   ¸  s   € ÷ 3ñ 3Ð.?ñ 3r-   c                ó   € V R 8H  # )Úfrom_example_inputsr'   )r  s   &r)   Ú_resolve_ignore_shape_envr  ¸  s   € ð Ð2Ñ2Ð2r-   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r"   Úgmr   r  r	  Ú	fake_modeúFakeTensorMode | Noner;   r   r'   )r(   s   "r)   r*   r*   ¾  s6   € ÷ I
ñ I
ØðI
à%ðI
ð %ðI
ð ñ	I
r-   c                óÔ  € VR 8X  d4   Ve   VP                   f   \        R4      hV# \        \        4       R7      # Ve   \        R4      hVR8X  dN   \        P
                  P                  P                  4       pVP                  f   \        R4      hVP                  # VR8X  Ed±   \        \        \        V P                  P                  4      4      4      pVP                  R8w  d   \        RVP                   24      h\!        VP"                  4      ^8w  d"   \        R	\!        VP"                  4       24      h\%        VP"                  ^ ,          \        P&                  P(                  4      '       d   VP"                  ^ ,          .MVP"                  ^ ,          pV Uu. uF1  p\%        V\        P&                  P(                  4      '       g   K/  VNK3  	  pp\*        P,                  ! WpP                  P                  4       F:  pR F1  p	\/        VP0                  P                  V	4      4      p
V
f   K-  V
u u # 	  K<  	  \        \        4       R7      # \        R
V R24      hu upi )r  zgstandalone_compile requires `fake_mode` to have a ShapeEnv when `dynamic_shapes="from_example_inputs"`.rÇ   zastandalone_compile only supports passing `fake_mode` when `dynamic_shapes="from_example_inputs"`.Úfrom_tracing_contextz0expected TracingContext.fake_mode to not be NoneÚ
from_graphÚoutputz'expected last node op == 'output', got z&expected last node to have 1 arg, got zJstandalone_compile got unsupported `dynamic_shapes` value: dynamic_shapes=Ú.)Úexample_valueÚval)rÈ   Ú
ValueErrorr   r   re   rÒ   rÓ   Úgetr  rY   ÚnextÚiterÚreversedr¸   ÚnodesÚopr†   r:   r   ÚfxÚNodeÚ	itertoolsÚchainr   Úmeta)r  r  r  rÚ   Ú	last_noder  ÚnÚoutput_nodesÚnoderp   Úmaybe_fake_modes   &&&        r)   Ú_resolve_fake_moder)  ¾  s  € ð
 Ð.Ô.ØÒ Ø×"Ñ"Ò*Ü ðCóð ð ÐÜ¬«
Ô3Ð3Ø	Ò	Üð6ó
ð 	
ð 
Ð1Ô	1ô —-‘-×.Ñ.×2Ñ2Ó4ˆØ×ÑÒ$Ü Ð!SÓTÐTØ× Ñ Ð Ø	˜<Õ	'ô
 œœh r§x¡x§~¡~Ó6Ó7Ó8ˆ	Ø�<‰<˜8Ô#Ü Ø9¸)¿,¹,¸ÐHóð ô ˆy�~‰~Ó !Ô#Ü Ø8¼¸Y¿^¹^Ó9LÐ8MÐNóð ô ˜)Ÿ.™.¨Õ+¬U¯X©X¯]©]×;Ò;ð �^‰^˜AÕÑà—‘ Õ"ð 	ñ $)ÓI¡5˜a¬J°q¼%¿(¹(¿-¹-×,HŸ˜¡5ˆÐIÜ—O’O L·(±(·.±.ÖAˆDÛ/�Ü"5°d·i±i·m±mÀCÓ6HÓ"I�Ø"Ô.Ø*Ô*ó 0ñ Bô ¬«
Ô3Ð3äØXÐYgÐXhÐhiÐjó
ð 	
ùò Js   Æ!,I%ÇI%c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r"   r  r   r  r	  Úaotr„   r  r  r'   )r(   s   "r)   r*   r*     s0   € ÷ ñ Øðà%ðð 
ðð %ñ	r-   c              #  ó€  "  € ^ RI Hp \        WV4      p\        P                  P                  V4      p\        P                  P                  V4      ;_uu_ 4        VP                  4       ;_uu_ 4        \        P                  ! RR4      ;_uu_ 4        \        P                  P                  P                  RVRR/4      ;_uu_ 4        Rx € RRR4       RRR4       RRR4       RRR4       R#   + '       g   i     L*; i  + '       g   i     L5; i  + '       g   i     L@; i  + '       g   i     R# ; i5i)r   ©ÚCacheArtifactManagerútriton.autotune_at_compile_timeTÚbundled_autograd_cacheÚ force_non_lazy_backward_loweringN)Útorch.compiler._cacher.  r)  re   rÒ   rÓ   rÔ   Úwith_fresh_cacher   rÍ   rÎ   )r  r  r+  r  r.  Úresolved_fake_modeÚtracing_contexts   &&&&   r)   Ú_standalone_contextr6  
  sÖ   é € õ ;ä+¨BÀ	ÓJÐÜ—m‘m×2Ñ2Ð3EÓF€Oä�‰×Ñ˜o×.Õ.Ø×-Ñ-×/Õ/Ü�ŠÐ6¸×=Õ=Ü×Ñ×Ñ×%Ñ%à(¨#ð
 3°Dð÷		
õ 		
ó 	÷		
÷ 	>÷ 	0÷ 	/Ñ.÷		
÷ 		
ú÷ 	>×=ú÷ 	0×/ú÷ 	/×.Ð.üsf   ‚AD>ÁD*Á4 D	Â6DÃ
C1ÃDÃD	ÃD*Ã'
D>Ã1DÃ<DÄDÄD	ÄD'Ä"D*Ä*D;	Ä5	D>r+  FÚdonate_graph_moduler  c               ó8   € V ^8„  d   QhRRRRRRRRR	R
RR
RRRR/# )r"   r  r   Úexample_inputsúSequence[InputType]r  r	  Úoptionsr   r+  r„   r7  r  r  r;   r   r'   )r(   s   "r)   r*   r*   '  sX   € ÷ 49ñ 49Øð49à'ð49ð &ð	49ð
 ð49ð 
ð49ð ð49ð %ð49ð ñ49r-   c          	     ó�  € ^RI H p \        V4      p\        WWF4      ;_uu_ 4        V'       g2   \        4       ;_uu_ 4        \        P
                  ! V 4      p RRR4       \        V 4      p \        V 4      p V! W3RV/VB p	\        V	4      '       g   \        R4      hV'       d3   \        V	R4      '       g   \        R4      h\        V	4      uuRRR4       # \        P                  P                  4       p
V
f   \         P#                  R4       RRR4       \%        X	X
4      #   + '       g   i     LÒ; i  + '       g   i     L/; i)z5
Implementation of torch.inductor.standalone_compile
©rÑ   NÚignore_shape_envz#expected compiled_fn to be callabler÷   z<Compiled function should have serialize method when aot=Truez‚standalone_compile artifact generation failed, cannot save. Run with TORCH_LOGS=+torch._inductor.codecache to identify the problem)rÑ   r  r6  r   ÚcopyÚdeepcopyr   r   ÚcallablerY   Úhasattrri   r_   re   rf   Úsave_cache_artifactsr²   ÚwarningrW   )r  r9  r  r;  r+  r7  r  rÑ   r>  r#   r%   s   &&$$$$$    r)   Ústandalone_compilerE  '  s  € õ 'ä0°Ó@ÐÜ	˜R°×	@Õ	@÷ #Ü?×AÕAÜ—]’] 2Ó&�÷ Bô 0°Ó3ˆÜ,¨RÓ0ˆÙ Øñ
Ø1Að
ØELñ
ˆô ˜×$Ò$Ü Ð!FÓGÐGßÜ˜;¨×4Ò4Ü"ØRóð ô ' {Ó3÷9 
AÒ	@ô: —N‘N×7Ñ7Ó9ˆ	ØÒÜ�K‰KðYô÷? 
AôH ! ¨iÓ8Ð8÷9 B×Aú÷ 
A×	@ús0   ¦D5ÁD"	ÁAD5Â%'D5Ã7D5Ä"D2Ä-D5Ä5E	c                  ó   € ] tR tRtRtRtR# )ÚNoRunnableInductorModuleErrori^  aE  Raised by ``compile_to_python`` when the graph yields no runnable Inductor
output module -- it has no compute to lower (returns inputs/constants unchanged),
so the compiled artifact carries no output-module source. Callers (e.g.
torch.compiler.precompile) convert this to a clear user-facing error suggesting an
alternative.
r'   N)rt   ru   rv   rw   rx   rz   r'   r-   r)   rG  rG  ^  s   † õr-   rG  c               ó    € V ^8„  d   QhRRRR/# )r"   Úcompiled_graphr   r;   rD   r'   )r(   s   "r)   r*   r*   g  s   € ÷ ñ  Zð °Cñ r-   c                óF   € \        V RR4      pV'       g   \        R4      hV# )ac  Return the Inductor output-module source for a compiled inner graph.

``compile_fx_inner`` returns a ``CompiledFxGraph`` that carries the wrapper-module
source as ``source_code``. A graph with no compute (returns inputs/constants
unchanged) short-circuits to a boxed passthrough with no such source, which we
surface as ``NoRunnableInductorModuleError``.
Úsource_codeNz€the compiled graph produced no runnable Inductor output module: it has no compute to lower (returns inputs/constants unchanged).)ÚgetattrrG  )rI  Úsources   & r)   Ú_runnable_sourcerN  g  s/   € ô �^ ]°DÓ9€FßÜ+ðEó
ð 	
ð €Mr-   c               ó    € V ^8„  d   QhRRRR/# )r"   r  r   r;   z	list[Any]r'   )r(   s   "r)   r*   r*   x  s   € ÷ ñ  ð °ñ r-   c                óæ   € . pV P                   P                   FT  pVP                  R8w  d   K  RVP                  9  d   \	        R4      hVP                  VP                  R,          4       KV  	  V# )aÛ  Return the fake ``val`` metadata of ``gm``'s placeholders -- the compile-time input
contract for a post-AOTAutograd graph. These fake tensors already carry the
AOTAutograd-decided static/symbolic shapes under one consistent ``FakeTensorMode``, so
lowering against them (rather than re-fakifying real ``example_inputs``) preserves
symbolic dims. A placeholder without ``val`` means ``gm`` was not traced under a
``FakeTensorMode``, violating the post-AOTAutograd precondition.Úplaceholderr  z|compile_to_python placeholder has no fake ``val`` metadata; expected a post-AOTAutograd graph traced under a FakeTensorMode.)r¸   r  r  r#  ri   Úappend)r  Úfake_inputsr'  s   &  r)   Ú_placeholder_fake_inputsrT  x  sj   € ð €KØ—‘—”ˆØ�7‰7�mÔ#ÙØ˜Ÿ	™	Ô!ÜðHóð ð 	×Ñ˜4Ÿ9™9 UÕ+Ö,ñ ð Ðr-   c               ó    € V ^8„  d   QhRRRR/# )r"   r%   r&   r;   úbytes | Noner'   )r(   s   "r)   r*   r*   Œ  s   € ÷ ñ Ø-ðàñr-   c                óD   € V f   \         P                  R4       R# V w  rV# )at  Return the opaque cache-artifacts bundle that accelerates a later ``load_from_python``,
or ``None`` when nothing cacheable was produced (no compute) or caches are disabled.

This is a PURE ACCELERATOR, not a serialized callable. It is the raw
``save_cache_artifacts()`` bundle (FxGraph entry + any triton/autotune cache);
``load_from_python`` feeds it to ``load_cache_artifacts`` so that exec'ing the emitted
``python_code`` loads the precompiled kernels instead of JIT-compiling them. The
``python_code`` runs correctly without it, so it carries no key/header framing -- it is
handed straight back to ``load_cache_artifacts``.
Nz2no cache artifacts captured; no acceleration cache)r²   Údebug)r%   rq   rˆ   s   &  r)   Ú_acceleration_cache_bytesrY  Œ  s(   € ð ÒÜ�	‰	ÐFÔGÙØ!Ñ€NØÐr-   c               ó$   € V ^8„  d   QhRRRRRR/# )r"   Úpython_coderD   ÚcacherV  r;   r$   r'   )r(   s   "r)   r*   r*      s$   € ÷ ñ ØðØ)ðàñr-   c                óÜ   € Ve    \         P                  P                  V4       RR/p\        \	        V RR4      V4       VP                  R4      p\        V4      '       g   \        R4      hV# )a  Load the module emitted by ``compile_to_python`` into a runnable ``call``.

``python_code`` is self-contained: exec'ing it defines ``call`` and JIT-compiles the
inlined kernels on first use, so it runs with ``cache=None``. When ``cache`` (the
accelerator bundle from ``compile_to_python``) is provided, it is loaded FIRST so the
kernels load their precompiled binaries instead of recompiling -- a pure speedup, never
a correctness requirement. Mirrors ``compile_to_python``: (python_code, cache) in,
runnable ``call`` out.
rt   Ú__compile_to_python__z<compile_to_python>ÚexecÚcallz<compile_to_python module did not define a callable ``call``.)re   rf   rg   r_  Úcompiler  rA  ri   )r[  r\  Ú	namespacer`  s   &&  r)   Úload_from_pythonrc     si   € ð ÒÜ�‰×+Ñ+¨EÔ2Ø!+Ð-DÐ E€IÜŒ�Ð3°VÓ	<¸iÔHØ�=‰=˜Ó €DÜ�D�>Š>ÜØJó
ð 	
ð €Kr-   r;  c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r"   r  r   r9  r:  r;  zdict[str, Any] | Noner;   ztuple[str, bytes | None]r'   )r(   s   "r)   r*   r*   ¸  s6   € ÷ fñ fØðfà'ðfð #ð	fð
 ñfr-   c               óÀ  € \        V \        P                  P                  4      '       g   \	        R\        V 4       R24      h^ RIHp VP                  '       g   VP                  '       d   \        R4      hRR/pVe   VP                  V4       TP                  RR	R
R	/4       ^ RIHpHpHp ^ RIHp ^RIHp	 ^RIHp
 \+        4       ;_uu_ 4        \,        P.                  ! V 4      p RRR4       \1        V 4      p \3        V 4      p \5        V 4      pV! V4      pVf   \        R4      h\        P6                  ! 4       ;_uu_ 4        \8        P:                  ! V4      ;_uu_ 4        \8        P:                  ! RR4      ;_uu_ 4        V! V! V4      4      ;_uu_ 4        V
P=                  V4      ;_uu_ 4        VP?                  4       ;_uu_ 4        V	! V VR\A        R	4      R\C        R4      R7      p\        PD                  PG                  4       pRRR4       RRR4       RRR4       RRR4       RRR4       RRR4       \I        X4      p\K        X4      pVV3#   + '       g   i     ELx; i  + '       g   i     Lf; i  + '       g   i     Lq; i  + '       g   i     L|; i  + '       g   i     L‡; i  + '       g   i     L’; i  + '       g   i     L�; i)a×  Compile ``gm`` and return ``(inner_python, cache)`` -- the INNER half of the
backend contract behind ``torch.compiler.precompile``.

This is an INTERNAL layered-contract entry point, not an end-user API. End users
should call ``torch.compiler.precompile``; this function only emits the inductor
piece of the artifact and assumes its caller (the AOT layer) wraps it. It lives in
``torch._inductor`` (a private, leading-underscore module), so it is exposed for
the AOT layer to import, not as a stable public surface.

``inner_python`` is the Inductor output module exposing ``call(args) -> outs``
for the post-AOTAutograd inner graph (dense, functionalized). It is the inductor
piece only: it carries NO prelude/epilogue (subclass flatten/unflatten, input-
mutation copy-back, output-alias regen, grad disabling). Those belong to the AOT
layer -- a companion change in ``torch._functorch.aot_autograd`` wraps this and
composes AOTAutograd's codegen'd runtime wrappers around the result.
Callers must run ``call`` under ``torch.no_grad()`` (the kernels use out= ops).

Caller preconditions (this layer does not re-derive them):

- ``gm`` is a post-AOTAutograd dense, functionalized inner graph (the dense
  forward/backward AOTAutograd hands to its inductor backend), NOT a raw Dynamo
  or pre-dispatch graph still carrying subclasses or autograd. Crucially it must be
  DECOMPOSED against the inductor decomposition table: this function drives the
  inductor codegen entry point directly, and inductor lowering asserts "both a
  fallback and a decomp for same op" on an undecomposed op (e.g. ``aten._softmax``).
- Placeholders carry fake ``val`` metadata (the graph was traced under a
  ``FakeTensorMode``); those fake tensors are the compile-time input contract.
- ``gm`` lowers to a runnable inductor output module. A graph with no compute
  raises ``NoRunnableInductorModuleError``.

The compile lowers against the placeholders' fake ``val`` metadata, whose
static/symbolic shapes AOTAutograd already resolved, so the graph is the source of
truth for shapes -- there is no ``dynamic_shapes`` knob. ``example_inputs`` is accepted
for the backend-contract signature but is not re-fakified for the compile itself.

``options`` is an optional inductor config-override dict (``None`` means no
overrides), the same shape as ``torch._inductor.compile``'s ``options``. The
keys are inductor config names: they are merged into the ``config.patch``
block this function already wraps the compile in, so they take effect as
config rather than being forwarded as ``compile_fx`` kwargs. The two
capture-critical pins below (``benchmark_harness``, ``cpp_wrapper``) always win
over a conflicting user option, since the source-capture contract depends on
them and a caller cannot be allowed to break the emitted module.

``inner_python`` is self-contained: exec'ing it JIT-compiles the inlined kernels on
first use, so it runs with no cache. ``cache`` is a PURE ACCELERATOR -- the opaque
``save_cache_artifacts()`` bundle; passing it to ``load_from_python`` warms the kernel
caches so exec loads the precompiled binaries instead of recompiling. It is ``None``
when the graph produced no cacheable module (no compute) or caches are disabled
(``force_disable_caches`` or ``fx_graph_cache=False``); ``inner_python`` still runs.

``inner_python`` is read off the ``CompiledFxGraph`` that ``compile_fx_inner``
returns -- Inductor stashes the wrapper-module source on it as ``source_code`` -- so
it reflects the FINAL selected module on a cold compile, a warm cache restore, or with
caches disabled. No process-global codegen hook is involved, and the throwaway
max_autotune benchmark lowerings (which compile to their own modules during
autotuning) never become the returned graph, so nothing needs to be filtered out.
zGcompile_to_python expects a post-AOTAutograd torch.fx.GraphModule, got zg. This is an internal entry point wrapped by a higher AOT layer and is not meant to be called directly.r=  zºcompile_to_python needs synchronous source capture and does not yet support TORCHINDUCTOR_FX_COMPILE_MODE=async+/progressive+ (the async output code does not surface the wrapper source).Úkeep_static_cubin_rawTNÚbenchmark_harnessFÚcpp_wrapper)Údetect_fake_moderÔ   rÓ   r-  )Úcompile_fx_inner)ÚVz„compile_to_python could not detect a FakeTensorMode on the graph's placeholders; expected a post-AOTAutograd graph traced under one.r/  )Ústatic_input_idxsrÅ   Úis_inferencerÆ   r'   )&r   re   r  r   Ú	TypeErrorr  Útorch._inductorrÑ   Úfx_compile_asyncÚfx_compile_progressiveri   ÚupdateÚtorch._guardsri  rÔ   rÓ   r2  r.  rj  Úvirtualizedrk  r   r?  r@  r   r   rT  Úno_gradr   rÍ   Úset_fake_moder3  r   r   rf   rC  rN  rY  )r  r9  r;  Ú_compile_fxÚconfig_patchesri  rÔ   rÓ   r.  rj  rk  rS  r  rI  r%   Úinner_pythonr\  s   &&$              r)   Úcompile_to_pythonrz  ¸  s7  € ô@ �bœ%Ÿ(™(×.Ñ.×/Ò/ÜðÜ˜“8�*ð <ð=ó
ð 	
õ :à×#×#Ð# {×'I×'IÐ'IÜð@ó
ð 	
ð" '>¸tÐ%D€NØÒØ×Ñ˜gÔ&Ø×Ñà Ø˜5ð	
ô÷  HÑGÝ:å,Ýô 
8×	9Õ	9Ü�]Š]˜2Óˆ÷ 
:ä	+¨BÓ	/€BÜ	(¨Ó	,€Bô +¨2Ó.€KÙ  Ó-€IØÒÜðPó
ð 	
ô 	�Š��Ü�Š�^×$Õ$Ü�ŠÐ6¸×=Õ=Ù‘˜yÓ)×*Õ*Ø	�‰˜	×"Õ"Ø×-Ñ-×/Õ/á)ØØØ Ü  Ó'ØÜ'7¸Ó'=ô
ˆô —N‘N×7Ñ7Ó9ˆ	÷ 	0÷ 	#÷ 	+÷ 	>÷ 	%÷ 	ô  $ NÓ3€LÜ% iÓ0€EØ˜ÐÐ÷O 
:×	9Ð	9ú÷4 	0×/ú÷ 	#×"ú÷ 	+×*ú÷ 	>×=ú÷ 	%×$ú÷ 	�ús�   ÃIÅKÅ' J:	ÆJ'ÆJÆ8JÇ?I.ÈJÈJÈ J'È(J:	È0KÉI+	É.I>É9JÊJÊJÊJ$ÊJ'Ê'J7Ê2J:	Ê:K
ËKËK	c               ó$   € V ^8„  d   QhRRRRRR/# )r"   r  r	  r+  r„   r  r  r'   )r(   s   "r)   r*   r*   a  s*   € ÷ 
ñ 
ð &ð
ð 
ð	
ð
 %ñ
r-   c                ó²   € ^RI Hp \        V4      p\        WW44      ;_uu_ 4        VP	                  V VVR7      uuRRR4       #   + '       g   i     R# ; i)é   r=  )r>  N)Ú rÑ   r  r6  Úautograd_cache_key)r¸   r9  r  r+  r  rÑ   r>  s   &&&&&  r)   r  r  a  sK   € õ ä0°Ó@ÐÜ	˜U°C×	CÕ	CØ×,Ñ,ØØØ-ð -ó 
÷ 
D×	C×	CÓ	Cús   ¦AÁA	)r  r  r  r/   )FN)JÚ
__future__r   Ú
contextlibr?  r!  Úloggingr¥   r°   r©   Úabcr   r   r   r   Útypingr   r	   r
   r	  Útorch.fxre   Útorch._dynamo.aot_compile_typesr   Útorch._dynamo.utilsr   Útorch._inductor.cpp_builderr   Útorch._inductor.cudagraph_utilsr   Ú'torch._inductor.runtime.cache_dir_utilsr   Útorch._inductor.utilsr   r   Útorch._subclassesr   Útorch._subclasses.fake_tensorr   Ú%torch.fx.experimental.symbolic_shapesr   Útorch.fx.graph_moduler   r~  r   Ú_functionalize_collectivesr   r   Úcollections.abcr   r   r2  r   r   Úoutput_coder   Ú	getLoggerrt   r²   r   rW   r_   r  r)  Úcontextmanagerr6  rE  ri   rG  rN  rT  rY  rc  rz  r  r'   r-   r)   Ú<module>r•     s:  ðÝ "ã Û Û Û Û 	Û Û ß #ß :ß .Ñ .ð ÐWÕXÐ ã Ý RÝ ,Ý @Ý <Ý Gß 6Ý ,Ý =Ý :Ý På ÷÷ ß2å/Ý$å'ð ×Ò˜Ó!€ôI�sô IôXZDÐ,ô ZDôz\=Ð*ô \=õ~3÷I
ðX ×Ñöó ðð849ð ð49ð !&ð49ð (,÷49ôn Lô õõ"õ(÷(ð0fð &*÷	f÷R
ñ 
r-   