§
    ž²ÅjƒÞ  ã                   óª  — U d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZm	Z	m
Z
mZmZmZmZmZ d dlZd dlmc mZ d dlmZ d dlmZmZ d dlmZ d dlmZ  ede	def         ¬	¦  «        Z eed
¦  «        o eed¦  «        Z ej!        d„ ¦   «         Z" G d„ d¦  «        Z#de#defd„Z$i Z%e
e&df         e'd<   ej(        ej)        ej*        ej+        ej,        ej-        gZ. G d„ de#e j/        ¦  «        Z0d„ Z1d„ Z2d„ Z3d„ Z4 G d„ d¦  «        Z5 e5¦   «         a6d;d„Z7d„ Z8d„ Z9d„ Z:d „ Z;d!„ Z<d"„ Z= e>¦   «         a?ed#         e'd$<   d%„ Z@d&„ ZAd'„ ZB G d(„ d#e#¦  «        ZC G d)„ d*eC¦  «        ZDd+„ ZEd,ejF        d-eGfd.„ZH G d/„ d0¦  «        ZIdeIfd1„ZJ G d2„ d3ejK        ¦  «        ZLd4„ ZMd5„ ZN G d6„ d7eL¦  «        ZO G d8„ d9ejK        ¦  «        ZP eP¦   «         ZQePe'd:<   dS )<é    N)ÚAnyÚCallableÚDictÚListÚSetÚTypeÚTypeVarÚUnion)Ú_utils_internal)Ú_dispatch_is_included_in_aliasÚDispatchKey)Údispatch_functorch)ÚTorchDispatchModeÚ_F.)ÚboundÚgetdlopenflagsÚsetdlopenflagsc               #   óð   K  — t           sdV — dS t          j        ¦   «         } t          j        | t          j        z  ¦  «         	 dV — t          j        | ¦  «         dS # t          j        | ¦  «         w xY w)z�
    Context manager to set the RTLD_GLOBAL dynamic linker flag while we open a
    shared library to load custom operators.
    N)Ú_SET_GLOBAL_FLAGSÚsysr   r   ÚctypesÚRTLD_GLOBAL)Ú	old_flagss    ú;C:\Projects\Historical\venv\Lib\site-packages\torch/_ops.pyÚdl_open_guardr      s�   è è € õ ð ØˆˆˆØˆÝÔ"Ñ$Ô$€IÝÔ�y¥6Ô#5Ñ5Ñ6Ô6Ð6ð&ØˆˆˆåÔ˜9Ñ%Ô%Ð%Ð%Ð%ø�Ô˜9Ñ%Ô%Ð%Ð%øøøs   ÁA ÁA5c                   ób   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zdede	e
ge
f         fd„Zd	e
de
fd
„Zd„ ZdS )ÚOperatorBasez·
    Base class for OpOverload (which represents C++ ATen operators) and HigherOrderOperator
    (which represents Python-only operators that are unrepresentable in TorchScript).
    c                 ó>   — i | _         i | _        i | _        i | _        d S ©N)Ú_dispatch_cacheÚ
py_kernelsÚpython_key_tableÚfunctorch_table©Úselfs    r   Ú__init__zOperatorBase.__init__1   s7   € ð$ ð 	Ôð BDˆŒð ð 	Ôð  "ˆÔÐÐó    c                 ó   — t           ‚r   ©ÚNotImplementedError©r%   ÚargsÚkwargss      r   Ú__call__zOperatorBase.__call__]   ó   € Ý!Ð!r'   c                 ó   — || j         v S r   )r!   )r%   Úks     r   Úhas_kernel_for_dispatch_keyz(OperatorBase.has_kernel_for_dispatch_key`   s   € Ø�D”OÐ#Ð#r'   c                 óˆ   — | j         D ]9}t          j                             |¦  «        s|                     |¦  «        r dS Œ:dS )NTF)r!   ÚtorchÚ_CÚ_dispatch_is_alias_keyÚhas)r%   Úksr1   s      r   Úhas_kernel_for_any_dispatch_keyz,OperatorBase.has_kernel_for_any_dispatch_keyc   sI   € Ø”ð 	ð 	ˆAÝ”8×2Ò2°1Ñ5Ô5ð ¸"¿&º&À¹)¼)ð Ø�t�tøØˆur'   r1   Úreturnc                 ó4   ‡ ‡— dt           dt           fˆˆ fd„}|S )NÚfnr:   c                 ól  •— t          j        ‰¦  «        r_t          ‰t          ¦  «        st          ‰t          j        ¦  «        r0‰‰j        vsJ ‚| ‰j        ‰<   ‰j                             ¦   «          | S t          ‰t          j
        j        j        ¦  «        r‰‰j        vsJ ‚| ‰j        ‰<   | S t          ‰t          ¦  «        sJ ‚‰t          j        k    s
J d¦   «         ‚‰‰j        v r't#          d‰› d‰                     ¦   «         › �¦  «        ‚| ‰j        ‰<   ‰j                             ¦   «          | S )NzGPlease register a mode for the torch._C.DispatchKey.Python key instead.z%Trying to override a python impl for z on operator )ÚinspectÚisclassÚ
issubclassr   r4   ÚTensorr"   r    ÚclearÚ
isinstancer5   Ú
_functorchÚTransformTyper#   r   ÚPythonr!   ÚRuntimeErrorÚname)r<   r1   r%   s    €€r   Úinnerz#OperatorBase.py_impl.<locals>.innerj   sR  ø€ ÝŒ˜qÑ!Ô!ð Ý˜1Õ/Ñ0Ô0ðÝ4>¸qÅ%Ä,Ñ4OÔ4Oðð  Ô 5Ð5Ð5Ð5Ð5à+-�Ô% aÑ(ØÔ$×*Ò*Ñ,Ô,Ð,Ø�	å˜!�UœXÔ0Ô>Ñ?Ô?ð Ø Ô 4Ð4Ð4Ð4Ð4Ø*,�Ô$ QÑ'Ø�	å˜a¥Ñ-Ô-Ð-Ð-Ð-à•[Ô'Ò'Ð'Ð'ØXñ (Ô'Ð'ð �D”OÐ#Ð#Ý"ØY¸AÐYÐYÈDÏIÊIÉKÌKÐYÐYñô ð ð "$ˆDŒO˜AÑØÔ ×&Ò&Ñ(Ô(Ð(ØˆIr'   )r   )r%   r1   rI   s   `` r   Úpy_implzOperatorBase.py_impli   s<   øø€ ð	•bð 	�Rð 	ð 	ð 	ð 	ð 	ð 	ð 	ð8 ˆr'   r<   c                 óh  ‡‡‡‡— ddl mŠmŠmŠ ˆˆfd„}ˆˆfd„}ˆˆfd„} |                      t
          j        ¦  «        |¦  «          |                      t          j        j	        j
        ¦  «        |¦  «          |                      t          j        j        j        j        ¦  «        |¦  «         ‰S )Nr   )ÚCppFunctionalizeAPIÚFunctorchFunctionalizeAPIÚPythonFunctionalizeAPIc                  ó,   •—  ‰ ‰¦   «         g| ¢R i |¤ŽS r   © )r,   r-   Ú_CppFunctionalizeAPIr<   s     €€r   Úfunctionalize_dk_fnz?OperatorBase.py_functionalize_impl.<locals>.functionalize_dk_fnœ   s-   ø€ Ø�2Ð*Ð*Ñ,Ô,Ð>¨tÐ>Ð>Ð>°vÐ>Ð>Ð>r'   c                 ó.   •—  ‰ ‰| ¦  «        g|¢R i |¤ŽS r   rP   )Úmoder,   r-   Ú_PythonFunctionalizeAPIr<   s      €€r   Úfunctionalize_dispatch_mode_fnzJOperatorBase.py_functionalize_impl.<locals>.functionalize_dispatch_mode_fnŸ   s/   ø€ Ø�2Ð-Ð-¨dÑ3Ô3ÐE°dÐEÐEÐE¸fÐEÐEÐEr'   c                 ó.   •—  ‰ ‰| ¦  «        g|¢R i |¤ŽS r   rP   )Úinterpreterr,   r-   Ú_FunctorchFunctionalizeAPIr<   s      €€r   Úfunctionalize_functorch_fnzFOperatorBase.py_functionalize_impl.<locals>.functionalize_functorch_fn¢   s/   ø€ Ø�2Ð0Ð0°Ñ=Ô=ÐOÀÐOÐOÐOÈÐOÐOÐOr'   )Ú#torch._subclasses.functional_tensorrL   rM   rN   rJ   r   ÚFunctionalizer4   Ú_subclassesÚfunctional_tensorÚFunctionalTensorModer5   rD   rE   )r%   r<   rR   rV   rZ   rQ   rY   rU   s    `   @@@r   Úpy_functionalize_implz"OperatorBase.py_functionalize_impl“   s$  øøøø€ ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð	?ð 	?ð 	?ð 	?ð 	?ð 	?ð	Fð 	Fð 	Fð 	Fð 	Fð 	Fð	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	0ˆ�Š•[Ô.Ñ/Ô/Ð0CÑDÔDÐDØNˆ�Š•UÔ&Ô8ÔMÑNÔNØ*ñ	
