§
    �ŠtjP  ã            #       ó  — 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#dS );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                 ó€   ‡ ‡‡— 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                             d‰› d|› �d¬¦  «        | ¦  «        }| t          t	          t	          t           j        j        ‰¦  «        |¦  «        <   |                     ‰¦  «         |S )NÚopsetzonnx::ú.© )Úmutates_args)ÚtorchÚlibraryÚ	custom_opr	   ÚgetattrÚopsÚonnxÚregister_fake)r   ÚoverloadÚtorch_opr   r   r   s      €€€úR/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/onnx/ops/_impl.pyÚ	decoratorz_onnx_op.<locals>.decorator&   s�   ø€ Ø*˜=Ð*Ð*ˆÝ”=×*Ò*Ø)�WÐ)Ð)˜xÐ)Ð)¸ð +ñ 
ô 
à
ñô ˆð õ 	�w¥w­u¬y¬~¸wÑ'GÔ'GÈÑRÔRÑSð 	×Ò˜yÑ)Ô)Ð)Øˆó    )r   r   r   )r   r   r   r#   s   ``` r"   Ú_onnx_opr%   !   sU   øøø€ ð
	�¥¥R Ô(ð 	­Xµb½"°fÔ-=ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð Ðr$   F)ÚinterleavedÚ	num_headsÚrotary_embedding_dimÚxÚ	cos_cacheÚ	sin_cacheÚposition_idsr&   r'   r(   c                óÌ   — |                       ¦   «         dk    r't          j        | j        d| j        | j        ¬¦  «        S t          j        | j        | j        | j        ¬¦  «        S )zFFake implementation for RotaryEmbedding-23 for torch.compile purposes.é   ©r   é   r
   é   ©ÚdtypeÚdevice)Údimr   Úempty_permutedÚshaper3   r4   Úempty)r)   r*   r+   r,   r&   r'   r(   s          r"   Ú_rotary_embedding_23_fake_implr9   4   s_   € ð 	‡u‚u�w„w�!‚|€|õ Ô#ØŒG�\¨¬¸¼ð
ñ 
ô 
ð 	
õ Œ;�q”w a¤g°a´hÐ?Ñ?Ô?Ð?r$   ÚRotaryEmbeddingé   c                óh  ‡‡‡‡‡‡‡‡‡— | j         Št          ‰¦  «        }‰d         Š‰d         Š‰�Æt          j        ‰                     ¦   «         dk    ˆfd„¦  «         t          j        ‰j         d         ‰k    ˆˆfd„¦  «         t          j        ‰j         d         ‰k    ˆˆfd„¦  «         t          j        ‰                     ¦   «         dk    o‰                     ¦   «         dk    ˆˆfd	„¦  «         nGt          j        ‰                     ¦   «         d
k    o‰                     ¦   «         d
k    ˆˆfd„¦  «         |dk    rt          j        | d¦  «        } nJ|d
k    rDt          j        |dk    ˆ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    o‰j         d         ‰k    ˆˆˆfd„¦  «         t          j        ‰j         d         ‰k    o‰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   }|r]t          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   éþÿÿÿNr0   c                  ó   •— d‰ j         › �S )Nz6position_ids must be 2D when provided. Received shape ©r7   )r,   s   €r"   ú<lambda>z%rotary_embedding_23.<locals>.<lambda>c   s   ø€ ÐaÈ\ÔM_ÐaÐa€ r$   c                  ó*   •— d‰ › d‰j         d         › �S )Nz6position_ids first dim (batch) must match x.shape[0] (ú). Received r   r?   )Ú
batch_sizer,   s   €€r"   r@   z%rotary_embedding_23.<locals>.<lambda>g   s"   ø€ Ð|ÈZÐ|Ð|ÐeqÔewÐxyÔezÐ|Ð|€ r$   r
   c                  ó*   •— d‰› d‰ j         d         › �S )Nz;position_ids second dim (sequence) must match x.shape[-2] (rB   r
   r?   )r,   Úsequence_lengths   €€r"   r@   z%rotary_embedding_23.<locals>.<lambda>k   s>   ø€ ð  GÐRað  Gð  GÐo{ô  pBð  CDô  pEð  Gð  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 r?   ©r*   r+   s   €€r"   r@   z%rotary_embedding_23.<locals>.<lambda>o   ó-   ø€ ð ]Ø(1¬ð]ð ]ØKTÌ?ð]ð ]€ r$   r1   c                  ó(   •— d‰ j         › d‰j         › �S )Nz[cos_cache/sin_cache must be 3D when position_ids is not provided. Received cos_cache shape rG   r?   rH   s   €€r"   r@   z%rotary_embedding_23.<locals>.<lambda>u   rI   r$   r.   r/   c                  ó   •— d‰ › �S )NzKnum_heads must be provided for 3D inputs. Received input tensor with shape r   )Úinput_shapes   €r"   r@   z%rotary_embedding_23.<locals>.<lambda>‚   s   ø€ ÐoÐbmÐoÐo€ r$   c                  ó   — dS )Nzx should be a 4D tensor by nowr   r   r$   r"   r@   z%rotary_embedding_23.<locals>.<lambda>‰   s   € Ð,L€ r$   c                  ó&   •— d‰j         › d‰ › d‰› d�S )Nzcos has shape ú but expected (batch=ú, seq=ú, ...)r?   )rC   ÚcosrE   s   €€€r"   r@   z%rotary_embedding_23.<locals>.<lambda>¢   ó&   ø€ Ðj ¤ÐjÐjÀÐjÐjÐSbÐjÐjÐj€ r$   c                  ó&   •— d‰j         › d‰ › d‰› d�S )Nzsin has shape rO   rP   rQ   r?   )rC   rE   Úsins   €€€r"   r@   z%rotary_embedding_23.<locals>.<lambda>¦   rS   r$   éÿÿÿÿc                  ó,   •— d‰ j         d         › d‰› d�S )NzLast dimension of cos cache (rV   ú') should match rotary_embedding_dim/2 (ú).r?   )rR   Úrotary_embedding_dim_halfs   €€r"   r@   z%rotary_embedding_23.<locals>.<lambda>ª   ó4   ø€ ð  D°´	¸"´ð  Dð  DÐfð  Dð  Dð  D€ r$   c                  ó,   •— d‰j         d         › d‰ › d�S )NzLast dimension of sin cache (rV   rX   rY   r?   )rZ   rU   s   €€r"   r@   z%rotary_embedding_23.<locals>.<lambda>®   r[   r$   ©r5   )
