Ë
    g^(hÞJ  ã            	       ó  — U d dl Z d dl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 d dlmZ erd dlmZ d dl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 d dl m!Z" g d¢Z# ed«      Z$ ed«      Z% ee&«      Z'e&e(e&ejR                  j2                  ef   f   e*d<   e'd   Z+e'd   Z,e'd   Z-dejR                  j2                  de.fd„Z/d„ Z0d„ Z1	 d#dddœdeee%e$f   gee%e$f   f   fd„Z2	 d$deeejR                  j2                  ef      de(de&ejR                  j2                  ef   fd„Z3de&ejR                  j2                  ef   deeeef      ddfd „Z4d dl5Zd dl6Zd%d!„Z7de&ejR                  j2                  ef   fd"„Z8y)&é    N)Údefaultdict)ÚSequence)Ú	lru_cacheÚpartialÚwraps)Úchain)ÚCallableÚOptionalÚTYPE_CHECKINGÚTypeVarÚUnion)Ú	ParamSpec)ÚCustomDecompTable)ÚHigherOrderOperatorÚOperatorBaseÚ
OpOverloadÚOpOverloadPacket)ÚCustomOutParamAnnotation)ÚFunctionalTensor)Ú_pytree)Údecomposition_tableÚ pre_autograd_decomposition_tableÚ
meta_tableÚregister_decompositionÚget_decompositionsÚcore_aten_decompositionsÚ#_should_decompose_because_unsafe_opÚ_TÚ_PÚglobal_decomposition_tableÚpost_autogradÚpre_autogradÚmetaÚopÚreturnc                 óü   — t        | t        j                  j                  «      syt        j                  j
                  | j                  v ry| t        j                  j                  j                  j                  k(  S )aì  
    Returns True if the op must always decompose in export/compile tracing system

    In export, we always decompose certain CIA ops that are tagged with
    maybe_aliasing_or_mutating because we statically need to know if the op is
    mutating or not. But these CIA ops could have different behaviour in runtime.

    native_batch_norm is a prim op which has a wrong schema and it needs to be replaced
    with correct schema. But until then, we will force decompose it via this tag.
    FT)Ú
isinstanceÚtorchÚ_opsr   ÚTagÚmaybe_aliasing_or_mutatingÚtagsÚopsÚatenÚnative_batch_normÚdefault)r$   s    úT/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_decomp/__init__.pyr   r   .   sS   € ô �bœ%Ÿ*™*×/Ñ/Ô0ØÜ‡y�y×+Ñ+¨r¯w©wÑ6ØØ”—‘—‘×1Ñ1×9Ñ9Ñ9Ð9ó    c                 ó”  — g }t        |t        «      r|| |<   yt        |t        «      r|j                  |«       nBt        |t        «      sJ ‚|j                  «       D ]  }|j                  t        ||«      «       Œ |D ]G  }|| v rt        d|› �«      ‚t        j                  j                  |j                  «       «      sŒC|| |<   ŒI y)zú
    This is an internal API for adding an op to the decomposition table.

    If op is OpOverload, it will be added to the registry directly.
    If op is OpOverloadPacket, all the valid op_overloads in the packet will be added to the registry.
    Nzduplicate registrations for )r'   r   r   Úappendr   Ú	overloadsÚgetattrÚRuntimeErrorr(   Ú_CÚ_dispatch_has_kernelÚname)Úregistryr$   Úfnr5   ÚolÚop_overloads         r1   Ú_add_op_to_registryr?   @   sÅ   € ð 79€IÜ�"Ô)Ô*àˆ�‰ØÜ	�Bœ
Ô	#Ø×Ñ˜Õä˜"Ô.Ô/Ð/Ð/Ø—,‘,“.ò 	.ˆBØ×ÑœW R¨›_Õ-ð	.ð !ò 'ˆØ˜(Ñ"ÜÐ!=¸k¸]ÐKÓLÐLô �8‰8×(Ñ(¨×)9Ñ)9Ó);Õ<Ø$&ˆH�[Ò!ñ'r2   c           
      óª  ‡ ‡‡— ‰ j                   j                  d«      }|s‰ S t        |dd «      t        u �r]t	        j
                  ‰ «      }|j                  j                  Št        ‰ «      ˆ ˆfd„«       }t        ‰|j                  «      D ��cg c]6  \  }}t	        j                  |t        j                  j                  d |¬«      ‘Œ8 }}}t        d„ |j                  j                  «       D «       |«      }t	        j                   ||j                  ¬«      |_        ‰ j                   j                  «       D ��	ci c]  \  }}	|dk7  sŒ||	“Œ c}	}|_         |D ]%  }|j$                  |j                   |j&                  <   Œ' ‰ j(                  |_        |S ‰ j                   j+                  t,        d «      Š‰�r
