§
    ŠŠtj†â ã                   ó¤+  — U d dl Z d dlZd dlmZ d dlmZmZmZmZ d dl	Z	d dl
Z	d dlmZ d dlmZmZmZmZ erd dlmZ d dlmZ e j                             dd	¦  «        d	k    Zd
Zdedz  fd„Zdedz  fd„Zdedz  fd„Zdedz  fd„Zdedz  fd„Zdedz  fd„Z defd„Z!defd„Z"e j                             dd	¦  «        d	k    Z#d
Z$dZ%d
Z& e¦   «         rdndZ' e(e j                             dd¦  «        ¦  «        Z)e(e*d<    edddd¬¦  «        Z+ee*d<   d
Z,ee*d<    e¦   «         Z-edz  e*d <    e¦   «         Z.edz  e*d!<    ed"d#d¬$¦  «        Z/ee*d%<   dZ0ee*d&<    e¦   «         Z1edz  e*d'<    e¦   «         Z2edz  e*d(<    ed)¬*¦  «        Z3ee*d+<   d
Z4ee*d,<   i Z5e6e7e7f         e*d-<   dZ8e(dz  e*d.<   d/Z9ed0         e*d1<   e j                             d2d3¦  «        d	k    Z:ee*d4<   e j                             d5d3¦  «        d	k    Z;ee*d6<   e j                             d7d3¦  «        d	k    Z<ee*d8<   e j                             d9 e¦   «         rd3nd	¦  «        d	k    Z=ee*d:<   e j                             d;d	¦  «        d	k    Z>e j                             d<d	¦  «        d	k    Z?d
Z@dZAe j                             d=d	¦  «        d	k    ZBe j                             d>¦  «        d	k    ZCe j                             d?¦  «        d	k    ZDe j                             d@d	¦  «        d	k    ZEe j                             dA e¦   «         rd3nd	¦  «        d	k    ZFdZGdZHdZIe j                             dBd3¦  «        d	k    ZJe j                             dC¦  «        d	k    ZKe j                             dDdE¦  «        ZLedF         e*dG<   dZMdZNd
ZO e"¦   «         ZPd
ZQd
ZRdZSd
ZTdZUe	jV        jW        jX        e*dH<   dZYe	jV        jW        jX        e*dI<   dZZe	jV        jW        j[        e*dJ<   dZ\e	jV        jW        jX        e*dK<   dZ]e	jV        jW        jX        e*dL<   dZ^e	jV        jW        jX        e*dM<   dZ_e	jV        jW        j`        dz  e*dN<   dZae	jV        jW        j`        dz  e*dO<   dZbd
Zcd
Zdd
ZedZfi Zge6e7e6e7ef         f         e*dP<   i Zhe6e7e6e7ef         f         e*dQ<   dZie j                             dRd	¦  «        d	k    Zjd
ZkdZldZmd
dSdTddUœZne6e7ef         e*dV<   dWZoedX         e*dY<   d
Zpg Zqere7eerdZ         gerdZ         f         z           e*d[<   dZse(dz  e*d\<   dZtd
Zud Zve(e*d]<   d^Zwed_         e*d`<   dZxee(ge(f         dz  e*da<   dbZyedc         e*dd<   d
Zzee*de<   d^Z{edf         e*dg<   dZ|ee(ge(f         dz  e*dh<   dbZ}edc         e*di<   d^Z~edf         e*dj<   dZee(ge(f         dz  e*dk<   dbZ€d
Z�ee*dl<   dZ‚e(dz  e*dm<   dZƒe(dz  e*dn<   doZ„ eddpdq¬r¦  «        Z…ee*ds<   e j                             dt¦  «        d	k    Z†e j                             du¦  «        d	k    Z‡ ed
dvdw¬r¦  «        Zˆee*dx<   e j                             dy¦  «        d	k    Z‰e j                             dz¦  «        d	k    ZŠe j                             d{¦  «        d	k    Z‹ ed|d
¬}¦  «        ZŒedz  e*d~<    e( e j�        dd€¦  «        ¦  «        ZŽ e( e j�        d�d‚¦  «        ¦  «        Z�de(dz  fdƒ„Z� e�¦   «         Z‘e(dz  e*d„<   e j                             d…d	¦  «        d	k    Z’e j                             d†d3¦  «        d	k    Z“e j                             d‡d3¦  «        d	k    Z”e j                             dˆ e¦   «         sd	nd3¦  «        d	k    Z•ee*d‰<   dZ–dŠe*d‹<   g Z—ere7         e*dŒ<   g Z˜ere7         e*d�<   d
Z™ee*dŽ<   g Zšere(         e*d�<   e j                             d�d‘¦  «         ›                    ¦   «         Zœde(dz  fd’„Z� e�¦   «         Zže(dz  e*d“<   e j                             d”d3¦  «        d	k    ZŸee*d•<   e	j         j¡        rd–nd—Z¢e j                             d˜d–¦  «         ›                    ¦   «         Z£e j                             d™e¢¦  «         ›                    ¦   «         Z¤e j                             dše¢¦  «         ›                    ¦   «         Z¥e j                             d›dœ¦  «         ›                    ¦   «         Z¦ed�         e*dž<   e j                             dŸdœ¦  «         ›                    ¦   «         Z§ed�         e*d <   d
Z¨ee*d¡<   d
Z©ee*d¢<   dZªee*d£<   dZ«ee*d¤<   dbZ¬ed¥         e*d¦<   dZ­ee*d§<   dZ®ee*d¨<   e j                             d©d3¦  «        d	k    Z¯ee*dª<   d
Z°d«Z±d
Z²e j                             d¬¦  «        d	k    Z³e j                             d­¦  «        d	k    Z´d®Zµd¯Z¶d¯Z·e j                             d°¦  «        d	k    Z¸ e(e j                             d±d²¦  «        ¦  «        Z¹ eºe j                             d³d´¦  «        ¦  «        Z»e j                             dµ¦  «        d	k    Z¼e j                             d¶¦  «        d	k    Z½ e(e j                             d·d	¦  «        ¦  «        Z¾d¸„ Z¿d¹„ ZÀ G dº„ d»¦  «        ZÁ G d¼„ d½¦  «        ZÂe j                             d¾d3¦  «        d	k    ZÃd¿e7defdÀ„ZÄd¿e7defdÁ„ZÅd¿e7defdÂ„ZÆe j                             dÃdœ¦  «        ZÇe	j         j¡        sd	nd3ZÈe j                             dÄeÈ¦  «        d	k    ZÉe j                             dÅd3¦  «        d	k    ZÊe j                             dÆd3¦  «        d	k    ZËe j                             dÇd	¦  «        d	k    ZÌe j                             dÈ¦  «        d	k    ZÍdÉZÎdÊZÏdZÐe(dz  e*dË<   dÌZÑdÍZÒdZÓe(dz  e*dÎ<   dÏZÔdZÕe(dz  e*dÐ<    edÑd¬Ò¦  «        ZÖee*dÓ<   d
Z×d
ZØd
ZÙdZÚe j                             dÔ¦  «        d	k    ZÛdZÜeg dÕf         dz  e*dÖ<   d
ZÝe j                             d×¦  «        d	k    ZÞee*dØ<   e j                             dÙ¦  «        d	k    Zßee*dÚ<   e j                             dÛdÜ¦  «        Zàe j                             dÝ e¦   «         rd3nd	¦  «        d	k    Záee*dÞ<   e j                             dßd	¦  «        d	k    Zâee*dà<   dZãee*dá<   dâZäe j                             dãd	¦  «        d	k    ZådTZædäZçdåZèdäZédZêe(dz  e*dæ<   dÍZëdÍZìd
ZídÍZîd
Zïd
Zð e j�        dçd	¦  «        d	k    Zñ e j�        dè¦  «        d	k    Zò e j�        dé¦  «        d	k    Zó e(e j                             dêd ¦  «        ¦  «        Zôe j                             dëd3¦  «        d	k    ZõdZöd
Z÷dZød
Zùd
Zúd
Zûd
ZüdTZýdTZþdZÿdì�Z dÍ�Zd
�Zd�Zd
�Zd�Zeºdz  e*dí<   dî�Zeºdz  e*dï<   dð�Ze(e*dñ<   d�Zd
�Z	dòe	�j
        v p	dóe	�j
        v �Z e¦   «         p�e�Ze j                             dôd	¦  «        d	k    �Zd�Ze7dz  e*dõ<   d�Ze7dz  e*dö<    ed÷dÜ¬Ò¦  «        �Ze7e*dø<   de7fdù„�Z �e¦   «         �Ze7e*dú<   dû�Ze(e*dü<    edýdþd¬$¦  «        �Zee*dÿ<    e�d d
¬Ò¦  «        �Zee*�d<   d
�Zd€�Z�d�dg�Zere�d         e7z           e*�d<   d
�Zee*�d<   e j                             �dd3¦  «        d	k    �Z�d�Ze(e*�d	<   �d
�Ze(e*�d<   �d�Zeºe*�d<    G �d„ �d¦  «        �Z G �d„ �d¦  «        �Zdef�d„�Z de(f�d„�Z! e¦   «         rdn
 �e!¦   «         �Z"e(dz  e*�d<    e�d�dd¬$¦  «        �Z#ee*�d<    e�d¬}¦  «        �Z$e(e*�d<    e!¦   «         �Z%ee*�d<    e�d¬*¦  «        �Z&ee*�d<    e�d�dd
¬$¦  «        �Z'ee*�d<   e j                             �d d3¦  «        d	k    �Z(ee*�d!<    e�d"¬*¦  «        �Z)ee*�d#<   e j                             �d$d3¦  «        d	k    �Z*ee*�d%<   e j                             �d&d	¦  «        d	k    �Z+ee*�d'<   e j                             �d(d	¦  «        d	k    �Z,ee*�d)<   e7dz  e*�d*<    e¦   «         r‚	 d �d+�l-�m.�Z. �e/rM �e.�j0        e �j1        � 2                    �e/� 3                    �d,e �j4        ¦  «        �d-¦  «        ¦  «        �Z5n �e.�j0        �d-¦  «        �Z5n# �e6�e7f$ r d�Z5Y nw xY wd�Z5dâ�Z8e j                             �d.d	¦  «        d	k    �Z9e j                             �d/d	¦  «        d	k    �Z:d
�Z;d
�Z<d�Z=d
�Z>�d
�Z?�d0�Z@d
�ZAd�ZBd
�ZCee*�d1<   e j                             �d2d3¦  «        d	k    �ZDd
�ZEd
�ZFd
�ZGd
�ZH e¦   «          �ZIee*�d3<   e j                             �d4dÜ¦  «        �ZJ�eJdÜk    �ZK�eJd	k    rdÜn�eJ�ZLe j                             �d5d¦  «        �ZMe7dz  e*�d6<   e j                             �d7¦  «        d	k    �ZNd
�ZOe j                             �d8d3¦  «        d	k    �ZPee*�d9<   d
�ZQee*�d:<   d
�ZRee*�d;<   d
�ZSee*�d<<   d
�ZTee*�d=<   d
�ZUee*�d><   d
�ZVee*�d?<   d
�ZWee*�d@<   d
�ZXee*�dA<   e j                             �dBd3¦  «        d	k    �ZYe j                             �dCd3¦  «        d	k    �ZZee*�dD<   d�Z[ee*�dE<   i �Z\e6e7e6e7ef         f         e*�dF<    e(e j                             �dG�dH¦  «        ¦  «        �Z]e(e*�dI<    e(e j                             �dJd3¦  «        ¦  «        �Z^e(e*�dK<   d
�Z_ee*�dL<   de7dz  f�dM„�Z` e�dNdÜ¬Ò¦  «        �Zae7e*�dO<    G �dP„ �dQ¦  «        �Zb G �dR„ �dS¦  «        �Zc G �dT„ �dU¦  «        �Zd G �dV„ �dW¦  «        �Ze G �dX„ �dY¦  «        �Zf G �dZ„ �d[¦  «        �Zg e�eg¦  «         G �d\„ �d]�eg¦  «        ¦   «         �Zh e�eg¦  «         G �d^„ �d_�eg¦  «        ¦   «         �Zi G �d`„ �da¦  «        �Zj�dS�Zke�db         e*�dc<   �dU�Zle�dd         e*�de<   �df�Zme�df         e*�dg<   �dU�Zne�dU         e*�dh<    G �di„ �dj¦  «        �Zo G �dk„ �dl¦  «        �Zp�dme7�dne7de7f�do„�Zq G �dp„ �dq¦  «        �Zrg �dr¢�Zsere7         e*�ds<   g �dt¢�Ztere7         e*�du<   dÖg�Zuere7         e*�dv<   g �Zveree	�jw        e	�jw        e	�jw        gdf                  e*�dw<    e j�        �dxd	¦  «        d	k    �Zx G �dy„ �dz¦  «        �Zy G �d{„ �d|¦  «        �Zzerd �d}�l{T  G �d~„ �d¦  «        �Z|e j                             �d€d3¦  «        d	k    �Z}ee*�d�<   e j                             �d‚d	¦  «        d	k    �Z~ee*�dƒ<    ee�j        �e€         ¦  «         dS („  é    N)ÚCallable)ÚAnyÚcastÚLiteralÚTYPE_CHECKING)Ú	is_fbcode)ÚConfigÚget_tristate_envÚinherit_fields_fromÚinstall_config_module)ÚInductorChoices)ÚCUDAGraphPolicyÚTORCHINDUCTOR_INPLACE_PADDINGÚ1FÚreturnc                  ó    — t          d¦  «        S )NÚ#TORCHINDUCTOR_FX_GRAPH_REMOTE_CACHE©r
   © ó    úT/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_inductor/config.pyÚfx_graph_remote_cache_defaultr      ó   € ÝÐAÑBÔBÐBr   c                  óš   — t           j                             d¦  «        dk    rdS t           j                             d¦  «        dk    rdS d S )NÚTORCHINDUCTOR_VEC_ISA_OKr   TÚ0F©ÚosÚenvironÚgetr   r   r   Úvec_isa_ok_defaultr!      sE   € Ý	„z‡~‚~Ð0Ñ1Ô1°SÒ8Ð8ØˆtÝ	„z‡~‚~Ð0Ñ1Ô1°SÒ8Ð8ØˆuØˆ4r   c                  ó    — t          d¦  «        S )NÚ#TORCHINDUCTOR_AUTOTUNE_REMOTE_CACHEr   r   r   r   Úautotune_remote_cache_defaultr$   %   r   r   c                  ó    — t          d¦  «        S )NÚ+TORCHINDUCTOR_BUNDLED_AUTOTUNE_REMOTE_CACHEr   r   r   r   Ú%bundled_autotune_remote_cache_defaultr'   )   s   € ÝÐIÑJÔJÐJr   c                  óB   — t          dt          ¦   «         sdnd ¦  «        S )NÚ/TORCHINDUCTOR_BUNDLE_TRITON_INTO_FX_GRAPH_CACHET)r
   r   r   r   r   Ú)bundle_triton_into_fx_graph_cache_defaultr*   -   s'   € ÝØ9Ý‘K”KÐ)ˆˆ Tñô ð r   c                  ó    — t          d¦  «        S )NÚ&TORCHINDUCTOR_AUTOTUNE_AT_COMPILE_TIMEr   r   r   r   Ú autotune_at_compile_time_defaultr-   4   s   € ÝÐDÑEÔEÐEr   c                  óÒ   — d} dt           j        v r#t           j                             d¦  «        dk    S t          ¦   «         r%t          j                             d¦  «        }|| k    S dS )Né   Ú&TORCHINDUCTOR_USE_STATIC_CUDA_LAUNCHERr   z-pytorch/inductor:static_cuda_launcher_versionT©r   r   r    r   ÚtorchÚ_utils_internalÚjustknobs_getval_int)ÚSTATIC_CUDA_LAUNCHER_VERSIONÚversions     r   Ústatic_cuda_launcher_defaultr7   8   sk   € Ø#$Ð à/µ2´:Ð=Ð=ÝŒz�~Š~ÐFÑGÔGÈ3ÒNÐNÝ	‰Œð ÝÔ'×<Ò<Ø;ñ
ô 
ˆð Ð6Ò6Ð6ð ˆtr   c                  óÖ   — d} dt           j        v r#t           j                             d¦  «        dk    S t          ¦   «         r'd}t          j                             |¦  «        }|| k    S dS )Nr   ÚTORCHINDUCTOR_PROLOGUE_FUSIONr   z(pytorch/inductor:prologue_fusion_versionTr1   )ÚENABLE_PROLOGUE_FUSION_VERSIONÚjk_namer6   s      r   Úprologue_fusion_enabledr<   G   sg   € Ø%&Ð"à&­"¬*Ð4Ð4ÝŒz�~Š~Ð=Ñ>Ô>À#ÒEÐEÝ	‰Œð Ø<ˆÝÔ'×<Ò<¸WÑEÔEˆØÐ8Ò8Ð8àˆtr   Ú"TORCHDYNAMO_AUTO_FUNCTIONALIZED_V2Tú-/logs/dedicated_log_torch_compile_worker_rankÚ,TORCHINDUCTOR_PRECOMPILATION_TIMEOUT_SECONDSi,  Úprecompilation_timeout_secondsz0pytorch/remote_cache:enable_local_fx_graph_cacheÚ$TORCHINDUCTOR_FX_GRAPH_CACHE_DEFAULTÚTORCHINDUCTOR_FX_GRAPH_CACHE)ÚjustknobÚenv_name_defaultÚenv_name_forceÚdefaultÚfx_graph_cacheÚremote_gemm_autotune_cacheÚfx_graph_remote_cacheÚ!bundle_triton_into_fx_graph_cachez>pytorch/remote_cache:enable_non_blocking_remote_cache_write_v2Ú-TORCHINDUCTOR_NON_BLOCKING_REMOTE_CACHE_WRITE)rC   rE   rF   Únon_blocking_remote_cache_writeÚautotune_local_cacheÚautotune_remote_cacheÚbundled_autotune_remote_cachez*torch.compiler.config.force_disable_caches)ÚaliasÚforce_disable_cachesÚ&unsafe_skip_cache_dynamic_shape_guardsÚ!unsafe_marked_cacheable_functionsÚsleep_sec_TESTING_ONLYÚneeds_fixed_stride_order)rU   Úflexible_layoutÚ'triton_kernel_default_layout_constraintÚTORCHINDUCTOR_CPP_WRAPPERr   Úcpp_wrapperÚ(TORCHINDUCTOR_CPP_WRAPPER_BUILD_SEPARATEÚcpp_wrapper_build_separateÚTORCHINDUCTOR_FX_WRAPPERÚ
fx_wrapperÚ*TORCHINDUCTOR_CPP_CACHE_PRECOMPILE_HEADERSÚcpp_cache_precompile_headersÚTORCHINDUCTOR_ONLINE_SOFTMAXÚ$TORCHINDUCTOR_APPLY_GUMBEL_MAX_TRICKÚTORCHINDUCTOR_SIZE_ASSERTSÚTORCHINDUCTOR_NAN_ASSERTSÚ(TORCHINDUCTOR_RUNTIME_TRITON_NAN_ASSERTSÚTORCHINDUCTOR_SCALAR_ASSERTSÚTORCHINDUCTOR_ALIGNMENT_ASSERTSÚTORCHINDUCTOR_MEMORY_PLANNINGÚTORCHINDUCTOR_USE_FAST_MATHÚTORCHINDUCTOR_MEMORY_POOLÚintermediates)Únonerj   ÚoutputsÚcombinedÚmemory_poolÚpost_grad_custom_pre_passÚpost_grad_custom_post_passÚcustom_partitioner_fnÚjoint_custom_pre_passÚjoint_custom_post_passÚpre_grad_custom_passÚ_pre_fusion_custom_passÚ_post_fusion_custom_passÚpre_grad_fusion_optionsÚpost_grad_fusion_optionsÚ"TORCHINDUCTOR_DYNAMIC_SCALE_RBLOCKg-Cëâ6?é   )Úpre_gradÚ	precisionÚnum_iterationsÚrequires_optimizerÚfx_passes_numeric_checkÚ	heuristic)rF   ÚtritonÚatenr€   Úmixed_mm_choicez+torch._inductor.scheduler.BaseSchedulerNodeÚ'reorder_for_compute_comm_overlap_passesÚreorder_prefetch_limitÚ&size_threshold_for_succ_based_strategyrk   )rk   ÚallÚ	only_fsdpÚbucket_all_gathers_fxÚ.bucket_all_gathers_fx_bucket_size_determinatorrF   )rF   Ú
custom_opsÚcustom_ops_multidtypeÚbucket_all_gathers_bucket_modeÚdedup_reduce_scatters©rk   r‡   Úbucket_reduce_scatters_fxÚ2bucket_reduce_scatters_fx_bucket_size_determinatorÚ"bucket_reduce_scatters_bucket_modeÚbucket_all_reduces_fxÚ.bucket_all_reduces_fx_bucket_size_determinatorÚ!runtime_estimations_mms_benchmarkÚintra_node_bwÚinter_node_bwg      I@Ú*TORCHINDUCTOR_USE_EXPERIMENTAL_BENCHMARKERz-pytorch/inductor:use_experimental_benchmarker)rF   rE   rC   Úuse_experimental_benchmarkerÚ+TORCHINDUCTOR_DISTRIBUTED_MAX_AUTOTUNE_GEMMÚ&TORCHINDUCTOR_PIPELINE_GEMM_AUTOTUNINGÚ,TORCHINDUCTOR_USE_TORCH_PROFILER_BENCHMARKERz/pytorch/inductor:use_torch_profiler_benchmarkerÚuse_torch_profiler_benchmarkerÚTORCHINDUCTOR_MAX_AUTOTUNEÚ$TORCHINDUCTOR_MAX_AUTOTUNE_POINTWISEÚTORCHINDUCTOR_MAX_AUTOTUNE_GEMMÚ"TORCHINDUCTOR_INCREMENTAL_AUTOTUNE)rF   Úincremental_autotuneÚ%TORCHINDUCTOR_DEFAULT_AUTOTUNE_WARMUPé   Ú"TORCHINDUCTOR_DEFAULT_AUTOTUNE_REPéd   c                  ó–   — t           j                             d¦  «        } | €dS |                      ¦   «         dv rd S t	          | ¦  «        S )NÚ,TORCHINDUCTOR_AUTOTUNE_NUM_CHOICES_DISPLAYEDé
   r�   ©r   r   r    ÚlowerÚint©Úenv_vals    r   Ú'_autotune_num_choices_displayed_defaultr¯     sD   € ÝŒj�nŠnÐKÑLÔL€GØ€ØˆrØ‡}‚}�„˜/Ð)Ð)ØˆtÝˆw‰<Œ<Ðr   Úautotune_num_choices_displayedÚ/TORCHINDUCTOR_MAX_AUTOTUNE_REPORT_CHOICES_STATSÚ<TORCHINDUCTOR_MAX_AUTOTUNE_PRUNE_CHOICES_BASED_ON_SHARED_MEMÚ-TORCHINDUCTOR_TRITON_DISABLE_DEVICE_DETECTIONÚTORCHINDUCTOR_GRAPH_PARTITIONÚgraph_partitionzCUDAGraphPolicy | NoneÚcudagraph_policyÚcustom_should_partition_opsÚcudagraph_unsafe_unbacked_opsÚ#max_autotune_allow_flexible_layoutsÚmulti_kernel_hintsÚ(TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDSzATEN,TRITON,CPPc                  ó�   — t           j                             dd¦  «        } |                      ¦   «         dv rd S t	          | ¦  «        S )NÚ*TORCHINDUCTOR_NVGEMM_MAX_PROFILING_CONFIGSÚ5r�   rª   r­   s    r   Ú%_nvgemm_max_profiling_configs_defaultr¿   r  s<   € ÝŒj�nŠnÐIÈ3ÑOÔO€GØ‡}‚}�„˜/Ð)Ð)ØˆtÝˆw‰<Œ<Ðr   Únvgemm_max_profiling_configsÚ'TORCHINDUCTOR_NVGEMM_SUPPLEMENT_CONFIGSÚnvgemm_supplement_configszATEN,TRITONÚATENÚ(TORCHINDUCTOR_MAX_AUTOTUNE_CONV_BACKENDSÚ3TORCHINDUCTOR_MAX_AUTOTUNE_BWD_WEIGHT_CONV_BACKENDSÚ2TORCHINDUCTOR_MAX_AUTOTUNE_BWD_INPUT_CONV_BACKENDSÚ,TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_SEARCH_SPACEÚDEFAULT)rÈ   Ú
EXHAUSTIVEÚmax_autotune_gemm_search_spaceÚ,TORCHINDUCTOR_MAX_AUTOTUNE_FLEX_SEARCH_SPACEÚmax_autotune_flex_search_spaceÚfallback_by_defaultÚselective_decomposeÚuse_dceÚuse_pre_grad_passes)ÚearlyÚlaterF   Úpre_grad_pass_timingÚuse_joint_graph_passesÚuse_post_grad_passesÚCUTEDSL_ENABLE_AUTOTUNINGÚcutedsl_enable_autotuningi    ÚTORCHINDUCTOR_SAVE_ARGSÚ!TORCHINDUCTOR_AUTOTUNE_IN_SUBPROCg      N@g        Ú#TORCHINDUCTOR_AUTOTUNE_MULTI_DEVICEÚ(TORCHINDUCTOR_COLLECTIVE_BENCHMARK_NRUNSÚ50Ú*TORCHINDUCTOR_COLLECTIVE_BENCHMARK_TIMEOUTÚ30Ú'TORCHINDUCTOR_COORDINATE_DESCENT_TUNINGÚ5TORCHINDUCTOR_COORDINATE_DESCENT_CHECK_ALL_DIRECTIONSÚ'TORCHINDUCTOR_COORDINATE_DESCENT_RADIUSc                  ól   — t           j                             dd¦  «                             d¦  «        } | S )NÚ#TORCHINDUCTOR_AUTOHEURISTIC_COLLECTÚ ú,©r   r   r    Úsplit)Úcollect_envs    r   Ú _parse_autoheuristic_collect_envré     s-   € Ý”*—.’.Ð!FÈÑKÔK×QÒQÐRUÑVÔV€KØÐr   c                  ól   — t           j                             dd¦  «                             d¦  «        } | S )NÚTORCHINDUCTOR_AUTOHEURISTIC_USEÚmixed_mmrå   ræ   )Úuse_envs    r   Ú_parse_autoheuristic_use_envrî     s,   € ÝŒj�nŠnÐ>À
ÑKÔK×QÒQÐRUÑVÔV€GØ€Nr   c                   óB   — e Zd ZdZd e¦   «         v Zd e¦   «         v ZdS )Úautoheuristic_collectzT
    Config for which autoheuristic optimizations should collect training data.
    Úpad_mmrì   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ré   rñ   rì   r   r   r   rð   rð     sB   € € € € € ðð ð Ð9Ð9Ñ;Ô;Ð;€FØÐ=Ð=Ñ?Ô?Ð?€H€H€Hr   rð   c                   óR   — e Zd ZdZd e¦   «         v rdndZd e¦   «         v rdndZdS )Úautoheuristic_usezU
    Config for which autoheuristic optimizations should use learned heuristics.
    rñ   TNrì   )rò   ró   rô   rõ   rî   rñ   rì   r   r   r   r÷   r÷     sT   € € € € € ðð ð Ð!=Ð!=Ñ!?Ô!?Ð?Ð?ˆTˆTÀT€FØ!Ð%AÐ%AÑ%CÔ%CÐCÐCˆtˆtÈ€H€H€Hr   r÷   Ú'TORCHINDUCTOR_RUN_JIT_POST_COMPILE_HOOKÚnamec                 ó>   — t          | ¦  «        pt          | ¦  «        S ©N)Úcollect_autoheuristicÚuse_autoheuristic©rù   s    r   Úrun_autoheuristicrÿ   $  s   € Ý  Ñ&Ô&ÐAÕ*;¸DÑ*AÔ*AÐAr   c                 óv   — t          t          | ¦  «        rt          t          | ¦  «        S | t          ¦   «         v S rû   )Úhasattrrð   Úgetattrré   rþ   s    r   rü   rü   (  s:   € ÝÕ$ dÑ+Ô+ð :ÝÕ,¨dÑ3Ô3Ð3ð Õ7Ñ9Ô9Ð9Ð9r   c                 óª   — t          t          | ¦  «        r/t          t          | ¦  «        }|€t          j        j        j        S |S | t          ¦   «         v S rû   )r  r÷   r  r2   Ú	_inductorÚconfigÚdeterministicrî   )rù   Úattrs     r   rý   rý   0  sQ   € ÝÕ  $Ñ'Ô'ð 6ÝÕ(¨$Ñ/Ô/ˆØˆ<Ý”?Ô)Ô7Ð7Øˆð Õ3Ñ5Ô5Ð5Ð5r   Ú$TORCHINDUCTOR_AUTOHEURISTIC_LOG_PATHÚ!TORCHINDUCTOR_LAYOUT_OPTIMIZATIONÚTORCHINDUCTOR_FORCE_LAYOUT_OPTÚ#TORCHINDUCTOR_CACHE_SDPA_CONSTRAINTÚ TORCHINDUCTOR_KEEP_OUTPUT_STRIDEÚTORCHINDUCTOR_WARN_MIX_LAYOUTé   é   Úrealize_opcount_thresholdé2   é   Úrealize_acc_reads_thresholdé   Ú realize_acc_reads_size_thresholdÚ)TORCHINDUCTOR_DELAY_REALIZE_CHEAP_OUTPUTS©rE   rF   Údelay_realize_cheap_outputsÚ.TORCHINDUCTOR_ASSUME_UNALIGNED_FALLBACK_OUTPUTr   Úinductor_choices_classÚTORCHINDUCTOR_DEBUG_FUSIONÚdebug_fusionÚTORCHINDUCTOR_BENCHMARK_FUSIONÚbenchmark_fusionÚ#TORCHINDUCTOR_ENABLED_METRIC_TABLESrä   Ú(TORCHINDUCTOR_LOOP_ORDERING_AFTER_FUSIONÚloop_ordering_after_fusionÚ*TORCHINDUCTOR_LOOP_REINDEXING_AFTER_FUSIONÚloop_reindexing_after_fusionÚloop_index_inversion_in_fusionr©   Ú'TORCHINDUCTOR_BENCHMARK_EPILOGUE_FUSIONé@   çš™™™™™ñ?Úmax_fusion_unique_io_buffersÚTORCHINDUCTOR_SPLIT_REDUCTIONSÚTORCHINDUCTOR_DETERMINISTICÚTORCHINDUCTOR_BATCH_INVARIANTÚTORCHINDUCTOR_MIN_NUM_SPLITÚTORCHINDUCTOR_BENCHMARK_KERNELéú   Ú$combo_kernel_peak_memory_increase_gbgš™™™™™©?Ú&combo_kernel_peak_memory_pct_thresholdéÿÿÿÿÚcombo_kernel_max_distanceÚdevÚgitÚ0TORCHINDUCTOR_OPTIMIZE_SCATTER_UPON_CONST_TENSORÚadd_pre_grad_passesÚremove_pre_grad_passesÚTORCHINDUCTOR_DISABLED_PASSESÚdisabled_passesc                  ón   — dt           j        v rt           j        d         } nd} | dv sJ d| › �¦   «         ‚| S )NÚTORCHINDUCTOR_WORKER_STARTÚ
subprocess)r<  ÚforkÚspawnzInvalid start method: )r   r   )Ústart_methods    r   Údecide_worker_start_methodr@  Y  s^   € Ø#¥r¤zÐ1Ð1Ý”zÐ">Ô?ˆˆà#ˆØð ð ð ð ð / Ð.Ð.ñ	ô ð ð
 Ðr   Úworker_start_methodé   Úsmall_memory_access_thresholdz(pytorch/compiler:worker_suppress_loggingÚ%TORCHINDUCTOR_WORKER_SUPPRESS_LOGGINGÚworker_suppress_loggingÚLOG_TLPARSEÚlog_tlparseÚfuse_ddp_with_concat_opÚschedule_comm_wait).NÚ_fuse_ddp_communication_passesÚ_micro_pipeline_tpÚ)TORCHINDUCTOR_PARTITIONED_SCATTER_ENABLEDr/   Ú"partitioned_scatter_min_partitionsé€   Ú"partitioned_scatter_max_partitionsgš™™™™™¹?Ú!partitioned_scatter_memory_budgetc                   ó,   — e Zd ZU dZeed<   dZeed<   dS )Ú_collectiveFÚauto_selecti   Ú#one_shot_all_reduce_threshold_bytesN)rò   ró   rô   rS  ÚboolÚ__annotations__rT  r¬   r   r   r   rR  rR  £  s3   € € € € € € Ø€K�ÐÐÑØ/9Ð'¨Ð9Ð9Ñ9Ð9Ð9r   rR  c                   ó~  — e Zd ZU dZdZeed<   dZedz  ed<   dZedz  ed<   dZ	e
dz  ed<   dZedz  ed<   dZeej        j        gedz  f         dz  ed	<   d
Zed         ed<   dZed         ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZe
dz  ed<   dZeed<   dZedz  ed<   dZeed<   dZeed<   dZed         dz  ed<   dZ eed<   dZ!eed<   dZ"ed         ed<   dZ#eed <   dZ$eed!<   dZ%eed"<   d#Z&e
ed$<   dZ'eed%<   dZ(edz  ed&<   d'Z)eed(<   d)Z*eed*<   dZ+eed+<   d,Z,eed-<   dZ-eed.<   dS )/Úaten_distributed_optimizationszDConfiguration for distributed optimization passes on ATen FX graphs.FÚenable_overlap_schedulingNÚcollective_bucketingÚinsert_overlap_depsÚmax_compute_pre_fetchÚcompute_overlap_multiplerÚcustom_runtime_estimationÚ
analytical)r_  Ú	benchmarkÚcollective_estimatorr`  Úcompute_estimatorÚ'profile_guided_estimations_profile_pathÚmax_memory_increase_gbÚmax_memory_increase_ratioÚmax_in_flight_gbÚmax_coll_distanceÚ!log_final_collectives_estimationsÚbucket_exposed_firstÚbucket_only_internode_commsTÚenable_fusion_regions)rF   r‹   rŒ   Ú	coalescedÚbucket_modeÚ&prioritize_bucketing_during_schedulingÚ
spmd_checkÚwarn)rp  ÚerrorÚspmd_mismatchÚ!overlap_scheduling_autofix_cyclesÚ!enable_low_contention_collectivesÚ!low_contention_skip_overlap_checkrB  Ú!low_contention_min_bytes_per_rankÚpre_bucketing_fsdp_collectivesÚ,pre_bucketing_fsdp_collectives_bucket_cap_mbg      $@Ú0pre_bucketing_fsdp_collectives_min_bucket_cap_mbg     @@Ú0pre_bucketing_fsdp_collectives_max_bucket_cap_mbÚ&pre_bucketing_fsdp_collectives_verboseg      ð?Ú@pre_bucketing_fsdp_collectives_saturation_calibration_multiplierÚallow_comms_decompositions).rò   ró   rô   rõ   rY  rU  rV  rZ  r[  r\  r¬   r]  Úfloatr^  r   r2   ÚfxÚNodera  r   rb  rc  Ústrrd  re  rf  rg  rh  ri  rj  rk  rm  rn  ro  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r   r   r   rX  rX  ¨  sæ  € € € € € € ØNÐNð ',Ð˜tÐ+Ð+Ñ+ð )-Ð˜$ ™+Ð,Ð,Ñ,ð (,Ð˜ ™Ð+Ð+Ñ+ð )-Ð˜3 ™:Ð,Ð,Ñ,à.2Ð˜u t™|Ð2Ð2Ñ2ð QUÐ˜x¨¬¬¨¸À¹Ð(EÔFÈÑMÐTÐTÑTð @LÐ˜'Ð";Ô<ÐKÐKÑKð =HÐ�wÐ8Ô9ÐGÐGÑGð ;?Ð+¨S°4©ZÐ>Ð>Ñ>ð ,0Ð˜E D™LÐ/Ð/Ñ/Ø.2Ð˜u t™|Ð2Ð2Ñ2ð &*Ð�e˜d‘lÐ)Ð)Ñ)ð %)Ð�s˜T‘zÐ(Ð(Ñ(Ø.3Ð% tÐ3Ð3Ñ3ð )-Ð˜$ ™+Ð,Ð,Ñ,ð ).Ð Ð-Ð-Ñ-ð
 #'Ð˜4Ð&Ð&Ñ&ð 	ð ØÐMÔNÐQUÑUðð ñ ð
 48Ð*¨DÐ7Ð7Ñ7ð €J�ÐÐÑð
 /5€M�7˜?Ô+Ð4Ð4Ñ4ð
 /4Ð% tÐ3Ð3Ñ3ð /4Ð% tÐ3Ð3Ñ3ð /4Ð% tÐ3Ð3Ñ3ð .>Ð% sÐ=Ð=Ñ=ð
 ,0Ð" DÐ/Ð/Ñ/ð BFÐ0°%¸$±,ÐEÐEÑEð ?CÐ4°eÐBÐBÑBð ?DÐ4°eÐCÐCÑCð 49Ð*¨DÐ8Ð8Ñ8ð ORÐDÀeÐQÐQÑQð (-Ð Ð,Ð,Ñ,Ð,Ð,r   rX  c                  óT   — d} d}t           j                             |¦  «        }| |k    S )a   
    TODO: Remove when parallel compiled is fully enabled internally. For rollout, use a
    knob to enable / disable. The justknob should not be performed at import, however.
    So for fbcode, we assign compile_threads to 'None' below and initialize lazily in
    async_compile.py.
    rz   z0pytorch/inductor:enable_parallel_compile_version)r2   r3   r4   )ÚENABLE_PARALLEL_COMPILE_VERSIONr;   r6   s      r   Ú#parallel_compile_enabled_internallyr„  .  s0   € ð '(Ð#à@€GÝÔ#×8Ò8¸ÑAÔA€GØ*¨gÒ5Ð5r   c                  ó  — ddl } |                      t          ¦  «        }dt          j        v r6t          t          j        d         ¦  «        }|                     d|¦  «         n¤t          j        dk    rd}|                     d¦  «         n|t          ¦   «         r&t          ¦   «         sd}|                     d¦  «         nHt          j                             ¦   «         }|sJ ‚t          d	|¦  «        }|                     d