r7   Úlenr   Ú_checkr5   Ú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ÚoutputrC   rR   rL   rZ   rE   rU   s    ```               @@@@@@r"   Úrotary_embedding_23rq   L   sv  øøøøøøøøø€ ð ”'€KÝ�[Ñ!Ô!€JØ˜Q”€JØ! "”o€Oð ÐÝŒØ×ÒÑÔ !Ò#ØaÐaÐaÐañ	
ô 	
ð 	
õ 	ŒØÔ˜qÔ! ZÒ/Ø|Ð|Ð|Ð|Ð|ñ	
ô 	
ð 	
õ 	ŒØÔ˜qÔ! _Ò4ð Gð  Gð  Gð  Gð  Gñ	
ô 	
ð 	
õ 	ŒØ�MŠM‰OŒO˜qÒ Ð9 Y§]¢]¡_¤_¸Ò%9ð]ð ]ð ]ð ]ð ]ñ	
ô 	
ð 	
ð 	
õ 	ŒØ�MŠM‰OŒO˜qÒ Ð9 Y§]¢]¡_¤_¸Ò%9ð]ð ]ð ]ð ]ð ]ñ	
ô 	
ð 	
ð �Q‚€õ ŒM˜!˜\Ñ*Ô*ˆˆØ	�qŠˆÝŒØ˜ŠNØoÐoÐoÐoñ	
ô 	
ð 	
ð " !”nˆØ 9Ñ,ˆ	Ø °)¸YÐGˆ	ÝŒM˜!˜YÑ'Ô'ˆå	„L•�Q”W‘” Ò"Ð$LÐ$LÑMÔMÐMØ”˜”
€Ið ˜qÒ Ð à(ÐØ����A�A�A�q�q�qÐ/Ð/Ð/Ð/Ô0€HØ�Q�Q�Q˜˜˜˜1˜1˜1Ð2Ð3Ð3Ð3Ô4€LØ 4¸Ñ 9Ðð ÐØØô
ˆð Øô
ˆˆð ˆØˆå	„LØŒ	�!Œ˜
Ò"ÐF s¤y°¤|°Ò'FØjÐjÐjÐjÐjÐjñô ð õ 
„LØŒ	�!Œ˜
Ò"ÐF s¤y°¤|°Ò'FØjÐjÐjÐjÐjÐjñô ð õ 
„LØŒ	�"ŒÐ2Ò2ð 	Dð  	Dð  	Dð  	Dð  	Dñô ð õ 
„LØŒ	�"ŒÐ2Ò2ð 	Dð  	Dð  	Dð  	Dð  	Dñô ð õ Œ/ØˆQñô €Cõ Œ/ØˆQñô €Cð
 ð 2Ø�a�a�a˜˜˜˜A˜A˜A˜q˜t !˜t�mÔ$ˆØ�a�a�a˜˜˜˜A˜A˜A˜q˜t !˜t�mÔ$ˆˆå”˜X q¨bÐ1Ñ1Ô1‰ˆˆBð �‰8�c˜B‘hÑ€DØ�‰8�c˜B‘hÑ€Dð ð 3õ Œ˜t RÑ(Ô(ˆÝŒ˜t RÑ(Ô(ˆÝœ) T¨4 L°bÐ9Ñ9Ô9ˆÝ”= °(´.ÑAÔAˆˆå”9˜d D˜\¨rÐ2Ñ2Ô2ˆÝŒY˜ ,Ð/°RÐ8Ñ8Ô8€FØ�Q‚€ÝŒ}˜V [Ñ1Ô1Ð1õ Œ=˜ Ñ.Ô.Ð.r$   Úscalerg   c                 ó8   — | �| ndt          j        |¦  «        z  S )z/Get the scale factor for attention computation.Ng      ð?)ÚmathÚsqrt)rr   rg   s     r"   Ú_get_scale_factorrv   Ô   s    € àÐ%ˆ5ˆ5¨Cµ$´)¸IÑ2FÔ2FÑ,FÐGr$   ÚtensorrC   c                 ó¼   — | j         d         | j         d         }}||z  }|                      ||||¦  «                             dd¦  «                             ¦   «         S )z1Reshape 3D tensor to 4D for multi-head attention.r
   r0   )r7   ÚviewÚ	transposeÚ
contiguous)rw   rC   r'   rE   rf   rg   s         r"   Ú_reshape_3d_to_4dr|   Ù   sS   € ð $*¤<°¤?°F´LÀ´O�[€OØ˜yÑ(€Ià�Š�J °¸IÑFÔ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        | |                     dd¦  «        ¦  «        ¦  «        S )z1Get QK output tensor based on the specified mode.r   r=   rV   )Ú_compute_qk_output_for_mode_0r   Ú
zeros_likeÚmatmulrz   )r}   r~   r   r€   rr   r�   s         r"   Ú_get_qk_output_for_aten_spdar†   æ   s[   € ð  Ò!Ð!Ý,ØˆqÐ%Ð';¸Uñ
ô 
ð 	
õ
 Ô¥¤¨Q°·²¸BÀÑ0CÔ0CÑ DÔ DÑEÔEÐEr$   c                 óJ   ‡ ‡— t          j        ‰ ‰z  dk    ˆˆ fd„¦  «         dS )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"   r@   z-_validate_gqa_configuration.<locals>.<lambda>þ   s   ø€ ÐyÐ 3ÐyÐyÐZnÐyÐyÐy€ r$   N)r   r_   )r   r€   s   ``r"   Ú_validate_gqa_configurationr‰   ø   sA   øø€ õ 
„LØÐ2Ñ2°aÒ7ØyÐyÐyÐyÐyñô ð ð ð r$   c                 ó  — |}||k    r||z  }|                      |d¬¦  «        }t          || j        d         ¦  «        }t          j        |¦  «        }| |z  }	||z  }
t          j        |	|
                     dd¦  «        ¦  «        S )zDHelper function to compute QK output for qk_matmul_output_mode == 0.r
   r]   r1   r=   rV   )Úrepeat_interleaverv   r7   rt   ru   r   r…   rz   )r}   r~   r   r€   rr   ÚK_for_qkÚrepeat_factorÚscale_factorÚ
sqrt_scaleÚQ_scaledÚK_scaleds              r"   rƒ   rƒ     s‘   € ð €HØÐ2Ò2Ð2Ø+Ð/CÑCˆØ×&Ò& }¸!Ð&Ñ<Ô<ˆå$ U¨A¬G°A¬JÑ7Ô7€Lå”˜<Ñ(Ô(€JØ�:‰~€HØ˜*Ñ$€HÝŒ<˜ (×"4Ò"4°R¸Ñ"<Ô"<Ñ=Ô=Ð=r$   ç        )Ú	is_causalÚkv_num_headsÚq_num_headsr�   rr   ÚsoftcapÚsoftmax_precisionÚVÚ	attn_maskÚpast_keyÚ
past_valuer“   r”   r•   r–   r—   c                ó^  — | j         d         }t          | j         ¦  «        dk    rr| j         d         }| j         }|�.|||j         d         |j         d         z   |j         d         |z  f}n|||j         d         |j         d         |z  f}|}||||d         f}n�| j         d         }| j         }|�A|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   r1   r
   Nr0   r2   )r7   r^   r   r8   r3   r4   )r}   r~   r˜   r™   rš   r›   r“   r”   r•   r�   rr   r–   r—   rC   Úq_sequence_lengthÚoutput_shapeÚpresent_key_shapeÚpresent_value_shapeÚqk_output_shaperp   Úpresent_keyÚpresent_valueÚ	qk_outputs                          r"   Ú_attention_23_fake_implr¥     sÍ  € ð" ”˜”€Jõ ˆ1Œ7�|„|�qÒÐàœG AœJÐØ”wˆð ÐàØØ”˜qÔ! A¤G¨A¤JÑ.Ø”˜”
˜lÑ*ð	!ÐÐð ØØ”˜”
Ø”˜”
˜lÑ*ð	!Ðð 0Ðð ØØØ˜aÔ ð	
ˆˆð œG AœJÐà”wˆð Ðà”˜”
Ø”˜”
Ø”˜qÔ! A¤G¨A¤JÑ.Ø”˜”
ð	!ÐÐð !"¤ÐØ/Ðð ŒG�AŒJØŒG�AŒJØŒG�AŒJØ˜aÔ ð	
ˆõ Œ[˜¨Q¬W¸Q¼XÐFÑFÔF€FÝ”+Ð/°q´wÀqÄxÐPÑPÔP€KÝ”KÐ 3¸1¼7È1Ì8ÐTÑTÔT€MÝ”˜O°1´7À1Ä8ÐLÑLÔL€Ià�; ¨yÐ8Ð8r$   Ú	Attentionc                ó–	  — d\  }}}t          | j        ¦  «        }| j        d         }t          | j        ¦  «        dk    r`t          j        |dk    o|dk    d„ ¦  «         | j        d         }t	          | ||¦  «        } t	          |||¦  «        }t	          |||¦  «        }t          j        t          | j        ¦  «        dk    o/t          |j        ¦  «        dk    ot          |j        ¦  «        dk    d„ ¦  «         | j        |         }t          |
|¦  «        }
|�t          j        ||g|¬	¦  «        n|                     ¦   «         }|�t          j        ||g|¬	¦  «        n|                     ¦   «         }||}}| j        |         }|j        |         }| j        |         }|j        |         }|d
k    o"|	dk    o|du o|du p|j        t          j	        k    }t          ||¦  «         |rSt          j        j                             | |||d
||
t          ||k    ¦  «        ¬¦  «        }t          | ||||
|	¦  «        }�nY||k    r3||z  }|                     ||¬	¦  «        }|                     ||¬	¦  «        }t          j        ||| j        | j        ¬¦  «        }|rut          j        |du d„ ¦  «         t          j        t          j        ||t          j	        | j        ¬¦  «        ¦  «        }|                     | t+          d¦  «        ¦  «        }|�?|j        t          j	        k    r%|                     | t+          d¦  «        ¦  «        }n||z   }t          |
| j        d         ¦  «        }t-          j        |¦  «        } | | z  }!|| z  }"t          j        |!|"                     dd¦  «        ¦  «        }#|#}|#|z   }$|	dk    r|$}|d
k    r|t          j        |$|z  ¦  «        z  }$|	dk    r|$}|�x|t6          v rX|$j        }%|$                     t:          j        |         ¦  «        }$t          j        |$d¬	¦  «        }&|&                     |%¦  «        }&n-t          j        |$d¬	¦  «        }&nt          j        |$d¬	¦  «        }&|	dk    r|&}t          j        |&|¦  «        }|dk    r+|                     dd¦  «                              ||d¦  «        }||||fS )zMAttention-23 https://onnx.ai/onnx/operators/onnx__Attention.html#attention-23)r
   r0   r1   r   r1   c                  ó   — dS )Nz;q_num_heads and kv_num_heads must be provided for 3D inputsr   r   r$   r"   r@   zattention_23.<locals>.<lambda>‰  s   € ÐQ€ r$   r
   r.   c                  ó   — dS )Nz'Q, K, and V should be 4D tensors by nowr   r   r$   r"   r@   zattention_23.<locals>.<lambda>’  s   € Ð9€ r$   Nr]   r’   )r™   Ú	dropout_pr“   rr   Ú