ô 	
ð 	
ð 	Fˆ�Š•U”XÔ(Ô6ÔDÑEÔEØ&ñ	
ô 	
ð 	
ð ˆ	r'   c                 ó   — t           ‚r   r)   r$   s    r   rH   zOperatorBase.name¯   r/   r'   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r&   r.   r2   r9   r   r   r   rJ   r`   rH   rP   r'   r   r   r   +   sº   € € € € € ðð ð
*"ð *"ð *"ðX"ð "ð "ð$ð $ð $ðð ð ð˜ð  ¨2¨$°¨(Ô!3ð ð ð ð ðT¨ð ¨rð ð ð ð ð8"ð "ð "ð "ð "r'   r   Úopr1   c                 ó°  — |                       |¦  «        r|S t          j        }|t          j        k    st	          ||¦  «        r|                       |¦  «        r|S t          j        }|t          j        k    st	          ||¦  «        r|                       |¦  «        r|S |                      t          j         	                    |¦  «        ¦  «        p|                       t          j        ¦  «        }t          j
        }|t          j        k    r)t	          ||¦  «        r|                       |¦  «        r|s|S t          j        }|t          j        k    st	          ||¦  «        r\|                       |¦  «        rG|t          j        k    r3|                      t          j        j        ¦  «        rt          d¦  «        ‚|s|S t          j        }t	          ||¦  «        r|                       |¦  «        r|S t          j        }t	          ||¦  «        r|                       |¦  «        r|S t          j                             |¦  «        r|S t%          d| › d|› �¦  «        ‚)Nzambiguous autogradother kernelzcould not find kernel for ú at dispatch key )r2   r   Ú&CompositeExplicitAutogradNonFunctionalÚ	UndefinedÚis_included_in_aliasÚCompositeExplicitAutogradr9   r4   r5   Ú*_dispatch_get_backend_keyset_from_autogradÚ%CompositeImplicitAutogradNestedTensorÚCompositeImplicitAutogradÚAutogradOtherÚ _dispatch_autogradother_backendsrG   ÚAutogradÚFuncTorchBatchedDecompositionÚ_dispatch_has_backend_fallbackr*   )rf   r1   ÚcandÚhas_backend_kernels       r   Úresolve_keyrw   ´   s]  € à	×%Ò% aÑ(Ô(ð ØˆåÔ=€Dà	�[Ô"Ò"Ð"Õ&:¸1¸dÑ&CÔ&CÐ"Ø
×
(Ò
(¨Ñ
.Ô
.ð 	#àˆåÔ0€Dà	�[Ô"Ò"Ð"Õ&:¸1¸dÑ&CÔ&CÐ"Ø
×
(Ò
(¨Ñ
.Ô
.ð 	#àˆØ×;Ò;ÝŒ×;Ò;¸AÑ>Ô>ñô ð Oà	×	'Ò	'­Ô(MÑ	NÔ	Nð õ Ô<€Dà	
�kÔ#Ò	#Ð	#Õ(<¸QÀÑ(EÔ(EÐ	#Ø×*Ò*¨4Ñ0Ô0ð 
$à"ð 
$ð ˆÝÔ0€Dà	�[Ô"Ò"Ð"Õ&:¸1¸dÑ&CÔ&CÐ"Ø
×
(Ò
(¨Ñ
.Ô
.ð 	#à•Ô)Ò)Ð)¨b×.PÒ.PÝŒHÔ5ñ/
ô /
Ð)õ Ð?Ñ@Ô@Ð@Ø#ð 	ØˆKåÔ€DÝ˜A˜tÑ$Ô$ð ¨×)GÒ)GÈÑ)MÔ)Mð ØˆåÔ4€DÝ˜A˜tÑ$Ô$ð ¨×)GÒ)GÈÑ)MÔ)Mð Øˆå„x×.Ò.¨qÑ1Ô1ð ð ˆÝ
ÐS¸2ÐSÐSÐPQÐSÐSÑ
TÔ
TÐTr'   ÚHigherOrderOperatorÚ_higher_order_opsc                   óž   ‡ — e Zd Zddœˆ fd„
Zdedeegef         fˆ fd„Zed„ ¦   «         Z	d„ Z
d	„ Zd
„ Zej        d„ ¦   «         Zd„ Zd„ Zˆ xZS )rx   F)Ú	cacheablec                óp  •— t          ¦   «                              ¦   «          t          | ¦  «        t          u rt	          d¦  «        ‚|| _        || _        | t          |<   d| _        d| _	        || _
        t          j                             ¦   «         | _        t          D ]}|                      |¦  «         Œd S )NzODirect instantiation of HigherOrderOperator is not allowed. Please subclass it.Úhigher_orderútorch.ops.higher_order)Úsuperr&   Útyperx   rG   Ú_namerb   ry   Ú_nsrc   Ú
_cacheabler4   r5   Ú_dispatch_keyset_fullÚnon_fallthrough_keysÚ2_HIGHER_ORDER_OP_DEFAULT_FALLTHROUGH_DISPATCH_KEYSÚfallthrough)r%   rH   r{   Údispatch_keyÚ	__class__s       €r   r&   zHigherOrderOperator.__init__û   s¸   ø€ Ý‰Œ×ÒÑÔÐÝ�‰:Œ:Õ,Ð,Ð,ÝØañô ð ð ˆŒ
ð ˆŒØ"&Õ˜$ÑØ!ˆŒØ2ˆŒØ#ˆŒå$)¤H×$BÒ$BÑ$DÔ$DˆÔ!åNð 	+ð 	+ˆLØ×Ò˜\Ñ*Ô*Ð*Ð*ð	+ð 	+r'   r1   r:   c                 óâ   •— t          |t          ¦  «        r9| j                             |¦  «        s| j                             |¦  «        | _        t          ¦   «                              |¦  «        S r   )rC   r   r…   r7   Úaddr   rJ   ©r%   r1   r‰   s     €r   rJ   zHigherOrderOperator.py_impl  s^   ø€ Ý�a�Ñ%Ô%ð 	I¨dÔ.G×.KÒ.KÈAÑ.NÔ.Nð 	IØ(,Ô(A×(EÒ(EÀaÑ(HÔ(HˆDÔ%Ý‰wŒw�Š˜qÑ!Ô!Ð!r'   c                 ó   — | j         S r   )r‚   r$   s    r   Ú	namespacezHigherOrderOperator.namespace  ó	   € àŒxˆr'   c                 ó   — | j         S r   )rƒ   r$   s    r   r{   zHigherOrderOperator.cacheable   s
   € ØŒÐr'   c                 óD   — | j                              |¦  «        | _         d S r   )r…   Úremove)r%   rˆ   s     r   r‡   zHigherOrderOperator.fallthrough#  s!   € Ø$(Ô$=×$DÒ$DÀ\Ñ$RÔ$RˆÔ!Ð!Ð!r'   c          	      óR  ‡‡— ddl m} || j        v r,| j        |         }t          |t          ¦  «        rJ ‚ ||i |¤ŽS |t          j        k    rt          | ||¦  «        S |t          j        k    �rºg Šd„ Šˆˆfd„}g |¢|                     ¦   «         ¢R D ]9} ||¦  «         t          |t          t          f¦  «        r|D ]} ||¦  «         ŒŒ:t          ‰¦  «        }	t          d„ |	D ¦   «         ¦  «        }
ddl m}  |¦   «         }|�…t          |¦  «        | j        v rI| j        t          |¦  «                 } |¦   «         5 } ||g|¢R i |¤Ž}d d d ¦  «         n# 1 swxY w Y   nt          d| j        › d|› d	�¦  «        ‚|t           ur|S |	D ]s}t          |¦  «        }|j        t$          j        j        k    rŒ,|| j        v r| j        |         } ||i |¤Ž}nt          d| j        › d
|› d	�¦  «        ‚|t           ur|c S Œtt+          d| j        › d|› dd„ |	D ¦   «         › �¦  «        ‚t$          j                             |¦  «        }|t          j        k    rÈddl m} t1          ¦   «         dk    r°t$          j                             t          j        ¦  «        s‡t5          ¦   «         }|€
J d¦   «         ‚t          |¦  «        | j        v sJ d|› d�¦   «         ‚| j        t          |¦  «                 } ||¦  «        5 } ||g|¢R i |¤Žcd d d ¦  «         S # 1 swxY w Y   t7          | |¦  «        }|| j        vrt          d| j        › d|› d|› d�¦  «        ‚|t          j        k    r| j        |         | j        |<   | j        |         }t          |t          ¦  «        rJ ‚ ||i |¤ŽS )Nr   ©Ú_get_current_dispatch_modec                 óf   — t           j                             | ¦  «                             d¦  «        S )NrF   )r4   r5   Ú_dispatch_keysr7   )Útensors    r   Úhas_python_keyz4HigherOrderOperator.dispatch.<locals>.has_python_key9  s&   € Ý”x×.Ò.¨vÑ6Ô6×:Ò:¸8ÑDÔDÐDr'   c                 ó„   •— t          | t          j        ¦  «        r" ‰| ¦  «        r‰                     | ¦  «         d S d S d S r   )rC   r4   rA   Úappend)Úargr™   Úoverloaded_args_lists    €€r   Úcheck_overloadedz6HigherOrderOperator.dispatch.<locals>.check_overloaded<  sV   ø€ Ý˜c¥5¤<Ñ0Ô0ð 5°^°^ÀCÑ5HÔ5Hð 5Ø(×/Ò/°Ñ4Ô4Ð4Ð4Ð4ð5ð 5ð 5ð 5r'   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r   ©r€   ©Ú.0rœ   s     r   ú	<genexpr>z/HigherOrderOperator.dispatch.<locals>.<genexpr>G  s(   è è € Ð$JÐ$J°3¥T¨#¡Y¤YÐ$JÐ$JÐ$JÐ$JÐ$JÐ$Jr'   )Ú_pop_mode_temporarilyz%There was no rule registered for HOP z
 and mode z. We recommend filing an issue.z and subclass zMultiple dispatch failed for zl. There was no registered that did not return NotImplemented. Use HOP.py_impl to register some. Tried mode: z) and subclasses: c                 ó,   — g | ]}t          |¦  «        ‘ŒS rP   r    )r¢   Úas     r   ú
<listcomp>z0HigherOrderOperator.dispatch.<locals>.<listcomp>v  s   € Ð5Ð5Ð5 •D˜‘G”GÐ5Ð5Ð5r'   zRIllegal invocation of dispatch on torch._C.DispatchKey.PreDispatch without a mode.zCurrent active mode z not registeredz.could not find kernel for HigherOrderOperator rh   z (resolved from ú))Útorch.utils._python_dispatchr•   r    rC   r   ÚFuncTorchDynamicLayerFrontModer   rF   ÚvaluesÚlistÚtupler¤   r€   r"   r*   r�   ÚNotImplementedÚ__torch_dispatch__r4   r5   Ú_disabled_torch_dispatch_implÚ	TypeErrorÚ_to_functionality_keyÚPreDispatchÚ&_len_torch_dispatch_stack_pre_dispatchÚ&_dispatch_tls_is_dispatch_key_excludedÚ'_get_current_dispatch_mode_pre_dispatchrw   r!   )r%   rˆ   r,   r-   r•   Úkernelrž   rœ   r¦   Úoverloaded_argsÚoverloaded_typesr¤   Ú	curr_modeÚhandlerrT   ÚresultÚsubclass_typeÚfunctionality_keyÚ	final_keyr™   r�   s                      @@r   ÚdispatchzHigherOrderOperator.dispatch(  s¿  øø€ ØKÐKÐKÐKÐKÐKà˜4Ô/Ð/Ð/ØÔ)¨,Ô7ˆFÝ! &­+Ñ6Ô6Ð6Ð6Ð6Ø�6˜4Ð* 6Ð*Ð*Ð*à�;ÔEÒEÐEÝ% d¨D°&Ñ9Ô9Ð9à�;Ô-Ò-Ñ-ð $&Ð ðEð Eð Eð5ð 5ð 5ð 5ð 5ð 5ð 1˜Ð0 §¢¡¤Ð0Ð0ð ,ð ,�Ø Ð  Ñ%Ô%Ð%Ý˜c¥D­% =Ñ1Ô1ð ,Ø ð ,ð ,˜Ø(Ð(¨Ñ+Ô+Ð+Ð+øå#Ð$8Ñ9Ô9ˆOÝ$Ð$JÐ$J¸/Ð$JÑ$JÔ$JÑJÔJÐð KÐJÐJÐJÐJÐJà2Ð2Ñ4Ô4ˆIØÐ$Ý˜	‘?”? dÔ&;Ð;Ð;Ø"Ô3µD¸±O´OÔD�GØ.Ð.Ñ0Ô0ð @°Dð ") ¨Ð!?°Ð!?Ð!?Ð!?¸Ð!?Ð!?˜ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @øõ
 .ð9ÀÄ
ð 9ð 9ÐV_ð 9ð 9ð 9ñô ð ð ¥Ð/Ð/Ø!�Mð 'ð "ð "�Ý $ S¡	¤	�à!Ô4Ý”xÔ=ò>ð >ð Ø  DÔ$9Ð9Ð9Ø"Ô3°MÔB�Gð %˜W dÐ5¨fÐ5Ð5�F�Få-ð9ÀÄ
ð 9ð 9ÐZgð 9ð 9ð 9ñô ð ð ¥Ð/Ð/Ø!�M�M�Mð 0õ ð8°´
ð 8ð 8à(ð8ð 8ð 6Ð5 _Ð5Ñ5Ô5ð8ð 8ñô ð õ "œH×:Ò:¸<ÑHÔHÐØ¥Ô 7Ò7Ð7ØJÐJÐJÐJÐJÐJõ
 7Ñ8Ô8¸1Ò<Ð<Ý”h×EÒEÝÔ"ñô ð =õ DÑEÔE�	àÐ)Ð)Øgñ *Ô)Ð)õ ˜‘O”O tÔ'<Ð<Ð<Ð<ØD¨)ÐDÐDÐDñ =Ô<Ð<àÔ/µ°Y±´Ô@�Ø*Ð*Ð+<Ñ=Ô=ð :ÀØ"˜7 4Ð9¨$Ð9Ð9Ð9°&Ð9Ð9ð:ð :ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :õ    lÑ3Ô3ˆ	ð ˜DœOÐ+Ð+Ý%ðNÀÄð Nð NØ#,ðNð NØ>JðNð Nð Nñô ð ð �;Ô2Ò2Ð2Ø15´ÀÔ1KˆDÔ  Ñ.Ø” Ô+ˆõ ˜f¥kÑ2Ô2Ð2Ð2Ð2Øˆv�tÐ&˜vÐ&Ð&Ð&s$   ÅEÅEÅ"EË=LÌLÌLc                óF   ‡ ‡‡— ddl m} |ˆˆˆ fd„¦   «         } |¦   «         S )Nr   )Údisablec                  ó
  •— t          ‰‰¦  «        } t          j                             | ¦  «        rt          j        j        ‰| g‰¢R i ‰¤ŽS t          ‰‰‰j        ¦  «        } ‰j        |                     ¦   «         g‰¢R i ‰¤ŽS r   )	Ú_to_flat_tupler4   Ú	overridesÚhas_torch_functionÚhandle_torch_functionÚ_compute_keysetr…   rÀ   ÚhighestPriorityTypeId)Ú	flat_argsÚdispatch_key_setr,   r-   r%   s     €€€r   Úwrapperz-HigherOrderOperator.__call__.<locals>.wrapper«  s¶   ø€ å& t¨VÑ4Ô4ˆIÝŒ×1Ò1°)Ñ<Ô<ð Ý”Ô<Ø˜)ðØ&*ðð ð Ø.4ðð ð õ  /¨t°V¸TÔ=VÑWÔWÐØ �4”=Ø ×6Ò6Ñ8Ô8ðØ;?ðð ð ØCIðð ð r'   )Útorch._dynamorÂ   )r%   r,   r-   rÂ   rÌ   s   ```  r   r.   zHigherOrderOperator.__call__¥  sT   øøø€ ð 	*Ð)Ð)Ð)Ð)Ð)à	ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ñ 