|¦  «         |S )a!  
    Here are the precedence to decide compile_threads
    1. User can override it by TORCHINDUCTOR_COMPILE_THREADS.  One may want to disable async compiling by
       setting this to 1 to make pdb happy.
    2. Set to 1 if it's win32 platform
    3. decide by the number of CPU cores
    r   NÚTORCHINDUCTOR_COMPILE_THREADSz!compile_threads set to %d via envÚwin32rz   z"compile_threads set to 1 for win32z"compile_threads set to 1 in fbcodeé    zcompile_threads set to %d)ÚloggingÚ	getLoggerrò   r   r   r¬   ÚinfoÚsysÚplatformr   r„  r2   Ú_utilsÚ	cpu_countÚmin)r‰  ÚlogÚcompile_threadsr�  s       r   Údecide_compile_threadsr“  <  s  € ð €N€N€Nð ×
Ò
�HÑ
%Ô
%€Cà&­"¬*Ð4Ð4Ý�bœjÐ)HÔIÑJÔJˆØ�ŠÐ4°oÑFÔFÐFÐFÝ	Œ˜Ò	 Ð	 ØˆØ�ŠÐ5Ñ6Ô6Ð6Ð6Ý	‰Œð ?Õ@ÑBÔBð ?ØˆØ�ŠÐ5Ñ6Ô6Ð6Ð6å”L×*Ò*Ñ,Ô,ˆ	ØÐÐˆyÝ˜b )Ñ,Ô,ˆØ�ŠÐ,¨oÑ>Ô>Ð>àÐr   r’  z+pytorch/inductor:quiesce_async_compile_poolÚ(TORCHINDUCTOR_QUIESCE_ASYNC_COMPILE_POOLÚquiesce_async_compile_poolé<   Úquiesce_async_compile_timeÚuse_static_cuda_launcherz/torch._inductor.config.use_static_cuda_launcherÚuse_static_triton_launcherz:pytorch/inductor:static_launch_user_defined_triton_kernelsÚ7TORCHINDUCTOR_STATIC_LAUNCH_USER_DEFINED_TRITON_KERNELSÚ)static_launch_user_defined_triton_kernelsÚ)TORCHINDUCTOR_STRICT_STATIC_CUDA_LAUNCHERÚstrict_static_cuda_launcherz2torch._inductor.config.strict_static_cuda_launcherÚstrict_static_triton_launcherÚ#TORCHINDUCTOR_KEEP_STATIC_CUBIN_RAWÚkeep_static_cubin_rawÚ&TORCHINDUCTOR_USE_FAST_TRITON_LAUNCHERÚuse_fast_triton_launcherÚ(TORCHINDUCTOR_USE_LAUNCH_METADATA_SCHEMAÚuse_launch_metadata_schemaÚglobal_cache_dir)Úparutilú.zfb/cacheÚTORCHINDUCTOR_SHAPE_PADDINGÚ#TORCHINDUCTOR_COMPREHENSIVE_PADDINGé   Úforce_shape_padÚTORCHINDUCTOR_PERMUTE_FUSIONÚ_use_fp64_for_unbacked_floatsÚTORCHINDUCTOR_PROFILEÚTORCHINDUCTOR_PROFILE_OUTPUTÚprofile_bandwidth_outputÚ3TORCHINDUCTOR_PROFILE_WITH_DO_BENCH_USING_PROFILINGÚTORCHINDUCTOR_FREEZINGÚfreezingÚfreezing_discard_parametersÚdecompose_mem_bound_mmÚwrap_inductor_compiled_regionsÚassume_aligned_inputsÚassume_32bit_indexingÚ.unsafe_ignore_unsupported_triton_autotune_argsÚ"check_stack_no_cycles_TESTING_ONLYÚ$force_disable_cudagraph_TESTING_ONLYÚ*TORCHINDUCTOR_ENABLE_LINEAR_BINARY_FOLDINGÚTORCHINDUCTOR_ANNOTATE_TRAININGÚannotate_trainingÚ)enable_caching_generated_triton_templatesÚautotune_lookup_tableÚTORCHINDUCTOR_FILE_LOCK_TIMEOUTÚ600Úfile_lock_timeoutÚ)TORCHINDUCTOR_COMPILE_WORKER_WAIT_TIMEOUTÚcompile_worker_wait_timeoutÚenable_autograd_for_aotc                  ó´   — d } t          ¦   «         rGt          j                             dd ¦  «        }t          j                             dd¦  «        }|�d|› �} | S )NÚMAST_HPC_JOB_NAMEÚ	ROLE_RANKr   r>   )r   r   r   r    )Úlog_locÚmast_job_nameÚglobal_ranks      r   Úget_worker_log_pathrÍ  _  sW   € Ø€GÝ�{„{ð TÝœ
ŸšÐ':¸DÑAÔAˆÝ”j—n’n [°#Ñ6Ô6ˆàÐ$ØSÀkÐSÐSˆGà€Nr   ÚTORCHINDUCTOR_WORKER_LOGPATHÚtorchinductor_worker_logpathc                   ó   — e Zd ZU ej                             d¦  «        dk    Zeed<   dZ	e
ed<   dZe
ed<   ej                             d¦  «        �# e
ej                             d¦  «        ¦  «        nd	Ze
d	z  ed
<   d	S )Úauto_chunkerÚTORCHINDUCTOR_AUTO_CHUNKERr   Úenablei   Úoutput_size_thresholdr  Úamplify_ratio_thresholdÚ TORCHINDUCTOR_CHUNKER_NUM_CHUNKSNÚ	num_chunk)rò   ró   rô   r   r   r    rÓ  rU  rV  rÔ  r¬   rÕ  r×  r   r   r   rÑ  rÑ  q  sµ   € € € € € € Ø”:—>’>Ð">Ñ?Ô?À3ÒF€FˆDÐFÐFÑFð "-Ð˜3Ð,Ð,Ñ,ð $%Ð˜SÐ$Ð$Ñ$ð Œ:�>Š>Ð<Ñ=Ô=ÐIð 	ˆˆBŒJ�NŠNÐ=Ñ>Ô>Ñ?Ô?Ð?àð ˆs�T‰zð ð ñ ð ð r   rÑ  c                   ó@  — e Zd ZU dZdZej                             dd¦  «        dk    Zej                             dd¦  «        dk    Z	dZ
edz  ed<    eej                             d	d
¦  «        ¦  «        Zdej                             dej        dk    rdnd¦  «        fZedef         ed<   ej                             d¦  «        Zedz  ed<   ej                             dd¦  «        dk    Zej                             dd¦  «        dk    ZdZedz  ed<   dZedz  ed<    ed¦  «        Zedz  ed<   dZed         ed<    eej                             dd¦  «        ¦  «        Zej                             dd¦  «        dk    Zej                             dd¦  «        dk    Zej                             dd ¦  «        Z ej                             d!d¦  «        dk    Z!d"Z" eej                             d#d¦  «        ¦  «        Z#ej                             d$d¦  «        Z$ej                             d%d¦  «        Z%d&Z&d"Z'ej                             d'd¦  «        dk    Z(d"Z)ej                             d(d¦  «        dk    Z*ej                             d)d¦  «        dk    Z+d*Z,dS )+Úcppzu
    Settings for cpp backend.
    This class provides a centralized location for managing cpp backend settings.
    r1  Ú$TORCHINDUCTOR_CPP_NO_REDUNDANT_LOOPSr   Ú!TORCHINDUCTOR_CPP_DYNAMIC_THREADSr   NÚsimdlenÚ TORCHINDUCTOR_CPP_MIN_CHUNK_SIZEÚ512ÚCXXÚdarwinzclang++zg++ÚcxxÚTORCHINDUCTOR_CPP_MARCHÚmarchÚ'TORCHINDUCTOR_CPP_ENABLE_KERNEL_PROFILEÚ TORCHINDUCTOR_CPP_WEIGHT_PREPACKÚinject_relu_bug_TESTING_ONLYÚinject_log1p_bug_TESTING_ONLYr   Ú
