§
    ­˜ºhzì  ã                   ób  — 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 d dl	m
Z
 d dlmZmZmZmZmZmZmZmZ d dl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#m$Z$ d d	l%m&Z& erd d
l'm(Z(  ede¬¦  «        Z) edd¬¦  «        Z* e+ed¦  «        o e+ed¦  «        Z,ej-        d„ ¦   «         Z. G d„ d¦  «        Z/de/de!fd„Z0i Z1e2e3df         e4d<   e!j5        e!j6        e!j7        e!j8        e!j9        e!j:        gZ; G d„ de/e j<        ¦  «        Z=d„ Z>d„ Z?d„ Z@d„ ZA G d„ d¦  «        ZB eB¦   «         aCdBd!„ZDd"„ ZEd#„ ZFd$„ ZGd%„ ZHd&„ ZId'„ ZJ eK¦   «         aLeKd(         e4d)<   d*„ ZMd+„ ZNd,„ ZO G d-„ d(e/ee*e)f         ¦  «        ZP G d.„ d/ePe*e)f         ¦  «        ZQd0„ ZRd1ejS        d2eTfd3„ZU G d4„ d5ee*e)f         ¦  «        ZVdeVe*e)f         d6e*jW        d7e*jX        d2e)fd8„ZY G d9„ d:ejZ        ¦  «        Z[d;„ Z\d<„ Z] G d=„ d>ejZ        ¦  «        Z^ G d?„ d@ejZ        ¦  «        Z_ e_¦   «         Z`e_e4dA<   dS )Cé    N)ÚIterator)Úcached_property)ÚAnyÚCallableÚClassVarÚfinalÚGenericÚOptionalÚTYPE_CHECKINGÚUnion)ÚConcatenateÚ	ParamSpecÚTypeVar)Ú_utils_internal)Ú_dispatch_is_included_in_aliasÚDispatchKey)Údispatch_functorchÚTransformType)ÚTorchDispatchMode)ÚBaseFunctionalizeAPIÚ_T©ÚdefaultÚ_P.Ú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    úR/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/torch/_ops.pyÚdl_open_guardr$   +   s�   è è € õ ð ØˆˆˆØˆÝÔ"Ñ$Ô$€IÝÔ�y¥6Ô#5Ñ5Ñ6Ô6Ð6ð&ØˆˆˆåÔ˜9Ñ%Ô%Ð%Ð%Ð%ø�Ô˜9Ñ%Ô%Ð%Ð%øøøs   ÁA ÁA5c                   óø   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zdee	e
         e	ej                 eef         deeeef         geeef         f         fd„Zd	eed
ef         ef         deed
ef         ef         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__B   s7   € ð$ ð 	Ôð BDˆŒð ð 	Ôð  "ˆÔÐÐó    c                 ó   — t           ‚r(   ©ÚNotImplementedError©r.   ÚargsÚkwargss      r#   Ú__call__zOperatorBase.__call__n   ó   € Ý!Ð!r0   c                 ó   — || j         v S r(   )r*   )r.   Úks     r#   Úhas_kernel_for_dispatch_keyz(OperatorBase.has_kernel_for_dispatch_keyq   s   € Ø�D”OÐ#Ð#r0   c                 óˆ   — | j         D ]9}t          j                             |¦  «        s|                     |¦  «        r dS Œ:dS )NTF)r*   ÚtorchÚ_CÚ_dispatch_is_alias_keyÚhas)r.   Úksr:   s      r#   Úhas_kernel_for_any_dispatch_keyz,OperatorBase.has_kernel_for_any_dispatch_keyt   sI   € Ø”ð 	ð 	ˆAÝ”8×2Ò2°1Ñ5Ô5ð ¸"¿&º&À¹)¼)ð Ø�t�tøØˆur0   r:   Úreturnc                 ó|   ‡ ‡— dt           t          t          f         dt           t          t          f         fˆˆ fd„}|S )NÚfnrC   c                 óN  •— t          j        ‰¦  «        r_t          ‰t          ¦  «        st          ‰t          j        ¦  «        r0‰‰j        vsJ ‚| ‰j        ‰<   ‰j                             ¦   «          | S t          ‰t          ¦  «        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 )Nz>Please register a mode for the DispatchKey.Python key instead.z%Trying to override a python impl for z on operator )ÚinspectÚisclassÚ
issubclassr   r=   ÚTensorr+   r)   ÚclearÚ
isinstancer   r,   r   ÚPythonr*   ÚRuntimeErrorÚname)rE   r:   r.   s    €€r#   Úinnerz#OperatorBase.py_impl.<locals>.innerƒ   sJ  ø€ ÝŒ˜qÑ!Ô!ð Ý˜1Õ/Ñ0Ô0ðÝ4>¸qÅ%Ä,Ñ4OÔ4Oðð  Ô 5Ð5Ð5Ð5Ð5à+-�Ô% aÑ(ØÔ$×*Ò*Ñ,Ô,Ð,Ø�	å˜!�]Ñ+Ô+ð Ø Ô 4Ð4Ð4Ð4Ð4Ø*,�Ô$ QÑ'Ø�	å˜a¥Ñ-Ô-Ð-Ð-Ð-Ø�Ô*Ò*Ð*Ð*ØPñ +Ô*Ð*ð �D”OÐ#Ð#Ý"ØY¸AÐYÐYÈDÏIÊIÉKÌKÐYÐYñô ð ð "$ˆDŒO˜AÑØÔ ×&Ò&Ñ(Ô(Ð(ØˆIr0   )r   r   r   )r.   r:   rP   s   `` r#   Úpy_implzOperatorBase.py_implz   sN   øø€ ð	•h�r¥2˜vÔ&ð 	­8µB½°FÔ+;ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð8 ˆr0   rE   r   c                 ó   ‡‡‡‡— ddl mŠm}mŠmŠ dt
          j        dt
          j        dt          fˆˆfd„}dt          |         dt
          j        dt
          j        dt          fˆˆfd„}dt
          j        dt
          j        dt          fˆˆfd	„} |  
                    t          j        ¦  «        |¦  «          |  
                    |¦  «        |¦  «          |  
                    t          j        ¦  «        |¦  «         ‰S )
Nr   )ÚCppFunctionalizeAPIÚFunctionalTensorModeÚFunctorchFunctionalizeAPIÚPythonFunctionalizeAPIr5   r6   rC   c                  ó,   •—  ‰ ‰¦   «         g| ¢R i |¤ŽS r(   © )r5   r6   rS   rE   s     €€r#   Úfunctionalize_dk_fnz?OperatorBase.py_functionalize_impl.<locals>.functionalize_dk_fn¸   s-   ø€ Ø�2Ð)Ð)Ñ+Ô+Ð=¨dÐ=Ð=Ð=°fÐ=Ð=Ð=r0   Úmodec                 ó.   •—  ‰ ‰| ¦  «        g|¢R i |¤ŽS r(   rX   )rZ   r5   r6   rV   rE   s      €€r#   Úfunctionalize_dispatch_mode_fnzJOperatorBase.py_functionalize_impl.<locals>.functionalize_dispatch_mode_fn»   s1   ø€ ð �2Ð,Ð,¨TÑ2Ô2ÐD°TÐDÐDÐD¸VÐDÐDÐDr0   c                 ó.   •—  ‰ ‰| ¦  «        g|¢R i |¤ŽS r(   rX   )Úinterpreterr5   r6   rU   rE   s      €€r#   Úfunctionalize_functorch_fnzFOperatorBase.py_functionalize_impl.<locals>.functionalize_functorch_fnÀ   s1   ø€ ð �2Ð/Ð/°Ñ<Ô<ÐN¸tÐNÐNÐNÀvÐNÐNÐNr0   )Ú#torch._subclasses.functional_tensorrS   rT   rU   rV   r   r5   r6   r   r
   rQ   r   ÚFunctionalizer   )	r.   rE   rT   rY   r\   r_   rS   rU   rV   s	    `    @@@r#   Úpy_functionalize_implz"OperatorBase.py_functionalize_impl¬   s„  øøøø€ ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð	>¥r¤wð 	>½"¼)ð 	>Íð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð	EÝÐ/Ô0ð	EÝ9;¼ð	EÝLNÌIð	Eåð	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð
	OÝ "¤ð	OÝ35´9ð	Oåð	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð
 	0ˆ�Š•[Ô.Ñ/Ô/Ð0CÑDÔDÐDØ*ˆ�ŠÐ)Ñ*Ô*Ð+IÑJÔJÐJØ1ˆ�Š•]Ô0Ñ1Ô1Ð2LÑMÔMÐMàˆ	r0   c                 ó   — t           ‚r(   r2   r-   s    r#   rO   zOperatorBase.nameË   r8   r0   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r/   r7   r;   rB   r   Útyper   r=   rJ   r   r   r   r   r   rQ   r   rb   rO   rX   r0   r#   r&   r&   <   s!  € € € € € ðð ð
*"ð *"ð *"ðX"ð "ð "ð$ð $ð $ðð ð ð%àØÐ"Ô#Ø�”ÔØØðô
ð%ð 
�8˜B ˜FÔ#Ð$ h¨r°2¨vÔ&6Ð6Ô	7ð%ð %ð %ð %ðdØ˜;Ð'=¸rÐ'AÔBÀBÐFÔGðà	�+Ð4°bÐ8Ô9¸2Ð=Ô	>ðð ð ð ð>"ð "ð "ð "ð "r0   r&   Úopr:   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 )r;   r   Ú&CompositeExplicitAutogradNonFunctionalÚ	UndefinedÚis_included_in_aliasÚCompositeExplicitAutogradrB   r=   r>   Ú*_dispatch_get_backend_keyset_from_autogradÚ%CompositeImplicitAutogradNestedTensorÚCompositeImplicitAutogradÚAutogradOtherÚ _dispatch_autogradother_backendsrN   ÚAutogradÚFuncTorchBatchedDecompositionÚ_dispatch_has_backend_fallbackr3   )ri   r:   ÚcandÚhas_backend_kernels       r#   Úresolve_keyrz   Ð   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ÐTr0   ÚHigherOrderOperatorÚ_higher_order_opsc                   ó@  ‡ — e Zd Zddœˆ fd„
Zdeee         eej                 e	e
f         deeeef         geeef         f         fˆ fd„Zdeeef         deeef         fd„Zed	„ ¦   «         Zedefd
„¦   «         Zd„ Zd„ Zej        d„ ¦   «         Zd„ Zd„ Zd„ Zˆ xZS )r{   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/   rh   r{   rN   Ú_namerd   r|   Ú_nsre   Ú
_cacheabler=   r>   Ú_dispatch_keyset_fullÚnon_fallthrough_keysÚ2_HIGHER_ORDER_OP_DEFAULT_FALLTHROUGH_DISPATCH_KEYSÚfallthrough)r.   rO   r~   Údispatch_keyÚ	__class__s       €r#   r/   zHigherOrderOperator.__init__  s¸   ø€ Ý‰Œ×ÒÑÔÐÝ�‰:Œ:Õ,Ð,Ð,ÝØañô ð ð ˆŒ
ð ˆŒØ"&Õ˜$ÑØ!ˆŒØ2ˆŒØ#ˆŒå$)¤H×$BÒ$BÑ$DÔ$DˆÔ!åNð 	+ð 	+ˆLØ×Ò˜\Ñ*Ô*Ð*Ð*ð	+ð 	+r0   r:   rC   c                 óâ   •— t          |t          ¦  «        r9| j                             |¦  «        s| j                             |¦  «        | _        t          ¦   «                              |¦  «        S r(   )rL   r   r‡   r@   Úaddr‚   rQ   ©r.   r:   r‹   s     €r#   rQ   zHigherOrderOperator.py_impl3  s`   ø€ õ �a�Ñ%Ô%ð 	I¨dÔ.G×.KÒ.KÈAÑ.NÔ.Nð 	IØ(,Ô(A×(EÒ(EÀaÑ(HÔ(HˆDÔ%Ý‰wŒw�Š˜qÑ!Ô!Ð!r0   rE   c                 ó¦   ‡ ‡— dt           j        dt           j        dt          fˆˆ fd„} ‰                      t
          j        ¦  «        |¦  «         ‰S )Nr5   r6   rC   c                  óÄ  •— t          j        ¦   «         r&t          j        t           j        d„ g | ¢|‘R ¦  «        r>t           j                             ¦   «         5   ‰| i |¤Žcd d d ¦  «         S # 1 swxY w Y   ddlm}  |‰¦  «        rP ‰j	        | i |¤Ž}t          d„ |j        D ¦   «         ¦  «        r%t          d‰                     ¦   «         › d�¦  «        ‚ ‰| i |¤ŽS )Nc                 ó   — | j          S r(   )Úrequires_grad)Úts    r#   ú<lambda>zRHigherOrderOperator.py_autograd_impl.<locals>.maybe_run_autograd.<locals>.<lambda>G  s   € ˜aœoÐ-€ r0   r   )Ú_has_gen_schemac              3   ó$   K  — | ]}|j         V — Œd S r(   )Úis_write©Ú.0Úargs     r#   ú	<genexpr>zSHigherOrderOperator.py_autograd_impl.<locals>.maybe_run_autograd.<locals>.<genexpr>Q  s$   è è € Ð@Ð@¨�s”|Ð@Ð@Ð@Ð@Ð@Ð@r0   zThe zå HigherOrderOperator does not currently support training with in-place input or buffer mutations If you require this feature, please submit an issue to PyTorch. Alternatively, consider creating your own custom autograd.Function. )r=   Úis_grad_enabledÚpytreeÚtree_all_onlyrJ   r>   Ú_AutoDispatchBelowAutogradÚtorch._higher_order_ops.utilsr•   Ú
