Ë
    S²j¥  ã                  óÌ  — 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„Z4	 	 	 	 d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<y)é    )Ú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)ÚSelectiveBuilderc                óŒ  — |rdg}ndg}| j                   t        j                  t        j                  fv r|j	                  d«       në| j                   t        j
                  k(  r&|r|j	                  d«       nº|j	                  d«       n¨| j                   t        j                  k(  r|j	                  d«       ny| j                   t        j                  k(  r|j	                  d«       nJ| j                   t        j                  k(  r|j	                  d«       n|r|g d	¢z  }n|j	                  d
«       |j	                  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)Úbackend_indexÚper_operator_headersÚrocmÚheaderss       úb/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torchgen/dest/register_dispatch_key.pyÚgen_registration_headersr2   /   s  € ñ
 Ø<Ð=‰à6Ð7ˆà×!Ñ!¤k§o¡o´{×7GÑ7GÐ%HÑHØ�‰Ð6Õ7Ø	×	#Ñ	#¤{×'7Ñ'7Ò	7ÙØ�N‰NÐ>Õ?à�N‰NÐ?Õ@Ø	×	#Ñ	#¤{§¡Ò	6Ø�‰Ð:Õ;Ø	×	#Ñ	#¤{§¡Ò	6à�‰Ð:Õ;Ø	×	#Ñ	#¤{×'7Ñ'7Ò	7Ø�‰ÐBÕCÙ	Øò 
ñ 	
‰ð 	�‰Ð4Ô5à‡N�NÐ3Ô4Ø€Nó    c                óà  — d }d }| j                   t        j                  t        j                  t        j                  t        j
                  t        j                  t        j                  fv r1t        | j                   «      j                  «       }d|› �}d|› �}||fS | j                   t        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)   r*   r+   r,   ÚstrÚlowerÚ&CompositeExplicitAutogradNonFunctionalÚQuantizedCPUÚQuantizedCUDA)r-   Ú
empty_implÚempty_strided_implÚdispatchs       r1   Úgen_empty_impl_namesr=   U   sä   € ð €JØÐà×!Ñ!Ü×ÑÜ�‰Ü×ÑÜ�‰Ü�‰Ü×Ñð&ñ ô �}×1Ñ1Ó2×8Ñ8Ó:ˆØ)¨(¨Ð4ˆ
Ø9¸(¸ÐDÐð Ð)Ð)Ð)ð 
×	#Ñ	#Ü×:Ñ:Ü× Ñ Ü×!Ñ!Ü�‰ð	(ñ 
ð !ˆ
Ø0ÐàÐ)Ð)Ð)r3   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'   r=   )r-   Úempty_optionsr:   r;   s       r1   Úgen_create_out_helperrA   r   st   € Ø×!Ñ!¤[×%5Ñ%5Ò5Ø3‰à!ˆä%9¸-Ó%HÑ"€JÐ"ØÐØˆ	ðð ˆ\˜ - ð 1à Ð!Ð!2°=°/ð Bð	ð
ð 
r3   c                ó4   — t        | «      \  }}|€g S 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;
}
)r=   )r-   Ú_r;   s      r1   Úgen_maybe_create_proxy_helperrD   ‰   sE   € Ü0°Ó?Ñ€AÐð Ð%ð 	ððð Ðð  ðð	
ðr3   c                óF   — | 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   r7   ©r-   s    r1   Úgen_resize_out_helperrG   ›   s,   € Ø×!Ñ!¤[×%WÑ%WÒWð ˆ	ð	ðð r3   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");
}
© rF   s    r1   Úgen_check_inplace_helperrJ   ¹   s   € ð	ðð r3   c                ód   — dgt        | «      ¢t        | «      ¢t        | «      ¢t        | «      ¢d‘S )Nz?C10_DIAGNOSTIC_PUSH_AND_IGNORED_IF_DEFINED("-Wunused-function")zC10_DIAGNOSTIC_POP())rA   rG   rJ   rD   rF   s    r1   Úgen_registration_helpersrL   Ð   sS   € àIðä	˜}Ó	-ðô 
˜}Ó	-ðô 
" -Ó	0ð	ô
 