vec_isa_okÚoriginal_aten©r2   ré  Úinductor_nodeÚdescriptive_namesÚ,TORCHINDUCTOR_CPP_MAX_HORIZONTAL_FUSION_SIZEÚ16Ú-TORCHINDUCTOR_CPP_FALLBACK_SCATTER_REDUCE_SUMÚ-TORCHINDUCTOR_CPP_ENABLE_UNSAFE_MATH_OPT_FLAGÚ5TORCHINDUCTOR_CPP_ENABLE_FLOATING_POINT_CONTRACT_FLAGÚoffÚ)TORCHINDUCTOR_CPP_ENABLE_TILING_HEURISTICFÚ#TORCHINDUCTOR_CPP_GEMM_MAX_K_SLICESÚ%TORCHINDUCTOR_CPP_GEMM_CACHE_BLOCKINGÚ%TORCHINDUCTOR_CPP_GEMM_THREAD_FACTORSTÚ$TORCHINDUCTOR_CPP_USE_DECOMPOSE_TANHÚ%TORCHINDUCTOR_CPP_FORCE_INLINE_KERNELÚ-TORCHINDUCTOR_CPP_USE_CONSTEXPR_FOR_INT_ARRAYrª  )-rò   ró   rô   rõ   Úthreadsr   r   r    Úno_redundant_loopsÚdynamic_threadsrÜ  r¬   rV  Úmin_chunk_sizerŒ  r�  rá  Útupler�  rã  Úenable_kernel_profileÚweight_prepackræ  rç  r
   rè  rU  rì  r   Úmax_horizontal_fusion_sizeÚfallback_scatter_reduce_sumÚenable_unsafe_math_opt_flagÚ#enable_floating_point_contract_flagÚenable_tiling_heuristicsÚenable_grouped_gemm_templateÚgemm_max_k_slicesÚgemm_cache_blockingÚgemm_thread_factorsÚenable_loop_tail_vecÚenable_concat_linearÚuse_decompose_tanhÚuse_small_dequant_bufferÚforce_inline_kernelÚuse_constexpr_for_int_arrayÚuse_two_step_variance_thresholdr   r   r   rÙ  rÙ  ‚  s8  € € € € € € ðð ð €Gð
 	Œ
