ó
    Eñi’X ã                  ó¦
  • % S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKrSSKJr  SSKJr  SSKJrJ r J!r!J"r"  SSKJ#r#J$r$J%r%J&r&J'r'  SSK(J)r)  SS	KJ*r*  SSK+r+SSK,r+SS
K-J.r.  SSK/J0r0  SSK1J2r2  SSK3J4r4  SSK5J6r6J7r7J8r8J9r9  SSK,J:r:  SSK;J<r<J=r=J>r>  SSK?J@r@  SSKAJBrBJCrC  SSKDJErF  SSKGJHrH  SSKIJJrJ  SSKKJLrL  SSKMJNrNJOrOJPrP  SSKQJRrRJSrS  SSKTJUrUJVrVJWrWJXrXJYrY  SSKZJ[r[  SSK\J]r]J^r^  SSK_J`r`JaraJbrbJcrcJdrd  SSKeJfrfJgrgJhrhJiri  SSKjJkrkJlrlJmrmJnrnJoroJprpJqrq  SS KWJrrrJsrsJtrtJuruJvrvJwrwJxrxJyryJzrzJ{r{J|r|J}r}  SS!K~Jr  SS"K€J�r�J‚r‚Jƒrƒ  SS#K„J…r…  SS$K†J‡r‡Jˆrˆ  SS%K‰JŠrŠJ‹r‹JŒrŒ  SS&K�JŽrŽ  SS'K�J�r�  SS(K‘J’r’J“r“J”r”J•r•J–r–  SS)KYJ—r—  SS*KJ˜r˜J™r™JšršJ›r›  SS+KœJ�r�JžržJŸrŸJ r J¡r¡J¢r¢J£r£J¤r¤J¥r¥J¦r¦J§r§J¨r¨J©r©JªrªJ«r«J¬r¬J­r­J®r®J¯r¯J°r°J±r±J²r²  SS,K³J´r´  S-\µS.'    SSK¶r·\GRr                  (       a.  SS/KºJ»r»  SS0K¼J½r½  SS1KZJ¾r¾  SS2K¿JÀrÀ  SS3KÁJÂrÂ  SS4KJÃrÃJÄrÄJÅrÅ  SS5KÆJÇrÇ  \GR�                  " \É5      rÊ\+GR–                  GR™                  \ÉS65      rÍ\+GR–                  GR™                  \ÉS75      rÎ\GRž                  " 5       rÐ\&" S85      rÑ\)" S95      rÒ " S: S;5      rÓ    SzS< jrÔ " S= S>5      rÕ\Õ" 5       rÖ\Õ" 5       r×SqØS?\µS@'   \GR²                  " \F5       S{       S|SA jj5       rÚS}S~SB jjrÛSSC jrÜ\qGRº                  S€SD j5       rÞ  S�         S‚SF jjrßSqà\GRÂ                  " 5       râSG\µSH'   SƒSI jrãSƒSJ jrä\ " SK SL5      5       rå    S„SM jræ " SN SO5      rç    S…           S†SQ jjrèSSRKJéré  SSSKêJërë  \é" 5       rìST\µSU'   S‡SV jrí\ÜSESSSSSW.                                 SˆSX jj5       rî\ " SY SZ5      5       rï\ " S[ S\5      5       rð\" SPS]9 " S^ S_5      5       rñ\ " S` Sa5      5       rò\ " Sb Sc5      5       róS‰Sd jrôSŠSe jrõ S{       S‹Sg jjrö S{SSESh.           SŒSi jjjr÷\ " Sj Sf5      5       røSSESh.       S�Sk jjrùSŽSm jrúSESSSSSW.                           S�Sn jjrû  S�SSSSo.                                     S‘Sp jjjrü " Sq Sr5      rý S{       S’Ss jjrþS“St jrÿS”Su jGr  " Sv Sl\GR                  5      Gr " Sw Sx5      Gr      S•Sy jGrg! \¸ a    Sr· GNEf = f)–aÖ  
This module implements TorchDynamo's core frame conversion functionality, transforming Python
frames into FX graphs. It handles:

- Frame analysis and bytecode transformation
- Guard creation and management for dynamic behaviors
- Cache management for recompilation
- Error handling and fallback mechanisms

Key classes:
- ConvertFrame: Main entry point for frame conversion with error handling
- ConvertFrameAssert: Implements core frame to graph conversion logic
- Tracker: Tracks input/output code objects during conversion
- CatchErrorsWrapper: Provides error handling and suppression logic

The conversion process preserves program semantics while enabling optimizations
through torch.compile() and related systems.

NOTE: _torchdynamo_orig_backend is used for convert frame wrappers to identify the inner wrapped function.
By going down the _torchdynamo_orig_backend chain, one can recover the original unwrapped backend,
which is checked for during the Dynamo cache lookup.
é    )ÚannotationsN)Ú	dataclass)ÚPath)ÚCellTypeÚCodeTypeÚFunctionTypeÚ
ModuleType)ÚAnyÚNoReturnÚOptionalÚTypeVarÚUnion)Ú	ParamSpec)ÚReferenceType)ÚGlobalStateGuard)ÚCallbackTrigger)Úget_compile_pg)ÚTensorifyState)Úcompile_contextÚCompileContextÚ	CompileIdÚtracing)Ú
structured)Úcompile_time_strobelight_metaÚ#maybe_upload_prof_stats_to_manifoldÚsignpost_event)Ú_use_lazy_graph_module)ÚConstraintViolationErrorÚGuardOnDataDependentSymNode)Ú_forward_from_src)Ú_WaitCounter)ÚDistributedDataParallel)Ú
OrderedSet)Ú_disable_current_modesÚ any_torch_dispatch_mode_on_stackÚ/is_in_any_mode_without_ignore_compile_internals)ÚCapturedTracebackÚformat_traceback_shorté   )ÚconfigÚ
decoratorsÚexcÚgraph_break_hintsÚtrace_rules)Ú_is_registered_backend)Úremove_dead_codeÚremove_pointless_jumps)Ú check_inst_exn_tab_entries_validÚInstructionÚis_generatorÚ propagate_inst_exn_table_entriesÚtransform_code_object)ÚCacheSizeRelevantForFrameÚcompute_cache_sizeÚexceeds_recompile_limitÚis_recompilation)Úalways_optimize_code_objectsÚ
ConstraintÚ
dynamo_tlsÚinnermost_backendÚinnermost_fnÚ	skip_codeÚTorchPatcher)Úaugment_exc_messageÚBackendCompilerFailedÚFailOnRecompileLimitHitÚformat_error_msgÚInternalTorchDynamoErrorÚPackageErrorÚResumePrologueTracingErrorÚShortenTracebackÚTorchRuntimeErrorÚUncapturedHigherOrderOpErrorÚunimplementedÚUnsupported)Úreset_user_object_tracking)ÚCheckFunctionManagerÚ'get_and_maybe_log_recompilation_reasonsÚGuardedCode)ÚHooks)ÚDynamoTracerOutputÚOutputGraphCommon)Ú_log_size_mismatch_recompileÚlog_frame_dynamic_whitelistÚput_code_state)ÚExecutionRecord)ÚTORCH_DYNAMO_RESUME_IN_PREFIX)ÚDistributedStateÚExceptionStackÚInstructionTranslatorÚ
LocalStateÚSpeculationLog)Úis_numpy)ÚConvertFrameReturnÚFrameActionÚFrameExecStrategyÚwrap_guarded_code)Ú_get_error_on_graph_breakÚchromium_event_timedÚCleanupManagerÚCompileTimeInstructionCounterÚcountersÚdynamo_timedÚformat_bytecodeÚgen_record_file_nameÚ#get_hook_for_recompile_user_contextÚget_metrics_contextÚincrement_frameÚis_namedtupleÚistypeÚ
LazyStringÚmaybe_disable_inference_modeÚ*maybe_disable_inference_mode_for_fake_propÚorig_code_mapÚreset_graph_break_dup_checkerÚsetup_compile_debugÚ	to_int_usÚtroubleshooting_urlÚwrite_record_to_file)Ú#torch_function_mode_stack_state_mgrzOptional[ModuleType]Únp)ÚCallable)ÚWeakIdKeyDictionary)Ú
CompilerFn)ÚCompilePackage)ÚWrapBackendDebug)ÚBytecodeHookÚ
CacheEntryÚDynamoFrameType)ÚFrameStateSizeEntryÚbytecodeÚgraph_breaksÚ_TÚ_Pc                  ó   • \ rS rSrSrg)ÚTODO_UNKNOWNéÎ   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__rŒ   ó    ÚX/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_dynamo/convert_frame.pyrŠ   rŠ   Î   s   † Úr’   rŠ   c                ó´   • U c  gU R                   R                  R                  nUR                  R	                  5         UR
                  R	                  5         g)z:Clear WeakIdRef entries from a FakeTensorMode's describer.N)Úfake_tensor_converterÚmeta_converterÚ	describerÚlookup_tensorÚclearÚlookup_storage)Ú	fake_moder—   s     r“   Ú_clear_fake_mode_weakrefsrœ   Ò   sH   € ð ÑØØ×/Ñ/×>Ñ>×HÑH€IØ×Ñ×!Ñ!Ô#Ø×Ñ×"Ñ"Õ$r’   c                  ó<   • \ rS rSrSS jrS	S jrS