Œð
	ð ˆw‰yŒyÐr'   c                 ó,   — |                       ¦   «         › S r   )rH   r$   s    r   Ú__str__zHigherOrderOperator.__str__º  s   € Ø—)’)‘+”+ÐÐr'   c                 ó   — | j         S r   ©r�   r$   s    r   rH   zHigherOrderOperator.name½  ó
   € ØŒzÐr'   )rb   rc   rd   r&   r   r   r   rJ   ÚpropertyrŽ   r{   r‡   rÀ   ÚabcÚabstractmethodr.   rÏ   rH   Ú__classcell__©r‰   s   @r   rx   rx   õ   s
  ø€ € € € € ð +0ð +ð +ð +ð +ð +ð +ð +ð8"˜ð " ¨2¨$°¨(Ô!3ð "ð "ð "ð "ð "ð "ð
 ðð ñ „Xððð ð ðSð Sð Sð
{'ð {'ð {'ðz 	Ôðð ñ Ôðð( ð  ð  ðð ð ð ð ð ð r'   c                 ó$   — t          j        | i |¤ŽS r   )ÚpytreeÚarg_tree_leaves©r,   r-   s     r   rÄ   rÄ   Á  s   € ÝÔ! 4Ð2¨6Ð2Ð2Ð2r'   c                 óB   — t          | |¦  «        }t          ||¦  «        S r   )Ú_get_tensorsÚkey_extractor)r,   r-   r…   Útensorss       r   rÈ   rÈ   Å  s"   € Ý˜4 Ñ(Ô(€GÝ˜Ð"6Ñ7Ô7Ð7r'   c                 óX   — t          | |¦  «        }d„ |D ¦   «         }t          |¦  «        S )Nc                 óF   — g | ]}t          |t          j        ¦  «        ¯|‘ŒS rP   )rC   r4   rA   )r¢   Úts     r   r§   z _get_tensors.<locals>.<listcomp>Ì  s)   € ÐFÐFÐF˜­*°Q½¼Ñ*EÔ*EÐF�1ÐFÐFÐFr'   )rÄ   r­   )r,   r-   Úflat_allÚtensor_argss       r   rÝ   rÝ   Ê  s2   € Ý˜d FÑ+Ô+€HØFÐF˜hÐFÑFÔF€KÝ�ÑÔÐr'   c                 óÜ   — t           j                             ¦   «         }| D ]$}|t           j                             |¦  «        z  }Œ%|t           j                             ¦   «         z
  }||z  }|S r   )r4   r5   Ú_dispatch_tls_local_include_setr—   Ú_dispatch_tls_local_exclude_set)rß   Úkey_maskÚkey_setr˜   s       r   rÞ   rÞ   Ò  sg   € ÝŒh×6Ò6Ñ8Ô8€GØð <ð <ˆØ�EœH×3Ò3°FÑ;Ô;Ñ;ˆˆØ�œ×@Ò@ÑBÔBÑB€GØ˜Ñ €GØ€Nr'   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )Ú_ModeStackStateForPreDispatchc                 ó&   — d d g| _         d | _        d S r   )Ú*_ModeStackStateForPreDispatch__infra_modesÚ_schema_check_moder$   s    r   r&   z&_ModeStackStateForPreDispatch.__init__é  s   € Ø" D˜\ˆÔØ"&ˆÔÐÐr'   c                 óN   — |t          | j        ¦  «        k     sJ ‚|| j        |<   d S r   ©Úlenrí   )r%   ÚindexrT   s      r   Úsetz!_ModeStackStateForPreDispatch.setí  s1   € Ø•s˜4Ô-Ñ.Ô.Ò.Ð.Ð.Ð.Ø$(ˆÔ˜5Ñ!Ð!Ð!r'   c                 óP   — |t          | j        ¦  «        k     sJ ‚| j        |         S r   rð   )r%   rò   s     r   Úgetz!_ModeStackStateForPreDispatch.getñ  s,   € Ø•s˜4Ô-Ñ.Ô.Ò.Ð.Ð.Ð.ØÔ! %Ô(Ð(r'   c                 ól   — t          d„ | j        D ¦   «         ¦  «        t          | j        d u¦  «        z   S )Nc                 ó   — g | ]}|®|‘ŒS r   rP   )r¢   Úis     r   r§   z7_ModeStackStateForPreDispatch.count.<locals>.<listcomp>ö  s   € ÐCÐCÐC˜!°Q°]�A°]°]°]r'   )rñ   rí   Úintrî   r$   s    r   Úcountz#_ModeStackStateForPreDispatch.countõ  sB   € ÝÐCÐC˜tÔ1ÐCÑCÔCÑDÔDÅsØÔ#¨4Ð/ñH