�ŠÐ=¸sÑCÔCÀsÒJð ð ”j—n’nÐ%HÈ#ÑNÔNÐRUÒU€Oà€GˆS�4‰ZÐÐÑØ�S˜œŸšÐ(JÈEÑRÔRÑSÔS€Nð 	Ø
Œ
�Š�u¨3¬<¸8Ò+CÐ+C˜i˜iÈÑOÔOð€Cˆˆt�SˆyÔ	ð ð ñ ð œ
ŸšÐ'@ÑAÔA€Eˆ3�‰:ÐAÐAÑAð 	Œ
�ŠÐ@À#ÑFÔFÈ#ÒMð ð
 ”Z—^’^Ð$FÈÑLÔLÐPSÒS€Nð
 04Ð  #¨¡*Ð3Ð3Ñ3Ø04Ð! 3¨¡:Ð4Ð4Ñ4ð /Ð.Ð/IÑJÔJ€J��t‘ÐJÐJÑJð 	ð �wÐHÔIð ð ñ ð
 "% Ø
Œ
�ŠÐEÀtÑLÔLñ"ô "Ðð 	Œ
�ŠÐFÈÑLÔLÐPSÒSð  ð 	Œ
�ŠÐFÈÑLÔLÐPSÒSð  ð +-¬*¯.ª.Ø?Àñ+ô +Ð'ð 	Œ
�ŠÐBÀCÑHÔHÈCÒOð ð
 $)Ð ð ˜˜BœJŸNšNÐ+PÐRUÑVÔVÑWÔWÐð œ*Ÿ.š.Ð)PÐRVÑWÔWÐð œ*Ÿ.š.Ð)PÐRVÑWÔWÐð  Ðð !Ðð
 	Œ
�ŠÐ=¸sÑCÔCÀsÒJð ð
  %Ðð 	Œ
�ŠÐ>ÀÑDÔDÈÒKð ð 	Œ
�ŠÐFÈÑLÔLÐPSÒSð  ð
 '+Ð#Ð#Ð#r   rÙ  c                   ód	  — e Zd ZU dZej                             d¦  «        dk    ZdZdZ	dZ
eeeedf         z           dz  ed<   d	ZdZdZdZ e¦   «          Zd
ZdZedz  ed<   dZdZ edd¬¦  «        Zeed<   dZeed<   dZeed<   dZdZdZ dZ!dZ"ej                             d e¦   «         sdnd¦  «        dk    Z#eed<   dZ$edz  ed<   dZ%eed<   dZ&dZ' e(¦   «         Z)edz  ed<   dZ*eed<   dZ+eed<    ej,        dd¦  «        dk    Z-eed<   dZ.dZ/ej                             dd¦  «        dk    Z0ej                             dd¦  «        dk    Z1dZ2e3d          ed!<   ej                             d"d¦  «        dk    Z4ej                             d#d¦  «        dk    Z5eed$<   ej                             d%d¦  «        dk    Z6dZ7d&Z8d'Z9 eej                             d(d¦  «        ¦  «        Z:e3d)         ed*<   ej                             d+d¦  «        dk    Z;ej                             d,d¦  «        dk    Z<d-Z=dZ>e?j@        jA        rd.nd/ZBeed0<   dZCdZDdZEdZFeGdz  ed1<   dZHej                             d2d¦  «        dk    ZIej                             d3d¦  «        dk    ZJej                             d4d¦  «        dk    ZKej                             d5d¦  «        dk    ZLdZM eej                             d6e?j@        jA        rdnd7¦  «        ¦  «        ZN eej                             d8d9¦  «        ¦  «        ZOej                             d:d¦  «        dk    ZPej                             d; e¦   «         rdnd¦  «        dk    ZQd<ZRdZSedz  ed=<   ej                             d>d¦  «        dk    ZTdZUd?ZVej                             d@d¦  «        dk    ZWej                             dAd¦  «        dk    ZXi ZYeZeGef         edB<   dCZ[ej                             dDd¦  «        dk    Z\eedE<   ej                             dF¦  «        Z]eGdz  edG<   ej                             dHd¦  «        dk    Z^eedI<   ej                             dJd¦  «        dk    Z_eedK<   ej                             dLd¦  «        dk    Z`eedM<   dZadS )Nr�   z.
    Config specific to codegen/triton.py
    ÚTORCHINDUCTOR_CUDAGRAPHSr   TFN.Úcudagraph_capture_sizesr   rN  r  Ú"cudagraph_dynamic_shape_warn_limitÚ TORCHINDUCTOR_CUDAGRAPH_OR_ERRORr  Úcudagraph_or_errorÚ%reorder_for_reducing_graph_partitionsr'  Ú!cudagraph_partition_memory_budgetÚ&TORCHINDUCTOR_COALESCE_TILING_ANALYSISr   Úcoalesce_tiling_analysisÚ	max_tilesÚprefer_nd_tilingÚautotune_at_compile_timeÚautotune_with_sample_inputsÚtile_reductionsÚTORCHINDUCTOR_NATIVE_MATMULÚnative_matmulÚ!TORCHINDUCTOR_UNIQUE_KERNEL_NAMESÚ&TORCHINDUCTOR_UNIQUE_USER_KERNEL_NAMESré  rê  rì  Ú#TORCHINDUCTOR_PERSISTENT_REDUCTIONSÚ TORCHINDUCTOR_DECOMPOSE_SORT_OPSÚdecompose_sort_opsÚ$TORCHINDUCTOR_COOPERATIVE_REDUCTIONSrª  i €  ÚTORCHINDUCTOR_MULTI_KERNEL)r   rz   r/   é   Úmulti_kernelÚTORCHINDUCTOR_DIVISIBLE_BY_16Ú#TORCHINDUCTOR_EMIT_POINTER_RANGE_32é   rˆ  é   Úspill_thresholdræ  ÚENABLE_PERSISTENT_TMA_MATMULÚENABLE_TEMPLATE_TMA_STOREÚ%ENABLE_TMA_LOAD_FOR_TEMPLATE_EPILOGUEÚTORCHINDUCTOR_SKIP_L1Ú$TORCHINDUCTOR_NUM_DECOMPOSE_K_SPLITSÚ10Ú#TORCHINDUCTOR_DECOMPOSE_K_THRESHOLDÚ32ÚTORCHINDUCTOR_ENABLE_PDLÚ!TORCHINDUCTOR_MIX_ORDER_REDUCTIONrz   Úmix_order_reduction_split_sizeÚ5TORCHINDUCTOR_MIX_ORDER_REDUCTION_AUTOTUNE_SPLIT_SIZEr©   Ú4TORCHINDUCTOR_MIX_ORDER_REDUCTION_ALLOW_MULTI_STAGESÚTORCHINDUCTOR_NESTED_REDUCTIONÚdebug_dump_kernel_inputsr)  Ú%TORCHINDUCTOR_TRITON_PROTON_PROFILINGÚproton_profilingÚ&TORCHINDUCTOR_TRITON_PROTON_OUTPUT_DIRÚproton_output_dirÚ'TORCHINDUCTOR_TRITON_PROTON_GROUP_BY_SMÚproton_group_by_smÚ-TORCHINDUCTOR_TRITON_PROTON_SPLIT_INVOCATIONSÚproton_split_invocationsÚ-TORCHINDUCTOR_TRITON_PROTON_PER_CTA_OCCUPANCYÚproton_per_cta_occupancy)brò   ró   rô   rõ   r   r   r    Ú
cudagraphsÚcudagraph_treesÚcudagraph_skip_dynamic_graphsr  rþ  r¬   rV  Úcudagraph_min_partition_sizeÚslow_path_cudagraph_assertsÚ!cudagraph_trees_history_recordingÚcudagraph_trees_objgraphr   Ú cudagraph_support_input_mutationÚ#cudagraph_unexpected_rerecord_limitr  Úforce_cudagraph_syncÚforce_cudagraphs_warmupr	   r  rU  r  r  r~  Úfast_path_cudagraph_assertsÚskip_cudagraph_warmupÚdebug_sync_graphÚdebug_sync_kernelÚdense_indexingr  r  r  Úautotune_pointwiseÚautotune_cublasLtr-   r  r  r  Úgetenvr!  Ú tiling_prevents_pointwise_fusionÚ tiling_prevents_reduction_fusionÚunique_kernel_namesÚunique_user_kernel_namesrì  r   Úpersistent_reductionsr&  Úcooperative_reductionsÚforce_cooperative_reductionsÚuse_two_step_variance_min_numelr  r*  Údivisible_by_16Úemit_pointer_range_32Úmin_split_scan_rblockÚstore_cubinr2   r6   Úhipr/  Úuse_block_ptrÚuse_tensor_descriptorÚ)transpose_discontiguous_tensor_descriptorræ  r�  Úcodegen_upcast_to_fp32Úenable_persistent_tma_matmulÚenable_template_tma_storeÚ%enable_tma_load_for_template_epilogueÚskip_l1_cacheÚ.disallow_failing_autotune_kernels_TESTING_ONLYÚnum_decompose_k_splitsÚdecompose_k_thresholdÚ
enable_pdlÚmix_order_reductionÚ"mix_order_reduction_initial_xblockr:  Ú'mix_order_reduction_autotune_split_sizeÚ#mix_order_reduction_non_strict_modeÚmix_order_reduction_max_readsÚ&mix_order_reduction_allow_multi_stagesÚnested_reductionr>  ÚdictÚmax_kernel_dump_occurrencesr@  rB  rD  rF  rH  Údynamic_disable_pipeliningr   r   r   r�   r�     sû  € € € € € € ðð ð
 ”—’Ð :Ñ;Ô;¸sÒB€Jð €Oð %*Ð!ð DHÐ˜U 3¨¨s°C¨x¬Ñ#8Ô9¸DÑ@ÐGÐGÑGð $%Ð ð #'Ðð ).Ð%ð  %Ðð ,5¨9©;¬; Ð$ð +.Ð'ð 67Ð&¨¨d©
Ð6Ð6Ñ6ð !Ðð $Ðð  &˜vØ9Øð ñ  ô  Ð˜ð ð ñ ð 37Ð)¨4Ð6Ð6Ñ6ð
 03Ð% uÐ2Ð2Ñ2ð #(Ðð "Ðð Ðð Ðð €Nð 	Œ
