§
    ŠŠtjä]  ã                   óî  — U d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZm	Z	m
Z
mZmZmZ d dlZd dlmZ d dlmZmZ d dlmZ ddlmZ erdd	lmZ g d
¢Z ed¬¦  «         G d„ de¦  «        ¦   «         Zi Zeedef         eej                 f         e d<   deej                 fd„Z! e!¦   «         eej"        <    G d„ d¦  «        Z#ej$        ej%        ej&        ej'        ej(        j)        e j*        ej+         e#¦   «          e,d¦  «        ej-         ej.        d¦  «        edœZ/ e0e¦  «        D ]Z1 e2ee1¦  «        e/e1<   Œdddefd„Z3dej4        j5        dej        fd„Z6i Z7ee8e9e9f         ej        f         e d<   dej4        j5        dej        fd„Z: ed¬¦  «        dedef         de8d          d!ee9d"f         ddfd#„¦   «         Z;ed$edef         d%e
d&         de8eej                 dz  eej4        j5                 dz  f         fd'„¦   «         Z<e	 d8d$edef         d%e
d         deej                 dz  fd(„¦   «         Z< ed¬¦  «        	 d9d$edef         d%e=deej                 e8eej                 dz  eej4        j5                 dz  f         z  dz  fd)„¦   «         Z< ed¬¦  «        d*e>de>fd+„¦   «         Z? ed¬¦  «        d,ed-ede=fd.„¦   «         Z@ ed¬¦  «        	 	 	 	 d:dedef         de8edf         d!ee9ef         dz  d/e8e         dz  d0ee9ef         dz  d1e=defd2„¦   «         ZA ed¬¦  «        	 	 	 	 d:dedef         de8edf         d!ee9ef         dz  d/e8e         dz  d0ee9ef         dz  d1e=dedz  fd3„¦   «         ZB ed¬¦  «        	 	 d;d4ejC        jD        de9de8e         d!ee9ef         dz  d1e=dedz  fd5„¦   «         ZEd6ej        de8edf         d!ee9ef         d1e=dedz  f
d7„ZFdS )<é    N)ÚCallable)ÚAnyÚcastÚLiteralÚ
NamedTupleÚoverloadÚTYPE_CHECKING)Úboolean_dispatched)Ú
OpOverloadÚOpOverloadPacket)Ú
_fast_bindé   )Úcompatibility)ÚArgument)ÚArgsKwargsPairÚcheck_for_mutable_operationÚget_signature_for_torch_opÚcreate_type_hintÚtype_matchesÚnormalize_functionÚnormalize_moduleF)Úis_backward_compatiblec                   óH   — e Zd ZU dZeedf         ed<   eeef         ed<   dS )r   z<
    Simple named tuple for wrapping args/kwargs pairs.
    .ÚargsÚkwargsN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Útupler   Ú__annotations__ÚdictÚstr© ó    úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/fx/operator_schemas.pyr   r       sF   € € € € € € ðð ð ��S�Œ/ÐÐÑØ��c�ŒNÐÐÑÐÐr%   r   .Ú_manual_overridesÚreturnc                  óü   — g } dt           j        dd fd„}|                      t          j        |¦  «        ¦  «         dt           j        dt
          dd fd„}|                      t          j        |¦  «        ¦  «         | S )NÚselfr(   c                 ó   — d S ©Nr$   )r*   s    r&   Únonzeroz!_nonzero_schemas.<locals>.nonzero0   ó   € Øˆr%   Úas_tuplec                ó   — d S r,   r$   )r*   r/   s     r&   r-   z!_nonzero_schemas.<locals>.nonzero5   r.   r%   )ÚtorchÚTensorÚappendÚinspectÚ	signatureÚbool)Ú