' }Ó	5ðð 	ðð r3   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y)ÚRegisterDispatchKeyr   r-   zvLiteral[Target.ANONYMOUS_DEFINITION, Target.NAMESPACED_DEFINITION, Target.NAMESPACED_DECLARATION, Target.REGISTRATION]Útargetr#   ÚselectorÚboolr/   Úsymintú
str | NoneÚclass_method_nameÚskip_dispatcher_op_registrationc           	     óÆ   — | t         j                  k(  ryd}|dz  }|D ]@  }|j                  j                  «       sŒ|d|j                  › d|› d|j                  › d�z  }ŒB |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   ÚNoCheckÚtypeÚis_tensor_likeÚname)rZ   ÚargsÚmethod_nameÚdevice_checkÚargs        r1   Úgen_device_checkz$RegisterDispatchKey.gen_device_check  s…   € ð ”?×*Ñ*Ò*Ø+àNˆØÐTÑTˆØò 	jˆCà�x‰x×&Ñ&Õ(Øð %<Ø<?¿H¹H¸:ÀSÈÈÐUYÐZ]×ZbÑZbÐYcÐcfð!jñ j‘ð	jð
 Ðr3   c                ó  ‡ ‡— t        |t        «      rF|Š‰j                  r‰ j                  ‰«      S t	        t        ˆˆ fd„‰j                  «       «      «      S t        |t        «      r‰ j                  |«      }|€g S |gS t        |«       y )Nc                ó(   •— ‰j                  | ‰«      S ©N©Úgen_unstructured©ÚfÚgÚselfs    €€r1   ú<lambda>z.RegisterDispatchKey.__call__.<locals>.<lambda>*  s   ø€  t×'<Ñ'<¸QÀÓ'B€ r3   )
Ú
isinstancer   Ú
structuredÚgen_structuredÚlistr!   Ú	functionsr   rf   r   )rj   rh   Úrri   s   `  @r1   Ú__call__zRegisterDispatchKey.__call__   s   ù€ ä�aÔ-Ô.Ø&'ˆAð �|Š|Ø×*Ñ*¨1Ó-Ð-äÜÔBÀAÇKÁKÃMÓRóð ô ˜œ>Ô*Ø×%Ñ% aÓ(ˆAØ˜�2Ð+¨¨Ð+ä˜�Or3   c                óÌ   — t        j                  |j                  d| j                  j                  › d|j                  j
                  j                  › d�| j                  ¬«      S )NÚwrapper_rC   ©ÚprefixrS   )r   Úfrom_schemaÚfuncr-   r%   r\   Úoverload_namerS   )rj   rh   s     r1   Úwrapper_kernel_sigz&RegisterDispatchKey.wrapper_kernel_sig2  sT   € ô #×.Ñ.Ø�F‰FØ˜d×0Ñ0×=Ñ=Ð>¸aÀÇÁÇÁ×@YÑ@YÐ?ZÐZ[Ð\Ø—;‘;ô
ð 	
r3   c                óþ  ‡‡— |€y |j                   j                  «       }|t        j                  u rdŠn |t        j                  u rdŠnt        d«      ‚| j                  |«      }|j                  «       }|› d�Št        j                  |«      }t        |«      dkD  rXdj                  ˆˆfd„t        |«      D «       «      }|j                  «       j                  «       › dd	j                  |«      › d
�}nðt        |«      dk(  r|d   }	‰› d‰› d	|	› d�}|	}nÏt        |j                   j                  j                  «      dk7  r5t        dt        |j                   j                  j                  «      › �«      ‚d}|j                   j                  j                  d   }
|
j                   j#                  «       rd‰› d‰› d‰› d|
j                  › d�	}n‰› d‰› d	|
j                  › d�}| j                  |j$                  «      }|j                  «       }|j'                  |¬«      › d‰› d|j                  «       › dd	j                  d„ t)        |j                  «       |j                  «       «      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�–— Œ y­w)z
(std::get<z>(z), ú);NrI   )Ú.0ÚiÚret_nameÚcopy_opÚfunc_ress      €€r1   ú	<genexpr>z>RegisterDispatchKey.gen_out_inplace_wrapper.<locals>.<genexpr>O  s6   øè ø€ ò "á�A�xð �)˜: a S¨¨8¨*°C¸°zÀÔDñ"ùs   ƒú(ú, ú)r   r   z%Expected exactly 1 out argument, got Ú z    for (int64_t i = 0; i < z.size(); ++i) {
        z[i], z[i]);
    }©r\   z
 {
  auto z = c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrd   ©Úexpr©r€   Úes     r1   r…   z>RegisterDispatchKey.gen_out_inplace_wrapper.<locals>.<genexpr>l  s   è ø€ Ò6~À!°q·vµvÑ6~ùó   ‚z);
  ú

  return ú;
}
)rx   Úkindr   ÚinplaceÚoutÚAssertionErrorrz   r\   ÚcppÚreturn_namesÚlenÚjoinÚ	enumerateÚreturns_typeÚcpp_typeÚ	argumentsrZ   Úis_list_likeÚ
functionalÚdefnr   )rj   rh   ri   ÚkÚsigr\   r˜   ÚupdatesÚreturnsr‚   Úout_argÚfunctional_sigÚwrapper_namerƒ   r„   s                @@r1   Úgen_out_inplace_wrapperz+RegisterDispatchKey.gen_out_inplace_wrapper<  s~  ù€ ð ˆ9ØØ�F‰F�K‰K‹MˆØ”
×"Ñ"Ñ"Ø&‰GØ”*—.‘.Ñ Ø1‰Gä Ð!TÓUÐUà×%Ñ% aÓ(ˆØ�x‰x‹zˆà�V˜4�=ˆÜ×'Ñ'¨Ó*ˆÜˆ|Ó˜qÒ Ø—k‘kô "ä#,¨\Ó#:ô"ó ˆGð ×)Ñ)Ó+×4Ñ4Ó6Ð7°q¸¿¹À<Ó9PÐ8QÐQRÐS‰GÜ�Ó !Ò#Ø# A‘ˆHØ ˜	  8 *¨B¨x¨j¸Ð;ˆGØ‰Gä�1—6‘6×#Ñ#×'Ñ'Ó(¨AÒ-Ü$Ø;¼CÀÇÁ×@PÑ@P×@TÑ@TÓ<UÐ;VÐWóð ð ˆGØ—f‘f×&Ñ&×*Ñ*¨1Ñ-ˆGØ�|‰|×(Ñ(Ô*ðØ%˜Jð '	Ø	ˆ	��8�*˜E '§,¡, ð 0ð
‘ð
 %˜I Q x j°°7·<±<°.ÀÐC�à×0Ñ0°·±Ó>ˆØ—x‘x“zˆð ‡�ˆ|€ÓÐ ð Ø€z��^×(Ñ(Ó*Ð+¨1¨T¯Y©YÑ6~ÄyÐQT×Q^ÑQ^ÓQ`Ðbp×bzÑbzÓb|ÓG}Ô6~Ó-~Ð,ð @Ø
