§
    ŠŠtjðG  ã                   óà  — d dl Z d dlZd dlZd dlmZ d dlZd dlmZmZmZmZ d dl	m
Z
 ddlmZmZmZ ej        Z e
d¦  «        ddd	œd
ej        dedz  dej        ej        ej                 z  dz  defd„¦   «         Zdeej        z  dedededef
d„Zd„ Zedej        e         dee         dedededej        diZd„ Z d„ Z! e¦   «         Z"dej#        defd„Z$d ee%         dee         fd!„Z&dS )"é    N)ÚGenericAlias)ÚdeviceÚdtypeÚTensorÚtypes)Ú
exposed_iné   )Ú_resolve_opaque_type_infoÚis_opaque_reference_typeÚis_opaque_typeztorch.library© )Úop_nameÚtagsÚprototype_functionr   r   Úreturnc               óX  ‡‡‡ ‡!‡"‡#‡$— d}| j         Š dŠ!t          j        | ¦  «        Š"|€d}nt          |t          j        ¦  «        r|f}t          j        j        |v }t          j        j        |v }|r|rt          d¦  «        ‚t          |¦  «        t          urt          |¦  «        }ˆ"fd„Šdt          fˆˆ ˆ!fd„Šdt          t          t                   t          z  d	f         d
t          t          t          j        d	f         t          f         fˆ#fd„Š$dt          t                   t          z  d
t          t          j        t          f         fˆˆ$fd„Š#g }t!          ¦   «         }d}	d}
d}d}g }g }t#          ‰"j                             ¦   «         ¦  «        D �]Y\  }\  }}t)          |¦  «        s ‰d¦  «         |j        t          j        j        k    r|	s|                     d¦  «         d}	|j        t          j        j        u r ‰d|› d�¦  «          ‰#|j        ¦  «        \  }}d}|t6          vrît9          |¦  «        rt;          |¦  «        j        }n×|t          j        j         k    r ‰d|› d�¦  «         n²tC          |d¦  «        rc|j"        t          u rUtG          |¦  «        }d}|t6          v rd|› d�} ‰d|› d|j        › d|› dt6           $                    ¦   «         › d�	¦  «         n? ‰d|› d|j        › dt6           $                    ¦   «         › d�¦  «         nt6          |         }|€t          d|› �¦  «        ‚|j        t          j        j%        k    r|
€	|}
|}d|› �}d}t          |¦  «        t          u rJ||k    rtM          d ¦  «        ‚| '                    d!¦  «        rd}d"|› d#|tQ          d!¦  «        d…         › �}nG||v rCd}| '                    d!¦  «        s ‰d|› d$�¦  «         d"|› d#|tQ          d!¦  «        d…         › �}|ri|rg|j        t          j        j        k    r ‰d%¦  «         |d"|› d#�k    r ‰d&¦  «         |                     d|› �¦  «         |                     |¦  «         | )                    |¦  «         |j*        t          j        j        u r|                     |› d'|› �¦  «         �Œ,d}|j*        �'t          |j*        tV          tX          t          f¦  «        rt          |j*        ¦  «        }nËt          |j*        t          t          j-        f¦  «        rd(|j*        › d(�}n™t          |j*        t          j.        ¦  «        rVt          |j*        ¦  «        }d)}| '                    |¦  «        st          d*|›d+�¦  «        ‚|tQ          |¦  «        d…         }n$ ‰d|› d,t          |j*        ¦  «        › d-�¦  «         |                     |› d'|› d.|› �¦  «         �Œ[||k    r3t!          |¦  «        |z
  }tQ          |¦  «        d/k    r ‰|› d0�¦  «         |rW|
