§
    �Štj¸w  ã                  óv  — d dl mZ d dlZd dlmZ d dlmZ d dlmc m	Z	 d dl
mZ d dlmZmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# d d	l$m%Z% erd d
l&m'Z' ddgZ(ddgZ)g d¢Z*dgZ+d8d„Z,d9d„Z-d:d„Z.d:d„Z/d;d„Z0d:d „Z1d<d&„Z2d=d,„Z3d>d1„Z4d?d3„Z5ed@d6„¦   «         Z6ed@d7„¦   «         Z7dS )Aé    )ÚannotationsN)Údefaultdict)ÚTYPE_CHECKING)Ú	translate)ÚBindingÚDispatcherSignatureÚExpr)Úwith_native_function)Ú
AnnotationÚArgumentÚBackendIndexÚBackendMetadataÚBaseOperatorNameÚBaseTyÚBaseTypeÚDEFAULT_KERNEL_NAMESPACEÚDeviceCheckTypeÚDispatchKeyÚFunctionSchemaÚNativeFunctionÚNativeFunctionsGroupÚOperatorNameÚReturnÚ
SchemaKindÚVariant)Ú	concatMap)ÚSequencez'adaptive_avg_pool3d_backward.grad_inputz _slow_conv2d_backward.grad_inputÚ_cummax_helperÚ_cummin_helper)&Ú_assert_asyncz_assert_async.msgÚ_assert_tensor_metadataÚ_cslt_sparse_mm_searchÚ_assert_scalarÚ_dimIÚ_dimVÚ_has_same_storage_numelÚ_linalg_check_errorsÚ_local_scalar_denseÚ%_nested_tensor_from_mask_left_alignedÚ_nnzÚ_use_cudnn_ctc_lossz_use_cudnn_ctc_loss.TensorÚ_use_miopen_ctc_lossz_use_miopen_ctc_loss.TensorÚ#_validate_compressed_sparse_indicesÚallcloseÚ	dense_dimÚequalÚis_coalescedÚ	is_pinnedÚis_same_sizeÚ	is_set_toÚq_per_channel_axisÚq_scaleÚq_zero_pointÚqschemeÚrecord_streamÚ
sparse_dimÚsym_constrain_rangeÚsym_constrain_range_for_sizeÚ_nested_tensor_storage_offsetsÚ'_chunk_grad_outputs_efficient_attentionÚ_fused_sdp_choiceÚ_printÚ_sink_tokensÚ_nested_get_ragged_idxÚ
polygamma_Únative_functionsúSequence[NativeFunction]Úreturnú6dict[FunctionSchema, dict[SchemaKind, NativeFunction]]c                óF  — t          t          ¦  «        }| D ]‰}||j                             ¦   «                  }|j                             ¦   «         |v r1t          d|j                             ¦   «         › d|j        › �¦  «        ‚|||j                             ¦   «         <   ŒŠ|S )NzDuplicate schema kind z for )r   ÚdictÚfuncÚ	signatureÚkindÚAssertionError)rD   Úpre_grouped_native_functionsÚfÚds       úa/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torchgen/native_function_generation.pyÚpre_group_native_functionsrR   p   sš   € õ
 	•DÑÔð !ð ð ð ˆØ(¨¬×)9Ò)9Ñ);Ô);Ô<ˆØŒ6�;Š;‰=Œ=˜AÐÐÝ Ð!V¸!¼&¿+º+¹-¼-Ð!VÐ!VÈaÌfÐ!VÐ!VÑWÔWÐWØˆˆ!Œ&�+Š+‰-Œ-ÑÐØ'Ð'ó    Úoverload_nameú