�ŠØ4ÀÀÁÄÐ6U°c°cÐRUñ	
ô 	
ð ò	ð ˜dð ð ñ ð !€Iˆs�T‰zÐ Ð Ñ ð #Ð�dÐ"Ð"Ñ"ð Ðð Ðð -MÐ,LÑ,NÔ,NÐ˜d T™kÐNÐNÑNð
 ).Ð Ð-Ð-Ñ-ð "€O�TÐ!Ð!Ñ!ð$ $˜"œ)Ð$AÀ3ÑGÔGÈ3ÒN€M�4ÐNÐNÑNð (,Ð$Ø'+Ð$ð 	Œ
�ŠÐ:¸CÑ@Ô@ÀCÒGð ð 	Œ
�ŠÐ?ÀÑEÔEÈÒLð ð 	ð �wÐHÔIð ð ñ ð 	Œ
�ŠÐ<¸cÑBÔBÀcÒIð ð 	Œ
�ŠÐ9¸3Ñ?Ô?À3ÒFð ˜ð ð ñ ð 	Œ
�ŠÐ=¸sÑCÔCÀsÒJð ð
 $)Ð ð '+Ð#Ø&+Ð#ð ),¨Ø
Œ
�ŠÐ3°SÑ9Ô9ñ)ô )€L�'˜*Ô%ð ð ñ ð
 ”j—n’nÐ%DÀcÑJÔJÈcÒQ€Oð 	Œ
�ŠÐ<¸cÑBÔBÀcÒIð ð  Ðð €Kð "'¤Ô!2Ð:˜2˜2¸€O�SÐ:Ð:Ñ:ð €Mð "Ðð
 15Ð-ð
 04Ð  #¨¡*Ð3Ð3Ñ3ð "Ðð 	Œ
�ŠÐ5°sÑ;Ô;¸sÒBð !ð
 !#¤
§¢Ð/JÈCÑ PÔ PÐTWÒ WÐð 	Œ
�ŠÐ>ÀÑDÔDÈÒKð *ð ”J—N’NÐ#:¸CÑ@Ô@ÀCÒG€Mð 6;Ð2ð !˜SØ
Œ
�ŠØ2¸5¼=Ô;LÐ4V°C°CÐRVñ	
ô 	
ñô Ðð  ˜CØ
Œ
�ŠÐ<¸dÑCÔCñô Ðð ”—’Ð :¸CÑ@Ô@ÀCÒG€Jð 	Œ
�ŠÐ:À9À9Á;Ä;Ð<W¸C¸CÐTWÑXÔXØò	ð ð *+Ð&à15Ð" C¨$¡JÐ5Ð5Ñ5à
Œ
�ŠÐNÐPSÑTÔTØò	ð ,ð +0Ð'ð %'Ð!ð 	Œ
�ŠÐMÈsÑSÔSØò	ð +ð ”z—~’~Ð&FÈÑLÔLÐPSÒSÐð 02Ð˜d 3¨ 8œnÐ1Ð1Ñ1ð
 #$Ðð 	Œ
�ŠÐ>ÀÑDÔDÈÒKð �dð ð ñ ð %'¤J§N¢NØ0ñ%ô %Ð�s˜T‘zð ð ñ ð
 	Œ
�ŠÐ@À#ÑFÔFÈ#ÒMð ˜ð ð ñ ð
 	Œ
�ŠÐFÈÑLÔLÐPSÒSð ˜dð ð ñ ð 	Œ
�ŠÐFÈÑLÔLÐPSÒSð ˜dð ð ñ ð "&ÐÐÐr   r�   c                   ó4  — e Zd ZU dZdZeed<   dZej	         
                    dd¦  «        dk    Zej	         
                    dd¦  «        dk    Zej	         
                    d	d¦  «        dk    Zej	         
                    d
d¦  «        dk    Zej	         
                    dd¦  «        Zej	         
                    dd¦  «        Zed         ed<   ej	         
                    dd¦  «        ZdZdZdZeed<   dZeed<   dZdZeed<   dZedz  ed<   dZeed<   i Zeeef         ed<   ej	         
                    dd¦  «        dk    Zeed<   dZeed<   ej	         
                    dd¦  «        dk    Z eed<    e!ej	         
                    dd¦  «        ¦  «        Z"e!ed <   i Z#eee$f         ed!<   dZ%eed"<   dZ&eed#<   ej	         
                    d$d¦  «        dk    Z'eed%<   dZ(eed&<   dZ)edz  ed'<    e*¦   «          Z+eed(<   dZ,edz  ed)<   dZ-edz  ed*<   dZ.edz  ed+<   i Z/ee0j1        j2        e3e         f         ed,<   dZ4e3e         dz  ed-<   ej	         
                    d.d¦  «        dk    Z5dZ6eed/<   dZ7edz  ed0<   dZ8ee3e         z  dz  ed1<   dZ9edz  ed2<   dS )3Úaot_inductorz9
    Settings for Ahead-Of-Time Inductor Compilation
    FÚautotune_per_kernel_allocrä   ÚAOT_INDUCTOR_DEBUG_COMPILEr   r   ÚAOT_INDUCTOR_DEBUG_SYMBOLSÚ!AOT_INDUCTOR_ENABLE_FRAME_POINTERÚAOT_INDUCTOR_ENABLE_LINE_TABLESÚ&AOT_INDUCTOR_COMPILE_WRAPPER_OPT_LEVELÚO1Ú-AOT_INDUCTOR_DEBUG_INTERMEDIATE_VALUE_PRINTER)r   r   Ú2Ú3Ú debug_intermediate_value_printerÚ&AOT_INDUCTOR_FILTERED_KERNELS_TO_PRINTNÚuse_runtime_constant_foldingÚforce_mmap_weightsTÚpackageÚpackage_cpp_onlyÚdynamic_linkageÚmetadataÚ/AOTINDUCTOR_RAISE_ERROR_ON_IGNORED_OPTIMIZATIONÚ#raise_error_on_ignored_optimizationÚcheck_lowerboundÚDUMP_AOTI_MINIFIERÚdump_aoti_minifierÚAOTINDUCTOR_REPRO_LEVELr/   Úrepro_levelÚpresetsÚallow_stack_allocationÚuse_minimal_arrayref_interfaceÚ)AOT_INDUCTOR_WEIGHT_USE_CACHING_ALLOCATORÚweight_use_caching_allocatorÚpackage_constants_in_soÚ package_constants_on_disk_formatÚprecompile_headersÚembed_kernel_binaryÚemit_multi_arch_kernelÚmodel_name_for_generated_filesÚcustom_ops_to_c_shimsÚcustom_op_libsÚAOT_INDUCTOR_ENABLE_LTOÚlink_libtorchÚcross_target_platformÚaoti_shim_libraryÚaoti_shim_library_path):rò   ró   rô   rõ   r�  rU  rV  Úoutput_pathr   r   r    Údebug_compileÚdebug_symbolsÚenable_frame_pointerÚenable_line_tablesÚcompile_wrapper_opt_levelr‹  r   Úfiltered_kernel_namesÚserialized_in_specÚserialized_out_specr�  rŽ  Úuse_consts_asm_buildr�  r�  r‘  r’  r|  r�  r”  r•  r—  r¬   r™  rš  r   r›  rœ  rž  rŸ  r   r   r¡  r¢  r£  r¤  r¥  r2   Ú_opsÚ
