Ë
    S²jÆM  ã            #       óF  — U d Z ddlZddlmZ ddlmZ ddlmZ ddlZddl	m
Z
  ed«      Z ed«      Zi Zeej                  j                   ef   ed	<    eh d
£«      Zdededeeef   deeeef   geeef   f   fd„Z	 d9ddddœdej.                  dej.                  dej.                  dej.                  dz  dedededej.                  fd„Z edde«      	 d9ddddœdej.                  dej.                  dej.                  dej.                  dz  dedededej.                  fd„«       Zdedz  dedefd„Zd ej.                  d!ededej.                  fd"„Zd#ej.                  d$ej.                  d%ed&ededz  d'edej.                  fd(„Zd%ed&eddfd)„Zd#ej.                  d$ej.                  d%ed&ededz  dej.                  fd*„Z 	 	 	 d:dddddd+dd,œd#ej.                  d$ej.                  d-ej.                  d.ej.                  dz  d/ej.                  dz  d0ej.                  dz  d1ed2ed3ed'ededz  d4ed5edz  de!ej.                  ej.                  ej.                  ej.                  f   fd6„Z" ed7de"«      	 	 	 d:dddddd+dd,œd#ej.                  d$ej.                  d-ej.                  d.ej.                  dz  d/ej.                  dz  d0ej.                  dz  d1ed2ed3ed'ededz  d4ed5edz  de!ej.                  ej.                  ej.                  ej.                  f   fd8„«       Z#y);zãImplementations of ONNX operators as native Torch ops.

NOTE: Fake implementations:
    Refer to https://docs.pytorch.org/docs/stable/library.html#torch.library.register_fake
    for more details on how to create fake kernels.
é    N)ÚCallable)ÚTypeVar)Ú	ParamSpec)Ú_dtype_mappingsÚ_PÚ_RÚONNX_ATEN_DECOMP_TABLE>   é   é
   é   é   Úop_typeÚopset_versionÚ	fake_implÚreturnc                 óh   ‡ ‡‡— dt         t        t        f   dt         t        t        f   fˆˆ ˆfd„}|S )zDDecorator to register an ONNX operator with a custom implementation.Úfuncr   c                 óö   •— d‰› �}t        j                  j                  d‰› d|› �d¬«      | «      }| t        t	        t	        t         j
                  j                  ‰«      |«      <   |j                  ‰«       |S )NÚopsetzonnx::ú.© )Úmutates_args)ÚtorchÚlibraryÚ	custom_opr	   ÚgetattrÚopsÚonnxÚregister_fake)r   ÚoverloadÚtorch_opr   r   r   s      €€€úS/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/onnx/ops/_impl.pyÚ	decoratorz_onnx_op.<locals>.decorator'   s|   ø€ Ø˜=˜/Ð*ˆÜ—=‘=×*Ñ*Ø�W�I˜Q˜x˜jÐ)¸ð +ó 
à
óˆð ô 	œw¤w¬u¯y©y¯~©~¸wÓ'GÈÓRÑSð 	×Ñ˜yÔ)Øˆó    )r   r   r   )r   r   r   r#   s   ``` r"   Ú_onnx_opr%   "   s0   ú€ ð
	œ¤¤R Ñ(ð 	¬X´b¼"°fÑ-=÷ 	ð Ðr$   F)ÚinterleavedÚ	num_headsÚrotary_embedding_dimÚxÚ	cos_cacheÚ	sin_cacheÚposition_idsr&   r'   r(   c                ó"   — | j                  «       S )zFFake implementation for RotaryEmbedding-23 for torch.compile purposes.)Úclone)r)   r*   r+   r,   r&   r'   r(   s          r"   Ú_rotary_embedding_23_fake_implr/   5   s   € ð �7‰7‹9Ðr$   ÚRotaryEmbeddingé   c                óV  ‡‡‡‡‡‡‡‡‡— | j                   Št        ‰«      }‰d   Š‰d   Š‰�¿t        j                  ‰j	                  «       dk(  ˆfd„«       t        j                  ‰j                   d   ‰k(  ˆˆfd„«       t        j                  ‰j                   d   ‰k(  ˆˆfd„«       t        j                  ‰j	                  «       dk(  xr ‰j	                  «       dk(  ˆˆfd	„«       n@t        j                  ‰j	                  «       d