str | NoneÚstrc                ó   — | sdn| › d�S )NÚoutÚ_out© )rT   s    rQ   Ú&get_expected_out_variant_overload_namer[      s   € Ø%ÐAˆ5ˆ5¨mÐ+AÐ+AÐ+AÐArS   rJ   r   c                ó<  — |                       ¦   «         t          j        k    r$t          d|                       ¦   «         › �¦  «        ‚| j        j        €t          d¦  «        ‚t          | j                             ¦   «          	                    t          | j        j        ¦  «        ¦  «        | j                             ¦   «                              t          d| j        j        j        j        d | j        j        j        j        ¬¦  «        g¦  «        | j        ¬¦  «        S )NzExpected inplace schema, got z Expected self_arg to be non-NonerX   ©ÚnameÚtypeÚdefaultÚ
annotation©r^   Ú	argumentsÚreturns)rL   r   ÚinplacerM   rc   Úself_argr   r^   Úremove_inplaceÚwith_overloadr[   rT   Úremove_self_annotationÚwith_out_argsr   Úargumentr_   ra   rd   )rJ   s    rQ   Úself_to_out_signaturerl   ˆ   sþ   € à‡y‚y�{„{•jÔ(Ò(Ð(ÝÐJ¸T¿YºY¹[¼[ÐJÐJÑKÔKÐKØ„~ÔÐ&ÝÐ?Ñ@Ô@Ð@õ
 ØŒY×%Ò%Ñ'Ô'×5Ò5Ý2°4´9Ô3JÑKÔKñ
ô 
ð ”.×7Ò7Ñ9Ô9×GÒGåØØœÔ0Ô9Ô>Ø Ø#œ~Ô6Ô?ÔJð	ñ ô ðñ	
ô 	
ð ”ðñ ô ð rS   c                ó¢  — |                       ¦   «         t          j        k    r$t          d|                       ¦   «         › �¦  «        ‚t	          | ¦  «        \  }}t          | j                             t          | j        j	        ¦  «        ¦  «        | j
                             ¦   «                              |¦  «        t          |¦  «        ¬¦  «        S )Nz Expected functional schema, got rb   )rL   r   Ú
functionalrM   Úgenerate_out_args_from_schemar   r^   rh   r[   rT   rc   rK   rj   Útuple©rJ   Únew_returnsÚnew_out_argss      rQ   Úfunctional_to_out_signaturert   «   sº   € à‡y‚y�{„{•jÔ+Ò+Ð+ÝÐMÀÇ	Â	ÁÄÐMÐMÑNÔNÐNå =¸dÑ CÔ CÑ€K�õ
 ØŒY×$Ò$Ý2°4´9Ô3JÑKÔKñ
ô 
ð ”.×*Ò*Ñ,Ô,×:Ò:Øñ
ô 
õ �kÑ"Ô"ðñ ô ð rS   ú#tuple[list[Return], list[Argument]]c           
     ó8  ‡
— t          d„ | j        D ¦   «         ¦  «        rt          d¦  «        ‚d„ | j        D ¦   «         }t          |¦  «        dk    rt          d¦  «        ‚t	          d„ | j        j        ¦  «        Š
ˆ
fd„t          j        D ¦   «         }t          d„ | j        D ¦   «         ¦  «        }g }g }t          | j        ¦  «        D ]Ì\  }}|j                             ¦   «         r™t          t          | j        ¦  «        d	k    rd
nd
|› �|j        d t          j        ||         › d�¦  «        ¬¦  «        }|                     |¦  «         |r1t#          d |j        |j        ¬¦  «        }	|                     |	¦  «         Œ·|                     |¦  «         ŒÍ||fS )Nc              3  ó@   K  — | ]}|j         d uo|j         j        V — Œd S ©N)ra   Úis_write©Ú.0Úrs     rQ   ú	<genexpr>z0generate_out_args_from_schema.<locals>.<genexpr>Æ   s3   è è € Ð
TÐ
TÀ!ˆ1Œ<˜tÐ#Ð=¨¬Ô(=Ð
TÐ
TÐ
TÐ
TÐ
TÐ
TrS   z8Mutable schema kinds should not return mutable argumentsc                óD   — g | ]}|j                              ¦   «         ¯|‘ŒS rZ   ©r_   Úis_tensor_likerz   s     rQ   ú
<listcomp>z1generate_out_args_from_schema.<locals>.<listcomp>É   s+   € ÐJÐJÐJ˜Q°!´&×2GÒ2GÑ2IÔ2IÐJ�qÐJÐJÐJrS   r   z(Expected at least one tensor-like returnc                ó,   — | j         €g n| j         j        S rx   )ra   Ú	alias_set)Úas    rQ   ú<lambda>z/generate_out_args_from_schema.<locals>.<lambda>Î   s   € ˜œÐ,�"�"°!´,Ô2H€ rS   c                ó   •— g | ]}|‰v¯|‘Œ	S rZ   rZ   )r{   ÚxÚused_annotationss     €rQ   r�   z1generate_out_args_from_schema.<locals>.<listcomp>Ñ   s$   ø€ ÐXÐXÐX˜q¸aÐGWÐ>WÐ>W˜Ð>WÐ>WÐ>WrS   c              3  óZ   K  — | ]&}|j         t          t          j        ¦  «        k    V — Œ'd S rx   )r_   r   r   ÚTensorrz   s     rQ   r}   z0generate_out_args_from_schema.<locals>.<genexpr>Ó   s3   è è € ÐWÐWÀQ˜qœv­µ&´-Ñ)@Ô)@Ò@ÐWÐWÐWÐWÐWÐWrS   é   rX   ú!r]   )r^   r_   ra   )Úanyrd   rM   Úlenr   rc   Úflat_allÚstringÚascii_lowercaseÚallÚ	enumerater_   r€   r   r   ÚparseÚappendr   ra   )rJ   Útensorlike_retsÚvalid_annotationsÚall_rets_are_tensorsrs   rr   Úir|   Únew_outÚnew_retrˆ   s             @rQ   ro   ro   Á   sÜ  ø€ õ
 Ð