ô H
ñ 
ð 	
r'   N)rb   rc   rd   r&   ró   rõ   rú   rP   r'   r   rë   rë   è  sP   € € € € € ð'ð 'ð 'ð)ð )ð )ð)ð )ð )ð
ð 
ð 
ð 
ð 
r'   rë   Fc                 ó2  ‡ ‡— t          ¦   «         Š‰ �0‰ t          j        j        j        t          j        j        j        fv sJ ‚|r‰ �J ‚ˆˆ fd„} |¦   «         }t          ¦   «         }|dk    r*t          j                             t          j	        d¦  «         |S )Nc                  ó   •— ‰t           j        j        j        k    r9‰                     d¦  «        } t          ¦   «                              dd ¦  «         | S ‰t           j        j        j        k    r9‰                     d¦  «        } t          ¦   «                              dd ¦  «         | S t          ¦   «         j        } d t          ¦   «         _        | S ©Nr   é   )	r4   r5   Ú_TorchDispatchModeKeyÚPROXYrõ   Ú!mode_stack_state_for_pre_dispatchró   Ú
FUNCTIONALrî   )Úcurrent_modeÚcurrent_mode_stack_pre_dispatchÚmode_keys    €€r   Ú_unset_modez,unset_mode_pre_dispatch.<locals>._unset_mode  s¶   ø€ Ø•u”xÔ5Ô;Ò;Ð;Ø:×>Ò>¸qÑAÔAˆLÝ-Ñ/Ô/×3Ò3°A°tÑ<Ô<Ð<ØÐØ�œÔ7ÔBÒBÐBØ:×>Ò>¸qÑAÔAˆLÝ-Ñ/Ô/×3Ò3°A°tÑ<Ô<Ð<ØÐå<Ñ>Ô>ÔQˆLØEIÕ-Ñ/Ô/ÔBØÐr'   r   F)
r  r4   r5   rÿ   r   r  r´   Ú'_dispatch_tls_set_dispatch_key_includedr   r³   )r  Úschema_checkr  r  Únew_pre_dispatch_lenr  s   `    @r   Úunset_mode_pre_dispatchr
  þ  sÃ   øø€ Ý&GÑ&IÔ&IÐ#ØÐ˜xÝŒÔ&Ô,ÝŒÔ&Ô1ð,ð  ð  ð  ð ð ð  ØÐÐÐð ð  ð  ð  ð  ð  ð �;‘=”=€LåAÑCÔCÐð
 ˜qÒ Ð ÝŒ×8Ò8½Ô9PÐRWÑXÔXÐXàÐr'   c                 óª  — ddl m} ddlm} ddlm} t          | |||f¦  «        sJ ‚t          ¦   «         }t          | |¦  «        r<t          ¦   «         j	        }|dk    rt          d¦  «        ‚| t          ¦   «         _	        nŸt          | |¦  «        rHt          ¦   «                              d¦  «        }|�J ‚t          ¦   «                              d| ¦  «         nGt          ¦   «                              d¦  «        }|�J ‚t          ¦   «                              d| ¦  «         |dk    r,t          j                             t           j        d¦  «         d S d S )Nr   )r_   )ÚSchemaCheckMode)ÚProxyTorchDispatchModezYSchemaCheckMode for pre-dispatch must be used exclusively, found other modes on the stackrþ   T)r[   r_   Ú#torch._subclasses.schema_check_moder  Ú"torch.fx.experimental.proxy_tensorr  rC   r´   r  rî   ÚAssertionErrorrõ   ró   r4   r5   r  r   r³   )rT   r_   r  r  Úprevious_mode_stack_lenr  s         r   Ú_set_mode_pre_dispatchr  "  s™  € ØHÐHÐHÐHÐHÐHØCÐCÐCÐCÐCÐCØIÐIÐIÐIÐIÐIåØà Ø"Øð	
ñô ð ð ð õ EÑFÔFÐÝ�$˜Ñ(Ô(ð 9Ý8Ñ:Ô:ÔMˆØ" QÒ&Ð&Ý Økñô ð ð BFÕ)Ñ+Ô+Ô>Ð>Ý	�DÐ.Ñ	/Ô	/ð 9Ý8Ñ:Ô:×>Ò>¸qÑAÔAˆØÐ#Ð#Ð#Ý)Ñ+Ô+×/Ò/°°4Ñ8Ô8Ð8Ð8å8Ñ:Ô:×>Ò>¸qÑAÔAˆØÐ#Ð#Ð#Ý)Ñ+Ô+×/Ò/°°4Ñ8Ô8Ð8ð  !Ò#Ð#ÝŒ×8Ò8½Ô9PÐRVÑWÔWÐWÐWÐWð $Ð#r'   c                  óx  — t          ¦   «         } t          ¦   «         }|dk    rt          d¦  «        ‚| j        �t	          d d¬¦  «        S |                      d¦  «        �#t	          t          j        j        j	        ¦  «        S |                      d¦  «        �#t	          t          j        j        j
        ¦  «        S d S )Nr   zTrying to pop empty mode stackT)r  rþ   )r  r´   r  rî   r
  rõ   r4   r5   rÿ   r  r   )Ú
mode_stackÚpre_dispatch_lens     r   Ú_pop_mode_from_pre_dispatchr  I  s§   € Ý2Ñ4Ô4€JÝ=Ñ?Ô?Ðà˜1ÒÐÝÐ=Ñ>Ô>Ð>àÔ$Ð0Ý& t¸$Ð?Ñ?Ô?Ð?Ø‡~‚~�aÑÔÐ$Ý&¥u¤xÔ'EÔ'PÑQÔQÐQØ‡~‚~�aÑÔÐ$Ý&¥u¤xÔ'EÔ'KÑLÔLÐLð %Ð$r'   c                  óB   — t          ¦   «                              ¦   «         S r   )r  rú   rP   r'   r   r´   r´   X  s   € Ý,Ñ.Ô.×4Ò4Ñ6Ô6Ð6r'   c                 ó  — | t           j        j        j        t           j        j        j        fv sJ ‚| t           j        j        j        k    r!t          ¦   «                              d¦  «        S t          ¦   «                              d¦  «        S rý   )r4   r5   rÿ   r   r  r  rõ   )r  s    r   Ú_get_dispatch_mode_pre_dispatchr  \  s}   € ØÝŒÔ&Ô,ÝŒÔ&Ô1ðð ð ð ð ð •5”8Ô1Ô7Ò7Ð7Ý0Ñ2Ô2×6Ò6°qÑ9Ô9Ð9å0Ñ2Ô2×6Ò6°qÑ9Ô9Ð9r'   c                  ó²  — t          ¦   «         j        �t          ¦   «         j        S t          ¦   «                              ¦   «         } | dk    r!t          ¦   «                              d¦  «        S | dk    rct          ¦   «                              d¦  «        �!t          ¦   «                              d¦  «        n t          ¦   «                              d¦  «        S d S )Né   rþ   r   )r  rî   rú   rõ   )Ú	stack_lens    r   r¶   r¶   g  s¾   € Ý(Ñ*Ô*Ô=ÐIÝ0Ñ2Ô2ÔEÐEå5Ñ7Ô7×=Ò=Ñ?Ô?ˆ	Ø˜Š>ˆ>Ý4Ñ6Ô6×:Ò:¸1Ñ=Ô=Ð=Ø˜Š>ˆ>õ 5Ñ6Ô6×:Ò:¸1Ñ=Ô=ÐIõ 2Ñ3Ô3×7Ò7¸Ñ:Ô:Ð:å6Ñ8Ô8×<Ò<¸QÑ?Ô?ðð
 ˆ4r'   c                  ó   — t           S r   )Ú"_mode_stack_state_for_pre_dispatchrP   r'   r   r  r  w  s   € å-Ð-r'   Ú
OpOverloadÚ
cached_opsc                 ó:   — t                                | ¦  «         d S r   )r   r‹   )Úop_overloads    r   Úadd_cached_opr#    s   € å‡N‚N�;ÑÔÐÐÐr'   c                  ó8   — t                                ¦   «          d S r   )r   rB   rP   r'   r   Úreset_cached_opsr%  „  s   € å×ÒÑÔÐÐÐr'   c                  ó   — t           S r   )r   rP   r'   r   Úget_cached_opsr'  ‰  s   € åÐr'   c                   ó  ‡ — e Zd Zˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zdd„Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zˆ fd„Zˆ fd„Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zˆ xZS )r  c                 óª  •— t          ¦   «                              ¦   «          || _        || _        || _        || _        || _        |j        dk    rdn|j        | _        | j        j	        | _
        |j        r| xj
        d|j        z   z  c_
        | j        j	                             d¦  «        d         › d| j        › �| _        |j        | _        |j        |_        | j
        | _        i | _        d | _        | j        t"          j        j        v | _        d }| j        j        D ]'}|j        €Œ