gen_schemaÚanyÚ	argumentsrN   rO   )r5   r6   r•   ÚschemarE   r.   s       €€r#   Úmaybe_run_autogradz@HigherOrderOperator.py_autograd_impl.<locals>.maybe_run_autogradD  sl  ø€ ÝÔ(Ñ*Ô*ð 1­fÔ.BÝ”Ø-Ð-Ø�$�˜��ñ/ô /ð 1õ
 ”X×8Ò8Ñ:Ô:ð 1ð 1Ø˜4 Ð0¨Ð0Ð0ð1ð 1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð FÐEÐEÐEÐEÐEàˆ˜tÑ$Ô$ð Ø(˜œ¨$Ð9°&Ð9Ð9�ÝÐ@Ð@¨vÔ/?Ð@Ñ@Ô@Ñ@Ô@ð Ý&ð_˜tŸyšy™{œ{ð _ð _ð _ñô ð ð �2�tÐ&˜vÐ&Ð&Ð&s   ÁA.Á.A2Á5A2)r   r5   r6   r   rQ   r   ru   )r.   rE   r¥   s   `` r#   Úpy_autograd_implz$HigherOrderOperator.py_autograd_impl@  sg   øø€ ð	'¥b¤gð 	'½¼ð 	'Årð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð. 	+ˆ�Š•[Ô)Ñ*Ô*Ð+=Ñ>Ô>Ð>àˆ	r0   c                 ó   — | j         S r(   )r„   r-   s    r#   Ú	namespacezHigherOrderOperator.namespace_  ó	   € àŒxˆr0   c                 ó¶   — ddl m} | j        pL| j        › d| j        › �t
          j        j        j        v p%t          | |¦  «        ot
          j
        j        j        S )Nr   )ÚAutogradFunctionApplyú.)Ú"torch._functorch.autograd_functionr«   r…   re   rd   r=   Ú	_inductorÚconfigÚ!unsafe_marked_cacheable_functionsrL   Ú