TÐ
TÀtÄ|Ð
TÑ
TÔ
TÑTÔTð YÝÐWÑXÔXÐXàJÐJ $¤,ÐJÑJÔJ€OÝ
ˆ?ÑÔ˜qÒ Ð ÝÐGÑHÔHÐHå ØHÐHØŒÔñô Ðð YÐXÐXÐX¥FÔ$:ÐXÑXÔXÐåÐWÐWÈ$Ì,ÐWÑWÔWÑWÔWÐà#%€Lð !#€KÝ˜$œ,Ñ'Ô'ð "ð "‰ˆˆ1ØŒ6× Ò Ñ"Ô"ð 	"ÝÝ! $¤,Ñ/Ô/°1Ò4Ð4�U�U¸)À¸)¸)Ø”VØÝ%Ô+Ð/@ÀÔ/CÐ,FÐ,FÐ,FÑGÔGð	ñ ô ˆGð ×Ò Ñ(Ô(Ð(Ø#ð ,õ !Ø G¤L¸WÔ=Oðñ ô �ð ×"Ò" 7Ñ+Ô+Ð+øà×Ò˜qÑ!Ô!Ð!Ð!Ø˜Ð$Ð$rS   c                ó¢  — |                       ¦   «         t          j        k    r$t          d|                       ¦   «         › �¦  «        ‚t	          | ¦  «        \  }}t          | j                             ¦   «                              t          | j        j
        ¦  «        ¦  «        | j                             |¦  «        t          |¦  «        ¬¦  «        S )NzExpected mutable schema, got rb   )rL   r   ÚmutablerM   ro   r   r^   rg   rh   r[   rT   rc   rj   rp   rq   s      rQ   Úmutable_to_out_signaturerž   ô   s³   € à‡y‚y�{„{•jÔ(Ò(Ð(ÝÐJ¸T¿YºY¹[¼[ÐJÐJÑKÔKÐKõ !>¸dÑ CÔ CÑ€K�åØŒY×%Ò%Ñ'Ô'×5Ò5Ý2°4´9Ô3JÑKÔKñ
ô 
ð ”.×.Ò.¨|Ñ<Ô<Ý�kÑ"Ô"ðñ ô ð rS   rO   r   Úkr   úMtuple[NativeFunction, dict[DispatchKey, dict[OperatorName, BackendMetadata]]]c                óÎ  — ddl m} |t          j        k    rá| j                             ¦   «         t          j        k    rt          d¦  «        ‚| j                             d¬¦  «                             t          t          | j        j        j        j        d| j        j        j        j        | j                             ¦   «         t          j        k    ¬¦  «        | j        j        j        ¬¦  «        ¦  «        }nâ|t          j        k    rÃ| j                             ¦   «         t          j        k    rt%          | j        ¦  «        }n–| j                             ¦   «         t          j        k    rt'          | j        ¦  «        }nZ| j                             ¦   «         t          j        k    rt)          | j        ¦  «        }nt          d	¦  «        ‚t          d
¦  «        ‚|                     ¦   «         t          j        k    r|j                             ¦   «         n|                     |¦  «        }| j                             ¦   «         r|dz  }t.          j        |j        t3          |dt4          ¬¦  «        ii}dht7          | j        h d£z  ¦  «        z  }|                     ¦   «         r|                     d¦  «         |j        j        j        r|                     d¦  «         t?          d)i d|“d| j         “dtB          j"        h“dd“dd “dd “dd “dg “di “dd“dd“dd “dd “dd“dtF          j$        “d | j%        “d!t7          ¦   «         “d"| j&        “d#d“d$d“d%d“d&d“d'|“d(| j'        “Ž|fS )*Nr   )Úcppz1Cannot generate functional from functional schemaT)Úkeep_return_namesF)Úbasere   Údunder_methodÚfunctional_overload)r^   rT   z^We only bother generating out= functions from either inplace or mutable or functional variantszDWe currently only generate either functional or out= NativeFunctionsÚ_symint)ÚkernelÚ
structuredÚcpp_namespaceÚ	generated>   Ú	view_copyÚpt2_compliant_tagÚnondeterministic_seededrX   re   rJ   Ú!use_const_ref_for_mutable_tensorsÚvariantsr©   Ústructured_delegateÚstructured_inheritsÚprecomputedÚautogenÚufunc_inner_loopÚmanual_kernel_registrationÚmanual_cpp_bindingÚpython_moduleÚcategory_overrideÚdevice_guardÚdevice_checkÚlocÚcpp_no_default_argsÚis_abstractÚ&has_composite_implicit_autograd_kernelÚ4has_composite_implicit_autograd_nested_tensor_kernelÚ&has_composite_explicit_autograd_kernelÚ5has_composite_explicit_autograd_non_functional_kernelÚtagsÚ	namespacerZ   )(Útorchgen.apir¢   r   rn   rJ   rL   rM   rK   Ú	with_namer   r   r^   r¤   r¥   r�   rT   rX   re   rl   rž   rt   Úunambiguous_nameÚ
has_symintr   ÚCompositeExplicitAutogradr   r   ÚsetrÃ   Ú	is_out_fnÚaddr   r¯   r   Úfunctionr   ÚNoCheckr¼   r¾   rÄ   )rO   rŸ   r¢   rJ   Úkernel_nameÚbackend_metadatarÃ   s          rQ   Úgenerate_functionrÑ     sï  € ð !Ð Ð Ð Ð Ð à�JÔ!Ò!Ð!ØŒ6�;Š;‰=Œ=�JÔ1Ò1Ð1Ý Ð!TÑUÔUÐUð Œv×Ò°$ÐÑ7Ô7×AÒAÝÝ%ØœœÔ)Ô.Ø!Ø"#¤&¤+Ô"2Ô"@à()¬¯ª©¬½Ô9KÒ(Kðñ ô ð  œfœkÔ7ð	ñ 	ô 	ñ
ô 
ˆˆð 
�jŒnÒ	Ð	ð Œ6�;Š;‰=Œ=�JÔ.Ò.Ð.Ý(¨¬Ñ0Ô0ˆDˆDØŒV�[Š[‰]Œ]�jÔ0Ò0Ð0Ý+¨A¬FÑ3Ô3ˆDˆDØŒV�[Š[‰]Œ]�jÔ3Ò3Ð3Ý.¨q¬vÑ6Ô6ˆDˆDå Øpñô ð õ ØRñ
ô 
ð 	
ð �9Š9‰;Œ;�*œ.Ò(Ð(ð 	Œ	×"Ò"Ñ$Ô$Ð$à�XŠX�d‰^Œ^ð ð
 	„v×ÒÑÔð !Ø�yÑ ˆåÔ-ØŒI•Ø"Ø Ý6ðñ ô ð0
ðÐð ˆ=�3Ø	ŒÐNÐNÐNÑNñô ñ €Dð ‡~‚~ÑÔð Ø�Š�‰ŒˆØ„y„~Ôð Ø�Š�ÑÔÐõ 	ð 	
ð 	
ð 	
Ø�ð	
à./Ô.QÐ.Qð	
õ Ô&Ð'Ð'ð		
ð
 �uð	
ð !% ð	
ð !% ð	
ð ˜ð	
ð �Bð	
ð  ˜Rð	
ð (- uð	
ð  %˜uð	
ð ˜$ð	
ð #˜dð	
ð ˜ð	
õ  )Ô0Ð0ð!	
ð" ”�ð#	
õ$ !$¡¤ ð%	
ð& œ˜ð'	
ð( 49°5ð)	
ð* BGÀð+	
ð, 48°4ð-	
ð. CHÀ%ð/	
ð4 �ð5	
ð6 ”k�kð7	
ð: 	ð=ð rS   Úrsúlist[NativeFunction]Úindicesú6dict[DispatchKey, dict[OperatorName, BackendMetadata]]ÚNonec                óx  — t          | ¦  «        }|                     ¦   «         D �]”}t          j        |v }t          j        |v }t          j        |v }t          j        |v }t          d„ |                     ¦   «         D ¦   «         ¦  «        }|s|s|s|�r%t          d„ |                     ¦   «         D ¦   «         ¦  «        }	t          d„ |                     ¦   «         D ¦   «         ¦  «        }
t          d„ |                     ¦   «         D ¦   «         ¦  «        }|	s|
s|r|sŒù|r‹t          |                     ¦   «         ¦  «        dk    rft          |t          j                 j        j        ¦  «        t          vr4t          dt          |t          j                 j        ¦  «        › �¦  «        ‚�Œ†|r2t          |t          j                 j        j        ¦  «        t          v r�Œº|r|t          j                 n9|r|t          j                 n%|r|t          j                 n|t          j                 }|j                             ¦   «         t          j        k    p"t          d„ |j        j        D ¦   «         ¦  «        }t          d„ |j        D ¦   «         ¦  «        }| o|o|}|sg|set          |j        j        ¦  «        t&          vrEt          |j        j        ¦  «        t(          vr%t          d	t          |j        ¦  «        › d
�¦  «        ‚|rVt+          |t          j        ¦  «        \  }}||t          j        <   t-          j        ||¦  «         |                      |¦  «         |sZ|s|rVt+          |t          j        ¦  «        \  }}||t          j        <   t-          j        ||¦  «         |                      |¦  «         �Œ–d S )Nc              3  ó(   K  — | ]}d |j         v V — ŒdS )ÚcoreN)rÃ   )r{   Úvariants     rQ   r}   z1add_generated_native_functions.<locals>.<genexpr>˜  s)   è è € ÐGÐG°�f ¤Ð,ÐGÐGÐGÐGÐGÐGrS   c              3  ó$   K  — | ]}|j         V — Œd S rx   )r·   ©r{   rO   s     rQ   r}   z1add_generated_native_functions.<locals>.<genexpr>¢  s%   è è € ÐFÐF°a˜QÔ1ÐFÐFÐFÐFÐFÐFrS   c              3  óh   K  — | ]-}|j         o!t          |j        j        j        ¦  «        d k    V — Œ.dS )Úset_N)Ú
is_view_oprV   rJ   r^   rÜ   s     rQ   r}   z1add_generated_native_functions.<locals>.<genexpr>¦  sN   è è € ð ð ØEF�”Ð@¥ Q¤V¤[Ô%5Ñ!6Ô!6¸&Ò!@ðð ð ð ð ð rS   c              3  ó$   K  — | ]}|j         V — Œd S rx   )r¿   rÜ   s     rQ   r}   z1add_generated_native_functions.<locals>.<genexpr>­  s6   è è € ð )ð )Ø=>�Ô8ð)ð )ð )ð )ð )ð )rS   r‹   zEFound an out= operator that we could not find any other variants of: c              3  óH   K  — | ]}|j                              ¦   «         V — Œd S rx   r   rz   s     rQ   r}   z1add_generated_native_functions.<locals>.<genexpr>ß  sI   è è € ð Mð MØ,-�”×%Ò%Ñ'Ô'ðMð Mð Mð Mð Mð MrS   c              3  ó8   K  — | ]}d t          |¦  «        v V — ŒdS )rX   N)rV   )r{   Úop_names     rQ   r}   z1add_generated_native_functions.<locals>.<genexpr>ç  s-   è è € ÐQÐQ°g˜E¥S¨¡\¤\Ð1ÐQÐQÐQÐQÐQÐQrS   zBFound an operator that we could not generate an out= variant for: zã.
This type of operators don't have tensor-like return, making it difficult to generate a proper out= variant. If
out= variant is not needed, please add the function name into FUNCTIONAL_OPS_THAT_CANNOT_GET_AN_OUT_VARIANT list.)rR   Úvaluesr   rn   re   r�   rX   r�   r’   rŽ   rV   rJ   r^   Ú&OUT_OPS_THAT_DONT_GET_GROUPED_PROPERLYrM   Ú*INPLACE_OPS_THAT_DONT_GET_GROUPED_PROPERLYrL   rd   r´   Ú*MUTABLE_OPS_THAT_CANNOT_GET_AN_OUT_VARIANTÚ-FUNCTIONAL_OPS_THAT_CANNOT_GET_AN_OUT_VARIANTrÑ   r   Ú
grow_indexr•   )rÒ   rÔ   rN   rP   Úhas_functionalÚhas_inplaceÚhas_mutableÚhas_outÚis_coreÚ
are_manualÚhas_view_opsÚare_composite_implicitÚbase_fnÚbase_fn_validÚ	needs_outÚgets_out_variantÚfnÚmetadatas                     rQ   Úadd_generated_native_functionsrø   ‹  s0  € õ $>¸bÑ#AÔ#AÐ Ø)×0Ò0Ñ2Ô2ð qñ qˆÝ#Ô.°!Ð3ˆÝ Ô(¨AÐ-ˆÝ Ô(¨AÐ-ˆÝ”. AÐ%ˆÝÐGÐG¸A¿HºH¹J¼JÐGÑGÔGÑGÔGˆð ð d	˜+ð d	¨ð d	°Nñ d	åÐFÐF¸1¿8º8¹:¼:ÐFÑFÔFÑFÔFˆJõ ð ð ØJKÏ(Ê(É*Ì*ðñ ô ñ ô ˆLõ &)ð )ð )ØBCÇ(Â(Á*Ä*ð)ñ )ô )ñ &ô &Ð"ð ð ˜\ð Ð-Cð ÈGð ØØð �3˜qŸxšx™zœz™?œ?¨aÒ/Ð/õ ˜�*œ.Ô)Ô.Ô3Ñ4Ô4ÝAðBð Bõ )Ø}Õ`cÐdeÕfpÔftÔduÔdzÑ`{Ô`{Ð}Ð}ñô ð ñ ð
 ðå˜�*Ô,Ô-Ô2Ô7Ñ8Ô8Ý=ð>ð >ñ ð ð.�•*Ô$Ô%Ð%ð ð.�Q•zÔ)Ô*Ð*ð ð.�Q•z”~Ô&Ð&à•zÔ,Ô-ð ð" $œL×-Ò-Ñ/Ô/µ:Ô3EÒEð Íð Mð MØ18´Ô1EðMñ Mô Mñ Jô JˆMõ ÐQÐQÀÄÐQÑQÔQÑQÔQˆIØ#*˜{ÐJ¨}ÐJÀÐØð  =ð å˜œÔ)Ñ*Ô*ÝEðFð Få˜GœLÔ-Ñ.Ô.ÝHðIð Iõ )ðuÕ_bÐcjÔcoÑ_pÔ_pð uð uð uñô ð ð  ð Ý0°½*¼.ÑIÔI‘��HØ$&�•*”.Ñ!ÝÔ'¨°Ñ:Ô:Ð:Ø—	’	˜"‘”�ð
 "ð  wð Ð2Bð Ý0°½*Ô:OÑPÔP‘��HØ+-�•*Ô'Ñ(ÝÔ'¨°Ñ:Ô:Ð:Ø—	’	˜"‘”�ùðcqð qrS   Úretsútuple[Return, ...]Únamesú	list[str]c                óˆ  — t          | ¦  «        t          |¦  «        k    r/t          dt          | ¦  «        › dt          |¦  «        › �¦  «        ‚t          | ¦  «        dk    rdS t          | ¦  «        dk    rd|d         › d�S dt          j        | ¦  «                             ¦   «         › dd	                     |¦  «        › d