€ ‰d1¦  «         |d!k    r ‰d2¦  «         t          |¦  «        t          u st!          |¦  «        |
hk    r ‰d3|› d�¦  «         |rtQ          |¦  «        d/k    r ‰d4¦  «          ‰#‰"j/        ¦  «        \  }}|rta          |||‰¦  «        }ntc          |‰¦  «        }|r|d!k    r ‰d5¦  «         d6|› d#�}|�|› d7d8 2                    |¦  «        › d9|› �S d7d8 2                    |¦  «        › d9|› �S ):a,  Parses the schema of a given function with type hints. The schema is inferred from the
    function's type hints, and can be used to define a new operator.

    We make the following assumptions:

    * None of the outputs alias any of the inputs or each other.
    * | String type annotations "device, dtype, Tensor, types" without library specification are
      | assumed to be torch.*. Similarly, string type annotations "Optional, List, Sequence, Union"
      | without library specification are assumed to be typing.*.
    * | Only the args listed in ``mutates_args`` are being mutated. If ``mutates_args`` is "unknown",
      | it assumes that all inputs to the operator are being mutates.

    Callers (e.g. the custom ops API) are responsible for checking these assumptions.

    Args:
        prototype_function: The function from which to infer a schema for from its type annotations.
        op_name (Optional[str]): The name of the operator in the schema. If ``name`` is None, then the
            name is not included in the inferred schema. Note that the input schema to
            ``torch.library.Library.define`` requires an operator name.
        mutates_args ("unknown" | Iterable[str]): The arguments that are mutated in the function.
        tags (Tag | Sequence[Tag] | None): one or more tags to apply to the
            inferred schema. Use ``torch.Tag.inplace`` or ``torch.Tag.out`` to
            infer the conventional aliasing for those operator kinds.

    Returns:
        The inferred schema.

    Example:
        >>> def foo_impl(x: torch.Tensor) -> torch.Tensor:
        >>>     return x.sin()
        >>>
        >>> infer_schema(foo_impl, op_name="foo", mutates_args={})
        foo(Tensor x) -> Tensor
        >>>
        >>> infer_schema(foo_impl, mutates_args={})
        (Tensor x) -> Tensor
    ÚunknownNr   z:torch.Tag.inplace and torch.Tag.out are mutually exclusivec                 ó0   •— t          d| › d‰› d�¦  «        ‚)Nzinfer_schema(func): z Got func with signature ú))Ú
ValueError)ÚwhatÚsigs    €úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_library/infer_schema.pyÚerror_fnzinfer_schema.<locals>.error_fnY   s%   ø€ ÝÐU°ÐUÐUÈsÐUÐUÐUÑVÔVÐVó    Úannotation_typec           
      óð   •— 	 t          | ‰‰¦  «        S # t          $ r} ‰d| › d|› d�¦  «         Y d }~d S d }~wt          $ r2} ‰d| › dt          |¦  «        j        › d|› d�¦  «         Y d }~d S d }~ww xY w)NzUnsupported type annotation z. It is not a type. (zà). If you are using 'from __future__ import annotations', note that annotations are evaluated lazily as strings; make sure all types referenced in annotations are importable at module scope, not only inside a local function.z: r   )ÚevalÚ	NameErrorÚ	ExceptionÚtypeÚ__name__)r   Úer   Ú
pf_globalsÚ	pf_localss     €€€r   Úconvert_type_stringz)infer_schema.<locals>.convert_type_string\   s  ø€ ð	Ý˜¨°YÑ?Ô?Ð?øÝð 	ð 	ð 	ØˆHð,¨ð ,ð ,Øð,ð ,ð ,ñô ð ð ð ð ð ð ð øøøøõ ð 	ð 	ð 	ØˆHð-¨ð -ð -Ý˜‘G”GÔ$ð-ð -Ø()ð-ð -ð -ñô ð ð ð ð ð ð ð øøøøð	øøøs   ƒ ”
A5ž6¶A5Á'A0Á0A5Útys.r   c                 ó”   •— g }d}| D ]*} ‰|¦  «        \  }}|                      |¦  «         ||z  }Œ+|rt          |¦  «        dfS | dfS )NFT)ÚappendÚtuple)r'   ÚresÚchangedÚtyÚ
ty_changedÚunstringify_types        €r   Úunstringify_typesz'infer_schema.<locals>.unstringify_typesn   sp   ø€ ð ˆØˆØð 	"ð 	"ˆBØ-Ð-¨bÑ1Ô1‰NˆB�
Ø�JŠJ�r‰NŒNˆNØ�zÑ!ˆGˆGØð 	Ý˜‘:”:˜tÐ#Ð#à˜�:Ðr   r-   c                 óä   •— t          | t          ¦  «        r ‰| ¦  «        dfS t          j        | ¦  «        x}r4 ‰t          j        | ¦  «        ¦  «        \  }}|rt          ||¦  «        dfS | dfS )NTF)Ú
isinstanceÚstrÚtypingÚ
get_originÚget_argsr   )r-   ÚoriginÚargsÚargs_changedr&   r0   s       €€r   r/   z&infer_schema.<locals>.unstringify_type|   s‹   ø€ õ �b�#ÑÔð 	8Ø&Ð& rÑ*Ô*¨DÐ0Ð0ÝÔ(¨Ñ,Ô,Ð,ˆVð 	8Ø!2Ð!2µ6´?À2Ñ3FÔ3FÑ!GÔ!GÑˆD�,Øð 8Ý# F¨DÑ1Ô1°4Ð7Ð7à�5ˆyÐr   Fz>We do not support positional-only args, varargs, or varkwargs.Ú*Tz
Parameter z must have a type annotation.zª's type cannot be inferred from the schema as it is a ScriptObject. Please manually specify the schema using the `schema=` kwarg with the actual type of the ScriptObject.Ú
__origin__z