enable_gqar2   c                  ó   — dS )Nz'Cannot use both is_causal and attn_maskr   r   r$   r"   r@   zattention_23.<locals>.<lambda>à  s   € Ð+T€ r$   z-infr=   rV   r0   )!r^   r7   r   r_   r|   rv   rd   Úcloner3   Úboolr‰   ÚnnÚ
functionalÚscaled_dot_product_attentionr†   r‹   Úzerosr4   ÚtrilÚonesÚmasked_fillÚfloatrt   ru   r…   rz   ÚtanhÚ-_ATTENTION_23_ALLOWED_INTERMEDIATE_PRECISIONSÚtor   ÚONNX_DTYPE_TO_TORCH_DTYPEÚsoftmaxra   )'r}   r~   r˜   r™   rš   r›   r“   r”   r•   r�   rr   r–   r—   Únum_head_dimÚsequence_dimÚhead_dimÚinput_shape_lenrC   r�   Úq_head_sizer¢   r£   r   r€   Úkv_sequence_lengthÚcan_use_sdparp   r¤   r�   Ú	attn_biasÚcausal_maskrŽ   r�   r�   r‘   Úqk_matmul_outputÚqk_with_biasÚoriginal_dtypeÚ
qk_softmaxs'                                          r"   Úattention_23rÉ   l  sq  € ð& ,3Ñ(€L�, õ ˜!œ'‘l”l€OØ”˜”€Jõ ˆ1Œ7�|„|�qÒÐÝŒØ˜1ÒÐ2 °Ò!2ØQÐQñ	
ô 	
ð 	
ð œG AœJÐÝ˜a ¨[Ñ9Ô9ˆÝ˜a ¨\Ñ:Ô:ˆÝ˜a ¨\Ñ:Ô:ˆå	„LÝˆAŒG‰Œ˜ÒÐE�c !¤'™lœl¨aÒ/ÐEµC¸¼±L´LÀAÒ4EØ9Ð9ñô ð ð ”'˜(Ô#€KÝ˜e [Ñ1Ô1€Eð
 Ðõ 	Œ	�8˜Q�- \Ð2Ñ2Ô2Ð2à�WŠW‰YŒYð ð Ð!õ 	Œ	�:˜q�/ |Ð4Ñ4Ô4Ð4à�WŠW‰YŒYð ð ˜€q€Að œ' ,Ô/ÐØœ7 <Ô0ÐØœ Ô-ÐØœ Ô.Ðð 	�3Šð 	AØ! QÒ&ð	Aà Ð%ð	Að ˜$ÐÐ? )¤/µU´ZÒ"?ð	 õ  Ð 3Ð5IÑJÔJÐJàð k-å”Ô$×AÒAØØØØØØØÝØ#Ð';Ò;ñô ð Bñ 
ô 
ˆõ 1ØØØØ ØØ!ñ
ô 
ˆ	‰	ð Ð"6Ò6Ð6Ø/Ð3GÑGˆMØ×#Ò# M°|Ð#ÑDÔDˆAØ×#Ò# M°|Ð#ÑDÔDˆAõ ”KØÐ1¸¼ÈÌð
ñ 
ô 
ˆ	ð
 ð 	KÝŒLØ˜TÐ!Ð#TÐ#Tñô ð õ  œ*Ý”
Ø%Ø&Ýœ*Øœ8ð	ñ ô ñô ˆKð "×-Ò-¨{¨l½EÀ&¹M¼MÑJÔJˆIð Ð ØŒ¥%¤*Ò,Ð,à%×1Ò1°9°*½eÀF¹m¼mÑLÔL�	�	ð &¨	Ñ1�	õ )¨°´¸´
Ñ;Ô;ˆõ ”Y˜|Ñ,Ô,ˆ
Ø�z‘>ˆØ�z‘>ˆõ !œ<¨°(×2DÒ2DÀRÈÑ2LÔ2LÑMÔMÐð %ˆ	ð (¨)Ñ3ˆà  AÒ%Ð%Ø$ˆIð �SŠ=ˆ=Ø"¥U¤Z°¸wÑ0FÑ%GÔ%GÑGˆLà  AÒ%Ð%Ø$ˆIð Ð(à Õ$QÐQÐQØ!-Ô!3�Ø+ŸšÝ#Ô=Ð>OÔPñ ô  �õ #œ]¨<¸RÐ@Ñ@Ô@�
Ø'Ÿ]š]¨>Ñ:Ô:�
�
å"œ]¨<¸RÐ@Ñ@Ô@�
�
åœ |¸Ð<Ñ<Ô<ˆJà  AÒ%Ð%Ø"ˆIõ ”˜j¨!Ñ,Ô,ˆð ˜!ÒÐà×!Ò! ! QÑ'Ô'×/Ò/°
Ð<MÈrÑRÔRˆà�; ¨yÐ8Ð8r$   )N)NNN)$Ú__doc__rt   Úcollections.abcr   Útypingr   Útyping_extensionsr   r   Útorch.onnx.opsr   r   r   r	   ÚdictÚ_opsÚ
OpOverloadÚ__annotations__Ú	frozensetr¸   ÚstrÚintr%   ÚTensorr®   r9   rq   r¶   rv   r|   r†   r‰   rƒ   Útupler¥   rÉ   r   r$   r"   ú<module>rØ      s>  ððð ð ð €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à €€€Ø *Ð *Ð *Ð *Ð *Ð *ð €Yˆt�_„_€Ø€WˆT�]„]€ð ACÐ ˜˜UœZÔ2°HÐ<Ô=Ð BÐ BÑ BØ09°	ðð ð ñ1ô 1Ð -ðØðØ!$ðØ19¸"¸b¸&Ô1Aðàˆx˜˜B˜ÔÐ  (¨2¨r¨6Ô"2Ð2Ô3ðð ð ð ð. )-ð	@ð ØØ !ð@ð @ð @Ø„|ð@àŒ|ð@ð Œ|ð@ð ”, Ñ%ð	@ð ð@ð ð@ð ð@ð „\ð@ð @ð @ð @ð0 
€Ð
˜RÐ!?Ñ@Ô@ð
 )-ð	D/ð ØØ !ðD/ð D/ð D/Ø„|ðD/àŒ|ðD/ð Œ|ðD/ð ”, Ñ%ð	D/ð ðD/ð ðD/ð ðD/ð „\ðD/ð D/ð D/ñ AÔ@ðD/ðNH˜U T™\ð H°cð H¸eð Hð Hð Hð Hð