|€|j        j        }Œ|j        j        p|}Œ(|d uo| | _        d S )NÚ Údefaultú.ú::rþ   )r   r&   Ú_opÚ_op_dkÚ_schemaÚ_overloadpacketÚ_tagsÚoverload_nameÚ_overloadnamerH   r�   Úsplitrb   rc   rd   Ú__annotations__Ú_lazy_handler4   ÚlibraryÚ_defsÚ_defined_in_pythonÚ	argumentsÚ
alias_infoÚis_writeÚis_view)	r%   Úoverloadpacketrf   Úop_dkÚschemaÚtagsr=  r¦   r‰   s	           €r   r&   zOpOverload.__init__‘  sf  ø€ Ý‰Œ×ÒÑÔÐØˆŒØˆŒØˆŒØ-ˆÔØˆŒ
àÔ-°Ò3Ð3ˆIˆI¸Ô9Mð 	Ôð ”\Ô&ˆŒ
ØÔð 	5ØˆJŒJ˜# Ô 4Ñ4Ñ4ˆJŒJØœ<Ô,×2Ò2°4Ñ8Ô8¸Ô;ÐRÐR¸dÔ>PÐRÐRˆŒØ(Ô3ˆŒØ&Ô1ˆŒØ œJˆÔØ!ˆÔð !ˆÔð #'Ô"3µu´}Ô7JÐ"JˆÔð ˆØ”Ô'ð 	=ð 	=ˆAØŒ|Ð#ØØÐØœ<Ô0��ð œ<Ô0Ð<°H��Ø tÐ+Ð<°H°ˆŒˆˆr'   c                 óL   — | j         j                             d¦  «        d         S ©Nr-  r   ©r0  rH   r5  r$   s    r   Ú
_namespacezOpOverload._namespace·  ó    € àŒ|Ô ×&Ò& tÑ,Ô,¨QÔ/Ð/r'   c                 óL   — | j         j                             d¦  «        d         S )Nr-  rþ   rE  r$   s    r   Ú_opnamezOpOverload._opname»  rG  r'   c                 ó�   — | j         €9t          j                             | j        j        | j        j        ¦  «        | _         | j         S r   )r7  r4   r5   Ú_dispatch_find_schema_or_throwr0  rH   r3  r$   s    r   Ú_handlezOpOverload._handle¿  s?   € àÔÐ$Ý %¤× GÒ GØ”Ô! 4¤<Ô#=ñ!ô !ˆDÔð Ô Ð r'   Nc                 ó   — | S r   rP   ©r%   Úmemos     r   Ú__deepcopy__zOpOverload.__deepcopy__È  ó   € Øˆr'   c                 ód   —  dj         g | j        j                             d¦  «        ¢| j        ‘R Ž S )Nz'<OpOverload(op='{}.{}', overload='{}')>r-  ©Úformatr0  rH   r5  r4  r$   s    r   Ú__repr__zOpOverload.__repr__Ë  sE   € Ø?Ð8Ô?ð 
ØŒ\Ô×$Ò$ TÑ*Ô*ð
Ø,0Ô,>ð
ð 
ð 
ð 	
r'   c                ó   —  | j         |i |¤ŽS r   ©r.  r+   s      r   r.   zOpOverload.__call__Ò  s   € ØˆtŒx˜Ð( Ð(Ð(Ð(r'   c                ó.   —  | j         j        |g|¢R i |¤ŽS r   )rL  Úredispatch_boxed)r%   Úkeysetr,   r-   s       r   Ú
redispatchzOpOverload.redispatch×  s'   € Ø,ˆtŒ|Ô,¨VÐE°dÐEÐEÐE¸fÐEÐEÐEr'   c                 ó*   — t          | j        ¦  «        S r   ©Úhashr.  r$   s    r   Ú__hash__zOpOverload.__hash__Ú  ó   € Ý�D”H‰~Œ~Ðr'   c                 ód   —  dj         g | j        j                             d¦  «        ¢| j        ‘R Ž S )Nz{}.{}.{}r-  rS  r$   s    r   rÏ   zOpOverload.__str__Þ  s6   € Ø ˆzÔ ÐT $¤,Ô"3×"9Ò"9¸$Ñ"?Ô"?ÐTÀÔASÐTÐTÐTÐTr'   c                 óª   •— t          ¦   «                              |¦  «        p1t          j                             |                      ¦   «         |¦  «        S r   )r   r2   r4   r5   Ú%_dispatch_has_kernel_for_dispatch_keyrH   rŒ   s     €r   r2   z&OpOverload.has_kernel_for_dispatch_keyá  sF   ø€ Ý‰wŒw×2Ò2Øñ
ô 
ð LåŒX×;Ò;¸D¿IºI¹K¼KÈÑKÔKð	Lr'   c                 óª   •— t           j                             |                      ¦   «         |¦  «        p t	          ¦   «                              |¦  «        S r   )r4   r5   Ú)_dispatch_has_kernel_for_any_dispatch_keyrH   r   r9   )r%   r8   r‰   s     €r   r9   z*OpOverload.has_kernel_for_any_dispatch_keyæ  sD   ø€ ÝŒx×AÒAØ�IŠI‰KŒK˜ñ
ô 
ð 9å‰WŒW×4Ò4°RÑ8Ô8ð	9r'   c                 óL   — | j         j                             d¦  «        d         S rD  rE  r$   s    r   rŽ   zOpOverload.namespaceë  rG  r'   c                 ó�   — t           j        }|| j        v p1t          j                             |                      ¦   «         |¦  «        S r   )r   ro   r!   r4   r5   rc  rH   )r%   Údks     r   Ú_can_decomposezOpOverload._can_decomposeï  s?   € ÝÔ2ˆØ�T”_Ð$ð 
­¬×(VÒ(VØ�IŠI‰KŒK˜ñ)
ô )
ð 	
r'   c                 óæ   — t           j        }|| j        v r | j        |         |i |¤ŽS t          j                             |                      ¦   «         |¦  «        r | j        |g|¢R i |¤ŽS t          S r   )	r   ro   r!   r4   r5   rc  rH   r/  r®   )r%   r,   r-   rh  s       r   Ú	decomposezOpOverload.decomposeõ  s   € ÝÔ2ˆØ�”Ð Ð ð
 '�4”? 2Ô&¨Ð7°Ð7Ð7Ð7ÝŒX×;Ò;¸D¿IºI¹K¼KÈÑLÔLð 	"Ø�4”;˜rÐ3 DÐ3Ð3Ð3¨FÐ3Ð3Ð3å!Ð!r'   c                 ó<   — | j                              |d ¦  «         d S r   )r    Úpop)r%   Úkeys     r   Ú_uncache_dispatchzOpOverload._uncache_dispatch
  s!   € ØÔ× Ò   dÑ+Ô+Ð+Ð+Ð+r'   c                 óB  ‡ ‡— ‰‰ j         vsJ ‰ › d‰› �¦   «         ‚‰t          j        k    rXt          ‰ t          ¦  «        s"‰ j        s‰‰ j         ‰<   t          ‰ ¦  «         ‰S ˆˆ fd„}|‰ j         ‰<   t          ‰ ¦  «         |S t          j         	                    ‰¦  «        }|t          j
        k    rDt          ¦   «         }|dk    r0t          j                             t          j        ¦  «        sˆ fd„}|S t          ‰ ‰¦  «        }‰t          j
        k    }‰t          j        k    rCdd lmc m} |j        r3|                     ‰ |¦  «        }|r|‰ j         ‰<   t          ‰ ¦  «         |S ‰ j                             ||¦  «        }|r|‰ j         ‰<   t          ‰ ¦  «         |S )Nú c                  ó  •— ddl m} t           |¦   «         ¦  «        }|€
J d¦   «         ‚|‰j        vr‚t	          ‰t
          ¦  «        r\t          j        j         	                    ¦   «         5 }t          j
        j        j        |‰g| ¢R i |¤Žcd d d ¦  «         S # 1 swxY w Y   n ‰j        ‰g| ¢R i |¤ŽS t          j        j         	                    ¦   «         5 } ‰j        |         |g| ¢R i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S )Nr   r”   zMIllegal invocation of dispatch on torch._C.DispatchKey.Python without a mode.)r©   r•   r€   r"   rC   ÚTorchBindOpOverloadr4   ÚutilsÚ_python_dispatchr¤   Ú_libraryÚhandle_dispatch_moder/  )r,   r-   r•   rº   rT   rn  r%   s        €€r   r»   z)OpOverload._get_dispatch.<locals>.handler  så  ø€ ØSÐSÐSÐSÐSÐSõ !Ð!;Ð!;Ñ!=Ô!=Ñ>Ô>�	àÐ)Ð)Øbñ *Ô)Ð)ð  DÔ$9Ð9Ð9Ý! $Õ(;Ñ<Ô<ð AÝ"œ[Ô9×OÒOÑQÔQð ÐUYÝ#(¤>Ô#7Ô#LØ $ dð$Ø-1ð$ð $ð $Ø5;ð$ð $ðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð
  +˜tœ{¨3Ð@°Ð@Ð@Ð@¸Ð@Ð@Ð@å”[Ô1×GÒGÑIÔIð SÈTØ;˜4Ô0°Ô;¸DÐRÀ4ÐRÐRÐRÈ6ÐRÐRðSð Sð Sð Sñ Sô Sð Sð Sð Sð Sð Sð Søøøð Sð Sð Sð Sð Sð Ss$   Á, BÂBÂ BÃC=Ã=DÄDr   c                  ó¶   •— t           j        d„ ¦   «         } |¦   «         5 }t          j        j        j        |‰g| ¢R i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S )Nc               3   óv   K  — t          ¦   «         } 	 | V — t          | ¦  «         d S # t          | ¦  «         w xY wr   )r  r  )Útop_modes    r   Ú(_temporarily_pop_modes_from_pre_dispatchz[OpOverload._get_dispatch.<locals>.handler.<locals>._temporarily_pop_modes_from_pre_dispatch?  sH   è è € å#>Ñ#@Ô#@˜ð=Ø"*˜N˜N˜Nå2°8Ñ<Ô<Ð<Ð<Ð<øÕ2°8Ñ<Ô<Ð<Ð<øøøs   ’' §8)Ú
