+
    &jG                    N   ^ RI Ht ^ RIHt ^ RIHt ^ RIHu Ht ^ RI	H
t
 ^ RIHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHtHtHtHtHtHtHt ^ R	IH t  ]'       d   ^ R
I!H"t" ^ RIH#t# ]! RR7       ! R R4      4       t$]! RR7       ! R R4      4       t%R R lt&R R lt']! RR7       ! R R4      4       t(](! ^ R]PR                  R7      ](! ^R]PT                  R7      .t+R R lt,]R R l4       t-]! RR7       ! R R 4      4       t.]R! R" l4       t/R# R$ lt0]R% R& l4       t1R# )'    )annotations)	dataclass)TYPE_CHECKINGN)	translate)		BaseCTypeBindingCTypeExpr
NamedCTypeopmath_tscalar_tStructuredImplSignatureVectorizedCType)with_native_function)ArgumentBaseTyBaseTypeDispatchKeyNativeFunctionsGroup
ScalarTypeUfuncKey)
OrderedSet)Sequence)UfunctorBindingsT)frozenc                  ~    ] tR t^Ct$ R]R&   R]R&   R]R&   R R ltR	 R
 ltR R ltR R ltR R lt	R R lt
RtR# )UfunctorSignaturer   gz
int | Nonescalar_tensor_idxstrnamec                   V ^8  d   QhRR/# )   returnr    )formats   "k/Users/jameslopez/projects/CWCArchive/cwc-podcast/.venv/lib/python3.14/site-packages/torchgen/dest/ufunc.py__annotate__UfunctorSignature.__annotate__I   s     
 
+ 
    c                	d    \         P                  ! V P                  V P                  \        R 7      # ))r   r   )ufuncufunctor_argumentsr   r   r   selfs   &r'   	argumentsUfunctorSignature.argumentsI   s&    ''FFd&<&<x
 	
