Ë
    [^(hâ	  ã                   ó|   — d dl mZ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y)é    )ÚAnyÚOptionalN)Úis_fake)Ú	TwoTensor)Úreturn_and_correct_aliasingc                   ól   — 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e   fd
„Zy)ÚWrapperSubclassNc                 ó<  — |€|j                  «       }|€|j                  «       }i }||d<   |j                  «       |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/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/testing/_internal/subclasses.pyÚ__new__zWrapperSubclass.__new__   sž   € àÐØŸ™›ˆJØÐØŸ8™8›:ˆLàˆØ(ˆˆyÑØ#$×#3Ñ#3Ó#5ˆÐÑ ØŸ8™8ˆˆxÑØŸ8™8ˆˆxÑØ"#§/¡/ˆˆÑØŸ'™'ˆˆw‰Ü�l‰l×1Ñ1°#°zÑLÀVÑLˆàˆ
ó    c                 ó   — || _         y ©N©r   )Úselfr   r   r   s       r   Ú__init__zWrapperSubclass.__init__   s	   € Øˆ�r   c                 ó4   — dt        | j                  «      › d�S )NzWrapperSubclass(ú))Úreprr   ©r"   s    r   Ú__repr__zWrapperSubclass.__repr__!   s   € Ø!¤$ t§v¡v£, ¨qÐ1Ð1r   c                 ó   — dgd fS ©Nr   © r'   s    r   Ú__tensor_flatten__z"WrapperSubclass.__tensor_flatten__$   s   € Øˆu�dˆ{Ðr   c                 óT   — |�J ‚| d   }t        |«      r|€J ‚|€J ‚t        |||«      S r*   )r   r	   )Úinner_tensorsÚmetar   r   r   s        r   Ú__tensor_unflatten__z$WrapperSubclass.__tensor_unflatten__'   sD   € àˆ|Ðˆ|Ø˜#ÑˆÜ�1Œ:ØÐ)Ð)Ð)ØÐ+Ð+Ð+Ü˜q *¨lÓ;Ð;r   c                 óŒ  — |€i }t        j                  t        d„ |«      }t        j                  t        d„ |«      } ||i |¤Ž}t        j                  |«      \  }}	|D �
cg c])  }
t	        |
t
        j                  «      rt        |
«      n|
‘Œ+ }}
t        j                  ||	«      }ddlm	} ||u r|S t        ||||«      S c c}
w )Nc                 ó   — | j                   S r    r!   ©Úxs    r   ú<lambda>z4WrapperSubclass.__torch_dispatch__.<locals>.<lambda>4   s
   € ÀÇÁ€ r   c                 ó   — | j                   S r    r!   r3   s    r   r5   z4WrapperSubclass.__torch_dispatch__.<locals>.<lambda>6   s
   € À1Ç3Á3€ r   r   )Úcond_op)ÚpytreeÚtree_map_onlyr	   Útree_flattenÚ
isinstancer   r   Útree_unflattenÚtorch._higher_order_ops.condr7   r   )r   ÚfuncÚtypesÚargsr   Úargs_aÚkwargs_aÚout_aÚ
out_a_flatÚspecÚo_aÚout_flatr   r7   s                 r   Ú__torch_dispatch__z"WrapperSubclass.__torch_dispatch__0   sÇ   € àˆ>ØˆFÜ×%Ñ%¤o±}ÀdÓKˆä×'Ñ'¬¹ÈÓOˆá�fÐ) Ñ)ˆÜ!×.Ñ.¨uÓ5Ñˆ
�Dð "ö
àô %/¨s´E·L±LÔ$AŒO˜CÔ ÀsÑJð
ˆð 
ô ×#Ñ# H¨dÓ3ˆÝ8à�7‰?ØˆJä.¨t°T¸6À3ÓGÐGùò
s   Á!.CÚexpected_metadataÚexpected_typec                 ó¸   — |t        | j                  «      k(  r| j                  S |t        u r.t        | j                  | j                  j                  «       «      S y r    )Útyper   r   Úclone)r"   rI   rJ   s      r   Ú#__coerce_same_metadata_as_tangent__z3WrapperSubclass.__coerce_same_metadata_as_tangent__F   sC   € ð œD §¡›LÒ(Ø—6‘6ˆMØœiÑ'Ü˜TŸV™V T§V¡V§\¡\£^Ó4Ð4àr   )NNr    )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r#   r(   r,   r0   ÚclassmethodrH   r   r   rL   rN   r+   r   r   r	   r	      sm   „ Øòó ðó"ò2òð ñ<ó ð<ð ñHó ðHð, GKñØ!$ðØ5=¸d±^ôr   r	   )Útypingr   r   r   Útorch.utils._pytreeÚutilsÚ_pytreer8   Útorch._subclasses.fake_tensorr   Ú"torch.testing._internal.two_tensorr   Útorch.utils._python_dispatchr   r   r	   r+   r   r   ú<module>r[      s,   ðç  ã ß $Ð $Ý 1Ý 8Ý DôC�e—l‘lõ Cr   