�S )Nz#Returns and names length mismatch: z vs r   Ú r‹   zreturn ú;ú(ú, ú);)rŽ   rM   Ú
dispatcherÚreturns_typeÚcpp_typeÚjoin)rù   rû   s     rQ   Ú
return_strr    sÀ   € Ý
ˆ4�y„y•C˜‘J”JÒÐÝØMµ#°d±)´)ÐMÐMÅÀUÁÄÐMÐMñ
ô 
ð 	
õ ˆ4�y„y�A‚~€~ØˆrÝ	ˆT‰Œ�aŠˆØ$˜˜qœÐ$Ð$Ð$Ð$àX�Ô0°Ñ6Ô6×?Ò?ÑAÔAÐXÐXÀDÇIÂIÈeÑDTÔDTÐXÐXÐXÐXrS   Úout_varc                óÐ   — |                       ¦   «         }g }t          | j        ¦  «        dk    }t          |¦  «        D ]'\  }}|€ |                     |r	d|› d|› d�n|¦  «         Œ(|S )Nr‹   ú	std::get<ú>(ú))Úaliased_return_namesrŽ   rd   r“   r•   )rJ   r  Úaliased_retsÚnon_aliased_namesÚis_out_var_a_tupler™   r|   s          rQ   Úgather_nonaliased_inner_retsr    s�   € Ø×,Ò,Ñ.Ô.€LØÐÝ˜Tœ\Ñ*Ô*¨QÒ.ÐÝ˜,Ñ'Ô'ð ð ‰ˆˆ1Øˆ9Ø×$Ò$Ø/AÐNÐ+˜AÐ+Ð+ Ð+Ð+Ð+Ð+Àwñô ð øð ÐrS   Úgr   c                ó¸  — d| j         j        vrd S | j        �d| j        j        vr| j        }nC| j        �d| j        j        vr| j        }n&t	          t          | j         j        ¦  «        ¦  «        ‚t          | j         j        ¦  «        }t          |j        ¦  «        }g }g }g }t          t          j
        | j         j        ¦  «        t          j
        |j        ¦  «        ¦  «        D ]È\  }}|j        �•|j        j        r‰|                     d|j        › d|j        › d�¦  «         |                     t          |j        › d�t          j        ||j        ¬¦  «        ¬¦  «        ¦  «         |                     |j        › d�¦  «         Œ¡|                     t          j        |¦  «        ¦  «         ŒÉd                     d	„ t'          ||                     ¦   «         ¦  «        D ¦   «         ¦  «        }	d
}
t+          |j        j        ¦  «        dk    rd|
› d�nd}t/          |j        |
¦  «        }t1          | j         j        j        ||z   ¦  «        }d                     |¦  «        }d|                     |                     ¦   «         | j        j                             ¦   «         rdndz   ¬¦  «        › d|› d|› d|j        j                             ¦   «         › d|	› d|› d�S )Nr«   zauto z_clone = clone_arg(r  Ú_clone)Úbinds)Úexprr_   r  c                ó   — g | ]	}|j         ‘Œ
S rZ   ©r  ©r{   Úes     rQ   r�   z3gen_composite_functional_kernel.<locals>.<listcomp>N  s   € ÐRÐRÐR !�q”vÐRÐRÐRrS   Úoutputr   z = rþ   ú
r§   ©r^   z {
  ú
  z
at::_ops::ú::call(ú);
  ú
}
)rn   rÃ   re   r�   rM   rV   rJ   r   Úzipr  Újit_argumentsra   ry   r•   r^   r	   Úargument_typerk   r  r   rc   rŽ   rd   r  r  ÚdefnrX   rÈ   rÇ   )r  Útarget_fÚsigÚ
target_sigÚcontextÚclone_mutable_inputsÚcloned_return_namesÚa_currÚa_tgtÚexprsÚout_nameÚmaybe_assignÚinner_return_namesÚret_strÚclone_mutable_inputs_strs                  rQ   Úgen_composite_functional_kernelr4  $  s   € ð ˜!œ,Ô+Ð+Ð+Øˆtà„yÐ °A´I´NÐ!BÐ!BØ”9ˆˆØ	
ŒÐ	 ;°a´i´nÐ#DÐ#DØ”9ˆˆõ �S ¤Ô!2Ñ3Ô3Ñ4Ô4Ð4å
˜aœlÔ/Ñ
0Ô
0€CÝ$ X¤]Ñ3Ô3€Jà$&€GØÐØÐõ ÝÔ  ¤Ô!2Ñ3Ô3ÝÔ  ¤Ñ/Ô/ñô ð 8ð 8‰ˆ�ð ÔÐ'¨EÔ,<Ô,EÐ'Ø ×'Ò'ØG˜œÐGÐG¸¼ÐGÐGÐGñô ð ð �NŠNÝØ"œKÐ/Ð/Ð/Ý#Ô1°&ÀÄÐLÑLÔLðñ ô ñô ð ð  ×&Ò&¨&¬+Ð'=Ð'=Ð'=Ñ>Ô>Ð>Ð>à�NŠN�:Ô.¨vÑ6Ô6Ñ7Ô7Ð7Ð7Ø�IŠIÐRÐR¥y°¸*×:NÒ:NÑ:PÔ:PÑ'QÔ'QÐRÑRÔRÑSÔS€Eà€HÝ,/°´Ô0EÑ,FÔ,FÈÒ,JÐ,JÐ(˜8Ð(Ð(Ð(Ð(ÐPR€LÝ5°h´mÀXÑNÔNÐÝØ	ŒÔÔ!Ð#5Ð8KÑ#Kñô €Gð  $ŸyšyÐ)=Ñ>Ô>ÐðØ‡‚ˆs�xŠx‰zŒz¨!¬%¬*×*?Ò*?Ñ*AÔ*AÐI˜Y˜YÀrÑJ€ÑKÔKðð àðð ð ðð ð $œ=Ô-×>Ò>Ñ@Ô@ðð ð JOðð ð ð	ð ð ð rS   c                óÎ  — d| j         j        vrd S t          | j         j        ¦  «        }t          | j        j        ¦  «        }d                     d„ t          |                     ¦   «         |                     ¦   «         ¦  «        D ¦   «         ¦  «        }g }d}t          | j         j        j        j         ¦  «        D ]^\  }}t          | j        j        j
        ¦  «        dk    r|nd|› d|› d�}|                     d	|j        › d|› d