k(  xr ‰j	                  «       d
k(  ˆˆfd„«       |dk(  rt        j
                  | d«      } nG|d
k(  rBt        j                  |dk7  ˆfd„«       ‰d   }||z  }	‰‰||	g}
t        j                  | |
«      } t        j                  t        | j                   «      dk(  d„ «       | j                   d
   }	|dk(  r|	}| dd…dd…dd…d|…f   }| dd…dd…dd…|d…f   }|dz  Š‰�‰‰   Š‰‰   Šn‰Š‰Št        j                  ‰j                   d   ‰k(  xr ‰j                   d   ‰k(  ˆˆˆfd„«       t        j                  ‰j                   d   ‰k(  xr ‰j                   d   ‰k(  ˆˆˆfd„«       t        j                  ‰j                   d   ‰k(  ˆˆfd„«       t        j                  ‰j                   d   ‰k(  ˆˆfd„«       t        j                  ‰d«      Št        j                  ‰d«      Š|r%|dd…dd…dd…ddd…f   }|dd…dd…dd…ddd…f   }nt        j                  |dd¬«      \  }}‰|z  ‰|z  z
  }‰|z  ‰|z  z   }|rft        j                  |d«      }t        j                  |d«      }t        j                  ||fd¬«      }t        j                  ||j                   «      }nt        j                  ||fd¬«      }t        j                  ||fd¬«      }|d
k(  rt        j                  |‰«      S t        j
                  |d«      S )z_RotaryEmbedding-23 https://onnx.ai/onnx/operators/onnx__RotaryEmbedding.html#rotaryembedding-23r   éþÿÿÿNé   c                  ó"   •— d‰ j                   › �S )Nz6position_ids must be 2D when provided. Received shape ©Úshape)r,   s   €r"   ú<lambda>z%rotary_embedding_23.<locals>.<lambda>Z   s   ø€ ÐLÈ\×M_ÑM_ÐL`Ða€ r$   c                  ó.   •— d‰ › d‰j                   d   › �S )Nz6position_ids first dim (batch) must match x.shape[0] (ú). Received r   r6   )Ú