zFor example, z.

z has unsupported type z]. We do not support Tuple inputs in schema. As a workaround, please try to use List instead. zThe valid types are: ú.ú. The valid types are: zschema_type is None for param Úazomutates_args must either be a sequence of the names of the arguments that are mutated or the string 'unknown'. r   zTensor(aú!)zM is in mutable_args but only Tensors or collections of Tensors can be mutatedz<torch.Tag.out requires mutable arguments to be keyword-only.zBtorch.Tag.out only supports mutable keyword-only Tensor arguments.ú ú"ztorch.zdtype repr z must start with 'torch.'z' has an unsupported default value type z;. Please file an issue on GitHub so we can prioritize this.ú=r   z» in mutates_args were not found in the custom op's signature. mutates_args should contain the names of all args that the custom op mutates, or just the string 'unknown' if you don't know.z8torch.Tag.inplace requires a positional Tensor argument.zHtorch.Tag.inplace requires the first positional argument to be a Tensor.z^torch.Tag.inplace requires mutates_args to contain exactly the first positional argument, got zItorch.Tag.out requires at least one mutable keyword-only Tensor argument.zDtorch.Tag.inplace requires the return annotation to be torch.Tensor.úTensor(ú(ú, z) -> )3Ú__globals__ÚinspectÚ	signaturer2   ÚtorchÚTagÚinplaceÚoutÚAssertionErrorr!   r3   r*   Úobjectr4   ÚAnyÚboolÚsetÚ	enumerateÚ
parametersÚitemsÚsupported_paramÚkindÚ	ParameterÚKEYWORD_ONLYr)   Ú
annotationÚemptyÚSUPPORTED_PARAM_TYPESr   r
   Ú