t        ‰ «      ˆˆ fd„«       }t	        j                  ‰t        j                  j                  d |¬«      }
t	        j
                  ‰ «      }t        d„ |j                  j                  «       D «       |
f«      }t	        j                   ||j                  ¬«      |_        ‰ j                   j                  «       D ��	ci c]  \  }}	|dk7  sŒ||	“Œ c}	}|_         |
j$                  |j                   |
j&                  <   |S ‰ S c c}}w c c}	}w c c}	}w )	NÚoutÚ
__origin__c                  ó�   •‡‡— t        ˆfd„‰D «       «      }|d   d u Št        ˆfd„|D «       «      sJ ‚ ‰| i ‰¤d‰rd i¤ŽS |i¤ŽS )Nc              3   óB   •K  — | ]  }‰j                  |d «      –— Œ y ­w©N©Úpop)Ú.0ÚoÚkwargss     €r1   ú	<genexpr>z3_convert_out_params.<locals>._fn.<locals>.<genexpr>m   s   øè ø€ ÒF°q˜vŸz™z¨!¨T×2ÑFùs   ƒr   c              3   ó,   •K  — | ]  }|d u ‰k(  –— Œ y ­wrE   © )rH   rI   Úis_nones     €r1   rK   z3_convert_out_params.<locals>._fn.<locals>.<genexpr>p   s   øè ø€ ÒB°!˜˜T˜	 gÕ-ÑBùs   ƒrA   )ÚtupleÚall)ÚargsrJ   Ú
out_kwargsrN   ÚfÚ	out_namess    ` @€€r1   Ú_fnz _convert_out_params.<locals>._fnk   sT   ú€ äÓF¸IÔFÓFˆJà  ‘m tÐ+ˆGÜÓB°zÔBÔBÐBÐBÙ�dÐJ˜fÑJ±'¨$ÒJÐJ¸zÒJÐJr2   )Úkindr0   Ú
annotationc              3   ó2   K  — | ]  \  }}|d k7  sŒ|–— Œ y­w©rA   NrM   ©rH   ÚkÚvs      r1   rK   z&_convert_out_params.<locals>.<genexpr>}   s   è ø€ ÒK™d˜a ÀÀUÃ
œÑKùó   ‚�)Ú
parametersÚreturn_annotationc                  ó@   •— |j                  ‰d «      } ‰| i |¤d|i¤ŽS )NrA   rF   )rQ   rJ   Ú	out_kwargÚcustom_out_param_namerS   s      €€r1   rU   z _convert_out_params.<locals>._fn’   s)   ø€ àŸ
™
Ð#8¸$Ó?ˆIÙ�dÐ4˜fÑ4¨)Ò4Ð4r2   c              3   ó2   K  — | ]  \  }}|d k7  sŒ|–— Œ y­wrY   rM   rZ   s      r1   rK   z&_convert_out_params.<locals>.<genexpr>¡   s   è ø€ Ò@‘4�1�a°Q¸%³ZŒQÑ@ùr]   )Ú__annotations__Úgetr6   rO   ÚinspectÚ	signaturer_   Ú_fieldsr   ÚzipÚ__args__Ú	ParameterÚKEYWORD_ONLYr   r^   ÚitemsÚ	SignatureÚ__signature__rW   r:   Ú!_torch_decompositions_out_wrapperrG   r   )rS   Úout_annotationÚsigrU   rI   ÚtÚ
out_paramsÚparamsr[   r\   Ú	out_paramrb   rT   s   `          @@r1   Ú_convert_out_paramsrw   ]   s”  ú€ Ø×&Ñ&×*Ñ*¨5Ó1€Nñ Øˆô ˆ~˜|¨TÓ2´eÒ;Ü×Ñ Ó"ˆØ×)Ñ)×1Ñ1ˆ	ô 
ˆq‹ô	Kó 
ð	Kô ˜I ~×'>Ñ'>Ó?÷
ñ ��1ô ×ÑØÜ×&Ñ&×3Ñ3ØØö	ð
ˆ
ñ 
ô ÑK c§n¡n×&:Ñ&:Ó&<ÔKÈZÓXˆÜ#×-Ñ-ØØ!×3Ñ3ô
ˆÔð
 12×0AÑ0A×0GÑ0GÓ0I×X©¨¨1ÈQÐRWËZ˜q !™tÓXˆÔØò 	7ˆAØ*+¯,©,ˆC×Ñ §¡Ò'ð	7ð 12×0SÑ0SˆÔ-àˆ
ð
 ×-Ñ-×1Ñ1Ô2JÈDÓQÐÚä	ˆq‹ô	5ó 