contextlibÚcontextmanagerr4   rv  rt  rw  )r,   r-   r{  rº   r%   s       €r   r»   z)OpOverload._get_dispatch.<locals>.handler>  sÇ   ø€ ÝÔ.ð=ð =ñ /Ô.ð=ð BÐAÑCÔCð ÀyÝ$œ~Ô3ÔHØ% tð Ø.2ð ð  ð  Ø6<ð ð  ðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s   ¡ AÁAÁA)r    r   rF   rC   rs  r"   r#  r4   r5   r²   r³   r´   rµ   rw   r\   Útorch._dispatch.pythonÚ	_dispatchÚpythonÚCROSSREF_FUNCTIONALIZEÚmake_crossref_functionalizer!   rõ   )	r%   rn  r»   r¾   Úcurr_stack_lenr¿   Úcache_resultÚ
pydispatchÚrs	   ``       r   Ú_get_dispatchzOpOverload._get_dispatch  s  øø€ à˜$Ô.Ð.Ð.Ð.°4°°¸#°°Ñ.Ô.Ð.à•+Ô$Ò$Ð$Ý˜dÕ$7Ñ8Ô8ð ÀÔAVð Ø,/�Ô$ SÑ)Ý˜dÑ#Ô#Ð#Ø�
ðSð Sð Sð Sð Sð Sð, )0ˆDÔ  Ñ%Ý˜$ÑÔÐØˆNå!œH×:Ò:¸3Ñ?Ô?ÐØ¥Ô 7Ò7Ð7ÝCÑEÔEˆNð  Ò"Ð"Ýœ×GÒGÝÔ&ñô ð #ðð ð ð ð ð& �å  cÑ*Ô*ˆ	ð �kÔ5Ò5ˆð
 •+Ô+Ò+Ð+Ø7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7àÔ0ð Ø$×@Ò@ÀÀyÑQÔQ�Øð (Ø07�DÔ(¨Ñ-Ý! $Ñ'Ô'Ð'Ø�àŒO×Ò 	¨9Ñ5Ô5ˆØð 	 Ø()ˆDÔ  Ñ%Ý˜$ÑÔÐØˆr'   c                 ó   — | j         S r   rÑ   r$   s    r   rH   zOpOverload.namek  rÒ   r'   c                 ó   — | j         S r   )r1  r$   s    r   r?  zOpOverload.overloadpacketn  s   € àÔ#Ð#r'   c                 ó   — | j         S r   rW  r$   s    r   rf   zOpOverload.opr  r�   r'   c                 ó   — | j         S r   )r2  r$   s    r   rB  zOpOverload.tagsv  s
   € àŒzÐr'   r   )rb   rc   rd   r&   rÓ   rF  rI  rL  rP  rU  r.   r[  r_  rÏ   r2   r9   rŽ   ri  rk  ro  r‡  rH   r?  rf   rB  rÖ   r×   s   @r   r  r  �  sá  ø€ € € € € ð$=ð $=ð $=ð $=ð $=ðL ð0ð 0ñ „Xð0ð ð0ð 0ñ „Xð0ð ð!ð !ñ „Xð!ðð ð ð ð
ð 
ð 
ð)ð )ð )ð
Fð Fð Fðð ð ðUð Uð UðLð Lð Lð Lð Lð
9ð 9ð 9ð 9ð 9ð
 ð0ð 0ñ „Xð0ð
ð 
ð 
ð"ð "ð "ð*,ð ,ð ,ð[ð [ð [ðzð ð ð ð$ð $ñ „Xð$ð ðð ñ „Xðð ðð ñ „Xðð ð ð ð r'   c                   óR   — e Zd Zdee         fd„Zej        d„ ¦   «         Zd„ Z	d„ Z
dS )rs  r:   c                 óÚ   ‡ ‡— t           j        t           j        t           j        t           j        t           j        t           j        t           j        g}dt           fˆ fd„Šˆfd„|D ¦   «         S )Nrn  c                 ó  •— t           j                             ‰                     ¦   «         | ¦  «        r2t           j                             ‰                     ¦   «         | ¦  «        S | ‰j        vp‰j        |          t           j        j        u S r   )r4   r5   rc  rH   Ú0_dispatch_kernel_for_dispatch_key_is_fallthroughr!   r8  Úfallthrough_kernel)rn  r%   s    €r   Ú(_may_use_fallthrough_instead_of_fallbackzWTorchBindOpOverload._fallthrough_keys.<locals>._may_use_fallthrough_instead_of_fallback�  sw   ø€ ÝŒx×=Ò=¸d¿iºi¹k¼kÈ3ÑOÔOð Ý”x×PÒPØ—I’I‘K”K ñô ð ð
 ˜4œ?Ð*ð LØ”? 3Ô'­5¬=Ô+KÐKðr'   c                 ó*   •— g | ]} ‰|¦  «        ¯|‘ŒS rP   rP   )r¢   rn  r‘  s     €r   r§   z9TorchBindOpOverload._fallthrough_keys.<locals>.<listcomp>š  s:   ø€ ð 
ð 
ð 
àØ7Ð7¸Ñ<Ô<ð
Øð
ð 
ð 
r'   )r   rr   ÚAutogradCPUÚAutogradCUDAÚADInplaceOrViewÚBackendSelectÚPythonTLSSnapshotÚPythonDispatcher)r%   Ú_DEFAULT_FALLTHROUGH_KEYSr‘  s   ` @r   Ú_fallthrough_keysz%TorchBindOpOverload._fallthrough_keys‚  sˆ   øø€ õ Ô ÝÔ#ÝÔ$ÝÔ'ÝÔ%ÝÔ)ÝÔ(ð%
Ð!ð		½+ð 		ð 		ð 		ð 		ð 		ð 		ð
ð 
ð 
ð 
à0ð
ñ 
ô 
ð 	
r'   c              #   ó|   K  — ddl m}m}m} 	 | |vr || |j        ¦  «         d V — | |v r|| = d S d S # | |v r|| = w xY w)Nr   )Ú_EffectTypeÚ_register_effectful_opÚSIDE_EFFECTS)Útorch._higher_order_ops.effectsrœ  r�  rž  ÚORDERED)r%   rœ  r�  rž  s       r   Ú%_register_as_effectful_op_temporarilyz9TorchBindOpOverload._register_as_effectful_op_temporarily   s§   è è € ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð	'Ø˜<Ð'Ð'Ø&Ð& t¨[Ô-@ÑAÔAÐAØˆEˆEˆEà�|Ð#Ð#Ø  Ð&Ð&Ð&ð $Ð#øˆt�|Ð#Ð#Ø  Ð&Ð&Ð&Ð&Ð&s   Ž2 ²	;c                óæ   — t          ||¦  «        rU|                      ¦   «         5  |                      |||                      ¦   «         ¦  «        cd d d ¦  «         S # 1 swxY w Y    | j        |i |¤ŽS r   )Ú_must_dispatch_in_pythonr¡  Ú_dispatch_in_pythonrš  r.  r+   s      r   r.   zTorchBindOpOverload.__call__²  sÍ   € Ý# D¨&Ñ1Ô1ð 	Xð ×;Ò;Ñ=Ô=ð Xð XØ×/Ò/°°f¸d×>TÒ>TÑ>VÔ>VÑWÔWðXð Xð Xð Xñ Xô Xð Xð Xð Xð Xð Xð Xøøøð Xð Xð Xð XàˆtŒx˜Ð( Ð(Ð(Ð(s   ¥)AÁAÁ"Ac           	      óF  — t           j                             ¦   «         }|D ]}|                     |¦  «        }Œt	          |||¦  «        }|                     ¦   «         }|| j        vr|                      |¦  «        n| j        |         }t          |t          ¦  «        rft           j         
                    |                      ¦   «         |¦  «        r|                      ||||gz   ¦  «        S t          d| › d|› d|› d�¦  «        ‚t          |t          ¦  «        sJ ‚ ||i |¤ŽS )NzTorchbind op z4 received a FakeScriptObject input when dispatching z×. but no python implementation is found. Please file an issue on this when you encounter this error. This error can happen when you export or compile the model. It can still happpen even if a C++ implementation for zz.  has been registered. That's because FakeScriptObject purely lives in python and cannot work  with a C++ implementation.)r4   r5   r„   r’   rÈ   rÉ   r    r‡  rC   r   r�  rH   r¤  rG   r   )	r%   r,   r-   Úfallthrough_keysr…   rn  rË   rˆ   r»   s	            r   r¤  z'TorchBindOpOverload._dispatch_in_pythonÂ  ss  € Ý$œx×=Ò=Ñ?Ô?ÐØ#ð 	Dð 	DˆCØ#7×#>Ò#>¸sÑ#CÔ#CÐ Ð å*¨4°Ð9MÑNÔNÐØ'×=Ò=Ñ?Ô?ˆð  4Ô#7Ð7Ð7ð ×Ò˜|Ñ,Ô,Ð,àÔ% lÔ3ð 	õ �g�{Ñ+Ô+ð 	õ Œx×HÒHØ—	’	‘”˜\ñô ð ð ×/Ò/Ø˜&Ð"2°l°^Ñ"Cñô ð õ ð/ ð /ð /ÐZað /ð /ð KWð	/ð /ð /ñô ð õ ˜'¥8Ñ,Ô,Ð,Ð,Ð,Øˆw˜Ð' Ð'Ð'Ð'r'   N)rb   rc   rd   r   r   rš  r|  r}  r¡  r.   r¤  rP   r'   r   rs  rs  �  sq   € € € € € ð
 4¨Ô#4ð 
ð 
ð 
ð 
ð< Ôð'ð 'ñ Ôð'ð")ð )ð )ð #(ð #(ð #(ð #(ð #(r'   rs  c                 ó2   — t          j        d„ | |f¦  «        S )Nc                 óJ   — t          | t          j        j        j        ¦  «        S r   )rC   r4   rv  Úfake_class_registryÚFakeScriptObject)Úobjs    r   ú<lambda>z*_must_dispatch_in_python.<locals>.<lambda>ê  s   € •JØ•”Ô3ÔDñ
ô 
€ r'   )rÙ   Útree_anyrÛ   s     r   r£  r£  è  s)   € ÝŒ?ð	
ð 	
ð 
ˆvˆñ	ô ð r'   rA  r:   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   óT   K  — | ]#}t          |j        t          j        ¦  «        V — Œ$d S r   )rC   r€   r4   Ú	ClassTyper¡   s     r   r£   z)_has_script_object_arg.<locals>.<genexpr>ò  s0   è è € ÐQÐQ¸�z˜#œ(¥E¤OÑ4Ô4ÐQÐQÐQÐQÐQÐQr'   )Úanyr;  )rA  s    r   Ú_has_script_object_argr²  ñ  s"   € ÝÐQÐQÀÔ@PÐQÑQÔQÑQÔQÐQr'   c                   ór   — e Zd Zd„ Zdd„Zd„ Zd„ Zd„ Zed„ ¦   «         Z	ed„ ¦   «         Z
d	„ Zd
„ Zd„ Zd„ ZdS )ÚOpOverloadPacketc                 ó¶   — || _         || _        || _        || _        g | _        t          d„ | j                             ¦   «         D ¦   «         ¦  «        | _        d S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r   )r²  )r¢   rA  s     r   r£   z,OpOverloadPacket.__init__.<locals>.<genexpr>   s<   è è € ð .
ð .
Ø/5Õ" 6Ñ*Ô*ð.
ð .
ð .
ð .
ð .
ð .
r'   )	Ú_qualified_op_namerb   r.  Ú_overload_namesÚ_dirr±  Ú_schemasr«   Ú_has_torchbind_op_overload)r%   Úqualified_op_nameÚop_namerf   Úoverload_namess        r   r&   zOpOverloadPacket.__init__ø  sk   € ð #4ˆÔØˆŒØˆŒØ-ˆÔØˆŒ	Ý*-ð .
ð .
Ø9=¼×9MÒ9MÑ9OÔ9Oð.
ñ .
ô .
ñ +
ô +
ˆÔ'Ð'Ð'r'   Nc                 ó   — | S r   rP   rN  s     r   rP  zOpOverloadPacket.__deepcopy__  rQ  r'   c                 óF   —  dj         | j                             d¦  «        Ž S )Nz<OpOverloadPacket(op='{}.{}')>r-  ©rT  r·  r5  r$   s    r   rU  zOpOverloadPacket.__repr__  s)   € Ø6Ð/Ô6ØÔ$×*Ò*¨4Ñ0Ô0ð
ð 	
r'   c                 ó*   — t          | j        ¦  «        S r   r]  r$   s    r   r_  zOpOverloadPacket.__hash__  r`  r'   c                 óF   —  dj         | j                             d¦  «        Ž S )Nz{}.{}r-  rÁ  r$   s    r   rÏ   zOpOverloadPacket.__str__  s"   € ØˆwŒ~˜tÔ6×<Ò<¸TÑBÔBÐCÐCr'   c                 ó   — | j         S r   rW  r$   s    r   rf   zOpOverloadPacket.op  r�   r'   c                 ó*   ‡ — ˆ fd„‰ j         D ¦   «         S )Nc                 ó\   •— i | ](}|t           j                             ‰j        |¦  «        “Œ)S rP   )r4   r5   Ú_get_schemar·  )r¢   r3  r%   s     €r   ú
<dictcomp>z-OpOverloadPacket._schemas.<locals>.<dictcomp>  s@   ø€ ð 
ð 
ð 
àð �5œ8×/Ò/°Ô0GÈÑWÔWð
ð 
ð 
r'   ©r¸  r$   s   `r   rº  zOpOverloadPacket._schemas  s1   ø€ ð
ð 
ð 
ð 
à!%Ô!5ð
ñ 
ô 
ð 	
r'   c           
      ó   — |dk    rdS 	 |                      d¦  «        rt          | j        |¦  «        S nG# t          $ r: t          dt	          | ¦  «        › dt	          | j        ¦  «        › d|› d�¦  «        d ‚w xY w	 |dk    rd	n|}t
          j                             | j        |¦  «        }|€#t          d