_functorchÚ.autograd_cache_allow_custom_autograd_functions)r.   r«   s     r#   r~   zHigherOrderOperator.cacheablec  sr   € àLÐLÐLÐLÐLÐLð ŒOð Ø”/Ð3Ð3 D¤MÐ3Ð3ÝŒÔ%ÔGðHðõ ˜4Ð!6Ñ7Ô7ð [ÝÔ$Ô+ÔZð	
r0   c                 óD   — | j                              |¦  «        | _         d S r(   )r‡   Úremove)r.   rŠ   s     r#   r‰   zHigherOrderOperator.fallthroughq  s!   € Ø$(Ô$=×$DÒ$DÀ\Ñ$RÔ$RˆÔ!Ð!Ð!r0   c          	      óÀ  ‡‡— 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          ‰¦  «        }	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 ]Ã}t          |¦  «        }|j        t$          j        j        k    rŒ,|t$          j        j        j        u r8t$          j        j        j        }| j        |         } ||j        g|¢R i |¤Ž}|c S || j        v r| j        |         } ||i |¤Ž}nt          d| j        › d	|› d�¦  «        ‚|t           ur|c S ŒÄt5          d
| j        › d|› dd„ |	D ¦   «         › �¦  «        ‚t$          j                             |¦  «        }|t          j        k    rÈddl m}
 t;          ¦   «         dk    r°t$          j                             t          j        ¦  «        s‡t?          ¦   «         }|€
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   tA          | |¦  «        }|| 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 )NrM   )r=   r>   Ú_dispatch_keysr@   )Útensors    r#   Úhas_python_keyz4HigherOrderOperator.dispatch.<locals>.has_python_key‡  s&   € Ý”x×.Ò.¨vÑ6Ô6×:Ò:¸8ÑDÔDÐDr0   c                 ó„   •— t          | t          j        ¦  «        r" ‰| ¦  «        r‰                     | ¦  «         d S d S d S r(   )rL   r=   rJ   Úappend)rš   r»   Ú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ð 5r0   )Ú_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 rX   )rh   )r™   Úas     r#   ú
<listcomp>z0HigherOrderOperator.dispatch.<locals>.<listcomp>Ï  s   € Ð5Ð5Ð5 •D˜‘G”GÐ5Ð5Ð5r0   zIIllegal invocation of dispatch on DispatchKey.PreDispatch without a mode.zCurrent active mode z not registeredz.could not find kernel for HigherOrderOperator rk   z (resolved from ú))"Útorch.utils._python_dispatchr·   r)   rL   r   ÚFuncTorchDynamicLayerFrontModer   rM   ÚvaluesÚlistÚtuplerÀ   rh   r+   r3   rƒ   ÚNotImplementedÚ__torch_dispatch__r=   r>   Ú_disabled_torch_dispatch_implÚ_subclassesÚfake_tensorÚ
FakeTensorÚFakeTensorModeÚ	fake_modeÚ	TypeErrorÚ_to_functionality_keyÚPreDispatchÚ&_len_torch_dispatch_stack_pre_dispatchÚ&_dispatch_tls_is_dispatch_key_excludedÚ'_get_current_dispatch_mode_pre_dispatchrz   r*   )r.   rŠ   r5   r6   r·   Úkernelr¿   rš   rÂ   Úoverloaded_argsrÀ   Ú	curr_modeÚhandlerrZ   ÚresultÚsubclass_typeÚfunctionality_keyÚ	final_keyr»   r¾   s                     @@r#   ÚdispatchzHigherOrderOperator.dispatchv  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ð 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Ô=ò>ð >ð ð !¥EÔ$5Ô$AÔ$LÐLÐLÝ$)Ô$5Ô$AÔ$P�MØ"Ô3°MÔB�GØ$˜W S¤]ÐD°TÐDÐDÐD¸VÐDÐD�FØ!�M�M�Mà  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�	Ø Ð,Ð,Ø_ñ -Ô,Ð,õ ˜I‘”¨$Ô*?Ð?Ð?Ð?ØE¨9ÐEÐEÐEñ @Ô?Ð?ð Ô/µ°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Ì4MÍMÍMc                ó*   ‡ ‡‡— ˆˆˆ fd„} |¦   «         S )Nc                  ó
  •— t          ‰‰¦  «        } t          j                             | ¦  «        rt          j        j        ‰| g‰¢R i ‰¤ŽS t          ‰‰‰j        ¦  «        } ‰j        |                     ¦   «         g‰¢R i ‰¤ŽS r(   )	Ú_to_flat_tupler=   Ú	overridesÚhas_torch_functionÚhandle_torch_functionÚ_compute_keysetr‡   rà   ÚhighestPriorityTypeId)Ú	flat_argsÚdispatch_key_setr5   r6   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ðð ð r0   rX   )r.   r5   r6   rë   s   ``` r#   r7   zHigherOrderOperator.__call__þ  s6   øøø€ ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð ˆw‰yŒyÐr0   c                 ó2   — t          d| j        › d�¦  «        ‚)NzHigherOrderOperator z¼ does not implement a gen_schema. This is OK as long as the hop is functional. e.g. it should not mutate its inputs and there are no input, output aliasing via views or direct referencing.)r3   rƒ   r4   s      r#   r¡   zHigherOrderOperator.gen_schema  s,   € Ý!ð0 4¤:ð 0ð 0ð 0ñ
ô 
ð 	
r0   c                 ó,   — |                       ¦   «         › S r(   )rO   r-   s    r#   Ú__str__zHigherOrderOperator.__str__"  s   € Ø—)’)‘+”+ÐÐr0   c                 ó   — | j         S r(   ©rƒ   r-   s    r#   rO   zHigherOrderOperator.name%  ó
   € ØŒzÐr0   )rd   re   rf   r/   r   rh   r   r=   rJ   r   r   r   r   r   rQ   r¦   Úpropertyr¨   r   Úboolr~   r‰   rà   ÚabcÚabstractmethodr7   r¡   rî   rO   Ú__classcell__©r‹   s   @r#   r{   r{     s¤  ø€ € € € € ð +0ð +ð +ð +ð +ð +ð +ð +ð8"àØÐ"Ô#Ø�”ÔØØðô
ð"ð 
�8˜B ˜FÔ#Ð$ h¨r°2¨vÔ&6Ð6Ô	7ð"ð "ð "ð "ð "ð "ðà�R˜�VÔðð 
�"�b�&Ô	ðð ð ð ð> ðð ñ „Xðð ð
˜4ð 
ð 
ð 
ñ „Uð
ðSð Sð Sð
F'ð F'ð F'ðP 	Ôðð ñ Ôðð6
ð 
ð 
ð ð  ð  ðð ð ð ð ð ð r0   c                 ó$   — t          j        | i |¤ŽS r(   )r�   Úarg_tree_leaves©r5   r6   s     r#   rã   rã   )  s   € ÝÔ! 4Ð2¨6Ð2Ð2Ð2r0   c                 óB   — t          | |¦  «        }t          ||¦  «        S r(   )Ú_get_tensorsÚkey_extractor)r5   r6   r‡   Útensorss       r#   rç   rç   -  s"   € Ý˜4 Ñ(Ô(€GÝ˜Ð"6Ñ7Ô7Ð7r0   c                 óX   — t          | |¦  «        }d„ |D ¦   «         }t          |¦  «        S )Nc                 óF   — g | ]}t          |t          j        ¦  «        ¯|‘ŒS rX   )rL   r=   rJ   )r™   r“   s     r#   rÃ   z _get_tensors.<locals>.<listcomp>4  s)   € ÐFÐFÐF˜­*°Q½¼Ñ*EÔ*EÐF�1ÐFÐFÐFr0   )rã   rÉ   )r5   r6   Úflat_allÚtensor_argss       r#   rü   rü   2  s2   € Ý˜d FÑ+Ô+€HØFÐF˜hÐFÑFÔF€KÝ�ÑÔÐr0   c                 óÜ   — t           j                             ¦   «         }| D ]$}|t           j                             |¦  «        z  }Œ%|t           j                             ¦   «         z
  }||z  }|S r(   )r=   r>   Ú_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Ø€Nr0   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__Q  s   € Ø" D˜\ˆÔØ"&ˆÔÐÐr0   c                 óN   — |t          | j        ¦  «        k     sJ ‚|| j        |<   d S r(   ©Úlenr  )r.   ÚindexrZ   s      r#   Úsetz!_ModeStackStateForPreDispatch.setU  s1   € Ø•s˜4Ô-Ñ.Ô.Ò.Ð.Ð.Ð.Ø$(ˆÔ˜5Ñ!Ð!Ð!r0   c                 óP   — |t          | j        ¦  «        k     sJ ‚| j        |         S r(   r  )r.   r  s     r#   Úgetz!_ModeStackStateForPreDispatch.getY  s,   € Ø•s˜4Ô-Ñ.Ô.Ò.Ð.Ð.Ð.ØÔ! %Ô(Ð(r0   c                 ól   — t          d„ | j        D ¦   «         ¦  «        t          | j        d u¦  «        z   S )Nc                 ó   — g | ]}|®|‘ŒS r(   rX   )r™   Úis     r#   rÃ   z7_ModeStackStateForPreDispatch.count.<locals>.<listcomp>^  s   € ÐCÐCÐC˜!°Q°]�A°]°]°]r0   )r  r  Úintr  r-   s    r#   Úcountz#_ModeStackStateForPreDispatch.count]  sB   € ÝÐCÐC˜tÔ1ÐCÑCÔCÑDÔDÅsØÔ#¨4Ð/ñH
ô H
ñ 
ð 	
r0   N)rd   re   rf   r/   r  r  r  rX   r0   r#   r	  r	  P  sP   € € € € € ð'ð 'ð 'ð)ð )ð )ð)ð )ð )ð
ð 
ð 
ð 
ð 
r0   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   é   )	r=   r>   Ú_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_modeo  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ØÐr0   r   F)
r  r=   r>   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(  f  sÃ   øø€ Ý&GÑ&IÔ&IÐ#ØÐ˜xÝŒÔ&Ô,ÝŒÔ&Ô1ð,ð  ð  ð  ð  ð ð  ØÐÐÐð ð  ð  ð  ð  ð  ð �;‘=”=€LåAÑCÔCÐð
 ˜qÒ Ð ÝŒ×8Ò8½Ô9PÐRWÑXÔXÐXàÐr0   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   )rT   )ÚSchemaCheckMode)ÚProxyTorchDispatchModezYSchemaCheckMode for pre-dispatch must be used exclusively, found other modes on the stackr  T)r`   rT   Ú#torch._subclasses.schema_check_moder*  Ú"torch.fx.experimental.proxy_tensorr+  rL   rÕ   r  r  ÚAssertionErrorr  r  r=   r>   r%  r   rÔ   )rZ   rT   r*  r+  Úprevious_mode_stack_lenr!  s         r#   Ú_set_mode_pre_dispatchr0  Š  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ð $Ð#r0   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  r=   r>   r  r   r  )Ú