OpOverloadÚlistr¦  Ú
enable_ltor¨  r©  rª  r«  r   r   r   r€  r€  ‡  sþ  € € € € € € ðð ð ',Ð˜tÐ+Ð+Ñ+ð €Kà”J—N’NÐ#?ÀÑEÔEÈÒL€MØ”J—N’NÐ#?ÀÑEÔEÈÒL€Mð 	Œ
�ŠÐ:¸CÑ@Ô@ÀCÒGð ð
 œŸšÐ(IÈ3ÑOÔOÐSVÒVÐð !#¤
§¢Ø0°$ñ!ô !Ðð EGÄJÇNÂNØ7¸ñEô EÐ$ gÐ.@Ô&Að ð ñ ð
 œJŸNšNØ0°$ñô Ðð Ðð Ðð */Ð  $Ð.Ð.Ñ.ð  %Ð˜Ð$Ð$Ñ$ð  Ðà€GˆTÐÐÑØ$(Ð�d˜T‘kÐ(Ð(Ñ(ð !€O�TÐ Ð Ñ ð  "€Hˆd�3˜�8ŒnÐ!Ð!Ñ!ð 	Œ
�ŠÐHÈ#ÑNÔNÐRUÒUð (¨ð ð ñ ð "Ð�dÐ!Ð!Ñ!ð  "œzŸ~š~Ð.BÀCÑHÔHÈCÒOÐ˜ÐOÐOÑOð �s˜2œ:Ÿ>š>Ð*CÀQÑGÔGÑHÔH€K�ÐHÐHÑHð !€GˆT�#�s�(Œ^Ð Ð Ñ ð $)Ð˜DÐ(Ð(Ñ(ð ,1Ð" DÐ0Ð0Ñ0ð 	Œ
�ŠÐBÀCÑHÔHÈCÒOð ! $ð ð ñ ð %)Ð˜TÐ(Ð(Ñ(ð 48Ð$ c¨D¡jÐ7Ð7Ñ7ð $- 9¡;¤;˜Ð˜Ð.Ð.Ñ.ð (,Ð˜ ™Ð+Ð+Ñ+ð +/Ð˜D 4™KÐ.Ð.Ñ.ð 26Ð" C¨$¡JÐ5Ð5Ñ5ð EGÐ˜4 ¤
Ô 5°t¸C´yÐ @ÔAÐFÐFÑFà'+€N�D˜”I Ñ$Ð+Ð+Ñ+ð ”—’Ð 9¸3Ñ?Ô?À3ÒF€Jð €M�4ÐÐÑð )-Ð˜3 ™:Ð,Ð,Ñ,ð 15Ð�s˜T #œY‘¨Ñ-Ð4Ð4Ñ4Ø)-Ð˜C $™JÐ-Ð-Ñ-Ð-Ð-r   r€  c                   ó   — e Zd ZU dZeed<   dS )Úaot_inductor_modeFÚcompile_standaloneN)rò   ró   rô   r¼  rU  rV  r   r   r   r»  r»  L	  s%   € € € € € € ð  %Ð˜Ð$Ð$Ñ$Ð$Ð$r   r»  c                   ód  — e Zd ZU dZdZed         ed<   dZdZe	j
                             e	j                             de	j
                             e	j
                             ej        ¦  «        d¦  «        ¦  «        ¦  «        ZdZedz  ed	<   g d
¢Zee         ed<    eeeeef          ed„ e	j                             dd¦  «                             d¦  «        D ¦   «         ¦  «        ¦  «        Zeeeef         ed<    eeeeef          ed„ e	j                             dd                     d„ eD ¦   «         ¦  «        ¦  «                             d¦  «        D ¦   «         ¦  «        ¦  «        Zeeeef         ed<   e	j                             dd¦  «        dk    ZdZdZeed<   e	j                             dd¦  «        dk    Ze ed<   e	j                             d¦  «        Z!e"dz  ed<   e	j                             d¦  «        Z#e"dz  ed<   e	j                             d d¦  «        Z$e"ed!<   e	j                             d"d¦  «        dk    Z%e ed#<   e	j                             d$d¦  «        dk    Z&e ed%<   e	j                             d&d'¦  «        Z'e"ed(<   d)Z(e ed*<   dZ)e ed+<   dZ*e ed,<   d)Z+e ed-<   dS ).Úcutlassz-
    Config specific to cutlass backend.
    ú-O1)ú-O0r¿  ú-O2ú-O3z-OSÚcompile_opt_levelFÚTORCHINDUCTOR_CUTLASS_DIRz../third_party/cutlass/NÚcutlass_max_profiling_configs)rz   r/   r  r  Ú%cutlass_max_profiling_swizzle_optionsc              #   ó4   K  — | ]}t          |¦  «        V — Œd S rû   ©r¬   ©Ú.0Úxs     r   ú	<genexpr>zcutlass.<genexpr>x	  s<   è è € ð 
ð 
àõ �‰FŒFð
ð 
ð 
ð 
ð 
ð 
r   Ú+TORCHINDUCTOR_CUTLASS_DYNAMIC_CLUSTER_SHAPEz2,1,1rå   Úcutlass_dynamic_cluster_shapec              #   ó4   K  — | ]}t          |¦  «        V — Œd S rû   rÈ  rÉ  s     r   rÌ  zcutlass.<genexpr>�	  s<   è è € ð 
ð 
àõ �‰FŒFð
ð 
ð 
ð 
ð 
ð 
r   Ú.TORCHINDUCTOR_CUTLASS_DYNAMIC_CLUSTER_FALLBACKc              #   ó4   K  — | ]}t          |¦  «        V — Œd S rû   )r�  )rÊ  Úvs     r   rÌ  zcutlass.<genexpr>…	  s(   è è € ÐGÐG A�˜Q™œÐGÐGÐGÐGÐGÐGr   Ú cutlass_dynamic_cluster_fallbackÚCUTLASS_EPILOGUE_FUSIONr   r   rz   Úcutlass_backend_min_gemm_sizeÚ/INDUCTOR_CUDA_BACKEND_GENERATE_TEST_RUNNER_CODEÚgenerate_test_runnerÚTORCHINDUCTOR_CUTLASS_ALLOWLISTÚcutlass_op_allowlist_regexÚTORCHINDUCTOR_CUTLASS_DENYLISTÚcutlass_op_denylist_regexÚ)TORCHINDUCTOR_CUTLASS_INSTANTIATION_LEVELÚcutlass_instantiation_levelÚ+TORCHINDUCTOR_CUTLASS_HASH_WITH_COMPILE_CMDÚcutlass_hash_with_compile_cmdÚ"TORCHINDUCTOR_CUTLASS_PRESCREENINGÚcutlass_prescreeningÚ!TORCHINDUCTOR_CUTLASS_ENABLED_OPSr‡   Úcutlass_enabled_opsTÚuse_binary_remote_cacheÚupload_to_binary_remote_cacheÚbinary_remote_cache_force_writeÚenable_caching_codegen),rò   ró   rô   rõ   rÃ  r   rV  Úenable_debug_infoÚuse_fast_mathr   ÚpathÚrealpathr   r    ÚjoinÚdirnamer2   Ú__file__Úcutlass_dirrÅ  r¬   rÆ  r¸  r   rþ  rç   rÎ  rÓ  Úcutlass_epilogue_fusion_enabledÚcutlass_tma_onlyrÕ  r×  rU  rÙ  r�  rÛ  rÝ  rß  rá  rã  rä  rå  ræ  rç  r   r   r   r¾  r¾  U	  sØ  € € € € € € ðð ð EJÐ�wÐ@ÔAÐIÐIÑIð Ðð €Mð ”'×"Ò"Ø
Œ
�ŠØ'ØŒG�LŠLØ”—’ ¤Ñ/Ô/Ø)ñô ñ	
ô 	
ñô €Kð 15Ð! 3¨¡:Ð4Ð4Ñ4ð 8D°|°|Ð)¨4°¬9ÐCÐCÑCà:>¸$Øˆc�3˜ˆmÔØˆð 
ð 
à”Z—^’^Ø=¸wñô çŠe�C‰jŒjð	
ñ 
ô 
ñ 	
ô 	
ñ;ô ;Ð! 5¨¨c°3¨Ô#7ð ð ñ ð >B¸TØˆc�3˜ˆmÔØˆð 
ð 
à”Z—^’^Ø@Ø—’ÐGÐGÐ)FÐGÑGÔGÑGÔGñô ÷ Še�C‰jŒjð
ñ 
ô 
ñ 	
ô 	
ñ	>ô 	>Ð$ e¨C°°c¨MÔ&:ð 	ð 	ñ 	ð 	Œ
�ŠÐ0°#Ñ6Ô6¸#Ò=ð $ð
 Ðð *+Ð! 3Ð*Ð*Ñ*ð
 	Œ
�ŠÐHÈ#ÑNÔNÐRUÒUð ˜$ð ð ñ ð .0¬Z¯^ª^Ø)ñ.ô .Ð  d¡
ð ð ñ ð -/¬J¯NªNØ(ñ-ô -Ð˜s T™zð ð ñ ð (*¤z§~¢~Ø3°Sñ(ô (Ð ð ð ñ ð 	Œ
�ŠÐDÀcÑJÔJÈcÒQð " 4ð ð ñ ð 	Œ
�ŠÐ;¸SÑAÔAÀSÒHð ˜$ð ð ñ ð  "œzŸ~š~Ø+¨Uñ ô  Ð˜ð ð ñ ð
 %)Ð˜TÐ(Ð(Ñ(ð +0Ð! 4Ð/Ð/Ñ/ð -2Ð# TÐ1Ð1Ñ1ð $(Ð˜DÐ'Ð'Ñ'Ð'Ð'r   r¾  c                   óh   — e Zd ZU dZedz  ed<   dZedz  ed<   dZedz  ed<   dZdZ	dZ
edz  ed<   dS )ÚcudaNÚarchr6   Úcuda_cxxFé   rÀ   )rò   ró   rô   rô  r�  rV  r6   rõ  Úenable_cuda_ltoÚenable_ptxas_inforÀ   r¬   r   r   r   ró  ró  ×	  sz   € € € € € € ð
 €Dˆ#�‰*ÐÐÑð
 €GˆS�4‰ZÐÐÑð  €Hˆc�D‰jÐÐÑð €Oð Ðð 01Ð  #¨¡*Ð0Ð0Ñ0Ð0Ð0r   ró  c                   ó²   — e Zd ZU dZedz  ed<   dZedz  ed<   dZedz  ed<   ej	         
                    ej                             dd¦  «        ¦  «        ZdS )ÚxpuNrô  r6   Úoneapi_rootrÄ  rä   )rò   ró   rô   rô  r�  rV  r6   rû  r   rê  rë  r   r    rï  r   r   r   rú  rú  ö	  sx   € € € € € € ð €Dˆ#�‰*ÐÐÑð €GˆS�4‰ZÐÐÑð #€K��t‘Ð"Ð"Ñ"à”'×"Ò" 2¤:§>¢>Ð2MÈrÑ#RÔ#RÑSÔS€K€K€Kr   rú  c                   ó0  — e Zd ZU g Zee         ed<   g d¢Zeed                  ed<   dZ	ed         ed<   dZ
dZdZdZdZd	Zed	z  ed
<   ej                             d¦  «        Zej                             dd¦  «        dk    Zeed<   d	Zed	z  ed<   d	Zed	z  ed<   d	Zed	z  ed<   dZeed<   d	Zee         d	z  ed<   dZeed<   dZeed<   ej                             d¦  «        dk    Zeed<    eej                             dd¦  «        ¦  «        Zeed<   d	S )Úrocmrô  )Úgfx90aÚgfx942Úgfx950Úck_supported_archrÁ  )	rÀ  r¿  rÁ  rÂ  z-Osz-Ozz-Ominz-Ofastz-OmaxrÃ  FTNÚ	rocm_homeÚTORCHINDUCTOR_CK_DIRÚ-INDUCTOR_CK_BACKEND_GENERATE_TEST_RUNNER_CODEr   r   r×  Ún_max_profiling_configsÚck_max_profiling_configsÚck_tile_max_profiling_configsÚuse_preselected_instancesÚkBatch_sweepr.  Úsplit_k_thresholdÚcontiguous_thresholdÚTORCHINDUCTOR_ORIGAMIÚorigamiÚTORCHINDUCTOR_ORIGAMI_TOPKÚ6Úorigami_topk) rò   ró   rô   rô  r¸  r�  rV  r  r   rÃ  Úis_debugÚ
save_tempsré  Úflush_denormalsÚprint_kernel_resource_usager  r   r   r    Úck_dirr×  rU  r  r¬   r  r  r  r	  r
  r  r  r  r   r   r   rý  rý  
  sê  € € € € € € ð €Dˆ$ˆsŒ)ÐÐÑðFð Fð FÐ�t˜GÐ$@ÔAÔBð ð ñ ð 	ð �wØLôð ð ñ ð
 €Hð €Jð €Mð €Oð #(Ðð !€Iˆs�T‰zÐ Ð Ñ ð ŒZ�^Š^Ð2Ñ3Ô3€Fð 	Œ
�ŠÐFÈÑLÔLÐPSÒSð ˜$ð ð ñ ð
 +/Ð˜S 4™ZÐ.Ð.Ñ.ð ,0Ð˜c D™jÐ/Ð/Ñ/ð 15Ð! 3¨¡:Ð4Ð4Ñ4ð ',Ð˜tÐ+Ð+Ñ+ð &*€L�$�s”)˜dÑ"Ð)Ð)Ñ)ð  Ð�sÐÐÑð !#Ð˜#Ð"Ð"Ñ"ð, ”J—N’NÐ#:Ñ;Ô;¸sÒB€GˆTÐBÐBÑBð
 ˜˜BœJŸNšNÐ+GÈÑMÔMÑNÔN€L�#ÐNÐNÑNÐNÐNr   rý  )rÙ  r�   ÚhalideÚpallasÚcpu_backend)r�   r  r  Úcuda_backendr  Útpu_backendÚxpu_backendc                   ó   — e Zd ZdZdS )ÚmtiaFN)rò   ró   rô   Údisable_welford_reductionr   r   r   r  r  w
  s   € € € € € à %ÐÐÐr   r  c                   óX   — e Zd ZU dZdZdZed         ed<   dZed         ed<   dZ	dZ
dZd	S )
r  Úhostz	host-cudaÚAnderson2021)r!  ÚLi2018Ú	Adams2019ÚMullapudi2016Úscheduler_cudar#  Úscheduler_cpuFN)rò   ró   rô   Ú
cpu_targetÚ
gpu_targetr%  r   rV  r&  ÚassertsÚdebugÚscan_kernelsr   r   r   r  r  |
  ss   € € € € € € à€Jð €Jð
 	ð �GÐRÔSð ð ñ ð 	ð �7ÐQÔRð ð ñ ð
 €Gð €Eð €L€L€Lr   r  Úformat_env_nameÚlegacy_svg_env_namec                 óÎ   — | t           j        v rt           j        |          S t           j                             |d¦  «        dk    rdS t           j                             dd¦  «        S )Nr   r   ÚsvgÚTORCH_COMPILE_GRAPH_FORMATr   )r,  r-  s     r   Ú_get_debug_graph_formatr1  ˜
  sT   € Ø�"œ*Ð$Ð$ÝŒz˜/Ô*Ð*Ý	„z‡~‚~Ð)¨3Ñ/Ô/°3Ò6Ð6ØˆuÝŒ:�>Š>Ð6¸Ñ>Ô>Ð>r   c            	       ó@  — e Zd ZU dZej                             dd¦  «        dk    Zej                             dd¦  «        dk    ZdZ	e
dz  ed<   dZdZd	Zd	Zd	Zd	Zd	Zej                             d
d¦  «        dk    pej                             dd¦  «        dk    Z edd
¦  «        Zej                             dd¦  «        dk    pej                             dd¦  «        dk    Z edd¦  «        Zej                             dd¦  «        Zej                             dd¦  «        ZdZdZee
gdf         dz  ed<   ej                             dd¦  «        dk    Z eej                             dej                             dd¦  «        ¦  «        ¦  «        Zeed<   dS )Útracez6Configuration for torch.compile debug trace artifacts.ÚTORCH_COMPILE_DEBUGr   r   ÚTORCH_COMPILE_DEBUG_SAVE_REALNÚ	debug_dirFTÚINDUCTOR_POST_FUSION_SVGÚINDUCTOR_POST_FUSION_GRAPHÚ!INDUCTOR_POST_FUSION_GRAPH_FORMATÚINDUCTOR_ORIG_FX_SVGÚINDUCTOR_ORIG_FX_GRAPHÚINDUCTOR_ORIG_FX_GRAPH_FORMATÚINDUCTOR_DOT_GRAPH_SHAPE_SVGÚ INDUCTOR_LOG_URL_FOR_GRAPH_XFORMÚ
upload_tarÚLOG_AUTOTUNE_RESULTSÚINDUCTOR_PROVENANCEÚprovenance_tracking_level) rò   ró   rô   rõ   r   r   r    ÚenabledÚsave_real_tensorsr6  r�  rV  Ú	debug_logÚinfo_logÚfx_graphÚfx_graph_transformedÚir_pre_fusionÚir_post_fusionÚoutput_codeÚgraph_diagramr1  Úgraph_diagram_formatÚdraw_orig_fx_graphÚorig_fx_graph_diagram_formatÚdot_graph_shapeÚlog_url_for_graph_xformÚcompile_profiler?  r   Úlog_autotuning_resultsr¬   rB  r   r   r   r3  r3   
  s  € € € € € € Ø@Ð@ð Œj�nŠnÐ2°CÑ8Ô8¸CÒ?€Gð œ