t	          | ¦  «        › d|› d�¦  «        ‚|\  }}}t
          j         	                    | j        |¦  «        }t          |¦  «        st          | ||||¦  «        nt          | ||||¦  «        }t          | ||¦  «         | j                             |¦  «         |S # t           $ r% t          d
t	          | ¦  «        › d|› d�¦  «        d ‚w xY w)NÚ__file__ú	torch.opsÚ__ú'zH' can't have an overload name beginning with '__' and the underlying op z has no attribute z either.r+  r*  zThe underlying op of 'z' has no overload name ')Ú
startswithÚgetattrr.  ÚAttributeErrorÚstrr4   r5   Ú_get_operation_overloadr·  rÇ  r²  r  rs  Úsetattrr¹  r›   rG   )	r%   rn  Úuse_keyÚ
op_dk_tagsÚop_Úop_dk_rB  rA  Úoverloads	            r   Ú__getattr__zOpOverloadPacket.__getattr__  s  € à�*ÒÐØ�;ð	Ø�~Š~˜dÑ#Ô#ð .Ý˜tœx¨Ñ-Ô-Ð-ð.øåð 	ð 	ð 	õ
 !ðP•C˜‘I”Ið Pð PÝ!$ T¤X¡¤ðPð PØBEðPð Pð Pñô ð ðð	øøøð	à 9Ò,Ð,�b�b°#ˆGåœ×9Ò9ØÔ'¨ñô ˆJð Ð!Ý$ØV­S°©Y¬YÐVÐVÐPSÐVÐVÐVñô ð ð !+ÑˆC�˜Ý”X×)Ò)¨$Ô*AÀ7ÑKÔKˆFõ .¨fÑ5Ô5ðJ•
˜4  f¨f°dÑ;Ô;Ð;å(¨¨s°F¸FÀDÑIÔIð õ �D˜#˜xÑ(Ô(Ð(ØŒI×Ò˜SÑ!Ô!Ð!ØˆOøÝð 	ð 	ð 	Ý ØR­¨T©¬ÐRÐRÈCÐRÐRÐRñô àðð	øøøs   Š)5 µAA9Á=C E Å/Fc                 ó*   — t          | j        ¦  «        S r   ©Úiterr¹  r$   s    r   Ú__iter__zOpOverloadPacket.__iter__S  ó   € Ý�D”I‰ŒÐr'   c                óp   — | j         r!t          ||¦  «        rt          | ||¦  «        S  | j        |i |pi ¤ŽS r   )r»  r£  Ú!_call_overload_packet_from_pythonr.  r+   s      r   r.   zOpOverloadPacket.__call__X  sP   € ð Ô*ð 	IÕ/GÈÈfÑ/UÔ/Uð 	IÝ4°T¸4ÀÑHÔHÐHØˆtŒx˜Ð0 & ,¨BÐ0Ð0Ð0r'   c                 ó$   — d„ | j         D ¦   «         S )Nc                 ó   — g | ]}|r|nd ‘Œ	S )r+  rP   )r¢   Úns     r   r§   z.OpOverloadPacket.overloads.<locals>.<listcomp>g  s!   € ÐDÐDÐD¨!�QÐ%��˜IÐDÐDÐDr'   rÉ  r$   s    r   Ú	overloadszOpOverloadPacket.overloadsf  s   € ØDÐD¨tÔ/CÐDÑDÔDÐDr'   r   )rb   rc   rd   r&   rP  rU  r_  rÏ   rÓ   rf   rº  rÚ  rÞ  r.   rå  rP   r'   r   r´  r´  ÷  sß   € € € € € ð

ð 

ð 

ðð ð ð ð
ð 
ð 
ð
ð ð ðDð Dð Dð ðð ñ „Xðð ð
ð 
ñ „Xð
ð3ð 3ð 3ðjð ð ð
1ð 1ð 1ðEð Eð Eð Eð Er'   r´  c                 óÂ  — t          j        j        | g|¢R i |¤Ž\  }}|r|S i }d }|                      ¦   «         D ]Q}t	          | |¦  «        }	 t          j        j        |j        g|¢R i |¤Ž}	|} n# t          $ r}
|
||<   Y d }
~
ŒJd }
~
ww xY w|r ||i |¤ŽS d| › d�}t          | 	                    ¦   «         ¦  «        D ]\  }\  }}|d|› d|› d�z  }Œt          |¦  «        ‚)Nz'Fail to match any TorchBindOverload of z with following exceptions:
zOverload name z:
 ú
)
r4   r5   Ú(_maybe_call_torch_function_for_op_packetrå  rÐ  Ú&_check_schema_allow_fake_script_objectr0  rG   Ú	enumerateÚitems)rf   r,   r-   Útorch_function_calledÚretÚ
exceptionsÚfound_opr3  r"  Ú_ÚeÚerr_msgrø   rn  Úmsgs                  r   rá  rá  l  s‡  € å!&¤Ô!RØ
ð"Øð"ð "ð "Øð"ð "ÑÐ˜3ð ð Øˆ
ð €JØ€HØŸš™œð 	*ð 	*ˆÝ˜b -Ñ0Ô0ˆð	*Ý”Ô?ØÔ#ðØ&*ðð ð Ø.4ðð ˆAð #ˆHØˆEøÝð 	*ð 	*ð 	*Ø()ˆJ�}Ñ%Ð%Ð%Ð%Ð%Ð%øøøøð	*øøøð ð )Øˆx˜Ð( Ð(Ð(Ð(ð 	T°"ÐSÐSÐSð õ # :×#3Ò#3Ñ#5Ô#5Ñ6Ô6ð 5ð 5‰ˆ‰:ˆC�ØÐ4 CÐ4Ð4¨SÐ4Ð4Ð4Ñ4ˆˆÝ
�wÑ
Ô
Ðs   Á!A0Á0
B	Á:BÂB	c                   ó.   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zˆ xZS )Ú_OpNamespacea0  
    An op namespace to dynamically bind Operators into Python.

    Say a user has created a custom Operator called "my_namespace::my_op". To
    call this op, the user will write torch.ops.my_namespace.my_op(...).
    At startup, this operation will not yet be bound into Python. Instead, the
    following sequence of magic tricks will occur:
    1. `torch.ops.my_namespace` will invoke the `__getattr__` magic method
       on the `torch.ops` object, which will create a new `_OpNamespace`
       object called `my_namespace` and set it as an attribute on the `ops`
       object.
    2. `torch.ops.my_namespace.my_op` will then invoke `__getattr__` on
       the `my_namespace` object, which will retrieve the operation via
       `torch.get_operation`, a function bound from C++, and then in a similar
       fashion bind this new object onto the `my_namespace` object.
    3. `torch.ops.my_namespace.my_op(...)` then calls this new operation
        and subsequent accesses will incur no further lookup (the namespace and
        operation will already exist).
    c                 ól   •— t          ¦   «                              d|z   ¦  «         || _        g | _        d S )Nz