r*   c                   V ^8  d   QhRR/# r#   r$   zlist[Binding]r%   )r&   s   "r'   r(   r)   N   s     G G Gr*   c                	    V P                  4       P                   Uu. uF   qP                  VP                   R 24      NK"  	  up# u upi )_)r0   ctorrenamer!   )r/   bs   & r'   fieldsUfunctorSignature.fieldsN   s:    040@0E0EF0E1AFF81&0EFFFs   &Ac                   V ^8  d   QhRR/# )r#   r$   r	   r%   )r&   s   "r'   r(   r)   R   s     # #e #r*   c                	     \        \        4      # N)r   r   r.   s   &r'   returns_typeUfunctorSignature.returns_typeR   s     ""r*   c                   V ^8  d   QhRR/# r#   r$   r    r%   )r&   s   "r'   r(   r)   W   s     G GS Gr*   c                	N    R P                  R V P                  4        4       4      # )
c              3  X   "   T F   qP                    R VP                   R2x  K"  	  R# 5i) ;N)typer!   ).0fs   & r'   	<genexpr>0UfunctorSignature.decl_fields.<locals>.<genexpr>X   s#     F1FF81QVVHA.   (*)joinr9   r.   s   &r'   decl_fieldsUfunctorSignature.decl_fieldsW   s    yyFFFFr*   c                   V ^8  d   QhRR/# rA   r%   )r&   s   "r'   r(   r)   Z   s     < <# <r*   c                	    R P                  R V P                  4       P                   4       4      pR P                  R V P                  4       P                   4       4      pV P                   RV RV R2# ), c              3  @   "   T F  qP                  4       x  K  	  R # 5ir=   declrH   as   & r'   rJ   5UfunctorSignature.inline_defn_ctor.<locals>.<genexpr>[   s     E/D!VVXX/D   c              3  X   "   T F   qP                    R VP                    R2x  K"  	  R# 5i)z_()Nr!   rV   s   & r'   rJ   rX   ^   s%     S=Rxr!&&3=RrL   (z) : z {})rM   r0   r6   r!   )r/   args_strinit_strs   &  r'   inline_defn_ctor"UfunctorSignature.inline_defn_ctorZ   sc    99Et~~/?/D/DEE 99ST^^=M=R=RSS))AhZtH:U;;r*   c                   V ^8  d   QhRR/# rA   r%   )r&   s   "r'   r(   r)   a   s     P PC Pr*   c                	    R P                  R V P                  4       P                   4       4      pV P                  4       P	                  4        RV R2# )rR   c              3  @   "   T F  qP                  4       x  K  	  R # 5ir=   rT   rV   s   & r'   rJ   /UfunctorSignature.decl_apply.<locals>.<genexpr>b   s     F/E!VVXX/ErY   z operator()(z) const)rM   r0   applyr>   cpp_type)r/   r^   s   & r'   
decl_applyUfunctorSignature.decl_applya   sI    99Ft~~/?/E/EFF##%..01hZwOOr*   r%   N)__name__
__module____qualname____firstlineno____annotations__r0   r9   r>   rN   r`   rh   __static_attributes__r%   r*   r'   r   r   C   s:    !!
I

G#
G<P Pr*   r   c                  N    ] tR t^ft$ R]R&   R]R&   R]R&   R R ltR	 R
 ltRtR# )UfuncSignaturer   r   r    r!   r	   	compute_tc                   V ^8  d   QhRR/# r3   r%   )r&   s   "r'   r(   UfuncSignature.__annotate__l   s     G G= Gr*   c                	Z    \         P                  ! V P                  V P                  R 7      # ))rr   )r,   ufunc_argumentsr   rr   r.   s   &r'   r0   UfuncSignature.argumentsl   s    $$TVVt~~FFr*   c                    V ^8  d   QhRRRR/# )r#   ctxzSequence[Binding | Expr]r$   r    r%   )r&   s   "r'   r(   rt   o   s     ] ]0 ]S ]r*   c           
     	    V P                    R RP                  R \        WP                  4       4       4       4       R2# )r]   rR   c              3  8   "   T F  qP                   x  K  	  R # 5ir=   exprrV   s   & r'   rJ   &UfuncSignature.call.<locals>.<genexpr>p   s     'Y8X18X   r[   r!   rM   r   r0   r/   ry   s   &&r'   callUfuncSignature.callo   s6    ))Adii'Y	#~~GW8X'YYZZ[\\r*   r%   N)rj   rk   rl   rm   rn   r0   r   ro   r%   r*   r'   rq   rq   f   s%    
IG] ]r*   rq   c                    V ^8  d   QhRRRR/# )r#   r   r   r$   boolr%   )r&   s   "r'   r(   r(      s      1E $ r*   c                    \        R  V P                  P                  P                  P                   4       4      pV^8H  # )c              3  h   "   T F(  qP                   P                  4       '       g   K$  ^x  K*  	  R# 5i)   N)rG   is_tensor_likerV   s   & r'   rJ   <eligible_for_binary_scalar_specialization.<locals>.<genexpr>   s#      ;avv?T?T?V;s   !2
2)sum
functionalfuncr0   flat_non_out)r   num_tensorss   & r'   )eligible_for_binary_scalar_specializationr      s<     <<$$..;; K !r*   c                    V ^8  d   QhRRRR/# )r#   r   r   r$   z?tuple[dict[ScalarType, dict[UfuncKey, UfunctorSignature]], str]r%   )r&   s   "r'   r(   r(      s      S/ S/S/DS/r*   c                   / p. pV P                   P                  p\        P                  ^\        P                  ^ \        P
                  R/p\        V 4      '       d1   \        P                  \        P                  \        P
                  .pMM\        P
                  .p\        P                  \        P                  3 F  pWc9   g   K  \        RV R24      h	  V EF  pWc9   dT   \        WV,          W6,          P                  R7      pW6,          P                   F  pWqP                  V/ 4      V&   K  	  K]  Rp	\        4       p
\        P                  \        P                  3 F]  pW9  d   K  V	f   W;,          P                  p	M"WV,          P                  8w  d   \        R4      hWV,          P                  ,          p
K_  	  V	f   \        R4      hV RV	 2p\        WV,          VR7      pV
 F  pWqP                  V/ 4      V&   K  	  \        V RV	 2\!        \"        4      R	7      pVP%                  4       VP'                  4       P(                  ,           pVP+                  R
VP                   RVP-                  4        RVP/                  4        RVP1                  4        RVP3                  V4       R24       EK  	  VRP5                  V4      3# )r   Nzcannot use z on non-binary function)r   r!   z0ScalarOnly and Generic must have same ufunc namezufunc_name must be non-Noner5   ufunc::r!   rr   z%
template <typename scalar_t>
struct z3 {
  using opmath_t = at::opmath_type<scalar_t>;
  z
  z
  __device__ z {
    return z	;
  }
};
rC   )outufunc_inner_loopr   CUDAFunctorOnSelfCUDAFunctorOnOtherCUDAFunctorr   AssertionErrorr   r!   supported_dtypes
setdefaultr   
ScalarOnlyGenericrq   r   r   r9   r0   rf   appendrN   r`   rh   r   rM   )r   ufunctor_sigs	ufunctorsloopsscalar_tensor_idx_lookupkeyskufunctor_sigdtype
ufunc_namer   lkr!   	ufunc_sig	apply_ctxs   &              r'   compute_ufunc_cuda_functorsr      s    JLMIEE""E""A##Qd 
 133&&''  
 $$%,,h.I.IJAz${1#5L%MNN K  :,a%@ux}}L 229E((3A6 3 
3=<&&(8(89B!"Y^^
 r/(J  b	 : :: :  !>??Aj\"(!!<4
 &E5A$$UB/2 & #gj\*i6I
	 !'')L,B,B,D,J,JJ	    "# $%%'( )NN9%& '
	
] x $))I...r*   c                  6    ] tR t^t$ R]R&   R]R&   R]R&   RtR# )	 BinaryScalarSpecializationConfigint
scalar_idxr    ctor_tensorr   	ufunc_keyr%   N)rj   rk   rl   rm   rn   ro   r%   r*   r'   r   r      s    Or*   r   r/   )r   r   r   otherc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r#   r   r   r   r   inner_loopsz!dict[UfuncKey, UfunctorSignature]
parent_ctxSequence[Binding]r$   r    r%   )r&   s   "r'   r(   r(      s:     , ,,, 3, "	,
 	,r*   c                   R pVR,          p\          F  pVP                  V9  d   K  W%P                  ,          pVP                  ^,           p\        V4      pVP	                  \        RV R2\        VP                  \        \        4      4      R7      4       RP                  R \        WP                  4       P                  4       4       4      p	VRV RVP                   R	V	 R