ð	5ô ×%Ñ%Ø!Ü×"Ñ"×/Ñ/ØØ%ô	
ˆ	ô ×Ñ Ó"ˆÜÙ@˜3Ÿ>™>×/Ñ/Ó1Ô@À9À,ó
ˆô $×-Ñ-ØØ!×3Ñ3ô
ˆÔð 12×0AÑ0A×0GÑ0GÓ0I×X©¨¨1ÈQÐRWËZ˜q !™tÓXˆÔØ.7×.BÑ.Bˆ×Ñ˜IŸN™NÑ+àˆ
à€Hùów
ùó  YùóL Ys   Â;KÄ;K	Å	K	Ê KÊKF)ÚtypeÚunsafec                óx   ‡ ‡‡‡— ‰dv sJ ‚dt         t        t        f   dt         t        t        f   fˆ ˆˆˆfd„}|S )az  
    A decorator to register a function as a decomposition to the Python
    decomposition table.  Use it like this::

        @register_decomposition(torch.ops.aten.clamp_min)
        def clamp_min(x):
            return torch.clamp(self, min=min)

    If you are writing a new decomposition, consider contributing it
    directly to PyTorch in torch._decomp.decompositions.

    This API is experimental; we are almost certainly going to extend
    the API when we make decompositions eligible for use in transforms (e.g.,
    autograd) and not just backend tracing, where we then need to know if a
    decomposition can be used to simulate a transform.

    By default, we also will register it to the Meta key of dispatcher,
    and replace the c++ Meta implementation if there is already one.

    unsafe kwarg is for reuse of this function for registering non-function
    things
    >   r#   r"   r!   r<   r%   c                 óv   •‡ — ‰ }‰st        ‰ «      Š ‰€	t        ‰   Šˆ ˆfd„}t        j                  |‰«       |S )Nc                 ó    •— t        ‰| ‰«       y rE   )r?   )r$   r<   r;   s    €€r1   ÚregisterzIregister_decomposition.<locals>.decomposition_decorator.<locals>.registerÖ   s   ø€ Ü ¨"¨bÕ1r2   )rw   r    ÚpytreeÚ	tree_map_)r<   Úorig_fnr}   Úaten_opr;   rx   ry   s   `  €€€€r1   Údecomposition_decoratorz7register_decomposition.<locals>.decomposition_decoratorÍ   sC   ù€ ØˆÙÜ$ RÓ(ˆBð ÐÜ1°$Ñ7ˆHõ	2ô 	×Ñ˜ 7Ô+Øˆr2   )r	   r   r   )r�   r;   rx   ry   r‚   s   ```` r1   r   r   ±   sF   û€ ð4 Ð<Ñ<Ð<Ð<ð¤H¬R´¨VÑ$4ð ¼Ä"ÄbÀ&Ñ9I÷ ð ð  #Ð"r2   Úaten_opsrx   c                 ó~  — |dv sJ ‚t         |   }t        t        «      }|D ]7  }t        |t        t
        f«      sŒ||j                     j                  |«       Œ9 i }| D ][  }t        |t
        «      r||v r||   D ]
  }||   ||<   Œ Œ*t        |t        j                  j                  «      sŒO||v sŒT||   ||<   Œ] |S )a,  
    Retrieve a dictionary of decompositions corresponding to the list of
    operator overloads and overload packets passed as input.  Overload
    packets will include all decomposed overloads in the packet.  If there is
    no decomposition for a requested operator, it is silently ignored.

    This API is experimental; we are almost certainly going to give an alternate,
    more recommended formulation, where a user provides the set of operators
    they know how to implement, and we provide decompositions for everything
    not in this set.
    >   r#   r"   r!   )r    r   Úlistr'   r   r   Úoverloadpacketr4   r(   r)   r   )rƒ   rx   r;   Úpackets_to_overloadsÚopoÚdecompositionsr$   r>   s           r1   r   r   à   sá   € ð Ð<Ñ<Ð<Ð<ä)¨$Ñ/€HÜ&¤tÓ,ÐØò AˆÜ�cœJÔ(8Ð9Õ:Ø  ×!3Ñ!3Ñ4×;Ñ;¸CÕ@ðAð ?A€NØò .ˆÜ�bÔ*Ô+°Ð6JÑ0JØ3°BÑ7ò D�Ø.6°{Ñ.C�˜{Ò+ñDä˜œUŸZ™Z×4Ñ4Õ6¸2Àº>Ø!)¨"¡ˆN˜2Òð.ð Ðr2   r‰   c                 óà   — |D ]i  }t        |t        «      r4|j                  «       D ]   }t        ||«      }| j	                  |d«       Œ" ŒGt        |t
        «      sŒX| j	                  |d«       Œk y)a=  
    Given a dictionary of decompositions obtained from get_decompositions(), removes
    operators associated with a list of operator overloads and overload packets passed
    as input. If the decomposition dictionary does not contain a decomposition that is
    specified to be removed, it is silently ignored.
    N)r'   r   r5   r6   rG   r   )r‰   rƒ   r$   Úoverload_namerˆ   s        r1   Úremove_decompositionsrŒ      sk   € ð ò )ˆÜ�bÔ*Ô+Ø!#§¡£ò .�Ü˜b -Ó0�Ø×"Ñ" 3¨Õ-ñ.ô ˜œJÕ'Ø×Ñ˜r 4Õ(ñ)r2   c                  ó   — ddl m}   | «       S )Nr   ©Údefault_decompositions)Útorch.export.exported_programr�   rŽ   s    r1   r   r     s   € ÝDá!Ó#Ð#r2   c                  óÜ  — t         j                  j                  } t        g | j                  ‘| j
                  ‘| j                  ‘| j                  ‘| j                  ‘| j                  ‘| j                  ‘| j                  ‘| j                  ‘| j                  j                  ‘| j                  j                  ‘| j                   ‘| j"                  ‘| j$                  ‘| j&                  ‘| j(                  ‘| j*                  ‘| j,                  j.                  ‘| j,                  j                  ‘| j0                  ‘| j2                  ‘| j4                  ‘| j6                  ‘| j8                  ‘| j:                  ‘| j<                  ‘| j>                  ‘| j@                  ‘| jB                  ‘| jD                  ‘| jF                  ‘| jH                  ‘| jJ                  ‘| jL                  ‘| jN                  ‘| jP                  ‘| jR                  ‘| jT                  ‘| jV                  ‘| jX                  ‘| jZ                  ‘| j\                  ‘| j^                  ‘| j`                  ‘| jb                  j                  ‘| jd                  ‘| jf                  ‘| jh                  ‘| jj                  ‘| jl                  ‘| jn                  ‘| jp                  ‘| jr                  ‘| jt                  ‘| jv                  ‘| jx                  ‘| jz                  ‘| j|                  ‘| j~                  ‘| j€                  ‘| j‚                  ‘| j„                  ‘| j†                  ‘| jˆ                  ‘| jŠ                  ‘| jŒ                  ‘| jŽ                  ‘| j�                  ‘| j’                  ‘| j”                  ‘| j–                  ‘| j˜                  ‘| jš                  jœ                  ‘| jš                  j                  ‘| jž                  ‘| j                   jœ                  ‘| j                   j                  ‘| j¢                  ‘| j¤                  j¦                  ‘| j¤                  j¨                  ‘| j¤                  jª                  ‘| j¤                  j¬                  ‘| j®                  ‘| j°                  ‘| j²                  ‘| j´                  ‘| j¶                  ‘| j¸                  ‘| jº                  ‘| j¼                  ‘| j¾                  ‘| jÀ                  ‘| jÂ                  ‘| jÄ                  ‘| jÆ                  ‘| jÈ                  ‘| jÊ                  ‘| jÌ                  ‘| jÎ                  ‘| jÐ                  ‘| jÒ                  ‘| jÔ                  ‘| jÖ                  ‘| jØ                  j                  ‘| jÚ                  ‘| jÜ                  ‘| jÞ                  ‘| jà                  ‘| jâ                  ‘| jä                  ‘| jæ                  ‘| jè                  ‘| jê                  ‘| jì                  ‘| jî                  ‘| jð                  ‘| jò                  ‘| jô                  ‘| jö                  ‘| jø                  ‘| jú                  ‘| jü                  ‘| jþ                  ‘| �j                   ‘| �j                  ‘| �j                  ‘| �j                  ‘| �j                  ‘| �j
                  ‘| �j                  ‘| �j                  ‘| �j                  ‘| �j                  ‘| �j                  �j                  ‘| �j                  �j                  ‘| �j                  �j                  ‘| �j                  �j                  ‘| �j                  �j                  ‘| �j                  jœ                  ‘| �j                  �j                   ‘| �j                  �j"                  ‘| �j                  �j$                  ‘| �j                  �j&                  ‘| �j(                  ‘| �j*                  ‘| �j,                  ‘| �j.                  ‘| �j0                  ‘| �j2                  ‘| �j4                  ‘| �j6                  ‘| �j8                  ‘| �j:                  ‘| �j<                  ‘| �j>                  ‘| �j@                  ‘| �jB                  ‘| �jD                  ‘| �jF                  ‘| �jH                  ‘| �jJ                  ‘| �jL                  ‘| �jN                  ‘| �jH                  ‘| �jP                  ‘| �jR                  ‘| �jT                  ‘| �jV                  ‘| �jX                  ‘| �jZ                  ‘| �j\                  ‘| �j^                  j                  ‘| �j`                  ‘| �jb                  ‘| �jd                  ‘| �jf                  ‘| �jh                  ‘| �jj                  ‘| �jl                  ‘| �jn                  �jp                  ‘| �jr                  ‘| �jt                  ‘| �jv                  ‘| �jx                  ‘| �jz                  ‘| �j|                  ‘| �j~                  ‘| �j€                  ‘| �j‚                  ‘| �j„                  ‘| �j†                  ‘| �jˆ                  ‘| �jŠ                  ‘| �jŒ                  ‘| �jŽ                  �j�                  ‘| �j’                  ‘| �j”                  ‘| �j–                  j                  ‘| �j–                  �j˜                  ‘| �jš                  �jœ                  ‘| �jš                  jœ                  ‘| �jš                  �jž                  ‘| �jš                  �j"                  ‘| �jš                  �j                   ‘| �j¢                  �jœ                  ‘| �j¢                  �jž                  ‘| �j¤                  ‘| �j¦                  j                  ‘| �j¦                  jœ                  ‘| �j¨                  ‘| �jª                  ‘| �j¬                  ‘| �j®                  ‘| �j°                  ‘| �j²                  ‘| �j´                  ‘| �j¶                  ‘| �j¸                  �jº                  ‘| �j¼                  ‘| �j¾                  ‘| �jÀ                  ‘| �jÂ                  ‘| �jÄ                  ‘| �jÆ                  ‘| �jÈ                  ‘| �jÊ                  ‘| �jÌ                  ‘| �jÎ                  ‘| �jÐ                  ‘| �jÒ                  ‘| �jÔ                  �j�                  ‘| �jÖ                  ‘| �jØ                  ‘| �jÚ                  ‘| �jÜ                  ‘| �jÞ                  jœ                  ‘| �jà                  jœ                  ‘| �jâ                  ‘| �jä                  ‘| �jæ                  ‘| �jè                  ‘| �jê                  ‘| �jì                  ‘| �jî                  ‘| �jð                  ‘| �jò                  ‘| �jô                  ‘«      S rE   )ûr(   r-   r.   r   ÚaddcdivÚaddcdiv_ÚaddcmulÚaddcmul_ÚaddrÚaffine_grid_generatorÚ
alias_copyrP   ÚaminmaxÚaranger0   ÚstartÚavg_pool2d_backwardÚbaddbmmÚbinary_cross_entropyÚbinary_cross_entropy_backwardÚ binary_cross_entropy_with_logitsÚ
block_diagÚ	bernoulliÚpÚceluÚcelu_Úchannel_shuffleÚ	clamp_maxÚ	clamp_minÚcol2imÚcount_nonzeroÚlinalg_crossÚcudnn_batch_normÚcudnn_batch_norm_backwardÚmiopen_batch_norm_backwardÚdeg2radÚdeg2rad_ÚdetachÚ
diag_embedÚdiagonal_backwardÚdiagonal_copyÚdotÚvdotÚeluÚelu_Úelu_backwardÚ_embedding_bagÚembedding_dense_backwardÚ
empty_likeÚ_euclidean_distÚ	expand_asÚexpand_copyÚeyeÚfillÚfill_Úfloor_divideÚfracÚfrac_Ú_fused_moving_avg_obs_fq_helperÚgelu_Úgelu_backwardÚgluÚglu_backwardÚ
hardshrinkÚhardsigmoidÚhardsigmoid_Úhardsigmoid_backwardÚ	hardswishÚ
hardswish_Úhardswish_backwardÚ	hardtanh_Úhardtanh_backwardÚ	heavisideÚ
heaviside_Ú
huber_lossÚhuber_loss_backwardÚim2colÚ	index_addrA   Ú
index_add_Ú
index_copyÚindex_copy_Ú
index_fillÚ
int_ScalarÚ
int_TensorÚint_Scalar_outÚint_Tensor_outÚindex_fill_ÚisinÚisneginfÚisposinfÚl1_lossÚ_lazy_cloneÚ_test_parallel_materializeÚleaky_relu_Úleaky_relu_backwardÚlerpÚlerp_ÚlinspaceÚ	logaddexpÚ
logaddexp2ÚlogitÚlogit_Úlogit_backwardÚlog_sigmoid_backwardÚlog_sigmoid_forwardÚ_log_softmax_backward_dataÚlogspaceÚ	logsumexpÚmasked_fillÚmasked_fill_Úmax_unpool2dÚmax_unpool3dÚmishÚmish_Úmse_lossÚmse_loss_backwardÚmulti_margin_lossÚmultilabel_margin_loss_forwardÚmvÚmvlgammaÚ	mvlgamma_ÚnansumÚ
nan_to_numÚnan_to_num_ÚnarrowÚnative_batch_norm_backwardÚnative_dropout_backwardÚnative_group_norm_backwardÚnative_layer_norm_backwardÚ	new_emptyÚnew_fullÚnew_onesÚ	new_zerosÚnll_loss2d_forwardÚnll_loss2d_backwardÚnll_loss_backwardÚnll_loss_forwardÚnormÚScalarOpt_dtypeÚScalarÚScalarOpt_dim_dtypeÚScalarOpt_dimÚ	dtype_outÚnames_dtype_outÚ	names_outÚScalarOpt_dtype_outÚ
Scalar_outÚonesÚ	ones_likeÚpixel_shuffleÚpixel_unshuffleÚ_prelu_kernelÚ_prelu_kernel_backwardÚ_reshape_aliasÚrad2degÚrad2deg_Úreflection_pad1dÚreflection_pad1d_backwardÚreflection_pad2dÚreflection_pad2d_backwardÚreflection_pad3dÚreflection_pad3d_backwardÚreplication_pad1dÚreplication_pad2dÚreplication_pad3dÚrenormÚrenorm_Ú	resize_asÚrollÚrot90Úrrelu_with_noiseÚrrelu_with_noise_ÚrsubÚ_safe_softmaxÚ+_scaled_dot_product_flash_attention_for_cpuÚselect_backwardÚselect_scatterÚsgnÚsgn_Úsigmoid_backwardÚsiluÚsilu_Úsilu_backwardÚ
grad_inputÚsincÚsinc_Úslice_backwardÚsmooth_l1_lossÚsmooth_l1_loss_backwardÚsoft_margin_lossÚsoft_margin_loss_backwardÚ_softmax_backward_dataÚsoftplusÚsoftplus_backwardÚ
softshrinkÚspecial_entrÚspecial_log_ndtrÚspecial_xlog1pyÚsplitÚTensorÚsplit_with_sizes_copyÚsqueeze_copyÚsqueezeÚdimÚstdÚ
correctionÚcorrection_outÚcorrection_names_outÚstd_meanÚstackÚsumrs   Út_copyÚtakeÚtanh_backwardÚ	thresholdÚ
threshold_Úthreshold_backwardÚtraceÚ	transposeÚintÚtranspose_copyÚtrilÚtril_ÚtriuÚtriu_ÚunbindÚunfold_backwardÚunfold_copyÚ_unsafe_indexÚ_unsafe_index_putÚ_unsafe_masked_indexÚ#_unsafe_masked_index_put_accumulateÚunsafe_splitÚunsafe_split_with_sizesÚunsqueeze_copyÚ_unsafe_viewÚupsample_linear1dÚupsample_bilinear2dÚupsample_trilinear3dÚupsample_nearest2d_backwardÚview_as_complexÚxlogyÚxlogy_ÚzeroÚzero_ÚzerosÚ
zeros_likeÚ
_chunk_catÚ_weight_norm_interface)r.   s    r1   Ú'_core_aten_decompositions_post_autogradr…  #  s  € ô �9‰9�>‰>€DÜðx	
Ø�L‰Lðx	
à�M‰Mðx	
ð �L‰Lðx	
ð �M‰Mð	x	
ð
 �I‰Iðx	