class_nameÚ_CÚScriptObjectÚhasattrr;   Útuple_to_listÚkeysÚPOSITIONAL_OR_KEYWORDr   Ú
startswithÚlenÚaddÚdefaultÚintÚfloatr   r   Úreturn_annotationÚ_infer_out_return_schemaÚparse_returnÚjoin)%r   Úmutates_argsr   r   ÚUNKNOWN_MUTATESÚ
is_inplaceÚis_outÚparamsÚ	seen_argsÚsaw_kwarg_only_argÚfirst_positional_arg_nameÚ first_positional_arg_schema_typeÚfirst_positional_arg_aliasÚout_arg_aliasesÚout_arg_namesÚidxÚnameÚparamr   Ú_Úschema_typeÚ	list_typeÚexample_type_strÚ
is_mutatedÚdefault_reprÚ
dtype_reprÚ	torch_dotÚmutates_args_not_seenri   Úretr&   r   r$   r%   r   r/   r0   s%                                 @@@@@@@r   Úinfer_schemar†      sÄ	  øøøøøøø€ ð\  €OØ#Ô/€JØ€Iõ Ô
Ð.Ñ
/Ô
/€CØ€|ØˆˆÝ	�D�%œ)Ñ	$Ô	$ð ØˆwˆÝ”Ô" dÐ*€JÝŒYŒ]˜dÐ"€FØð 
�fð 
ÝØHñ
ô 
ð 	
õ ˆLÑÔ¥Ð$Ð$Ý˜\Ñ*Ô*ˆðWð Wð Wð Wð Wð­Sð ð ð ð ð ð ð ð ð$Ý•4�”<¥#Ñ% sÐ*Ô+ðå	�u•V”Z �_Ô%¥tÐ+Ô	,ðð ð ð ð ð ð�T¥&œ\­CÑ/ð µE½&¼*ÅdÐ:JÔ4Kð ð ð ð ð ð ð ð €FÝ‘”€IØÐØ $ÐØ'+Ð$Ø!%ÐØ€OØ€MÝ'¨¬×(<Ò(<Ñ(>Ô(>Ñ?Ô?ð oBñ oBÑˆ‰]ˆd�EÝ˜uÑ%Ô%ð 	WØˆHÐUÑVÔVÐVàŒ:�Ô*Ô7Ò7Ð7à%ð *Ø—’˜cÑ"Ô"Ð"Ø%)Ð"àÔ�wÔ0Ô6Ð6Ð6ØˆHÐE $ÐEÐEÐEÑFÔFÐFð .Ð-¨eÔ.>Ñ?Ô?Ñˆ˜àˆØÕ"7Ð7Ð7Ý˜oÑ.Ô.ð Ý7¸ÑHÔHÔS��Ø ¥E¤HÔ$9Ò9Ð9Ø�ðZ ð Zð Zð Zñô ð ð õ ˜¨Ñ6Ô6ðà#Ô.µ%Ð7Ð7å)¨/Ñ:Ô:�	Ø#)Ð àÕ 5Ð5Ð5Ø'G°yÐ'GÐ'GÐ'GÐ$Ø�ðL ð Lð L¸UÔ=Mð Lð Là'ðLð Lõ -B×,FÒ,FÑ,HÔ,HðLð Lð Lñô ð ð ð �ðL ð Lð L¸UÔ=Mð Lð LÝ,A×,FÒ,FÑ,HÔ,HðLð Lð Lñô ð ð õ
 0°Ô@ˆKàÐÝ Ð!HÀ$Ð!HÐ!HÑIÔIÐIð ŒJ�'Ô+ÔAÒAÐAØ)Ð1à(,Ð%Ø/:Ð,Ø)2¨S¨¨Ð&àˆ