€)ð 
Ø
ˆð ð	ð 	r3   c           
     ó  ‡ ‡— ‰ j                   j                  ‰«      }‰ j                   j                  t        j                  k(  r0‰ j                   j                  ‰j                  «      r—t        d«      ‚‰ j                   j                  t        j                  k(  r0‰ j                   j                  ‰j                  «      r@t        d«      ‚|�|j                  s't        t        ˆˆ fd„‰j                  «       «      «      S t        ‰ j                   ‰ j                  ‰ j                  ‰ j                   ‰ j"                  ‰ j$                  ‰ j&                  ‰«      }t        t        |j(                  ‰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                ó(   •— ‰j                  | ‰«      S rd   re   rg   s    €€r1   rk   z4RegisterDispatchKey.gen_structured.<locals>.<lambda>„  s   ø€ ¨4×+@Ñ+@ÀÀAÓ+F€ r3   )r-   Ú
get_kernelr%   r   r'   Ú
has_kernelr•   r–   r7   rm   ro   r!   rp   ÚStructuredRegisterDispatchKeyrP   rQ   r/   rS   rU   rV   Úgen_one)rj   ri   ÚmetadataÚstructured_gens   ``  r1   rn   z"RegisterDispatchKey.gen_structuredr  s8  ù€ Ø×%Ñ%×0Ñ0°Ó3ˆØ×Ñ×*Ñ*¬k×.>Ñ.>Ò>Ø×!Ñ!×,Ñ,¨Q¯U©UÔ3Ü$ðNóð ð
 ×Ñ×+Ñ+Ü×AÑAòBð ×!Ñ!×,Ñ,¨Q¯U©UÔ3Ü$ðYóð ð Ð X×%8Ò%8ÜœÔ!FÈÏÉËÓVÓWÐWÜ6Ø×ÑØ�K‰KØ�M‰MØ�I‰IØ�K‰KØ×"Ñ"Ø×0Ñ0Øó	
ˆô ”H˜^×3Ñ3°Q·[±[³]ÓCÓDÐDr3   Nc                ó  ‡— t        |«      5  d}d}| j                  j                  |«      s¾| j                  j                  t        j
                  k(  r[|j                  j                  «       t        j                  u r1|j                  s%t        |j                  j                  «      dk(  rd}n<| j                  j                  s|�t        ||| j                  «      rd}n
	 d d d «       y |j                  r
	 d d d «       y | j                   t"        j$                  u r%| j&                  j)                  |«      s
	 d d d «       y | j+                  |«      Š‰j-                  «       }‰j/                  «       j1                  «       }‰j3                  «       }dj5                  d„ |D «       «      }t7        j8                  |dd¬«      }	| j                   t"        j:                  u rEd}
|	j=                  | j>                  ¬«      D ]  }|
d	|jA                  «       › d
�z  }
Œ |
cd d d «       S | j                   t"        jB                  u r?d(ˆfd„}d}
|	j=                  | j>                  ¬«      D ]  }|
 ||«      z  }
Œ |
cd d d «       S | j                   t"        jD                  u �rU|rz|j                  j2                  jF                  €tI        d«      ‚|j                  j2                  jF                  jJ                  j,                  }d|› d|› d|› d|› d|› d�cd d d «       S |r| jM                  ||«      cd d d «       S | j                  jO                  |«      }|€
	 d d d «       y | jP                  €|jR                  › d|jT                  › �}n(|jR                  › d| jP                  › d|jT                  › �}tW        || j                  «      }dj5                  d„ tY        ‰j3                  «       |j3                  «       d¬«      D «       «      }d}| j                  jZ                  r|t]        j^                  |j                  j2                  j`                  |j                  j2                  jb                  «      }td        jg                  |jh                  tk        |«      |«      }d}|jZ                  �r+| j                  jZ                  �rtm        d„ |j                  j2                  jn                  D «       «      }|r'd}tq        | j                  j                  «      rÁd|› �}n»|j                  j2                  jF                  �+|j                  j2                  jF                  jJ                  gng }t]        j^                  ||j                  j2                  j`                  |j                  j2                  jb                  «      }ts        d„ |D «       d «      }|�d|› d�}d|› d|› d|› d|› d |› d!|› d|› d"�cd d d «       S | j                   t"        j$                  u rN|j                  s| jt                  r
	 d d d «       y d#|› d$�}d%|j                  j,                  › d&|› d'�cd d d «       S tw        | j                   «       	 d d d «       y # 1 sw Y   y xY w))NFr}   Tr‡   c              3  ó<   K  — | ]  }|j                  «       –— Œ y ­wrd   )r¡   ©r€   Úas     r1   r…   z7RegisterDispatchKey.gen_unstructured.<locals>.<genexpr>º  s   è ø€ Ò 8¨a §¡§Ñ 8ùó   ‚©ÚmethodÚfallback_bindingr‰   ©rS   ú
TORCH_API ú;
c                óÌ   •— d| j                  «       › d‰j                  «       › ddj                  d„ t        | j	                  «       ‰j	                  «       «      D «       «      › d�S )Nú
ú
 {
return r†   r‡   c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrd   rŒ   rŽ   s     r1   r…   zNRegisterDispatchKey.gen_unstructured.<locals>.generate_defn.<locals>.<genexpr>Ì  ó   è ø€ Ò_¨!˜qŸv�vÑ_ùr�   ú);
}
©r¡   r\   rš   r   rž   ©Úcpp_sigr£   s    €r1   Úgenerate_defnz;RegisterDispatchKey.gen_unstructured.<locals>.generate_defnÉ  s`   ø€ ð Ø‡�ƒÐ ð Ø�‰‹
€|�1�T—Y‘YÑ_¬y¸×9JÑ9JÓ9LÈcÏmÉmËoÓ/^Ô_Ó_Ð`ð aðð r3   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  ó4   K  — | ]  }|j                   –— Œ y ­wrd   rŒ   rŽ   s     r1   r…   z7RegisterDispatchKey.gen_unstructured.<locals>.<genexpr>ô  s   è ø€ ò +àð —F•Fñ+ùr�   ©r¸   rX   z// DeviceGuard omittedc              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wrd   )rl   r    r´   s     r1   r…   z7RegisterDispatchKey.gen_unstructured.<locals>.<genexpr>  s    è ø€ ò -àô # 1Ô&<×=ñ-ùr¶   z=
  const DeviceGuard device_guard(device_or_default(device));z7globalContext().lazyInitDevice(c10::DeviceType::CUDA);