torch.ops.)r   r&   rH   r¹  )r%   rH   r‰   s     €r   r&   z_OpNamespace.__init__¶  s2   ø€ Ý‰Œ×Ò˜¨Ñ,Ñ-Ô-Ð-ØˆŒ	ØˆŒ	ˆ	ˆ	r'   c                 ó*   — t          | j        ¦  «        S r   rÜ  r$   s    r   rÞ  z_OpNamespace.__iter__»  rß  r'   c                 óö  — |dk    rdS |dv rt          d|› d| j        › d�¦  «        ‚| j        }|› d|› �}| j        dz   |z   }	 t          ||¦  «        \  }}|€t          d	| j        › d
|› d�¦  «        ‚n.# t          $ r!}t          d	| j        › d
|› d�¦  «        |‚d }~ww xY w||_        t          ||||¦  «        }| j        dz   |z   |_        t          | ||¦  «         | j                             |¦  «         |S )NrË  rÌ  )Ú
__origin__Ú__self__zInvalid attribute 'z' for '_OpNamespace' 'rÎ  r-  r,  z'_OpNamespace' 'ú' object has no attribute ')	rÑ  rH   rc   Ú_get_packetrG   r´  rÔ  r¹  r›   )	r%   r½  Únamespace_namer¼  Úmodule_namerf   r¾  rñ  Úopoverloadpackets	            r   rÚ  z_OpNamespace.__getattr__¾  s~  € à�jÒ Ð Ø�;ØÐ2Ð2Ð2Ý ØQ gÐQÐQÀTÄYÐQÐQÐQñô ð ð œˆØ-Ð:Ð:°Ð:Ð:ÐØ”o¨Ñ+¨nÑ<ˆð	Ý!,Ð->ÀÑ!LÔ!LÑˆB�ØˆzÝ$ØW t¤yÐWÐWÈWÐWÐWÐWñô ð ð øõ ð 	ð 	ð 	õ !ØS 4¤9ÐSÐSÈÐSÐSÐSñô àðøøøøð	øøøð $ˆŒÝ+Ø˜w¨¨Nñ
ô 
Ðð '+¤o¸Ñ&;¸nÑ&LÐÔ#õ 	��gÐ/Ñ0Ô0Ð0ØŒ	×Ò˜Ñ!Ô!Ð!ØÐs   Á0A5 Á5
B Á?BÂB )rb   rc   rd   re   r&   rÞ  rÚ  rÖ   r×   s   @r   rõ  rõ  ¡  s`   ø€ € € € € ðð ð(ð ð ð ð ð
ð ð ð% ð % ð % ð % ð % ð % ð % r'   rõ  c                 óª   — t           j                             | ¦  «        \  }}|�,t           j        j                             || ¦  «         ||_        ||fS r   )r4   r5   Ú_jit_get_operationÚjitÚ	_builtinsÚ_register_builtinrc   )ÚqualnameÚ	op_modulerf   r¾  s       r   rü  rü  æ  sP   € Ýœ×4Ò4°XÑ>Ô>Ñ€BˆØ	€~õ 	Œ	Ô×-Ò-¨b°(Ñ;Ô;Ð;Ø!ˆŒØˆ~ÐÐr'   c                 ón   — t          | j        | j        j        ¦  «        \  }}|€J ‚|| _        || _        d S r   )rü  r·  r.  rc   r¸  )Úpacketrf   r¾  s      r   Ú_refresh_packetr	  ð  s<   € Ý$ VÔ%>ÀÄ
Ô@UÑVÔVÑ€BˆØˆ>ˆ>ˆ>Ø€F„JØ+€FÔÐÐr'   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú_PyOpNamespacec                 óX   •— t          ¦   «                              |¦  «         || _        d S r   )r   r&   Ú_ops)r%   rH   Úopsr‰   s      €r   r&   z_PyOpNamespace.__init__ø  s&   ø€ Ý‰Œ×Ò˜ÑÔÐØˆŒ	ˆ	ˆ	r'   c                 ó˜   — | j                              |d ¦  «        }|€t          d| j        › d|› d�¦  «        ‚t	          | ||¦  «         |S )Nz'_PyOpNamespace' 'rû  rÎ  )r  rõ   rÑ  rH   rÔ  )r%   rH   rf   s      r   rÚ  z_PyOpNamespace.__getattr__ü  s_   € àŒY�]Š]˜4 Ñ&Ô&ˆØˆ:Ý ØR T¤YÐRÐRÈ4ÐRÐRÐRñô ð õ 	��d˜BÑÔÐØˆ	r'   )rb   rc   rd   r&   rÚ  rÖ   r×   s   @r   r  r  ÷  sG   ø€ € € € € ðð ð ð ð ðð ð ð ð ð ð r'   r  c                   ó:   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zˆ xZ	S )Ú_Opsz_ops.pyc                 ó²   •— t          ¦   «                              d¦  «         t          ¦   «         | _        t	          dt
          ¦  «        | _        g | _        d S )NrÌ  r~   )r   r&   ró   Úloaded_librariesr  ry   Ú_higher_order_op_namespacer¹  )r%   r‰   s    €r   r&   z_Ops.__init__
  sL   ø€ Ý‰Œ×Ò˜Ñ%Ô%Ð%Ý #¡¤ˆÔÝ*8Ø$Õ&7ñ+
ô +
ˆÔ'ð ˆŒ	ˆ	ˆ	r'   c                 ó”   — |dk    r| j         S t          |¦  «        }t          | ||¦  «         | j                             |¦  «         |S )Nr}   )r  rõ  rÔ  r¹  r›   )r%   rH   rŽ   s      r   rÚ  z_Ops.__getattr__  sS   € à�>Ò!Ð!ØÔ2Ð2õ ! Ñ&Ô&ˆ	Ý��d˜IÑ&Ô&Ð&ØŒ	×Ò˜ÑÔÐØÐr'   c                 ó*   — t          | j        ¦  «        S r   rÜ  r$   s    r   rÞ  z_Ops.__iter__  rß  r'   c                 ó.   — t          j        |¦  «         dS )a{  
        Imports a Python module that has torch.library registrations.

        Generally, to extend PyTorch with custom operators, a user will
        create a Python module whose import triggers registration of
        the custom operators via a torch.ops.load_library call or a call
        to one or more torch.library.* APIs.

        It is unexpected for Python modules to have side effects, so some
        linters and formatters will complain. Use this API to import Python
        modules that contain these torch.library side effects.

        Args:
            module (str): The name of the Python module to import

        N)Ú	importlibÚimport_module)r%   Úmodules     r   r  z_Ops.import_module   s   € õ" 	Ô Ñ'Ô'Ð'Ð'Ð'r'   c                 ó   — t          j        ¦   «         rdS t          j        |¦  «        }t	          ¦   «         5  t          j        |¦  «         ddd¦  «         n# 1 swxY w Y   | j                             |¦  «         dS )a  
        Loads a shared library from the given path into the current process.

        The library being loaded may run global initialization code to register
        custom operators with the PyTorch JIT runtime. This allows dynamically
        loading custom operators. For this, you should compile your operator
        and the static registration code into a shared library object, and then
        call ``torch.ops.load_library('path/to/libcustom.so')`` to load the
        shared object.

        After the library is loaded, it is added to the
        ``torch.ops.loaded_libraries`` attribute, a set that may be inspected
        for the paths of all libraries loaded using this function.

        Args:
            path (str): A path to a shared library to load.
        N)	r4   Ú_running_with_deployr   Úresolve_library_pathr   r   ÚCDLLr  r‹   )r%   Úpaths     r   Úload_libraryz_Ops.load_library3  sº   € õ$ Ô%Ñ'Ô'ð 	ØˆFåÔ3°DÑ9Ô9ˆÝ‰_Œ_ð 	ð 	õ ŒK˜ÑÔÐð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
 	Ô×!Ò! $Ñ'Ô'Ð'Ð'Ð's   ¸AÁAÁ A)
rb   rc   rd   rË  r&   rÚ  rÞ  r  r   rÖ   r×   s   @r   r  r    sy   ø€ € € € € Ø€Hðð ð ð ð ð	ð 	ð 	ðð ð ð(ð (ð (ð&(ð (ð (ð (ð (ð (ð (r'   r  r  )F)RrÔ   r|  r   r  r>   r   ÚtypesÚtypingr   r   r   r   r   r   r	   r
   r4   Útorch.utils._pytreert  Ú_pytreerÙ   r   Útorch._Cr   rk   r   Útorch._functorch.pyfunctorchr   r©   r   r   Úhasattrr   r}  r   r   rw   ry   rÒ  r6  r˜  r—  r•  r–  ÚAutocastCPUÚAutocastCUDAr†   ÚABCrx   rÄ   rÈ   rÝ   rÞ   rë   r  r
  r  r  r´   r  r¶   r  ró   r   r#  r%  r'  r  rs  r£  ÚFunctionSchemaÚboolr²  r´  rá  Ú
ModuleTyperõ  rü  r	  r  r  r  rP   r'   r   ú<module>r.     s:  ðà 
€
€
€
€
Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø 
€
€
€
Ø €€€Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gà €€€Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø !Ð !Ð !Ð !Ð !Ð !Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ XØ ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø :Ð :Ð :Ð :Ð :Ð :ð €WˆT˜ # s (Ô+Ð,Ñ,Ô,€ð �G˜CÐ!1Ñ2Ô2ÐU°w°w¸sÐDTÑ7UÔ7UÐ ð Ôð&ð &ñ Ôð&ð E"ð E"ð E"ð E"ð E"ñ E"ô E"ð E"ðR2U�Lð 2U [ð 2Uð 2Uð 2Uð 2Uðj 79Ð �4˜Ð2Ð2Ô3Ð 8Ð 8Ñ 8ð Ô ØÔ!ØÔØÔØÔØÔð6Ð 2ðIð Ið Ið Ið I˜,¨¬ñ Iô Ið IðX3ð 3ð 3ð8ð 8ð 8ð
ð ð ðð ð ð,
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð& &CÐ%BÑ%DÔ%DÐ "ð!ð !ð !ð !ðH$Xð $Xð $XðNMð Mð Mð7ð 7ð 7ð:ð :ð :ðð ð ð .ð .ð .ð
 !$ ¡¤€
ˆC�ÔÐ %Ð %Ñ %ð ð  ð  ð
ð ð ð
ð ð ðhð hð hð hð h�ñ hô hð hðbd(ð d(ð d(ð d(ð d(˜*ñ d(ô d(ð d(ðNð ð ðR 5Ô#7ð R¸Dð Rð Rð Rð RðpEð pEð pEð pEð pEñ pEô pEð pEðj# Ð*:ð # ð # ð # ð # ðjB ð B ð B ð B ð B �5Ô#ñ B ô B ð B ðJð ð ð,ð ,ð ,ðð ð ð ð �\ñ ô ð ð G(ð G(ð G(ð G(ð G(ˆ5Ôñ G(ô G(ð G(ðV ˆD‰FŒF€€TÐ Ð Ñ Ð Ð r'   