signaturesr-   s     r&   Ú_nonzero_schemasr8   -   sž   € Ø€Jð•e”lð  tð ð ð ð ð ×Ò•gÔ'¨Ñ0Ô0Ñ1Ô1Ð1ð•e”lð µð ¸$ð ð ð ð ð ×Ò•gÔ'¨Ñ0Ô0Ñ1Ô1Ð1àÐr%   c                   ó(   — e Zd Zdedej        fd„ZdS )Ú_FakeGlobalNamespaceÚnamer(   c                 ó:   — |dk    rt           S t          d¦  «        ‚)Nr1   z!Expected a torch namespace lookup)r1   ÚRuntimeError)r*   r;   s     r&   Ú__getattr__z _FakeGlobalNamespace.__getattr__A   s   € Ø�7Š?ˆ?ÝˆLÝÐ>Ñ?Ô?Ð?r%   N)r   r   r   r#   ÚtypesÚ
ModuleTyper>   r$   r%   r&   r:   r:   @   sA   € € € € € ð@ ð @¨Ô(8ð @ð @ð @ð @ð @ð @r%   r:   Út)r2   ÚDeviceÚLayoutÚnumberÚFutureÚAnyEnumTypeÚQSchemeÚ	__torch__ÚNoneTypeÚStoragerA   ÚPyObjectÚts_typeztorch._C.JitTypec                 ó6   — t          | j        t          ¦  «        S )zç
    Convert a TorchScript type to a Python type (including subtypes) via
    eval'ing the annotation_str. _type_eval_globals sets up expressions
    like "List" and "Future" to map to actual types (typing.List and jit.Future)
    )ÚevalÚannotation_strÚ_type_eval_globals)rL   s    r&   Ú _torchscript_type_to_python_typerQ   Y   s   € õ �Ô&Õ(:Ñ;Ô;Ð;r%   Ú	ts_schemac           	      ó$  — ddl m} g }| j        D �]}t          |j        ¦  «        }|                     ¦   «         r|j        n|j        }|j        dk    r|j        nd}|j	        r|j
        n|j        }|dk    rŽ||j        k    rt          d|› �¦  «        ‚|j        }t          |¦  «        D ]Z\  }}	|	j        |j        k    rt          d|	j        › d|	j        › �¦  «        ‚ ||	j        |j        |	j        |	j        ¬	¦  «        ||<   Œ[|                      |||||¬	¦  «        ¦  «         �Œd
„ | j        D ¦   «         }
t)          |
¦  «        dk    rd }n+t)          |
¦  «        dk    r	|
d         }nt+          |
¦  «        }t          j        ||¬¦  «        S )Nr   )Ú	Parameterr*   ÚinputÚfromz$Expected POSITIONAL_OR_KEYWORD, got z)Expected POSITIONAL_OR_KEYWORD for param z, got )r;   ÚkindÚdefaultÚ
annotationc                 ó6   — g | ]}t          |j        ¦  «        ‘ŒS r$   )rQ   Útype)Ú.0Úrets     r&   ú
<listcomp>z9_torchscript_schema_to_signature_impl.<locals>.<listcomp>Ž   s0   € ð ð ð Ø7:Õ(¨¬Ñ2Ô2ðð ð r%   r   )Úreturn_annotation)r4   rT   Ú	argumentsrQ   r[   Úhas_default_valueÚdefault_valueÚemptyr;   Ú
kwarg_onlyÚKEYWORD_ONLYÚPOSITIONAL_OR_KEYWORDÚAssertionErrorÚPOSITIONAL_ONLYÚ	enumeraterW   rX   rY   r3   ÚreturnsÚlenr    Ú	Signature)rR   rT   Ú
parametersÚargÚarg_typerX   r;   rW   ÚidxÚpÚreturn_typesÚreturn_types               r&   Ú%_torchscript_schema_to_signature_implrt   b   s  € ð "Ð!Ð!Ð!Ð!Ð!à"$€JØÔ"ð %
ñ %
ˆÝ3°C´HÑ=Ô=ˆØ'*×'<Ò'<Ñ'>Ô'>ÐS�#Ô#Ð#ÀIÄOˆð œ8 vÒ-Ð-ˆsŒxˆx°7ˆð Œ~ð1ˆIÔ"Ð"àÔ0ð 	ð �6Š>ˆ>Ø�yÔ6Ò6Ð6Ý$Ð%RÈDÐ%RÐ%RÑSÔSÐSð Ô,ˆDõ $ JÑ/Ô/ð 
ð 
‘��QØ”6˜YÔ<Ò<Ð<Ý(ØZÀAÄFÐZÐZÐRSÔRXÐZÐZñô ð ð #, )ØœØ"Ô2ØœIØ œ|ð	#ñ #ô #�
˜3‘�ð 	×ÒØˆI˜4 d°GÈÐQÑQÔQñ	
ô 	
ð 	
ñ 	
ðð Ø>GÔ>Oðñ ô €Lõ ˆ<ÑÔ˜AÒÐØˆˆÝ	ˆ\Ñ	Ô	˜aÒ	Ð	Ø" 1”oˆˆå˜LÑ)Ô)ˆåÔ˜Z¸;ÐGÑGÔGÐGr%   Ú_SCHEMA_TO_SIGNATURE_CACHEc                 ó�   — | j         | j        f}t                               |¦  «        }|�|S t	          | ¦  «        }|t          |<   |S r,   )r;   Úoverload_nameru   Úgetrt   )rR   Ú	cache_keyÚ	cache_valÚress       r&   Ú _torchscript_schema_to_signaturer|   ž   sO   € ð ” 	Ô 7Ð7€IÝ*×.Ò.¨yÑ9Ô9€IØÐØÐå
/°	Ñ
:Ô
:€CØ,/Õ˜yÑ)Ø€Jr%   Útargetr   )r   .r   r   c                 óŒ  — t          | d¬¦  «        \  }}|r«|r«g }t          ||¦  «        D ]=\  }}	 t          |g|¢R i |¤Ž |                     ||f¦  «         Œ.# t          $ r Y Œ:w xY wdt
          j        j        dd fd„}t          |¦  «        dk    rd S t          |¦  «        dk    r|d         \  }	}
 ||