ð ×&Ñ&ðx	
ð �O‰Oðx	
ð �H‰Hðx	
ð �L‰Lðx	
ð �K‰K×Ñðx	
ð �K‰K×Ñðx	
ð ×$Ñ$ðx	
ð �L‰Lðx	
ð ×%Ñ%ðx	
ð ×.Ñ.ðx	
ð  ×1Ñ1ð!x	
ð" �O‰Oð#x	
ð$ �N‰N×Ñð%x	
ð& �N‰N×"Ñ"ð'x	
ð( �I‰Ið)x	
ð* �J‰Jð+x	
ð, × Ñ ð-x	
ð. �N‰Nð/x	
ð0 �N‰Nð1x	
ð2 �K‰Kð3x	
ð4 ×Ñð5x	
ð6 ×Ñð7x	
ð8 ×!Ñ!ð9x	
ð: ×*Ñ*ð;x	
ð< ×+Ñ+ð=x	
ð> �L‰Lð?x	
ð@ �M‰MðAx	
ðB �K‰KðCx	
ðD �O‰OðEx	
ðF ×"Ñ"ðGx	
ðH ×ÑðIx	
ðJ �H‰HðKx	
ðL �I‰IðMx	
ðN �H‰HðOx	
ðP �I‰IðQx	
ðR ×ÑðSx	
ðT ×ÑðUx	
ðV ×)Ñ)ðWx	
ðX �O‰OðYx	
ðZ × Ñ ×(Ñ(ð[x	
ð\ �N‰Nð]x	
ð^ ×Ñð_x	
ð` �H‰Hðax	
ðb �I‰Iðcx	
ðd �J‰Jðex	
ðf ×Ñðgx	
ðh �I‰Iðix	
ðj �J‰Jðkx	
ðl ×0Ñ0ðmx	
ðn �J‰Jðox	
ðp ×Ñðqx	
ðr �H‰Hðsx	
ðt ×Ñðux	
ðv �O‰Oðwx	
ðx ×Ñðyx	
ðz ×Ñð{x	
ð| ×%Ñ%ð}x	
ð~ �N‰Nðx	
ð@ �O‰OðAx	
ðB ×#Ñ#ðCx	
ðD �N‰NðEx	
ðF ×"Ñ"ðGx	
ðH �N‰NðIx	
ðJ �O‰OðKx	
ðL �O‰OðMx	
ðN ×$Ñ$ðOx	
ðP �K‰KðQx	
ðR �N‰N×ÑðSx	
ðT �N‰N×"Ñ"ðUx	
ðV �O‰OðWx	
ðX �O‰O×ÑðYx	
ðZ �O‰O×#Ñ#ð[x	
ð\ ×Ñð]x	
ð^ �O‰O×&Ñ&ð_x	
ð` �O‰O×&Ñ&ðax	
ðb �O‰O×*Ñ*ðcx	
ðd �O‰O×*Ñ*ðex	
ðf ×Ñðgx	
ðh �I‰Iðix	
ðj �M‰Mðkx	
ðl �M‰Mðmx	
ðn �L‰Lðox	
ðp ×Ñðqx	
ðr ×+Ñ+ðsx	
ðt ×Ñðux	
ðv ×$Ñ$ðwx	
ðx �I‰Iðyx	
ðz �J‰Jð{x	
ð| �M‰Mð}x	
ð~ �N‰Nðx	
ð@ �O‰OðAx	
ðB �J‰JðCx	
ðD �K‰KðEx	
ðF ×ÑðGx	
ðH ×%Ñ%ðIx	
ðJ ×$Ñ$ðKx	
ðL ×+Ñ+ðMx	
ðN �M‰MðOx	
ðP �N‰N×"Ñ"ðQx	
ðR ×ÑðSx	
ðT ×ÑðUx	
ðV ×ÑðWx	
ðX ×ÑðYx	
ðZ �I‰Ið[x	
ð\ �J‰Jð]x	
ð^ �M‰Mð_x	
ð` ×"Ñ"ðax	
ðb ×"Ñ"ðcx	
ðd ×/Ñ/ðex	
ðf �G‰Gðgx	
ðh �M‰Mðix	
ðj �N‰Nðkx	
ðl �K‰Kðmx	
ðn �O‰Oðox	
ðp ×Ñðqx	
ðr �K‰Kðsx	
ðt ×+Ñ+ðux	
ðv ×(Ñ(ðwx	
ðx ×+Ò+ðyx	
ðz ×+Ò+ð{x	
ð| �NŠNð}x	
ð~ �MŠMðx	
ð@ �MŠMðAx	
ðB �NŠNðCx	
ðD ×#Ò#ðEx	
ðF ×$Ò$ðGx	
ðH ×"Ò"ðIx	
ðJ ×!Ò!ðKx	
ðL �IŠI×%Ò%ðMx	
ðN �IŠI×ÒðOx	
ðP �IŠI×)Ò)ðQx	
ðR �IŠI×#Ò#ðSx	
ðT �IŠI×ÒðUx	
ðV �IŠI�M‰MðWx	
ðX �IŠI×%Ò%ðYx	
ðZ �IŠI×Òð[x	
ð\ �IŠI×)Ò)ð]x	
ð^ �IŠI× Ò ð_x	
ð` �IŠIðax	
ðb �NŠNðcx	
ðd ×Òðex	
ðf × Ò ðgx	
ðh ×Òðix	
ðj ×'Ò'ðkx	
ðl ×Òðmx	
ðn �LŠLðox	
ðp �MŠMðqx	
ðr ×!Ò!ðsx	
ðt ×*Ò*ðux	
ðv ×!Ò!ðwx	
ðx ×*Ò*ðyx	
ðz ×!Ò!ð{x	
ð| ×*Ò*ð}x	
ð~ ×"Ò"ðx	
ð@ ×"Ò"ðAx	
ðB ×"Ò"ðCx	
ðD �KŠKðEx	
ðF �LŠLðGx	
ðH ×"Ò"ðIx	
ðJ �NŠNðKx	
ðL �IŠIðMx	
ðN �JŠJðOx	
ðP ×!Ò!ðQx	
ðR ×"Ò"ðSx	
ðT �IŠIðUx	
ðV ×ÒðWx	
ðX ×<Ò<×DÑDðYx	
ðZ × Ò ð[x	
ð\ ×Òð]x	
ð^ �HŠHð_x	
ð` �IŠIðax	
ðb ×!Ò!ðcx	
ðd �IŠIðex	
ðf �JŠJðgx	
ðh ×Ò×)Ò)ðix	
ðj �IŠIðkx	
ðl �JŠJðmx	
ðn ×Òðox	
ðp ×Òðqx	
ðr ×(Ò(ðsx	
ðt ×!Ò!ðux	
ðv ×*Ò*ðwx	
ðx ×'Ò'ðyx	
ðz �MŠMð{x	
ð| ×"Ò"ð}x	
ð~ �OŠOðx	
ð@ ×ÒðAx	
ðB ×!Ò!ðCx	
ðD × Ò ðEx	
ðF �JŠJ×ÒðGx	
ðH ×&Ò&ðIx	
ðJ ×ÒðKx	
ðL �LŠL× Ñ ðMx	
ðN �LŠL×ÒðOx	
ðP �HŠH×ÒðQx	
ðR �HŠH�L‰LðSx	
ðT �HŠH×#Ò#ðUx	
ðV �HŠH×ÒðWx	
ðX �HŠH×)Ò)ðYx	
ðZ �MŠM×$Ò$ð[x	
ð\ �MŠM×(Ò(ð]x	
ð^ �JŠJð_x	
ð` �HŠH×Ñðax	
ðb �HŠH�L‰Lðcx	
ðd �FŠFðex	
ðf �KŠKðgx	
ðh �IŠIðix	
ðj ×Òðkx	
ðl �NŠNðmx	
ðn �OŠOðox	
ðp ×#Ò#ðqx	
ðr �JŠJðsx	
ðt �NŠN×Òðux	
ðv ×Òðwx	
ðx �IŠIðyx	
ðz �JŠJð{x	
ð| �IŠIð}x	
ð~ �JŠJðx	
ð@ �KŠKðAx	
ðB × Ò ðCx	
ðD ×ÒðEx	
ðF ×ÒðGx	
ðH ×"Ò"ðIx	
ðJ ×%Ò%ðKx	
ðL ×4Ò4ðMx	
ðN ×Ò×$Ò$ðOx	
ðP ×(Ò(ðQx	
ðR ×ÒðSx	
ðT ×ÒðUx	
ðV ×"Ò"ðWx	
ðX ×$Ò$×(Ñ(ðYx	
ðZ ×%Ò%×)Ñ)ð[x	
ð\ ×,Ò,ð]x	
ð^ × Ò ð_x	
ð` �JŠJðax	
ðb �KŠKðcx	
ðd �IŠIðex	
ðf �JŠJðgx	
ðh �JŠJðix	
ðj �OŠOðkx	
ðl �OŠOðmx	
ðn ×'Ò'ðox	
ózð zr2   rE   )r!   )r%   r   )9rf   Úcollectionsr   Úcollections.abcr   Ú	functoolsr   r   r   Ú	itertoolsr   Útypingr	   r
   r   r   r   Útyping_extensionsr   Útorch.export.decomp_utilsr   r(   Útorch.libraryÚ
torch._opsr   r   r   r   Útorch._prims_commonr   Ú#torch._subclasses.functional_tensorr   Útorch.utilsr   r~   Ú__all__r   r   Údictr    Ústrr)   rd   r   r   r   Úboolr   r?   rw   r   r   rŒ   Útorch._decomp.decompositionsÚtorch._refsr   r…  rM   r2   r1   ú<module>r˜     sÛ  ðä Ý #Ý $ß /Ñ /Ý ß DÕ DÝ 'ñ Ý;ã Û ß VÓ VÝ 8Ý @Ý )ò€ñ ˆTƒ]€Ùˆtƒ_€ñ
 �Óð ˜D  d¨5¯:©:×+BÑ+BÀHÐ+LÑ&MÐ!MÑNó ð 1°ÑAÐ Ø#=¸nÑ#MÐ  Ø'¨Ñ/€
ð:¨E¯J©J×,CÑ,Cð :Èó :ò$'ò:Qðj ð,#Ø$3¸Eò,#àˆx˜˜B˜ÑÐ  (¨2¨r¨6Ñ"2Ð2Ñ3ó,#ðb  ñØ�u˜UŸZ™Z×4Ñ4Ð6FÐFÑGÑHðà
ðð 
ˆ%�*‰*×
!Ñ
! 8Ð
+Ñ,óð@)Ø˜Ÿ™×0Ñ0°(Ð:Ñ;ð)à�u˜ZÐ)9Ð9Ñ:Ñ;ð)ð 
ó)ó( $Û ó$ð~°Ø	‡J�J×Ñ˜XÐ%ñ2ô ~r2   