S jrSS jrSrg)ÚTrackeréÝ   c                ó0   • / U l         [        5       U l        g ©N)ÚseenÚsetÚseen_ids©Úselfs    r“   Ú__init__ÚTracker.__init__Þ   s   € Ø35ˆŒ	Ü"%£%ˆ�r’   c                óä   ^ ^• [        U5      mTT R                  ;  aS  [        R                  " UUU 4S j5      nT R                  R                  U5        T R                  R                  T5        g g )Nc                ó:   >• TR                   R                  T5      $ r¡   )r¤   Úremove)Ú_Úidxr¦   s    €€r“   Ú<lambda>ÚTracker.add.<locals>.<lambda>å   s   ø€ °D·M±M×4HÑ4HÈÔ4Mr’   )Úidr¤   ÚweakrefÚrefr¢   ÚappendÚadd)r¦   Ú
strong_objÚobjr­   s   `  @r“   r´   ÚTracker.addâ   sR   ù€ Ü�‹nˆØ�d—m‘mÓ#Ü—+’+˜jÕ*MÓNˆCØ�I‰I×Ñ˜SÔ!Ø�M‰M×Ñ˜cÕ"ð $r’   c                ó2   • [        U5      U R                  ;   $ r¡   )r°   r¤   )r¦   Úitems     r“   Ú__contains__ÚTracker.__contains__é   s   € Ü�$‹x˜4Ÿ=™=Ñ(Ð(r’   c                ól   • U R                   R                  5         U R                  R                  5         g r¡   )r¢   r™   r¤   r¥   s    r“   r™   ÚTracker.clearì   s    € Ø�	‰	�‰ÔØ�‰×ÑÕr’   )r¢   r¤   N©ÚreturnÚNone)rµ   r   r¿   rÀ   )r¹   r   r¿   Úbool)	r�   rŽ   r�   r�   r§   r´   rº   r™   r‘   rŒ   r’   r“   rž   rž   Ý   s   † ô(ô#ô)÷r’   rž   zOptional[GlobalStateGuard]Úinitial_global_statec                óH   • [        XU5      n[        UR                  5        U$ r¡   )Úoriginal_forward_from_srcr@   Ú__code__)ÚsrcÚglobalsÚ	co_fieldsÚresults       r“   Úfx_forward_from_src_skip_resultrÊ   ÷   s!   € ô ' s°YÓ?€FÜˆf�o‰oÔØ€Mr’   c           	     ó°  ^^• [         R                  " [        5      m[        R                  " SU-   S9R                  5       n[         R                  " U5      n[        [        R                  " U4S jU5      5      U R                  U R                  [         R                  " U R                  5      S./-   m[        R                  R                  SU4S j5        U Vs/ s H>  nUR                   T:w  d  M  SUR"                   SUR$                   S	UR                    3PM@     snSU R                   SU R                   S	U R                   3/-   nU$ s  snf )
Né   ©Úskipc                ó   >• U S   T:g  $ )NÚfilenamerŒ   )ÚfÚconvert_frame_interns    €r“   r®   Ú"log_dynamo_start.<locals>.<lambda>	  s   ø€ �a˜
‘mÐ';Ò;r’   )ÚlineÚnamerÐ   Údynamo_startc                 ó   >• ST 0$ )NÚstackrŒ   )rØ   s   €r“   r®   rÓ     s
   ø€ �˜%Ñ r’   zLine: z, Name: z, Filename: )r   Úintern_stringÚ__file__r'   ÚextractÚsummaryÚfrom_tracebackÚlistÚ	itertoolsÚ	takewhileÚco_firstlinenoÚco_nameÚco_filenameÚtorchÚ_loggingÚtrace_structuredrÐ   ÚlinenorÕ   )ÚcoderÎ   Úcaptured_tbÚframes_internedÚframeÚstack_stringsrÒ   rØ   s         @@r“   Úlog_dynamo_startrí     s>  ù€ Ü%×3Ò3´HÓ=ÐÜ#×+Ò+°°T±Ñ:×BÑBÓD€KÜ ×/Ò/°Ó<€OäÜ×ÒÜ;Øó	
óð ×'Ñ'Ø—L‘LÜ"×0Ò0°×1AÑ1AÓBñ	
ð	ñ€Eô 
‡N�N×#Ñ#ØÜ ôñ !óâ ˆEØ�>‰>Ð1Ñ1ó 	Pˆ&�—‘�˜h u§z¡z l°,¸u¿~¹~Ð>NÓOÙ ñð
 �×$Ñ$Ð% X¨d¯l©l¨^¸<È×HXÑHXÐGYÐZð	ñ	€Mð Ðùòs   ÃEÃ6-Ec                óX   ^ • [         R                  " T 5      SU 4S jj5       nT Ul        U$ )zÒ
Context manager to:
    1) Save/restore torch.is_grad_enabled() state
    2) Save/restore python random state
    3) Save/restore torch random state
    4) Monkey patch torch.fx.graph_module._forward_from_src
c                 ón  >• [        5       n[        R                  " 5       n[        R                  R	                  5          [        5          [        5          [        R                  " 5       n[        R                  " 5       n[        R                  " 5       n[        R                  R                  5       n[        R                  " 5       n[        R                  " 5       n	[        R                  R                  5       n
S n[        R                  R!                  5       (       aE  [        R                  R#                  5          [        R                  R                  5       nS S S 5        [        R                  R%                  SS5      n[        R&                  R(                  R*                  n[,        [        R&                  R(                  l        [/        5       n[0        R2                  " 5       nUR5                  [        R&                  R6                  R9                  5       5        UR5                  [:        5        [=        5          T" U 0 UD6UR?                  5         [        R                  RA                  5       S:X  d   S5       eUR?                  5         [        R                  RC                  U5        [        RD                  RF                  RI                  U5        [        RJ                  " XVS9  [        RL                  " U5        [        R                  RO                  U
5        [        RP                  " U	5        [        R                  R                  5       nUU:w  a  [        R                  RS                  5         UbF  [        R                  R#                  5          [        R                  RO                  U5        S S S 5        [        R                  RU                  SSU5        U[        R&                  R(                  l        URW                  5       (       d   SURY                  5        S35       esS S S 5        sS S S 5        sS S S 5        $ ! , (       d  f       GNø= f! , (       d  f       Nª= f! UR?                  5         [        R                  RA                  5       S:X  d   S5       eUR?                  5         [        R                  RC                  U5        [        RD                  RF                  RI                  U5        [        RJ                  " XVS9  [        RL                  " U5        [        R                  RO                  U
5        [        RP                  " U	5        [        R                  R                  5       nUU:w  a  [        R                  RS                  5         UbX  [        R                  R#                  5          [        R                  RO                  U5        S S S 5        O! , (       d  f       O= f[        R                  RU                  SSU5        U[        R&                  R(                  l        URW                  5       (       d   SURY                  5        S35       ef = f! , (       d  f       O= f S S S 5        O! , (       d  f       O= fS S S 5        g ! , (       d  f       g = f)NÚcudaÚmatmulr   zQTorch function mode stack state changed while dynamo tracing, please report a bug)Ú	warn_onlyzGlobal z7state changed while dynamo tracing, please report a bug)-r   rä   Úis_grad_enabledÚ_CÚ_PreserveDispatchKeyGuardrr   rs   Úis_inference_mode_enabledÚ$are_deterministic_algorithms_enabledÚ-is_deterministic_algorithms_warn_only_enabledÚ$_is_default_mobile_cpu_allocator_setÚrandomÚgetstateÚget_default_dtypeÚget_rng_staterð   Úis_availableÚDisableTorchFunctionÚ_get_fp32_precision_getterÚfxÚgraph_moduler    rÊ   rv   Ú
contextlibÚ	ExitStackÚenter_contextÚ_symbolic_traceÚ_maybe_revert_all_patchesrz   rN   ÚcloseÚ_len_torch_function_stackÚ_set_grad_enabledÚautogradÚ	grad_modeÚ_enter_inference_modeÚuse_deterministic_algorithmsÚsetstateÚset_rng_stateÚset_default_dtypeÚ#_unset_default_mobile_cpu_allocatorÚ_set_fp32_precision_setterÚcheckÚreason)ÚargsÚkwargsÚguardsÚprior_grad_modeÚprior_inference_modeÚprior_deterministicÚprior_warn_onlyÚprior_mobile_allocator_stateÚpy_rng_stateÚprior_dtypeÚtorch_rng_stateÚcuda_rng_stateÚcuda_matmul_fp32_precÚprior_fwd_from_srcÚcleanupÚ
exit_stackÚcurr_mobile_allocator_stateÚfns                    €r“   Ú_fnÚ"preserve_global_state.<locals>._fn-  s¡  ø€ ä!Ó#ˆÜ×/Ò/Ó1ˆô �H‰H×.Ñ.Õ0Ü(Õ*Ü6Õ8ä#(×#BÒ#BÓ#DÐ Ü"'×"LÒ"LÓ"NÐÜ#×QÒQÓSˆOä—‘×=Ñ=Ó?ð )ô "Ÿ?š?Ó,ˆLÜ×1Ò1Ó3ˆKÜ#Ÿl™l×8Ñ8Ó:ˆOØ!ˆNÜ�z‰z×&Ñ&×(Ñ(Ü—X‘X×2Ñ2Õ4Ü%*§Z¡Z×%=Ñ%=Ó%?�N÷ 5ä$)§H¡H×$GÑ$GØ˜ó%Ð!ô "'§¡×!6Ñ!6×!HÑ!HÐÜ6UŒE�H‰H×!Ñ!Ô3Ü)Ó+ˆGÜ#×-Ò-Ó/ˆJØ×$Ñ$Ü—‘×(Ñ(×BÑBÓDôð ×$Ñ$Ô%HÔIÜ&Ô(ðÙ˜4Ð* 6Ñ*à—‘”Ü—x‘x×9Ñ9Ó;¸qÓ@ð ØgóÐ@ð × Ñ Ô"Ü—‘×*Ñ*¨?Ô;Ü—‘×(Ñ(×>Ñ>Ð?SÔTÜ×2Ò2Ø'òô —’ Ô-Ü—‘×*Ñ*¨?Ô;Ü×'Ò'¨Ô4ä—H‘H×AÑAÓCð ,ð 0Ð3NÓNÜ—H‘H×@Ñ@ÔBØ!Ñ-ÜŸ™×6Ñ6Õ8ÜŸ
™
×0Ñ0°Ô@÷ 9ä—‘×3Ñ3Ø˜HÐ&;ôð ;M”—‘×%Ñ%Ô7Ø—|‘|—~‘~ð Ø˜fŸm™m›oÐ.Ð.eÐfó�~÷o 9Ð8÷ +Ð*÷ 1Ñ0÷ 5Ö4ú÷H 9Õ8ûð' —‘”Ü—x‘x×9Ñ9Ó;¸qÓ@ð ØgóÐ@ð × Ñ Ô"Ü—‘×*Ñ*¨?Ô;Ü—‘×(Ñ(×>Ñ>Ð?SÔTÜ×2Ò2Ø'òô —’ Ô-Ü—‘×*Ñ*¨?Ô;Ü×'Ò'¨Ô4ä—H‘H×AÑAÓCð ,ð 0Ð3NÓNÜ—H‘H×@Ñ@ÔBØ!Ñ-ÜŸ™×6Ñ6Õ8ÜŸ
™
×0Ñ0°Ô@÷ 9×8Ö8úä—‘×3Ñ3Ø˜HÐ&;ôð ;M”—‘×%Ñ%Ô7Ø—|‘|—~‘~ð Ø˜fŸm™m›oÐ.Ð.eÐfó‘~ú÷o 9Õ8úÐ8÷ +×*Ö*ú÷ 1×0Ö0ús§   ¿Z&Á
ZÁC)Y1Ä>Q	ÅC$Y1ÉQ1É	EY1Î Q Î<A6Y1Ð2	ZÐ;	Z&Ñ
QÑY1Ñ 
Q.Ñ*Y1Ñ1EY.	× W.×%	Y.	×.
W<×8A6Y.	Ù.Y1Ù1
Y?Ù;ZÚ	Z&Ú
Z	ÚZ&Ú&
Z4©r  z_P.argsr  z	_P.kwargsr¿   r‡   )Ú	functoolsÚwrapsÚ_torchdynamo_orig_backend)r'  r(  s   ` r“   Úpreserve_global_stater.  $  s2   ø€ ô ‡_‚_�RÓöDó ðDðL %'€CÔ!Ø€Jr’   c                óÈ  ^^• U R                   [        ;   a  gU R                   R                   H¢  nXR                  ;   d  M  U R                  U   n[	        U[
        5      (       a+  UR                  R                  S5      (       d	  U[        L a    g[        (       d  Mp  [        R                  (       d  M‡  U[        L d  [        U5      (       d  M¢    g   0 mSUU4S jjmU R                  R                  5        H  nT" U5      (       d  M    g   [        R!                  SU R                   R"                  U R                   R$                  U R                   R&                  5        g)z+Check if the frame has torch.* related bitsTztorch.c           	     ó  >^ • [        T 5      nUT;   a  TU   $ STU'   [        T [        R                  [        R                  R
                  45      (       d>  [        T [        5      (       a3  [        T [        R                  R
                  5      (       a
  STU'   TU   $ [        R                  (       aS  [        (       aH  [        T [        R                  5      (       d  [        T [        R                  5      (       a
  STU'   TU   $ [        T [        [        45      (       a  [!        U4S jT  5       5      TU'   TU   $ [        T ["        5      (       a6  [        T R%                  5       5      n[!        U4S jU 5       5      TU'   TU   $ [        T [&        [(        [*        [        S5      [,        45      (       a
  STU'   TU   $ [/        T 5      (       a9  [1        T S5      (       a(  [!        UU 4S jT R2                   5       5      TU'   TU   $ g)z)Recursively check if the obj has a tensorFTc              3  ó4   >#   • U  H  nT" U5      v •  M     g 7fr¡   rŒ   ©Ú.0ÚvÚ
has_tensors     €r“   Ú	<genexpr>Ú:has_tensor_in_frame.<locals>.has_tensor.<locals>.<genexpr>¡  s   øé € Ð">º#°Q¡:¨a§= =º#ùó   ƒc              3  ó4   >#   • U  H  nT" U5      v •  M     g 7fr¡   rŒ   r2  s     €r“   r6  r7  ¨  s   øé € Ð"Aº&°Q¡:¨a§= =º&ùr8  NÚ_fieldsc              3  óH   >#   • U  H  nT" [        TU5      5      v •  M     g 7fr¡   )Úgetattr)r3  r4  r5  r¶   s     €€r“   r6  r7  ®  s   øé € Ð"TÊÀ1¡:¬g°c¸1«o×#>Ð#>Êùs   ƒ")r°   Ú
isinstancerä   ÚTensorÚnnÚModulerp   ÚtypeÚ
issubclassr*   Útrace_numpyr{   ÚndarrayÚgenericrÞ   ÚtupleÚanyÚdictÚvaluesÚstrÚintÚfloatrÁ   ro   Úhasattrr:  )r¶   Úobj_idrI  r5  r¤   s   `  €€r“   r5  Ú'has_tensor_in_frame.<locals>.has_tensor�  s¢  ù€ ä�C“ˆØ�XÓØ˜FÑ#Ð#Ø ˆ�Ñä�cœEŸL™L¬%¯(©(¯/©/Ð:×;Ñ;Ü�3œ×Ñ¤*¨S´%·(±(·/±/×"BÑ"Bà#ˆH�VÑØ˜FÑ#Ð#ä××ß’Ü˜œRŸZ™Z×(Ñ(¬J°s¼B¿J¹J×,GÑ,Gà#ˆH�VÑØ˜FÑ#Ð#Ü�Cœ$¤˜×'Ñ'Ü"Ô">¹#Ó">Ó>ˆH�VÑØ˜FÑ#Ð#Ü�Cœ×Ñô ˜#Ÿ*™*›,Ó'ˆFÜ"Ô"A¹&Ó"AÓAˆH�VÑØ˜FÑ#Ð#Ü�Cœ#œs¤E¬4°«:´tÐ<×=Ñ=Ø$ˆH�VÑØ˜FÑ#Ð#Ü˜3×Ñ¤G¨C°×$;Ñ$;Ü"Õ"TÈÏÊÓ"TÓTˆH�VÑØ˜FÑ#Ð#ð r’   z0skipping because no torch.* %s             %s %sF)r¶   Úobjectr¿   rÁ   )Úf_coder;   Úco_namesÚ	f_globalsr=  r	   r�   Ú
startswithrä   r{   r*   rC  r_   Úf_localsrI  ÚlogÚdebugrâ   rã   rá   )rë   râ   r¶   Úvaluer5  r¤   s       @@r“   Úhas_tensor_in_framerY  x  s  ù€ ð ‡|�|Ô3Ó3Øð —<‘<×(Ô(ˆØ—o‘oÕ%Ø—/‘/ 'Ñ*ˆCÜ˜#œz×*Ñ*Ø—‘×'Ñ'¨×1Ñ1°S¼E²\áçŒr”f×(×(Ñ(¨c´Rªi¼8ÀC¿=»=Ùñ )ð !#€H÷(ð (ðV —‘×&Ñ&Ö(ˆÙ�e×ÓÙñ )ô ‡I�Ið	à�‰×ÑØ�‰× Ñ Ø�‰×#Ñ#ôð r’   Fc                óˆ   • S n[        U S5      (       a&  [        X5      n[        X@R                  5        X@l        [        XS9  g )NÚexec_record©Úexport)rM  rk   ry   r[  Úrecord_filenamerB   )Úerè   rë   r]  r^  s        r“   Úexception_handlerr`  Ç  s:   € ð €OÜˆq�-× Ñ Ü.¨qÓ7ˆÜ˜_¯m©mÔ<Ø+Ôä˜Ó)r’   z/typing.Counter[Union[int, FrameStateSizeEntry]]ÚFRAME_COMPILE_COUNTERc                óF   • [         R                  (       a  [        U 5      $ U $ r¡   )r*   ÚcprofileÚcprofile_wrapper)Úfuncs    r“   Úmaybe_cprofilerf  Ü  s   € Ü‡‡Ü Ó%Ð%Ø€Kr’   c                óJ   ^ • [         R                  " T 5      SU 4S jj5       nU$ )Nc                 ó&  >^• [         R                  " 5       nU(       d   S5       e[        [        R                  R                  [        R                  " 5       TR                   S[        U5      R                  SS5       S35      5      n[        R                  " 5       n [        R                  " 5       nUR                  " T/U Q70 UD6n[        R                  " 5       U-
  n[         R%                  STR                  UU5        [&        R(                  " U5      n UR+                  U5        [         R%                  S	U5        UR/                  S
5      n	 [0        R2                  " SSSSSS[        U5      /[0        R4                  S9 n
[0        R6                  " SSS[        U	5      /U
R8                  S9  [         R%                  SU	5        S S S 5        [G        [        U5      5      =m(       a$  [H        RJ                  RM                  SU4S j5        U$ ! [         a#    [         R#                  S5        SnT" U 0 UD6n GN]f = f! [,         a    [         R#                  SU5         GN:f = f! , (       d  f       N¦= f! [:         a‰    [         R%                  S5        UR=                  [&        R>                  R@                  5      RC                  S5        UR=                  [&        R>                  RD                  5      RC                  S5         GN;f = f)NzTrace id is Noner¬   Ú/z.profilezfailed to enable cProfiler   z7### Cprofile for %s trace id [%s] took %.3f seconds ###zCannot write to %szRaw profile at %sz.svgÚ	gprof2dotz-fÚpstatsz"--node-label=total-time-percentagez!--node-label=self-time-percentagez--node-label=total-time)ÚstdoutÚdotz-Tsvgz-o)Ústdinz Generated SVG from profile at %szxFailed to generate SVG from profile -- dumping stats instead.Try installing gprof2dot and dot for a better visualizationé   Úlinkc                 ó   >• ST S.$ )NÚcprofile_manifold_url)rÕ   ÚurlrŒ   )Úmanifold_links   €r“   r®   Ú;cprofile_wrapper.<locals>.profile_wrapper.<locals>.<lambda>&  s   ø€ Ð!8ÀÒOr’   )'r   Úcurrent_trace_idr   ÚosÚpathÚjoinÚtempfileÚ
gettempdirr�   rJ  ÚreplaceÚcProfileÚProfileÚtimeÚruncallÚ
ValueErrorrV  Ú	exceptionÚwarningrk  ÚStatsÚ
dump_statsÚOSErrorÚwith_suffixÚ
subprocessÚPopenÚPIPEÚ
check_callrl  ÚFileNotFoundErrorÚ
sort_statsÚSortKeyÚTIMEÚprint_statsÚ
CUMULATIVEr   rä   rå   ræ   )r  r  Útrace_idÚprofile_pathÚprofÚstart_tsÚretvalÚprofile_latencyÚpsÚsvg_pathÚgprof2dot_processrt  re  s              @€r“   Úprofile_wrapperÚ)cprofile_wrapper.<locals>.profile_wrapperã  s˜  ù€ ä!×2Ò2Ó4ˆÞÐ+Ð+Ó+ˆxÜÜ�G‰G�L‰LÜ×#Ò#Ó%Ø—=‘=�/ ¤3 x£=×#8Ñ#8¸¸cÓ#BÐ"CÀ8ÐLóó
ˆô ×ÒÓ!ˆð	+Ü—y’y“{ˆHð
 —\’\ $Ð8¨Ò8°Ñ8ˆFÜ"Ÿiši›k¨HÑ4ˆOô
 	�‰ØEØ�M‰MØØô		
ô �\Š\˜$Óˆð	>Ø�O‰O˜LÔ)ô 	�‰Ð'¨Ô6Ø×+Ñ+¨FÓ3ˆð	EÜ×!Ò!àØØØ8Ø7Ø-Ü˜Ó%ðô "—‘òð #Ü×%Ò%Ø˜G T¬3¨x«=Ð9Ø+×2Ñ2òô —‘Ð>ÀÔI÷!ô2 @Ü�Óó
ð 
ˆ=õ 
ô �N‰N×+Ñ+ØÜOôð ˆøôe ó 	+Ü�M‰MÐ5Ô6ØˆOÙ˜4Ð* 6Ñ*‹Fð	+ûô ó 	>Ü�M‰MÐ.°×=ð	>ú÷
õ ûô" !ó 	EÜ�K‰KðNôð �M‰Mœ&Ÿ.™.×-Ñ-Ó.×:Ñ:¸2Ô>Ø�M‰Mœ&Ÿ.™.×3Ñ3Ó4×@Ñ@À×Dð	EúsW   Â!AH ÄI Å3I= Æ	AI,ÇI= È)IÉIÉ I)É(I)É,
I:É6I= É:I= É=BLÌLr*  )r+  r,  )re  r›  s   ` r“   rd  rd  â  s)   ø€ Ü‡_‚_�TÓöDó ðDðL Ðr’   c                  ó$   • \ rS rSr% SrS\S'   Srg)ÚConvertFrameBoxi-  NzOptional[bool]Úerror_on_graph_breakrŒ   )r�   rŽ   r�   r�   rŸ  Ú__annotations__r‘   rŒ   r’   r“   rž  rž  -  s   ‡ à+/Ð˜.Ö/r’   rž  c                ó  • SU ;  a  [         U S'   [         S-  q U S   n[        U[        5      (       d   e[        U   n[        U==   S-  ss'   S n[        R
                  " 5       =n(       a  UR                  n[        UUUS9$ )NÚ_idr)   )Úcompiled_autograd_idÚframe_idÚframe_compile_id)ÚFRAME_COUNTERr=  rK  ra  r   Úcurrent_compile_idr£  r   )Úframe_stater¤  r¥  r£  Úpriors        r“   Úget_compile_idrª  2  s”   € ð �KÓÜ*ˆ�EÑÜ˜ÑˆØ˜5Ñ!€HÜ�h¤×$Ñ$Ð$Ð$ä,¨XÑ6ÐÜ˜(Ó# qÑ(Ó#àÐÜ×1Ò1Ó3Ð3€uÕ3Ø$×9Ñ9ÐÜØ1ØØ)ñð r’   c                  ó|   • \ rS rSr    S	           S
S jjr\SS j5       rSS.           SS jjrSrg)ÚConvertFrameAssertiI  Nc                ór   • [        5         Xl        X l        X0l        X@l        XPl        [        5       U l        g r¡   )ru   r-  Ú
_one_graphÚ_exportÚ_export_constraintsÚ_packagerž  Ú_box)r¦   Úcompiler_fnÚ	one_graphr]  Úexport_constraintsÚpackages         r“   r§   ÚConvertFrameAssert.__init__J  s/   € ô 	&Ô'Ø)4Ô&Ø#ŒØŒØ#5Ô ØŒÜ#Ó%ˆ�	r’   c                ó   ^ • U 4S j$ )Nc                ó\   >• [        U TR                  TR                  TR                  5      $ r¡   )Úconvert_frame_assertr®  r¯  r°  ©Úbackendr¦   s    €r“   r®   Ú8ConvertFrameAssert._clone_with_backend.<locals>.<lambda>]  s%   ø€ Ô3ØØ�O‰OØ�L‰LØ×$Ñ$ô	 
r’   rŒ   r¥   s   `r“   Ú_clone_with_backendÚ&ConvertFrameAssert._clone_with_backend[  s   ø€ ô
ð 	
r’   r   rÍ   c               ó4	  • [        5         UR                  n[        X5      n[        R	                  U5        U[
        ;   a
  [        5       $ [        R                  R                  S5      (       a7  [        R                  R                  S5      UR                  :w  a
  [        5       $ UR                  S:X  a*  UR                  R                  S5      (       a
  [        5       $ UR                  S:X  a
  [        5       $ UR                  S:X  a_  UR                  R                  [        R                  R                  [         R"                  R$                  5      5      (       a
  [        5       $ UR                  S:X  a  UR                  S:X  a
  [        5       $ UR                  S:X  a4  UR                  S:X  a$  ['        UR(                  5      (       d
  [        5       $ [+        U5      (       a  [-        S	S
SS/[.        R0                  QS9  [3        U5      (       d
  [        5       $ [4        R6                  " 5       nU(       aI  SUR                  R                  ;   a/  UR8                  nU(       a  SUR                  R                  ;   a  M/  U(       a&  UR                  [:        R<                  L a	  [        SS9$ [>        n	[A        5       q[C        U5      n
U
RD                  n[G        SSUR                  U[I        U
5      UR                  URJ                  URL                  URN                  S.5        UR                  R                  [P        5      (       dG  UR                   SUR                   SURJ                   3n[R        RT                  RW                  U5         [Y        [[        U
5      5         []        UR                  UR^                  UR`                  UR(                  URb                  U Rd                  U Rf                  U Rh                  U Rj                  UUUUUU
US-   U Rl                  U Rn                  S9nS S S 5        U	q[p        Rr                  (       a.  U Rl                  b!  SSK:J;n  URy                  U Rl                  5        W$ ! , (       d  f       NU= f! U	qf = f)NÚTORCHDYNAMO_DEBUG_FUNCTIONz	<genexpr>)ztransformers/file_utils.pyztransformers/utils/generic.pyzdiffusers/utils/outputs.pyÚ__setattr__r§   z<module>ú<string>z<lambda>zAttempt to trace generatorÚ z<Generators cannot be compiled directly with `torch.compile`.zbCall a generator from inside of a non-generator Python function and compile that function instead.©Úgb_typeÚcontextÚexplanationÚhintsztorch/_dynamo/convert_frame.pyF)Úapply_to_codeÚdynamoz_convert_frame_assert._compile)râ   r¤  Ú
compile_idrã   rá   Ú
cache_sizeÚaccumulated_cache_sizeÚ Ú:r)   )r¨  rÌ  rÎ   r¶  Úconvert_frame_box)ÚDynamoCache)=rn   rQ  r8   Úinput_codesr´   Úoutput_codesr`   rw  ÚenvironÚgetrâ   rã   ÚendswithrT  rx  Údirnamerä   ÚoptimrÚ   rÁ   Ú
f_builtinsr4   rL   r-   ÚFUNDAMENTALrY  ÚsysÚ	_getframeÚf_backr+   Ú"_nonrecursive_disable_wrapper_coderÂ   r   rª  r¤  r   rJ  rá   Ú+num_cache_entries_with_same_id_matched_objsÚnum_cache_entriesrY   r=   Útraced_frame_infosr³   r   r   Ú_compilerS  rU  Úclosurer-  r®  r¯  r°  r±  r²  r*   Úcaching_precompiler¶  rÒ  Úrecord_package)r¦   rë   Úcache_entryÚhooksr¨  rÎ   rè   rÍ  Ú
prev_frameÚprev_initial_global_staterÌ  r¤  ÚinforÉ   rÒ  s                  r“   Ú__call__ÚConvertFrameAssert.__call__d  s²  € ô 	ÔØ�|‰|ˆä'¨Ó;ˆ
Ü�‰˜ÔØ”<ÓÜ%Ó'Ð'ä�J‰J�N‰NÐ7×8Ñ8Ü—
‘
—‘Ð;Ó<ÀÇÁÓLä%Ó'Ð'Ø�<‰<˜;Ó&¨4×+;Ñ+;×+DÑ+Dð÷,
ñ ,
ô &Ó'Ð'Ø�<‰<˜=Ó(ô &Ó'Ð'Ø�<‰<˜:Ó%¨$×*:Ñ*:×*EÑ*EÜ�G‰G�O‰OœEŸK™K×0Ñ0Ó1÷+
ñ +
ô
 &Ó'Ð'ð
 �<‰<˜:Ó%¨$×*:Ñ*:¸jÓ*HÜ%Ó'Ð'ð �L‰L˜JÓ&Ø× Ñ  JÓ.Ü˜×)Ñ)×*Ñ*ô &Ó'Ð'ä˜×ÑÜØ4ØØZð5ðô '×2Ñ2ðò		ô # 5×)Ñ)Ü%Ó'Ð'ô —]’]“_ˆ
ö Ø0°J×4EÑ4E×4QÑ4QÓQà#×*Ñ*ˆJö Ø0°J×4EÑ4E×4QÑ4QÕQö Ø×!Ñ!¤Z×%RÑ%RÒRä%°EÑ:Ð:ô %9Ð!Ü/Ó1Ðä# KÓ0ˆ
Ø×&Ñ&ˆäØØ,àŸ<™<Ø$Ü! *›oØ#×/Ñ/Ø"&×"5Ñ"5Ø(×TÑTØ*4×*FÑ*Fñô	
ð �|‰|×&Ñ&Ô'D×EÑEØ—l‘l�^ 1 T×%5Ñ%5Ð$6°a¸×8KÑ8KÐ7LÐMˆDÜ×)Ñ)×0Ñ0°Ô6ð	=Ü ¤°
Ó!;Õ<Ü!Ø—L‘LØ—O‘OØ—N‘NØ×$Ñ$Ø—M‘MØ×2Ñ2Ø—O‘OØ—L‘LØ×,Ñ,ØØØØØ +Ø)Ø ™Ø ŸM™MØ&*§i¡iñ%�÷ =ð. $=Ð ä×$×$¨¯©Ñ)BÝ,ð ×&Ñ& t§}¡}Ô5Øˆ÷= =Õ<ûð. $=Ñ ús%   ÎR Î'BRÐ3R Ò
RÒR ÒR)r²  r¯  r°  r®  r±  r-  ©TFNN)r³  r~   r´  rÁ   r]  rÁ   rµ  ú
Any | Noner¶  zCompilePackage | Noner¿   rÀ   )r¿   z*Callable[[CompilerFn], ConvertFrameAssert]©rë   rƒ   rç  úOptional[CacheEntry]rè  rR   r¨  ú*dict[str, Union[int, FrameStateSizeEntry]]rÎ   rK  r¿   r`   ©	r�   rŽ   r�   r�   r§   Úpropertyr¾  rì  r‘   rŒ   r’   r“   r¬  r¬  I  sµ   † ð ØØ)-Ø)-ð&àð&ð ð&ð ð	&ð
 'ð&ð 'ð&ð 
õ&ð" ó
ó ð
ð ñRàðRð *ðRð ð	Rð
 @ðRð ðRð 
÷Rð Rr’   r¬  Tc                ó   • [        XX#U5      $ )zHFully convert a frame into an FX graph, raising an exception if we fail.)r¬  )r³  r´  r]  rµ  r¶  s        r“   rº  rº  ù  s   € ô Ø ¸Góð r’   )ÚOrderedDict)ÚRemovableHandlezdict[int, BytecodeHook]Ú_bytecode_hooksc                óJ   • [        [        5      nU [        UR                  '   U$ )z¶Register hooks for bytecode generated by Dynamo. The hook can do some
logging, as well as return a new code object to be used. Please refer
to `BytecodeHook` for the hook signature.
)r÷  rø  r°   )ÚhookÚhandles     r“   Úregister_bytecode_hookrü    s!   € ô
 œ_Ó-€FØ!%„O�F—I‘IÑØ€Mr’   ©r]  rµ  r¨  Údistributed_stater¶  c               óú  ^^^^• SSK JmJm  TR                  5         [	        5       n[        U	U UUUUUU
UUUUUTUUUS9mSUUUU4S jjn U" 5         [        T5      nUR                  nUc   eUR                  (       d   eUR                  U	S S & U
R                  UR                  5        [        U	5        [        U	5        [        [        U	5      5      U	S S & U$ ! [         a  n[        TSS9Ul        e S nAff = f)Nr   )ÚbisectÚtranslation_validation_enabled)r¨  Úspeculation_logÚexn_vt_stackrþ  r¶  c                 óÌ  >•  TR                   R                  5         [        TR                   R                  5         TR	                  5          TR                  5         S S S 5        S S S 5        TR                   R                  5         0 Tl        g ! , (       d  f       N8= f! , (       d  f       NA= f! [        R                   a    TR                  5         e [        R                  [        R                  [        R                  4 a    e [         a*    T" 5       (       a  T " TR                   R                  5        e f = f! TR                   R                  5         0 Tl        f = fr¡   )ÚoutputÚmark_bytecode_tracing_startr   Útracing_contextÚset_current_txÚrunr,   ÚUnspecializeRestartAnalysisr™   ÚSpeculationRestartAnalysisÚTensorifyScalarRestartAnalysisÚ	SkipFrameÚ	ExceptionÚ	shape_envÚcall_cleanup_hooksrU  )r   r  Útracerr  s   €€€€r“   Ú
run_tracerÚtrace_frame.<locals>.run_tracerH  sü   ø€ ð	!Ø�M‰M×5Ñ5Ô7Ü˜Ÿ™×6Ñ6Õ7¸×9NÑ9NÕ9PØ—
‘
”÷ :Q×7ð  �M‰M×,Ñ,Ô.Ø ˆF�O÷# :QÕ9Pú×7Õ7ûä×.Ñ.ó 	Ø×!Ñ!Ô#Øä×*Ñ*Ü×.Ñ.Ü�M‰Mð
ó 	ð
 Üó 	Ù-×/Ñ/Ù�v—}‘}×.Ñ.Ô/Øð	ûð
 �M‰M×,Ñ,Ô.Ø ˆF�OúsS   ƒ9B2 ¼B!ÁBÁB!Á&B2 Â
B	ÂB!Â!
B/Â+B2 Â.E  Â/B2 Â2BD=Ä=E  Å #E#T)Úerrorr¾   )Útorch.fx.experimental.validatorr   r  Úrestartr[   r\   rS   Úoutput_graphÚoutput_instructionsÚupdateÚcode_optionsr5   r2   r1   r0   r  Ú_torch_dynamo_tracer_output)rè   rÇ   ÚlocalsÚbuiltinsrä  r³  Útf_mode_stackr´  r  Úinstructionsr  r]  rµ  r¨  rþ  r¶  r  r  Útracer_outputr  r_  r   r  r  s           `            @@@r“   Útrace_framer!    s  û€ ÷( Wà×ÑÔÜ!Ó#€LÜ"ØØØØØØØØØØØØØØ'Ø!Ø+Øñ#€F÷(!ò !ð,ÙŒÜ*¨6Ó2ˆØ×+Ñ+ˆØÑ!Ð!Ð!Ø×)×)Ð)Ð)Ø ×4Ñ4ˆ‘QˆØ×Ñ˜F×/Ñ/Ô0Ü(¨Ô6Ü(¨Ô6Ü0Ô1AÀ,Ó1OÓPˆ‘Qˆð Ðøô ó Ü(:¸6ÈÑ(NˆÔ%Øûðús   ÁBC Ã
C:Ã%C5Ã5C:c                  ó€   • \ rS rSr% SrS\S'   S\S'   S\S'       S           SS
 jjr  S     SS jjrSrg	)ÚDynamoOutputio  aS  
Represents the core data returned from a single dynamo run, including:
  - Guards, wrapped inside tracer_output.output_graph.guards
  - Generated bytecode
  - Other information needed for compilation.
This data structure should capture all the "interesting" information dynamo
produces on the frontend side before it enters user backend.
rS   r   útypes.CodeTyper…   zOptional[float]Úlast_attempt_start_timeNc           
     ó¢   • U R                   R                  nUc   e[        UUUU(       a  UR                  OS U(       a  UR                  OS UUS9$ ©N)Úsave_guardsÚstrict_error)r   r  rO   Úguard_fail_fnÚguard_filter_fn)r¦   rè   rè  Úsaverç  r)  r  s          r“   Úbuild_guardsÚDynamoOutput.build_guards~  sW   € ð ×)Ñ)×6Ñ6ˆØÑ'Ð'Ð'Ü#ØØØÞ#(ˆE×Ò¨dÞ%*ˆE×!Ò!°ØØ%ñ
ð 	
r’   c           
     ón  • U R                   R                  nUc   e[        [        UR	                  5       UR
                  UR                  UR                  UR                  5      UR
                  UR                  U R                  U R                   R                  UUU R                   R                  5      $ r¡   )r   r  ÚGraphCaptureOutputrT   Údump_guards_stateÚimport_sourcesr  Úexport_metadataÚtracked_fakes_id_to_sourceÚtraced_coder…   rä  rS  )r¦   ÚargdefsÚ
kwdefaultsr  s       r“   Úgraph_capture_outputÚ!DynamoOutput.graph_capture_output’  s¥   € ð
 ×)Ñ)×6Ñ6ˆØÑ'Ð'Ð'Ü!ÜØ×.Ñ.Ó0Ø×+Ñ+Ø×&Ñ&Ø×,Ñ,Ø×7Ñ7óð ×'Ñ'Ø×$Ñ$Ø�M‰MØ×Ñ×&Ñ&ØØØ×Ñ×(Ñ(ó
ð 	
r’   rŒ   ©NFNF©rè   r$  rè  zOptional[Hooks]r,  rÁ   rç  rñ  r)  rÁ   r¿   rO   ©NN)r6  úOptional[tuple[Any, ...]]r7  úOptional[dict[str, Any]]r¿   r0  )	r�   rŽ   r�   r�   Ú__doc__r   r-  r8  r‘   rŒ   r’   r“   r#  r#  o  s–   ‡ ñð &Ó%ØÓØ,Ó,ð
 "&ØØ,0Ø"ð
àð
ð ð
ð ð	
ð
 *ð
ð ð
ð 
õ
ð, .2Ø/3ð
à*ð
ð -ð
ð 
÷	
ð 
r’   r#  c                  óL   • \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S\S'   Srg)ÚBackendInputi«  a  
Represents core data structure that dynamo will pass to a backend, including:
  - Graph module
  - Example inputs
  - The FakeTensorMode used for compiling graph.
This data structure should capture all the information dynamo produces
on for the user backend.
rJ  Ú
backend_idútorch.fx.GraphModuler  r
   Úexample_inputsz,torch._subclasses.fake_tensor.FakeTensorModer›   r}   Útensor_to_contextrŒ   N)r�   rŽ   r�   r�   r?  r   r‘   rŒ   r’   r“   rA  rA  «  s&   ‡ ñð ƒOØ&Ó&ØÓØ;Ó;Ø*Ö*r’   rA  )Úfrozenc                  óª   • \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S\S
'   SrS\S'   \R                  " \S9r	S\S'   SS.       SS jjr
SS jrSrg)ÚGraphRuntimeEnvi½  r$  r…   údict[str, str]r2  údict[str, Any]Úused_globalsr=  rä  r6  Nr>  r7  )Údefault_factoryúset[str]Úexternal_refs©Úextra_globalsc               ó¤  • U R                   R                  5        VVs0 s H  u  pEU[        R                  " U5      _M     nnn0 UEU R                  EU=(       d    0 EX0EnU R                  U5        [        R                  " U R                  UU R                  U R                  S9nU R                  (       a  U R                  Ul        U$ s  snnf )N)rä  r6  )r2  ÚitemsÚ	importlibÚimport_modulerK  Ú_check_external_refsÚtypesr   r…   rä  r6  r7  Ú__kwdefaults__)	r¦   rB  Úcompiled_fnrP  ÚaliasÚmodule_namer2  rS  r'  s	            r“   Úforward_callableÚ GraphRuntimeEnv.forward_callableÇ  sÓ   € ð '+×&9Ñ&9×&?Ñ&?Ô&Aô
â&AÑ"�ð ”9×*Ò*¨;Ó7Ò7Ù&Að 	ñ 
ð
Øð
à×Ñð
ð ×" ð
ð ñ	
ˆ	ð 	×!Ñ! )Ô,ä×ÒØ�M‰MØØ—L‘LØ—L‘Lñ	
ˆð �?�?Ø $§¡ˆBÔØˆ	ùó-
s   ž#Cc                óŠ   • / nU R                    H  nX1;  d  M
  UR                  U5        M     U(       a  [        SU S35      eg )Nz&Missing required external references: zM. Please load AOT compiled function with `f_globals=<enclosing global scope>`)rN  r³   ÚRuntimeError)r¦   rS  Úmissing_refsr²   s       r“   rU  Ú$GraphRuntimeEnv._check_external_refsæ  sV   € àˆØ×%Ô%ˆCØÕ#Ø×#Ñ# CÖ(ñ &ö ÜØ8¸¸ð G^ð ^óð ð r’   rŒ   )rB  rJ  rX  úCallable[..., Any]rP  r>  r¿   ra  )rS  rJ  r¿   rÀ   )r�   rŽ   r�   r�   r   r7  ÚdataclassesÚfieldr£   rN  r[  rU  r‘   rŒ   r’   r“   rH  rH  ½  su   ‡ àÓØ"Ó"Ø Ó Ø&Ó&Ø&Ó&Ø+/€JÐ(Ó/Ø)×/Ò/ÀÑD€M�8ÓDð 37ñàðð (ðð
 0ðð 
õ÷>r’   rH  c                  ó´   • \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   S\S'   S\S'       S           SS jjrSS jr\SS j5       r	Sr
g)r0  iô  z!
Minimal version of DynamoOutput
rT   r  rI  r2  zlist[CodeType]r5  r   r…   r=  rä  r6  r>  r7  rJ  rS  Nc           
     ó€   • [        UU R                  UU(       a  UR                  OS U(       a  UR                  OS UUS9$ r'  )rO   r  r*  r+  )r¦   rè   rè  r,  rç  r)  s         r“   r-  ÚGraphCaptureOutput.build_guards  s@   € ô $ØØ×ÑØÞ#(ˆE×Ò¨dÞ%*ˆE×!Ò!°ØØ%ñ
ð 	
r’   c           
     ó’  • SSK Jn  0 nU R                  R                  R                  R                  5        H2  nU" U5      nUc  M  X@R                  ;   d  M!  U R                  U   X$'   M4     U R                  U R                  5      n[        U R                  U R                  UU R                  U R                  U R                  US9$ )Nr   )Úget_global_source_name)r…   r2  rK  rä  r6  r7  rN  )Útorch._dynamo.sourcerh  r  r3  Úgraph_input_idx_to_local_sourcerI  rS  Ú_get_external_refsr…   rH  r2  rä  r6  r7  )r¦   rh  rK  ÚsourceÚglobal_namerN  s         r“   Úget_runtime_envÚ"GraphCaptureOutput.get_runtime_env  s±   € Ý?àˆð ×Ñ×.Ñ.×NÑN×UÑUÖWð á0°Ó8ˆKØÑ"ÙØŸn™nÕ,Ø,0¯N©N¸;Ñ,G�Ó)ñ Xð ×/Ñ/°·±Ó>ˆäØ—]‘]Ø×.Ñ.Ø%Ø—L‘LØ—L‘LØ—‘Ø'ñ
ð 	
r’   c                óT  • SS K n[        5       nUR                  " U 5       Hƒ  nUR                  S:X  a0  UR                  (       a  UR                  UR                  5        MA  MC  UR                  S:X  d  MU  UR                  (       d  Mh  UR                  UR                  5        M…     U$ )Nr   ÚLOAD_GLOBALÚ	LOAD_NAME)Údisr£   Úget_instructionsÚopnameÚargvalr´   )r…   rs  rN  Úinstructions       r“   rk  Ú%GraphCaptureOutput._get_external_refs/  s‹   € ãä"%£%ˆð ×/Ò/°Ö9ˆKà×!Ñ! ]Ó2Ø×%×%Ø!×%Ñ% k×&8Ñ&8Ö9ñ &ð ×#Ñ# {Õ2Ø×%×%Ñ%Ø!×%Ñ% k×&8Ñ&8Ö9ñ :ð Ðr’   rŒ   r:  r;  )r¿   rH  )r…   r$  r¿   rM  )r�   rŽ   r�   r�   r?  r   r-  rn  Ústaticmethodrk  r‘   rŒ   r’   r“   r0  r0  ô  sŸ   ‡ ñð $Ó#Ø"Ó"ØÓØÓØ&Ó&Ø&Ó&Ø(Ó(ØÓð
 "&ØØ,0Ø"ð
àð
ð ð
ð ð	
ð
 *ð
ð ð
ð 
õ
ô$
ð4 óó ór’   r0  c                  óL   • \ rS rSr% SrS\S'   S\S'   SSS.     SS	 jjrS
rg)ÚCaptureOutputiC  a°  
CaptureOutput should represent all the information produced from torch
compiler for a single graph capture. This intends to be consumed by
various compiler frontends so that we can share as much compiler internals
as possible and avoid great divergence between different stacks.
This data structure should eventually contain all the information compiler
produces as more refactors happens to converge different compiler
frontends.
r0  r8  zOptional[BackendInput]Úbackend_inputN)rX  rP  c               óà   • U R                   R                  5       nU R                  c   eU R                  R                  nU=(       d    U R                  R                  nUR                  UUUS9$ )NrO  )r8  rn  r|  rB  r  r[  )r¦   rX  rP  Úruntime_envrB  s        r“   r[  ÚCaptureOutput.forward_callableS  sr   € ð ×/Ñ/×?Ñ?ÓAˆØ×!Ñ!Ñ-Ð-Ð-Ø×'Ñ'×2Ñ2ˆ
à!×D T×%7Ñ%7×%DÑ%DˆØ×+Ñ+ØØØ'ð ,ð 
ð 	
r’   rŒ   )rX  zOptional[Callable[..., Any]]rP  r>  r¿   ra  )r�   rŽ   r�   r�   r?  r   r[  r‘   rŒ   r’   r“   r{  r{  C  sE   ‡ ñð -Ó,à)Ó)ð
 59Ø26ñ	
ð 2ð
ð 0ð	
ð
 
÷
ð 
r’   r{  c                óŒ  • SSK n[        U [        R                  R                  5      (       GaE  U R
                  n[        US5      (       a  UR                  nU R                  n[        US5      (       a  UR                  n[        U R                  5      S:X  Ga—  [        U R                  5      S:X  Ga}  [        [        R                  R                  R                  R                  5      S:X  GaA  [        [        R                  R                  R                  R                  5      S:X  Ga  [        U R                   5      S:X  aì  [        U R"                  5      S:X  aÓ  [        [        R                  R                  R                  R$                  5      S:X  a˜  [        [        R                  R                  R                  R&                  5      S:X  a]  U[        R                  R                  R
                  :w  a5  U[        R                  R                  R                  :X  a  U R
                  n OB[        U [        R(                  R*                  5      (       a  U R,                  n OU R                  n [        U S5      (       a  U R                  U R.                  4$ UR0                  " U 5      (       a  U S4$ [3        SU  35      e)z†
Utility function to get the function to trace, and optionally a bound self
object, from a callable (nn.Module, function, or method).
r   NÚ__self__zUnsupported model code type )Úinspectr=  rä   r?  r@  ÚforwardrM  Ú__func__rì  ÚlenÚ_forward_pre_hooksÚ_forward_hooksÚmodulesÚmoduleÚ_global_forward_pre_hooksÚ_global_forward_hooksÚ_backward_pre_hooksÚ_backward_hooksÚ_global_backward_pre_hooksÚ_global_backward_hooksr  ÚGraphModuleÚ
_call_implr�  Ú
isfunctionr^  )Úmodr‚  Úresolved_forwardÚresolved_calls       r“   Úget_traced_fnr–  e  sé  € ó
 ä�#”u—x‘x—‘×'Ò'ØŸ;™;ÐÜÐ# Z×0Ñ0à/×8Ñ8ÐàŸ™ˆÜ�= *×-Ñ-à)×2Ñ2ˆMô
 �×&Ñ&Ó'¨1Ô,Ü�C×&Ñ&Ó'¨1Ô,Ü”E—H‘H×$Ñ$×+Ñ+×EÑEÓFÈ!ÔKÜ”E—H‘H×$Ñ$×+Ñ+×AÑAÓBÀaÔGÜ�C×+Ñ+Ó,°Ó1Ü�C×'Ñ'Ó(¨AÓ-Ü”E—H‘H×$Ñ$×+Ñ+×FÑFÓGÈ1ÓLÜ”E—H‘H×$Ñ$×+Ñ+×BÑBÓCÀqÓHØ ¤E§H¡H§O¡O×$;Ñ$;Ó;Ø¤§¡§¡×!9Ñ!9Ó9ð —+‘+‰CÜ˜œUŸX™X×1Ñ1×2Ñ2Ø—.‘.‰Cà—,‘,ˆCäˆs�J×ÑØ�|‰|˜SŸ\™\Ð)Ð)Ø	×	Ò	˜C×	 Ñ	 Ø�DˆyÐäÐ9¸#¸Ð?Ó@Ð@r’   c                ó,   • [         R                  " U SS9$ )NF)Úfollow_wrapped)r‚  Ú	signature)r'  s    r“   Ú_get_signaturerš  —  s   € Ü×Ò˜R°Ñ6Ð6r’   Ú	FrameInfoc           
     ó~  • SSK n[        U 5      u  pEUb  U4U-   nUc  0 n[        U5      nUR                  " U0 UD6nUR	                  5         UR
                  nUR                  =(       d    Sn	UR                  R                  n
U
(       d  U	(       aS  [        U	5      [        U
5      :X  d   eUR                  [        X©5       VVs0 s H  u  p¼X¼R                  _M     snn5        [        UR                  UR                  UUR                  UR                  =(       d    SUR                   UR"                  S9$ s  snnf )zD
Create a frame to trace, given a model, args, and optional kwargs.
r   NrŒ   )rä  r6  r7  )r  r–  rš  ÚbindÚapply_defaultsÚ	argumentsÚ__closure__rÅ   Úco_freevarsr…  r  ÚzipÚcell_contentsr›  Ú__globals__Ú__dict__Ú__defaults__rW  )r“  r  r  r  r'  Úself_optr™  Úbound_argumentsrU  rä  ÚfreevarsrÕ   Úcells                r“   Ú
_get_framer«  ›  s  € ó ä  Ó%�L€BØÑØˆ{˜TÑ!ˆØ�~Øˆä˜rÓ"€IØ—n’n dÐ5¨fÑ5€OØ×"Ñ"Ô$Ø×(Ñ(€Hà�n‰n×" €GØ�{‰{×&Ñ&€HÞ–7Ü�7‹|œs 8›}Ó,Ð,Ð,Ø�‰Ü8;¸HÔ8NÔOÒ8N©*¨$ˆT×%Ñ%Ò%Ñ8NÒOô	
ô Ø
�‰Ø
�‰ØØ×ÑØ—‘×$ "Ø—‘Ø×$Ñ$ñð ùó Ps   ÃD9
©ÚconstraintsÚ _is_export_deprecated_do_not_usec               ó    • [        XU5      n[        [        [        0 5      5      5         [	        UUUS9sSSS5        $ ! , (       d  f       g= f)aI  
This API captures a full graph for a model, given example inputs to trace with.

Specifically, it takes a callable (nn.Module, method, or function), args, and
optional kwargs, and returns Dynamo-captured graph along with other important
compile-time information. This serves as the common graph-capture mechanism
for different torch compiler AOT frontends (e.g. AOT precompile, export).

Note that this API doesn't apply context managers like metrics context,
and the expectation is that the caller will apply them depending
on the use case.

The CaptureOutput is separated into two parts:
1. Frontend specific information, which includes:
    - guards
    - generated bytecode
    - other information tracked by OutputGraphCommon.
2. Backend specific information (indexed by unique backend id) such as:
    - fx graph
    - example inputs
r¬  N)r«  r   r   rª  Ú_fullgraph_capture_frame)r“  r  r  r­  r®  rë   s         r“   Úfullgraph_capturer±  Ã  s?   € ô: �s &Ó)€Eä	œ¬°rÓ(:Ó;Õ	<Ü'ØØ#Ø-Mñ
÷ 
=×	<×	<ús	   ª?¿
Ac                  ó\   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   Srg)r›  iê  r$  rè   údict[str, object]rÇ   r  r  útuple[CellType]rä  r=  r6  r>  r7  rŒ   N)r�   rŽ   r�   r�   r   r‘   rŒ   r’   r“   r›  r›  ê  s,   ‡ à
ÓØÓØÓØÓØÓØ&Ó&Ø(Ö(r’   c               ób  ^^• SSK Jm  S m      SUU4S jjn [        U R                  U R                  U R
                  U R                  U R                  UUUS[        5       S9
n[!        UR#                  U R$                  U R&                  5      T5      $ ! [        [        4 a‡  n[        U5        [        R                  (       a  e UnUR                  b6  UR                  R                  S 5        UR                  nUR                  b  M6  UR                  S 5      UR                  eS nAff = f)Nr   )ÚTracingContextc                óÞ   >• TR                  5       nUR                  nUR                  nUc   e[        U R                  S   [
        5      (       d   e[        U R                  S   XX45      mU $ )NrB  )rÖ  r›   rE  r=  ÚmetarJ  rA  )ÚgmrD  r  r›   rE  r¶  r|  s        €€r“   Úfullgraph_compilerÚ4_fullgraph_capture_frame.<locals>.fullgraph_compilerÿ  ss   ø€ ð )×,Ñ,Ó.ˆØ#×-Ñ-ˆ	Ø+×=Ñ=ÐØÑ$Ð$Ð$Ü˜"Ÿ'™' ,Ñ/´×5Ñ5Ð5Ð5Ü$Ø�G‰G�LÑ! 2°yó
ˆð ˆ	r’   T)r³  r]  rµ  r´  Úrestart_reasons)r¹  rC  rD  zlist[torch.Tensor]r¿   rC  )Útorch._guardsr¶  Úcompile_framerè   rÇ   r  r  rä  r£   rM   rK   rB   r*   ÚverboseÚ	__cause__Úwith_tracebackr{  r8  r6  r7  )	rë   r­  r®  rº  Údynamo_outputr_  Úcur_exnr¶  r|  s	          @@r“   r°  r°  õ  s  ù€ õ -à,0€MðØ ðØ2Dðà	÷ð ð6Ü%Ø�J‰JØ�M‰MØ�L‰LØ�N‰NØ�M‰Mà*Ø3Ø*ØÜ›Eñ
ˆô4 Ø×*Ñ*¨5¯=©=¸%×:JÑ:JÓKØóð øô Ô5Ð6ó 
6Ü˜AÔÜ�>�>Øà!"ˆØ×ÑÑ+Ø×Ñ×,Ñ,¨TÔ2Ø×'Ñ'ˆGð ×ÑÓ+ð ×Ñ˜tÓ$¨!¯+©+Ð5ûð
6ús   ›AB ÂD.Â'A$D)ÄD)Ä)D.ÚConvertFrameProtocolc                óX   ^ ^• [        T SS 5      nUb  U$ SS jmSU U4S jjnUT l        U$ )NÚ_dynamo_fail_callbackc                 ó   • [        S5      e)Nz¨Dynamo: expected not to compile nested code - this happens because a Dynamo callback was triggered and succeeded in compiling when running fullgraph=True compiled code.)r^  )r  r  s     r“   Úcompile_frame_errorÚ.get_fail_callback.<locals>.compile_frame_error4  s   € Üð9ó
ð 	
r’   c                 ó†   >• [         R                  " [        S-   T5         T" U 0 UD6sS S S 5        $ ! , (       d  f       g = f)Nz.compile_frame)ÚmockÚpatchr�   )r  r  ÚcallbackrÈ  s     €€r“   Úfail_callbackÚ(get_fail_callback.<locals>.fail_callback;  s2   ø€ Ü�ZŠZœÐ#3Ñ3Ð5HÕIÙ˜TÐ, VÑ,÷ J×I×Iús	    2²
A )r  r
   r  r
   r¿   r   )r  r
   r  r
   r¿   r`   )r<  rÆ  )rÍ  rÎ  rÈ  s   ` @r“   Úget_fail_callbackrÐ  /  s=   ù€ Ü˜HÐ&=¸tÓD€MØÑ ØÐô
÷-ð -ð
 &3€HÔ"ØÐr’   c               óÐ  ^ ^^^^^^^^	^
^^^• [        5       m      SUUU UUUU	U
UUUUU4S jjnSn[        R                  " 5        HT  nU[        R                  " 5       l         [        SU 3SS9   [        T U5      u  nnUc   e[        UUUS9sSSS5        s  $    g! , (       d  f       Mh  = f! [        R                   aö  n[        U[        R                  5      (       d  [        R                  " 5         [        R!                  S[#        [$        UR&                  5      5        [)        USS5      nU(       a  UR+                  5         UR-                  UR.                  =(       d    [1        [3        U5      5      5        [4        R4                  " 5       nUS	:”  a  [7        S
SS/ S9   SnAGMi   SnAGMp  SnAf[        R8                   a•  n[        U[        R                  5      (       d  [        R                  " 5         [)        USS5      nU(       a  UR+                  5         [        R;                  SUT R<                  T R>                  T R@                  5        e SnAff = f)a	  
A helper function taking a frame and backend, then return the generated bytecode
and guards as a common data structure.
This is a shared interface for multiple compiler frontends (e.g. torch.compile,
torch.export) that needs to capture a graph out of python code.
c                ó~   >• [         R                  R                  5       n[        TTTTTTUTTU UT	T
TTTS9nUc   eU$ )Nrý  )rä   Ú	overridesÚ _get_current_function_mode_stackr!  )r  r  r  r   r  rä  rè   r³  rþ  r]  rµ  r¨  rÇ   r  r´  r¶  r  s       €€€€€€€€€€€€€r“   Ú	transformÚ compile_frame.<locals>.transform^  sj   ø€ ô �O‰O×<Ñ<Ó>ð 	ô $ØØØØØØØØØØØØØ1Ø#Ø/Øñ!
ˆð& Ñ(Ð(Ð(ØÐr’   NÚcompile_attempt_T©Úlog_pt2_compile_event)r   r…   r%  zRestarting analysis due to %sr  éd   z!Excessive RestartAnalysis() callsrÄ  z’Dynamo attempted to trace the same frame 100+ times. Giving up on compiling as the compile time tradeoff is likely not worth the performance gain.rÅ  zPReceived signal to skip frame (without graph break): %s %s                 %s %s)r  úlist[Instruction]r  r³  r¿   rS   )!r^   rß   Úcountr   rÖ  Úattemptri   r6   r#  r,   ÚRestartAnalysisr=  r  r   r™   rV  rë  rq   r(   Ú__traceback__r<  Ú_cleanup_output_graphr´   Úrestart_reasonrJ  rA  r  rL   r  rW  râ   rã   rá   )rè   rÇ   r  r  rä  r³  r´  r¼  r]  rµ  r¨  rþ  r¶  rÕ  r%  rÝ  r…   r   r_  Úfailed_tracer_outputr  s   ``````` `````       @r“   r¾  r¾  D  s  ÿü€ ô0 %Ó&€OðØ'ðØ7Hðà	÷÷ ó ð8 #ÐÜ—?’?Ö$ˆØ'.Œ×ÒÓÔ$ð0	ÜÐ 0°°	Ð:ÐRVÓWÜ*?ÀÀiÓ*PÑ'�˜-Ø$Ñ0Ð0Ð0Ü#Ø"/Ø%Ø,Cñ÷ XÓWò	 %÷ XÖWûô ×"Ñ"ó 	Ü˜a¤×!CÑ!C×DÑDÜ×$Ò$Ô&Ü�H‰HØ/ÜÔ1°1·?±?ÓCôô
 $+¨1Ð.KÈTÓ#RÐ Þ#Ø$×:Ñ:Ô<à×Ñ × 0Ñ 0× @´C¼¸Q»³LÔAä&*§i¢i£kÐ#Ø˜‹}ÜØ?Øð!2ð ÷ñ ö ûô �}‰}ó 	Ü˜a¤×!CÑ!C×DÑDÜ×$Ò$Ô&ä#*¨1Ð.KÈTÓ#RÐ Þ#Ø$×:Ñ:Ô<Ü�I‰IðàØ—‘Ø× Ñ Ø×#Ñ#ôð ûð	úsD   Á'B4Á4B"Â	B4Â"
B1	Â,B4Â1B4Â4I%ÃC#F9Æ9I%ÇBI É I%)rÎ   r¶  rÑ  c               óÔ  ^^^^^^^^
^^^^>^?^@^A^B• SSK JnJn  Sm@[        SS9        SBU>4S jj5       n[                SCUU
UUUU?U@UUUUUUUB4S jj5       m>[        5       nTb  TR                  U 5      O[        R                  " 5       n[        [        R                  5         [        [        T5      5         [        SS	S	S
9   [        S5      R!                  5          U   [#        SSSS9   U   [%        5       mB['        5       =n(       a  [)        U[+        5       5      m?OS m?S n[-        U5      (       a+  U(       a$  [/        T
U[1        T5      5      nU(       d  SOUS   nSn[        R2                  (       d5  U(       a.  [/        T
U[1        T5      S	S9nU(       d  S OUS   nUb  SU;   a  S	nUR5                  UUS.5        [7        5       nU(       a,  U Vs1 s H  nU" 5       S S iM     nnUR%                  SU5        [9        UT5      u  n mAU (       aG  SDS jn![:        R=                  STA[?        [        TA5      U!" U 5      U[@        5        SEUA4S jjn" U"" 5         [:        RQ                  SU RR                  U RT                  U RV                  US-   SRY                  [Z        R\                  " SU-   S9R_                  5       5      5        [a        X5      n$[b        Rd                  " 5       n%S n&S n'S n(S n)S n*[f        Rh                  Rj                  Rl                  Ro                  5         S n+S n, U" XU	5      u  n+n,[q        5         U,(       aJ  U,Rr                  =n-(       a7  U-Ru                  5       (       a"  [w        U 5        U(       a  S U;   a
  [y        5         U+[f        Rh                  R                  Rz                  (       a>  [#        S!S"S#9   [:        R}                  S$5        [~        R€                  " S%5        S S S 5        S n.U,(       a  U,Rr                  n.U.(       a!  0 U.lA        U.R„                  =n/(       a  0 U/lC        S%S&K5JDn0  [‹        U05      n1U'Gc  U.Gb  [�        U.RŽ                  5      n2[�        U.R�                  RŽ                  5      n3U.R“                  5       n4[�        U.R”                  R–                  5      n5U.R™                  5       n6[�        U.Rš                  5      n7U.Rœ                   V8s1 s H  n8U8Rž                  iM     n9n8U.R                    V8s1 s H  n8U8Rž                  iM     n:n8[f        Rh                  Rj                  Rl                  R;                  5         OGS n2S n3S n4S n50 n6S n7[%        0 5      n9[%        0 5      n:[%        5       mB[b        Rd                  " 5       U%-
  S'-  m@0 S(U1_S)U RR                  _S*U RT                  _S+U RV                  _S,UR¢                  _S-UR¤                  _S.U2_S/U3_S0U4_S1U5_S2U7_S3U&_S4U'_S5U)_S6U*_S7U9_S8U:_TBT@U+S L[        R¦                  S	[©        T@5      U$[‹        U65      U(S9.	En;UR5                  U;5        U(       a"  U,(       a  U,Rª                  O	[­        5       UlU        U,b_  U,Rr                  bR  U,Rr                  R®                  (       d7  [±        5       U,Rr                  R²                  R´                  R¶                  l\        [        Rº                  n<U<c  [½        [¿        T5      5      n<U<(       a—  U,(       a�  U,Rr                  (       a  U,Rr                  R²                  n=U=RÀ                  Ro                  5         [Ã        U=RÄ                  5        [Ç        U,Rr                  S:5      (       a  [Ã        U,Rr                  RÈ                  5        sS S S 5        sS S S 5        sS S S 5        sS S S 5        sS S S 5        sS S S 5        sS S S 5        $ s  snf ! [B         ag  n#[        RD                  (       a  [G        S5      U#eU(       a  [G        S5      U#e[I        [J        RL                  [J        RL                  5      U#l'        e S n#A#ff = f! , (       d  f       GNb= fs  sn8f s  sn8f ! [Ê         Ga  n#[Í        U#5      Rž                  n&[‹        U#5      n'[Î        RÐ                  " 5       /n([Ó        U#XTS;9  [f        RÔ                  R×                  S<S= S> S?9  [Ø        RÚ                  " U#T5      u  n)n*[?        U#S@S 5      n,[Ý        U#[B        [Þ        [à        [â        [ä        [æ        U[è        U[ê        [ì        [î        45      (       a  e [ñ        [Í        U#5      Rž                   SA[‹        U#5       35      Ró                  U#Rô                  5      S eS n#A#ff = f! [f        Rh                  R                  Rz                  (       aP  [#        S!S"S#9   [:        R}                  S$5        [~        R€                  " S%5        S S S 5        O! , (       d  f       O= fS n.U,(       a  U,Rr                  n.U.(       a!  0 U.lA        U.R„                  =n/(       a  0 U/lC        S%S&K5JDn0  [‹        U05      n1U'Gc  U.Gb  [�        U.RŽ                  5      n2[�        U.R�                  RŽ                  5      n3U.R“                  5       n4[�        U.R”                  R–                  5      n5U.R™                  5       n6[�        U.Rš                  5      n7U.Rœ                   V8s1 s H  n8U8Rž                  iM     Os  sn8f n9n8U.R                    V8s1 s H  n8U8Rž                  iM     Os  sn8f n:n8[f        Rh                  Rj                  Rl                  R;                  5         OGS n2S n3S n4S n50 n6S n7[%        0 5      n9[%        0 5      n:[%        5       mB[b        Rd                  " 5       U%-
  S'-  m@0 S(U1_S)U RR                  _S*U RT                  _S+U RV                  _S,UR¢                  _S-UR¤                  _S.U2_S/U3_S0U4_S1U5_S2U7_S3U&_S4U'_S5U)_S6U*_S7U9_S8U:_TBT@U+S L[        R¦                  S	[©        T@5      U$[‹        U65      U(S9.	En;UR5                  U;5        U(       a"  U,(       a  U,Rª                  O	[­        5       UlU        U,b_  U,Rr                  bR  U,Rr                  R®                  (       d7  [±        5       U,Rr                  R²                  R´                  R¶                  l\        [        Rº                  n<U<c  [½        [¿        T5      5      n<U<(       a›  U,(       a“  U,Rr                  (       a�  U,Rr                  R²                  n=U=RÀ                  Ro                  5         [Ã        U=RÄ                  5        [Ç        U,Rr                  S:5      (       a   [Ã        U,Rr                  RÈ                  5        f f f f f = f! , (       d  f       O= f S S S 5        O! , (       d  f       O= fS S S 5        O! , (       d  f       O= fS S S 5        O! , (       d  f       O= fS S S 5        O! , (       d  f       O= fS S S 5        O! , (       d  f       O= fS S S 5        g ! , (       d  f       g = f)FNr   )ÚBisectValidationExceptionÚValidationExceptiong        Úcompile_inner)Ú
phase_namec           
     óœ  >• [         R                  " 5        nUR                  [        R                  R
                  R                  [        R                  [        [        R                  " 5       5      5      5        UR                  [        R                  " 5       5        T" XU5      sS S S 5        $ ! , (       d  f       O= f[        5       S 4$ r¡   )r  r  r  rä   Ú_dynamoÚcallback_handlerÚinstall_callbacksr   ÚDYNAMOrJ  r   r§  rg   Úrecordr`   )rè   r´  rè  rØ   Ú_compile_inners       €r“   ræ  Ú_compile.<locals>.compile_innerÑ  s—   ø€ ô ×!Ò!Ô# uØ×ÑÜ—‘×.Ñ.×@Ñ@Ü#×*Ñ*¬C´×0QÒ0QÓ0SÓ,Tóôð
 ×ÑÔ =× DÒ DÓ FÔGÙ! $°5Ó9÷ $×#×#úô Ó Øð
ð 	
s   —BB1Â1
B?c                óÂ  >• [         R                   " 5       =p4            SS jnU" SU R                  U R                  U R                  U 5        S n [	        U T T!TTTUT#TTTTT"S9nTb  TR                  c   S5       eUR                  nUR                  n	UR                  b  UR                  nUc   eU" SU R                  U R                  U R                  U5        [        [         R#                  5       5       H(  u  p«[%        SU
 3SS	9   U" X5      nUb  UnS S S 5        M*     U [&        U'   [(        R+                  U5        X4-
  mU	R,                  c   eU	R,                  nSS
 jnUc   eU" U 5      nU" U5      nSnUSU R.                  S U  S3-  nUSUR.                  S U  3-  nU R.                  S U UR.                  S U :X  d   U5       eSnUSU R0                   S3-  nUSUR0                   3-  nU R0                  UR0                  :X  d   U5       eSnUSU R2                   S3-  nUSUR2                   3-  nU R2                  UR2                  :X  d   U5       eUR4                  (       a!  UR7                  5       (       a  [        5       U	4$ UR8                  c   eUR:                  [<        R>                  U'   [%        SSS	9   URA                  U UT"S LTS9nS S S 5        T"bu  WRB                  c   eT"RE                  URB                  U5        T"RG                  URH                  RJ                  5        T"RM                  URN                  RP                  5        Tb  [S        T5      OSnSU-   n[U        UWRV                  TU5      nUR7                  5       (       d(  URX                  b  URY                  UR8                  5        [[        U5      U	4$ ! [
        R                   aK  nU(       a  [        R                  S5        UR                  c   e[        5       UR                  4s S nA$ S nAff = f! , (       d  f       GMM  = f! , (       d  f       GNs= f)Nc           	     ó–   • [         R                  [        R                  5      (       a!  [         R	                  [        XX#U5      5        g g r¡   )Úbytecode_logÚisEnabledForÚloggingÚDEBUGrW  rj   )ÚprefixrÕ   rÐ   Úline_norè   s        r“   Úlog_bytecodeÚ6_compile.<locals>._compile_inner.<locals>.log_bytecodeì  s8   € ô ×(Ñ(¬¯©×7Ñ7Ü×"Ñ"Ü# F°(ÀTÓJõð 8r’   zORIGINAL BYTECODErý  z,No graph captured with export/fullgraph=Truez;compiler collective wasn't run before compilation completedzMODIFIED BYTECODEÚbytecode_hooks_TrØ  c                óÈ   • SS K nU R                  U R                  -   [        U R                  UR
                  -  5      -   [        U R                  UR                  -  5      -   $ )Nr   )r‚  Úco_argcountÚco_kwonlyargcountrÁ   Úco_flagsÚ
CO_VARARGSÚCO_VARKEYWORDS)rè   r‚  s     r“   Ú
count_argsÚ4_compile.<locals>._compile_inner.<locals>.count_args5  s]   € Ûð × Ñ Ø×(Ñ(ñ)ä�t—}‘} w×'9Ñ'9Ñ9Ó:ñ;ô �t—}‘} w×'=Ñ'=Ñ=Ó>ñ?ðr’   zarg mismatch: zold code object has args z, znew code object has args zfree var mismatch: zold code object has free var znew code object has free var zcell var mismatch: zold code object has cell var znew code object has cell var r-  )rè  r,  rç  ÚUnknownzTorch-Compiled Region: )rö  rJ  rÕ   rJ  rÐ   rJ  r÷  rK  rè   r   r¿   rÀ   ©rè   r   r¿   rK  ).r  râ   rã   rá   r¾  r,   r  rV  rW  r  r`   Ú
all_statesr…   r   r%  Ú	enumeraterø  rI  ri   rt   rÔ  r´   r  Úco_varnamesr¡  Úco_cellvarsr]  Úis_empty_graphr  Úcleanupsrf   Úinstancer-  Úguards_stateÚadd_guarded_codeÚadd_inlined_sourcer  r5  Úupdate_device_typeÚcurrent_tracerÚgraphrJ  rQ   Úguard_managerÚguard_export_fnrc   )$rè   r´  rè  r%  Ú
start_timerø  Úout_coderÂ  r_  r   r­   rú  Úhook_outputr  r  Útotal_argcount_oldÚtotal_argcount_newÚmsgÚcheck_fnÚcompile_id_strÚannotation_strÚguarded_coder  rç  rä  rÌ  r³  rþ  Údynamo_time_before_restartr]  rµ  r¨  rÇ   r  r¶  r¼  s$                         €€€€€€€€€€€€€€r“   rî  Ú _compile.<locals>._compile_innerã  sã  ø€ ô 04¯yªy«{Ð:Ðð	Øð	Ø"ð	Ø.1ð	Ø<?ð	ØGOð	àô	ñ 	ØØ�L‰LØ×ÑØ×ÑØô	
ð ˆð	GÜ)ØØØØØØØØØØ#5Ø'Ø"3ØñˆMð* !Ñ(Ð,=×,HÑ,HÑ,Tð 	
ØIó	
ÐTð !×)Ñ)ˆØ%×3Ñ3ˆØ×0Ñ0Ñ<Ø&3×&KÑ&KÐ#àÑ#Ð#Ð#ÙØØ�L‰LØ×ÑØ×ÑØô	
ô #¤?×#9Ñ#9Ó#;Ö<‰IˆCÜ °¨uÐ5ÈTÓRÙ" 4Ó2�ØÑ*Ø*�H÷ SÑRñ =ð #'Œ�hÑÜ×Ñ˜Ô"Ø%<Ñ%IÐ"Ø×)Ñ)Ñ5Ð5Ð5Ø×+Ñ+ˆô	ð Ñ#Ð#Ð#á'¨Ó-ÐÙ'¨Ó1ÐØˆØÐ*¨4×+;Ñ+;Ð<OÐ=OÐ+PÐ*QÐQSÐTÑTˆØÐ*¨8×+?Ñ+?Ð@SÐASÐ+TÐ*UÐVÑVˆà×ÑÐ0Ð0Ð1Ø×#Ñ#Ð$7Ð%7Ð8ó9ð	ð ó	ð9ð $ˆØÐ.¨t×/?Ñ/?Ð.@ÀÐCÑCˆØÐ.¨x×/CÑ/CÐ.DÐEÑEˆØ×Ñ 8×#7Ñ#7Ó7Ð<¸Ó<Ð7à#ˆØÐ.¨t×/?Ñ/?Ð.@ÀÐCÑCˆØÐ.¨x×/CÑ/CÐ.DÐEÑEˆØ×Ñ 8×#7Ñ#7Ó7Ð<¸Ó<Ð7ð �=�=˜V×2Ñ2×4Ñ4Ü%Ó'¨Ð6Ð6à�}‰}Ñ(Ð(Ð(Ø,2¯O©OŒ×Ñ Ñ)ä˜.ÀÓEØ$×1Ñ1ØØØ DÐ(Ø'ð	 2ð ˆH÷ Fð ÑØ×(Ñ(Ñ4Ð4Ð4Ø×$Ñ$ X×%:Ñ%:¸HÔEØ×&Ñ& v×'=Ñ'=×'IÑ'IÔJØ×&Ñ& v×'<Ñ'<×'BÑ'BÔCà,6Ñ,Bœ˜ZœÈ	ˆØ2°^ÑCˆÜ"ØØ×"Ñ"ØØó	
ˆð ×$Ñ$×&Ñ&¨5×+@Ñ+@Ñ+Lð ×!Ñ! &§-¡-Ô0ä  Ó.°Ð=Ð=øôg �}‰}ó 	GÞÜ—	‘	ÐHÔIØ×0Ñ0Ñ<Ð<Ð<Ü%Ó'¨×)FÑ)FÐFÕFûð		Gú÷0 S×Rú÷x FÖEús7   ÁO ÄP<ËQÏP9Ï.A P4Ð.P9Ð4P9Ð<
Q	Ñ
QrË  T)Úreset_event_log_on_exitrÙ  z+pytorch.wait_counter.entire_forward_compilez_compile.compile_innerÚentire_frame_compileÚ!dynamo_cumulative_compile_time_us)rç  Údynamo_compile_column_usz$Unable to find recompilation reasonsF)Úskip_loggingz%[inline-inbuilt-nn-modules-candidate])Úrecompile_reasonÚ#inline_inbuilt_nn_modules_candidateé   Úrecompile_user_contextsc                óV   • SU R                    SU R                   SU R                   S3$ )NÚ'z' (rÐ  Ú))râ   rã   rá   )rè   s    r“   Úformat_func_infoÚ"_compile.<locals>.format_func_infoÊ  s0   € Ø˜4Ÿ<™<˜.¨¨D×,<Ñ,<Ð+=¸Q¸t×?RÑ?RÐ>SÐSTÐUÐUr’   z«torch._dynamo hit config.%s (%s)
   function: %s
   last reason: %s
To log all recompilation reasons, use TORCH_LOGS="recompiles".
To diagnose recompilation issues, see %sc                 ój   >• [        SST  3ST  S[        [        T 5       S3ST  S3S[         S	3/S
9  g )NzDynamo recompile limit exceededzLimit type: zLDynamo attempted to recompile the code object too many times, exceeding the z$ cache size limit (currently set to zj). Excessive recompilations can degrade performance due to the compilation overhead of each recompilation.z‚To monitor recompilations, enable TORCH_LOGS=recompiles. If recompilations are expected, consider increasing torch._dynamo.config.z to an appropriate value.zSee z) for tips on dealing with recompilations.rÅ  )rL   r<  r*   rx   )Ú
limit_types   €r“   Ú(raise_unimplemented_cache_limit_exceededÚ:_compile.<locals>.raise_unimplemented_cache_limit_exceededÜ  sj   ø€ ÜØ=Ø*¨:¨,Ð7ð!%Ø%/ LÐ0TÔU\Ô]cÐeoÓUpÐTqð rYð!Yð
;à;E¸,ÐF_ðað Ô2Ð3Ð3\Ð]ð	ór’   z/Hard failure due to fail_on_recompile_limit_hitz"Hard failure due to fullgraph=TruezBtorchdynamo start compiling %s %s:%s, stack (elided %s frames):
%sé   rÄ  rÍ   zsize mismatch at indexÚgcÚ
gc_time_us)r#  z run_gc_after_compile: running gcr)   )Ú
curr_frameg    eÍÍAÚ	frame_keyrâ   rã   rá   rÍ  rÎ  Úguard_countÚshape_env_guard_countÚgraph_op_countÚgraph_node_countÚgraph_input_countÚ	fail_typeÚfail_reasonÚfail_user_frame_filenameÚfail_user_frame_linenoÚnon_compliant_opsÚcompliant_custom_ops)	r¼  Údynamo_time_before_restart_sÚhas_guarded_codeÚspecialize_floatÚ
is_forwardÚ%dynamo_compile_time_before_restart_usÚstack_traceÚgraph_node_shapesÚexception_stack_traceÚ_old_fake_moder\  Úartifactc                 ó   • SSS.$ )NÚdynamo_errorÚstring©rÕ   ÚencodingrŒ   rŒ   r’   r“   r®   Ú_compile.<locals>.<lambda>D  s   € Ø*Ø (ò%r’   c                 ó,   • [         R                  " 5       $ r¡   ©Ú	tracebackÚ
format_excrŒ   r’   r“   r®   rQ  H  s   € ¤9×#7Ò#7Ô#9r’   ©Úmetadata_fnÚ
payload_fnr  z: )rè   r   r´  rÁ   rè  rR   r¿   z7tuple[ConvertFrameReturn, Optional[DynamoTracerOutput]])rè   r   r´  rÁ   rè  rR   r¿   z-tuple[ConvertFrameReturn, DynamoTracerOutput])rè   r   r¿   rJ  )r¿   r   ){r  rä  rå  r   rf  rm   Úcode_contextr  Únullcontextr   r*   Úuse_lazy_graph_moduler   r   re   r!   Úguardri   r£   r   rZ   r]   r:   rP   r?   Úinline_inbuilt_nn_modulesÚupdate_outerrl   r9   rV  rƒ  r<  rx   rM   Úfail_on_recompile_limit_hitrD   rb   ra   ÚRUN_ONLYÚframe_exec_strategyrW  râ   rã   rá   ry  r'   rÛ   Úformatrí   r  Útime_nsrä   ré  ÚutilsÚReinplaceCountersr™   rW   r  Úhas_outputsrV   rU   Úrun_gc_after_compilerë  r3  ÚcollectÚlocal_scopeÚroot_txrU  r5  rJ  r…  r  r  Úcount_callsr  ÚnodesÚget_graph_sizes_structuredÚplaceholdersr@  r�   rA  rà  rá  rD  rw   rŸ  rd   r]  r#   r  Úguards_contextÚdynamo_guardsÚinnerÚ#invalidate_compile_context_weakrefsr/   r>   rE  rœ   r›   rM  rJ  r  rA  rT  rU  r`  rå   ræ   r,   Úget_exc_messager=  rJ   rC   ÚAssertionErrorr   r   rK   rI   rG   rH   rF   rÁ  rß  )Crè   rÇ   r  r  rä  r³  r´  r]  rµ  rè  rç  rÍ  rë   r¨  rÌ  rÎ   r¶  rÑ  rä  rå  ræ  Úmetrics_contextrY  Ú
compile_pgr%  Úreasonsr&  Úinbuilt_nn_reasonsÚinbuilt_nn_recompile_reasonr(  Úuser_contextÚuser_contexts_msgÚexceededr,  r0  r_  rG  Ústart_time_nsr<  r=  rI  r>  r?  r  r   r  r  r  r5  r6  r7  r8  r9  r:  rH  r;  Úopr@  rA  ÚmetricsÚshould_clearÚtcrî  rþ  r  r/  r¼  sC    ````` `` `  `` `                                             @@@@@r“   rã  rã  ±  sÑ  ÿÿ€ ÷.ð ),Ðä"¨oÑ>ð
Øð
Ø#'ð
Ø05ð
à	@ö
ó ?ð
ô" ð\>Øð\>àð\>ð ð\>ð 
7÷	\>÷ \>ó \>ó ð\>ô| *Ó+€Oà&-Ñ&9ˆ×Ñ˜TÔ"¼z×?UÒ?UÓ?Wð ô 	œv×;Ñ;Õ<Üœ zÓ2Õ3ÜØ¨dÈ$ó	
ô 	ÐBÓC×IÑIÕKÚÜØ$Ø-Ø%Hó	
ò
 	ä$'£EˆÜ'Ó)Ð)ˆ:Õ)Ü 0°¼Z»\Ó JÑà $Ðð +/ÐÜ˜J×'Ñ'®EÜ=Ø˜U¤L°Ó$=óˆGö ?FÑ6È7ÐSTÉ:ð ð /4Ð+Ü×/×/¶EÜ!HØ˜U¤L°Ó$=ÈDñ"Ðö /‘Ð4FÀqÑ4Ið (ð
 ,Ñ7Ø;Ø.ó/ð 7;Ð3ð 	×$Ñ$à$4Ø7Zñô	
ô #FÓ"GÐÞ"ñ :Qó!Ú9P¨‘“˜t Ó$Ñ9Pð ð !ð ×ÑÐ 9Ð;LÔMä6°zÀ:ÓNÑˆ�*ÞôVô
 �K‰Kð;ð
 Üœ 
Ó+Ù  Ó&Ø Ü#ô÷ð Ù8Ô:ô" 	�	‰	ØQØ�L‰LØ×ÑØ×ÑØ�1‰Hà�G‰GÔ%×-Ò-°1°t±8Ñ<×CÑCÓEÓFô	
ô4 ' tÓ2ˆÜŸš›ˆØ#'ˆ	Ø%)ˆØ59ÐØ26Ð Ø04ÐÜ�‰×Ñ×-Ñ-×3Ñ3Ô5ØˆØˆð	Ù*7¸ÈÓ*OÑ'ˆL˜-ô ÔæØ%2×%?Ñ%?Ð?�\Õ?Ø ×,Ñ,×.Ñ.ä+¨DÔ1Þ#Ð(@ÐDTÓ(TÜ0Ô2àôf �}‰}×#Ñ#×8×8Ü! $ÀÓNÜ—H‘HÐ?Ô@Ü—J’J˜q”M÷ Oð ˆFÞØ&×3Ñ3�Þà%'�Ô"à#Ÿ^™^Ð+�6Õ+à&(�F”Oå)ä˜J›ˆIØÒ" vÒ'9Ü! &§-¡-Ó0�Ü(+¨F×,<Ñ,<×,CÑ,CÓ(DÐ%Ø!'×!3Ñ!3Ó!5�Ü#& v§|¡|×'9Ñ'9Ó#:Ð Ø$*×$EÑ$EÓ$GÐ!Ü$'¨×(;Ñ(;Ó$<Ð!Ø?E×?WÒ?WÓ$XÒ?W¸ R§_¤_Ñ?WÐ!Ð$Xà.4×.IÒ.Ió(Ú.I¨�B—O”OÑ.Ið %ð (ô —‘×#Ñ#×5Ñ5×9Ñ9Õ;à"�Ø(,Ð%Ø!%�Ø#'Ð à$&Ð!Ø$(Ð!Ü$'¨£GÐ!Ü'*¨2£wÐ$Ü"%£%�ä.2¯lªl«n¸}Ñ.LÐPSÑ-SÐ*ðØ˜Yðà˜4Ÿ<™<ðð ˜t×/Ñ/ðð ! $×"5Ñ"5ð	ð
 ˜j×TÑTðð )¨*×*FÑ*Fðð ˜{ðð (Ð)>ðð ! .ðð #Ð$4ðð $Ð%6ðð ˜Yðð ˜{ðð +Ð,Dðð )Ð*@ðð  $Ð%6ð!ð" 'Ð(<ð#ð$ $3Ø0JØ$0¸Ð$<Ü$*×$;Ñ$;Ø"Ü9BØ.ó:ð  +Ü%(Ð):Ó%;Ø)>ò9ˆGðB ×(Ñ(¨Ô1ö !ö %ð "×6Ò6ä2Ó4ð "Ô6ð Ñ)Ø!×.Ñ.Ñ:Ø%×2Ñ2×9×9ä`jÓ`l�×*Ñ*×:Ñ:×IÑI×WÑWÔ]ô "×EÑEˆLØÑ#ô  6Ô6GÈÓ6TÓU�ÞÞ  ]×%?×%?Ø&×3Ñ3×CÑC�BØ×(Ñ(×.Ñ.Ô0ô .¨b¯l©lÔ;Ü˜}×9Ñ9Ð;K×LÑLÜ1Ø)×6Ñ6×EÑEô÷Y
 	ˆ÷	
ð 	
÷ 	ˆ÷ 	LÐK÷	
ð 	
÷ 	4Ð3÷ 	=Ñ<ùòv!øôX ó Ü×5×5Ü1ØIóàðö Ü1Ø<óàðô
 ->Ü#×,Ñ,¬k×.BÑ.Bó-�AÔ)ð ûðú÷| OÖNüò2 %Yùò(øô[ ô +	<ô ˜Q›×,Ñ,ˆIÜ˜a›&ˆKÜ%.×%9Ò%9Ó%;Ð$<Ð!Ü˜a °VÒ<ä�N‰N×+Ñ+Øññ :ð ,ñ ô @C×?RÒ?RØ�:ó@Ñ<Ð$Ð&<ô $ AÐ'DÀdÓKˆMÜØäÜ%Ü)Ü"Ü,Ü/Ø'Ü0Ø-Ü$Ü Ü.ð÷ñ ð" ô /Ü˜A“w×+Ñ+Ð,¨B¬s°1«v¨hÐ7óç ‘. §¡Ó1°tð<ûðS+	<ûôd �}‰}×#Ñ#×8×8Ü! $ÀÓNÜ—H‘HÐ?Ô@Ü—J’J˜q”M÷ O×NÖNúð ˆFÞØ&×3Ñ3�Þà%'�Ô"à#Ÿ^™^Ð+�6Õ+à&(�F”Oå)ä˜J›ˆIØÒ" vÒ'9Ü! &§-¡-Ó0�Ü(+¨F×,<Ñ,<×,CÑ,CÓ(DÐ%Ø!'×!3Ñ!3Ó!5�Ü#& v§|¡|×'9Ñ'9Ó#:Ð Ø$*×$EÑ$EÓ$GÐ!Ü$'¨×(;Ñ(;Ó$<Ð!Ø?E×?WÒ?WÓ$XÒ?W¸ R§_¤_Ò?WùÒ$XÐ!Ð$Xà.4×.IÒ.Ió(Ú.I¨�B—O”OÒ.Iùò(Ð$ð (ô —‘×#Ñ#×5Ñ5×9Ñ9Õ;à"�Ø(,Ð%Ø!%�Ø#'Ð à$&Ð!Ø$(Ð!Ü$'¨£GÐ!Ü'*¨2£wÐ$Ü"%£%�ä.2¯lªl«n¸}Ñ.LÐPSÑ-SÐ*ðØ˜Yðà˜4Ÿ<™<ðð ˜t×/Ñ/ðð ! $×"5Ñ"5ð	ð
 ˜j×TÑTðð )¨*×*FÑ*Fðð ˜{ðð (Ð)>ðð ! .ðð #Ð$4ðð $Ð%6ðð ˜Yðð ˜{ðð +Ð,Dðð )Ð*@ðð  $Ð%6ð!ð" 'Ð(<ð#ð$ $3Ø0JØ$0¸Ð$<Ü$*×$;Ñ$;Ø"Ü9BØ.ó:ð  +Ü%(Ð):Ó%;Ø)>ò9ˆGðB ×(Ñ(¨Ô1ö !ö %ð "×6Ò6ä2Ó4ð "Ô6ð Ñ)Ø!×.Ñ.Ñ:Ø%×2Ñ2×9×9ä`jÓ`l�×*Ñ*×:Ñ:×IÑI×WÑWÔ]ô "×EÑEˆLØÑ#ô  6Ô6GÈÓ6TÓU�ÞÞ  ]×%?×%?Ø&×3Ñ3×CÑC�BØ×(Ñ(×.Ñ.Ô0ô .¨b¯l©lÔ;Ü˜}×9Ñ9Ð;K×LÑLÜ1Ø)×6Ñ6×EÑEõð Mð &@�=ð ú÷I
 	�úˆ÷	
÷ 	
ö 	
ú÷ 	�Žú÷ 	L×KÖKú÷	
÷ 	
ö 	
ú÷ 	4×3Ö3ú÷ 	=×<Ö<úsŠ  Â)yÂ>x?Ã
x%Ã$x	Ã'w1Ã3wÃ6C%v<Ç_Ç/A)v<É_É Cv<Ì.A(a,Î3v<Ï	,aÏ5C4v<Ó)a"Ó?v<Ôa'Ô%I2v<Þ	wÞ 	w1Þ)	x	Þ2	x%Þ;	x?ß	yßv<ß
aß&A"aáaáv<á
aáv<á,fá7Dfæfæfæ4v9ç,g=ç4	v9ç=
hèC3v9ë:lìv9ì&l=ì<I=v9ö9v<ö<
w
÷w÷	w1÷
w%÷!w1÷(	x	÷1
w?÷;x	ø	x%ø
xøx%ø	x?ø%
x3ø/x?ø6	yø?
y	ù	yù
y'c                  ól   • \ rS rSr S       SS jjr\S	S j5       r S
           SS jjrSrg)ÚConvertFrameiä  Nc                ó<   • Xl         [        USUS9U l        X l        g )NF)r´  r¶  )r-  rº  Ú_inner_convertÚ_hooks)r¦   r³  rè  r¶  s       r“   r§   ÚConvertFrame.__init__å  s%   € ð *5Ô&Ü2Ø 5°'ñ
ˆÔð �r’   c                ó   ^ • U 4S j$ )Nc                ó0   >• [        U TR                  5      $ r¡   )Úconvert_framer†  r»  s    €r“   r®   Ú2ConvertFrame._clone_with_backend.<locals>.<lambda>ó  s   ø€ œ}àØ�K‰Kô 
r’   rŒ   r¥   s   `r“   r¾  Ú ConvertFrame._clone_with_backendñ  s   ø€ ô
ð 	
r’   c                ó   ^• [         R                  UR                  5        [        S   S==   S-  ss'    U R	                  XX4US-   S9n[        S   S==   S-  ss'   U$ ! [
         Ga’  n[        U[        5      (       a  e U R                  R                  R                  S LnUc   eU R                  R                  R                  (       a  e [        U[        5      (       a  e [        U[        5      n	UR                  n
U	(       Ga,  [        USS5      (       Gd  [        R                  [        R                   5      (       añ  [#        US5      (       aà  [#        US	5      (       aÏ  [%        ['        UR(                  5      5         UR*                  nS
R-                  [.        R0                  " U5      5      n[2        R4                  " U
5      nSU SU 3m[6        R8                  R;                  SS U4S jS9  [        R=                  TS[>        R@                  S9  S S S 5        O! , (       d  f       O= f[>        RB                  (       d  U	(       d  e [        USS 5      nUR                  n
[E        XzXá5      nU	(       a  [F        RI                  USS9  O[F        RK                  USS9  [        U[2        RL                  5      (       a%  URN                  b  [Q        URN                  S9s S nA$  S nA[Q        5       $ S nAff = f)NÚframesÚtotalr)   rÍ   ÚokÚloggedFrÌ  Ú
real_stackrÄ  zŒGraph break: torch.compile cannot properly resume from this graph break, which results in a skip.
torch.compile will skip tracing the frame zN and fall back to eager.
The graph break occurred in the following user code:
rK  c                 ó   • SSS.$ )NÚdynamo_graph_break_reasonrN  rO  rŒ   rŒ   r’   r“   r®   Ú'ConvertFrame.__call__.<locals>.<lambda>I  s   € Ø(CØ,4ò1r’   c                 ó8   >• T  S[         R                  " 5        3$ )NÚ
rS  )Úuser_stack_traces   €r“   r®   r•  M  s   ø€ Ð2BÐ1CÀ2Äi×FZÒFZÓF\ÐE]Ñ/^r’   rV  T)Úexc_infoÚ
stack_infor^  )r™  )ra  ))rÓ  r´   rQ  rh   r…  r  r=  rH   r²  rŸ  rK   rM   r<  Úgraph_break_logró  rô  rõ  rM  r   r   rÌ  r’  ry  rT  Úformat_listr,   Úformat_frame_inforä   rå   ræ   rW  r*   r¿  Úsuppress_errorsrE   rV  rë  rƒ  ÚTorchDynamoExceptionra  r`   )r¦   rë   rç  rè  r¨  rÎ   rÉ   r_  rŸ  Ú	soft_failrè   Ú
user_stackÚuser_stack_formattedÚ
frame_infor^  Ú	error_msgr˜  s                   @r“   rì  ÚConvertFrame.__call__ù  sž  ø€ ô 	�‰˜Ÿ™Ô%Ü�Ñ˜7Ó# qÑ(Ó#ðg	UØ×(Ñ(Ø E¸TÀA¹Xð )ð ˆFô �XÑ˜tÓ$¨Ñ)Ó$ØˆMøÜô a	Uä˜!Ô7×8Ñ8Øð ×#Ñ#×(Ñ(×=Ñ=ÀTÐIð !ð (Ñ3Ð3Ð3Ø×"Ñ"×'Ñ'×<×<ð ô  ˜!Ô9×:Ñ:Øä" 1¤kÓ2ˆIØ—<‘<ˆD÷ Ü  8¨U×3Ò3Ü#×0Ñ0´·±×?Ñ?ô
 ˜1˜l×+Ñ+´¸¸<×0HÑ0HÜ(¬¸¿¹Ó)EÕFØ%&§\¡\˜
Ø/1¯w©wÜ%×1Ò1°*Ó=ó0Ð,ô &)×%:Ò%:¸4Ó%@˜
ðIØISÈð UUà3Ð4ð6ð )ô Ÿ™×7Ñ7Ø&ñ)ô (_ð 8ñ ô (×-Ñ-Ø,Ø%)Ü'-§~¡~ð .ñ ÷) G×FÖFúô4 ×)×)¶)Øô & aÐ):¸DÓAˆOØ—<‘<ˆDÜ(¨°/ÓIˆIæÜ—‘˜¨T�Ò2ä—‘˜I°�Ñ5ô ˜1œc×6Ñ6×7Ñ7Ø×)Ñ)Ñ5ä)¸a×>SÑ>SÑTÕTûä!Ó#Ð#ûðGa	Uús8   ¶)A  Á K=Á+DK8ÆBH#È	K8È#
H1	È-B7K8Ë$K=Ë8K=)r†  r…  r-  r¡   )r³  r~   rè  rR   r¶  úOptional[CompilePackage]r¿   rÀ   )r¿   z*Callable[[WrapBackendDebug], ConvertFrame]©r   rð  ró  rŒ   r’   r“   rƒ  rƒ  ä  s˜   † ð
 -1ð	
àð
ð ð
ð *ð	
ð
 
õ
ð ó
ó ð
ð ðs$àðs$ð *ðs$ð ð	s$ð
 @ðs$ð ðs$ð 
÷s$ð s$r’   rƒ  c                ó   • [        XUS9$ )zHTry to convert a frame into an FX graph, if error leave frame unmodified)r¶  )rƒ  )r³  rè  r¶  s      r“   rŠ  rŠ  o  s   € ô ˜°GÑ<Ð<r’   c                óÄ  • SSK Jn  [        R                  nS[        l        [	        U S5       n[
        R                  " U5      nS S S 5        [        [        R                  " WR                  R                  5       [        5       R                  5       5      5      Ul
        [        R                  " S5          [        UR                  UR                  UR                   UR"                  UR$                  USSS ['        5       [)        SS5      S S 0 [+        SSS9S	9  U[        l         S S S 5        g ! , (       d  f       Nñ= f! U[        l        f = f! , (       d  f       g = f)
Nr)   )ÚeagerFÚrbr   é*   iç  )r¤  r¥  )
r³  r´  r]  rµ  rè  rÍ  rç  rë   r¨  rÌ  )Úbackends.debuggingrª  r*   Úreplay_record_enabledÚopenrX   ÚloadrH  rß   ÚchainrÇ   rR  r+   rŸ  rã  rè   r  r  rä  rR   r7   r   )rÐ   rª  Úoriginal_replay_valÚin_filerí  s        r“   Úreplayr´  y  s  € Ý)ä ×6Ñ6ÐØ#(„FÔ Ü	ˆh˜Ô	 Ü ×%Ò% gÓ.ˆ÷ 
äœ)Ÿ/š/¨&¯.©.×*>Ñ*>Ó*@Ä'Ã)Ç/Á/ÓBSÓTÓU€F„Nä	×	(Ò	(¨Õ	/ð	?ÜØ—‘Ø—‘Ø—‘Ø—‘Ø—‘Ø!ØØØ#'Ü“gÜ4°Q¸Ó:Ø ØØÜ$¨bÀ3ÑGòð$ ,?ŒFÕ(÷) 
0Ð	/÷	 
Õ	ûð0 ,?ŒFÕ(ú÷) 
0Õ	/ús0   ®D0Â6EÂ8A#EÄEÄ0
D>ÅEÅEÅ
Ec                ó¾   • [         R                  S:  a  g[        R                  " U 5       H$  nUR                  S:X  d  M  UR
                  S-  s  $    [        S5      e)N)é   é   r   ÚRESUMEr2  z$RESUME instruction not found in code)rÜ  Úversion_infors  rt  ru  Úoffsetr^  )rè   Úinsts     r“   Úfirst_real_inst_idxr¼  ™  sQ   € Ü
×Ñ˜'Ó!ØÜ×$Ò$ TÖ*ˆØ�;‰;˜(Õ"Ø—;‘; !Ñ#Ò#ñ +ô Ð=Ó
>Ð>r’   c                  ó<   • \ rS rSrSS.           SS jjrSrg)rÄ  i¢  r   rÍ   c               ó   • g r¡   rŒ   )r¦   rë   rç  rè  r¨  rÎ   s         r“   rì  ÚConvertFrameProtocol.__call__£  s   € ð !r’   rŒ   Nrð  )r�   rŽ   r�   r�   rì  r‘   rŒ   r’   r“   rÄ  rÄ  ¢  sL   † ð ñ!àð!ð *ð!ð ð	!ð
 @ð!ð ð!ð 
÷!ð !r’   c                  ó8   • \ rS rSrSS jr        SS jrSrg)ÚCatchErrorsWrapperi®  c                óT   • [         R                  " U5      " U 5        Xl        X l        g r¡   )r+  r,  r-  rè  )r¦   rÍ  rè  s      r“   r§   ÚCatchErrorsWrapper.__init__¯  s   € Ü�Š˜Ô! $Ô'Ø)1Ô&Ø�
r’   c           
     ó8  • Uc   e[         R                  UR                  5        [        R                  " UR                  5      n[
        R                  S:¼  a#  UR                  [        UR                  5      :„  nO"UR                  [        UR                  5      :¬  n[        R                  (       a  [        5       nO
[        5       nU(       d?  U(       d8  [        R                  (       d#  U(       aÌ  [        U R                  SS5      (       d°  [         R#                  [$        R&                  5      (       a~  U(       a  SnO4[        R                  " UR                  5      (       a  SnOU(       a  SnOSn[         R)                  SUR                  R*                  UUR                  R,                  5        [/        5       $ UR                  R,                  S	:X  a  UR                  R*                  S
:X  dD  UR                  R,                  R1                  S5      (       a$  UR                  R*                  S:X  a
  [/        5       $ [2        R4                  R6                  R9                  5       S:X  a²  [:        R<                  " 5       nU(       a–  [>           SSK J!n	  U	" URD                  U R                  R                  S9n
[G        U R                  S5      (       d   S5       eU R                  RI                  U
RJ                  5      nU" XU RL                  U5      sS S S 5        $ [>           [O        5          U R                  XU RL                  USS9nUsS S S 5        sS S S 5        $ ! , (       d  f       NP= f! , (       d  f       O= fS S S 5        g ! , (       d  f       g = f)N)r¶  é   r¯  Fztraced frame alreadyzin skipfileszSnon-infra torch dispatch mode present, this is not supported today in torch.compilezdynamo tracing is disabledz#skipping: %s (reason: %s, file: %s)rÃ  Ú__new__zcollections/__init__.pyÚ_makeÚddp_optimizerr   )ÚDDPOptimizer)Úbucket_bytes_capÚbackend_compile_fnr¾  zJDDPOptimizer only supports callback fns that know how to clone themselves.r)   rÍ   )(rÓ  r´   rQ  r.   r  rÜ  r¹  Úf_lastir¼  r*   Ú#inline_torch_dispatch_torch_compiler%   r&   Údisabler<  r-  rV  ró  rô  rõ  rW  râ   rã   r`   r×  rä   ré  rd  Úget_optimize_ddp_moder"   Ú_get_active_ddp_moduleÚcompile_lockÚ"torch._dynamo.backends.distributedrÉ  rÊ  rM  r¾  Ú
compile_fnrè  r$   )r¦   rë   rç  r¨  Úis_skipfileÚhas_started_executionÚshould_skip_for_dispatch_modeÚskip_reasonÚ
ddp_modulerÉ  rÈ  Úhijacked_callbackrÉ   s                r“   rì  ÚCatchErrorsWrapper.__call__´  s²  € ð Ñ&Ð&Ð&Ü�‰˜Ÿ™Ô%ä!×'Ò'¨¯©Ó5ˆÜ×Ñ˜wÓ&Ø$)§M¡MÔ4GÈÏÉÓ4UÑ$UÑ!à$)§M¡MÔ5HÈÏÉÓ5VÑ$VÐ!ô ×5×5Ü,LÓ,NÑ)ô @ÓAð *ö "ÞÜ�~�~æ-Ü × >Ñ >À	È5×QÑQô ×Ñ¤§¡×.Ñ.Þ(Ø"8‘KÜ ×&Ò& u§|¡|×4Ñ4Ø"0‘KÞ2Ø"w‘Kà">�Kä—	‘	Ø9Ø—L‘L×(Ñ(ØØ—L‘L×,Ñ,ô	ô &Ó'Ð'ð �L‰L×$Ñ$¨
Ó2°u·|±|×7KÑ7KÈyÓ7Xà�L‰L×$Ñ$×-Ñ-Ð.G×HÑHØ—‘×$Ñ$¨Ó/ô &Ó'Ð'Ü�=‰=×Ñ×4Ñ4Ó6¸/ÓIÜ0×GÒGÓIˆJÞÞ!ÝOá$0Ø)3×)DÑ)DØ+/×+IÑ+I×+cÑ+cñ%�Mô #Ø×6Ñ6Ð8M÷ñ ð ð eóð ð ×6Ñ6×JÑJØ)×4Ñ4óð &ñ
 -Ø¨D¯J©J¸ó÷# "‘\ö* Ô1Õ3à×3Ñ3Ø D§J¡J°À!ð 4ð ˆFð ÷ 4Ð3�\‰\÷+ "•\ú÷* 4Õ3ú�\�\Ž\ús1   ÊBM Ì$NÌ/M1Í	NÍ 
M.Í1
M?	Í;NÎ
N)r-  rè  N)rÍ  rÄ  rè  rR   r¿   rÀ   )rë   rƒ   rç  rñ  r¨  rò  r¿   r`   )r�   rŽ   r�   r�   r§   rì  r‘   rŒ   r’   r“   rÁ  rÁ  ®  s8   † ôð
[àð[ð *ð[ð @ð	[ð
 
÷[r’   rÁ  c                ó   • [        X5      $ r¡   )rÁ  )rÍ  rè  s     r“   Úcatch_errors_wrapperrÜ  	  s   € ô ˜hÓ.Ð.r’   )r›   z6Optional[torch._subclasses.fake_tensor.FakeTensorMode]r¿   rÀ   r¡   )rÆ   rJ  rÇ   rJ  rÈ   zOptional[dict[str, str]]r¿   r   r§  )rè   r   rÎ   rK  r¿   z	list[str])r'  úCallable[_P, _T]r¿   rÝ  )rë   rƒ   r¿   rÁ   )NF)
r_  r  rè   r   rë   úOptional[DynamoFrameType]r]  rÁ   r¿   rÀ   )re  rÝ  r¿   rÝ  )r¨  rò  r¿   r   rî  )r³  r~   r´  rÁ   r]  rÁ   rµ  rï  r¶  r¦  r¿   r¬  )rú  r�   r¿   r÷  )"rè   r$  rÇ   r³  r  r³  r  r³  rä  r´  r³  r~   r  z'list[torch.overrides.TorchFunctionMode]r´  rÁ   r  r^   r  rÛ  r  r³  r]  rÁ   rµ  rï  r¨  ú4Optional[dict[str, Union[int, FrameStateSizeEntry]]]rþ  úOptional[DistributedState]r¶  r¦  r¿   rS   )r“  r
   r¿   z%tuple[FunctionType, Optional[object]])r'  r
   r¿   zinspect.Signature)r“  r
   r  útuple[Any, ...]r  r>  r¿   r›  )r“  r
   r  rá  r  r>  r­  úOptional[list[Constraint]]r®  rÁ   r¿   r{  )rë   r›  r­  râ  r®  rÁ   r¿   r{  )rÍ  rÄ  r¿   rÄ  )rè   r$  rÇ   r³  r  r³  r  r³  rä  r´  r³  r~   r´  rÁ   r¼  rM  r]  rÁ   rµ  rï  r¨  rß  rþ  rà  r¶  r¦  r¿   r#  r<  )&rè   r   rÇ   r³  r  r³  r  r³  rä  r´  r³  r~   r´  rÁ   r]  rÁ   rµ  rï  rè  rR   rç  rñ  rÍ  r7   rë   rÞ  r¨  rß  rÌ  r   rÎ   rK  r¶  r¦  rÑ  zOptional[ConvertFrameBox]r¿   r`   )r³  r~   rè  rR   r¶  r¦  r¿   rƒ  )rÐ   rJ  r¿   rÀ   r  )rÍ  rÄ  rè  rR   r¿   rÁ  (  r?  Ú
__future__r   Úcollectionsr  r}  rb  rs  r+  r3  rS  r‚  rß   rô  rw  rk  rú   rˆ  rÜ  rz  Ú	threadingr  rT  rV  ÚtypingÚunittest.mockrË  r±   r   Úpathlibr   r   r   r   r	   r
   r   r   r   r   Útyping_extensionsr   r   rä   Útorch._loggingÚtorch._C._dynamo.guardsr   Útorch._dynamo.callbackr   Útorch._dynamo.distributedr   Útorch._dynamo.symbolic_convertr   r½  r   r   r   r   r   Útorch._utils_internalr   r   r   Útorch.fx._lazy_graph_moduler   Ú%torch.fx.experimental.symbolic_shapesr   r   Útorch.fx.graph_moduler    rÄ   Útorch.monitorr!   Útorch.nn.parallel.distributedr"   Útorch.utils._ordered_setr#   Útorch.utils._python_dispatchr$   r%   r&   Útorch.utils._tracebackr'   r(   rÄ  r*   r+   r,   r-   r.   Úbackends.registryr/   Úbytecode_analysisr0   r1   Úbytecode_transformationr2   r3   r4   r5   r6   rÍ  r7   r8   r9   r:   Ú
eval_framer;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   Úgraph_bytecode_inputsrN   r  rO   rP   rQ   rè  rR   r  rS   rT   ÚpgorU   rV   rW   Úreplay_recordrX   Úresume_executionrY   Úsymbolic_convertrZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd  rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   Úvariables.torch_functionrz   r   Únumpyr{   ÚModuleNotFoundErrorÚTYPE_CHECKINGÚcollections.abcr|   Útorch.utils.weakr}   r~   r¶  r   Úrepro.after_dynamor€   r�   r‚   rƒ   Úvariables.builderr„   Ú	getLoggerr�   rV  rå   ÚgetArtifactLoggerrò  r›  ÚRLockrÑ  r‡   rˆ   rŠ   rœ   rž   rÓ  rÔ  rÂ   r,  rÊ   rí   r.  Ú#suppress_torch_distributed_warningsrY  r`  r¦  ÚCounterra  rf  rd  rž  rª  r¬  rº  rö  Útorch.utils.hooksr÷  rø  rü  r!  r#  rA  rH  r0  r{  r–  rš  r«  r±  r›  r°  rÐ  r¾  rã  rƒ  rŠ  r´  r¼  ÚProtocolrÄ  rÁ  rÜ  rŒ   r’   r“   Ú<module>r     s,  ðòõ. #ã Û Û Û Û 
Û Û 	Û Û Û Û Û 	Û Û Û Û 
Û Û Û Û Û Û Ý Û Ý !Ý ß >Ó >ß :Õ :Ý 'Ý !ã Û Ý 4Ý 2Ý 4Ý 9ß MÓ MÝ %÷ñ õ
 ?÷õ QÝ &Ý AÝ /÷ñ ÷
 Mç EÕ EÝ 5ß G÷õ ÷ó ÷÷ ñ ÷÷ ÷ ó õ >÷ñ õ
 ß ?÷ñ õ
 +Ý ;÷õ õ "ß XÓ X÷÷ ÷ ÷ ÷ ÷ õ0 Jð Ó ðÛð
 
××ÐÝ(å4å-Ý'Ý4ß@Ñ@Ý6ð ×Ó˜Ó!€Ø�~Š~×/Ò/°¸*ÓE€Ø—.’.×2Ò2°8¸^ÓL€ð �‹Ó €áˆTƒ]€Ùˆtƒ_€÷	ñ 	ð%ØEð%à	ô%÷ñ ñ( ‹i€Ù‹y€à37Ð Ð0Ó 7ð ‡ƒÐ*Ó+àMQðØ	ðØ%ðØ2Jðàôó ,ðöôDQðh ×1Ò1óKó 2ðKðb (,Øð	*Øð*à
ð*ð %ð*ð ð	*ð
 
õ*ð €à×ÓÓð ÐFó ô
ôHðV ÷0ð 0ó ð0ðØ;ðàô÷.mñ mðd ØØ%)Ø(,ð
Øð
àð
ð ð
ð #ð	
ð
 &ð
ð õ
õ $å -ñ ,7«=€Ð(Ó 8ôð ð Ø%)ØHLØ48Ø(,ñ#OØ
ðOàðOð ðOð  ð	Oð
 ðOð ðOð ;ðOð ðOð $ðOð $ðOð $ðOð ðOð #ðOð FðOð  2ð!Oð" &ð#Oð$ ô%Oó ðOðd ÷8
ð 8
ó ð8
ðv ÷+ð +ó ð+ñ" �$Ñ÷3ð 3ó ð3ðl ÷Kð Kó ðKð\ ÷
ð 
ó ð
ôB/Aôd7ð (,ð%Ø	ð%à
ð%ð %ð%ð õ	%ðV (,ð$
ð
 /3Ø-2ñ$
Ø	ð$
à
ð$
ð %ð$
ð
 ,ð$
ð '+ð$
ð ö$
ðN ÷)ð )ó ð)ð /3Ø-2ñ	6Øð6ð ,ð6ð '+ð	6ð
 õ6ôtð> Ø%)ØHLØ48Ø(,ñjØ
ðjàðjð ðjð  ð	jð
 ðjð ðjð ðjð ðjð ðjð #ðjð Fðjð 2ðjð &ðjð  õ!jðt (,ØHLðpð" Ø(,ð 48ñ+pØ
ðpàðpð ðpð  ð	pð
 ðpð ðpð ðpð ðpð #ðpð ðpð &ðpð *ðpð %ðpð Fðpð  ð!pð" ð#pð$ &ð%pð* 1ð+pð, ö-p÷fH$ñ H$ð\ )-ð=Øð=àð=ð &ð=ð õ	=ô?õ@?ô	!˜6Ÿ?š?õ 	!÷aò aðH/Ø"ð/Ø+0ð/àö/øðB ó Ø	ƒBðús   ÈU ÕUÕU