+
    –°³jÒ  ã            	       ó  a € R t%0 t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^RIH	t
 ^RIHtHtHtHt ^RIHtHt ^RIHtHtHtHt ]P2                  ! ]4      tRt]! ^ R	^ R	^ 24      ]! ^ R	^ R	^ 24      ]! ^ R	^ R	^ 24      0t] ^ k ]P<                  R
 R l4       tR R lt R R lt!]P<                  R R l4       t"R R ltRRRR/R R llt]PF                  ! R]! ]]PH                  ],          4      4       R# )é    N)Úcast©ÚVersion)Úcuda)Ú_available_versionÚ_unavailable_reasonÚcheck_native_jit_disabledÚcheck_native_version_skip)Údsl_registryÚDSLModuleProtocol)Ú	_OpCondFnÚ	_OpImplFnÚderegister_op_overridesÚregister_op_overrideÚcutedslÚ.c                óT   € V ^8„  d   QhR\         \        \        R,          3,          /# ©é   ÚreturnN)ÚtupleÚboolr   )Úformats   "Ú\/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_native/cutedsl_utils.pyÚ__annotate__r   &   s!   € ÷ 'ñ '¤%¬¬g¸­nÐ(<Õ"=ñ 'ó    c                 óø   € \         P                  ! 4       '       g   R# ^ RIp V P                  P                  e   R# RR.p\        V4      pVf   Rp\        R4      pW43# \        P                  RV4       RpRpW43# )	zP
Check if cutedsl (and deps) are available.

NOTE: Doesn't import at this point
FNÚnvidia_cutlass_dslTz`CuTeDSL operators require optional Python packages `nvidia-cutlass-dsl` and `apache-tvm-ffi`; %s)FN)r   Úcutlass)Úapache_tvm_ffiÚtvm_ffi)	Ú_cudaÚis_builtÚtorchÚversionÚhipr   r   ÚlogÚinfo)r$   ÚdepsÚreasonÚ	availabler%   s        r   Ú_check_runtime_availabler,   %   sš   € ô �>Š>×ÒØÐó
 à‡}�}×ÑÒ$ØÐð 	*Ø%ð€Dô ! Ó&€FØ‚~Øˆ	Ü$Ð%9Ó:ˆð ÐÐô 	�‰ðð ô		
ð ˆ	ØˆØÐÐr   c                ó$   € V ^8„  d   QhR\         /# ©r   r   ©r   )r   s   "r   r   r   P   s   € ÷ ñ œ4ñ r   c                  ó   € \        4       w  rV # ©N©r,   )r+   Ú_s     r   Úruntime_availabler4   P   s   € Ü+Ó-�L€IØÐr   c                ó2   € V ^8„  d   QhRR\         ,          /# r   r   )r   s   "r   r   r   U   s   € ÷ ñ ˜¤�ñ r   c                  ó   € \        4       w  rV# r1   r2   ©r3   r%   s     r   Úruntime_versionr8   U   s   € Ü)Ó+�J€AØ€Nr   c                ó$   € V ^8„  d   QhR\         /# r.   r/   )r   s   "r   r   r   [   s   € ÷ ñ œñ r   c                  óŽ   € \        4       w  r\        4       '       g   V\        9   d   R # \        P	                  RV\        4       R# )Tz`cutedsl version %s is not known-good (ok: %s); set TORCH_NATIVE_SKIP_VERSION_CHECK=1 to overrideF)r,   r
   Ú_CUTEDSL_REQUIRED_VERSIONSr'   r(   r7   s     r   Ú_version_is_okr<   Z   s<   € ä)Ó+�J€AÜ ×"Ò" wÔ2LÔ'LÙä‡H�Hð	<àÜ"ô	ñ r   c                ó   € V ^8„  d   QhRR/# r   © )r   s   "r   r   r   i   s   € ÷ Gñ G ñ Gr   c                 ó&   € \        \        R7       R# )z$
Deregister all ops through cuteDSL
)Údisable_dsl_namesN)Ú_deregister_op_overrides_implÚ_CUTEDSL_DSL_NAMEr>   r   r   r   r   i   s   € ô "Ô4E×Fr   Úallow_multiple_overrideFÚunconditional_overridec                ó~   € V ^8„  d   QhR\         R\         R\         R\        R,          R\        R\        R\        R	R/# )
r   Ú
lib_symbolÚ	op_symbolÚdispatch_keyÚcondNÚimplrC   rD   r   )Ústrr   r   r   )r   s   "r   r   r   p   s]   € ÷ ñ Üðäðô ðô �dÕ
ð	ô
 ðô "ðô !ðð 
ñr   c               ó¤   € \        4       w  rxV'       d   \        4       '       d   R# \        4       '       g   R# \        \        V VVVVVVR7       R# )z•
See torch/_native/registry.py for the underlying implementation
and arguments. This is a thin, DSL-checking wrapper over
_register_op_override_impl
N)rC   rD   )r,   r	   r<   Ú_register_op_override_implrB   )	rF   rG   rH   rI   rJ   rC   rD   r+   r%   s	   &&&&&$$  r   r   r   p   sJ   € ô 2Ó3Ñ€IßÔ3×5Ò5Ùä×ÒÙäÜØØØØØØ 7Ø5÷	r   c                óV   € V ^8„  d   Qh/ ^ \         9   d   \        \        ,          ;R&   # )r   r;   )Ú__conditional_annotations__Úsetr   )r   s   "r   r   r      s"   € × Ñ ÷6ò œC¤�Lñ ò7 r   )&rO   Ú	functoolsÚloggingÚsysÚtypingr   Útorch._vendor.packaging.versionr   Úbackendsr   r"   Úcommon_utilsr   r   r	   r
   r   r   Úregistryr   r   r   rA   r   rM   Ú	getLoggerÚ__name__r'   rB   r;   Úcacher,   r4   r8   r<   Úregister_dslÚmodulesr   )rO   s   @r   Ú<module>r^      s#  øðß Ð Û Û 
Ý å 3å $÷ó ÷ :÷ó ð ×Ò˜Ó!€ð Ð ñ ˆqˆc��1�#�Q�q�cˆNÓÙˆqˆc��1�#�Q�q�cˆNÓÙˆqˆc��1�#�Q�q�cˆNÓð,Ð ó ð ‡�ô'ó ð'õTõ
ð
 ‡�ôó ðõGðð %*ðð $)÷ðH × Ò ˜)¡TÐ*;¸S¿[¹[ÈÕ=RÓ%SÖ Tr   