¦  «         d S d S d S d S )NT)Úreturn_schemasÚschemar(   c                 ó:   — | j         rt          d| › d�¦  «        ‚d S )Nz!Tried to trace mutable operation z|. FX only supports functional code, so operations that mutate operands in-place (e.g. via `out` arguments) are not supported)Ú
is_mutabler=   )r€   s    r&   Úthrow_if_mutablez5check_for_mutable_operation.<locals>.throw_if_mutableÁ   s?   € ØÔ ð Ý"ð)¸ð )ð )ð )ñô ð ðð r%   r   r   )	r   Úzipr   r3   Ú	TypeErrorr1   Ú_CÚFunctionSchemark   )r}   r   r   r7   ÚschemasÚmatched_schemasÚcandidate_signaturer€   rƒ   Ú_Úschema_to_checks              r&   r   r   ¬   sF  € õ 5°VÈDÐQÑQÔQÑ€J�àð �gð ØSUˆõ
 ,/¨z¸7Ñ+CÔ+Cð 	ð 	Ñ'Ð ðÝÐ.Ð@°Ð@Ð@Ð@¸Ð@Ð@Ð@Ø×&Ò&Ð(;¸VÐ'DÑEÔEÐEÐEøÝð ð ð Ø�ðøøøð	¥U¤XÔ%<ð 	Àð 	ð 	ð 	ð 	õ ˆÑÔ 1Ò$Ð$àˆDÝ�Ñ!Ô! QÒ&Ð&à!0°Ô!3ÑˆAˆØÐ˜_Ñ-Ô-Ð-Ð-Ð-ð ˆDð?ð ð ð s   ±'AÁ
A&Á%A&Úopr   Tc                 ó   — d S r,   r$   ©r�   r   s     r&   r   r   Ö   s   € ð SVÐRUr%   c                 ó   — d S r,   r$   r�   s     r&   r   r   Ü   s	   € ð &) Sr%   c                 ó¬  — t          | t          ¦  «        r	| j        g}n£t          | t          ¦  «        rd„ |                      ¦   «         D ¦   «         }not
                               | ¦  «        }|r|r|dfndS t          j        j	         
                    | ¦  «        }|€|rdndS t          j                             |¦  «        }d„ |D ¦   «         }|r||fn|S )a„  
    Given an operator on the `torch` namespace, return a list of `inspect.Signature`
    objects corresponding to the overloads of that op.. May return `None` if a signature
    could not be retrieved.

    Args:
        op (Callable): An operator on the `torch` namespace to look up a signature for

    Returns:
        Optional[List[inspect.Signature]]: A list of signatures for the overloads of this
            operator, or None if the operator signatures could not be retrieved. If
            return_schemas=True, returns a tuple containing the optional Python signatures
            and the optional TorchScript Function signature
    c                 ó   — g | ]	}|j         ‘Œ