c              3  ój   K  — | ]+  }|j                   j                  «       r|j                  › –— Œ- y ­wrd   )rZ   r[   r\   r´   s     r1   r…   z7RegisterDispatchKey.gen_unstructured.<locals>.<genexpr>%  s0   è ø€ ò à$%Ø#$§6¡6×#8Ñ#8Ô#:ð $%§6¡6 (£ñùs   ‚13z1const OptionalDeviceGuard device_guard(device_of(ú));znamespace {

z) {
  z

  r‘   z);
}

} // anonymous namespace
z	TORCH_FN(rˆ   úm.impl("z",
z);
©rÅ   r   Úreturnr5   )<r   r-   r­   r%   r   r'   rx   r“   r   r”   Úhas_composite_kernelr™   r¥   Úuse_out_as_primaryr   Úmanual_kernel_registrationrP   r"   ÚREGISTRATIONrQ   Úis_native_function_selectedrz   r\   rœ   r�   rž   rš   r   Úfrom_native_functionÚNAMESPACED_DECLARATIONÚ
signaturesrS   ÚdeclÚNAMESPACED_DEFINITIONÚANONYMOUS_DEFINITIONÚself_argr–   Úargumentr©   r¬   rU   Úcpp_namespaceÚkernelr   r   Údevice_guardÚ	itertoolsÚchainr•   Úflat_positionalrO   ra   r_   ro   ÚanyÚnon_outr   ÚnextrV   r   )rj   rh   ri   Úinplace_metaÚgets_out_inplace_wrapperr\   rœ   r]   Úargs_strÚcpp_sig_groupÚresultrÅ   rÆ   Úself_arg_namer°   Ú	impl_nameÚ
kernel_sigÚargs_exprs_strr_   Údevice_check_argsrß   Úhas_tensor_optionsrÛ   Úcandidate_argsÚ	device_ofÚpayloadr£   s                             @r1   rf   z$RegisterDispatchKey.gen_unstructured‘  sR  ø€ ô % QÓ'ñ o	*Ø ˆLØ',Ð$Ø×%Ñ%×0Ñ0°Ô3à×&Ñ&×3Ñ3´{×7GÑ7GÒGØŸ™Ÿ™›¬×);Ñ);Ñ;ð ×.Ò.ô ˜Ÿ™Ÿ™Ó'¨1Ò,à#'‘Là×*Ñ*×=Ò=Ø˜Ü:¸1¸aÀ×ASÑASÔTð 04Ñ,à÷/o	*ð o	*ð0 ×+Ò+Ø÷3o	*ð o	*ð8 —‘œv×2Ñ2Ñ2ØŸ™×AÑAÀ!ÔDà÷?o	*ð o	*ðB ×)Ñ)¨!Ó,ˆCà—8‘8“:ˆDØ×+Ñ+Ó-×6Ñ6Ó8ˆLØ—=‘=“?ˆDØ—y‘yÑ 8°4Ô 8Ó8ˆHô .×BÑBØ˜%°%ôˆMð
 �{‰{œf×;Ñ;Ñ;Ø�Ø,×7Ñ7¸t¿{¹{Ð7ÓKò ?�GØ 
¨7¯<©<«>Ð*:¸#Ð>Ñ>‘Fð?à÷eo	*ñ o	*ðf —‘¤× <Ñ <Ñ<õð �Ø,×7Ñ7¸t¿{¹{Ð7ÓKò 5�GØ™m¨GÓ4Ñ4‘Fð5à÷o	*ñ o	*ðB —‘¤× ;Ñ ;Ò;áØ—v‘v×'Ñ'×0Ñ0Ð8Ü,ØOóð ð %&§F¡F×$4Ñ$4×$=Ñ$=×$FÑ$F×$KÑ$K�Mð Ø€ˆa�ˆv�Q�x�jð !Ø,˜oð .
à
ˆð ð	÷Uo	*ñ o	*ñf ,Ø×7Ñ7¸¸1Ó=÷io	*ñ o	*ðl  ×-Ñ-×8Ñ8¸Ó;�ØÐ#Ø÷qo	*ð o	*ðr ×)Ñ)Ð1Ø#+×#9Ñ#9Ð":¸"¸X¿_¹_Ð<MÐ N‘Ià#+×#9Ñ#9Ð":¸"¸T×=SÑ=SÐ<TÐTVÐW_×WfÑWfÐVgÐ h�Iä-¨a°×1CÑ1CÓD�
à!%§¡ñ +ä&ØŸ™›¨×)=Ñ)=Ó)?Èôô+ó "�ð  8�à×%Ñ%×2Ò2Ü(1¯©ØŸ™×(Ñ(×,Ñ,¨a¯f©f×.>Ñ.>×.NÑ.Nó)Ð%ô $7×#GÑ#GØŸ™¬Ð->Ó(?Àó$�Lð  8�Ø—>“> d×&8Ñ&8×&EÓ&EÜ),ñ -à!"§¡×!1Ñ!1×!9Ñ!9ô-ó *Ð&ñ *ð(@˜ô 0°×0BÑ0B×0OÑ0OÔPØ-eÐfrÐesÐ+t™Lð  !Ÿv™v×/Ñ/×8Ñ8ÐDð ŸV™V×-Ñ-×6Ñ6×?Ñ?Ñ@à!#ð !ô
 *3¯©Ø$ØŸF™F×,Ñ,×0Ñ0ØŸF™F×,Ñ,×<Ñ<ó*˜ô %)ñà)7ôð
 !ó%˜	ð %Ð0Ø-^Ð_hÐ^iÐilÐ+m˜Lðð €ˆa�ˆv�Q�x�jð !Ø€.ð à€.ð 