ØŒLð
Ø&)ð
Ø69ð
à
„\ð
ð 
ð 
ð 
ðFØ„|ðFà„|ðFð ðFð ð	Fð
 �4‰<ðFð ðFð „\ðFð Fð Fð Fð$ØðØ47ðà	ðð ð ð ð>Ø„|ð>à„|ð>ð ð>ð ð	>ð
 �4‰<ð>ð „\ð>ð >ð >ð >ð4 &*Ø$(Ø&*ðQ9ð ØØØ!"ØØØ$(ðQ9ð Q9ð Q9Ø„|ðQ9à„|ðQ9ð „|ðQ9ð Œ|˜dÑ"ð	Q9ð
 Œ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ð Q9ð Q9ð Q9ðh 
€ˆ+�rÐ2Ñ3Ô3ð
 &*Ø$(Ø&*ð}9ð ØØØ!"ØØØ$(ð}9ð }9ð }9Ø„|ð}9à„|ð}9ð „|ð}9ð Œ|˜dÑ"ð	}9ð
 Œl˜TÑ!ð}9ð ”˜tÑ#ð}9ð ð}9ð ð}9ð ð}9ð ð}9ð �4‰<ð}9ð ð}9ð ˜T‘zð}9ð ˆ5Œ<˜œ u¤|°U´\ÐAÔBð}9ð }9ð }9ñ 4Ô3ð}9ð }9ð }9r$   