mode_stackÚpre_dispatch_lens     r#   Ú_pop_mode_from_pre_dispatchr4  ±  s§   € Ý2Ñ4Ô4€JÝ=Ñ?Ô?Ðà˜1ÒÐÝÐ=Ñ>Ô>Ð>àÔ$Ð0Ý& t¸$Ð?Ñ?Ô?Ð?Ø‡~‚~�aÑÔÐ$Ý&¥u¤xÔ'EÔ'PÑQÔQÐQØ‡~‚~�aÑÔÐ$Ý&¥u¤xÔ'EÔ'KÑLÔLÐLð %Ð$r0   c                  óB   — t          ¦   «                              ¦   «         S r(   )r  r  rX   r0   r#   rÕ   rÕ   À  s   € Ý,Ñ.Ô.×4Ò4Ñ6Ô6Ð6r0   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  )r=   r>   r  r  r   r  r  )r#  s    r#   Ú_get_dispatch_mode_pre_dispatchr7  Ä  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Ð9r0   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×   Ï  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Ñ?Ô?ðð
 ˆ4r0   c                  ó   — t           S r(   )Ú"_mode_stack_state_for_pre_dispatchrX   r0   r#   r  r  ß  s   € å-Ð-r0   Ú
OpOverloadÚ
cached_opsc                 ó:   — t                                | ¦  «         d S r(   )r>  r�   )Úop_overloads    r#   Úadd_cached_oprA  ç  s   € å‡N‚N�;ÑÔÐÐÐr0   c                  ó8   — t                                ¦   «          d S r(   )r>  rK   rX   r0   r#   Úreset_cached_opsrC  ì  s   € å×ÒÑÔÐÐÐr0   c                  ó   — t           S r(   )r>  rX   r0   r#   Úget_cached_opsrE  ñ  s   € åÐr0   c                   ó†  ‡ — e Zd Zdddeeef         deeeef         ef         dej	        j
        dee         ddfˆ fd	„Zedefd
„¦   «         Zedefd„¦   «         Zedej	        j        fd„¦   «         Zd$d„Zd„ Zdej        dej        defd„Zdej	        j        dej        dej        defd„Zd„ Zd„ Zdedefˆ fd„Zdej	        j        defˆ fd„Ze defd„¦   «         Z!defd„Z"dej        dej        defd„Z#deddfd„Z$dede%eeeef         f         fd„Z&d „ Z'e d!„ ¦   «         Z(e d"„ ¦   «         Z)e d#„ ¦   «         Z*ˆ xZ+S )%r=  ÚoverloadpacketÚOpOverloadPacketri   Úop_dkr¤   ÚtagsrC   Nc                 óÐ  •— t          ¦   «                              ¦   «          || _        || _        || _        || _        || _        |j        dk    rdn|j        | _        |rt          j
        j        |v | _        | j        j        | _        |j        r| xj        d|j        z   z  c_        | j        j                             d¦  «        d         › d| j        › �| _        |j        | _        |j        |_        | j        | _        i | _        | j        t          j        j        v | _        d }| j        j        D ]'}|j        €Œ
