§
    �Štj�£  ã                  óÚ  — d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
 d dlmc mZ d dlmc mZ d dlmc 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mZmZmZm Z  d dl!m"Z"m#Z# d d	l$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. d d
l/m0Z0m1Z1 erd dl2m3Z3 d!d„Z4d"d„Z5d#d„Z6d#d„Z7d#d„Z8d#d„Z9d#d„Z: ed¬¦  «         G d„ d¦  «        ¦   «         Z; ed¬¦  «         G d„ d e;¦  «        ¦   «         Z<dS )$é    )ÚannotationsN)Ú	dataclass)ÚLiteralÚTYPE_CHECKING)Úassert_never)Ú	translate)Ú	BaseCTypeÚBindingÚConstRefCTypeÚCppSignatureÚCppSignatureGroupÚDispatcherSignatureÚExprÚkernel_signatureÚMutRefCTypeÚ
NamedCTypeÚNativeSignatureÚtensorT)Úmethod_with_native_functionÚnative_function_manager)
ÚArgumentÚBackendIndexÚDeviceCheckTypeÚDispatchKeyÚ"gets_generated_out_inplace_wrapperÚis_cuda_dispatch_keyÚNativeFunctionÚNativeFunctionsGroupÚ
SchemaKindÚTensorOptionsArguments)ÚmapMaybeÚTarget)ÚSelectiveBuilderÚbackend_indexr   Úper_operator_headersÚboolÚrocmÚreturnú	list[str]c                ór  — |rdg}ndg}| j         t          j        t          j        fv r|                     d¦  «         nã| j         t          j        k    r.|r|                     d¦  «         n¶|                     d¦  «         n | j         t          j        k    r|                     d¦  «         nu| j         t          j        k    r|                     d¦  «         nJ| j         t          j        k    r|                     d¦  «         n|r|g d	¢z  }n|                     d
¦  «         |                     d¦  «         |S )Nz'#include <ATen/ops/as_strided_native.h>z!#include <ATen/NativeFunctions.h>z#include <ATen/EmptyTensor.h>z!#include <ATen/hip/EmptyTensor.h>z"#include <ATen/cuda/EmptyTensor.h>z!#include <ATen/mps/EmptyTensor.h>z!#include <ATen/xpu/EmptyTensor.h>z)#include <ATen/native/mtia/EmptyTensor.h>)z#include <ATen/ops/empty.h>z##include <ATen/ops/empty_strided.h>z+#include <ATen/ops/_copy_from_and_resize.h>z #include <ATen/ops/_copy_from.h>z#include <ATen/Functions.h>z#include <c10/macros/Macros.h>)	Údispatch_keyr   ÚCPUÚMetaÚappendÚCUDAÚMPSÚXPUÚMTIA)r$   r%   r'   Úheaderss       úa/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torchgen/dest/register_dispatch_key.pyÚgen_registration_headersr5   /   sU  € ð
 ð 8Ø<Ð=ˆˆà6Ð7ˆàÔ!¥k¤oµ{Ô7GÐ%HÐHÐHØ�ŠÐ6Ñ7Ô7Ð7Ð7Ø	Ô	#¥{Ô'7Ò	7Ð	7Øð 	AØ�NŠNÐ>Ñ?Ô?Ð?Ð?à�NŠNÐ?Ñ@Ô@Ð@Ð@Ø	Ô	#¥{¤Ò	6Ð	6Ø�ŠÐ:Ñ;Ô;Ð;Ð;Ø	Ô	#¥{¤Ò	6Ð	6à�ŠÐ:Ñ;Ô;Ð;Ð;Ø	Ô	#¥{Ô'7Ò	7Ð	7Ø�ŠÐBÑCÔCÐCÐCØ	ð 6Øð 
ð 
ð 
ñ 	
ˆˆð 	�ŠÐ4Ñ5Ô5Ð5à‡N‚NÐ3Ñ4Ô4Ð4Ø€Nó    útuple[str | None, str | None]c                óf  — d }d }| j         t          j        t          j        t          j        t          j        t          j        t          j        fv r1t          | j         ¦  «         	                    ¦   «         }d|› �}d|› �}n.| j         t          j
        t          j        t          j        fv rd}d}||fS )Nzat::detail::empty_zat::detail::empty_strided_z	at::emptyzat::empty_strided)r+   r   r-   r,   r/   r0   r1   r2   ÚstrÚlowerÚ&CompositeExplicitAutogradNonFunctionalÚQuantizedCPUÚQuantizedCUDA)r$   Ú
empty_implÚempty_strided_implÚdispatchs       r4   Úgen_empty_impl_namesrA   U   sÁ   € ð €JØÐàÔ!ÝÔÝŒÝÔÝŒÝŒÝÔð&ð ð õ �}Ô1Ñ2Ô2×8Ò8Ñ:Ô:ˆØ4¨(Ð4Ð4ˆ
ØD¸(ÐDÐDÐÐØ	Ô	#ÝÔ:ÝÔ ÝÔ!ð(ð 
ð 
ð
 !ˆ
Ø0ÐàÐ)Ð)Ð)r6   c           	     ó‚   — | j         t          j        k    rd}nd}t          | ¦  «        \  }}|€g S d|› d|› d|› d|› d�	gS )Nzoptions.device(at::kMeta)Úoptionsz�
Tensor create_out(IntArrayRef sizes, IntArrayRef strides, const TensorOptions &options) {
  if (strides.empty()) {
      return z(sizes, z);
  } else {
      return z(sizes, strides, z	);
  }
}
)r+   r   r-   rA   )r$   Úempty_optionsr>   r?   s       r4   Úgen_create_out_helperrE   q   sŽ   € ØÔ!¥[Ô%5Ò5Ð5Ø3ˆˆà!ˆå%9¸-Ñ%HÔ%HÑ"€JÐ"ØÐØˆ	ð	ð ð	ð 	ð #0ð	ð 	ð
 !ð	ð 	ð
 4Að	ð 	ð 	ð
ð 
r6   c                ó<   — t          | ¦  «        \  }}|€g nd|› d�gS )Nz²
std::optional<Tensor> maybe_create_proxy(const Tensor &out, IntArrayRef sizes, IntArrayRef strides, const TensorOptions &options) {
  if (out.strides() != strides) {
    return z8(sizes, strides, options);
  }
  return std::nullopt;
}
)rA   )r$   Ú_r?   s      r4   Úgen_maybe_create_proxy_helperrH   ˆ   sG   € Ý0°Ñ?Ô?Ñ€AÐð Ð%ð 	ˆðð ðð ð ð	
ðr6   c                ó6   — | j         t          j        k    rg S dgS )Naã  
void resize_out(const Tensor &out, IntArrayRef sizes, IntArrayRef strides, const TensorOptions &options) {
  TORCH_CHECK(options.dtype() == out.dtype(),
      "Expected out tensor to have dtype ", options.dtype(), ", but got ", out.dtype(), " instead");
  TORCH_CHECK(options.device() == out.device(),
      "Expected out tensor to have device ", options.device(), ", but got ", out.device(), " instead");
  const bool resized = at::native::resize_output(out, sizes);
  // Only restride if a resize occurred; otherwise we ignore the (advisory)
  // strides from the meta function and directly use the output tensor's
  // preexisting strides
  if (resized) {
    if (!strides.empty()) {
      TORCH_INTERNAL_ASSERT(!options.memory_format_opt().has_value());
      // TODO: avoid the redispatch here
      out.as_strided_(sizes, strides);
    } else if (options.memory_format_opt().has_value()) {
      out.unsafeGetTensorImpl()->empty_tensor_restride(*options.memory_format_opt());
    }
  }
}
)r+   r   r;   ©r$   s    r4   Úgen_resize_out_helperrK   š   s)   € ØÔ!¥[Ô%WÒWÐWð ˆ	ð	ðð r6   c                ó   — dgS )Na”  
void check_inplace(const Tensor &self, IntArrayRef sizes, const TensorOptions &options) {
  // These checks are needed on those operators that:
  //   1) don't use 'TensorIterator' (e.g. 'addmm' and 'baddbmm')
  //   2) have particular typing rules (e.g. 'cumsum' and 'cumprod')
  // For other operators (e.g. 'add'), 'TensorIterator' already checks
  // these things separately.
  TORCH_CHECK(options.dtype() == self.dtype(),
      "Bad in-place call: ",
      "input tensor dtype ", self.dtype(), " and output tensor dtype ", options.dtype(), " should match");
  TORCH_CHECK(options.device() == self.device(),
      "Bad in-place call: ",
      "input tensor device ", self.device(), " and output tensor device ", options.device(), " should match");
  TORCH_CHECK(sizes == self.sizes(),
      "Bad in-place call: ",
      "input tensor size ", self.sizes(), " and output tensor size ", sizes, " should match");
}
© rJ   s    r4   Úgen_check_inplace_helperrN   ¸   s   € ð	ðð r6   c                ó„   — dgt          | ¦  «        ¢t          | ¦  «        ¢t          | ¦  «        ¢t          | ¦  «        ¢d‘S )Nz?C10_DIAGNOSTIC_PUSH_AND_IGNORED_IF_DEFINED("-Wunused-function")zC10_DIAGNOSTIC_POP())rE   rK   rN   rH   rJ   s    r4   Úgen_registration_helpersrP   Ï   s_   € àIðå	˜}Ñ	-Ô	-ðõ 
˜}Ñ	-Ô	-ðõ 
" -Ñ	0Ô	0ð	õ
 