Ø
ˆ�A�nÐ%ð &ð÷wo	*ñ o	*ðP —‘¤× 3Ñ 3Ñ3Ø×/Ò/°4×3WÒ3WØ÷Uo	*ð o	*ðX !*¨$¨¨qÐ1�GØ% a§f¡f§k¡k ]°$°w°i¸tÐD÷[o	*ñ o	*ô^ ˜TŸ[™[Õ)÷_o	*÷ o	*ñ o	*úsR   �CY8Ã+Y8Ä8Y8ÅCY8È"AY8É=BY8ÌY8Ì3Y8ÍJY8×/5Y8Ø-"Y8ÙY8Ù8Z)rZ   r   r]   zlist[Argument]r^   r5   rÏ   r5   )rh   z%NativeFunctionsGroup | NativeFunctionrÏ   ú	list[str])rh   r   rÏ   z%NativeSignature | DispatcherSignature)rh   r   ri   zNativeFunctionsGroup | NonerÏ   rT   )ri   r   rÏ   rô   rd   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__Ústaticmethodra   r   rr   rz   r©   rn   rf   rI   r3   r1   rO   rO   í   sà   … àÓðó ð Óð ƒJð
 ƒLð "Ó!ð &*Ó)àðØðØ%3ðØBEðà	òó ðð !òó !ðð"
Øð
à	.ó
ð4Øð4Ø$?ð4à	ó4ólEð@ CGðr*Øðr*Ø$?ðr*à	ôr*r3   rO   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	y)r®   r   ri   c                ó^   ‡ ‡‡— |r|› d�ŠndŠd
ˆˆ ˆfd„}d |dd¬«      › d |dd	¬«      › d�S )NzE::set_output_raw_strided(output_idx, sizes, strides, options, names);r‰   c           	     óŒ   •— d| › dt        j                  ‰j                  ‰|«      d«      › dt        j                  ‰d«      › d�S )Nz
void set_output_z|(
    int64_t output_idx, IntArrayRef sizes, IntArrayRef strides,
    TensorOptions options, DimnameList names
) override {
ú    zÏ
    if (!names.empty()) {
      namedinference::propagate_names(outputs_[output_idx], names);
    }
    // super must happen after, so that downstream can use maybe_get_output
    // to retrieve the output
ú
}
)ÚtextwrapÚindentÚgen_class_set_output_body)r\   Úmaybe_create_proxyr¢   rj   Úset_output_supers     €€€r1   Úgen_set_output_functionz]StructuredRegisterDispatchKey.gen_class_set_output_functions.<locals>.gen_set_output_functionY  s\   ø€ ðØ�ð ô 
‡��×/Ñ/°Ð3EÓFÈÓOÐ Pð Qô 
‡�Ð! 6Ó*Ð +ð ,ðð r3   r¾   ÚstridedT)r  Úraw_stridedF)r\   r5   r  rR   rÏ   r5   rI   )rj   r¢   Úparent_classÚgenerate_superr  r  s   ``   @r1   Úgen_class_set_output_functionsz<StructuredRegisterDispatchKey.gen_class_set_output_functionsQ  sU   ú€ ñ Ø". Ð/tÐuÑà!Ð÷	ð Ù˜°tÔ<Ð =ð >Ù˜¸5ÔAÐ Bð Cðð 	r3   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#        |«       y )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)   r*   r+   r7   r   r    r'   r&   r,   r–   r”   r•   ÚmutableÚscratchr   )rj   r¢   r  Úmaybe_set_guardÚmaybe_set_guard_lineÚcreate_proxys         r1   r  z7StructuredRegisterDispatchKey.gen_class_set_output_bodyn  s¢  € Ø×Ñ×*Ñ*Ü×ÑÜ�O‰OÜ�O‰OÜ×>Ñ>ð	/
ñ 
ðˆOð $3°TÑ#9Ñ à57Ð7Ð  ?áð‰Lð ˆLà”
×%Ñ%Ñ%Ø×!Ñ!×.Ñ.Ü× Ñ Ü—‘Ü× Ñ Ü—‘Ü—‘Ü× Ñ Ü×BÑBð7ñ ô %Ø.¨t×/AÑ/A×/NÑ/NÐ.Oð P,ð ,óð ð -Ð-ð .<ð ?ð ?à”*×$Ñ$Ñ$Ø,Ð-ð .ð €ðð ð ”*—.‘.Ñ Ø,Ð-ð .ð €ðð ð ”*×$Ñ$Ñ$¨¬Z×-?Ñ-?Ñ(?Ü Ø�#ÐFÐGóð ô ˜�Or3   c                ó�  — |t         j                  u ry|t         j                  u r|› d�S |t         j                  u rMdj	                  d„ t        |«      D «       «      }dj	                  d„ t        |«      D «       «      }|› d|› d|› d�S |t         j                  u s|t         j                  u rt        |› d	�«      ‚t        |«       y )
Nr‰   z,(Tensor& self) : outputs_{std::ref(self)} {}r‡   c              3  ó&   K  — | ]	  }d |› �–— Œ y­w)zTensor& outNrI   ©r€   r�   s     r1   r…   z?StructuredRegisterDispatchKey.gen_class_ctor.<locals>.<genexpr>¶  s   è ø€ Ò K°q ;¨q¨cÔ!2Ñ Kùs   ‚c              3  ó(   K  — | ]
  }d |› d�–— Œ y­w)zstd::ref(outrˆ   NrI   r  s     r1   r…   z?StructuredRegisterDispatchKey.gen_class_ctor.<locals>.<genexpr>·  s   è ø€ Ò M¸ <°¨s°!Ô!4Ñ Mùó   ‚r†   z) : outputs_{ z } {}r  )
r   r    r”   r•   rš   Úranger  r  r–   r   )rj   r¢   Ú
class_namer¥   Úout_argsÚout_refss         r1   Úgen_class_ctorz,StructuredRegisterDispatchKey.gen_class_ctor¯  sÀ   € Ø”
×%Ñ%Ñ%ØØ”*×$Ñ$Ñ$à �\Ð!QÐRÐRØ”*—.‘.Ñ Ø—y‘yÑ K¼EÀ'»NÔ KÓKˆHØ—y‘yÑ M¼eÀG»nÔ MÓMˆHØ �\  8 *¨O¸H¸:ÀXÐNÐNØ”*×$Ñ$Ñ$¨¬Z×-?Ñ-?Ñ(?Ü Ø�#ÐFÐGóð ô ˜�Or3   c               ó´  — |t         j                  u rd}d}d}n‚|t         j                  u r(d}d}dt        |j                  j
                  «      › d�}nH|t         j                  u r(d}d}dt        |j                  j
                  «      › d�}nt        d|› �«      ‚| j                  j                  t        j                  k(  rd	}	nª| j                  j                  t        j                  k(  rd
}	n€| j                  j                  t        j                  k(  rd
}	nV| j                  j                  t        j                  k(  rd
}	n,| j                  j                  t        j                  k(  rd
}	nd}	d}
| j!                  ||t        |j                  j
                  «      «      }d|› d|› d�t#        j$                  ||