|€|j        j        }Œ|j        j        p|}Œ(|d uo| | _        d S )NÚ r   r¬   ú::r  )r‚   r/   Ú_opÚ_op_dkÚ_schemaÚ_overloadpacketÚ_tagsÚoverload_nameÚ_overloadnamer=   ÚTagÚnondeterministic_seededÚ_nondeterministic_seededrO   rƒ   Úsplitrd   re   rf   Ú__annotations__ÚlibraryÚ_defsÚ_defined_in_pythonr£   Ú
alias_infor—   Úis_view)	r.   rG  ri   rI  r¤   rJ  r—   rÂ   r‹   s	           €r#   r/   zOpOverload.__init__ù  sz  ø€ õ 	‰Œ×ÒÑÔÐØˆŒØˆŒØˆŒØ-ˆÔØˆŒ
àÔ-°Ò3Ð3ˆIˆI¸Ô9Mð 	Ôð ð 	VÝ,1¬IÔ,MÐQUÐ,UˆDÔ)Ø”\Ô&ˆŒ
ØÔð 	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°ˆŒˆˆr0   c                 óP   — | j         j                             dd¬¦  «        d         S )NrM  r  ©Úmaxsplitr   ©rP  rO   rX  r-   s    r#   Ú
_namespacezOpOverload._namespace%  ó%   € àŒ|Ô ×&Ò& t°aÐ&Ñ8Ô8¸Ô;Ð;r0   c                 óP   — | j         j                             dd¬¦  «        d         S )NrM  r  r`  rb  r-   s    r#   Ú_opnamezOpOverload._opname)  rd  r0   c                 ój   — t           j                             | j        j        | j        j        ¦  «        S r(   )r=   r>   Ú_dispatch_find_schema_or_throwrP  rO   rS  r-   s    r#   Ú_handlezOpOverload._handle-  s+   € åŒx×6Ò6ØŒLÔ˜tœ|Ô9ñ
ô 
ð 	
r0   c                 ó   — | S r(   rX   ©r.   Úmemos     r#   Ú__deepcopy__zOpOverload.__deepcopy__4  ó   € Øˆr0   c                 ó8   — d| j         › d| j        › d| j        › d�S )Nz<OpOverload(op='r¬   z', overload='z')>)rc  rf  rT  r-   s    r#   Ú__repr__zOpOverload.__repr__7  s*   € Øf $¤/ÐfÐf°D´LÐfÐfÈtÔOaÐfÐfÐfÐfr0   r5   r6   c                ó   —  | j         |i |¤ŽS r(   ©rN  r4   s      r#   r7   zOpOverload.__call__<  s   € ØˆtŒx˜Ð( Ð(Ð(Ð(r0   Úkeysetc                ó.   —  | j         j        |g|¢R i |¤ŽS r(   )ri  Úredispatch_boxed)r.   rs  r5   r6   s       r#   Ú
redispatchzOpOverload.redispatchA  s)   € ð -ˆtŒ|Ô,¨VÐE°dÐEÐEÐE¸fÐEÐEÐEr0   c                 ó*   — t          | j        ¦  «        S r(   ©ÚhashrN  r-   s    r#   Ú__hash__zOpOverload.__hash__F  ó   € Ý�D”H‰~Œ~Ðr0   c                 ód   —  dj         g | j        j                             d¦  «        ¢| j        ‘R Ž S )Nz{}.{}.{}rM  )ÚformatrP  rO   rX  rT  r-   s    r#   rî   zOpOverload.__str__J  s6   € Ø ˆzÔ ÐT $¤,Ô"3×"9Ò"9¸$Ñ"?Ô"?ÐTÀÔASÐTÐTÐTÐTr0   r:   c                 óª   •— t          ¦   «                              |¦  «        p1t          j                             |                      ¦   «         |¦  «        S r(   )r‚   r;   r=   r>   Ú%_dispatch_has_kernel_for_dispatch_keyrO   rŽ   s     €r#   r;   z&OpOverload.has_kernel_for_dispatch_keyM  sF   ø€ Ý‰wŒw×2Ò2Øñ
ô 
ð LåŒX×;Ò;¸D¿IºI¹K¼KÈÑKÔKð	Lr0   rA   c                 óª   •— t           j                             |                      ¦   «         |¦  «        p t	          ¦   «                              |¦  «        S r(   )r=   r>   Ú)_dispatch_has_kernel_for_any_dispatch_keyrO   r‚   rB   )r.   rA   r‹   s     €r#   rB   z*OpOverload.has_kernel_for_any_dispatch_keyR  sD   ø€ ÝŒx×AÒAØ�IŠI‰KŒK˜ñ
ô 
ð 9å‰WŒW×4Ò4°RÑ8Ô8ð	9r0   c                 ó   — | j         S r(   )rc  r-   s    r#   r¨   zOpOverload.namespaceW  s
   € àŒÐr0   c                 ó�   — t           j        }|| j        v p1t          j                             |                      ¦   «         |¦  «        S r(   )r   rr   r*   r=   r>   r  rO   )r.   Údks     r#   Ú_can_decomposezOpOverload._can_decompose[  s?   € ÝÔ2ˆØ�T”_Ð$ð 
­¬×(VÒ(VØ�IŠI‰KŒK˜ñ)
ô )
ð 	
r0   c                 óæ   — t           j        }|| j        v r | j        |         |i |¤ŽS t          j                             |                      ¦   «         |¦  «        r | j        |g|¢R i |¤ŽS t          S r(   )	r   rr   r*   r=   r>   r  rO   rO  rÊ   )r.   r5   r6   r„  s       r#   Ú	decomposezOpOverload.decomposea  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å!Ð!r0   Úkeyc                 ó<   — | j                              |d ¦  «         d S r(   )r)   Úpop)r.   rˆ  s     r#   Ú_uncache_dispatchzOpOverload._uncache_dispatchv  s!   € ØÔ× Ò   dÑ+Ô+Ð+Ð+Ð+r0   c                 óÂ  ‡ ‡— ‰‰ j         vsJ ‰ › d‰› �¦   «         ‚‰t          j        k    rxt          ‰ t          ¦  «        s"‰ j        s‰‰ j         ‰<   t          ‰ ¦  «         ‰S dt          j        dt          j	        dt          fˆˆ fd„}|‰ j         ‰<   t          ‰ ¦  «         |S t          j                             ‰¦  «        }|t          j        k    rdt          ¦   «         }|dk    rPt          j                             t          j        ¦  «        s'dt          j        dt          j	        dt          fˆ 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ú r5   r6   rC   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¶   zDIllegal invocation of dispatch on DispatchKey.Python without a mode.)rÅ   r·   rh   r+   rL   ÚTorchBindOpOverloadr=   ÚutilsÚ_python_dispatchrÀ   Ú_libraryÚhandle_dispatch_moderO  )r5   r6   r·   rÚ   rZ   rˆ  r.   s        €€r#   rÛ   z)OpOverload._get_dispatch.<locals>.handler„  så  ø€ ØSÐSÐSÐSÐSÐSõ !Ð!;Ð!;Ñ!=Ô!=Ñ>Ô>�	Ø Ð,Ð,ØZñ -Ô,Ð,ð  DÔ$9Ð9Ð9Ý! $Õ(;Ñ<Ô<ð Aå!œKÔ8×NÒNÑPÔPðØTXå#(¤>Ô#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(   )r4  r0  )Ú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Úcontextmanagerr=   r’  r�  r“  )r5   r6   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   rM   rL   r�  r+   rA  r   r5   r6   r   r=   r>   rÓ   rÔ   rÕ   rÖ   rz   ra   Útorch._dispatch.pythonÚ	_dispatchÚpythonÚCROSSREF_FUNCTIONALIZEÚmake_crossref_functionalizer*   r  )	r.   rˆ  rÛ   rÞ   Úcurr_stack_lenrß   Úcache_resultÚ
pydispatchÚrs	   ``       r#   Ú_get_dispatchzOpOverload._get_dispatchz  sG  øø€ à˜$Ô.Ð.Ð.Ð.°4°°¸#°°Ñ.Ô.Ð.à•+Ô$Ò$Ð$Ý˜dÕ$7Ñ8Ô8ð ÀÔAVð Ø,/�Ô$ SÑ)Ý˜dÑ#Ô#Ð#Ø�
ðS�rœwð Sµ"´)ð SÅð Sð Sð Sð Sð Sð Sð Sð0 )0ˆDÔ  Ñ%Ý˜$ÑÔÐØˆNå!œH×:Ò:¸3Ñ?Ô?ÐØ¥Ô 7Ò7Ð7ÝCÑEÔEˆNð  Ò"Ð"Ýœ×GÒGÝÔ&ñô ð #ð¥2¤7ð µb´ið ÅBð ð ð ð ð ð ð& �å  cÑ*Ô*ˆ	ð �kÔ5Ò5ˆð
 •+Ô+Ò+Ð+Ø7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7àÔ0ð Ø$×@Ò@ÀÀyÑQÔQ�Øð (Ø07�DÔ(¨Ñ-Ý! $Ñ'Ô'Ð'Ø�àŒO×Ò 	¨9Ñ5Ô5ˆØð 	 Ø()ˆDÔ  Ñ%Ý˜$ÑÔÐØˆr0   c                 ó   — | j         S r(   rð   r-   s    r#   rO   zOpOverload.nameÙ  rñ   r0   c                 ó   — | j         S r(   )rQ  r-   s    r#   rG  zOpOverload.overloadpacketÜ  s   € àÔ#Ð#r0   c                 ó   — | j         S r(   rr  r-   s    r#   ri   zOpOverload.opà  r©   r0   c                 ó   — | j         S r(   )rR  r-   s    r#   rJ  zOpOverload.tagsä  s
   € àŒzÐr0   r(   ),rd   re   rf   r   r   r   r   r   r=   r>   ÚFunctionSchemarÈ   r   r/   r   Ústrrc  rf  Ú_DispatchOperatorHandleri  rm  rp  r5   r6   r7   ÚDispatchKeySetrv  rz  rî   ró   r;   rB   rò   r¨   r…  r‡  r‹  r   r£  rO   rG  ri   rJ  rö   r÷   s   @r#   r=  r=  ø  sc  ø€ € € € € ð*=à*ð*=ð �R˜�VÔð*=ð ˜ K° OÔ4°bÐ8Ô9ð	*=ð
 ”Ô'ð*=ð �3Œið*=ð 
ð*=ð *=ð *=ð *=ð *=ð *=ðX ð<˜Cð <ð <ð <ñ „_ð<ð ð<˜ð <ð <ð <ñ „_ð<ð ð
˜œÔ9ð 
ð 
ð 
ñ „_ð
ðð ð ð ðgð gð gð
) ¤ð )°B´Ið )À"ð )ð )ð )ð )ð
FØœÔ0ðFØ9;¼ðFØLNÌIðFà	ðFð Fð Fð Fð
ð ð ðUð Uð UðL¨[ð L¸Tð Lð Lð Lð Lð Lð Lð
9°%´(Ô2Ið 9Èdð 9ð 9ð 9ð 9ð 9ð 9ð
 ð˜3ð ð ð ñ „Xðð
 ð 
ð 
ð 
ð 
ð"˜rœwð "°"´)ð "Àð "ð "ð "ð "ð*, [ð ,°Tð ,ð ,ð ,ð ,ð] ð ]°°{ÀHÈRÐQSÈVÔDTÐ7TÔ1Uð ]ð ]ð ]ð ]ð~ð ð ð ð$ð $ñ „Xð$ð ðð ñ „Xðð ðð ñ „Xðð ð ð ð r0   c                   ó¦   — e Zd Zdee         fd„Zej        d„ ¦   «         Zde	j
        de	j        defd„Zdee         de	j
        de	j        defd„Zd	S )
r�  rC   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 )Nrˆ  c                 ó  •— t           j                             ‰                     ¦   «         | ¦  «        r2t           j                             ‰                     ¦   «         | ¦  «        S | ‰j        vp‰j        |          t           j        j        u S r(   )r=   r>   r  rO   Ú0_dispatch_kernel_for_dispatch_key_is_fallthroughr*   rZ  Úfallthrough_kernel)rˆ  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ðr0   c                 ó*   •— g | ]} ‰|¦  «        ¯|‘ŒS rX   rX   )r™   rˆ  r±  s     €r#   rÃ   z9TorchBindOpOverload._fallthrough_keys.<locals>.<listcomp>  s:   ø€ ð 
ð 
ð 
àØ7Ð7¸Ñ<Ô<ð
Øð
ð 
ð 
r0   )r   ru   ÚAutogradCPUÚAutogradCUDAÚADInplaceOrViewÚBackendSelectÚPythonTLSSnapshotÚPythonDispatcher)r.   Ú_DEFAULT_FALLTHROUGH_KEYSr±  s   ` @r#   Ú_fallthrough_keysz%TorchBindOpOverload._fallthrough_keysð  sˆ   øø€ õ Ô ÝÔ#ÝÔ$ÝÔ'ÝÔ%ÝÔ)ÝÔ(ð%
Ð!ð		½+ð 		ð 		ð 		ð 		ð 		ð 		ð
ð 
ð 
ð 
à0ð
ñ 
ô 
ð 	
r0   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 ²	;r5   r6   c                óÚ   — t          ||¦  «        rO|                      ¦   «         5   | j        |                      ¦   «         g|¢R i |¤Žcd d d ¦  «         S # 1 swxY w Y    | j        |i |¤ŽS r(   )Ú_must_dispatch_in_pythonrÁ  Ú_dispatch_in_pythonrº  rN  r4   s      r#   r7   zTorchBindOpOverload.__call__   sÖ   € Ý# D¨&Ñ1Ô1ð 	ð ×;Ò;Ñ=Ô=ð ð Ø/�tÔ/Ø×*Ò*Ñ,Ô,ðØ/3ðð ð Ø7=ðð ðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆtŒx˜Ð( Ð(Ð(Ð(s   ¥#AÁAÁAÚfallthrough_keysc           	      ó:  — t           j                             ¦   «         }|D ]}|                     |¦  «        }Œt	          |||¦  «        }|                     ¦   «         }|| j        vr|                      |¦  «        n| j        |         }t          |t          ¦  «        r`t           j         
                    |                      ¦   «         |¦  «        r | j        ||gz   g|¢R i |¤Ž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.)r=   r>   r†   r´   rç   rè   r)   r£  rL   r   r¯  rO   rÄ  rN   r   )	r.   rÅ  r5   r6   r‡   rˆ  rê   rŠ   rÛ   s	            r#   rÄ  z'TorchBindOpOverload._dispatch_in_python2  s‹  € õ  %œx×=Ò=Ñ?Ô?ÐØ#ð 	Dð 	DˆCØ#7×#>Ò#>¸sÑ#CÔ#CÐ Ð å*¨4°Ð9MÑNÔNÐØ'×=Ò=Ñ?Ô?ˆð  4Ô#7Ð7Ð7ð ×Ò˜|Ñ,Ô,Ð,àÔ% lÔ3ð 	õ �g�{Ñ+Ô+ð 	õ Œx×HÒHØ—	’	‘”˜\ñô ð ð 0�tÔ/Ø$¨ ~Ñ5ðàðð ð ð ðð ð õ ð/ ð /ð /ÐZað /ð /ð KWð	/ð /ð /ñô ð õ ˜'¥8Ñ,Ô,Ð,Ð,Ð,Øˆw˜Ð' Ð'Ð'Ð'r0   N)rd   re   rf   rÈ   r   rº  r˜  r™  rÁ  r   r5   r6   r   r7   rÄ  rX   r0   r#   r�  r�  ï  s½   € € € € € ð
 4¨Ô#4ð 