S r$   )Ú_schema)r\   r   s     r&   r^   z.get_signature_for_torch_op.<locals>.<listcomp>û   s   € ÐFÐFÐF¨�8Ô#ÐFÐFÐFr%   N)NNc                 ó,   — g | ]}t          |¦  «        ‘ŒS r$   )r|   ©r\   r€   s     r&   r^   z.get_signature_for_torch_op.<locals>.<listcomp>  s!   € ÐQÐQÐQ¸vÕ2°6Ñ:Ô:ÐQÐQÐQr%   )Ú
isinstancer   r“   r   Úop_overloadsr'   rx   r1   ÚjitÚ	_builtinsÚ_find_builtinr†   Ú_jit_get_schemas_for_operator)r�   r   rˆ   ÚoverrideÚaten_fnr7   s         r&   r   r   â   sï   € õ, �"•jÑ!Ô!ð BØ”:�,ˆˆÝ	�BÕ(Ñ	)Ô	)ð BØFÐF°B·O²OÑ4EÔ4EÐFÑFÔFˆˆå$×(Ò(¨Ñ,Ô,ˆØð 	@Ø'5Ð?�H˜dÐ#Ð#¸4Ð?å”)Ô%×3Ò3°BÑ7Ô7ˆàˆ?Ø#1Ð;�<�<°tÐ;Ý”(×8Ò8¸ÑAÔAˆàQÐQÈÐQÑQÔQ€JØ$2ÐBˆJ˜Ð Ð ¸
ÐBr%   Úxc                 óä  — 	 t          | t          t          f¦  «        rªt          | t          ¦  «        rdt          dt          fd„}ndt          dt          fd„}t	          | ¦  «        dk    r |t          ¦  «        S | d         }| D ]7}t          ||¦  «        rŒt          ||¦  «        r|}Œ& |t          ¦  «        c S  ||¦  «        S n'# t          $ r t          j        d| › �¦  «         Y nw xY w| S )aË  
    Produces a type hint for the given argument.

    The :func:`create_type_hint` looks for a type hint compatible with the input argument `x`.

    If `x` is a `list` or `tuple`, it looks for an object in the list whose type is a superclass
    of the rest, and uses that as `base_type` for the `List` or `Tuple` to be returned.
    If no such object is found, it defaults to `List[Any]`.

    If `x` is neither a `list` nor a `tuple`, it returns `x`.
    rž   r(   c                 ó   — t           |          S r,   )Úlist©rž   s    r&   Úret_typez"create_type_hint.<locals>.ret_type  s   € Ý œ7�Nr%   c                 ó    — t           | df         S )N.)r    r¢   s    r&   r£   z"create_type_hint.<locals>.ret_type"  s   € Ý   C œ=Ð(r%   r   z@We were not able to successfully create type hint from the type )	r–   r¡   r    r   rk   Ú
issubclassÚ	ExceptionÚwarningsÚwarn)rž   r£   Ú	base_typerA   s       r&   r   r     sS  € ð
Ý�a�$¥˜Ñ'Ô'ð 	'å˜!�TÑ"Ô"ð )ð#¥ð #­ð #ð #ð #ð #ð #ð
)¥ð )­ð )ð )ð )ð )õ �1‰vŒv˜Š{ˆ{Ø�x¥‘}”}Ð$Ø˜!œˆIØð )ð )�Ý˜a Ñ+Ô+ð )ØÝ 	¨1Ñ-Ô-ð )Ø !�I�Ià#˜8¥C™=œ=Ð(Ð(Ð(Ø�8˜IÑ&Ô&Ð&ð-	'øõ. ð 
ð 
ð 
åŒØRÈqÐRÐRñ	
ô 	
ð 	
ð 	
ð 	
ð
øøøð
 €Hs   ‚A8C	 Á;AC	 Â=