' }Ñ	5Ô	5ðð 	ðð r6   T)Úfrozenc                  óª   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ed#d„¦   «         Zed$d„¦   «         Zd%d„Zd&d„Z	d'd „Z
	 d(d&d"„Zd!S ))ÚRegisterDispatchKeyr   r$   zvLiteral[Target.ANONYMOUS_DEFINITION, Target.NAMESPACED_DEFINITION, Target.NAMESPACED_DECLARATION, Target.REGISTRATION]Útargetr#   Úselectorr&   r'   Úsymintú
str | NoneÚclass_method_nameÚskip_dispatcher_op_registrationÚtyper   Úargsúlist[Argument]Úmethod_namer9   r(   c           	     ó¦   — | t           j        k    rdS d}|dz  }|D ]4}|j                             ¦   «         r|d|j        › d|› d|j        › d�z  }Œ5|S )Nú  // No device check
z4std::optional<Device> common_device = std::nullopt;
z9(void)common_device; // Suppress unused variable warning
z<
  c10::impl::check_and_update_common_device(common_device, z, "z", "z");)r   ÚNoCheckrZ   Úis_tensor_likeÚname)rZ   r[   r]   Údevice_checkÚargs        r4   Úgen_device_checkz$RegisterDispatchKey.gen_device_check  s    € ð •?Ô*Ò*Ð*Ø+Ð+àNˆØÐTÑTˆØð 	jð 	jˆCàŒx×&Ò&Ñ(Ô(ð jØð !jØ<?¼Hð!jð !jØITð!jð !jØZ]ÔZbð!jð !jð !jñ j�øàÐr6   Úfú%NativeFunctionsGroup | NativeFunctionr)   c                óV  ‡ ‡— t          |t          ¦  «        rQ|Š‰j        r‰                      ‰¦  «        S t	          t          ˆˆ fd„‰                     ¦   «         ¦  «        ¦  «        S t          |t          ¦  «        r‰                      |¦  «        }|€g n|gS t          |¦  «         d S )Nc                ó0   •— ‰                      | ‰¦  «        S ©N©Úgen_unstructured©rf   ÚgÚselfs    €€r4   ú<lambda>z.RegisterDispatchKey.__call__.<locals>.<lambda>)  s   ø€  t×'<Ò'<¸QÀÑ'BÔ'B€ r6   )