ð 
ð 
ð 
ð< Ôð'ð 'ñ Ôð'ð") ¤ð )°B´Ið )À"ð )ð )ð )ð )ð$'(Ø $ [Ô 1ð'(Ø:<¼'ð'(ØMOÌYð'(à	ð'(ð '(ð '(ð '(ð '(ð '(r0   r�  c                 ó2   — t          j        d„ | |f¦  «        S )Nc                 óJ   — t          | t          j        j        j        ¦  «        S r(   )rL   r=   r’  Úfake_class_registryÚFakeScriptObject)Úobjs    r#   r”   z*_must_dispatch_in_python.<locals>.<lambda>^  s   € •JØ•”Ô3ÔDñ
ô 
€ r0   )r�   Útree_anyrú   s     r#   rÃ  rÃ  \  s)   € ÝŒ?ð	
ð 	
ð 
ˆvˆñ	ô ð r0   r¤   rC   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   óT   K  — | ]#}t          |j        t          j        ¦  «        V — Œ$d S r(   )rL   rh   r=   Ú	ClassTyper˜   s     r#   r›   z)_has_script_object_arg.<locals>.<genexpr>f  s0   è è € ÐQÐQ¸�z˜#œ(¥E¤OÑ4Ô4ÐQÐQÐQÐQÐQÐQr0   )r¢   r£   )r¤   s    r#   Ú_has_script_object_argrÐ  e  s"   € ÝÐQÐQÀÔ@PÐQÑQÔQÑQÔQÐQr0   c            
       ó  — e Zd ZU dZee         ed<   dededeee	f         de
e         ddf
d	„Zdd
„Zd„ Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zdedeee	f         fd„Zdee         fd„Zdej        dej        de	fd„Zd„ ZdS )rH  ú	torch.opsÚ__file__Úqualified_op_nameÚop_nameri   Úoverload_namesrC   Nc                 ó¶   — || _         || _        || _        || _        g | _        t          d„ | j                             ¦   «         D ¦   «         ¦  «        | _        d S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r(   )rÐ  )r™   r¤   s     r#   r›   z,OpOverloadPacket.__init__.<locals>.<genexpr>|  s<   è è € ð .
ð .
Ø/5Õ" 6Ñ*Ô*ð.
ð .
ð .
ð .
ð .
ð .
r0   )	Ú_qualified_op_namerd   rN  Ú_overload_namesÚ_dirr¢   Ú_schemasrÇ   Ú_has_torchbind_op_overload)r.   rÔ  rÕ  ri   rÖ  s        r#   r/   zOpOverloadPacket.__init__n  sk   € ð #4ˆÔØˆŒØˆŒØ-ˆÔØ!ˆŒ	Ý*-ð .
ð .
Ø9=¼×9MÒ9MÑ9OÔ9Oð.
ñ .
ô .
ñ +
ô +
ˆÔ'Ð'Ð'r0   c                 ó   — | S r(   rX   rk  s     r#   rm  zOpOverloadPacket.__deepcopy__�  rn  r0   c                 óF   —  dj         | j                             d¦  «        Ž S )Nz<OpOverloadPacket(op='{}.{}')>rM  ©r}  rÙ  rX  r-   s    r#   rp  zOpOverloadPacket.__repr__„  s)   € Ø6Ð/Ô6ØÔ$×*Ò*¨4Ñ0Ô0ð
ð 	
r0   c                 ó*   — t          | j        ¦  «        S r(   rx  r-   s    r#   rz  zOpOverloadPacket.__hash__‰  r{  r0   c                 óF   —  dj         | j                             d¦  «        Ž S )Nz{}.{}rM  rà  r-   s    r#   rî   zOpOverloadPacket.__str__Œ  s"   € ØˆwŒ~˜tÔ6×<Ò<¸TÑBÔBÐCÐCr0   c                 ó   — | j         S r(   rr  r-   s    r#   ri   zOpOverloadPacket.op�  r©   r0   c                 ó*   ‡ — ˆ fd„‰ j         D ¦   «         S )Nc                 ó\   •— i | ](}|t           j                             ‰j        |¦  «        “Œ)S rX   )r=   r>   Ú_get_schemarÙ  )r™   rS  r.   s     €r#   ú
<dictcomp>z-OpOverloadPacket._schemas.<locals>.<dictcomp>•  s@   ø€ ð 
ð 
ð 
àð �5œ8×/Ò/°Ô0GÈÑWÔWð
ð 
ð 
r0   ©rÚ  r-   s   `r#   rÜ  zOpOverloadPacket._schemas“  s1   ø€ ð
ð 
ð 
ð 
à!%Ô!5ð
ñ 
ô 
ð 	
r0   rˆ  c           
      ó  — 	 |                      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Ú__ú'zH' can't have an overload name beginning with '__' and the underlying op z has no attribute z either.r   rL  zThe underlying op of 'z' has no overload name ')Ú
startswithÚgetattrrN  ÚAttributeErrorr©  r=   r>   Ú_get_operation_overloadrÙ  ræ  rÐ  r=  r�  ÚsetattrrÛ  r½   rN   )	r.   rˆ  Úuse_keyÚ
op_dk_tagsÚop_Úop_dk_rJ  r¤   Ú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   ‚)- ­AA1Á5C E Å/Fc                 ó*   — t          | j        ¦  «        S r(   ©ÚiterrÛ  r-   s    r#   Ú__iter__zOpOverloadPacket.__iter__Ë  ó   € Ý�D”I‰ŒÐr0   r5   r6   c                ój   — | j         r t          ||¦  «        rt          | g|¢R i |¤ŽS  | j        |i |¤ŽS r(   )rÝ  rÃ  Ú!_call_overload_packet_from_pythonrN  r4   s      r#   r7   zOpOverloadPacket.__call__Ð  sX   € ð Ô*ð 	LÕ/GÈÈfÑ/UÔ/Uð 	LÝ4°TÐK¸DÐKÐKÐKÀFÐKÐKÐKØˆtŒx˜Ð( Ð(Ð(Ð(r0   c                 ó$   — d„ | j         D ¦   «         S )Nc                 ó   — g | ]}|r|nd ‘Œ	S r   rX   )r™   Úns     r#   rÃ   z.OpOverloadPacket.overloads.<locals>.<listcomp>ß  s!   € ÐDÐDÐD¨!�QÐ%��˜IÐDÐDÐDr0   rè  r-   s    r#   Ú	overloadszOpOverloadPacket.overloadsÞ  s   € ØDÐD¨tÔ/CÐDÑDÔDÐDr0   r(   )rd   re   rf   rÓ  r   r©  rY  r   r   r   rÈ   r/   rm  rp  rz  rî   rò   ri   rÜ  r=  rö  r   rú  r5   r6   r7   r  rX   r0   r#   rH  rH  k  s�  € € € € € € Ø)€Hˆh�sŒmÐ)Ð)Ñ)ð
àð
ð ð
ð �R˜�VÔð	
ð
 ˜Sœ	ð
ð 
ð
ð 
ð 
ð 
ð&ð ð ð ð
ð 
ð 
ð
ð ð ðDð Dð Dð ðð ñ „Xðð ð
ð 
ñ „Xð
ð/˜sð / z°"°b°&Ô'9ð /ð /ð /ð /ðb˜( 3œ-ð ð ð ð ð
) ¤ð )°B´Ið )À"ð )ð )ð )ð )ðEð Eð Eð Eð Er0   rH  r5   r6   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�}|                     ¦   «         D ]\  }}|d|› d|› d�z  }Œt          |¦  «        ‚)Nz'Fail to match any TorchBindOverload of z with following exceptions:
zOverload name z:
 ú
)	r=   r>   Ú(_maybe_call_torch_function_for_op_packetr  rí  Ú&_check_schema_allow_fake_script_objectrP  rN   Úitems)ri   r5   r6   Útorch_function_calledÚretÚ
exceptionsÚfound_oprS  r@  Ú_ÚeÚerr_msgrˆ  Úmsgs                 r#   rý  rý  ä  s}  € õ "'¤Ô!RØ
ð"Øð"ð "ð "Øð"ð "ÑÐ˜3ð ð Øˆ
ð €JØ€HØŸš™œð 	*ð 	*ˆÝ˜b -Ñ0Ô0ˆð	*Ý”Ô?ØÔ#ðØ&*ðð ð Ø.4ðð ˆAð #ˆHØˆEøÝð 	*ð 	*ð 	*Ø()ˆJ�}Ñ%Ð%Ð%Ð%Ð%Ð%øøøøð	*øøøð ð )Øˆx˜Ð( Ð(Ð(Ð(ð 	T°"ÐSÐSÐSð ð ×$Ò$Ñ&Ô&ð 5ð 5‰ˆˆSØÐ4 CÐ4Ð4¨SÐ4Ð4Ð4Ñ4ˆˆÝ
�wÑ
Ô
Ðs   Á!A0Á0
B	Á:BÂB	c                   óX   ‡ — e Zd ZdZdZdeddfˆ fd„Zdee         fd„Zdede	f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).
    rÒ  rO   rC   Nc                 ól   •— t          ¦   «                              d|z   ¦  «         || _        g | _        d S )Nz
torch.ops.)r‚   r/   rO   rÛ  )r.   rO   r‹   s     €r#   r/   z_OpNamespace.__init__2  s2   ø€ Ý‰Œ×Ò˜¨Ñ,Ñ-Ô-Ð-ØˆŒ	Ø!ˆŒ	ˆ	ˆ	r0   c                 ó*   — t          | j        ¦  «        S r(   rø  r-   s    r#   rú  z_OpNamespace.__iter__7  rû  r0   rÕ  c                 óæ  — |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 )	N)Ú
__origin__Ú__self__zInvalid attribute 'z' for '_OpNamespace' 'rë  rM  r¬   z'_OpNamespace' 'z' object has no attribute ')	rî  rO   re   Ú_get_packetrN   rH  rð  rÛ  r½   )	r.   rÕ  Únamespace_namerÔ  Úmodule_nameri   rÖ  r  Úopoverloadpackets	            r#   rö  z_OpNamespace.__getattr__:  sn  € ØÐ0Ð0Ð0Ý Ø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   ¼0A- Á-
BÁ7BÂB)rd   re   rf   rg   rÓ  r©  r/   r   rú  rH  rö  rö   r÷   s   @r#   r  r    sž   ø€ € € € € ðð ð( €Hð"˜Sð " Tð "ð "ð "ð "ð "ð "ð
˜( 3œ-ð ð ð ð ð"  3ð " Ð+;ð " ð " ð " ð " ð " ð " ð " ð " r0   r  c                 óª   — t           j                             | ¦  «        \  }}|�,t           j        j                             || ¦  «         ||_        ||fS r(   )r=   r>   Ú_jit_get_operationÚjitÚ	_builtinsÚ_register_builtinre   )ÚqualnameÚ	op_moduleri   rÖ  s       r#   r  r  _  sP   € Ýœ×4Ò4°XÑ>Ô>Ñ€BˆØ	€~õ 	Œ	Ô×-Ò-¨b°(Ñ;Ô;Ð;Ø!ˆŒØˆ~ÐÐr0   c                 ón   — t          | j        | j        j        ¦  «        \  }}|€J ‚|| _        || _        d S r(   )r  rÙ  rN  re   rÚ  )Úpacketri   rÖ  s      r#   Ú_refresh_packetr#  i  s<   € Ý$ VÔ%>ÀÄ
Ô@UÑVÔVÑ€BˆØˆ>ˆ>ˆ>Ø€F„JØ+€FÔÐÐr0   c                   óL   ‡ — e Zd ZdZdˆ fd„Zdee         fd„Zdedefd„Z	ˆ xZ
S )	Ú_HigherOrderNamespacerÒ  rC   Nc                 óX   •— t          ¦   «                              d¦  «         g | _        d S )Nr�   )r‚   r/   rÛ  ©r.   r‹   s    €r#   r/   z_HigherOrderNamespace.__init__s  s'   ø€ Ý‰Œ×ÒÐ1Ñ2Ô2Ð2Ø!ˆŒ	ˆ	ˆ	r0   c                 ó*   — t          | j        ¦  «        S r(   rø  r-   s    r#   rú  z_HigherOrderNamespace.__iter__w  rû  r0   rO   c                 ó¼   — t                                |d ¦  «        }|€t          d|› d�¦  «        ‚t          | ||¦  «         | j                             |¦  «         |S )NzJ'_HigherOrderNamespace' 'torch.ops.higher_order' object has no attribute 'rë  )r|   r  rî  rð  rÛ  r½   )r.   rO   ri   s      r#   rö  z!_HigherOrderNamespace.__getattr__z  sl   € å×"Ò" 4¨Ñ.Ô.ˆØˆ:Ý ØdÐ]aÐdÐdÐdñô ð õ 	��d˜BÑÔÐØŒ	×Ò˜ÑÔÐØˆ	r0   )rC   N)rd   re   rf   rÓ  r/   r   r©  rú  r{   rö  rö   r÷   s   @r#   r%  r%  p  s„   ø€ € € € € Ø€Hð"ð "ð "ð "ð "ð "ð˜( 3œ-ð ð ð ð ð	 ð 	Ð(;ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r0   r%  c                   óV   ‡ — e Zd ZdZˆ fd„Zdedefd„Zdee         fd„Z	d„ Z
d„ Zˆ xZS )	Ú_Opsz_ops.pyc                 ó¤   •— t          ¦   «                              d¦  «         t          ¦   «         | _        t	          ¦   «         | _        g | _        d S )NrÒ  )r‚   r/   r  Úloaded_librariesr%  r€   rÛ  r'  s    €r#   r/   z_Ops.__init__‰  s@   ø€ Ý‰Œ×Ò˜Ñ%Ô%Ð%Ý #¡¤ˆÔÝ1Ñ3Ô3ˆÔØˆŒ	ˆ	ˆ	r0   rO   rC   c                 óz   — t          |¦  «        }t          | ||¦  «         | j                             |¦  «         |S r(   )r  rð  rÛ  r½   )r.   rO   r¨   s      r#   rö  z_Ops.__getattr__�  s=   € å  Ñ&Ô&ˆ	Ý��d˜IÑ&Ô&Ð&ØŒ	×Ò˜ÑÔÐØÐr0   c                 ó*   — t          | j        ¦  «        S r(   rø  r-   s    r#   rú  z_Ops.__iter__–  rû  r0   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#   r2  z_Ops.import_module™  s   € õ" 	Ô Ñ'Ô'Ð'Ð'Ð'r0   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)	r=   Ú_running_with_deployr   Úresolve_library_pathr$   r    ÚCDLLr-  r�   )r.   Úpaths     r#   Úload_libraryz_Ops.load_library¬  sº   € õ$ Ô%Ñ'Ô'ð 	ØˆFåÔ3°DÑ9Ô9ˆÝ‰_Œ_ð 	ð 	õ ŒK˜ÑÔÐð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
 	Ô×!Ò! $Ñ'Ô'Ð'Ð'Ð's   ¸AÁAÁ A)rd   re   rf   rÓ  r/   r©  r  rö  r   rú  r2  r9  rö   r÷   s   @r#   r+  r+  †  sœ   ø€ € € € € Ø€Hðð ð ð ð ð ð ¨ð ð ð ð ð˜( 3œ-ð ð ð ð ð(ð (ð (ð&(ð (ð (ð (ð (ð (ð (r0   r+  Úops)F)arô   r˜  r    r1  rG   r   ÚtypesÚcollections.abcr   Ú	functoolsr   Útypingr   r   r   r   r	   r
   r   r   Útyping_extensionsr   r   r   r=   Útorch.utils._pytreer�  Ú_pytreer�   r   Útorch._Cr   rn   r   Útorch._functorch.pyfunctorchr   r   rÅ   r   r`   r   r   r   Úhasattrr   r™  r$   r&   rz   r|   Údictr©  rY  r¸  r·  rµ  r¶  ÚAutocastCPUÚAutocastCUDArˆ   ÚABCr{   rã   rç   rü   rý   r	  r<  r(  r0  r4  rÕ   r7  r×   r  r  r>  rA  rC  rE  r=  r�  rÃ  r¨  ró   rÐ  rH  r5   r6   rý  Ú
ModuleTyper  r  r#  r%  r+  r:  rX   r0   r#   ú<module>rJ     s  ðà 
€
€
€
€
Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø 
€
€
€
Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø %Ð %Ð %Ð %Ð %Ð %ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð >Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =à €€€Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø !Ð !Ð !Ð !Ð !Ð !Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ XØ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JØ :Ð :Ð :Ð :Ð :Ð :ð ð IØHÐHÐHÐHÐHÐHð €WˆT˜3ÐÑÔ€Ø€Yˆt˜SÐ!Ñ!Ô!€ð �G˜CÐ!1Ñ2Ô2ÐU°w°w¸sÐDTÑ7UÔ7UÐ ð Ôð&ð &ñ Ôð&ð P"ð P"ð P"ð P"ð P"ñ P"ô P"ð P"ðh2U�Lð 2U [ð 2Uð 2Uð 2Uð 2Uðj 79Ð �4˜Ð2Ð2Ô3Ð 8Ð 8Ñ 8ð Ô ØÔ!ØÔØÔØÔØÔð6Ð 2ðUð Uð Uð Uð U˜,¨¬ñ Uô Uð Uðp3ð 3ð 3ð8ð 8ð 8ð
ð ð ðð ð ð,
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð& &CÐ%BÑ%DÔ%DÐ "ð!ð !ð !ð !ðH$Xð $Xð $XðNMð Mð Mð7ð 7ð 7ð:ð :ð :ðð ð ð .ð .ð .ð
 !$ ¡¤€
ˆC�ÔÐ %Ð %Ñ %ð ð  ð  ð
ð ð ð
ð ð ðnð nð nð nð n�˜w r¨2 vœñ nô nð nðnj(ð j(ð j(ð j(ð j(˜* R¨ VÔ,ñ j(ô j(ð j(ðZð ð ðR 5Ô#7ð R¸Dð Rð Rð Rð RðtEð tEð tEð tEð tE�w˜r 2˜v”ñ tEô tEð tEðr% Ø˜˜R˜Ô ð% Ø)+¬ð% Ø<>¼Ið% àð% ð % ð % ð % ðnA ð A ð A ð A ð A �5Ô#ñ A ô A ð A ðHð ð ð,ð ,ð ,ðð ð ð ð ˜EÔ,ñ ô ð ð,A(ð A(ð A(ð A(ð A(ˆ5Ôñ A(ô A(ð A(ðJ ˆD‰FŒF€€TÐ Ð Ñ Ð Ð r0   