§
    �Štj�
  ã                   óv   — d dl mZ d dlZd dlmc mZ d dlmZ d dl	m
Z
 d dlmZ  G d„ dej        ¦  «        ZdS )é    )ÚAnyN)Úis_fake)Ú	TwoTensor)Úreturn_and_correct_aliasingc                   ó€   — e Zd Zedd„¦   «         Zdd„Zd„ Zd„ Zed„ ¦   «         Ze	d„ ¦   «         Z
	 dded	edz  fd
„ZdS )ÚWrapperSubclassNc                 ó  — |€|                      ¦   «         }|€|                     ¦   «         }i }||d<   |                     ¦   «         |d<   |j        |d<   |j        |d<   |j        |d<   |j        |d<   t          j        j	        | |fi |¤Ž}|S )NÚstridesÚstorage_offsetÚdeviceÚlayoutÚrequires_gradÚdtype)
ÚsizeÚstrider   r   r   r   r   ÚtorchÚTensorÚ_make_wrapper_subclass)ÚclsÚaÚ
outer_sizeÚouter_strideÚkwargsÚouts         ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/testing/_internal/subclasses.pyÚ__new__zWrapperSubclass.__new__   sž   € àÐØŸš™œˆJØÐØŸ8š8™:œ:ˆLàˆØ(ˆˆyÑØ#$×#3Ò#3Ñ#5Ô#5ˆÐÑ Øœ8ˆˆxÑØœ8ˆˆxÑØ"#¤/ˆˆÑØœ'ˆˆw‰ÝŒlÔ1°#°zÐLÐLÀVÐLÐLˆàˆ
ó    c                 ó   — || _         d S ©N©r   )Úselfr   r   r   s       r   Ú__init__zWrapperSubclass.__init__   s   € ØˆŒˆˆr   c                 ó2   — dt          | j        ¦  «        › d�S )NzWrapperSubclass(ú))Úreprr   ©r!   s    r   Ú__repr__zWrapperSubclass.__repr__!   s   € Ø1¥$ t¤v¡,¤,Ð1Ð1Ð1Ð1r   c                 ó   — dgd fS )Nr   © r&   s    r   Ú__tensor_flatten__z"WrapperSubclass.__tensor_flatten__$   s   € Øˆu�dˆ{Ðr   c                 ó¸   — |�t          d¦  «        ‚| d         }t          |¦  «        r"|€t          d¦  «        ‚|€t          d¦  «        ‚t          |||¦  «        S )NzExpected meta to be Noner   z"Expected outer_size to not be Nonez$Expected outer_stride to not be None)ÚAssertionErrorr   r   )Úinner_tensorsÚmetar   r   r   s        r   Ú__tensor_unflatten__z$WrapperSubclass.__tensor_unflatten__'   sl   € àÐÝ Ð!;Ñ<Ô<Ð<Ø˜#ÔˆÝ�1‰:Œ:ð 	MØÐ!Ý$Ð%IÑJÔJÐJØÐ#Ý$Ð%KÑLÔLÐLÝ˜q *¨lÑ;Ô;Ð;r   c                 ó6  — |€i }t          j        t          d„ |¦  «        }t          j        t          d„ |¦  «        } ||i |¤Ž}t          j        |¦  «        \  }}	d„ |D ¦   «         }
t          j        |
|	¦  «        }ddlm} ||u r|S t          ||||¦  «        S )Nc                 ó   — | j         S r   r    ©Úxs    r   ú<lambda>z4WrapperSubclass.__torch_dispatch__.<locals>.<lambda>7   s   € ÀÄ€ r   c                 ó   — | j         S r   r    r2   s    r   r4   z4WrapperSubclass.__torch_dispatch__.<locals>.<lambda>9   s   € À1Ä3€ r   c                 ód   — g | ]-}t          |t          j        ¦  «        rt          |¦  «        n|‘Œ.S r)   )Ú
isinstancer   r   r   )Ú.0Úo_as     r   ú
<listcomp>z6WrapperSubclass.__torch_dispatch__.<locals>.<listcomp>=   sF   € ð 
ð 
ð 
àõ %/¨sµE´LÑ$AÔ$AÐJ�O˜CÑ Ô Ð Àsð
ð 
ð 
r   r   )Úcond_op)ÚpytreeÚtree_map_onlyr   Útree_flattenÚtree_unflattenÚtorch._higher_order_ops.condr;   r   )r   ÚfuncÚtypesÚargsr   Úargs_aÚkwargs_aÚout_aÚ
out_a_flatÚspecÚout_flatr   r;   s                r   Ú__torch_dispatch__z"WrapperSubclass.__torch_dispatch__3   sÇ   € àˆ>ØˆFÝÔ%¥o°}°}ÀdÑKÔKˆåÔ'­¸¸ÈÑOÔOˆà��fÐ) Ð)Ð)ˆÝ!Ô.¨uÑ5Ô5Ñˆ
�Dð
ð 
à!ð
ñ 
ô 
ˆõ Ô# H¨dÑ3Ô3ˆØ8Ð8Ð8Ð8Ð8Ð8à�7ˆ?ˆ?ØˆJå.¨t°T¸6À3ÑGÔGÐGr   Úexpected_metadataÚexpected_typec                 óª   — |t          | j        ¦  «        u r| j        S |t          u r,t          | j        | j                             ¦   «         ¦  «        S d S r   )Útyper   r   Úclone)r!   rK   rL   s      r   Ú#__coerce_same_metadata_as_tangent__z3WrapperSubclass.__coerce_same_metadata_as_tangent__I   sJ   € ð �D ¤™LœLÐ(Ð(Ø”6ˆMØ�iÐ'Ð'Ý˜TœV T¤V§\¢\¡^¤^Ñ4Ô4Ð4àˆtr   )NNr   )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r"   r'   r*   r/   ÚclassmethodrJ   r   rN   rP   r)   r   r   r   r      sÑ   € € € € € Øðð ð ñ „\ðð"ð ð ð ð2ð 2ð 2ðð ð ð ð	<ð 	<ñ „\ð	<ð ðHð Hñ „[ðHð, DHðð Ø!$ðØ59¸D±[ðð ð ð ð ð r   r   )Útypingr   r   Útorch.utils._pytreeÚutilsÚ_pytreer<   Útorch._subclasses.fake_tensorr   Ú"torch.testing._internal.two_tensorr   Útorch.utils._python_dispatchr   r   r   r)   r   r   ú<module>r]      s±   ðà Ð Ð Ð Ð Ð à €€€Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø DÐ DÐ DÐ DÐ DÐ DðFð Fð Fð Fð F�e”lñ Fô Fð Fð Fð Fr   