Ú
isinstancer   Ú
structuredÚgen_structuredÚlistr!   Ú	functionsr   rl   r   )ro   rf   Úrrn   s   `  @r4   Ú__call__zRegisterDispatchKey.__call__  s¶   øø€ å�aÕ-Ñ.Ô.ð 	Ø&'ˆAð Œ|ð Ø×*Ò*¨1Ñ-Ô-Ð-åÝÐBÐBÐBÐBÐBÀAÇKÂKÁMÄMÑRÔRñô ð õ ˜�>Ñ*Ô*ð 	Ø×%Ò% aÑ(Ô(ˆAØ˜�2�2¨¨Ð+å˜‰OŒOˆOˆOˆOr6   r   ú%NativeSignature | DispatcherSignaturec                ó„   — t          j        |j        d| j        j        › d|j        j        j        › d�| j        ¬¦  «        S )NÚwrapper_rG   ©ÚprefixrV   )r   Úfrom_schemaÚfuncr$   r+   rb   Úoverload_namerV   )ro   rf   s     r4   Úwrapper_kernel_sigz&RegisterDispatchKey.wrapper_kernel_sig1  sK   € õ #Ô.ØŒFØ\˜dÔ0Ô=Ð\Ð\ÀÄÄÔ@YÐ\Ð\Ð\Ø”;ð
ñ 
ô 
ð 	
r6   rn   úNativeFunctionsGroup | Nonec                ó  ‡‡— |€d S |j                              ¦   «         }|t          j        u rdŠn |t          j        u rdŠnt          d¦  «        ‚|                      |¦  «        }|                     ¦   «         }|› d�Št          j	        |¦  «        }t          |¦  «        dk    rod                     ˆˆfd„t          |¦  «        D ¦   «         ¦  «        }|                     ¦   «                              ¦   «         › dd	                     |¦  «        › d
�}nÐt          |¦  «        dk    r|d         }	‰› d‰› d	|	› d�}|	}n§t          |j         j        j        ¦  «        dk    r.t          dt          |j         j        j        ¦  «        › �¦  «        ‚d}|j         j        j        d         }
|
j                             ¦   «         rd‰› d‰› d‰› d|
j        › d�	}n‰› d‰› d	|
j        › d�}|                      |j        ¦  «        }|                     |¬¦  «        › d‰› d|                     ¦   «         › dd	                     d„ t)          |                     ¦   «         |                     ¦   «         ¦  «        D ¦   «         ¦  «        › d|› d|› d�S )Nzat::_copy_fromzat::_copy_from_and_resizez1gen_out_inplace_wrapper called on a functional opÚ_tmpé   z
  c           	   3  ó:   •K  — | ]\  }}‰› d |› d‰› d|› d�V — ŒdS )z
(std::get<z>(z), ú);NrM   )Ú.0ÚiÚret_nameÚcopy_opÚfunc_ress      €€r4   ú	<genexpr>z>RegisterDispatchKey.gen_out_inplace_wrapper.<locals>.<genexpr>N  s\   øè è € ð "ð "á�A�xð ÐDÐD aÐDÐD¨8ÐDÐD¸ÐDÐDÐDð"ð "ð "ð "ð "ð "r6   ú(ú, ú)r   r†   z%Expected exactly 1 out argument, got Ú z    for (int64_t i = 0; i < z.size(); ++i) {
        z[i], z[i]);
    }©rb   z
 {
  auto z = c              3  ó$   K  — | ]}|j         V — Œd S rj   ©Úexpr©r‡   Úes     r4   rŒ   z>RegisterDispatchKey.gen_out_inplace_wrapper.<locals>.<genexpr>j  s$   è è € Ð6~Ð6~À!°q´vÐ6~Ð6~Ð6~Ð6~Ð6~Ð6~r6   z);
  ú

  return ú;
}
)r~   Úkindr   ÚinplaceÚoutÚAssertionErrorr€   rb   ÚcppÚreturn_namesÚlenÚjoinÚ	enumerateÚreturns_typeÚcpp_typeÚ	argumentsrZ   Úis_list_likeÚ
functionalÚdefnr   )ro   rf   rn   ÚkÚsigrb   rž   ÚupdatesÚreturnsr‰   Úout_argÚfunctional_sigrŠ   r‹   s               @@r4   Úgen_out_inplace_wrapperz+RegisterDispatchKey.gen_out_inplace_wrapper;  s  øø€ ð ˆ9Ø�4ØŒF�KŠK‰MŒMˆØ•
Ô"Ð"Ð"Ø&ˆGˆGØ•*”.Ð Ð Ø1ˆGˆGå Ð!TÑUÔUÐUà×%Ò% aÑ(Ô(ˆØ�xŠx‰zŒzˆà�=�=�=ˆÝÔ'¨Ñ*Ô*ˆÝˆ|ÑÔ˜qÒ Ð Ø—k’kð "ð "ð "ð "ð "å#,¨\Ñ#:Ô#:ð"ñ "ô "ñ ô ˆGð ×)Ò)Ñ+Ô+×4Ò4Ñ6Ô6ÐSÐS¸¿ºÀ<Ñ9PÔ9PÐSÐSÐSˆGˆGÝ�ÑÔ !Ò#Ð#Ø# A”ˆHØ Ð;Ð; 8Ð;Ð;¨xÐ;Ð;Ð;ˆGØˆGˆGå�1”6Ô#Ô'Ñ(Ô(¨AÒ-Ð-Ý$ØW½CÀÄÔ@PÔ@TÑ<UÔ<UÐWÐWñô ð ð ˆGØ”fÔ&Ô*¨1Ô-ˆGØŒ|×(Ò(Ñ*Ô*ð Dð
Ø%ð
ð 
à	ð
ð 
àð
ð 
à")¤,ð
ð 
ð 
��ð
 %ÐCÐC xÐCÐC°7´<ÐCÐCÐC�à×0Ò0°´Ñ>Ô>ˆð ‡‚ˆt€ÑÔðð àðð à#×(Ò(Ñ*Ô*ðð à-1¯YªYÐ6~Ð6~ÅyÐQT×Q^ÒQ^ÑQ`ÔQ`Ðbp×bzÒbzÑb|Ôb|ÑG}ÔG}Ð6~Ñ6~Ô6~Ñ-~Ô-~ðð ð ðð ð ð	ð ð ð 	r6   r   c           
     ó°  ‡ ‡— ‰ j                              ‰¦  «        }‰ j         j        t          j        k    r/‰ j                              ‰j        ¦  «        rt          d¦  «        ‚n…‰ j         j        t          j        k    r/‰ j                              ‰j        ¦  «        rt          d¦  «        ‚n<|�|j	        s3t          t          ˆˆ fd„‰                     ¦   «         ¦  «        ¦  «        S t          ‰ j         ‰ j        ‰ j        ‰ j        ‰ j        ‰ j        ‰ j        ‰¦  «        }t          t          |j        ‰                     ¦   «         ¦  «        ¦  «        S )NzqDo not explicitly specify Meta dispatch key on structured functions, they will be automatically generated for youz†Do not explicitly specify CompositeExplicitAutograd dispatch key on structured functions, they will be automatically generated for youc                ó0   •— ‰                      | ‰¦  «        S rj   rk   rm   s    €€r4   rp   z4RegisterDispatchKey.gen_structured.<locals>.<lambda>‚  s   ø€ ¨4×+@Ò+@ÀÀAÑ+FÔ+F€ r6   )r$   Ú
get_kernelr+   r   r-   Ú
has_kernelr›   rœ   r;   rr   rt   r!   ru   ÚStructuredRegisterDispatchKeyrT   rU   r'   rV   rX   rY   Úgen_one)ro   rn   ÚmetadataÚstructured_gens   ``  r4   rs   z"RegisterDispatchKey.gen_structuredp  sW  øø€ ØÔ%×0Ò0°Ñ3Ô3ˆØÔÔ*­kÔ.>Ò>Ð>ØÔ!×,Ò,¨Q¬UÑ3Ô3ð Ý$ðNñô ð ðð ÔÔ+ÝÔAòBð Bð Ô!×,Ò,¨Q¬UÑ3Ô3ð Ý$ðYñô ð ðð
 Ð XÔ%8ÐÝ�Ð!FÐ!FÐ!FÐ!FÐ!FÈÏÊÉÌÑVÔVÑWÔWÐWÝ6ØÔØŒKØŒMØŒIØŒKØÔ"ØÔ0Øñ	
ô 	
ˆõ •H˜^Ô3°Q·[²[±]´]ÑCÔCÑDÔDÐDr6   Nc                ód  ‡— t          |¦  «        5  d}d}| j                             |¦  «        s›| j        j        t          j        k    rL|j                             ¦   «         t          j	        u r'|j
        s t          |j        j        ¦  «        dk    rd}n5| j        j        s|�t          ||| j        ¦  «        rd}n	 d d d ¦  «         d S |j        r	 d d d ¦  «         d S | j        t"          j        u r(| j                             |¦  «        s	 d d d ¦  «         d S |                      |¦  «        Š‰                     ¦   «         }‰                     ¦   «                              ¦   «         }‰                     ¦   «         }d                     d„ |D ¦   «         ¦  «        }t7          j        |dd¬¦  «        }	| j        t"          j        u rId}
|	                     | j        ¬¦  «        D ]}|
d	|                      ¦   «         › d
�z  }
Œ|
cd d d ¦  «         S | j        t"          j!        u rBd,ˆfd„}d}
|	                     | j        ¬¦  «        D ]}|
 ||¦  «        z  }
Œ|
cd d d ¦  «         S | j        t"          j"        u �r¶|rY|j        j        j#        €tI          d¦  «        ‚|j        j        j#        j%        j        }d|› d|› d|› d|› d|› d�cd d d ¦  «         S |r"|  &                    ||¦  «        cd d d ¦  «         S | j         '                    |¦  «        }|€	 d d d ¦  «         d S | j(        €|j)        › d|j*        › �}n|j)        › d| j(        › d|j*        › �}tW          || j        ¦  «        }d                     d„ tY          ‰                     ¦   «         |                     ¦   «         d¬¦  «        D ¦   «         ¦  «        }d}| j        j-        rat]          j/        |j        j        j0        |j        j        j1        ¦  «        }td           3                    |j4        tk          |¦  «        |¦  «        }d}|j-        r×| j        j-        rËtm          d„ |j        j        j7        D ¦   «         ¦  «        }|r!d}tq          | j        j        ¦  «        rd|› �}n€|j        j        j#        �|j        j        j#        j%        gng }t]          j/        ||j        j        j0        |j        j        j1        ¦  «        }ts          d„ |D ¦   «         d ¦  «        }|�d |› d!�}d"|› d|› d|› d#|› d$|› d%|› d|› d&�cd d d ¦  «         S | j        t"          j        u rA|j        s| j:        r	 d d d ¦  «         d S d'|› d(�}d)|j        j        › d*|› d+�cd d d ¦  «         S tw          | j        ¦  «         	 d d d ¦  «         d S # 1 swxY w Y   d S )-NFr„   TrŽ   c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S rj   )r§   ©r‡   Úas     r4   rŒ   z7RegisterDispatchKey.gen_unstructured.<locals>.<genexpr>¸  s*   è è € Ð 8Ð 8¨a §¢¡¤Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8r6   ©ÚmethodÚfallback_bindingr�   ©rV   ú
TORCH_API ú;
Úcpp_sigr   r(   r9   c                ó  •— d|                       ¦   «         › d‰                     ¦   «         › dd                     d„ t          |                      ¦   «         ‰                     ¦   «         ¦  «        D ¦   «         ¦  «        › d�S )Nú
ú
 {
return r�   rŽ   c              3  ó$   K  — | ]}|j         V — Œd S rj   r“   r•   s     r4   rŒ   zNRegisterDispatchKey.gen_unstructured.<locals>.generate_defn.<locals>.<genexpr>Ê  ó$   è è € Ð_Ð_¨!˜qœvÐ_Ð_Ð_Ð_Ð_Ð_r6   ú);
}
©r§   rb   r    r   r¤   ©rÁ   r©   s    €r4   Úgenerate_defnz;RegisterDispatchKey.gen_unstructured.<locals>.generate_defnÇ  s‚   ø€ ðØ‡‚�„ðð à�Š‰
Œ
ðð à—Y’YÐ_Ð_­y¸×9JÒ9JÑ9LÔ9LÈcÏmÊmÉoÌoÑ/^Ô/^Ð_Ñ_Ô_Ñ_Ô_ðð ð ð r6   z1Expected self_arg to be non-None for inplace_metarÃ   ú r�   z") {
  TORCH_CHECK_NOT_IMPLEMENTED(z[.is_meta(),
    "Cannot inplace into non-meta tensor with meta tensor argument");
  return r˜   z::c              3  ó$   K  — | ]}|j         V — Œd S rj   r“   r•   s     r4   rŒ   z7RegisterDispatchKey.gen_unstructured.<locals>.<genexpr>ò  s8   è è € ð +ð +àð ”Fð+ð +ð +ð +ð +ð +r6   ©r¼   r_   z// DeviceGuard omittedc              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S rj   )rq   r    r¹   s     r4   rŒ   z7RegisterDispatchKey.gen_unstructured.<locals>.<genexpr>  sA   è è € ð -ð -àõ # 1Õ&<Ñ=Ô=ð-ð -ð -ð -ð -ð -r6   z=
  const DeviceGuard device_guard(device_or_default(device));z7globalContext().lazyInitDevice(c10::DeviceType::CUDA);
c              3  óX   K  — | ]%}|j                              ¦   «         ¯|j        › V — Œ&d S rj   )rZ   ra   rb   r¹   s     r4   rŒ   z7RegisterDispatchKey.gen_unstructured.<locals>.<genexpr>#  sN   è è € ð ð à$%Ø#$¤6×#8Ò#8Ñ#:Ô#:ðØ#$¤6 ðð ð ð ð ð r6   z1const OptionalDeviceGuard device_guard(device_of(ú));znamespace {

z) {
  z

  r—   z);
}

} // anonymous namespace
z	TORCH_FN(r�   úm.impl("z",
z);
©rÁ   r   r(   r9   )<r   r$   r²   r+   r   r-   r~   r™   r   rš   Úhas_composite_kernelrŸ   r«   Úuse_out_as_primaryr   Úmanual_kernel_registrationrT   r"   ÚREGISTRATIONrU   Úis_native_function_selectedr€   rb   r¢   r£   r¤   r    r   Úfrom_native_functionÚNAMESPACED_DECLARATIONÚ
signaturesrV   ÚdeclÚNAMESPACED_DEFINITIONÚANONYMOUS_DEFINITIONÚself_argrœ   Úargumentr®   r±   rX   Úcpp_namespaceÚkernelr   r   Údevice_guardÚ	itertoolsÚchainr›   Úflat_positionalrS   re   rc   rt   ÚanyÚnon_outr   ÚnextrY   r   )ro   rf   rn   Úinplace_metaÚgets_out_inplace_wrapperrb   r¢   r[   Úargs_strÚcpp_sig_groupÚresultrÁ   rÊ   Úself_arg_namerµ   Ú	impl_nameÚ
kernel_sigÚargs_exprs_strrc   Údevice_check_argsrâ   Úhas_tensor_optionsrÞ   Úcandidate_argsÚ	device_ofÚpayloadr©   s                             @r4   rl   z$RegisterDispatchKey.gen_unstructured�  s	  ø€ õ % QÑ'Ô'ð o	*ð o	*Ø ˆLØ',Ð$ØÔ%×0Ò0°Ñ3Ô3ð  àÔ&Ô3µ{Ô7GÒGÐGØœŸš™œ­Ô);Ð;Ð;ð Ô.ð <õ ˜œœÑ'Ô'¨1Ò,Ð,à#'�L�LàÔ*Ô=ð à˜Ý:¸1¸aÀÔASÑTÔTð &ð 04Ð,Ð,àð/o	*ð o	*ð o	*ñ o	*ô o	*ð o	*ð o	*ð o	*ð0 Ô+ð Øð3o	*ð o	*ð o	*ñ o	*ô o	*ð o	*ð o	*ð o	*ð8 ”�vÔ2Ð2Ð2Øœ×AÒAÀ!ÑDÔDð 3ð ð?o	*ð o	*ð o	*ñ o	*ô o	*ð o	*ð o	*ð o	*ðB ×)Ò)¨!Ñ,Ô,ˆCà—8’8‘:”:ˆDØ×+Ò+Ñ-Ô-×6Ò6Ñ8Ô8ˆLØ—=’=‘?”?ˆDØ—y’yÐ 8Ð 8°4Ð 8Ñ 8Ô 8Ñ8Ô8ˆHõ .ÔBØ˜%°%ðñ ô ˆMð
 Œ{�fÔ;Ð;Ð;Ø�Ø,×7Ò7¸t¼{Ð7ÑKÔKð ?ð ?�GØÐ>¨7¯<ª<©>¬>Ð>Ð>Ð>Ñ>�F�FØðeo	*ð o	*ð o	*ð o	*ñ o	*ô o	*ð o	*ð o	*ðf ”¥Ô <Ð<Ð<ðð ð ð ð ð ð �Ø,×7Ò7¸t¼{Ð7ÑKÔKð 5ð 5�GØ˜m˜m¨GÑ4Ô4Ñ4�F�FØðo	*ð o	*ð o	*ð o	*ñ o	*ô o	*ð o	*ð o	*ðB ”¥Ô ;Ð;Ñ;àð Ø”vÔ'Ô0Ð8Ý,ØOñô ð ð %&¤FÔ$4Ô$=Ô$FÔ$K�MðØðð Øðð Øðð à,ðð ð ð	ð ð ðUo	*ð o	*ð o	*ð o	*ñ o	*ô o	*ð o	*ð o	*ðf ,ð >Ø×7Ò7¸¸1Ñ=Ô=ðio	*ð o	*ð o	*ð o	*ñ o	*ô o	*ð o	*ð o	*ðl  Ô-×8Ò8¸Ñ;Ô;�ØÐ#Øðqo	*ð o	*ð o	*ñ o	*ô o	*ð o	*ð o	*ð o	*ðr Ô)Ð1Ø#+Ô#9Ð NÐ N¸X¼_Ð NÐ N�I�Ià#+Ô#9Ð hÐ h¸TÔ=SÐ hÐ hÐW_ÔWfÐ hÐ h�Iå-¨a°Ô1CÑDÔD�
à!%§¢ð +ð +å&ØŸš™œ¨×)=Ò)=Ñ)?Ô)?Èðñ ô ð+ñ +ô +ñ "ô "�ð  8�àÔ%Ô2ð Ý(1¬ØœÔ(Ô,¨a¬fÔ.>Ô.Nñ)ô )Ð%õ $7×#GÒ#GØœ­Ð->Ñ(?Ô(?Àñ$ô $�Lð  8�Ø”>ð 'n dÔ&8Ô&Eð 'nÝ),ð -ð -à!"¤Ô!1Ô!9ð-ñ -ô -ñ *ô *Ð&ð *ð "nð(@˜õ 0°Ô0BÔ0OÑPÔPð uØ+tÐfrÐ+tÐ+t˜Løð  !œvÔ/Ô8ÐDð œVÔ-Ô6Ô?Ð@Ð@à!#ð !õ
 *3¬Ø$ØœFÔ,Ô0ØœFÔ,Ô<ñ*ô *˜õ %)ðð à)7ðñ ô ð
 !ñ%ô %˜	ð %Ð0Ø+mÐ_hÐ+mÐ+mÐ+m˜Lðð ðð ð ðð ð  ðð ð ð	ð ð ðð ð ðð ð %ðð ð ðwo	*ð o	*ð o	*ð o	*ñ o	*ô o	*ð o	*ð o	*ðP ”¥Ô 3Ð3Ð3ØÔ/ð E°4Ô3Wð EØðUo	*ð o	*ð o	*ñ o	*ô o	*ð o	*ð o	*ð o	*ðX 2¨$Ð1Ð1Ð1�GØD a¤f¤kÐDÐD°wÐDÐDÐDð[o	*ð o	*ð o	*ð o	*ñ o	*ô o	*ð o	*ð o	*õ^ ˜Tœ[Ñ)Ô)Ð)Ð)ð_o	*ð o	*ð o	*ñ o	*ô o	*ð o	*ð o	*ð o	*ð o	*ð o	*ð o	*ð o	*øøøð o	*ð o	*ð o	*ð o	*ð o	*ð o	*sX   ‘B-V%ÃV%Ã .V%ÄC(V%ÈAV%É%A"V%ËV%Ë8V%Ì"H V%Ô/"V%ÕV%ÖV%Ö%V)Ö,V))rZ   r   r[   r\   r]   r9   r(   r9   )rf   rg   r(   r)   )rf   r   r(   rx   )rf   r   rn   r�   r(   rW   )rn   r   r(   r)   rj   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__Ústaticmethodre   r   rw   r€   r®   rs   rl   rM   r6   r4   rS   rS   ì   s  € € € € € € àÐÐÑðð ð ñ ð ÐÐÑð €J€J�Jð
 €L€L�Lð "Ð!Ð!Ñ!ð *Ð)Ð)Ñ)àðð ð ñ „\ðð !ðð ð ñ !Ô ðð"
ð 
ð 
ð 
ð3ð 3ð 3ð 3ðjEð Eð Eð Eð@ CGðr*ð r*ð r*ð r*ð r*ð r*ð r*r6   rS   c                  óR   — e Zd ZU ded<   dd
„Zdd„Zdd„Zdd„Zedd„¦   «         Z	dS )r³   r   rn   r¨   r   Úparent_classr9   Úgenerate_superr&   r(   c                ój   ‡ ‡‡— |r|› d�ŠndŠdˆˆ ˆfd„}d	 |d
d¬¦  «        › d	 |dd¬¦  «        › d	�S )Nz>::set_output_raw_strided(output_idx, sizes, strides, options);r�   rb   r9   Úmaybe_create_proxyr&   r(   c           	     ó�   •— d| › dt          j        ‰                     ‰|¦  «        d¦  «        › dt          j        ‰d¦  «        › d�S )Nz
void set_output_zi(
    int64_t output_idx, IntArrayRef sizes, IntArrayRef strides,
    TensorOptions options
) override {
ú    zk
    // super must happen after, so that downstream can use maybe_get_output
    // to retrieve the output
ú
}
)ÚtextwrapÚindentÚgen_class_set_output_body)rb   r   r¨   ro   Úset_output_supers     €€€r4   Úgen_set_output_functionz]StructuredRegisterDispatchKey.gen_class_set_output_functions.<locals>.gen_set_output_functionW  sg   ø€ ð
Øð
ð 
õ
 
„�×/Ò/°Ð3EÑFÔFÈÑOÔOð
ð 
õ 
„Ð! 6Ñ*Ô*ð
ð 
ð 
ð 
r6   rÃ   ÚstridedT)r   Úraw_stridedF)rb   r9   r   r&   r(   r9   rM   )ro   r¨   rý   rþ   r  r  s   ``   @r4   Úgen_class_set_output_functionsz<StructuredRegisterDispatchKey.gen_class_set_output_functionsO  s˜   øøø€ ð ð 	"Ø".ÐnÐnÐnÐÐà!Ðð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ðØÐ˜°tÐ<Ñ<Ô<ðð àÐ˜¸5ÐAÑAÔAðð ð ð 	r6   r   c                ó„  — | j         j        t          j        t          j        t          j        t          j        fv rd}|dz   }ndx}}|rd}nd}|t          j        u r}| j         j        t          j	        t          j
        t          j        t          j        t          j        t          j        t          j        fvrt          d| j         j        › d�¦  «        ‚|› d�S |t          j        u r|› d|› �S |t          j        u r|› d	|› �S |t          j        u s|t          j        u rt          |› d
�¦  «        ‚t#          |¦  «         d S )Na  
auto current_device = guard_.current_device();
if (C10_UNLIKELY(current_device.has_value())) {
  TORCH_INTERNAL_ASSERT(*current_device == options.device(),
    "structured kernels don't support multi-device outputs");
} else {
  guard_.reset_device(options.device());
}
rÃ   r�   z¶
auto maybe_proxy = maybe_create_proxy(out, sizes, strides, options);
if (C10_UNLIKELY(maybe_proxy.has_value())) {
    proxy_outputs_[output_idx] = std::move(maybe_proxy).value();
}
zUnexpected dispatch key z for functional schemaz<
outputs_[output_idx] = create_out(sizes, strides, options);zS
const auto& out = outputs_[output_idx].get();
check_inplace(out, sizes, options);
zY
const auto& out = outputs_[output_idx].get();
resize_out(out, sizes, strides, options);
ú1 structured operators are currently not supported)r$   r+   r   r/   r0   r1   r;   r   r¦   r-   r,   r2   rœ   rš   r›   ÚmutableÚscratchr   )ro   r¨   r   Úmaybe_set_guardÚmaybe_set_guard_lineÚcreate_proxys         r4   r  z7StructuredRegisterDispatchKey.gen_class_set_output_bodyi  s«  € ØÔÔ*ÝÔÝŒOÝŒOÝÔ>ð	/
ð 
ð 
ðˆOð $3°TÑ#9Ð Ð à57Ð7Ð  ?àð 	ðˆLˆLð ˆLà•
Ô%Ð%Ð%ØÔ!Ô.ÝÔ Ý”ÝÔ Ý”Ý”ÝÔ ÝÔBð7ð ð õ %ð,¨tÔ/AÔ/Nð ,ð ,ð ,ñô ð ð -ð ?ð ?ð ?ð ?à•*Ô$Ð$Ð$Ø,ð ð ð ðð ð ð •*”.Ð Ð Ø,ð ð ð ðð ð ð •*Ô$Ð$Ð$¨­ZÔ-?Ð(?Ð(?Ý ØÐGÐGÐGñô ð õ ˜‰OŒOˆOˆOˆOr6   Ú
class_namer«   Úintc                ó¨  — |t           j        u rdS |t           j        u r|› d�S |t           j        u rcd                     d„ t          |¦  «        D ¦   «         ¦  «        }d                     d„ t          |¦  «        D ¦   «         ¦  «        }|› d|› d|› d�S |t           j        u s|t           j        u rt          |› d	�¦  «        ‚t          |¦  «         d S )
Nr�   z,(Tensor& self) : outputs_{std::ref(self)} {}rŽ   c              3  ó    K  — | ]	}d |› �V — Œ
dS )zTensor& outNrM   ©r‡   rˆ   s     r4   rŒ   z?StructuredRegisterDispatchKey.gen_class_ctor.<locals>.<genexpr>±  s+   è è € Ð KÐ K°qÐ!2¨qÐ!2Ð!2Ð KÐ KÐ KÐ KÐ KÐ Kr6   c              3  ó"   K  — | ]
}d |› d�V — ŒdS )zstd::ref(outr�   NrM   r  s     r4   rŒ   z?StructuredRegisterDispatchKey.gen_class_ctor.<locals>.<genexpr>²  s.   è è € Ð MÐ M¸Ð!4°Ð!4Ð!4Ð!4Ð MÐ MÐ MÐ MÐ MÐ Mr6   r�   z) : outputs_{ z } {}r  )
r   r¦   rš   r›   r    Úranger  r  rœ   r   )ro   r¨   r  r«   Úout_argsÚout_refss         r4   Úgen_class_ctorz,StructuredRegisterDispatchKey.gen_class_ctorª  sô   € Ø•
Ô%Ð%Ð%Ø�2Ø•*Ô$Ð$Ð$à ÐRÐRÐRÐRØ•*”.Ð Ð Ø—y’yÐ KÐ K½EÀ'¹N¼NÐ KÑ KÔ KÑKÔKˆHØ—y’yÐ MÐ M½eÀG¹n¼nÐ MÑ MÔ MÑMÔMˆHØ ÐNÐN 8ÐNÐN¸HÐNÐNÐNÐNØ•*Ô$Ð$Ð$¨­ZÔ-?Ð(?Ð(?Ý ØÐGÐGÐGñô ð õ ˜‰OŒOˆOˆOˆOr6   rf   r   c               óÄ  — |t           j        u rd}d}d}nP|t           j        u s|t           j        u r"d}d}dt	          |j        j        ¦  «        › d�}nt          d|› �¦  «        ‚| j        j	        t          j        k    rd	}	nv| j        j	        t          j        k    rd
}	nY| j        j	        t          j        k    rd
}	n<| j        j	        t          j        k    rd
}	n| j        j	        t          j        k    rd
}	nd}	d}
|                      ||t	          |j        j        ¦  «        ¦  «        }d|› d|› d�t#          j        ||
¦  «        › t#          j        |                      |||¦  «        |
¦  «        › dd|› d�dd|› dt	          |j        j        ¦  «        › d�t#          j        ||
¦  «        › t#          j        |	|
¦  «        › df
}d                     d„ |D ¦   «         ¦  «        S )NÚTensorzoutputs_[output_idx]r�   zstd::reference_wrapper<Tensor>zaproxy_outputs_[output_idx].has_value() ? *proxy_outputs_[output_idx] : outputs_[output_idx].get()z$std::array<::std::optional<Tensor>, z> proxy_outputs_;zUnsupported SchemaKind z$c10::cuda::OptionalCUDAGuard guard_;z c10::OptionalDeviceGuard guard_;r  zstruct z final : public z {zA    const Tensor& maybe_get_output(int64_t output_idx) override {z      return rÀ   z    }z    std::array<rŽ   z> outputs_;z};rÃ   c              3  ó   K  — | ]}|¯|V — Œ	d S rj   rM   )r‡   Úlines     r4   rŒ   z:StructuredRegisterDispatchKey.gen_class.<locals>.<genexpr>ï  s'   è è € Ð8Ð8 $°4Ð8˜Ð8Ð8Ð8Ð8Ð8Ð8r6   )r   r¦   rš   r›   rŸ   r~   r«   ÚRuntimeErrorr$   r+   r   r/   r;   r0   r1   r2   r  r  r  r  r    )ro   rf   r¨   r  rý   rþ   Úoutput_typeÚoutput_valueÚproxy_fieldÚguard_fieldr  Úclass_ctor_strÚliness                r4   Ú	gen_classz'StructuredRegisterDispatchKey.gen_class»  s  € ð •
Ô%Ð%Ð%Ø"ˆKØ1ˆLØˆKˆKØ•*Ô$Ð$Ð$¨­Z¬^Ð(;Ð(;Ø:ˆKØ~ˆLØgÅÀQÄVÄ^ÑATÔATÐgÐgÐgˆKˆKåÐ<¸Ð<Ð<Ñ=Ô=Ð=àÔÔ*­kÔ.>Ò>Ð>Ø@ˆKˆKàÔÔ+ÝÔAòBð Bð =ˆKˆKØÔÔ,µ´Ò?Ð?à<ˆKˆKØÔÔ,µ´Ò?Ð?Ø<ˆKˆKØÔÔ,µÔ0@Ò@Ð@Ø<ˆKˆKàˆKàˆØ×,Ò,¨Q°
½CÀÄÄÑ<OÔ<OÑPÔPˆàC�jÐCÐC°,ÐCÐCÐCÝŒ˜~¨vÑ6Ô6Ð8ÝŒ˜t×BÒBÀ1ÀlÐTbÑcÔcÐekÑlÔlÐnØOØ-˜LÐ-Ð-Ð-ØàM˜kÐMÐM­S°´´Ñ-@Ô-@ÐMÐMÐMÝŒ˜{¨FÑ3Ô3Ð5ÝŒ˜{¨FÑ3Ô3Ð5Øð
ˆð �yŠyÐ8Ð8¨%Ð8Ñ8Ô8Ñ8Ô8Ð8r6   rW   c                ó4  ‡— |j         rt          d|j        j        › d�¦  «        ‚| j        t
          j        u r| j                             |¦  «        sd S | j	        j
        t          j        k    r'|j                             ¦   «         t          j        u rd S t!          j        |dd¬¦  «        }| j	                             |¦  «        }t'          |j        d| j	        j
        › d�|d uo|                     ¦   «         ¬¦  «        Š| j        t
          j        u r=d}|                     | j        ¬	¦  «        D ]}|d
|                     ¦   «         › d�z  }Œ|S | j        t
          j        u r6dDˆfd„}d}|                     | j        ¬	¦  «        D ]}| ||¦  «        z  }Œ|S | j        t
          j        u �r�|j                             ¦   «         }g }t7          ‰                     ¦   «         ¦  «        }	| j	        j
        t          j        u rAdt=          j        | j        ¦  «        › d|j        › �}
dt=          j        | j        ¦  «        › �}nÃ| j	        j
        t          j        u rAdt=          j        | j        ¦  «        › d|j        › �}
dt=          j        | j        ¦  «        › �}nj| j	                             | j        ¦  «        }|€&t          d| j        j         j        j        › �¦  «        ‚d|j!        › d|j        › �}
|j"        › d|j!        › �}| j	        j#        r†tI          j%        |j        j        j        |j        j        j&        ¦  «        }| '                    tP           )                    |j*        t7          |¦  «        ‰                     ¦   «         ¦  «        ¦  «         |t          j         u r| '                    |
› d�¦  «         n~|t          j+        u r| '                    |
› d�¦  «         nW|t          j        u rId ,                    d„ |j        j        j        D ¦   «         ¦  «        }| '                    |
› d|› d�¦  «         d ,                    d„ t[          |	t]          j/        | j        ¦  «        d¬¦  «        D ¦   «         ¦  «        }| j        j        j0        r“| '                    d|› d�¦  «         g | j        j        j0        j1         2                    ¦   «         ¢| j        j        j0        j3        ‘}|D ]!}|	 4                    d „ |D ¦   «         ¦  «         Œ"| '                    d!¦  «         n| '                    d"|› d�¦  «         t]          j5        | j        ¦  «        }tm          |¦  «        D ]Æ\  }}to          tq          tr          ¦  «        ¦  «        |j:        j;        k    rt          d#|j:        j;        › �¦  «        ‚|t          j        u rd$|› d%�}nd&|› d'�}|	 '                    ty          |t{          |j:        j        t}          tq          tr          ¦  «        ¦  «        ¦  «        ¬(¦  «        ¦  «         ŒÇ| j	        j
        t          j        k    r¬t!          j        | j        j        d|j?        ¬¦  «        }| @                    ¦   «         }|                     ¦   «         }d ,                    d)„ t[          |	|                     ¦   «         d¬¦  «        D ¦   «         ¦  «        }| '                    d*|› d+|› d�¦  «         ny| j	        j
        t          j        k    r_d ,                    d,„ t[          |	t]          jA        | j        ¦  «        d¬¦  «        D ¦   «         ¦  «        }| '                    d-|› d�¦  «         |t          j        u s|t          j+        u rHt…          t‡          |j        jD        ¦  «        ¦  «        D ]!}| '                    d.|› d/|› d0|› d1�¦  «         Œ"|t          j         u rjt‡          |j        jD        ¦  «        d2k    rd3}n×d ,                    d4„ t…          t‡          |j        jD        ¦  «        ¦  «        D ¦   «         ¦  «        }d5|› d%�}n�|t          j+        u rd6}n||t          j        u rnt‡          |j        jD        ¦  «        d2k    r|j        j        j        d7         j        }n4d ,                    d8„ |j        j        j        D ¦   «         ¦  «        }d9|› d%�}| '                    d:|› d;�¦  «         d< ,                    |¦  «        }|  E                    |||
|| j        j        jF        d u¬=¦  «        › d>‰ G                    ¦   «         › d?|› d@�S | j        t
          j        u r%dA|j        j        › dB‰                     ¦   «         › dC�S t‘          | j        ¦  «         d S )ENz	Function z$ has manual_kernel_registration=TrueFr»   rz   rG   r{   r�   r¾   r¿   rÀ   rÁ   r   r(   r9   c                ó  •— d|                       ¦   «         › d‰                     ¦   «         › dd                     d„ t          |                      ¦   «         ‰                     ¦   «         ¦  «        D ¦   «         ¦  «        › d�S )NrÃ   rÄ   r�   rŽ   c              3  ó$   K  — | ]}|j         V — Œd S rj   r“   r•   s     r4   rŒ   zOStructuredRegisterDispatchKey.gen_one.<locals>.generate_defn.<locals>.<genexpr>/  rÆ   r6   rÇ   rÈ   rÉ   s    €r4   rÊ   z<StructuredRegisterDispatchKey.gen_one.<locals>.generate_defn,  s‚   ø€ ðØ‡‚�„ðð à�Š‰
Œ
ðð à—Y’YÐ_Ð_­y¸×9JÒ9JÑ9LÔ9LÈcÏmÊmÉoÌoÑ/^Ô/^Ð_Ñ_Ô_Ñ_Ô_ðð ð ð r6   Ústructured_Ú_meta_zat::meta::structured_Ú_default_backend_zNo kernel metadata found for z::structured_z op;z
 op(self);rŽ   c              3  ó$   K  — | ]}|j         V — Œd S rj   r‘   r¹   s     r4   rŒ   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>e  s$   è è € Ð(NÐ(N°A¨¬Ð(NÐ(NÐ(NÐ(NÐ(NÐ(Nr6   z op(r†   c              3  ó$   K  — | ]}|j         V — Œd S rj   r“   r•   s     r4   rŒ   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>j  s8   è è € ð #ð #àð ”ð#ð #ð #ð #ð #ð #r6   rÍ   zauto precompute = op.meta(c              3  óz   K  — | ]6}t          d |j        › �t          j        ||j        ¬¦  «        ¬¦  «        V — Œ7dS )zprecompute.)Úbinds©r”   rZ   N)r   rb   rr   Úargument_type)r‡   rd   s     r4   rŒ   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>  si   è è € ð #ð #ð
  õ	 Ø!9¨s¬xÐ!9Ð!9Ý!+Ô!9¸#ÀSÄXÐ!NÑ!NÔ!Nðñ ô ð#ð #ð #ð #ð #ð #r6   z(void)precompute;zop.meta(zCExpected out_arg type to be ConstRefCType(BaseCType(tensorT)), got zop.maybe_get_output(r�   zop.outputs_[ú]r3  c              3  ó$   K  — | ]}|j         V — Œd S rj   r“   r•   s     r4   rŒ   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>´  s8   è è € ð &ð &àð ”Fð&ð &ð &ð &ð &ð &r6   zat::r�   c              3  ó$   K  — | ]}|j         V — Œd S rj   r“   r•   s     r4   rŒ   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>Ä  s8   è è € ð 'ð 'àð ”Fð'ð 'ð 'ð 'ð 'ð 'r6   zop.impl(zif (op.proxy_outputs_[z].has_value()) op.outputs_[z!].get().copy_(*op.proxy_outputs_[z]);r„   zstd::move(op.outputs_[0])c              3  ó"   K  — | ]
}d |› d�V — ŒdS )zstd::move(op.outputs_[z])NrM   r  s     r4   rŒ   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>Ú  sA   è è € ð &ð &àð 7°Ð6Ð6Ð6ð&ð &ð &ð &ð &ð &r6   zstd::make_tuple(ro   r   c              3  ó$   K  — | ]}|j         V — Œd S rj   r‘   r¹   s     r4   rŒ   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>å  s$   è è € Ð$JÐ$J° Q¤VÐ$JÐ$JÐ$JÐ$JÐ$JÐ$Jr6   zstd::forward_as_tuple(zreturn ú;rÃ   )r  rý   rþ   z

z {
r  rÑ   z", TORCH_FN(rÐ   rÒ   )IrÕ   rœ   r~   rb   rT   r"   rÖ   rU   r×   r$   r+   r   r;   r™   r   r›   r   rØ   r±   r   Úsupports_symintrÙ   rÚ   rV   rÛ   rÜ   rÝ   rt   r¤   r-   Úmetarn   r¦   rá   rà   râ   rã   rä   rå   r.   rS   re   rc   rš   r    r   rr   Úmeta_argumentsÚprecomputedÚreplaceÚvaluesÚaddÚextendÚout_argumentsr¡   r   r	   r   ÚnctyperZ   r   r   r   Úmanual_cpp_bindingÚmost_faithful_signatureÚimpl_argumentsr  rŸ   r«   r(  Ústructured_inheritsr§   r   ) ro   rf   rì   Úkernrí   rÁ   rÊ   r¨   Úsig_bodyÚcontextr  rý   rµ   rò   Úout_args_strÚ
meta_exprsÚprecomputed_valuesÚprecomputed_elemsr  rˆ   r¬   r”   Úout_sig_groupÚout_sigÚapi_nameÚ	out_exprsÚ
impl_exprsÚret_exprÚmovedÚrefsÚsig_body_strr©   s                                   @r4   r´   z%StructuredRegisterDispatchKey.gen_oneñ  sŒ
  ø€ àÔ'ð 	Ý ØM˜AœFœKÐMÐMÐMñô ð ð
 ŒK�6Ô.Ð.Ð.Ø”M×=Ò=¸aÑ@Ô@ð /ð �4ð ÔÔ+ÝÔAòBð Bà”—’‘”¥¤Ð/Ð/ð �4õ *Ô>Ø�e¨eð
ñ 
ô 
ˆð
 Ô!×,Ò,¨QÑ/Ô/ˆÝØŒFØ@˜dÔ0Ô=Ð@Ð@Ð@Ø˜tÐ#Ð>¨×(<Ò(<Ñ(>Ô(>ð
ñ 
ô 
ˆð Œ;�&Ô7Ð7Ð7ØˆFØ(×3Ò3¸4¼;Ð3ÑGÔGð ;ð ;�ØÐ: w§|¢|¡~¤~Ð:Ð:Ð:Ñ:��ØˆMàŒ[�FÔ8Ð8Ð8ðð ð ð ð ð ð ˆFØ(×3Ò3¸4¼;Ð3ÑGÔGð 1ð 1�Ø˜-˜-¨Ñ0Ô0Ñ0��ØˆMàŒ[�FÔ7Ð7Ñ7Ø”—’‘”ˆAð ˆHõ -1°·²±´Ñ,AÔ,AˆGð Ô!Ô.µ+Ô2BÐBÐBØL­4¬9°T´VÑ+<Ô+<ÐLÐLÀAÄFÐLÐL�
ØJµt´yÀÄÑ7HÔ7HÐJÐJ��àÔ"Ô/ÝÔEðFð Fð X­4¬9°T´VÑ+<Ô+<ÐWÐWÈqÌvÐWÐW�
ØJµt´yÀÄÑ7HÔ7HÐJÐJ��àÔ-×8Ò8¸¼Ñ@Ô@�ØÐ#Ý(ØU¸¼Ô8IÔ8NÔ8SÐUÐUñô ð ð F¨8¬?ÐEÐE¸Q¼VÐEÐE�
Ø"*Ô"8ÐXÐXÀxÄÐXÐX�àÔ!Ô.ð Ý$-¤OØ”FÔ$Ô(¨!¬&Ô*:Ô*Jñ%ô %Ð!ð —’Ý'×8Ò8Øœ­Ð->Ñ(?Ô(?ÀÇÂÁÄñô ñô ð ð •JÔ)Ð)Ð)Ø—’ :Ð 3Ð 3Ð 3Ñ4Ô4Ð4Ð4Ø•jÔ(Ð(Ð(Ø—’ :Ð 9Ð 9Ð 9Ñ:Ô:Ð:Ð:Ø•j”nÐ$Ð$Ø#ŸyšyÐ(NÐ(N¸¼Ô9IÔ9MÐ(NÑ(NÔ(NÑNÔN�Ø—’ :Ð CÐ C°<Ð CÐ CÐ CÑDÔDÐDð Ÿšð #ð #å"Ø�ZÔ6°t´vÑ>Ô>Àuðñ ô ð#ñ #ô #ñ ô ˆJð ŒvŒzÔ%ð ;ð —’Ð K¸ZÐ KÐ KÐ KÑLÔLÐLð
&Ø”V”ZÔ+Ô3×:Ò:Ñ<Ô<ð&à”F”JÔ*Ô.ð&Ð"ð *<ð ð Ð%Ø—N’Nð #ð #ð
 $5ð#ñ #ô #ñ ô ð ð ð —’Ð 3Ñ4Ô4Ð4Ð4à—’Ð 9¨:Ð 9Ð 9Ð 9Ñ:Ô:Ð:õ "Ô/°´Ñ7Ô7ˆHÝ'¨Ñ1Ô1ð ð ‘
��7Ý ¥­7Ñ!3Ô!3Ñ4Ô4¸¼Ô8KÒKÐKÝ(ð5Ø&œ~Ô2ð5ð 5ñô ð ð
 �
œÐ&Ð&Ø6°!Ð6Ð6Ð6�D�Dà.¨!Ð.Ð.Ð.�Dà—’ÝØ!õ (Ø#œNÔ/µ½YÅwÑ=OÔ=OÑ1PÔ1Pñô ðñ ô ñ
ô 
ð 
ð 
ð Ô"Ô/ÝÔEòFð Fõ !2Ô FØ”F”J u¸qÔ?Sð!ñ !ô !�ð (×?Ò?ÑAÔA�Ø"Ÿ<š<™>œ>�Ø ŸIšIð &ð &å& w°×0AÒ0AÑ0CÔ0CÈEÐRÑRÔRð&ñ &ô &ñ ô �	ð —’Ð ? xÐ ?Ð ?°)Ð ?Ð ?Ð ?Ñ@Ô@Ð@Ð@ØÔ#Ô0µKÔ4DÒDÐDØ!ŸYšYð 'ð 'å&Ø¥Ô!:¸4¼6Ñ!BÔ!BÈ5ðñ ô ð'ñ 'ô 'ñ ô �
ð —’Ð 9¨:Ð 9Ð 9Ð 9Ñ:Ô:Ð:ð •J”NÐ"Ð" a­:Ô+=Ð&=Ð&=Ý�s 1¤6¤>Ñ2Ô2Ñ3Ô3ð ð �AØ—O’OØy°ÐyÐyÈqÐyÐyÐstÐyÐyÐyñô ð ð ð •JÔ)Ð)Ð)Ý�q”v”~Ñ&Ô&¨!Ò+Ð+Ø:�H�Hà ŸIšIð &ð &å!&¥s¨1¬6¬>Ñ':Ô':Ñ!;Ô!;ð&ñ &ô &ñ ô �Eð  ;°%Ð:Ð:Ð:�H�HØ•jÔ(Ð(Ð(Ø!��Ø•j”nÐ$Ð$Ý�q”v”~Ñ&Ô&¨!Ò+Ð+Ø œvÔ/Ô3°AÔ6Ô;�H�HàŸ9š9Ð$JÐ$J°Q´VÔ5EÔ5IÐ$JÑ$JÔ$JÑJÔJ�DØ?¸Ð?Ð?Ð?�HØ�OŠOÐ1 hÐ1Ð1Ð1Ñ2Ô2Ð2àŸ9š9 XÑ.Ô.ˆLð —’ØØØ)Ø!-Ø#'¤6¤:Ô#AÈÐ#Mð ñ ô ðð ð ‡‚�„ðð ð ðð ð ð ð  Œ[�FÔ/Ð/Ð/ØF˜aœfœkÐFÐF°s·x²x±z´zÐFÐFÐFÐFå˜œÑ%Ô%Ð%à�4r6   N)r¨   r   rý   r9   rþ   r&   r(   r9   )r¨   r   r   r&   r(   r9   )r¨   r   r  r9   r«   r  r(   r9   )rf   r   r¨   r   r  r9   rý   r9   rþ   r&   r(   r9   )rf   r   r(   rW   )
r÷   rø   rù   rú   r  r  r  r(  r   r´   rM   r6   r4   r³   r³   K  s›   € € € € € € àÐÐÑðð ð ð ð4=ð =ð =ð =ðBð ð ð ð"49ð 49ð 49ð 49ðl !ðPð Pð Pñ !Ô ðPð Pð Pr6   r³   )r$   r   r%   r&   r'   r&   r(   r)   )r$   r   r(   r7   )r$   r   r(   r)   )=Ú
__future__r   rã   r  Údataclassesr   Útypingr   r   Útyping_extensionsr   Útorchgen.api.cppÚapir�   Útorchgen.api.metar<  Útorchgen.api.structuredrr   Útorchgen.api.translater   Útorchgen.api.typesr	   r
   r   r   r   r   r   r   r   r   r   r   Útorchgen.contextr   r   Útorchgen.modelr   r   r   r   r   r   r   r   r   r    Útorchgen.utilsr!   r"   Ú!torchgen.selective_build.selectorr#   r5   rA   rE   rH   rK   rN   rP   rS   r³   rM   r6   r4   ú<module>rg     sR  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø !Ð !Ð !Ð !Ð !Ð !Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø *Ð *Ð *Ð *Ð *Ð *à Ð Ð Ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð RÐ QÐ QÐ QÐ QÐ QÐ QÐ Qðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ,Ð +Ð +Ð +Ð +Ð +Ð +Ð +ð ð CØBÐBÐBÐBÐBÐBð#ð #ð #ð #ðL*ð *ð *ð *ð8ð ð ð ð.ð ð ð ð$ð ð ð ð<ð ð ð ð.ð ð ð ð: €�$ÐÑÔðT*ð T*ð T*ð T*ð T*ñ T*ô T*ñ ÔðT*ð|
 €�$ÐÑÔðvð vð vð vð vÐ$7ñ vô vñ Ôðvð vð vr6   