batch_sizer,   s   €€r"   r8   z%rotary_embedding_23.<locals>.<lambda>^   s$   ø€ ÐLÈZÈLÐXdÐeq×ewÑewÐxyÑezÐd{Ð|€ r$   r
   c                  ó.   •— d‰› d‰ j                   d   › �S )Nz;position_ids second dim (sequence) must match x.shape[-2] (r:   r
   r6   )r,   Úsequence_lengths   €€r"   r8   z%rotary_embedding_23.<locals>.<lambda>b   s=   ø€ ÐQÐRaÐQbÐbnÐo{÷  pBñ  pBð  CDñ  pEð  oFð  G€ r$   c                  ó<   •— d‰ j                   › d‰j                   › �S )NzWcos_cache/sin_cache must be 2D when position_ids is provided. Received cos_cache shape ú, sin_cache shape r6   ©r*   r+   s   €€r"   r8   z%rotary_embedding_23.<locals>.<lambda>f   ó&   ø€ ð (Ø(1¯©Ð'8Ð8JÈ9Ï?É?ÐJ[ð]€ r$   é   c                  ó<   •— d‰ j                   › d‰j                   › �S )Nz[cos_cache/sin_cache must be 3D when position_ids is not provided. Received cos_cache shape r?   r6   r@   s   €€r"   r8   z%rotary_embedding_23.<locals>.<lambda>l   rA   r$   é   )r   r4   r
   rB   c                  ó   •— d‰ › �S )NzKnum_heads must be provided for 3D inputs. Received input tensor with shape r   )Úinput_shapes   €r"   r8   z%rotary_embedding_23.<locals>.<lambda>y   s   ø€ ÐaÐbmÐanÐo€ r$   c                   ó   — y)Nzx should be a 4D tensor by nowr   r   r$   r"   r8   z%rotary_embedding_23.<locals>.<lambda>€   ó   � r$   c                  ó0   •— d‰j                   › d‰ › d‰› d�S )Nzcos has shape ú but expected (batch=ú, seq=ú, ...)r6   )r;   Úcosr=   s   €€€r"   r8   z%rotary_embedding_23.<locals>.<lambda>™   ó$   ø€ �. §¡ Ð+@ÀÀÈFÐSbÐRcÐciÐj€ r$   c                  ó0   •— d‰j                   › d‰ › d‰› d�S )Nzsin has shape rJ   rK   rL   r6   )r;   r=   Úsins   €€€r"   r8   z%rotary_embedding_23.<locals>.<lambda>�   rN   r$   éÿÿÿÿc                  ó0   •— d‰ j                   d   › d‰› d�S )NzLast dimension of cos cache (rQ   ú') should match rotary_embedding_dim/2 (ú).r6   )rM   Úrotary_embedding_dim_halfs   €€r"   r8   z%rotary_embedding_23.<locals>.<lambda>¡   ó.   ø€ Ð/°·	±	¸"±¨Ð>eÐfð  fAð  ACð  D€ r$   c                  ó0   •— d‰j                   d   › d‰ › d�S )NzLast dimension of sin cache (rQ   rS   rT   r6   )rU   rP   s   €€r"   r8   z%rotary_embedding_23.<locals>.<lambda>¥   rV   r$   ©Údim)
r7   Úlenr   Ú_checkrY   ÚpermuteÚreshapeÚ	unsqueezeÚchunkÚcat)r)   r*   r+   r,   r&   r'   r(   Ú
input_rankÚhidden_sizeÚ	head_sizeÚ	new_shapeÚx_rotateÚx_not_rotateÚx1Úx2ÚrealÚimagÚx_rotate_concatÚoutputr;   rM   rF   rU   r=   rP   s    ```               @@@@@@r"   Úrotary_embedding_23rm   C   sþ  ÿø€ ð —'‘'€KÜ�[Ó!€JØ˜Q‘€JØ! "‘o€Oð ÐÜ�‰Ø×ÑÓ !Ñ#Ûaô	
ô 	�‰Ø×Ñ˜qÑ! ZÑ/Ü|ô	
ô 	�‰Ø×Ñ˜qÑ! _Ñ4ô Gô	
ô 	�‰Ø�M‰M‹O˜qÑ Ò9 Y§]¡]£_¸Ñ%9ô]õ	
ô 	�‰Ø�M‰M‹O˜qÑ Ò9 Y§]¡]£_¸Ñ%9ô]ô	
ð �Q‚ô �M‰M˜!˜\Ó*‰Ø	�qŠÜ�‰Ø˜‰NÛoô	
ð " !‘nˆØ 9Ñ,ˆ	Ø °)¸YÐGˆ	Ü�M‰M˜!˜YÓ'ˆä	‡L�L”�Q—W‘W“ Ñ"Ñ$LÔMØ—‘˜‘
€Ið ˜qÒ à(ÐØ’’A’qÐ/Ð/Ð/Ð/Ñ0€HØ’Qšš1Ð2Ñ3Ð3Ñ4€LØ 4¸Ñ 9Ðð ÐØØñ
ˆð Øñ
‰ð ˆØˆä	‡L�LØ�	‰	�!‰˜
Ñ"ÒF s§y¡y°¡|°Ñ'FÝjôô 
‡L�LØ�	‰	�!‰˜
Ñ"ÒF s§y¡y°¡|°Ñ'FÝjôô 
‡L�LØ�	‰	�"‰Ð2Ñ2ô 	Dôô 
‡L�LØ�	‰	�"‰Ð2Ñ2ô 	Dôô �/‰/ØˆQó€Cô �/‰/ØˆQó€Cñ
 Ø’aššA˜q˜t !˜t�mÑ$ˆØ’aššA˜q˜t !˜t�mÑ$‰ä—‘˜X q¨bÔ1‰ˆˆBð �‰8�c˜B‘hÑ€DØ�‰8�c˜B‘hÑ€Dñ ô �‰˜t RÓ(ˆÜ�‰˜t RÓ(ˆÜŸ)™) T¨4 L°bÔ9ˆÜ—=‘= °(·.±.ÓA‰ä—9‘9˜d D˜\¨rÔ2ˆÜ�Y‰Y˜ ,Ð/°RÔ8€FØ�Q‚Ü�}‰}˜V [Ó1Ð1ô �=‰=˜ Ó.Ð.r$   Úscalerc   c                 ó:   — | �| S dt        j                  |«      z  S )z/Get the scale factor for attention computation.g      ð?)ÚmathÚsqrt)rn   rc   s     r"   Ú_get_scale_factorrr   Ë   s    € àÐ%ˆ5ÐG¨C´$·)±)¸IÓ2FÑ,FÐGr$   Útensorr;   c                 ó¬   — | j                   d   | j                   d   }}||z  }| j                  ||||«      j                  dd«      j                  «       S )z1Reshape 3D tensor to 4D for multi-head attention.r
   r4   )r7   ÚviewÚ	transposeÚ
contiguous)rs   r;   r'   r=   rb   rc   s         r"   Ú_reshape_3d_to_4drx   Ð   sP   € ð $*§<¡<°¡?°F·L±LÀ±O�[€OØ˜yÑ(€Ià�‰�J °¸IÓFß	‰�1�a‹ß	‰‹ðr$   ÚQÚKÚcurrent_q_num_headsÚcurrent_kv_num_headsÚqk_matmul_output_modec           	      óœ   — |dk(  rt        | ||||«      S t        j                  t        j                  | |j	                  dd«      «      «      S )z1Get QK output tensor based on the specified mode.r   r3   rQ   )Ú_compute_qk_output_for_mode_0r   Ú
zeros_likeÚmatmulrv   )ry   rz   r{   r|   rn   r}   s         r"   Ú_get_qk_output_for_aten_spdar‚   Ý   sO   € ð  Ò!Ü,ØˆqÐ%Ð';¸Uó
ð 	
ô
 ×Ñ¤§¡¨Q°·±¸BÀÓ0CÓ DÓEÐEr$   c                 óH   ‡ ‡— t        j                  ‰ ‰z  dk(  ˆˆ fd„«       y)z-Validate Group Query Attention configuration.r   c                  ó   •— d‰› d‰ › d�S )Nzq_num_heads (z%) must be divisible by kv_num_heads (z	) for GQAr   )r|   r{   s   €€r"   r8   z-_validate_gqa_configuration.<locals>.<lambda>õ   s   ø€ �-Ð 3Ð4Ð4YÐZnÐYoÐoxÐy€ r$   N)r   r[   )r{   r|   s   ``r"   Ú_validate_gqa_configurationr…   ï   s"   ù€ ô 
‡L�LØÐ2Ñ2°aÑ7Üyõr$   c                 óü   — |}||k7  r||z  }|j                  |d¬«      }t        || j                  d   «      }t        j                  |«      }| |z  }	||z  }
t        j                  |	|
j                  dd«      «      S )zDHelper function to compute QK output for qk_matmul_output_mode == 0.r
   rX   rB   r3   rQ   )Úrepeat_interleaverr   r7   rp   rq   r   r�   rv   )ry   rz   r{   r|   rn   ÚK_for_qkÚrepeat_factorÚscale_factorÚ
sqrt_scaleÚQ_scaledÚK_scaleds              r"   r   r   ù   s…   € ð €HØÐ2Ò2Ø+Ð/CÑCˆØ×&Ñ& }¸!Ð&Ó<ˆä$ U¨A¯G©G°A©JÓ7€Lä—‘˜<Ó(€JØ�:‰~€HØ˜*Ñ$€HÜ�<‰<˜ (×"4Ñ"4°R¸Ó"<Ó=Ð=r$   ç        )Ú	is_causalÚkv_num_headsÚq_num_headsr}   rn   ÚsoftcapÚsoftmax_precisionÚVÚ	attn_maskÚpast_keyÚ
past_valuer�   r�   r‘   r’   r“   c                ó  — | j                   d   }t        | j                   «      dk(  r€| j                   d   }| j                   }|�4|||j                   d   |j                   d   z   |j                   d   |z  f}n#|||j                   d   |j                   d   |z  f}|}||||d   f}n¦| j                   d   }| j                   }|�K|j                   d   |j                   d   |j                   d   |j                   d   z   |j                   d   f}n|j                   }|}| j                   d   | j                   d   | j                   d   |d   f}t        j                  || j                  | j
                  ¬«      }t        j                  ||j                  |j
                  ¬«      }t        j                  ||j                  |j
                  ¬«      }t        j                  || j                  | j
                  ¬«      }||||fS )z@Fake implementation for Attention-23 for torch.compile purposes.r   rB   r
   r4   ©ÚdtypeÚdevice)r7   rZ   r   Úemptyrš   r›   )ry   rz   r”   r•   r–   r—   r�   r�   r‘   r}   rn   r’   r“   r;   Úq_sequence_lengthÚoutput_shapeÚpresent_key_shapeÚpresent_value_shapeÚqk_output_shaperl   Úpresent_keyÚpresent_valueÚ	qk_outputs                          r"   Ú_attention_23_fake_implr¥     sè  € ð" —‘˜‘€Jô ˆ1�7‰7ƒ|�qÒàŸG™G A™JÐØ—w‘wˆð ÐàØØ—‘˜qÑ! A§G¡G¨A¡JÑ.Ø—‘˜‘
˜lÑ*ð	!Ñð ØØ—‘˜‘
Ø—‘˜‘
˜lÑ*ð	!Ðð 0Ðð ØØØ˜aÑ ð	
‰ð ŸG™G A™JÐà—w‘wˆð Ðà—‘˜‘
Ø—‘˜‘
Ø—‘˜qÑ! A§G¡G¨A¡JÑ.Ø—‘˜‘
ð	!Ñð !"§¡ÐØ/Ðð �G‰G�A‰JØ�G‰G�A‰JØ�G‰G�A‰JØ˜aÑ ð	
ˆô �[‰[˜¨Q¯W©W¸Q¿X¹XÔF€FÜ—+‘+Ð/°q·w±wÀqÇxÁxÔP€KÜ—K‘KÐ 3¸1¿7¹7È1Ï8É8ÔT€MÜ—‘˜O°1·7±7À1Ç8Á8ÔL€Ià�; ¨yÐ8Ð8r$   Ú	Attentionc                óª	  — d\  }}}t        | j                  «      }| j                  d   }t        | j                  «      dk(  rWt        j                  |dk7  xr |dk7  d„ «       | j                  d   }t	        | ||«      } t	        |||«      }t	        |||«      }t        j                  t        | j                  «      dk(  xr2 t        |j                  «      dk(  xr t        |j                  «      dk(  d„ «       | j                  |   }t        |
|«      }
|�t        j                  ||g|¬	«      n|j                  «       }|�t        j                  ||g|¬	«      n|j                  «       }||}}| j                  |   }|j                  |   }| j                  |   }|j                  |   }|d
k(  xr0 |	dk(  xr) |du xr# |du xs |j                  t        j                  k(  }t        ||«       |rOt        j                  j                  j                  | |||d
||
t        ||k7  «      ¬«      }t        | ||||
|	«      }�nY||k7  r+||z  }|j                  ||¬	«      }|j                  ||¬	«      }t        j                   ||| j                  | j"                  ¬«      }|ryt        j                  |du d„ «       t        j$                  t        j&                  ||t        j                  | j"                  ¬«      «      }|j)                  | t+        d«      «      }|�?|j                  t        j                  k(  r|j)                  | t+        d«      «      }n||z   }t        |
| j                  d   «      }t-        j.                  |«      } | | z  }!|| z  }"t        j0                  |!|"j3                  dd«      «      }#|#}|#|z   }$|	dk(  r|$}|d
kD  r|t        j4                  |$|z  «      z  }$|	dk(  r|$}|�w|t6        v rW|$j                  }%|$j9                  t:        j<                  |   «      }$t        j>                  |$d¬	«      }&|&j9                  |%«      }&n/t        j>                  |$d¬	«      }&nt        j>                  |$d¬	«      }&|	dk(  r|&}t        j0                  |&|«      }|dk(  r1|j3                  dd«      jA                  «       jC                  ||d«      }||||fS )zMAttention-23 https://onnx.ai/onnx/operators/onnx__Attention.html#attention-23)r
   r4   rB   r   rB   c                   ó   — y)Nz;q_num_heads and kv_num_heads must be provided for 3D inputsr   r   r$   r"   r8   zattention_23.<locals>.<lambda>€  rH   r$   r
   rD   c                   ó   — y)Nz'Q, K, and V should be 4D tensors by nowr   r   r$   r"   r8   zattention_23.<locals>.<lambda>‰  rH   r$   NrX   rŽ   )r•   Ú	dropout_pr�   rn   Ú
enable_gqar™   c                   ó   — y)Nz'Cannot use both is_causal and attn_maskr   r   r$   r"   r8   zattention_23.<locals>.<lambda>×  rH   r$   z-infr3   rQ   r4   )"rZ   r7   r   r[   rx   rr   r`   r.   rš   Úboolr…   ÚnnÚ
functionalÚscaled_dot_product_attentionr‚   r‡   Úzerosr›   ÚtrilÚonesÚmasked_fillÚfloatrp   rq   r�   rv   ÚtanhÚ-_ATTENTION_23_ALLOWED_INTERMEDIATE_PRECISIONSÚtor   ÚONNX_DTYPE_TO_TORCH_DTYPEÚsoftmaxrw   ru   )'ry   rz   r”   r•   r–   r—   r�   r�   r‘   r}   rn   r’   r“   Únum_head_dimÚsequence_dimÚhead_dimÚinput_shape_lenr;   r�   Úq_head_sizer¢   r£   r{   r|   Úkv_sequence_lengthÚcan_use_sdparl   r¤   r‰   Ú	attn_biasÚcausal_maskrŠ   r‹   rŒ   r�   Úqk_matmul_outputÚqk_with_biasÚoriginal_dtypeÚ
qk_softmaxs'                                          r"   Úattention_23rÈ   c  sä  € ð& ,3Ñ(€L�, ô ˜!Ÿ'™'“l€OØ—‘˜‘€Jô ˆ1�7‰7ƒ|�qÒÜ�‰Ø˜1ÑÒ2 °Ñ!2ÙQô	
ð ŸG™G A™JÐÜ˜a ¨[Ó9ˆÜ˜a ¨\Ó:ˆÜ˜a ¨\Ó:ˆä	‡L�LÜˆA�G‰G‹˜ÑÒEœc !§'¡'›l¨aÑ/ÒE´C¸¿¹³LÀAÑ4EÙ9ôð —'‘'˜(Ñ#€KÜ˜e [Ó1€Eð
 Ðô 	�	‰	�8˜Q�- \Õ2à�W‰W‹Yð ð Ð!ô 	�	‰	�:˜q�/ |Õ4à�W‰W‹Yð ð ˜€q€Að Ÿ'™' ,Ñ/ÐØŸ7™7 <Ñ0ÐØŸ™ Ñ-ÐØŸ™ Ñ.Ðð 	�3‰ò 	AØ! QÑ&ò	Aà Ð%ò	Að ˜$ÐÒ? )§/¡/´U·Z±ZÑ"?ð	 ô  Ð 3Ð5IÔJáä—‘×$Ñ$×AÑAØØØØØØØÜØ#Ð';Ñ;óð Bó 
ˆô 1ØØØØ ØØ!ó
Š	ð Ð"6Ò6Ø/Ð3GÑGˆMØ×#Ñ# M°|Ð#ÓDˆAØ×#Ñ# M°|Ð#ÓDˆAô —K‘KØÐ1¸¿¹ÈÏÉô
ˆ	ñ
 Ü�L‰LØ˜TÐ!Ñ#Tôô  Ÿ*™*Ü—
‘
Ø%Ø&ÜŸ*™*ØŸ8™8ô	óˆKð "×-Ñ-¨{¨l¼EÀ&»MÓJˆIð Ð Ø�‰¤%§*¡*Ò,à%×1Ñ1°9°*¼eÀF»mÓL‘	ð &¨	Ñ1�	ô )¨°·±¸±
Ó;ˆô —Y‘Y˜|Ó,ˆ
Ø�z‘>ˆØ�z‘>ˆô !Ÿ<™<¨°(×2DÑ2DÀRÈÓ2LÓMÐð %ˆ	ð (¨)Ñ3ˆà  AÒ%Ø$ˆIð �SŠ=Ø"¤U§Z¡Z°¸wÑ0FÓ%GÑGˆLà  AÒ%Ø$ˆIð Ð(à Ô$QÑQØ!-×!3Ñ!3�Ø+Ÿ™Ü#×=Ñ=Ð>OÑPó �ô #Ÿ]™]¨<¸RÔ@�
Ø'Ÿ]™]¨>Ó:‘
ä"Ÿ]™]¨<¸RÔ@‘
äŸ™ |¸Ô<ˆJà  AÒ%Ø"ˆIô —‘˜j¨!Ó,ˆð ˜!Òð ×Ñ˜Q Ó"×-Ñ-Ó/×4Ñ4°ZÐARÐTVÓWð 	ð �; ¨yÐ8Ð8r$   )N)NNN)$Ú__doc__rp   Úcollections.abcr   Útypingr   Útyping_extensionsr   r   Útorch.onnx.opsr   r   r   r	   ÚdictÚ_opsÚ
OpOverloadÚ__annotations__Ú	frozensetr·   ÚstrÚintr%   ÚTensorr­   r/   rm   rµ   rr   rx   r‚   r…   r   Útupler¥   rÈ   r   r$   r"   ú<module>r×      s,  ðòó Ý $Ý Ý 'ã Ý *ñ ˆtƒ_€ÙˆTƒ]€ð ACÐ ˜˜UŸZ™Z×2Ñ2°HÐ<Ñ=Ó BÙ09òó1Ð -ðØðØ!$ðØ19¸"¸b¸&Ñ1Aðàˆx˜˜B˜ÑÐ  (¨2¨r¨6Ñ"2Ð2Ñ3óð. )-ð	ð ØØ !òØ‡|�|ðà�|‰|ðð �|‰|ðð —,‘, Ñ%ð	ð ðð ðð ðð ‡\�\óñ 
Ð
˜RÐ!?Ó@ð
 )-ð	D/ð ØØ !òD/Ø‡|�|ðD/à�|‰|ðD/ð �|‰|ðD/ð —,‘, Ñ%ð	D/ð ðD/ð ðD/ð ðD/ð ‡\�\òD/ó AðD/ðNH˜U T™\ð H°cð H¸eó Hð