«      › t#        j$                  | j'                  |||«      |
«      › dd|› d�dd|› dt        |j                  j
                  «      › d�t#        j$                  ||
«      › t#        j$                  |	|
«      › df
}dj)                  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  — | ]	  }|sŒ|–— Œ y ­wrd   rI   )r€   Úlines     r1   r…   z:StructuredRegisterDispatchKey.gen_class.<locals>.<genexpr>ø  s   è ø€ Ò8 $²4œÑ8ùs   ‚Š)r   r    r”   r™   rx   r¥   r•   ÚRuntimeErrorr-   r%   r   r)   r7   r*   r+   r,   r  rÿ   r   r	  rš   )rj   rh   r¢   r  r  r  Úoutput_typeÚoutput_valueÚproxy_fieldÚguard_fieldr   Úclass_ctor_strÚliness                r1   Ú	gen_classz'StructuredRegisterDispatchKey.gen_classÀ  s  € ð ”
×%Ñ%Ñ%Ø"ˆKØ1ˆLØ‰KØ”*×$Ñ$Ñ$Ø:ˆKØ~ˆLØ@ÄÀQÇVÁVÇ^Á^ÓATÐ@UÐUfÐg‰KØ”*—.‘.Ñ Ø:ˆKØ~ˆLØ@ÄÀQÇVÁVÇ^Á^ÓATÐ@UÐUfÐg‰KäÐ!8¸¸Ð<Ó=Ð=à×Ñ×*Ñ*¬k×.>Ñ.>Ò>Ø@‰Kà×Ñ×+Ñ+Ü×AÑAòBð =‰KØ×Ñ×,Ñ,´·±Ò?à<‰KØ×Ñ×,Ñ,´·±Ò?Ø<‰KØ×Ñ×,Ñ,´×0@Ñ0@Ò@Ø<‰KàˆKàˆØ×,Ñ,¨Q°
¼CÀÇÁÇÁÓ<OÓPˆà�j�\Ð!1°,°¸sÐCÜ�‰˜~¨vÓ6Ð7Ü�‰˜t×BÑBÀ1ÀlÐTbÓcÐekÓlÐmØOØ˜L˜>¨Ð-Øà˜k˜]¨"¬S°·±·±Ó-@Ð,AÀÐMÜ�‰˜{¨FÓ3Ð4Ü�‰˜{¨FÓ3Ð4Øð
ˆð �y‰yÑ8¨%Ô8Ó8Ð8r3   c                ó¢  ‡— |j                   r#t        d|j                  j                  › d�«      ‚| j                  t
        j                  u r| j                  j                  |«      sy | j                  j                  t        j                  k(  r+|j                  j                  «       t        j                  u ry t!        j"                  |dd¬«      }| j                  j%                  |«      }t'        |j                  d| j                  j                  › d�|d uxr |j)                  «       ¬«      Š| j                  t
        j*                  u r<d}|j-                  | j.                  ¬	«      D ]  }|d
|j1                  «       › d�z  }Œ |S | j                  t
        j2                  u r6d@ˆfd„}d}|j-                  | j.                  ¬	«      D ]  }| ||«      z  }Œ |S | j                  t
        j4                  u �r{|j                  j                  «       }g }t7        ‰j9                  «       «      }	| j                  j                  t        j:                  u rSdt=        j                  | j>                  «      › d|j                  › �}
dt=        j                  | j>                  «      › �}�n| j                  j                  t        j                  u rRdt=        j                  | j>                  «      › d|j                  › �}
dt=        j                  | j>                  «      › �}n”| j                  j%                  | j>                  «      }|€6t        d| j>                  j@                  j                  j                  › �«      ‚d|jB                  › d|j                  › �}
|jD                  › d|jB                  › �}| j                  jF                  r™tI        jJ                  |j                  j8                  j                  |j                  j8                  jL                  «      }|jO                  tP        jS                  |jT                  t7        |«      ‰j                  «       «      «       |t        j@                  u r|jO                  |
› d�«       n†|t        jV                  u r|jO                  |
› d�«       n_|t        j                  u rMdjY                  d„ |j                  j8                  j                  D «       «      }|jO                  |
› d|› d�«       djY                  d„ t[        |	t]        j^                  | j>                  «      d¬«      D «       «      }| j>                  j                  j`                  rª|jO                  d|› d�«       g | j>                  j                  j`                  jb                  je                  «       ¢| j>                  j                  j`                  jf                  ‘}|D ]  }|	ji                  d„ |D «       «       Œ |jO                  d«       n|jO                  d|› d�«       t]        jj                  | j>                  «      }tm        |«      D ]Å  \  }}to        tq        tr        «      «      |jt                  jv                  k7  r"t        d|jt                  jv                  › �«      ‚|t        j                  u rd |› d!�}nd"|› d#�}|	jO                  ty        |t{        |jt                  j                  t}        tq        tr        «      «      «      ¬$«      «       ŒÇ | j                  j                  t        j                  k(  r¡t!        j"                  | j>                  j                  d|j~                  ¬«      }|j�                  «       }|j                  «       }djY                  d%„ t[        |	|j9                  «       d¬«      D «       «      }|jO                  d&|› d'|› d�«       n}| j                  j                  t        j:                  k7  rVdjY                  d(„ t[        |	t]        j‚                  | j>                  «      d¬«      D «       «      }|jO                  d)|› d�«       |t        j                  u s|t        jV                  u rHt…        t‡        |j                  jˆ                  «      «      D ]  }|jO                  d*|› d+|› d,|› d-�«       Œ |t        j@                  u rjt‡        |j                  jˆ                  «      d.k(  rd/}nødjY                  d0„ t…        t‡        |j                  jˆ                  «      «      D «       «      }d1|› d!�}n³|t        jV                  u rd2}nž|t        j                  u rŒt‡        |j                  jˆ                  «      d.k(  r.|j                  j8                  j                  d3   j                  }n<djY                  d4„ |j                  j8                  j                  D «       «      }d5|› d!�}|jO                  d6› d7�«       d8jY                  |«      }| j‹                  |||
|| j>                  j                  jŒ                  d u¬9«      › d:‰j�                  «       › d;|› d<�S | j                  t
        j                  u r+d=|j                  j                  › d>‰j                  «       › d?�S t‘        | j                  «       y )ANz	Function z$ has manual_kernel_registration=TrueFr·   rt   rC   ru   r‰   rº   r»   r¼   c                óÌ   •— d| j                  «       › d‰j                  «       › ddj                  d„ t        | j	                  «       ‰j	                  «       «      D «       «      › d�S )Nr¾   r¿   r†   r‡   c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrd   rŒ   rŽ   s     r1   r…   zOStructuredRegisterDispatchKey.gen_one.<locals>.generate_defn.<locals>.<genexpr>8  rÁ   r�   rÂ   rÃ   rÄ   s    €r1   rÆ   z<StructuredRegisterDispatchKey.gen_one.<locals>.generate_defn5  s`   ø€ ðØ‡�ƒÐ ð Ø�‰‹