C	 Ã	!C-Ã,C-Úsignature_typeÚargument_typec                 óF  ‡‡— t          | d| ¦  «        }| ‰u rdS |t          j        u r5| ‰k    r/t          j        | ¦  «        }t	          ˆfd„|D ¦   «         ¦  «        S t          | dd ¦  «        t
          u r»t          j        | ¦  «        d         Š‰t          u r‰t          u rdS t          j        ‰¦  «        st          j
        d| › d�¦  «         dS t          ‰dd ¦  «        t
          u r(t          t          j        ‰¦  «        d         ‰¦  «        S dt          d	t          fˆfd
„} |‰¦  «        S | t          u r‰t          j        u rdS | t           j        u r‰t          t$          hv rdS t          j        ‰¦  «        r$t          j        | ¦  «        rt          ‰| ¦  «        S dS )NÚ
__origin__Tc              3   ó8   •K  — | ]}t          |‰¦  «        V — Œd S r,   )r   )r\   Úcr«   s     €r&   ú	<genexpr>ztype_matches.<locals>.<genexpr>C  s-   øè è € ÐIÐI°a•<  =Ñ1Ô1ÐIÐIÐIÐIÐIÐIr%   r   z.Does not support nested parametric types, got z. Please file a bug.FrA   r(   c                 ó¬   •— t          j        | ¦  «        t          urdS t          j        | ¦  «        }|dk    rdS t	          ˆfd„|D ¦   «         ¦  «        S )NF)r$   Tc              3   óJ   •K  — | ]}|t           u pt          |‰¦  «        V — Œd S r,   )ÚEllipsisr¥   )r\   r¯   Úsig_el_types     €r&   r°   z=type_matches.<locals>.is_homogeneous_tuple.<locals>.<genexpr>Z  s6   øè è € ÐXÐXÈ˜�X˜ÐD­*°Q¸Ñ*DÔ*DÐXÐXÐXÐXÐXÐXr%   )ÚtypingÚ
get_originr    Úget_argsÚall)rA   Ú	containedr´   s     €r&   Úis_homogeneous_tuplez*type_matches.<locals>.is_homogeneous_tupleT  s`   ø€ ÝÔ  Ñ#Ô#­5Ð0Ð0Ø�uÝœ¨Ñ*Ô*ˆIØ˜EÒ!Ð!Ø�tÝÐXÐXÐXÐXÈiÐXÑXÔXÑXÔXÐXr%   )Úgetattrrµ   ÚUnionr·   Úanyr¡   Úintr4   Úisclassr§   r¨   r¥   Úobjectr6   r1   ÚdtypeÚnumbersÚNumberÚfloat)rª   r«   Úsig_origin_typeÚsig_containedrº   r´   s    `   @r&   r   r   8  så  øø€ å˜n¨l¸NÑKÔK€Oà˜Ð&Ð&Øˆtð �&œ,Ð&Ð&¨>¸]Ò+JÐ+JÝœ¨Ñ7Ô7ˆÝÐIÐIÐIÐI¸=ÐIÑIÔIÑIÔIÐIåˆ~˜|¨TÑ2Ô2µdÐ:Ð:Ý”o nÑ5Ô5°aÔ8ˆð �CÐÐ Kµ3Ð$6Ð$6Ø�4åŒ˜{Ñ+Ô+ð 	ÝŒMØeÀÐeÐeÐeñô ð ð �5Ý�= ,°Ñ5Ô5½Ð=Ð=Ý�fœo¨mÑ<Ô<¸QÔ?ÀÑMÔMÐMð	Y¥Fð 	Y­tð 	Yð 	Yð 	Yð 	Yð 	Yð 	Yð $Ð# MÑ2Ô2Ð2ð �ÐÐ µ%´+Ð!=Ð!=Øˆtà�œÐ'Ð'¨M½cÅ5¸\Ð,IÐ,IØˆtÝ„�}Ñ%Ô%ð 9­'¬/¸.Ñ*IÔ*Ið 9Ý˜-¨Ñ8Ô8Ð8àˆ5r%   Ú	arg_typesÚkwarg_typesÚnormalize_to_only_use_kwargsc                 ób   — t          | |||||¦  «        }|€t          d| › d|› d|› �¦  «        ‚|S )zb
    Wrapper around normalize_function that never returns None, but
    loudly errors instead
    NzFailed to normalize function z with args z and kwargs )r   r=   )r}   r   r   rÇ   rÈ   rÉ   r{   s          r&   Ú_normalize_function_or_errorrË   k  s]   € õ Ø��f˜i¨Ð6Rñô €Cð €{ÝØY¨FÐYÐY¸tÐYÐYÐQWÐYÐYñ
ô 
ð 	
ð ˆ
r%   c                 ó`  — |€i }d}t          | t          j        ¦  «        s3t          | t          t          f¦  «        st          | d¦  «        r| j        } t          | t          j        ¦  «        �st          | t          t          f¦  «        sì| }| t          v ryt          | t          ¦  «        rt          d¦  «        ‚t          |          }|d         |d         }
}	t          j        |	¦  «        j        t          j        |
¦  «        j        k    rdS |	}t          |¦  «        st          dt          |¦  «        › �¦  «        ‚t          j        t          j        |¦  «        ¦  «        }t!          ||||¦  «        }�n·t          | ¦  «        st          dt          | ¦  «        › �¦  «        ‚t#          | ¦  «        }g }|�ru|D ]8}	 t%          |g|¢R i |¤Ž |                     |¦  «         Œ)# t(          $ r Y Œ5w xY wt+          |¦  «        dk    r�n%t+          |¦  «        d	k    rt!          |d         |||¦  «        }nù|€|�¯|r|nt-          t.          t0                   d
¦  «        }|r|ni }|D ]�}d}	 t%          |g|¢R i |¤Ž}|j                             ¦   «         D ])\  }}|j        |         }|ot7          |j        |¦  «        }Œ*n# t(          $ r d}Y nw xY w|rt!          ||||¦  «        } nŒ‚nFd                     d„ |D ¦   «         ¦  «        }t=          dt?          j         | ¦  «        › d|› �¦  «        ‚|S )aø  
    Returns normalized arguments to PyTorch functions. This means that
    `args/kwargs` will be matched up to the functional's
    signature and return exclusively kwargs in positional order if
    `normalize_to_only_use_kwargs` is True.
    Also populates default values. Does not support positional-only
    parameters or varargs parameters (``*args``, ``**kwargs``). Does not support modules.

    May require `arg_types` and `kwarg_types` in order to disambiguate overloads.

    Args:
        target (Callable): Function that we are normalizing
        args (Tuple[Any]): Tuple of args to the function
        kwargs (Optional[Dict[str, Any]]): Dict of kwargs to the function
        arg_types (Optional[Tuple[Any]]): Tuple of arg types for the args
        kwarg_types (Optional[Dict[str, Any]]): Dict of arg types for the kwargs
        normalize_to_only_use_kwargs (bool): Whether to normalize to only use kwargs.

    Returns:

        Returns normalized_args_and_kwargs, or `None` if not successful.
    NÚ_opz"target should not be a string hereÚif_trueÚif_falsez*target_for_analysis must be callable, got ztarget must be callable, got r   r   r$   TFú
c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r,   )r#   r•   s     r&   r°   z%normalize_function.<locals>.<genexpr>  s9   è è € ð 1ð 1Ø(.�˜F™œð1ð 1ð 1ð 1ð 1ð 1r%   z Tried to normalize arguments to zy but the schema match was ambiguous! Please provide argument types to the normalize_arguments() call. Available schemas:
)!r–   r?   ÚBuiltinFunctionTyper   r   ÚhasattrrÍ   r
   r#   rg   r4   r5   rm   Úcallabler[   ÚunwrapÚ&_args_kwargs_to_normalized_args_kwargsr   r   r3   r…   rk   r   r    r   r`   Úitemsr   rY   Újoinr=   r1   Útypename)r}   r   r   rÇ   rÈ   rÉ   Únew_args_and_kwargsÚtarget_for_analysisÚ