V R2	,          pK  	  V\        P                   ,          pRP                  R \        W6P                  4       P                  4       4       4      p	VRVP                   RV	 R2,          pV# )z+using opmath_t = at::opmath_type<scalar_t>;zif (false) {}
ziter.scalar_value<opmath_t>(r[   )r}   rG   rR   c              3  8   "   T F  qP                   x  K  	  R # 5ir=   r|   rV   s   & r'   rJ   0compute_ufunc_cuda_dtype_body.<locals>.<genexpr>  s      ,
IqFFIr   zelse if (iter.is_cpu_scalar(z)) {
  z<scalar_t> ufunctor(z);
  iter.remove_operand(z");
  gpu_kernel(iter, ufunctor);
}c              3  8   "   T F  qP                   x  K  	  R # 5ir=   r|   rV   s   & r'   rJ   r     s      (L1Lr   z
else {
  gpu_kernel(iter, z<scalar_t>(z
));
}
    )!BinaryScalarSpecializationConfigsr   r   listr   r
   r   r   r   r   rM   r   r0   r6   r!   r   r   )
r   r   r   r   bodyconfigr   r   ry   ufunctor_ctor_exprs_strs
   &&&&      r'   compute_ufunc_cuda_dtype_bodyr      s~    9DD3;."#3#34&&*
 %)$4

3J<qA 2 2Ih4GH	
 #')) ,
%c+A+A+C+H+HI,
 #
 	 'L ))*A)B C!l # 	) 46 x334L"ii (!*.D.D.F.K.KL(  	  %%&k2I1J K D
 Kr*   c                    V ^8  d   QhRRRR/# r#   r   r   r$   r    r%   )r&   s   "r'   r(   r(   '  s     & &. &3 &r*   c                p   \        V 4      w  r\        V \        P                  ! V \        P
                  4      4      p. pVP                  4        F5  w  rVVP                  R V R\        WWcP                  4       4       R24       K7  	  RP                  V4      p\        V 4      pRV RVP                  4        RVP                  4        RVP                  4        RVP                   RV RVP                   R	VP                   R
VP!                  4        RVP#                  VP                  4       4       R2# )"
AT_DISPATCH_CASE(at::ScalarType::,
  [&]() {
    
  }
)
rC   z