€|�1�T—Y‘YÑ_¬y¸×9JÑ9JÓ9LÈcÏmÉmËoÓ/^Ô_Ó_Ð`ð aðð r3   Ústructured_Ú_meta_zat::meta::structured_Ú_default_backend_zNo kernel metadata found for z::structured_z op;z
 op(self);r‡   c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrd   rŠ   r´   s     r1   r…   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>n  s   è ø€ Ò(N°A¨¯­Ñ(Nùr�   z op(r   c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrd   rŒ   rŽ   s     r1   r…   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>s  s   è ø€ ò #àð —•ñ#ùr�   rÉ   zauto precompute = op.meta(c              3  óŽ   K  — | ]=  }t        d |j                  › �t        j                  ||j                  ¬«      ¬«      –— Œ? y­w)zprecompute.)Úbinds©r�   rZ   N)r   r\   rm   Úargument_type)r€   r`   s     r1   r…   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>ˆ  sF   è ø€ ò #ð
  ô	 Ø#.¨s¯x©x¨jÐ!9Ü!+×!9Ñ!9¸#ÀSÇXÁXÔ!N÷ð ñ#ùs   ‚AA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_[ú]r1  c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrd   rŒ   rŽ   s     r1   r…   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>½  s   è ø€ ò &àð —F•Fñ&ùr�   zat::r†   c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrd   rŒ   rŽ   s     r1   r…   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>Í  s   è ø€ ò 'àð —F•Fñ'ùr�   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�–— Œ y­w)zstd::move(op.outputs_[z])NrI   r  s     r1   r…   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>ã  s!   è ø€ ò &àð 1°°°2Ô6ñ&ùr  zstd::make_tuple(rj   r   c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrd   rŠ   r´   s     r1   r…   z8StructuredRegisterDispatchKey.gen_one.<locals>.<genexpr>î  s   è ø€ Ò$J° Q§V¥VÑ$Jùr�   zstd::forward_as_tuple(zreturn ú;r¾   )r  r  r  z