Ý�ÑÔ¥Ð$Ð$Ø˜Ò.Ð.Ý ðOñô ð ð ×%Ò% hÑ/Ô/ð OØ!�
ØN¨ÐNÐN°½CÀ¹M¼M¸O¸OÔ0LÐNÐN�øØ�\Ð!Ð!ØˆJØ×)Ò)¨(Ñ3Ô3ð Ø�Øt ÐtÐtÐtñô ð ð K SÐJÐJ¨K½¸H¹¼¸¸Ô,HÐJÐJˆKØð 	'�jð 	'ØŒz�WÔ.Ô;Ò;Ð;Ø�ÐWÑXÔXÐXØÐ0¨Ð0Ð0Ð0Ò0Ð0Ø�ØXñô ð ð ×"Ò" 9 s 9 9Ñ-Ô-Ð-Ø× Ò  Ñ&Ô&Ð&Ø�Š�dÑÔÐØŒ=�GÔ-Ô3Ð3Ð3à�MŠM˜[Ð1Ð1¨4Ð1Ð1Ñ2Ô2Ð2Ñ2àˆLØŒ}Ð$­
°5´=Å3ÍÍtÐBTÑ(UÔ(UÐ$Ý" 5¤=Ñ1Ô1��Ý˜EœM­Cµ´Ð+>Ñ?Ô?ð Ø3 5¤=Ð3Ð3Ð3��Ý˜EœM­5¬;Ñ7Ô7ð Ý  ¤Ñ/Ô/�
Ø$�	Ø!×,Ò,¨YÑ7Ô7ð Ý(ØM jÐMÐMÐMñô ð ð  *­#¨i©.¬.Ð*:Ð*:Ô;��à�ðQ ð Qð QÍdÐSXÔS`ÑNaÔNað Qð Qð Qñô ð ð
 �MŠM˜[Ð@Ð@¨4Ð@Ð@°,Ð@Ð@ÑAÔAÐAÑAØ�Ò&Ð&Ý # LÑ 1Ô 1°IÑ =ÐÝÐ$Ñ%Ô%¨Ò)Ð)ØˆHØ(ð Vð Vð Vñô ð ð ð Ø$Ð,ØˆHÐOÑPÔPÐPØ+¨xÒ7Ð7ØˆHØZñô ð õ �ÑÔ¥Ð$Ð$­¨LÑ(9Ô(9Ø%ð>
ò )
ð )
ð ˆHðFØ6BðFð Fð Fñô ð ð ð 
•#�oÑ&Ô&¨!Ò+Ð+ØˆØWñ	
ô 	
ð 	
ð ,Ð+¨CÔ,AÑBÔBÑÐ�qØð 8Ý&Ø˜°¸xñ
ô 
ˆˆõ Ð,¨hÑ7Ô7ˆØð 7Ø�(Š?ˆ?ØˆHØVñô ð ð 7Ð2Ð6Ð6Ð6ˆØÐØÐ9Ð9˜DŸIšI fÑ-Ô-Ð9Ð9°CÐ9Ð9Ð9Ø,ˆt�yŠy˜Ñ Ô Ð,Ð, sÐ,Ð,Ð,r   Ú	base_typeÚcpp_typeÚ	list_baseÚoptional_base_listÚoptional_list_basec                 ó–  ‡— | ‰ft           j        |          ‰› d�fg}dt          t           j        z  fd„}|r*|                     ˆfd„ || ¦  «        D ¦   «         ¦  «         |r:|                     ˆfd„ |t           j        |          ¦  «        D ¦   «         ¦  «         |r*|                     ˆfd„ || ¦  «        D ¦   «         ¦  «         |S )Nú?Útypc                 ó²   — t           j        |          t           j        |          t          t          j        j        | f¦  «        t          t          | f¦  «        fS ©N)r4   ÚSequenceÚListr   ÚcollectionsÚabcÚlist)rŽ   s    r   Úderived_seq_typesz(derived_types.<locals>.derived_seq_types;  sC   € åŒO˜CÔ ÝŒK˜ÔÝ�œÔ1°C°6Ñ:Ô:Ý� ˜vÑ&Ô&ð	
ð 	
r   c              3   ó&   •K  — | ]}|‰› d �fV — ŒdS )z[]Nr   ©Ú.0Úseq_typrˆ   s     €r   ú	<genexpr>z derived_types.<locals>.<genexpr>D  s?   øè è € ð 
ð 
Ø+2ˆW˜�o�o�oÐ&ð
ð 
ð 
ð 
ð 
ð 
r   c              3   ó&   •K  — | ]}|‰› d �fV — ŒdS )z?[]Nr   r˜   s     €r   r›   z derived_types.<locals>.<genexpr>H  sG   øè è € ð 
ð 
ð ð ˜Ð&Ð&Ð&Ð'ð
ð 
ð 
ð 
ð 
ð 
r   c              3   óF   •K  — | ]}t           j        |         ‰› d �fV — ŒdS )z[]?N)r4   ÚOptionalr˜   s     €r   r›   z derived_types.<locals>.<genexpr>N  sL   øè è € ð 
ð 
àõ Œ_˜WÔ%¨(Ð'7Ð'7Ð'7Ð8ð
ð 
ð 
ð 
ð 
ð 
r   )r4   rž   r!   Ú_SpecialFormÚextend)r‡   rˆ   r‰   rŠ   r‹   Úresultr–   s    `     r   Úderived_typesr¢   .  sP  ø€ ð 
�HÐå	Œ˜Ô	#¨ ^ ^ ^Ð4ðK€Fð
�t¥fÔ&9Ñ9ð 
ð 
ð 
ð 
ð ð 
Ø�Šð 
ð 
ð 
ð 
Ø6GÐ6GÈ	Ñ6RÔ6Rð
ñ 
ô 
ñ 	
ô 	
ð 	
ð ð 
Ø�Šð 
ð 
ð 
ð 
ð -Ð,­V¬_¸YÔ-GÑHÔHð
ñ 
ô 
ñ 	
ô 	
ð 	
ð
 ð 
Ø�Šð 
ð 
ð 
ð 
à,Ð,¨YÑ7Ô7ð
ñ 
ô 
ñ 	
ô 	
ð 	
ð €Mr   c                  óÐ  — t           ddddft          ddddft          ddddft          ddddft          ddddft
          j        ddddft          d	dddft          d
dddfg} t          j
                             ¦   «         r8ddlm} |                      t          j        t"          |¦  «        ddddf¦  «         g }| D ]}|                     t'          |Ž ¦  «         Œt)          |¦  «        S )Nr   TFÚSymIntrh   rP   r3   ÚScalarÚ
ScalarTypeÚDevicer   )Ú	GroupName)r   rg   rh   rP   r3   r   ÚNumberr   r   rI   ÚdistributedÚis_availableÚ"torch.distributed.distributed_c10dr¨   r)   r4   Úcastr!   r    r¢   Údict)Údatar¨   r¡   Úlines       r   Úget_supported_param_typesr±   U  s  € õ 
�˜4  uÐ-Ý	ˆh˜˜e TÐ*Ý	�˜˜u dÐ+Ý	ˆv�t˜U DÐ)Ý	ˆe�U˜E 5Ð)Ý	Œ�x  u¨eÐ4Ý	�˜e U¨EÐ2Ý	�˜5 %¨Ð/ð
L€Dõ Ô×%Ò%Ñ'Ô'ð PØ@Ð@Ð@Ð@Ð@Ð@à�Š•V”[¥ yÑ1Ô1°5¸%ÀÈÐNÑOÔOÐOà€FØð ,ð ,ˆØ�Š•m TÐ*Ñ+Ô+Ð+Ð+Ý�‰<Œ<Ðr   r   zTensor[]r¤   rh   rP   r¥   c                 ó@  ‡— | €dS | t           j        j        u r |d¦  «         t          j        | ¦  «        }|t
          urP| t          vr:t          | ¦  «        rt          | ¦  «        j	        S  |d| › dt          › d�¦  «         t          |          S t          j
        | ¦  «        }|D ]1}|t          vr&t          |¦  «        s |d| › dt          › d�¦  «         Œ2d„ Šd                     ˆfd„|D ¦   «         ¦  «        }t          |¦  «        d	k    rd
|z   dz   }d
|z   dz   S )Nz()z7No return type annotation was provided. Please add one.zReturn has unsupported type r=   r<   c                 óf   — t                                | ¦  «        x}r|S t          | ¦  «        j        S r�   )ÚSUPPORTED_RETURN_TYPESÚgetr
   r\   )Úargr-   s     r   Ú_return_type_strz&parse_return.<locals>._return_type_str“  s3   € Ý'×+Ò+¨CÑ0Ô0Ð0ˆ2ð 	ØˆIÝ(¨Ñ-Ô-Ô8Ð8r   rE   c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r�   r   )r™   r¶   r·   s     €r   r›   zparse_return.<locals>.<genexpr>˜  s/   øè è € Ð@Ð@°CÐ*Ð*¨3Ñ/Ô/Ð@Ð@Ð@Ð@Ð@Ð@r   r	   rD   r   )rG   rW   rZ   r4   r5   r*   r´   r   r
   r\   r6   rl   rd   )rY   r   r7   r8   r¶   Ú	output_tyr·   s         @r   rk   rk   x  sž  ø€ ØÐØˆtà•WÔ&Ô,Ð,Ð,ØˆÐJÑKÔKÐKåÔ˜zÑ*Ô*€FØ•UÐÐØÕ3Ð3Ð3Ý'¨
Ñ3Ô3ð HÝ0°Ñ<Ô<ÔGÐGØˆHðB¨zð Bð BÝ(>ðBð Bð Bñô ð õ
 & jÔ1Ð1åŒ?˜:Ñ&Ô&€DØð ð ˆØÕ,Ð,Ð,Õ5MÈcÑ5RÔ5RÐ,ØˆHðB¨zð Bð BÝ(>ðBð Bð Bñô ð øð
9ð 9ð 9ð
 —	’	Ð@Ð@Ð@Ð@¸4Ð@Ñ@Ô@Ñ@Ô@€Iõ ˆ4�y„y�A‚~€~Ø˜)‘O cÑ)ˆ	Ø�‰?˜SÑ Ð r   c                 óŠ  — t          |¦  «        dk    r
| t          u }nIt          j        | ¦  «        t          u o-t          j        | ¦  «        t          ft          |¦  «        z  k    }|s |dt	          |¦  «        › d�¦  «         d„ |D ¦   «         }t          |¦  «        dk    r|d         S dd                     |¦  «        › d�S )	Nr	   z`torch.Tag.out requires the return annotation to match the mutable keyword-only Tensor arguments r<   c                 ó   — g | ]}d |› d�‘Œ	S )rC   r?   r   )r™   Úout_arg_aliass     r   ú
<listcomp>z,_infer_out_return_schema.<locals>.<listcomp>µ  s$   € ÐXÐXÐX°}Ð2 Ð2Ð2Ð2ÐXÐXÐXr   r   rD   rE   r   )rd   r   r4   r5   r*   r6   rl   )ri   rw   rx   r   Ú"return_annotation_matches_out_argsÚaliased_returnss         r   rj   rj      s	  € õ ˆ?ÑÔ˜qÒ Ð Ø->Å&Ð-HÐ*Ð*å-3Ô->Øñ.
ô .
åð.ð .
å”Ð'8Ñ9Ô9½f¸YÍØñJ
ô J
ñ >
ò 
ð 	+ð .ð 
ØˆðMÝ5:¸=Ñ5IÔ5IðMð Mð Mñ	
ô 	
ð 	
ð
 YÐXÈÐXÑXÔX€OÝ