;
. {
  AT_DISPATCH_SWITCH(iter.common_dtype(), "",
    z
  );
}
REGISTER_DISPATCH(, &z)

 {
  ;
}
)r   r   r,   kernel_namer   CUDAitemsr   r   r0   rM   StubSignature	type_defndispatch_declkernel_defnr!   defndirect_call)	r   r   r   sigdtype_casesr   inner_ufunc_sigsdtype_cases_strstub_sigs	   &        r'   compute_ufunc_cudar   &  sZ     ;1=M "!U%6%6q+:J:J%K
LCK#0#6#6#8""' )"1-=}}OP Q	
 $9 ii,OQH
 	  	  	  ,,/HH: 6  ==/X%9%9$: ; () * r*   c                      ] tR tRt$ R]R&   ]R R l4       t]R R l4       t]R R	 l4       tR
 R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltRtR# )r   iW  r   r   c                   V ^8  d   QhRR/# rA   r%   )r&   s   "r'   r(   StubSignature.__annotate__\  s     ? ?c ?r*   c                	    \        V P                  P                  P                  P                  P                  4       R 2# )_stubr    r   r   r   r!   r.   s   &r'   r!   StubSignature.name[  s1    dff'',,116678>>r*   c                   V ^8  d   QhRR/# rA   r%   )r&   s   "r'   r(   r   `  s     A AS Ar*   c                	    \        V P                  P                  P                  P                  P                  4       R 2# )_kernelr   r.   s   &r'   r   StubSignature.kernel_name_  s1    dff'',,116678@@r*   c                   V ^8  d   QhRR/# rA   r%   )r&   s   "r'   r(   r   d  s     = =3 =r*   c                	    \        V P                  P                  P                  P                  P                  4       R 2# )_fnr   r.   s   &r'   	type_nameStubSignature.type_namec  s1    dff'',,116678<<r*   c                   V ^8  d   QhRR/# r3   r%   )r&   s   "r'   r(   r   g  s     , ,= ,r*   c                	B    \         P                  ! V P                  4      # r=   )r,   stub_argumentsr   r.   s   &r'   r0   StubSignature.argumentsg  s    ##DFF++r*   c                   V ^8  d   QhRR/# rA   r%   )r&   s   "r'   r(   r   j  s     V Vc Vr*   c                	Z    V P                  4       pR RP                  R V 4       4       R2# )zvoid(*)(TensorIteratorBase&, rR   c              3  8   "   T F  qP                   x  K  	  R # 5ir=   )rG   rV   s   & r'   rJ   %StubSignature.type.<locals>.<genexpr>l  s     8RAr   r[   )r0   rM   )r/   cpp_argss   & r'   rG   StubSignature.typej  s.    >>#.tyy8R8R/R.SSTUUr*   c                   V ^8  d   QhRR/# rA   r%   )r&   s   "r'   r(   r   n  s     B Bs Br*   c                	<    R V P                    RV P                   R2# )zDECLARE_DISPATCH(rR   r[   )r   r!   r.   s   &r'   r   StubSignature.dispatch_decln  s     "4>>"2"TYYKqAAr*   c                   V ^8  d   QhRR/# rA   r%   )r&   s   "r'   r(   r   q  s     / /s /r*   c                	"    R V P                    R2# )zDEFINE_DISPATCH(r[   r\   r.   s   &r'   dispatch_defnStubSignature.dispatch_defnq  s    !$))A..r*   c                   V ^8  d   QhRR/# rA   r%   )r&   s   "r'   r(   r   t  s     u uS ur*   c                	p    R V P                    RRP                  R V P                  4        4       4       R2# )zvoid z(TensorIteratorBase& iter, rR   c              3  @   "   T F  qP                  4       x  K  	  R # 5ir=   )r   rV   s   & r'   rJ   ,StubSignature.kernel_defn.<locals>.<genexpr>u  s     Mq`p[\ffhh`prY   r[   )r   rM   r0   r.   s   &r'   r   StubSignature.kernel_defnt  s:    t''((CDIIMq`d`n`n`pMqDqCrrsttr*   c                   V ^8  d   QhRR/# rA   r%   )r&   s   "r'   r(   r   w  s     9 93 9r*   c                	B    R V P                    RV P                  4        2# )zusing  = )r   rG   r.   s   &r'   r   StubSignature.type_defnw  s     's499;-88r*   c                    V ^8  d   QhRRRR/# r#   ry   r   r$   r    r%   )r&   s   "r'   r(   r   {  s     s s) sc sr*   c           
     	    V P                    R RP                  R \        WP                  4       4       4       4       R2# )z(device_type(), *this, rR   c              3  8   "   T F  qP                   x  K  	  R # 5ir=   r|   rV   s   & r'   rJ   %StubSignature.call.<locals>.<genexpr>|  s     =oNnffNnr   r[   r   r   s   &&r'   r   StubSignature.call{  s:    ))3DII=oiX[]k]k]mNn=o4o3ppqrrr*   c                    V ^8  d   QhRRRR/# r  r%   )r&   s   "r'   r(   r     s     k k0 kS kr*   c           
     	    V P                    R RP                  R \        WP                  4       4       4       4       R2# )z(*this, rR   c              3  8   "   T F  qP                   x  K  	  R # 5ir=   r|   rV   s   & r'   rJ   ,StubSignature.direct_call.<locals>.<genexpr>  s     5gFfffFfr   r[   )r   rM   r   r0   r   s   &&r'   r   StubSignature.direct_call  s<    ""#8DII5giPSUcUcUeFf5g,g+hhijjr*   r%   N)rj   rk   rl   rm   rn   propertyr!   r   r   r0   rG   r   r   r   r   r   r   ro   r%   r*   r'   r   r   W  sw    ? ? A A = =,VB/u9sk kr*   r   c                    V ^8  d   QhRRRR/# r   r%   )r&   s   "r'   r(   r(     s      - # r*   c                D   \        V 4      p\        V \        P                  ! V \        P
                  4      4      pR VP                  4        RVP                  4        R VP                  4        RVP                  4        RVP                  VP                  4       4       R2# )rC   r   z;