ŸšÐ'FÈÑLÔLÐPSÒSÐð !€Iˆs�T‰zÐ Ð Ñ ð €Ið €Hð €Hð  Ðð €Mð €Nð €Kð 	Œ
�ŠÐ1°3Ñ7Ô7¸3Ò>ð 	DØŒ:�>Š>Ð6¸Ñ<Ô<ÀÒCð ð 3Ð2Ø+Ø"ñô Ðð 	Œ
�ŠÐ-¨sÑ3Ô3°sÒ:ð 	@ØŒ:�>Š>Ð2°CÑ8Ô8¸CÒ?ð ð $;Ð#:Ø'Øñ$ô $Ð ð ”j—n’nÐ%CÀTÑJÔJ€Oð !œjŸnšnÐ-OÐQUÑVÔVÐð €Oð 04€J�˜#˜ ˜Ô%¨Ñ,Ð3Ð3Ñ3àœZŸ^š^Ð,BÀCÑHÔHÈCÒOÐð &) SØ
Œ
�ŠØ! 2¤:§>¢>Ð2GÈÑ#MÔ#Mñ	
ô 	
ñ&ô &Ð˜sð ð ñ ð ð r   r3  )ztrace.upload_tarrr   rs   rt   zaot_inductor.repro_levelzaot_inductor.dump_aoti_minifierro   rp   rJ  ru   r¶   Ú_save_config_ignore)r3  zcuda.cutlass_dirzcutlass.cutlass_dirzxpu.cutlass_dirrA  r’  rp   ro   rr   rs   rt   rJ  ru   r¶   r»  rÓ   rG   rI   rM   rN   Ú_cache_config_ignore_prefixÚ_cache_config_factory_keysÚexternal_matmulÚ8TORCHINDUCTOR_WRITE_ARE_DETERMINISTIC_ALGORITHMS_ENABLEDc                   ó^   — e Zd ZU dZeeeeeef                  f         dz  ed<   dZ	e
ed<   dS )Úlookup_tableNÚtableTÚcheck_src_hash)rò   ró   rô   r[  r|  r�  r¸  r   rV  r\  rU  r   r   r   rZ  rZ  J  sP   € € € € € € à48€Eˆ4��T˜$˜s C˜xœ.Ô)Ð)Ô*¨TÑ1Ð8Ð8Ñ8ð  €N�DÐÐÑÐÐr   rZ  c                   ó„  — e Zd ZU dZeed<   dZedz  ed<   dZeed<   dZe	dz  ed<   dZ
e	dz  ed<   dZdZdZej                             d¦  «        Zedz  ed	<   ej                             d
¦  «        Zedz  ed<   dZdZed         dz  ed<   dZdZeed<    ej        d¦  «        dk    Z ej        dd¦  «        ZdZdZdS )Útest_configsFÚ%force_extern_kernel_in_multi_templateNÚforce_custom_op_decompositionÚforce_no_impl_groupingÚmax_mm_configsÚmax_flex_configsÚ(TORCHINDUCTOR_AUTOTUNE_CHOICE_NAME_REGEXÚautotune_choice_name_regexÚ(TORCHINDUCTOR_AUTOTUNE_CHOICE_DESC_REGEXÚautotune_choice_desc_regex)Úassertr‘  Útrack_memory_lifecycleTÚ assume_bucketing_reduces_latencyÚ,TORCHINDUCTOR_FORCE_FILTER_REDUCTION_CONFIGSr   Ú)TORCHINDUCTOR_DISTORT_BENCHMARKING_RESULTrä   )rò   ró   rô   r_  rU  rV  r`  ra  rb  r¬   rc  Úruntime_triton_dtype_assertÚruntime_triton_shape_assertÚstatic_cpp_dtype_assertr   r   r    re  r�  rg  Ú*graphsafe_rng_func_ignores_fallback_randomri  r   Úuse_libtorchrj  r[  Úforce_filter_reduction_configsÚdistort_benchmarking_resultÚbisect_pre_grad_graphÚ'bisect_keep_custom_backend_for_inductorr   r   r   r^  r^  U  sj  € € € € € € Ø27Ð)¨4Ð7Ð7Ñ7ð 26Ð! 4¨$¡;Ð5Ð5Ñ5ð $)Ð˜DÐ(Ð(Ñ(à!%€N�C˜$‘JÐ%Ð%Ñ%Ø#'Ð�c˜D‘jÐ'Ð'Ñ'à"'ÐØ"'ÐØ#Ðð .0¬Z¯^ª^Ø2ñ.ô .Ð  d¡
ð ð ñ ð .0¬Z¯^ª^Ø2ñ.ô .Ð  d¡
ð ð ñ ð 27Ð.à>BÐ˜G OÔ4°tÑ;ÐBÐBÑBð €Lð .2Ð$ dÐ1Ð1Ñ1ð 	ˆŒ	Ð@ÑAÔAÀSÒHð #ð #, "¤)Ø3°Rñ#ô #Ðð "ÐØ.3Ð+Ð+Ð+r   r^  )Ú*c                   ót   — e Zd ZU ej                             dd¦  «        dk    Zeed<   dZ	eed<   dZ
eed<   dS )	Úeager_numericsÚ'TORCHINDUCTOR_EMULATE_DIVISION_ROUNDINGr   r   Údivision_roundingFÚdisable_ftzÚuse_pytorch_libdeviceN)rò   ró   rô   r   r   r    rz  rU  rV  r{  r|  r   r   r   rx  rx  •  sh   € € € € € € ð
 	Œ
�ŠÐ@À#ÑFÔFÈ#ÒMð �tð ð ñ ð €K�ÐÐÑð #(Ð˜4Ð'Ð'Ñ'Ð'Ð'r   rx  Ú%TORCHINDUCTOR_EMULATE_PRECISION_CASTSÚemulate_precision_castsÚ6TORCHINDUCTOR_EMULATE_PRECISION_CASTS_ON_SAVED_TENSORSÚ(emulate_precision_casts_on_saved_tensors(�  r   rŒ  Úcollections.abcr   Útypingr   r   r   r   r2   Ú!torch._inductor.custom_graph_passÚtorch._environmentr   Útorch.utils._config_moduler	   r
   r   r   Útorch._inductor.choicesr   Útorch._inductor.cudagraph_utilsr   r   r    Úinplace_paddingÚcan_inplace_pad_graph_inputrU  r   r!   r$   r'   r*   r-   r7   r<   Úenable_auto_functionalized_v2r*  Údisable_progressÚverbose_progressÚworker_log_pathr¬   r@   rV  rG   rH   rI   rJ   rL   rM   rN   rO   rQ   rR   rS   r|  r�  rT   rW   rY   r[   r]   r_   Úonline_softmaxÚapply_gumbel_max_trickÚdceÚstatic_weight_shapesÚsize_assertsÚnan_assertsÚruntime_triton_nan_assertsÚscalar_assertsÚalignment_assertsÚpick_loop_ordersÚinplace_buffersÚallow_buffer_reuseÚmemory_planningré  rn   Úbenchmark_harnessÚepilogue_fusionÚepilogue_fusion_with_atomic_addÚprologue_fusionÚepilogue_fusion_firstÚ*epilogue_fusion_user_defined_triton_kernelÚpattern_matcherÚb2b_gemm_passro   r  Úcustom_graph_passÚCustomGraphPassTyperp   rq   ÚCustomPartitionerFnTyperr   rs   rt   ru   ÚCustomSchedulerPassCallablerv   Úsplit_cat_fx_passesÚ efficient_conv_bn_eval_fx_passesÚis_predispatchÚgroup_fusionÚbatch_fusionrw   rx   Úreorder_for_localityÚdynamic_scale_rblockÚforce_fuse_int_mm_with_mulÚ keep_addmm_fused_for_half_dtypesÚuse_mixed_mmr   rƒ   Ú reorder_for_compute_comm_overlapr„   r¸  r…   Úreorder_for_peak_memoryÚreorder_for_peak_memory_debugr†   r‰   rŠ   r�   rŽ   r�   r‘   r’   r“   r”   Úestimate_op_runtimer•   r–   r—   Ú
cpu_gpu_bwr™   Údistributed_max_autotune_gemmÚpipeline_max_autotune_gemmr�   Úmax_autotuneÚmax_autotune_pointwiseÚmax_autotune_gemmr¢   r[  Ú inductor_default_autotune_warmupÚinductor_default_autotune_repr¯   r°   Ú!max_autotune_report_choices_statsÚ.max_autotune_prune_choices_based_on_shared_memÚtriton_disable_device_detectionrµ   r¶   r·   r¸   r¹   rº   ÚupperÚmax_autotune_gemm_backendsr¿   rÀ   rÂ   r6   rh  Ú_conv_default_backendsÚmax_autotune_conv_backendsÚ%max_autotune_conv_bwd_weight_backendsÚ$max_autotune_conv_bwd_input_backendsrÊ   rÌ   rÍ   rÎ   rÏ   rÐ   rÓ   rÔ   rÕ   r×   Úautotune_fallback_to_atenÚunbacked_symint_fallbackÚsearch_autotune_cacheÚ	save_argsÚautotune_in_subprocÚ+max_autotune_subproc_result_timeout_secondsÚ-max_autotune_subproc_graceful_timeout_secondsÚ.max_autotune_subproc_terminate_timeout_secondsÚautotune_multi_deviceÚcollective_benchmark_nrunsr~  Úcollective_benchmark_timeoutÚcoordinate_descent_tuningÚ'coordinate_descent_check_all_directionsÚ coordinate_descent_search_radiusré   rî   rð   r÷   Úrun_jit_post_compile_hookrÿ   rü   rý   Úautoheuristic_log_pathÚlayout_opt_defaultÚlayout_optimizationÚforce_layout_optimizationÚcache_sdpa_constraintÚkeep_output_strideÚwarn_mix_layoutÚrealize_reads_thresholdÚ"_realize_opcount_threshold_defaultr  Úrealize_cpu_opcount_thresholdÚ$_realize_acc_reads_threshold_defaultr  Úrealize_cpu_acc_reads_thresholdr  r  Úfallback_randomÚalign_random_eagerÚ"fallback_embedding_bag_byte_unpackÚimplicit_fallbacksÚ assume_unaligned_fallback_outputr  Úaggressive_fusionr  r  Úenabled_metric_tablesr!  r#  r$  Úscore_fusion_memory_thresholdÚbenchmark_epilogue_fusionÚ max_epilogue_benchmarked_choicesÚmax_fusion_sizeÚmin_overlap_ratioÚ)max_fusion_buffer_group_pairwise_attemptsr(  Ú max_complex_pointwise_cat_inputsÚmax_pointwise_cat_inputsÚforce_pointwise_catÚunroll_reductions_thresholdÚcomment_originÚconv_1x1_as_mmÚsplit_reductionsr  Úbatch_invariantÚmin_num_splitÚbenchmark_kernelÚconstant_and_index_propagationÚalways_keep_tensor_constantsÚassert_indirect_indexingÚdo_not_emit_runtime_assertionsÚcompute_all_boundsÚcombo_kernelsÚbenchmark_combo_kernelÚcombo_kernels_autotuneÚcombo_kernel_allow_mixed_sizesÚ#combo_kernel_foreach_dynamic_shapesÚcombo_kernel_max_num_argsÚcombo_kernel_max_num_nodesÚ!combo_kernel_per_subkernel_blocksÚcombo_kernel_autotune_groupingÚcombo_kernels_pointwise_onlyr/  r0  r2  Újoint_graph_constant_foldingÚdebug_index_assertsÚ__version__Úis_nightly_or_sourceÚdeveloper_warningsÚ"optimize_scatter_upon_const_tensorr6  r7  r9  r@  rA  rC  rE  rG  Ú_fuse_ddp_communicationÚ_fuse_ddp_bucket_sizerJ  rK  Úpartitioned_scatter_enabledrM  rO  rP  rR  rX  r„  r“  r’  r•  r—  r˜  r™  r›  r�  rž  r   r¢  r¤  Úlibfb.pyr¦  Ú__package__Úget_dir_pathrê  rì  ÚreplaceÚsepr¥  Ú
ValueErrorÚImportErrorÚkernel_name_max_opsÚshape_paddingÚcomprehensive_paddingÚpad_channels_lastÚpad_dynamic_shapesÚdisable_padding_cpuÚ$expand_dimension_for_pointwise_nodesÚpadding_alignment_bytesÚpadding_stride_thresholdÚpad_outputsÚbw_outputs_user_visibler«  Úpermute_fusionÚprofiler_mark_wrapper_callÚgenerate_intermediate_hooksÚdebug_ir_tracebackÚ_raise_error_for_testingr­  Ú_profile_varÚprofile_bandwidthÚprofile_bandwidth_regexr°  Ú/profile_bandwidth_with_do_bench_using_profilingÚdisable_cpp_codegenr³  r´  rµ  r¶  r·  r¸  r¹  rº  r»  Úenable_linear_binary_foldingr¾  r¿  rÀ  rÃ  rÅ  rÆ  rÍ  rÏ  rÑ  rÙ  r�   r€  r»  r¾  ró  rú  rý  r  r  r  r  r  r  r1  r3  rT  rU  rV  rW  ÚTensorÚ*write_are_deterministic_algorithms_enabledrZ  r^  Útorch.utils._config_typingrx  r~  r€  Úmodulesrò   r   r   r   ú<module>r1     s$  ðØ 	€	€	€	€	Ø 
€
€
€
Ø $Ð $Ð $Ð $Ð $Ð $Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4à €€€Ø (Ð (Ð (Ð (Ø (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð ð ð ð @Ø7Ð7Ð7Ð7Ð7Ð7Ø?Ð?Ð?Ð?Ð?Ð?à”*—.’.Ð!@À#ÑFÔFÈ#ÒM€Ø#Ð ðC t¨d¡{ð Cð Cð Cð Cð˜D 4™Kð ð ð ð ðC t¨d¡{ð Cð Cð Cð CðK¨t°d©{ð Kð Kð Kð Kð°4¸$±;ð ð ð ð ðF¨$°©+ð Fð Fð Fð Fð dð ð ð ð ð
 ð 
ð 
ð 
ð 
ð „J‡N‚NÐ7¸Ñ=Ô=ÀÒDð ð
 	€ð Ð ð Ð ð 8A°y±{´{ÐLÐ3Ð3Èð ð
 '* cØ„J‡N‚NÐAÀ6ÑJÔJñ'ô 'Ð  ð ð ñ ð
 �vØ?Ø;Ø1Øð	ñ ô €�ð ð ñ ð $)Ð ˜DÐ (Ð (Ñ (ð &CÐ%BÑ%DÔ%DÐ �t˜d‘{Ð DÐ DÑ Dð .Ð-Ñ/Ô/ð " 4¨$¡;ð ð ñ ð )/¨ØMØBØð)ñ )ô )Ð  ð ð ñ ð "Ð �dÐ !Ð !Ñ !ð &CÐ%BÑ%DÔ%DÐ �t˜d‘{Ð DÐ DÑ Dð .SÐ-RÑ-TÔ-TÐ ˜t d™{Ð TÐ TÑ Tð $˜VÐ*VÐWÑWÔWÐ �dÐ WÐ WÑ Wð 05Ð &¨Ð 4Ð 4Ñ 4ð 57Ð ! 4¨¨S¨¤>Ð 6Ð 6Ñ 6ð &*Ð ˜˜d™
Ð )Ð )Ñ )ð ð (¨Ø1ô*ð ð ñ ð ”J—N’NÐ#>ÀÑDÔDÈÒK€ˆTÐ KÐ KÑ Kð „J‡N‚NÐ=¸sÑCÔCÀsÒJð ˜Dð ð ñ ð ”:—>’>Ð"<¸cÑBÔBÀcÒI€
ˆDÐ IÐ IÑ Ið „J‡N‚NØ4¸Y¸Y¹[¼[Ð6Q°c°cÈcñô ð òð ˜dð ð ñ ð ”—’Ð >ÀÑDÔDÈÒK€ð „J‡N‚NÐ9¸3Ñ?Ô?À3ÒFð ð
 €ð Ð ð Œz�~Š~Ð:¸CÑ@Ô@ÀCÒG€ØŒj�nŠnÐ8Ñ9Ô9¸SÒ@€à„J‡N‚NÐ=Ñ>Ô>À#ÒEð ð ”—’Ð >ÀÑDÔDÈÒK€ð „J‡N‚NÐ4¸Y¸Y¹[¼[Ð6Q°c°cÈcÑRÔRØ
òð ð Ð ð €ð Ð ð ”*—.’.Ð!@À#ÑFÔFÈ#ÒM€ð ”
—’Ð<Ñ=Ô=ÀÒD€ð HJÄzÇ~Â~Ø ñHô H€ˆWÐCÔDð ð ñ ð
 Ð ð €ð #(Ð ð *Ð)Ñ+Ô+€ð Ð ð .3Ð *ð €ð €ð TXÐ ˜5œ?Ô<ÔPÐ WÐ WÑ WØTXÐ ˜EœOÔ=ÔQÐ XÐ XÑ Xð TXÐ �u”Ô8ÔPÐ WÐ WÑ Wð PTÐ �u”Ô8ÔLÐ SÐ SÑ SØPTÐ ˜œÔ9ÔMÐ TÐ TÑ Tð
 OSÐ �e”oÔ7ÔKÐ RÐ RÑ Rð 	ð Ø	„OÔ%ÔAÀDÑHð	ð 	ñ 	ð 	ð Ø	„OÔ%ÔAÀDÑHð	ð 	ñ 	ð
 Ð ð $)Ð  ð €ð €ð €ð( 68Ð ˜˜c 4¨¨S¨¤>Ð1Ô2Ð 7Ð 7Ñ 7ð 79Ð ˜$˜s D¨¨c¨¤NÐ2Ô3Ð 8Ð 8Ñ 8ð Ð ð ”z—~’~Ð&JÈCÑPÔPÐTWÒWÐ ð #Ð ð
 $(Ð  ð €ð ØØØð	+ð +Ð ˜˜c 3˜hœð ð ñ ð FQ€�ÐAÔBÐ PÐ PÑ Pð $)Ð  ð* ð (¨ØØØ	Ð;Ô	<Ð=ØÐ:Ô;ð	=ôñô*ð ð ñ ð &*Ð ˜˜d™
Ð )Ð )Ñ )ð Ð Ø %Ð ð /0Ð &¨Ð /Ð /Ñ /ð >DÐ �wÐ9Ô:Ð CÐ CÑ CàNRÐ .°¸#¸À¸Ô0DÀtÑ0KÐ RÐ RÑ Rð ð  Ø4ô!ð ð ñ ð
 $Ð �tÐ #Ð #Ñ #à4:Ð ˜7 =Ô1Ð :Ð :Ñ :àRVÐ 2°H¸c¸UÀC¸ZÔ4HÈ4Ñ4OÐ VÐ VÑ Vð ð # GØ4ô%ð ð ñ ð
 17Ð �w˜}Ô-Ð 6Ð 6Ñ 6àNRÐ .°¸#¸À¸Ô0DÀtÑ0KÐ RÐ RÑ Rð  Ð à*/Ð ! 4Ð /Ð /Ñ /ð !€ˆs�T‰zÐ  Ð  Ñ  ð !€ˆs�T‰zÐ  Ð  Ñ  ð €
ð &, VØØ?Ø<ð&ñ &ô &Ð ˜dð ð ñ ð „J‡N‚NÐ@ÑAÔAÀSÒHð ð „J‡N‚NÐ;Ñ<Ô<ÀÒCð ð (. vØØAØ>ð(ñ (ô (Ð  ð ð ñ ð Œz�~Š~Ð:Ñ;Ô;¸sÒB€ð œŸšÐ(NÑOÔOÐSVÒVÐ ð ”J—N’NÐ#DÑEÔEÈÒLÐ ð %5Ð$4Ø(°%ð%ñ %ô %Ð �d˜T‘kð ð ñ ð $' 3Ø€B„IÐ5°rÑ:Ô:ñ$ô $Ð  ð !$ Ø€B„IÐ2°CÑ8Ô8ñ!ô !Ð ð°°t±ð ð ð ð ð .UÐ-TÑ-VÔ-VÐ   d¡
Ð VÐ VÑ Vð „J‡N‚NÐDÀcÑJÔJÈcÒQð "ð „J‡N‚NÐQÐSVÑWÔWØ
òð /ð „J‡N‚NÐBÀCÑHÔHÈCÒOð  ð „J‡N‚NÐ2¸y¸y¹{¼{Ð4S°C°CÐPSÑTÔTØ
òð �ð ð ñ ð .2Ð Ð*Ð 1Ð 1Ñ 1ð
 *,Ð ˜T #œYÐ +Ð +Ñ +ð ,.Ð ˜t CœyÐ -Ð -Ñ -ð -2Ð # TÐ 1Ð 1Ñ 1ð !#Ð �D˜”IÐ "Ð "Ñ "ð  œZŸ^š^Ø.Ð0Añô ç‚%�'„'ð ð¨s°T©zð ð ð ð ð ,QÐ+PÑ+RÔ+RÐ ˜c D™jÐ RÐ RÑ Rð „J‡N‚NÐ<¸cÑBÔBÀcÒIð ˜4ð ð ñ ð +0¬-Ô*;ÐG˜˜ÀÐ ð
  œZŸ^š^Ø.°ñô ç‚%�'„'ð ð
 )+¬
¯ªØ9Ð;Qñ)ô )ç‚%�'„'ð &ð
 (*¤z§~¢~Ø8Ð:Pñ(ô (ç‚%�'„'ð %ð DFÄ:Ç>Â>Ø2°IñDô Dç‚%�'„'ð  Ð(?Ô @ð 
ð 
ñ 
ð DFÄ:Ç>Â>Ø2°IñDô Dç‚%�'„'ð  Ð(?Ô @ð 
ð 
ñ 
ð "Ð �TÐ !Ð !Ñ !ð "Ð �TÐ !Ð !Ñ !ð €ˆÐ Ð Ñ ð !Ð �TÐ  Ð  Ñ  ð =FÐ �gÐ8Ô9Ð EÐ EÑ Eð  $Ð ˜Ð #Ð #Ñ #Ø!Ð �dÐ !Ð !Ñ !ð „J‡N‚NÐ.°Ñ4Ô4¸Ò;ð ˜4ð ð ñ ð
 "Ð ð  Ð ð Ð àŒJ�NŠNÐ4Ñ5Ô5¸Ò<€	ð ”j—n’nÐ%HÑIÔIÈSÒPÐ ð
 /3Ð +à03Ð -à14Ð .ð œ
ŸšÐ'LÑMÔMÐQTÒTÐ ð !˜SØ„J‡N‚NÐ=¸tÑDÔDñô Ð ð
  %˜uØ„J‡N‚NÐ?ÀÑFÔFñ ô  Ð ð
 „J‡N‚NÐ<Ñ=Ô=ÀÒDð ð „J‡N‚NÐJÑKÔKÈsÒRð (ð $' 3Ø„J‡N‚NÐ<¸cÑBÔBñ$ô $Ð  ðð ð ð
ð ð ð
@ð @ð @ð @ð @ñ @ô @ð @ðNð Nð Nð Nð Nñ Nô Nð Nð „J‡N‚NÐ<¸cÑBÔBÀcÒIð ð
B˜Cð B Dð Bð Bð Bð Bð: ð :¨ð :ð :ð :ð :ð6˜Cð 6 Dð 6ð 6ð 6ð 6ð œŸšØ*¨Iñô Ð ð
 !&¤Ô 1Ð:�S�S°sÐ à„J‡N‚NÐ6Ð8JÑKÔKÈsÒRð ð œJŸNšNÐ+KÈSÑQÔQÐUXÒXÐ ð „J‡N‚NÐ8¸#Ñ>Ô>À#ÒEð ð ”Z—^’^Ð$FÈÑLÔLÐPSÒSÐ ð ”*—.’.Ð!@ÑAÔAÀSÒH€ð
 Ð Ø%'Ð "Ø(,Ð ˜3 ™:Ð ,Ð ,Ñ ,ð !#Ð ð ()Ð $Ø*.Ð ˜S 4™ZÐ .Ð .Ñ .Ø"$Ð àð ! #¨¡*ð ð ñ ð %+ FØ>Øð%ñ %ô %Ð ˜Tð ð ñ ð €ð Ð ð &+Ð "ð Ð à„J‡N‚NÐCÑDÔDÈÒKð !ð BFÐ ˜ Ð%6Ð!6Ô7¸$Ñ>Ð EÐ EÑ Eð Ð ð ”Z—^’^Ð$@ÑAÔAÀSÒH€ˆdÐ HÐ HÑ HØœŸšÐ(HÑIÔIÈSÒPÐ �$Ð PÐ PÑ PØœ
ŸšÐ'LÈbÑQÔQÐ à„J‡N‚NØ2¸9¸9¹;¼;Ð4O°C°CÈCñô ð òð ˜Dð ð ñ ð „J‡N‚NÐ?ÀÑEÔEÈÒLð ˜dð ð ñ ð (,Ð  Ð +Ð +Ñ +ð !#Ð ð „J‡N‚NÐ<¸cÑBÔBÀcÒIð ð
 $%Ð  ð €ð Ð ð -/Ð )ð ,0Ð ˜c D™jÐ /Ð /Ñ /ð
 $%Ð  ð
 Ð ð Ð ð  Ð ð €ð €ð �2”9Ð=¸sÑCÔCÀsÒJÐ ð �”	Ð7Ñ8Ô8¸CÒ?€ð �"”)Ð;Ñ<Ô<ÀÒC€ð ��B”J—N’NÐ#@À!ÑDÔDÑEÔE€à”:—>’>Ð"BÀCÑHÔHÈCÒOÐ ð "&Ð ð  %Ð ð  Ð ð "'Ð ð Ð ð €àÐ ð Ð ð "#Ð à&*Ð #àÑ àÑ ð %*Ñ !ð "&Ñ à$Ñ ð 6:Ñ $ e¨d¡lÐ 9Ð 9Ñ 9Ø7;Ñ &¨°©Ð ;Ð ;Ñ ;ð
 "$Ñ ˜3Ð #Ð #Ñ #ð  $Ñ ð Ñ ð  Õ 1Ð1ÐO°U¸eÕ>OÐ5OÑ Ø�Y‘[”[Ð8Ñ$8Ñ ð „J‡N‚NÐEÀsÑKÔKÈsÒRñ #ð
 #'Ñ �S˜4‘ZÐ &Ð &Ñ &Ø%)Ñ ˜˜d™
Ð )Ð )Ñ )ð �vØ2Øðñ ô ��ð ð ñ ð
 Cð 
ð 
ð 
ñ 
ð 6Ñ5Ñ7Ô7Ñ �SÐ 7Ð 7Ñ 7ð &.Ñ ˜sÐ -Ð -Ñ -ð !' Ø7Ø:Øð!ñ !ô !Ñ ˜ð ð ñ ð �FÙ Øðñ ô �ˆTð ñ ñ ð  Ñ ØÑ ñ  ÙðCÑ   X©iÔ%8¸3Ñ%>Ô ?ð ñ ñ ð
 !Ñ �DÐ  Ñ  Ñ  ð „J‡N‚NÑ>ÀÑDÔDÈÒKñ ñ
 +,Ñ " CÐ +Ñ +Ñ +ñ +.Ñ " CÐ -Ñ -Ñ -ñ ,0Ñ ! 5Ð /Ñ /Ñ /ð:ð :ñ :ð :ñ :ñ :ô :ñ :ð
C-ð C-ñ C-ð C-ñ C-ñ C-ô C-ñ C-ðL6¨Tð 6ñ 6ð 6ñ 6ð ð ñ ð ñ ðB '0 i¡k¤kÐO˜d˜dÐ7MÑ7MÑ7OÔ7O���t‘Ð OÑ OÑ Oð $* 6Ù:Ù=Øð$ñ $ô $Ñ ˜Dð ñ ñ ð #) &Ùð#ñ #ô #Ñ ˜Cð ñ ñ ð ">Ð!=Ñ!?Ô!?Ñ ˜$Ð ?Ñ ?Ñ ?ð $* 6Ù
;ð$ñ $ô $Ñ ˜Dð ñ ñ ð 39°&ÙIÙLØð3ñ 3ô 3Ñ )¨4ð ñ ñ ð „J‡N‚NÑ>ÀÑDÔDÈÒKñ ˜Tð ñ ñ ð
 '- fÙ
>ð'ñ 'ô 'Ñ ˜tð ñ ñ ð „J‡N‚NÑ8¸#Ñ>Ô>À#ÒEñ �tð ñ ñ ð „J‡N‚NÑ;¸SÑAÔAÀSÒHñ ˜$ð ñ ñ ð „J‡N‚NÑ=¸sÑCÔCÀsÒJñ ˜Dð ñ ñ ð
 ˜‘*Ð Ñ Ñ Ø€9�;„;ð ð
 Ø$Ñ$Ñ$Ñ$Ñ$Ð$áð 	@Ø3™wÕ3Ø•—“™[×0Ó0±°bµfÑ=Ô=¹zÑJÔJñ ô  ÑÐð  4™wÕ3±JÑ?Ô?ÑøøÙ™Ð$ð  ð  ð  ØÑÐÐð øøøð Ñð Ñ ð ”
—’Ñ<¸cÑBÔBÀcÒI�ð „J‡N‚NÑ8¸#Ñ>Ô>À#ÒEñ ð Ñ ð Ñ ð Ñ ð (-Ñ $ñ Ñ ñ(  Ñ ð �ð Ñ ð ��Ð Ñ Ñ ð ”—’Ñ >ÀÑDÔDÈÒK�ð #Ñ ð
 $Ñ ð Ñ ð !Ñ ð +4¨)©+¬+ oÑ ˜tÐ 5Ñ 5Ñ 5àŒz�~Š~Ñ5°rÑ:Ô:�Ù  BÒ&Ñ Ù ,°Ò 3Ð 3˜"˜"¹Ñ ð (*¤z§~¢~Ù" Dñ(ô (Ñ ˜# ™*ð ñ ñ ð
 „J‡N‚NÑHÑIÔIÈSÒPñ 0ð Ñ ð ”—’Ñ 8¸#Ñ>Ô>À#ÒE�ˆ$Ð EÑ EÑ Eð %*Ñ ˜TÐ )Ñ )Ñ )ð  %Ñ ˜Ð $Ñ $Ñ $ð (-Ñ  Ð ,Ñ ,Ñ ,ð
 $Ñ �tÐ #Ñ #Ñ #ð $Ñ �tÐ #Ñ #Ñ #ð 8=Ñ .°Ð <Ñ <Ñ <ð ,1Ñ " DÐ 0Ñ 0Ñ 0ð .3Ñ $ dÐ 2Ñ 2Ñ 2ð „J‡N‚NÑ?ÀÑEÔEÈÒLñ ð œ*Ÿ.š.Ñ)JÈCÑPÔPÐTWÒWÑ �4Ð WÑ WÑ Wð 37Ñ )¨4Ð 6Ñ 6Ñ 6ð 46Ñ �t˜C  c¨3 h¤Ð/Ô0Ð 5Ñ 5Ñ 5à˜˜RœZŸ^š^Ñ,MÉuÑUÔUÑVÔVÑ �3Ð VÑ VÑ Vð $' 3Ø„J‡N‚NÑ>ÀÑDÔDñ$ô $Ñ ˜Sð ñ ñ ð !&Ñ ˜Ð %Ñ %Ñ %ð	˜S 4™Zð 	ñ 	ð 	ñ 	ð %+ FÙ1Øð%ñ %ô %Ñ ˜cð ñ ñ ðð ñ ð ñ ñ ô ñ ð"G+ð G+ñ G+ð G+ñ G+ñ G+ô G+ñ G+ðTx&ð x&ñ x&ð x&ñ x&ñ x&ô x&ñ x&ðv.ð .ñ .ð .ñ .ñ .ô .ñ .ðJ%ð %ñ %ð %ñ %ñ %ô %ñ %ð(ð (ñ (ð (ñ (ñ (ô (ñ (ðD Ð‘WÑÔð1ð 1ñ 1ð 1ñ 1‰7ñ 1ô 1ñ Ôñ1ð< Ð‘WÑÔðTð Tñ Tð Tñ T‰'ñ Tô Tñ ÔñTðaOð aOñ aOð aOñ aOñ aOô aOñ aOñJ =B�ˆWÑ8Ô9Ð AÑ AÑ Añ 7?�ˆgÑ2Ô3Ð >Ñ >Ñ >ñ "*�ˆW‘XÔÐ )Ñ )Ñ )ñ "*�ˆW‘XÔÐ )Ñ )Ñ )ð&ð &ñ &ð &ñ &ñ &ô &ñ &ð
ð ñ ð ñ ñ ô ñ ñ8?¨Sñ ?Àsð ?Èsð ?ñ ?ð ?ñ ?ðið iñ ið iñ iñ iô iñ iðX"ñ "ð "Ñ �T˜#”Yð ñ ñ ð"*ñ *ð *Ñ ˜T #œYð ñ ñ ðD ð)Ñ ˜D œIð ñ ñ ð
 UW���h ¥¨e­l¸E½LÐIÈ4ÐOÔPÔQÐ VÑ VÑ Vð €B„IÑHÈ#ÑNÔNÐRUÒUñ +ð
 ð  ñ  ð  ñ  ñ  ô  ñ  ð94ð 94ñ 94ð 94ñ 94ñ 94ô 94ñ 94ðx ð -Ø,Ñ,Ñ,Ð,ð(ð (ñ (ð (ñ (ñ (ô (ñ (ð@ „J‡N‚NÑ:¸CÑ@Ô@ÀCÒGñ ˜ð ñ ñ ð „J‡N‚NÑKÈSÑQÔQÐUXÒXñ )¨$ð ñ ñ ð
 Ð �c•k¡(Ô+Ñ ,Ô ,Ð ,Ð ,Ð ,s   ÁB A.AC/ ÁC/AC>ÁC=AC>