ˆ?ÑÔ˜qÒ Ð Ø˜qÔ!Ð!Ø,ˆt�yŠy˜Ñ)Ô)Ð,Ð,Ð,Ð,r   r{   c                 óT   — | j         t          j        j        t          j        j        fv S r�   )rV   rG   rW   rb   rX   )r{   s    r   rU   rU   ¾  s(   € ØŒ:ÝÔÔ/ÝÔÔ&ðð ð r   Ú
tuple_typec                 ót  — t          j        | ¦  «        }| t           j        u s| t          u s|st          S t          |¦  «        dk    rt          |d                  S t          |¦  «        dk    r"|d         t          u rt          |d                  S t          t           j        t          |¦  «                          S )z}
    Convert `tuple_type` into a list type with the same type arguments. Assumes that `tuple_type` is typing.Tuple type.
    r	   r   é   )r4   r6   ÚTupler*   r•   rd   ÚEllipsisÚUnion)rÁ   Ú	type_argss     r   r`   r`   Å  s¢   € õ ” 
Ñ+Ô+€Ià•f”lÐ"Ð"Ø�ÐÐØð õ ˆÝ	ˆY‰Œ˜1Ò	Ð	å�I˜a”LÔ!Ð!Ý	ˆY‰Œ˜1Ò	Ð	 ¨1¤µÐ!9Ð!9Ý�I˜a”LÔ!Ð!å•F”L¥ yÑ!1Ô!1Ô2Ô3Ð3r   )'r“   rG   r4   r   r   rI   r   r   r   Útorch.utils._exposed_inr   Úopaque_objectr
   r   r   Ú_TestTensorÚCallabler3   rJ   r‘   r†   r!   rŸ   rP   r¢   r±   r’   r•   rg   rh   r©   r´   rk   rj   r[   rW   rU   r*   r`   r   r   r   ú<module>rÌ      sU  ðà Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð à €€€Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð ð ð Œl€ð €ˆOÑÔð Ø:<ðS-ð S-ð S-ØœðS-ð
 �4‰ZðS-ð Œ)�f”o e¤iÔ0Ñ
0°4Ñ
7ðS-ð 	ðS-ð S-ð S-ñ ÔðS-ðl$Ø�fÔ)Ñ)ð$àð$ð ð$ð ð	$ð
 ð$ð $ð $ð $ðNð ð ð2 ˆHØ
„K�Ô˜Øˆ„L�*ØˆØ	ˆ7Øˆ&Ø	„L�(ðÐ ð%!ð %!ð %!ðP-ð -ð -ð6 2Ð1Ñ3Ô3Ð ð˜7Ô,ð °ð ð ð ð ð4˜d 5œkð 4¨d°4¬jð 4ð 4ð 4ð 4ð 4ð 4r   