z {
rþ   rÍ   z", TORCH_FN(rÌ   rÎ   )IrÒ   r–   rx   r\   rP   r"   rÓ   rQ   rÔ   r-   r%   r   r7   r“   r   r•   r   rÕ   r¬   r   Úsupports_symintrÖ   r×   rS   rØ   rÙ   rÚ   ro   rž   r'   Úmetari   r    rÞ   rÝ   rß   rà   rá   râ   r(   rO   ra   r_   r”   rš   r   rm   Ú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   ) rj   rh   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                                   @r1   r¯   z%StructuredRegisterDispatchKey.gen_oneú  s/	  ø€ à×'Ò'Ü Ø˜AŸF™FŸK™K˜=Ð(LÐMóð ð
 �K‰Kœ6×.Ñ.Ñ.Ø—M‘M×=Ñ=¸aÔ@àð ×Ñ×+Ñ+Ü×AÑAòBà—‘—‘“¤§¡Ñ/ð ô *×>Ñ>Ø�e¨eô
ˆð
 ×!Ñ!×,Ñ,¨QÓ/ˆÜØ�F‰FØ˜d×0Ñ0×=Ñ=Ð>¸aÐ@Ø˜tÐ#Ò>¨×(<Ñ(<Ó(>ô
ˆð �;‰;œ&×7Ñ7Ñ7ØˆFØ(×3Ñ3¸4¿;¹;Ð3ÓGò ;�Ø˜J w§|¡|£~Ð&6°cÐ:Ñ:‘ð;àˆMà�[‰[œF×8Ñ8Ñ8õð ˆFØ(×3Ñ3¸4¿;¹;Ð3ÓGò 1�Ø™-¨Ó0Ñ0‘ð1àˆMà�[‰[œF×7Ñ7Ò7Ø—‘—‘“ˆAð ˆHô -1°·±³Ó,AˆGð ×!Ñ!×.Ñ.´+×2BÑ2BÑBØ*¬4¯9©9°T·V±VÓ+<Ð*=¸VÀAÇFÁFÀ8ÐL�
Ø!6´t·y±yÀÇÁÓ7HÐ6IÐJ’à×"Ñ"×/Ñ/Ü×EÑEñFð  +¬4¯9©9°T·V±VÓ+<Ð*=Ð=NÈqÏvÉvÈhÐW�
Ø!6´t·y±yÀÇÁÓ7HÐ6IÐJ‘à×-Ñ-×8Ñ8¸¿¹Ó@�ØÐ#Ü(Ø7¸¿¹×8IÑ8I×8NÑ8N×8SÑ8SÐ7TÐUóð ð  +¨8¯?©?Ð*;¸1¸Q¿V¹V¸HÐE�
Ø"*×"8Ñ"8Ð!9¸ÀxÇÁÐFWÐX�à×!Ñ!×.Ò.Ü$-§O¡OØ—F‘F×$Ñ$×(Ñ(¨!¯&©&×*:Ñ*:×*JÑ*Jó%Ð!ð —‘Ü'×8Ñ8ØŸ™¬Ð->Ó(?ÀÇÁÃóôð ”J×)Ñ)Ñ)Ø—‘ : ,¨dÐ 3Õ4Ø”j×(Ñ(Ñ(Ø—‘ : ,¨jÐ 9Õ:Ø”j—n‘nÑ$Ø#Ÿy™yÑ(N¸¿¹×9IÑ9I×9MÑ9MÔ(NÓN�Ø—‘ : ,¨d°<°.ÀÐ CÔDð Ÿ™ñ #ä"ØœZ×6Ñ6°t·v±vÓ>Àuôô#ó ˆJð �v‰v�z‰z×%Ò%ð —‘Ð"<¸Z¸LÈÐ KÔLð
&Ø—V‘V—Z‘Z×+Ñ+×3Ñ3×:Ñ:Ó<ð&à—F‘F—J‘J×*Ñ*×.Ñ.ð&Ð"ð *<ò Ð%Ø—N‘Nñ #ð
 $5ô#õ ðð —‘Ð 3Õ4à—‘ (¨:¨,°bÐ 9Ô:ô "×/Ñ/°·±Ó7ˆHÜ'¨Ó1ò ‘
��7Ü ¤¬7Ó!3Ó4¸¿¹×8KÑ8KÒKÜ(ðØ&Ÿ~™~×2Ñ2Ð3ð5óð ð
 œ
Ÿ™Ñ&Ø1°!°°AÐ6‘Dà)¨!¨¨AÐ.�Dà—‘ÜØ!ô (Ø#ŸN™N×/Ñ/´¼YÄwÓ=OÓ1Póôõ
ðð6 ×"Ñ"×/Ñ/Ü×EÑEòFô !2× FÑ FØ—F‘F—J‘J u¸q×?SÑ?Sô!�ð (×?Ñ?ÓA�Ø"Ÿ<™<›>�Ø ŸI™Iñ &ä& w°×0AÑ0AÓ0CÈEÔRô&ó �	ð —‘ $ x j°°)°¸BÐ ?Õ@Ø×#Ñ#×0Ñ0´K×4DÑ4DÒDØ!ŸY™Yñ 'ä&Ø¤×!:Ñ!:¸4¿6¹6Ó!BÈ5ôô'ó �
ð —‘ (¨:¨,°bÐ 9Ô:ð ”J—N‘NÑ" a¬:×+=Ñ+=Ñ&=Üœs 1§6¡6§>¡>Ó2Ó3ò �AØ—O‘OØ0°°Ð3NÈqÈcÐQrÐstÐruÐuxÐyõðð ”J×)Ñ)Ñ)Ü�q—v‘v—~‘~Ó&¨!Ò+Ø:‘Hà ŸI™Iñ &ä!&¤s¨1¯6©6¯>©>Ó':Ó!;ô&ó �Eð "2°%°¸Ð:‘HØ”j×(Ñ(Ñ(Ø!‘Ø”j—n‘nÑ$Ü�q—v‘v—~‘~Ó&¨!Ò+Ø Ÿv™v×/Ñ/×3Ñ3°AÑ6×;Ñ;‘HàŸ9™9Ñ$J°Q·V±V×5EÑ5E×5IÑ5IÔ$JÓJ�DØ!7¸°v¸QÐ?�HØ�O‰O˜g h Z¨qÐ1Ô2àŸ9™9 XÓ.ˆLð —‘ØØØ)Ø!-Ø#'§6¡6§:¡:×#AÑ#AÈÐ#Mð ó ððà‡�ƒ€ð Ø€ð ðð ð  �[‰[œF×/Ñ/Ñ/Ø˜aŸf™fŸk™k˜]¨,°s·x±x³z°lÀ#ÐFÐFä˜Ÿ™Ô%àr3   N)r¢   r   r  r5   r  rR   rÏ   r5   )r¢   r   r  rR   rÏ   r5   )r¢   r   r  r5   r¥   ÚintrÏ   r5   )rh   r   r¢   r   r  r5   r  r5   r  rR   rÏ   r5   )rh   r   rÏ   rT   )
rõ   rö   r÷   rø   r	  r  r  r&  r   r¯   rI   r3   r1   r®   r®   M  sŽ   … àÓðØðØ+.ðØ@Dðà	óó:=óBð"89àð89ð ð89ð
 ð89ð ð89ð ð89ð 
ó89ðt !òPó !ñPr3   r®   )r-   r   r.   rR   r/   rR   rÏ   rô   )r-   r   rÏ   ztuple[str | None, str | None])r-   r   rÏ   rô   )=Ú
__future__r   rà   rÿ   Údataclassesr   Útypingr   r   Útyping_extensionsr   Útorchgen.api.cppÚapir—   Útorchgen.api.metar:  Útorchgen.api.structuredrm   Ú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#   r2   r=   rA   rD   rG   rJ   rL   rO   r®   rI   r3   r1   ú<module>rf     s   ðÝ "ã Û Ý !ß )Ý *ç Ð ß  Ð  ß ,Ð ,Ý ,÷÷ ÷ ó ÷ R÷÷ ÷ ÷ ,ñ ÝBð#Øð#àð#ð ð#ð ó	#ðL*Øð*à"ó*ó:ó.ó$ó<ó.ñ: �$Ô÷U*ð U*ó ðU*ñ~
 �$Ôô}Ð$7ó }ó ñ}r3   