dispatchedrÎ   rÏ   ÚsigÚtorch_op_schemasr‰   rŠ   Úsig_matchesÚbound_typesÚarg_namero   ÚparamÚschema_printoutss                        r&   r   r   ƒ  s=  € ð> €~ØˆØÐå�v�uÔ8Ñ9Ô9ð	å˜FÕ%5µzÐ$BÑCÔCð	õ �F˜EÑ"Ô"ð	ð ”ˆõ �f�eÔ7Ñ8Ô8ñ YÝ�6Õ,­jÐ9Ñ:Ô:ðYð %ÐØÕ'Ð'Ð'õ
 ˜&¥#Ñ&Ô&ð KÝ$Ð%IÑJÔJÐJÝ+¨FÔ3ˆJØ *¨9Ô 5°zÀ*Ô7M�XˆGåÔ! 'Ñ*Ô*Ô5ÝÔ$ XÑ.Ô.Ô9ò:ð :ð �tØ")ÐåÐ+Ñ,Ô,ð 	Ý ØX½TÐBUÑ=VÔ=VÐXÐXñô ð õ Ô¥¤Ð/BÑ CÔ CÑDÔDˆÝDØ��vÐ;ñ
ô 
ÐÑõ ˜ÑÔð 	QÝ Ð!OÅÀfÁÄÐ!OÐ!OÑPÔPÐPÝ5°fÑ=Ô=ÐØ35ˆØñ 8	ð (8ð ð Ð#ðÝÐ2ÐD°TÐDÐDÐD¸VÐDÐDÐDØ#×*Ò*Ð+>Ñ?Ô?Ð?Ð?øÝ ð ð ð Ø�Hðøøøõ �?Ñ#Ô# qÒ(Ð(áÝ�_Ñ%Ô%¨Ò*Ð*å&LØ# AÔ&¨¨fÐ6Rñ'ô 'Ð#Ð#ð Ð(¨KÐ,CØ-6Ð P 	 	½DÅÅsÄÈRÑ<PÔ<P�IØ1<Ð"D + +À"�KØ/?ð "ð "Ð+Ø&*˜ð
0Ý*4Ø 3ð+Ø6?ð+ð +ð +ØCNð+ð +˜Kð 7BÔ6K×6QÒ6QÑ6SÔ6Sð "ð "Ñ 2 ¨(Ø(;Ô(FÀxÔ(P Ø.9ð /"½lØ$)Ô$4°hñ?"ô ?"  ð"øõ
  )ð 0ð 0ð 0Ø*/˜K˜K˜Kð0øøøà&ð 	"å FØ$7Ø$(Ø$*Ø$@ñ	!"ô !"ð 0ð "˜Eð	"øð (,§y¢yð 1ð 1Ø2Að1ñ 1ô 1ñ (ô (Ð$õ 'ðb½5¼>È&Ñ;QÔ;Qð bð bàO_ðbð bñô ð ð Ðs%   Æ>%G$Ç$
G1Ç0G1É*AJ>Ê>KËKÚrootc                 ó�  — 	 |                       |¦  «        }n&# t          $ r}t          d|› d�¦  «        |‚d}~ww xY wt          |j        d¦  «        rs|j        j        }t          t          j        |d¦  «        |j        k    rCt          j
        t          j        |j        ¦  «        ¦  «        }|€i }t          ||||¦  «        }	|	S dS )a0  
    Returns normalized arguments to PyTorch modules. This means that
    `args/kwargs` will be matched up to the functional's
    signature and return exclusively kwargs in positional order if
    `normalize_to_only_use_kwargs` is True.
    Also populates default values. Does not support positional-only
    parameters or varargs parameters (``*args``, ``**kwargs``).

    Args:
        root (nn.Module): root module upon which we query modules
        target (Callable): Function that we are normalizing
        args (Tuple[Any]): Tuple of args to the function
        kwargs (Optional[Dict[str, Any]]): Dict of kwargs to the function
        normalize_to_only_use_kwargs (bool): Whether to normalize to only use kwargs.

    Returns:

        Returns normalized_args_and_kwargs, or `None` if not successful.
    z$Tried to normalize node with target z# but root did not have that target!Nr   )Úget_submoduleÚAttributeErrorr=   rÓ   Ú	__class__r   r»   r1   Únnr4   r5   rÕ   ÚforwardrÖ   )