r   r   )r   r   r,   r   r   CPUr   r   r   r   r   r0   )r   r   r   s   &  r'   compute_ufunc_cpur    s    QH
!!U%6%6q+//%J
KC	  	  	   ==!" # r*   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r#   r   r   r   r   r   zdict[UfuncKey, UfuncSignature]r   r   r$   r    r%   )r&   s   "r'   r(   r(     sA     _ ___ 0_ "	_
 	_r*   c                	  a \         P                  V9  d   \        V R VP                  4        24      hVP                  4       \         P                  \         P                  08:  g   \        RVP                  4        24      hV\         P                  ,          pRp\         P                  V9   d   V\         P                  ,          p. p. oV F  p\        VP                  \        4      '       d5   VP                  P                  \        \        P                  4      8w  d   KW  VP                  RVP                   RVP                   R24       SP                  \        RVP                   2\        VP                   P                  \#        \$        4      4      4      4       K  	  Ve   V F  p\        VP                  \        4      '       d5   VP                  P                  \        \        P                  4      8w  d   KW  VP                  RVP                   RVP                   R	24       SP                  \        R
VP                   2\        VP                   P                  \'        \#        \$        4      4      4      4      4       K  	  . p. p	V P(                  P*                  P,                  P.                   EF  p
V
P                  P1                  4       '       g   K&  V
P                  \        \        P2                  4      8w  d   \        RV
P                   24      hVP                  \5        V
P                  \        V
P                  \#        \$        4      4      V
R7      4       Vf   K  V	P                  \5        V
P                  \        V
P                  \'        \#        \$        4      4      4      V
R7      4       EK  	  R V3R llpRP7                  V4      pVei   RV RR P7                  R V 4       4       RVP9                  V! V4      4       RR P7                  R V	 4       4       RVP9                  V! V	4      4       R2# RV RR P7                  R V 4       4       RVP9                  V! V4      4       R2# )rR   z<inner_loops keys must be subset of CPUScalar/CPUVector, got Nzauto _s_r  z.to<scalar_t>();_s_zauto _v_z$ = at::vec::Vectorized<scalar_t>(_s_z);_v_zExpected Tensor type, got )r!   nctypeargumentc                    V ^8  d   QhRRRR/# )r#   r8   r   r$   zlist[Expr | Binding]r%   )r&   s   "r'   r(   2compute_ufunc_cpu_dtype_body.<locals>.__annotate__  s      % *> r*   c                P   < . pVP                  S4       VP                  V 4       V# r=   )extend)r8   rry   s   & r'   with_ctx.compute_ufunc_cpu_dtype_body.<locals>.with_ctx  s#    "$		r*   rC   z
cpu_kernel_vec(iter,
  [=](c              3  @   "   T F  qP                  4       x  K  	  R # 5ir=   rT   rH   r8   s   & r'   rJ   /compute_ufunc_cpu_dtype_body.<locals>.<genexpr>       3?a?rY   z) { return z; },
  [=](c              3  @   "   T F  qP                  4       x  K  	  R # 5ir=   rT   r%  s   & r'   rJ   r&    s     0<a<rY   z; }
);
z
cpu_kernel(iter,
  [=](c              3  @   "   T F  qP                  4       x  K  	  R # 5ir=   rT   r%  s   & r'   rJ   r&    r'  rY   )r   	CPUScalarr   r   	CPUVector
isinstancer  r   rG   r   r   Scalarr   r!   r
   r   r  r   r   r   r   r   r0   r   r   Tensorr   rM   r   )r   r   r   r   scalar_loopvec_loopr   r8   scalar_bindingsvec_bindingsrW   r"  body_strry   s   &&&&         @r'   compute_ufunc_cpu_dtype_bodyr4    s    ,wb)9)9);(<=>>("4"4h6H6H!IIJ;K[K[K]J^_
 	
 h001KH[(x112 D
Cajj(++

8MMD
 1
 hqvvhc!&&1ABC

4#affX
188==)HBU(VWX  A!**h//AJJOOxH 5 KK166("FqvvhbQ JJ!&&Nqxx}}oi>Q.RS " OL\\((55vv$$&&66Xfmm,, #=affX!FGGVV!!&&)H*=>	
 %affoi>Q.RS 6*  yyH	
 yy3?334LAQAQRZ[jRkAl@m nyy0<001hmmHUaLb>c=d e	 		
 yy3?334LAQAQRZ[jRkAl@m n 	r*   c                    V ^8  d   QhRRRR/# r   r%   )r&   s   "r'   r(   r(     s     ; ; 4 ; ;r*   c                   \        V 4      pV P                  P                  p/ p\        P                  \        P
                  3 EFO  p. pWB9   d   VP                  V4       \        P                  V9   d4   V\        P                  J d    VP                  \        P                  4       \        P                  V9   d    VP                  \        P                  4       V F  pW&,          P                   F  pV\        P                  J d   \        \        4      pM3V\        P
                  J d   \        \        \        4      4      pM\        hVP                  V/ 4      p	WI9  g   Kt  \        V R W&,          P                    2VR7      W&   K  	  K  	  EKR  	  . p
VP#                  4        F5  w  ryV
P                  RV R\%        WWP'                  4       4       R24       K7  	  RP)                  V
4      pRVP+                  4        RVP                    RV R	VP-                  4        R
VP/                  4        RVP                    RVP0                   R2# )r   r   r   r   r   rC   z
namespace {

r   r   z#
  );
}

} // anonymous namespace

r   z
REGISTER_DISPATCH(r   z)
)r   r   r   r   r*  r+  r   r   r   r   r   r   r   r   r   rq   r!   r   r4  r0   rM   r   r   r   r   )r   r   r   
ufunc_sigsr   lksr   r   rr   r   r   r   s   &           r'   compute_ufunc_cpu_kernelr9    s!   QH EE""ECEJ  ("4"45:JJqM%'A1C1C,CJJx**+u$JJx''(B33*** )( 3I(,,, /	(0C DI((#-#8#8#C ,*8'%)..)9 :i+$' 4  64 K#-#3#3#5""' )!!,<>P>P>RST U	
 $6 ii,O 
  ,,4MM? ;  
  	  ==/X%9%9$: ; r*   )2
__future__r   dataclassesr   typingr   torchgen.api.ufuncapir,   torchgen.api.translater   torchgen.api.typesr   r   r	   r
   r   r   r   r   r   torchgen.contextr   torchgen.modelr   r   r   r   r   r   r   torchgen.utilsr   collections.abcr   r   r   rq   r   r   r   r   r   r   r   r   r   r  r4  r9  r%   r*   r'   <module>rE     s^   " !   " " ,
 
 
 2   & (3@ $P P PD $	] 	] 	]<S/l $   %--
 %,,% !,^ & &` $(k (k (kV  _D ; ;r*   