|j        › d|› d�	¦  «         Œ_g }	t          | j         j                             ¦   «         ¦  «        D ]_\  }}
|
�|	                     |
¦  «         Œt          | j        j        j
        ¦  «        dk    r|nd|› d|› d�}|	                     |¦  «         Œ`d                     |¦  «        }d|                     | j         j        j                             ¦   «         | j         j                             ¦   «         rdndz   ¬¦  «        › d|› d| j        j        j                             ¦   «         › d|› d|› dt#          | j         j        j
        |	¦  «        › d�S )Nr«   r  c                ó   — g | ]	}|j         ‘Œ
S rZ   r  r  s     rQ   r�   z,gen_composite_out_kernel.<locals>.<listcomp>q  s   € ÐLÐLÐL�AˆŒÐLÐLÐLrS   Ú
tmp_outputr‹   r
  r  r  z  resize_out_helper(z);
  copy_arg(r  r  r§   rþ   r  z
 {
  auto z = at::_ops::r  r   r  r!  )rX   rÃ   r   rJ   rn   r  r   rc   r“   rŽ   rd   r•   r^   r  r%  rÇ   rÈ   r  )r  r'  r(  r.  Ú	copy_outsr/  r™   Úout_argÚfunctional_return_namerù   Úret_nameÚcopy_outs_strs               rQ   Úgen_composite_out_kernelr=  c  sÌ  € ð ˜!œ%œ*Ð$Ð$Øˆtõ ˜aœeœjÑ
)Ô
)€CÝ$ Q¤\Ô%6Ñ7Ô7€Jà�IŠIØLÐL� 3§=¢=¡?¤?°J×4HÒ4HÑ4JÔ4JÑKÔKÐLÑLÔLñô €Eð €IØ€HÝ ¤¤
Ô 4Ô 8Ñ9Ô9ð 

ð 

‰
ˆˆ7õ �1”<Ô$Ô,Ñ-Ô-°Ò2Ð2ð ˆHà-˜QÐ-Ð- (Ð-Ð-Ð-ð 	ð
 	×Òð9Ø”\ð9ð 9Ø%;ð9ð 9àŒLð9ð 9à2ð9ð 9ð 9ñ	
ô 	
ð 	
ð 	
ð €Dõ ! ¤¤×!@Ò!@Ñ!BÔ!BÑCÔCð 	0ð 	0‰ˆˆ8ØÐØ�KŠK˜Ñ!Ô!Ð!Ð!õ �q”|Ô(Ô0Ñ1Ô1°QÒ6Ð6ð �à1 Ð1Ð1 hÐ1Ð1Ð1ð #ð
 �KŠKÐ.Ñ/Ô/Ð/Ð/à—I’I˜iÑ(Ô(€MðØ‡‚ˆqŒuŒzŒ×/Ò/Ñ1Ô1À!Ä%Ä*×BWÒBWÑBYÔBYÐ5a°Y°YÐ_aÑb€ÑcÔcðð àðð à œ|Ô0Ô5×FÒFÑHÔHðð àQVðð ð ðð õ ˆaŒeŒjÔ  $Ñ'Ô'ð	ð ð ð rS   )rD   rE   rF   rG   )rT   rU   rF   rV   )rJ   r   rF   r   )rJ   r   rF   ru   )rO   r   rŸ   r   rF   r    )rÒ   rÓ   rÔ   rÕ   rF   rÖ   )rù   rú   rû   rü   rF   rV   )rJ   r   r  rV   rF   rü   )r  r   rF   rU   )8Ú
__future__r   r�   Úcollectionsr   Útypingr   Útorchgen.api.dispatcherÚapir  Útorchgen.api.translater   Útorchgen.api.typesr   r   r	   Útorchgen.contextr
   Útorchgen.modelr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Útorchgen.utilsr   Úcollections.abcr   rå   rç   rè   ræ   rR   r[   rl   rt   ro   rž   rÑ   rø   r  r  r4  r=  rZ   rS   rQ   ú<module>rI     sû  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø  Ð  Ð  Ð  Ð  Ð  à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 1Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð& %Ð $Ð $Ð $Ð $Ð $ð ð )Ø(Ð(Ð(Ð(Ð(Ð(ð .ð 'ð*Ð &ð àð	.Ð *ð'1ð '1ð '1Ð -ð^ ð.Ð *ð(ð (ð (ð (ðBð Bð Bð Bðð ð ð ðFð ð ð ð,+%ð +%ð +%ð +%ðfð ð ð ðHhð hð hð hðfyð yð yð yðx
Yð 
Yð 
Yð 
Yð	ð 	ð 	ð 	ð ð9ð 9ð 9ñ Ôð9ð| ð6ð 6ð 6ñ Ôð6ð 6ð 6rS   