rä   r}   r   r   rÉ   ÚsubmodÚeÚ	classnamerÝ   rÚ   s
             r&   r   r     só   € ð6Ø×#Ò# FÑ+Ô+ˆˆøÝð ð ð Ýð!°6ð !ð !ð !ñ
ô 
ð ð	øøøøðøøøõ
 ˆvÔ Ñ,Ô,ð 	'ØÔ$Ô-ˆ	Ý•5”8˜Y¨Ñ-Ô-°Ô1AÒAÐAÝÔ#¥G¤N°6´>Ñ$BÔ$BÑCÔCˆCØˆ~Ø�Ý"HØ�T˜6Ð#?ñ#ô #Ðð 'Ð&Øˆ4s   ‚ ˜
;¢6¶;rÝ   c                 óR  ‡	— t           j        j        t           j        j        hŠ	t	          ˆ	fd„| j                             ¦   «         D ¦   «         ¦  «        r.t          | j                             ¦   «         ¦  «        g d¢k    rdS t          | g|¢R i |¤Ž}| 
                    ¦   «          i }g }t          | j        ¦  «        D ]K\  }}|s4|t          |¦  «        k     r!|                     |j        |         ¦  «         Œ;|j        |         ||<   ŒLt          t!          |¦  «        |¦  «        S )a…  
    Given a call target, args, and kwargs, return the arguments normalized into
    an ArgsKwargsPair, or None if the type signature is not supported by
    this normalization.

    Args:

        sig (inspect.Signature): Signature object for the target
        args (Tuple): Arguments that appear at the callsite for `target`
        kwargs (Dict): Keyword arguments that appear at the callsite for `target`
        normalize_to_only_use_kwargs (bool): Whether to normalize to only use kwargs.

    Returns:

        Optional[ArgsKwargsPair]: Normalized args and kwargs for `target`, or `None` if
            this target is not supported.
    c              3   ó*   •K  — | ]}|j         ‰vV — Œd S r,   )rW   )r\   rq   Úsupported_parameter_typess     €r&   r°   z9_args_kwargs_to_normalized_args_kwargs.<locals>.<genexpr>\  s+   øè è € Ð
