
    JTh&              	       	   S SK r S SKrS SKJs  Jr  S SKJrJrJ	r	J
r
JrJrJr  S SKJrJr  \ R&                  " \R(                  SS9r\" S5      \
R,                  " SSS	5      SJS
\R.                  4S jj5       5       r\" S5      \
R,                  " SSS	5      SJS
\R.                  4S jj5       5       r\" S5      \
R,                  " SSS5      SKS
\R.                  4S jj5       5       r\" S5      \
R,                  " SSSS5      SJS
\R.                  4S jj5       5       r\" S5      SJS
\R.                  4S jj5       r\" S5       SJS
\R.                  4S jj5       r\" S5       SJS
\R.                  4S jj5       r\" S5      \
R,                  " SSSS5       SJS
\R.                  4S jj5       5       r\" S5      \
R,                  " SSS5      SLS
\R.                  4S jj5       5       r \" S5      SJS
\R.                  4S jj5       r!\" S5      \
R,                  " SSSS5      SMS
\R.                  4S jj5       5       r"\" S 5      \
R,                  " SSSSSS5        SNS
\R.                  4S! jj5       5       r#\" S"5      \
R,                  " SSSSS5        SNS
\R.                  4S# jj5       5       r$S$ r%\" S%\
RL                  " S&S'5      /S(9S) 5       r'\" S*5      S
\R.                  4S+ j5       r(\" S,5      \
R,                  " SSSS5      SJS
\R.                  4S- jj5       5       r)\" S.5      S
\R.                  4S/ j5       r*\" S05       SOS
\R.                  4S1 jj5       r+\" S25      \
R,                  " SSSS5      S
\R.                  4S3 j5       5       r,\" S45      S
\R.                  4S5 j5       r-\" S65      S
\R.                  4S7 j5       r.\" S85      S
\R.                  4S9 j5       r/\" S:5      S
\R.                  4S; j5       r0\" S<5      S
\R.                  4S= j5       r1\" S>5      S
\R.                  4S? j5       r2\" S@5      S
\R.                  4SA j5       r3\" SB5      S
\R.                  4SC j5       r4\" SD5      S
\R.                  4SE j5       r5\" SF5      S
\R.                  4SG j5       r6\" SH5      S
\R.                  4SI j5       r7g)P    N)
_constants_type_utilserrorssymbolic_helpersymbolic_opset11symbolic_opset9utils)	jit_utilsregistration   )opsetzaten::softmaxvinonegc                    U R                  SXS9nU(       am  UR                  5       R                  5       S:w  aK  [        R                  " USS5      nU R                  SU[
        R                  " U5      R                  5       S9nU$ )NSoftmaxaxis_iprim::Constantr   dtypeCastto_iopnodekindr   
_get_constr   JitScalarType	onnx_type)r   inputdimr   softmaxparsed_dtypes         S/var/www/auris/envauris/lib/python3.13/site-packages/torch/onnx/symbolic_opset13.pyr$   r$      sy     dd9ed0G""$(88&11%gF$$G+";";L"I"S"S"U  
 N    zaten::log_softmaxc                    U R                  SXS9nU(       am  UR                  5       R                  5       S:w  aK  [        R                  " USS5      nU R                  SU[
        R                  " U5      R                  5       S9nU$ )N
LogSoftmaxr   r   r   r   r   r   r   )r   r"   r#   r   	return_opr%   s         r&   log_softmaxr+   &   sz     \55I""$(88&11%gFDDIK$=$=l$K$U$U$W  
	 r'   zaten::frobenius_normc                    [         R                  " US5      n[         R                  " U5      (       d   [        U5      S:X  a  U R	                  SUSS9$ U R	                  SX5      n[         R
                  " XX#S9nU R	                  SU5      $ )Nisr   ReduceL2
keepdims_iMulSqrt)r   _maybe_get_const	_is_valuelenr   _reducesum_helper)r   selfr#   keepdimdim_valsqrsumsqrs          r&   frobenius_normr<   2   sz     ..sD9G$$W--#g,!2CttJt33
$$ud
!C..qsOF44r'   zaten::splitc                 x   [         R                  " X$5      (       Gd  U R                  SXUS9nUc  U$ [         R                  " U5      (       Ga  [	        [         R
                  " U5      5      U:X  a  [         R
                  " U5       Vs/ s H  n[         R                  " XS/5      PM     nnU R                  S[        R                  " S/[        R                  S9S9nU R                  S[        R                  " U/[        R                  S9S9n	/ n
[        U5       H<  nU R                  SXU   5      nU
R                  U R                  SXX5      5        UnM>     U
$ [        U5       Vs/ s HF  nU R                  S	UU R                  S[        R                  " U/[        R                  S9S95      PMH     sn$ [         R                  " UR                  5       S
5      nUR                  5       S:  a  U R                  SXX4S9$ [         R                  " USS5      n[         R                   " X5      nUc  Ub  X-  nO["        R$                  " SU5      eU/X-  -  nX-  nU(       a  UR                  U5        U R                  S[        R                  " U5      S9nU R                  SUUX4S9$ s  snf s  snf )NSplitToSequencer   r   Constantr   value_tAddSlice
SequenceAtvalueSplitr   outputsr   
split_size$Unknown dimension size not supported)r   _is_split_staticr   _is_packed_listr5   _unpack_list_unsqueeze_helpertorchtensorlongrangeappend	_node_getr   r#   r   _get_tensor_dim_sizer   SymbolicValueError)r   r7   split_size_or_sizesr#   _outputs	split_outr   split_sizesstartaxisresr   end	split_valrJ   sizesplitsleftovers                     r&   splitrd   =   s    ++,?JJDD*DcDR	 ++,?@@O001DEF(R )556IJJA  11!<J  
 DDU\\1#UZZ-PDQE44
ELL#ejj,Q4RDC8_dd5a. 

144c@A % J 8_
 % DDZqc)LM
 %
 	
  ))*=*B*B*DgNI}}ttGTstUU ++,?lSJ//:D|(D++6  \T/0F HhTT*ell6&:T;F44vc4DDU
s   
"J2.AJ7zaten::split_with_sizesc                     [        XX#U5      $ Nrd   r   r7   r[   r#   rY   s        r&   split_with_sizesri   v   s    +H55r'   zaten::unsafe_splitc                     [        XX#U5      $ rf   rg   )r   r7   rX   r#   rY   s        r&   unsafe_splitrk   {   s     -H==r'   zaten::unsafe_split_with_sizesc                     [        XX#U5      $ rf   )ri   rh   s        r&   unsafe_split_with_sizesrm      s     A[x@@r'   zaten::tensor_splitc                    U R                  S[        R                  " U[        R                  S9S9n[        R
                  " XS5      nU R                  S[        R                  " S[        R                  S9S9n[        R                  " X$5      (       Ga  [        R                  " UR                  5       S5      nUR                  5       S:  a  U R                  S[        R                  " S/[        R                  S9S9n/ n	Uc   e[        US-
  5       Hi  n
U R                  SUU R                  S[        R                  " U
/[        R                  S9S9SS9nU	R                  U R                  S	XX5      5        UnMk     [        R                  " XU5      nU	R                  U R                  S	XX5      5        U	$ [        R                  " US
S5      n[        R                  " X5      nUc  Ub  X-  nO[         R"                  " SU5      eX-  nX-  nXS-   /-  nX-
  U/-  nU R                  S[        R                  " UU-   [        R                  S9S9nU R                  SUUX4S9$ [        R$                  " U5      (       Ga  [        R&                  " U5      S:X  Ga  [        R                  " XU R                  S[        R                  " S5      S95      n[        R
                  " U US5      nU R                  SU[(        R*                  R,                  S9nU R                  S[        R                  " S/[        R                  S9S9nU R                  SUUSS9nU R                  S5      n[.        R0                  " U SUUUSSS9u  nu  nnUR2                  n[4        R6                  " U5      n[4        R6                  " U5      n[4        R6                  " U5      nUR                  SUUSS9nUR                  SUUR                  SUU5      SS9nUR                  S	XX5      nUR                  SUU5      nUR                  SU5      n[4        R8                  " UU5        [4        R8                  " UU5        UR                  5       R;                  5       nU R                  SUU R                  S[        R                  " S[        R                  S9S9SS9n[        R
                  " XS5      n[        R                  " XU5      nU R                  S	XX5      nU R                  SUU5      $ [        R                  " XU5      n U R                  SU U5      nU R                  SUU5      n!U R                  SU U5      nU R                  SU!U5      nU R                  SUU R                  S[        R
                  " XS5      U5      5      nU R                  SUUSS9nUc  U R                  SUUUS9$ U R                  SUUX4S9$ )Nr?   r@   rA   r      rF   Gatherr   rD   r   indices_or_sectionsrK   rG   rH   r   r   ConcatSequenceEmptyLoop)rI   n_blocksrC   SequenceInsertIdentityDivModTileSubr>   )r   rP   rQ   rR   opset11	unsqueezer   rL   rU   r   r#   rS   rT   _size_helperr   rV   r   rW   
_is_tensor_get_tensor_rank_C_onnxTensorProtoDataTypeBOOLr
   add_op_with_blocksblockr	   _add_input_to_block_add_output_to_blockoutput)"r   r7   rq   r#   rY   r]   const_1r`   r\   r^   r   r_   rJ   ra   min_split_sizenum_splits_one_extrarb   rc   loop_lenloop_condition	padding_0final_splitslooploop_context_
loop_blockblock_input_itercondslicecond_outloop_out
last_slicedim_sizemin_split_size_plus_1s"                                     r&   tensor_splitr      s   
 44
ELLEJJ$G4HDQa(Ddd:u||AUZZ'HdIG''(;FF#--.A.F.F.H'R	==?QDDU\\1#UZZ-PDQEC'''8a<(dd'DDU\\1#UZZ-PDQ	   

144c@A ) "..q=CJJqttGT#<=J$//&;

 33D><#!,//:D  +#0%!);(<<5.9IIVh->ejj Q  
 ttGT6#tHH 	""#677,,-@AQF"//ADDU\\!_D$M
 $$Q!4fgG4O4O4T4TU DDU\\1#UZZ-PDQ	dd8Y8KTUdVttO,#,#?#?vxqST$
 o|q "''
 44Z@((400<)+;A   
 ooOOE#3W=	  
 c@#'7uM  ??:~>"":x8"":|<99;%%'DDU\\"EJJ%GDH	  
 !!!A.**1D9TT'4:
tt$h
;; #//>eX/BC !!

  !ttE85HIf35IJ44DD!!!!<$
 h;44)44DDttGT6#tHHr'   zaten::unbindc                    UcB  U R                  SUU R                  S[        R                  " S[        R                  S9S9USS9$ U R                  S[        R                  " S/U-  5      S9nU R                  SXX#S	9nUS:X  a  U/OUnU Vs/ s H8  nU R                  S
X`R                  S[        R                  " U/5      S95      PM:     nnU$ s  snf )Nr>   r?   ro   r@   rA   r   r   r0   rG   rH   Squeeze)r   rP   rQ   rR   )r   r7   r#   rY   rb   rI   outsqueezed_outputss           r&   unbindr     s     ttDDU\\!5::%FDG  
 	
 TT*ellA3>&BTCFdd7DdGG#q=wigG C 	
YTT*ellC56ITJK   	s   ?Czaten::nonzero_numpyc                 B    [        U [        R                  " X5      SUS9$ )Nro   )rY   )r   opset9nonzero)r   r"   rY   s      r&   nonzero_numpyr   )  s     !V^^A-q8DDr'   zaten::wherec           
      V   [         R                  " U5      (       d)  U R                  SU[        R                  R
                  S9nUcP  [        R                  " X5      n[         R                  " XU R                  S[        R                  " S5      S9U5      $ U R                  SXU5      $ )Nr   r   r?   ro   rA   Where)r   _is_boolr   r   r   r   r   r   _unbind_helperrP   rQ   )r   	conditionr7   otherrY   s        r&   wherer   /  s     ##I..DD1L1L1Q1QDR	|NN10	--!$$z5<<?$CX
 	
 44%00r'   z&aten::fake_quantize_per_channel_affinec                    XV4S;  a  [         R                  " SU SU S3U5      eUS:X  a*  U R                  SU[        R                  R
                  S9nO)U R                  SU[        R                  R                  S9nU R                  SXX4S	9nXV4S
:X  aW  U R                  SU[        R                  " U 5      U R                  S[        R                  " S[        R                  S9S95      nU R                  SXrX4S	9$ )N)r      i   r   r   VFor (quant_min, quant_max), ONNX allows only (0, 127), (0, 255) and (-128, 127). Got (, )r   r   r   QuantizeLinearr   r   Clipr?   r   r@   rA   DequantizeLinear)r   rW   r   r   r   UINT8INT8r   unusedrP   rQ   uint8)r   inputsscale
zero_pointr]   	quant_min	quant_max	quantizeds           r&    fake_quantize_per_channel_affiner   =  s     	%FF'';b1.
 	
 A~TT&*73N3N3T3TTU
TT&*73N3N3S3STT
%vjNI)DDMM!DDU\\#U[[%IDJ	
	 44"Ij4NNr'   z%aten::fake_quantize_per_tensor_affinec                     XE4S;  a  [         R                  " SU SU S3U5      eUS:X  a*  U R                  SU[        R                  R
                  S9nO)U R                  SU[        R                  R                  S9n[        R                  R                  U[        R                  R                  5      [        R                  R                  :w  a)  U R                  SU[        R                  R                  S9nU R                  SXU5      nXE4S	:X  aW  U R                  S
U[        R                  " U 5      U R                  S[        R                  " S[        R                   S9S95      nU R                  SXbU5      $ )Nr   r   r   r   r   r   r   r   r   r   r?   r   r@   rA   r   )r   rW   r   r   r   r   r   r   r    
from_value	UNDEFINEDFLOATr   r   rP   rQ   r   )r   r   r   r   r   r   r   s          r&   fake_quantize_per_tensor_affiner   `  sQ    	%FF'';b1.
 	

 A~TT&*73N3N3T3TTU
TT&*73N3N3S3STT
!!,,UK4M4M4W4WX$$**	+ VU)D)D)J)JK%vjAI)DDMM!DDU\\#U[[%IDJ	
	 44"IjAAr'   c                    ^  SU 4S jjnU$ )Nc                    > [         R                  " X5      nUc  [         R                  " XT5      $ [         R                  " USS5      nU R	                  TXUS9$ )Nr   r8   r/   )r   _maybe_cast_reduce_op_input_handle_reduce_dim_noner   r   )r   r7   r#   r8   onnx_op_names       r&   symbolic%_reduce_op_symbolic.<locals>.symbolic  sT    ::1C;"::1LQQ%00#yIG44dG4DDr'   NN )r   r   s   ` r&   _reduce_op_symbolicr     s    E Or'   z	aten::sum	ReduceSumsum)decoratec                 T   ^^ [        U 5      m[        R                  UU4S j5       nU$ )Nc                    > [         R                  " SS5      UU4S j5       n[         R                  " SSSS5      UU4S j5       nX44$ )Nr   r   c                   > S nUR                  5       R                  5       S:X  aM  [        R                  " USS5      n[        R
                  " U5      R                  5       nU R                  SXS9nO:UR                  5       R                  5       S:w  a  [        R                  " TSU5      $ T" X5      nUbB  [        R
                  R                  U5      R                  5       nXS:w  a  U R                  SXCS9nU$ Nzonnx::Constantr   r   r   r   r   
r   r   r   r   r   r    r!   r   _unimplementedr   )r   r7   r   
dtype_onnxresultresult_dtype_onnxnamer   s         r&   reduce_nodim8_reduce_with_dtype.<locals>.reduce.<locals>.reduce_nodim  s    Jzz|  "&66'225#wG(66u=GGI
ttFDt:""$(88&55dGUKKa&F%$/$=$=$H$H%)+ " %2TT&&TBFMr'   r   c                   > S nUR                  5       R                  5       S:X  aM  [        R                  " USS5      n[        R
                  " U5      R                  5       nU R                  SXS9nO:UR                  5       R                  5       S:w  a  [        R                  " TSU5      $ T	" XX#5      nUbB  [        R
                  R                  U5      R                  5       nXu:w  a  U R                  SXeS9nU$ r   r   )
r   r7   r#   r8   r   r   r   r   r   r   s
           r&   
reduce_dim6_reduce_with_dtype.<locals>.reduce.<locals>.reduce_dim  s    Jzz|  "&66'225#wG(66u=GGI
ttFDt:""$(88&55dGUKKas4F%$/$=$=$H$H%)+ " %2TT&&TBFMr'   )r   
parse_args)r   argskwargsr   r   r   r   s        r&   reduce"_reduce_with_dtype.<locals>.reduce  sR    		#	#C	0	 
1	" 
	#	#Cc6	:	 
;	" ''r'   )r   r   _overload_by_arg_count)onnx_opr   r   r   s    ` @r&   _reduce_with_dtyper     s/    
 #7+H++%( ,%(N Mr'   zaten::unflattenc                 B   [         R                  " U5      nUc  [         R                  " SS5      $ U R                  S[        R
                  " U/[        R                  S9S9nU R                  SXB5      nU R                  SX$5      nU R                  SU5      nU R                  S[        R
                  " S	/[        R                  S9S9nU R                  S
X R                  S[        R
                  " S/[        R                  S9S95      nU R                  SXVU5      nU R                  SX R                  S[        R
                  " S/[        R                  S9S95      n	U R                  S
U	U R                  S[        R
                  " S/[        R                  S9S95      n
U R                  S[        R
                  " [        R                  /[        R                  S9S9nU R                  SXZU5      nU R                  SXUS	S9n[         R                  " XU5      $ )Nr#   zfONNX and PyTorch use different strategies to split the input. Input rank must be known at export time.r?   r@   rA   rC   rz   Shaper   Reshapero   rD   rr   r   )
r   r   r   r   rP   rQ   int64r   	INT64_MAX_reshape_helper)r   r"   r#   unflattened_size	input_dim
input_sizehead_start_idxhead_end_idxhead_part_rankdim_plus_onetail_start_idxtail_end_idxtail_part_rankfinal_shapes                 r&   	unflattenr     s   007I--7
 	
 Zyk)UVI
$$ui
%C
$$uc
%Cgu%JTT*ellA3ekk.RTSN443Zqc1UVL TT':|LN44sDDU\\1#U[[-QDRL TT	Zqc!EFN
 44ELL**>*>)?u{{S  L TT':|LN$$.N1  K **1[AAr'   zaten::unsafe_chunkc                    UcB  U R                  SUU R                  S[        R                  " S[        R                  S9S9USS9$ [        R
                  " X5      nUc  [        R                  " SS	5      $ XR-   S-
  U-  nU/XV-  -  nXV-  nU(       a  UR                  U5        U R                  S[        R                  " U[        R                  S9S9nU R                  S
XX4S9$ )Nr>   r?   ro   r@   rA   r   r   unsafe_chunkzunknown dimension sizerG   rH   )r   rP   rQ   rR   r   rV   r   rT   )	r   r7   chunksr#   rY   ra   rJ   rb   rc   s	            r&   r  r    s     ttDDU\\!5::%FDG  
 	
 //:D|--n>VWW-!#.J\T/0F Hh
 TT*ell6&LTMF44c4DDr'   z
aten::tilec                    U R                  SU5      nU R                  SU5      nU R                  SU5      nU R                  SXE5      nU R                  S[        R                  " S/5      S9nU R                  SXg5      n[        R                  " U SUS	S
S9u  n	u  pnU
R                  S[        R
                  " S
/5      S9nU
R                  SXm5      nU
R                  SX5      nU
R                  SXSS9n[        R                  " U
R                  U5        UR                  SU5      n[        R                  " UR                  U5        U	R                  5       R                  5       nU R                  SXg5      n[        R                  " U SUS	S
S9u  nu  nnnUR                  S[        R
                  " S
/5      S9nUR                  SUR                  SU5      U5      nUR                  SUU5      nUR                  SUUSS9nUR                  SUU5      n[        R                  " UR                  U5        UR                  SU5      n[        R                  " UR                  U5        UR                  5       R                  5       nU R                  SU[        R                  R                  S9nU R                  SUU5      $ )Nr   Sizer|   r?   r   rA   GreaterIf   ro   )ru   rI   r   Expandrr   r   rw   LessAbsr   r   r{   )r   rP   rQ   r
   r   
LongTensorr	   r   r   r   r   r   r   INT64)r   r7   dims
self_shape	self_rank	dims_rankdiff
const_zerodims_shorter_than_self_shapeif_op_greaterif_context_greaterelse_context_greaterr   	const_onediff_1d_greaterexapnd_ones_greaterdims_identity_dim
dims_finaldims_longer_than_self_shape
if_op_lessif_context_lesselse_context_lessdiff_1d_lessexapnd_ones_lessself_final_shapeself_identity_self
self_finals                                r&   tiler(    s   gt$JVZ(IVT"I44y,Dj%,,s*;<J $%44	4#D 
 	$$	4-1		2		 #%%j%:J:JA3:O%PI(++ItGO,//)U!!(,?a!PE	177?'**:t<L	399<H##%,,.J #$$$vt"@
 	$$	4,q!		,+	  "":u7G7G7L"MI"%%5$'L
 '))(I|L&))"Jq *  y$0@AE	44e<%((T:M	066F"))+Jfjw/J/J/P/PQJ44
J//r'   zaten::repeat_interleavec           
      
   [         R                  " U5      n[         R                  " U5      n[         R                  " U5      nUc  [        R                  " SU5      eUc  [        R                  " SU5      eUc  [        R                  " SU5      eUn[         R
                  " U5      (       a^  [         R                  " XU R                  S[        R                  " S/5      S95      n[        R                  " S[        R                  S9nO[         R                  " U5      nUS:  a  U[        U5      -  nUR                  5       n	[        U5       H  u  pUb  M
  S	u  X'   Xz'   M     US:X  d  US
:X  a   US   S
:X  a  [         R                  " XX#5      $ US
:H  =(       a    US   S L nX   S:X  d  U(       a  [         R                   " XU5      n["        R$                  " XS5      nU(       a  [         R                   " XU R                  S[        R&                  " S/5      S95      nU R                  SXR                  S[        R&                  " S
/5      S95      n[)        XU R                  SX-5      U5      nO[*        R,                  " XX(5      $ U R                  SU R                  SU5      [        R                  " S
/[        R.                  S9S9n[1        XUS5      n[1        XUU5      nSu  X'   Xs'   U R                  S[        R                  " S
5      S9nU R                  SU[2        R4                  R6                  S9nUnU R                  S5      n[8        R:                  " U SUUUS
S9u  nu  nnUR<                  n[>        R@                  " U5      n[>        R@                  " U5      n[>        R@                  " U5      nUR                  SUU5      nUR                  SUU5      n["        R$                  " UUUS
-   5      nUR                  S[        R&                  " US US
-    5      S9UUR                  S[        R&                  " XsS
-   S  5      S9/nUR                  " S/UQ7SS06n[*        RB                  " UUUS 5      n[         R                  " UUU R                  S[        R&                  " U	5      S95      nUR                  SUU5      nUR                  SU[2        R4                  R6                  S9n[>        RD                  " UU5        [>        RD                  " UU5        URG                  5       RI                  5       n U R                  SU US9n U $ )NzGUnsupported: ONNX export of repeat_interleave for unknown repeats rank.zGUnsupported: ONNX export of repeat_interleave for unknown repeats size.zEUnsupported: ONNX export of repeat_interleave for unknown input size.r?   rx   rA   r   r@   )r   rx   ro   Equalr	  ConstantOfShaper   )rx   ro   r   r   rs   rt   ru   rE   rr   r   rv   ConcatFromSequencer   )%r   r   _get_tensor_sizesr   rW   _is_noner   r   rP   rQ   r   _maybe_get_scalarr5   copy	enumerate-_repeat_interleave_single_value_repeat_helperr   r}   r~   r  r   r   repeat_interleaverR   rd   r   r   r   r
   r   r   r	   r   expandr   r   r   )!r   r7   repeatsr#   output_sizerepeats_dimrepeats_sizesinput_sizes	final_dimoutput_sizesidxr   cond_dynamic_repeatsreps
repeat_dimrepeat_cond	reps_liker_splitsi_splitsr   r   r   r   r   r   r   r   r   r_spliti_splitr_concatr   r   s!                                    r&   r4  r4  F  s    "227;K#55g>M!33D9K''U
 	
 ''U
 	
 ''S
 	

 I $$..QTT*ellB4.@TA
 ll1EKK0//4 Qws;##%L$[127/L{/ 2
 aK1,q1AQ1FLLW
 	
 '!+Ha0@D0HA!5++AS9  !,
  (55ADDU5E5Eqc5JDKJ $$TT*e>N>NPQs>ST%TK AADD7,I7SG ''DD	WgaS

3  I
 QA.HQi-H*/'L{' TT*ell1oT>NTT&.w7R7R7W7WTXNH 44(L  );;	68^\A D/<1 ##J00<$$Z0D,,Z8LoolH6FGGoolH6FGGgsQw?G
E,<,<[3QR7=S,TU
E,<,<[q=S,TUH
 x=(=1=HmmL'8TBG--gqttJ8H8H8VtWG  ??#3\7KL W%@%@%E%E  H 
z84	z<8yy{!!#Htt((3t?HOr'   zaten::diagonalc                 8	   [         R                  " U5      nUb  US:  a  UOX5-   nUS:  a  UOXE-   n[        R                  " XU R	                  S[
        R                  " U/5      S9S9n[        R                  " XU R	                  S[
        R                  " U/5      S9S9nU R	                  SXgSS9n[        R                  " XS S S 5      n	U R	                  SXS9n	UbK  [        [        U5      5      n
U
R                  U5        U
R                  U5        U R	                  S	XX4/-   S
9nO[         R                  " SS5      $ U R	                  SX5      n[         R                  " XS/SS9nU R	                  S[
        R                  " U/5      S9nUS:  aY  U R	                  SU R	                  SX`R	                  SX|5      5      U R	                  S[
        R                  " S/5      S95      nSnOWU R	                  SU R	                  SU R	                  SXl5      U5      U R	                  S[
        R                  " S/5      S95      nU R	                  SUSS9n[        R                  " XSS S 5      nU R	                  SUU R	                  S[
        R                  " S/5      S95      nU R	                  SUU R	                  S[
        R                  " [        U5      S-
  /5      S95      n[        [        U5      5      S S  Vs/ s H;  n[        R                  " XU R	                  S[
        R                  " U/5      S9S9PM=     nnUR                  U5        U R                  " S/UQ7SS06n[        R                  " U USS S 5      nU R	                  SU R	                  SUU R	                  S[
        R                   " S[
        R"                  S9S95      5      n[$        R&                  " U SUSS9u  nu  nnnUR	                  SUU5      n[         R(                  " UUUS-
  /5      nUR	                  SUUUS-
  S 9n[        R                  " UUS!S S 5      n[*        R,                  " UR.                  U5        [*        R,                  " UR.                  U5        U$ s  snf )"Nr   r?   rA   )r#   rr   r   EyeLike)k_i	Transpose)perm_idiagonalzunknown input rankr1   rx   )axes_ir0   MaxMinr|   rC      CumSumro   r   Notr*  r@   r  r  r,  GatherND)batch_dims_i   )r   r   r   ra   r   rP   r  zeroslistrS   remover   r6   onesabsrT   rQ   r   r
   r   rO   r	   r   r   )r   r7   offsetdim1dim2rank	dim1_size	dim2_size
mask_shapemaskaxesr   	offset_op	diag_sizeselect_window_ones_fillselect_windowr]   gather_shapegather_indicesoverrun_condif_op
if_contextelse_contextr   gather_indices_if_blockfinal_non_overrunfinal_overruns                              r&   rM  rM    sU    ++D1Dqytdkqytdk	QTT*e.>.>v.FTGI 	QTT*e.>.>v.FTGI h	Q?J<<tT48D44	44,D E$K DDttKd\.AtB--j:NOO TT%$F..q"RSTF
 Z)9)96()CDI{DDDD	44y#DEDDU%5%5qc%:D;
	
 DDDDUI99EDDU%5%5qc%:D;
	
 Xy3I %kk!4FDD	Z!1!11#!67M
 DD	Z!1!13v;?2C!DEM t%cr**D 	A144
E<L<LdV<T4#UV*   	"44:<::L\\!\1dDAN 44	DDU\\!5;;%GDH	
L ,5+G+G	4,(E%Jq )mmE>=Q-??+dQhZ #F3$( &  LL|QdKM	z//1BC	|11=ALSs    ARzquantized::linearc                 *   [         R                  " X5      u  pg  n[         R                  " X5      u  pp[         R                  " XXzU5      n[         R                  " X5      u  n    n[        R                  " XX5      n[         R
                  " XXE5      $ rf   )r   dequantize_helperrequantize_bias_helperr   linearquantize_helperr   q_inputq_weightbiasop_scaleop_zero_pointr"   input_scaler   weightweight_scaler]   q_biasr   s                 r&   quantized_linearr  N  s      /@@LE1$3$E$Ea$R!F!33	DF $55a@MD!Q]]1V2F**1hNNr'   zquantized::linear_reluc                 V   [         R                  " X5      u  pg  n[         R                  " X5      u  pp[         R                  " XXzU5      n[         R                  " X5      u  n    n[        R                  " XX5      n[        R
                  " X5      n[         R                  " XXE5      $ rf   )r   rt  ru  r   rv  relurw  rx  s                 r&   quantized_linear_relur  ^  s      /@@LE1$3$E$Ea$R!F!33	DF $55a@MD!Q]]1V2F[[#F**1hNNr'   zquantized::conv1d_reluc
           
      `   [         R                  " X5      u  p  n[         R                  " X5      u  pp[         R                  " XXU5      n[         R                  " U U5      u  n    n[        R                  " X
XXEXg5      n[        R
                  " U U5      n[         R                  " U UX5      $ rf   )r   rt  ru  r   conv1dr  rw  r   ry  rz  r{  stridepaddingdilationgroupsr|  r}  r"   r~  r   r  r  r]   r  r   s                     r&   quantized_conv1d_relur  o        /@@LE1$3$E$Ea$R!F!33	DF $55a@MD!Q]]1V6HUF[[F#F**1fhNNr'   zquantized::conv2d_reluc
           
      `   [         R                  " X5      u  p  n[         R                  " X5      u  pp[         R                  " XXU5      n[         R                  " U U5      u  n    n[        R                  " X
XXEXg5      n[        R
                  " U U5      n[         R                  " U UX5      $ rf   )r   rt  ru  r   conv2dr  rw  r  s                     r&   quantized_conv2d_relur    r  r'   zquantized::conv3d_reluc
           
      `   [         R                  " X5      u  p  n[         R                  " X5      u  pp[         R                  " XXU5      n[         R                  " U U5      u  n    n[        R                  " X
XXEXg5      n[        R
                  " U U5      n[         R                  " U UX5      $ rf   )r   rt  ru  r   conv3dr  rw  r  s                     r&   quantized_conv3d_relur    r  r'   zquantized::conv1dc
           
      2   [         R                  " X5      u  p  n[         R                  " X5      u  pp[         R                  " XXU5      n[         R                  " U U5      u  n    n[        R                  " X
XXEXg5      n[         R
                  " U UX5      $ rf   )r   rt  ru  r   r  rw  r  s                     r&   quantized_conv1dr          /@@LE1$3$E$Ea$R!F!33	DF $55a@MD!Q]]1V6HUF**1fhNNr'   zquantized::conv2dc
           
      2   [         R                  " X5      u  p  n[         R                  " X5      u  pp[         R                  " XXU5      n[         R                  " U U5      u  n    n[        R                  " X
XXEXg5      n[         R
                  " U UX5      $ rf   )r   rt  ru  r   r  rw  r  s                     r&   quantized_conv2dr    r  r'   zquantized::conv3dc
           
      2   [         R                  " X5      u  p  n[         R                  " X5      u  pp[         R                  " XXU5      n[         R                  " U U5      u  n    n[        R                  " X
XXEXg5      n[         R
                  " U UX5      $ rf   )r   rt  ru  r   r  rw  r  s                     r&   quantized_conv3dr    r  r'   zquantized::conv_transpose1dc                 6   [         R                  " X5      u  p  n[         R                  " X5      u  pnn[         R                  " XXU5      n[         R                  " U U5      u  n    n[        R                  " XXXEXhU5	      n[         R
                  " U UX5      $ rf   r   rt  ru  r   conv_transpose2drw  r   ry  rz  r{  r  r  output_paddingr  r  r|  r}  r"   r~  r   r  r  r]   r  r   s                      r&   quantized_conv_transpose1dr          /@@LE1$3$E$Ea$R!F!T33	DF $55a@MD!Q$$	&F **1fhNNr'   zquantized::conv_transpose2dc                 6   [         R                  " X5      u  p  n[         R                  " X5      u  pnn[         R                  " XXU5      n[         R                  " U U5      u  n    n[        R                  " XXXEXhU5	      n[         R
                  " U UX5      $ rf   r  r  s                      r&   quantized_conv_transpose2dr  $  r  r'   zquantized::conv_transpose3dc                 6   [         R                  " X5      u  p  n[         R                  " X5      u  pnn[         R                  " XXU5      n[         R                  " U U5      u  n    n[        R                  " XXXEXhU5	      n[         R
                  " U UX5      $ rf   )r   rt  ru  r   conv_transpose3drw  r  s                      r&   quantized_conv_transpose3dr  @  r  r'   rf   )NF)r   N)NNNr   r   )8	functoolsrP   torch._C._onnx_C_onnxr   
torch.onnxr   r   r   r   r   r}   r   r   r	   torch.onnx._internalr
   r   partialonnx_symbolic_onnx_symbolicr   GraphContextr$   r+   r<   rd   ri   rk   rm   r   r   r   r   r   r   r   _apply_paramsr   r   r  r(  r4  rM  r  r  r  r  r  r  r  r  r  r  r  r   r'   r&   <module>r     sd           9 ""<#=#=RH  Cf-y%%  . ! #$Cf-9))  . % &'Cc* i,,   + (  Cc3/4EY## 4E 0 4En ()6	.. 6 *6 $%HL>> &> /0@DAA 1A $%Cc3/HLEIEI 0 &EIP Cc*i$$  +  ( %&EY++ E 'E Cc3/	1Y## 	1 0 	1 89Cc3S9 OO : :OB 78Cc34 !B!B 5 9!BH
 ++K?@+	+b !"'B'' 'B #'BT $%Cc3/EI** E 0 &E4 30I"" 30 30l )*DHII +IX  !Cc3/s	&& s 0 "sr #$OO %O ()OO *O  ()OO *O2 ()OO *O2 ()OO *O2 #$OO %O0 #$OO %O0 #$OO %O0 -.OO /O6 -.OO /O6 -.OO /Or'   