Ø�L‰Lð
Ø&)ð
Ø69ð
à
‡\�\ó
ðFØ‡|�|ðFà‡|�|ðFð ðFð ð	Fð
 �4‰<ðFð ðFð ‡\�\óFð$ØðØ47ðà	óð>Ø‡|�|ð>à‡|�|ð>ð ð>ð ð	>ð
 �4‰<ð>ð ‡\�\ó>ð4 &*Ø$(Ø&*ðQ9ð ØØØ!"ØØØ$(òQ9Ø‡|�|ðQ9à‡|�|ðQ9ð ‡|�|ðQ9ð �|‰|˜dÑ"ð	Q9ð
 �l‰l˜TÑ!ðQ9ð —‘˜tÑ#ðQ9ð ðQ9ð ðQ9ð ðQ9ð ðQ9ð �4‰<ðQ9ð ðQ9ð ˜T‘zðQ9ð ˆ5�<‰<˜Ÿ™ u§|¡|°U·\±\ÐAÑBóQ9ñh 
ˆ+�rÐ2Ó3ð
 &*Ø$(Ø&*ð9ð ØØØ!"ØØØ$(ò9Ø‡|�|ð9à‡|�|ð9ð ‡|�|ð9ð �|‰|˜dÑ"ð	9ð
 �l‰l˜TÑ!ð9ð —‘˜tÑ#ð9ð ð9ð ð9ð ð9ð ð9ð �4‰<ð9ð ð9ð ˜T‘zð9ð ˆ5�<‰<˜Ÿ™ u§|¡|°U·\±\ÐAÑBò9ó 4ñ9r$   