TÐ
T°qˆ1Œ6Ð2Ð2Ð
TÐ
TÐ
TÐ
TÐ
TÐ
Tr%   )rU   rV   ÚtoÚ	generatorN)r4   rT   rf   re   r½   rm   Úvaluesr¡   Úkeysr   Úapply_defaultsri   rk   r3   r`   r   r    )
rÝ   r   r   rÉ   Ú
bound_argsÚ
new_kwargsÚnew_argsÚirâ   rð   s
            @r&   rÖ   rÖ   >  s7  ø€ õ6 	ÔÔ/ÝÔÔ&ð!Ðõ Ð
TÐ
TÐ
TÐ
T¸C¼N×<QÒ<QÑ<SÔ<SÐ
TÑ
TÔ
TÑTÔTð õ
 �”×#Ò#Ñ%Ô%Ñ&Ô&Ð*NÐ*NÐ*NÒNÐNØ�4å˜CÐ1 $Ð1Ð1Ð1¨&Ð1Ð1€JØ×ÒÑÔÐà!#€JØ€HÝ˜cœnÑ-Ô-ð <ð <‰ˆˆ5Ø+ð 	<°µC¸±I´I²°Ø�OŠO˜JÔ0°Ô7Ñ8Ô8Ð8Ð8à *Ô 4°UÔ ;ˆJ�uÑÐå�% ™/œ/¨:Ñ6Ô6Ð6r%   ).)F)NNNF)NF)GÚenumr4   rÂ   r?   rµ   r§   Úcollections.abcr   r   r   r   r   r   r	   r1   Útorch._jit_internalr
   Ú
torch._opsr   r   Útorch.utils._inspectr   Ú_compatibilityr   Únoder   Ú__all__r   r'   r"   r¡   rl   r!   r8   r-   r:   r2   ÚdeviceÚlayoutrÃ   r˜   rE   ÚEnumÚqschemer[   ÚUntypedStorageÚTypeVarrP   ÚdirÚkr»   rQ   r†   r‡   rt   ru   r    r#   r|   r   r   r6   rÀ   r   r   rË   r   ré   ÚModuler   rÖ   r$   r%   r&   ú<module>r     sï  ðØ €€€€Ø €€€Ø €€€Ø €€€Ø €€€Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jà €€€Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø +Ð +Ð +Ð +Ð +Ð +à )Ð )Ð )Ð )Ð )Ð )ð ð ØÐÐÐÐÐðð ð €ð € eÐ,Ñ,Ô,ðð ð ð ð �Zñ ô ñ -Ô,ðð HJÐ �4˜  c Ô*¨D°Ô1BÔ,CÐCÔDÐ IÐ IÑ Ið˜$˜wÔ0Ô1ð ð ð ð ð  $4Ð#3Ñ#5Ô#5Ð �%”-Ñ  ð@ð @ð @ð @ð @ñ @ô @ð @ð ŒlØŒlØŒlØŒnØŒiÔØ”9ØŒ}Ø%Ð%Ñ'Ô'Ø��T‘
”
ØÔ#Ø	ˆŒ˜Ñ	Ô	Øðð Ð ð 
ˆˆV‰Œð /ð /€AØ#˜G F¨AÑ.Ô.Ð�qÑÐð<Ð.@ð <ÀSð <ð <ð <ð <ð6HØŒxÔ&ð6HàÔð6Hð 6Hð 6Hð 6Hðr HJÐ ˜D  s¨C x¤°'Ô2CÐ!CÔDÐ IÐ IÑ IðØŒxÔ&ðàÔðð ð ð ð € eÐ,Ñ,Ô,ð&Ø�S˜#�XÔð&à
�Ô
 ð&ð ��j�Ô!ð&ð 
ð	&ð &ð &ñ -Ô,ð&ðR 
ðVØ��c�ÔðVØ,3°D¬MðVà
ˆ4�Ô!Ô" TÑ)¨4°´Ô0GÔ+HÈ4Ñ+OÐOÔPðVð Vð Vñ 
„ðVð
 
à=@ð)ð )Ø��c�Ôð)Ø,3°E¬Nð)à	ˆ'Ô
Ô˜tÑ#ð)ð )ð )ñ 
„ð)ð
 € eÐ,Ñ,Ô,à38ð%Cð %CØ��c�Ôð%CØ,0ð%Cð 	ˆÔ	ÔØˆD�Ô"Ô# dÑ*¨D°´Ô1HÔ,IÈDÑ,PÐPÔQñRà
ñð%Cð %Cð %Cñ -Ô,ð%CðP € eÐ,Ñ,Ô,ð)˜ð ) 6ð )ð )ð )ñ -Ô,ð)ðX € eÐ,Ñ,Ô,ð/ ð /°Sð /¸Tð /ð /ð /ñ -Ô,ð/ðd € eÐ,Ñ,Ô,ð %)Ø#'Ø)-Ø).ðð Ø�S˜#�XÔðà
��S�Œ/ðð ��c�ŒN˜TÑ!ðð �SŒz˜DÑ ð	ð
 �c˜3�h” $Ñ&ðð #'ðð ðð ð ñ -Ô,ðð. € eÐ,Ñ,Ô,ð %)Ø#'Ø)-Ø).ðHð HØ�S˜#�XÔðHà
��S�Œ/ðHð ��c�ŒN˜TÑ!ðHð �SŒz˜DÑ ð	Hð
 �c˜3�h” $Ñ&ðHð #'ðHð �dÑðHð Hð Hñ -Ô,ðHðV € eÐ,Ñ,Ô,ð
 %)Ø).ð+ð +Ø
Œ(Œ/ð+àð+ð �Œ*ð+ð ��c�ŒN˜TÑ!ð	+ð
 #'ð+ð �dÑð+ð +ð +ñ -Ô,ð+ð\17Ø	Ô	ð17à
��S�Œ/ð17ð ��c�ŒNð17ð #'ð	17ð
 �dÑð17ð 17ð 17ð 17ð 17ð 17r%   