§
    ‹Štj
 ã                   óf  — U d Z 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ZddlZddl	m
Z
mZmZmZ ddlmZmZ ddlmZmZ ddlZddlmZ ddlmZ ddlmZmZ ddlmZ dd	lmZ dd
lm Z m!Z! ddl"m#Z#m$Z$m%Z% ddl&m'Z'm(Z(m)Z)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2m3Z3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z? ddl@mAZA  ed¦  «        ZB e$¦   «         aCe!ejD        jE        _F        e ejD        jG        _F        ejD        jG        ZGdeG_         deG_H        deG_I         e?eGd¦  «         d„ ZJeJeG_K        e,r ejL        dddg¦  «        ZMnd„ ZMdeM_         d „ ZNd!„ ZOd"„ ZP G d#„ d$¦  «        ZQ G d%„ d&eQ¦  «        ZR G d'„ d(eS¦  «        ZT G d)„ d*¦  «        ZU G d+„ d,eV¦  «        ZWd-„ ZX G d.„ d/¦  «        ZYd0e=d1eZd2ej[        j6        fd3„Z\e,�r#g d4¢Z] G d5„ d6¦  «        Z^e]D ]Z_d7„ Z` eae^e_e`¦  «         Œ G d8„ d9e6eT¬:¦  «        Zb G d;„ d<eb¦  «        Zcecjd         e                    ¦   «         D ]L\  ZfZg eheg¦  «        s eiegej¦  «        sŒef k                    d=¦  «        s elebef¦  «        rŒ? eaebefeg¦  «         ŒMd>„ Zmh d?£Znd@„ Zo emej[        j6        ¦  «        D ]X\  ZfZpef k                    d=¦  «        sef q                    dA¦  «        rŒ0efecjd        vrefenvr eaecepjH         eoef¦  «        ¦  «         ŒYn3 G dB„ d6¦  «        Z^ G dC„ d9ej[        j6        ¦  «        Zb G dD„ d<eb¦  «        ZcdE„ ZrdF„ ZsdG„ ZtdhdH„ZudIavewexdJ<   	 	 	 	 didKeyez         e{e
eyez         f         z  dz  fdL„Z|	 	 	 	 didMedNddOe}dPe
eZgef         dz  dKeyez         e{e
eyez         f         z  dz  d2efdQ„Z~dR„ ZdS„ Z€dT„ Z�dU„ Z‚dMeBd2eBfdV„ZƒdW„ Z„ejD        j…        Z… e?e…d¦  «         djdYeZdZe}d[e}d\eZfd]„Z† G d^„ d_¦  «        Z‡ G d`„ da¦  «        Zˆ G db„ dc¦  «        Z‰dd„ ZŠ eeŠde¦  «          eej‹        df¦  «          ee8dg¦  «          ee9dg¦  «          ee:dg¦  «         dS )kzàTorchScript.

This module contains functionality to support the JIT's scripting frontend, notably:
    - torch.jit.script

This is not intended to be imported directly; please use the exposed
functionalities in `torch.jit`.
é    N)ÚCallableÚIteratorÚMappingÚSequence)ÚAnyÚTypeVar)Ú
deprecatedÚSelf)Úclasses)Ú_get_model_idÚ_qualified_name)Úlog_torchscript_usage)Ú_register_builtin)Ú
_graph_forÚ_script_method_graph_for)ÚJitTypeTraceConfigÚJitTypeTraceStoreÚmonkeytype_trace)Ú_compile_and_register_classÚinfer_methods_to_compileÚScriptMethodStubÚwrap_cpp_module)Ú_enabledÚ_set_jit_function_cacheÚ_set_jit_overload_cacheÚ_try_get_jit_cached_functionÚ_try_get_jit_cached_overloads)Úget_default_argsÚget_jit_class_defÚget_jit_def)ÚModule)Úhas_torch_functionÚhas_torch_function_unaryÚhas_torch_function_variadic)ÚPackageExporterÚPackageImporter)Ú
set_moduleé   )Úvalidate_map_locationÚ_Tz†
Functionally equivalent to a :class:`ScriptModule`, but represents a single
function and does not have any attributes or Parameters.
ÚScriptFunctionútorch.jit.ScriptFunctionz	torch.jitc                 ó*   — t          j        d¦  «        ‚)Nz ScriptFunction cannot be pickled©ÚpickleÚPickleError©Úclss    úO/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/jit/_script.pyÚ_reducer4   O   s   € Ý
Ô
Ð?Ñ
@Ô
@Ð@ó    Ú	AttributeÚvalueÚtypec                 ó   — | S ©N© )r7   r8   s     r3   r6   r6   Z   s   € Øˆr5   a¨  
    This method is a pass-through function that returns `value`, mostly
    used to indicate to the TorchScript compiler that the left-hand side
    expression is a class instance attribute with type of `type`. Note that
    `torch.jit.Attribute` should only be used in `__init__` method of `jit.ScriptModule`
    subclasses.

    Though TorchScript can infer correct type for most Python expressions, there are some cases where
    type inference can be wrong, including:

    - Empty containers like `[]` and `{}`, which TorchScript assumes to be container of `Tensor`
    - Optional types like `Optional[T]` but assigned a valid value of type `T`, TorchScript would assume
      it is type `T` rather than `Optional[T]`

    In eager mode, it is simply a pass-through function that returns `value`
    without other implications.

    Example:

    .. testcode::

        import torch
        from typing import Dict

        class AttributeModule(torch.jit.ScriptModule):
            def __init__(self) -> None:
                super().__init__()
                self.foo = torch.jit.Attribute(0.1, float)

                # we should be able to use self.foo as a float here
                assert 0.0 < self.foo

                self.names_ages = torch.jit.Attribute({}, Dict[str, int])
                self.names_ages["someone"] = 20
                assert isinstance(self.names_ages["someone"], int)

        m = AttributeModule()
        # m will contain two attributes
        # 1. foo of type float
        # 2. names_ages of type Dict[str, int]

    .. testcleanup::

        del AttributeModule
        del m

    Note: it's now preferred to instead use type annotations instead of `torch.jit.Attribute`:

    .. testcode::

        import torch
        from typing import Dict

        class AttributeModule(torch.nn.Module):
            names: Dict[str, int]

            def __init__(self) -> None:
                super().__init__()
                self.names = {}

        m = AttributeModule()

    .. testcleanup::

        del AttributeModule
        del m

    Args:
        value: An initial value to be assigned to attribute.
        type: A Python type

    Returns:
        Returns `value`
c                  ó   — t           S r:   )Útype_trace_dbr;   r5   r3   Ú_get_type_trace_dbr>   ª   s   € åÐr5   c                 ó$   — t          | |d ¦  «        S r:   )Úgetattr)r2   Únames     r3   Ú_get_function_from_typerB   °   s   € Ý�3˜˜dÑ#Ô#Ð#r5   c                 óh   — t          | d¦  «        r!dt          | ¦  «        v pt          | d¦  «        S d S )NÚ	__class__Ú__dict__Ú	__slots__)ÚhasattrÚdirr1   s    r3   Ú_is_new_style_classrI   ¶   sA   € Ýˆs�KÑ Ô ð CØ�S ™XœXÐ%ÐB­°°kÑ)BÔ)BÐBðCð Cr5   c                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚOrderedDictWrapperc                 ó   — || _         d S r:   )Ú_c)ÚselfrM   s     r3   Ú__init__zOrderedDictWrapper.__init__Ë   s   € ØˆŒˆˆr5   c                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 ó   — g | ]\  }}|‘ŒS r;   r;   ©Ú.0ÚkÚvs      r3   ú
<listcomp>z+OrderedDictWrapper.keys.<locals>.<listcomp>Ï   ó   € Ð+Ð+Ð+‘d�a˜�Ð+Ð+Ð+r5   ©Úitems©rN   s    r3   ÚkeyszOrderedDictWrapper.keysÎ   ó   € Ø+Ð+˜dŸjšj™lœlÐ+Ñ+Ô+Ð+r5   c                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 ó   — g | ]\  }}|‘ŒS r;   r;   rR   s      r3   rV   z-OrderedDictWrapper.values.<locals>.<listcomp>Ò   rW   r5   rX   rZ   s    r3   ÚvalueszOrderedDictWrapper.valuesÑ   r\   r5   c                 óD   — t          |                      ¦   «         ¦  «        S r:   )Úlenr_   rZ   s    r3   Ú__len__zOrderedDictWrapper.__len__Ô   s   € Ý�4—;’;‘=”=Ñ!Ô!Ð!r5   c                 ó    — t          d¦  «        ‚)Nz6cannot delete methods or parameters of a script module©ÚRuntimeError©rN   rT   s     r3   Ú__delitem__zOrderedDictWrapper.__delitem__×   s   € ÝÐSÑTÔTÐTr5   c                 ó4   — | j                              ¦   «         S r:   )rM   rY   rZ   s    r3   rY   zOrderedDictWrapper.itemsÚ   s   € ØŒw�}Š}‰ŒÐr5   c                 óh   — || vrt          d|› �¦  «        ‚| j                             ||¦  «         d S )NzICan't add a new parameter after ScriptModule construction. Tried to add ')re   rM   Úsetattr©rN   rT   rU   s      r3   Ú__setitem__zOrderedDictWrapper.__setitem__Ý   sG   € Ø�Dˆ=ˆ=ÝØ_Ð\]Ð_Ð_ñô ð ð 	Œ�Š˜˜1ÑÔÐÐÐr5   c                 ó6   — | j                              |¦  «        S r:   )rM   Úcontainsrf   s     r3   Ú__contains__zOrderedDictWrapper.__contains__ä   s   € ØŒw×Ò Ñ"Ô"Ð"r5   c                 ó\   — || vrt          |¦  «        ‚| j                             |¦  «        S r:   )ÚKeyErrorrM   r@   rf   s     r3   Ú__getitem__zOrderedDictWrapper.__getitem__ç   s+   € Ø�Dˆ=ˆ=Ý˜1‘+”+ÐØŒw�Š˜qÑ!Ô!Ð!r5   N)Ú__name__Ú
__module__Ú__qualname__rO   r[   r_   rb   rg   rY   rl   ro   rr   r;   r5   r3   rK   rK   Ê   sž   € € € € € ðð ð ð,ð ,ð ,ð,ð ,ð ,ð"ð "ð "ðUð Uð Uðð ð ðð ð ð#ð #ð #ð"ð "ð "ð "ð "r5   rK   c                   ó6   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚOrderedModuleDictc                 ó’   •— t          ¦   «                              t          j                             |¦  «        ¦  «         || _        d S r:   )ÚsuperrO   ÚtorchÚ_CÚ
ModuleDictÚ_python_modules)rN   ÚmoduleÚpython_dictrD   s      €r3   rO   zOrderedModuleDict.__init__î   s;   ø€ Ý‰Œ×Ò�œ×,Ò,¨VÑ4Ô4Ñ5Ô5Ð5ð  +ˆÔÐÐr5   c                 ó8   — | j                              ¦   «         }|S r:   )r}   rY   ©rN   Úrs     r3   rY   zOrderedModuleDict.itemsø   s   € ØÔ ×&Ò&Ñ(Ô(ˆØˆr5   c                 ó   — || j         v S r:   ©r}   rf   s     r3   ro   zOrderedModuleDict.__contains__ü   s   € Ø�DÔ(Ð(Ð(r5   c                 ó¤   — t          |t          ¦  «        r'| j                             ||¦  «         || j        |<   d S t          d|› d|› �¦  «        ‚)NzgCannot re-assign modules in a ScriptModule with non-scripted module, tried to replace existing module 'z': )Ú
isinstanceÚScriptModulerM   rj   r}   re   rk   s      r3   rl   zOrderedModuleDict.__setitem__ÿ   su   € õ �a�Ñ&Ô&ð 	ØŒG�OŠO˜A˜qÑ!Ô!Ð!Ø&'ˆDÔ  Ñ#Ð#Ð#åðGØ=>ðGð GØCDðGð Gñô ð r5   c                 ó   — | j         |         S r:   r„   rf   s     r3   rr   zOrderedModuleDict.__getitem__  s   € ØÔ# AÔ&Ð&r5   )	rs   rt   ru   rO   rY   ro   rl   rr   Ú__classcell__©rD   s   @r3   rw   rw   í   st   ø€ € € € € ð+ð +ð +ð +ð +ðð ð ð)ð )ð )ðð ð ð&'ð 'ð 'ð 'ð 'ð 'ð 'r5   rw   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )Ú
ScriptMetac                 óF  •‡ ‡	— i ‰ _         t          t          ‰ dd¦  «        ¦  «        ‰ _        t	          |¦  «        D ]q}t          |di ¦  «                             ¦   «         D ]\  }}|‰ j         |<   Œt          |dt          ¦   «         ¦  «        }‰ j                             |¦  «        ‰ _        Œrt          |                     ¦   «         ¦  «        D ]>\  }}t          |t          ¦  «        r$t          ‰ |¦  «         |‰ j         |j        j        <   Œ?t          ‰ dd¦  «        r%t          ¦   «                              |||¦  «         d S t          ‰ dd„ ¦  «        Š	t          j        ‰	¦  «        ˆ ˆ	fd	„¦   «         }|‰ _        t          ¦   «                              |||¦  «         d S )
NÚ__constants__r;   Ú_methodsÚ_constants_setÚ_disable_script_metaFrO   c                 ó   — d S r:   r;   rZ   s    r3   ú<lambda>z%ScriptMeta.__init__.<locals>.<lambda>6  s   € ¸d€ r5   c                 óè  •— t          ‰	j        ¦  «        } ‰
| g|¢R i |¤Ž t          ‰	j        ¦  «        |k    }t          | ¦  «        ‰	u r¥d„ }t          j        j                             | || ¬¦  «        | j        d<   | j        j	        }| 
                    ¦   «         D ]}t          | |¦  «         Œ|                     ¦   «         D ]\  }}t          | |¦  «         ŒdD ]}t          | |¦  «         Œd S d S )Nc                 ó¾   — t          | ¦  «        }t          |d¦  «        r0d„ t          |j                             ¦   «         ¦  «        D ¦   «         S t          | ¦  «        S )Nr�   c                 ó   — g | ]\  }}|‘ŒS r;   r;   rR   s      r3   rV   zUScriptMeta.__init__.<locals>.init_then_script.<locals>.make_stubs.<locals>.<listcomp>C  s   € ÐKÐKÐK¡d a¨ ÐKÐKÐKr5   )r8   rG   Úsortedr�   rY   r   )r~   r2   s     r3   Ú
make_stubszAScriptMeta.__init__.<locals>.init_then_script.<locals>.make_stubs@  sX   € Ý˜v™,œ,�CÝ˜s JÑ/Ô/ð @ØKÐK­f°S´\×5GÒ5GÑ5IÔ5IÑ.JÔ.JÐKÑKÔKÐKå7¸Ñ?Ô?Ð?r5   )Úshare_typesÚ_actual_script_module)Ú_parametersÚ_buffersÚ_modules)ra   r�   r8   rz   ÚjitÚ
_recursiveÚcreate_script_modulerE   rš   Ú_concrete_typeÚget_attributesÚdelattrÚget_modules)rN   ÚargsÚkwargsÚnum_methodsÚadded_methods_in_initr˜   Úconcrete_typerA   Ú_r2   Úoriginal_inits            €€r3   Úinit_then_scriptz-ScriptMeta.__init__.<locals>.init_then_script8  sB  ø€ å˜cœlÑ+Ô+ˆKØˆM˜$Ð0 Ð0Ð0Ð0¨Ð0Ð0Ð0Ý$'¨¬Ñ$5Ô$5¸Ò$CÐ!å�D‰zŒz˜SÐ Ð ð@ð @ð @õ ”IÔ(×=Ò=Ø˜jÐ:OÐ6Oð >ñ ô ð ”Ð5Ñ6ð !%Ô :Ô I�Ø)×8Ò8Ñ:Ô:ð (ð (�DÝ˜D $Ñ'Ô'Ð'Ð'Ø,×8Ò8Ñ:Ô:ð (ð (‘G�D˜!Ý˜D $Ñ'Ô'Ð'Ð'ØCð (ð (�DÝ˜D $Ñ'Ô'Ð'Ð'ð1 !Ð ð.(ð (r5   )r�   Úsetr@   r�   ÚreversedrY   Úunionr—   r†   r   r£   Úoriginal_methodrs   ry   rO   Ú	functoolsÚwraps)r2   rA   ÚbasesÚattrsÚbaserT   rU   Úbase_constantsr¬   r«   rD   s   `        @€r3   rO   zScriptMeta.__init__  s¬  øøø€ à')ˆŒÝ ¥¨¨o¸rÑ!BÔ!BÑCÔCˆÔÝ˜U‘O”Oð 	Jð 	JˆDÝ  j°"Ñ5Ô5×;Ò;Ñ=Ô=ð $ð $‘��1Ø"#�”˜Q‘�Ý")¨$Ð0@Å#Á%Ä%Ñ"HÔ"HˆNØ!$Ô!3×!9Ò!9¸.Ñ!IÔ!IˆCÔÐõ ˜5Ÿ;š;™=œ=Ñ)Ô)ð 	=ð 	=‰DˆAˆqÝ˜!Õ-Ñ.Ô.ð =Ý˜˜Q‘”�Ø;<�”˜QÔ.Ô7Ñ8øå�3Ð.°Ñ6Ô6ð 	õ ‰GŒG×Ò˜T 5¨%Ñ0Ô0Ð0ØˆFå  ZÐ1BÐ1BÑCÔCˆå	Œ˜Ñ	'Ô	'ð	(ð 	(ð 	(ð 	(ð 	(ñ 
(Ô	'ð	(ð> (ˆŒÝ‰Œ×Ò˜˜u eÑ,Ô,Ð,Ð,Ð,r5   ©rs   rt   ru   rO   r‰   rŠ   s   @r3   rŒ   rŒ     s8   ø€ € € € € ð:-ð :-ð :-ð :-ð :-ð :-ð :-ð :-ð :-r5   rŒ   c                   ó   — e Zd Zd„ ZdS )Ú_CachedForwardc                 ó,   — |                       d¦  «        S )NÚforward)Ú__getattr__)rN   Úobjr2   s      r3   Ú__get__z_CachedForward.__get__]  s   € Ø×Ò 	Ñ*Ô*Ð*r5   N)rs   rt   ru   r¾   r;   r5   r3   r¹   r¹   \  s#   € € € € € ð+ð +ð +ð +ð +r5   r¹   c                   ó   — e Zd ZdS )ÚScriptWarningN©rs   rt   ru   r;   r5   r3   rÀ   rÀ   a  s   € € € € € Ø€Dr5   rÀ   c                 ó  — t           j        dk    rt          j        dt          ¦  «         nt          j        dt          ¦  «         t
          s| S t          j        d¬¦  «        }t          | | j	        d¬¦  «        }t          ||| ¦  «        S )N©é   é   z}`torch.jit.script_method` is not supported in Python 3.14+ and may break. Please switch to `torch.compile` or `torch.export`.z\`torch.jit.script_method` is deprecated. Please switch to `torch.compile` or `torch.export`.é   ©Ú	frames_upr‡   )Ú	self_name)ÚsysÚversion_infoÚwarningsÚwarnÚDeprecationWarningr   Ú_jit_internalÚ!createResolutionCallbackFromFramer    rs   r   )ÚfnÚ_rcbÚasts      r3   Úscript_methodrÔ   e  sš   € Ý
Ô˜7Ò"Ð"ÝŒðBåñ	
ô 	
ð 	
ð 	
õ 	ŒØjÝñ	
ô 	
ð 	
õ ð Øˆ	õ Ô:ÀQÐGÑGÔG€DÝ
�b˜"œ+°Ð
@Ñ
@Ô
@€CÝ˜D # rÑ*Ô*Ð*r5   c                   ó>   — e Zd Zdeeef         ddfd„Zdedefd„ZdS )ÚConstMapÚconst_mappingÚreturnNc                 ó   — || _         d S r:   ©r×   )rN   r×   s     r3   rO   zConstMap.__init__…  s   € Ø*ˆÔÐÐr5   Úattrc                 ó   — | j         |         S r:   rÚ   )rN   rÛ   s     r3   r¼   zConstMap.__getattr__ˆ  s   € ØÔ! $Ô'Ð'r5   )rs   rt   ru   r   Ústrr   rO   r¼   r;   r5   r3   rÖ   rÖ   „  sa   € € € € € ð+ g¨c°3¨hÔ&7ð +¸Dð +ð +ð +ð +ð( ð (¨ð (ð (ð (ð (ð (ð (r5   rÖ   ÚimporterÚscript_module_idrØ   c                 ó@  — t          | j        t          j        j        ¦  «        st          d¦  «        ‚t          j                             ¦   «         }t          j                             || j        | j        t          | j
        ¦  «        |¦  «        }t          |¦  «        S )zº
    Call by ``torch.package.PackageImporter``'s Pickler's ``persistent_load`` function.

    Performs work of loading and returning a ScriptModule from a ``torch.package`` archive.
    z{Loading ScriptObjects from a PackageImporter created from a directory is not supported. Use a package archive file instead.)r†   Ú
zip_readerrz   r{   ÚPyTorchFileReaderre   ÚCompilationUnitÚ_import_ir_module_from_packageÚstorage_contextr)   Úlast_map_locationr   )rÞ   rß   ÚcuÚ
cpp_modules       r3   Úunpackage_script_moduleré   Œ  s’   € õ �hÔ)­5¬8Ô+EÑFÔFð 
ÝðNñ
ô 
ð 	
õ 
Œ×	!Ò	!Ñ	#Ô	#€BÝ”×8Ò8Ø
ØÔØÔ Ý˜hÔ8Ñ9Ô9Øñô €Jõ ˜:Ñ&Ô&Ð&r5   )Ú__iter__rb   Ú__neg__Ú__mul__ro   Ú__add__Ú__sub__Ú__pow__Ú__truediv__Ú__mod__Ú__ne__Ú__eq__Ú__lt__Ú__gt__Ú__le__Ú__ge__Ú__and__Ú__or__Ú__xor__rr   rl   Ú__call__Ú__int__Ú	__float__Ú__bool__Ú__str__Ú	__enter__Ú__exit__c                   ó|   ‡ — e Zd ZdZˆ fd„Zdedefˆ fd„Zdededdfˆ fd„Zd	ed
ededefd„Z	d„ Z
dedefd„Zˆ xZS )ÚRecursiveScriptClassaX  Wrapper for a TorchScript class instance for use in Python.

        An analogue of RecursiveScriptModule for regular objects that are not modules.
        This class is a wrapper around a torch._C.ScriptObject that represents an instance
        of a TorchScript class and allows it to be used in Python.

        Attributes:
            _c [torch._C.ScriptObject]: The C++ object to which attribute lookups and method
                calls are forwarded.
            _props [Dict[str, property]]: A dictionary of properties fetched from self._c and
                exposed on this wrapper.
        c                 óÎ   •— t          ¦   «                              ¦   «          d| j        d<   || _        d„ | j                             ¦   «         D ¦   «         | _        d| j        d<   d S )NTÚ_initializingc                 óN   — i | ]"}|j         t          |j        |j        ¦  «        “Œ#S r;   )rA   ÚpropertyÚgetterÚsetter)rS   Úprops     r3   ú
<dictcomp>z1RecursiveScriptClass.__init__.<locals>.<dictcomp>Ø  s:   € ð ð ð àð ”	�8 D¤K°´Ñ=Ô=ðð ð r5   F)ry   rO   rE   rM   Ú_propertiesÚ_props)rN   Ú	cpp_classrD   s     €r3   rO   zRecursiveScriptClass.__init__Ò  sn   ø€ Ý‰GŒG×ÒÑÔÐØ-1ˆDŒM˜/Ñ*ØˆDŒGðð à œG×/Ò/Ñ1Ô1ðñ ô ˆDŒKð
 .3ˆDŒM˜/Ñ*Ð*Ð*r5   rÛ   rØ   c                 óô   •— | j                              d¦  «        r!t          ¦   «                              |¦  «        S || j        v r| j        |                              ¦   «         S t          | j        |¦  «        S ©Nr  )rE   Úgetry   r¼   r  Úfgetr@   rM   ©rN   rÛ   rD   s     €r3   r¼   z RecursiveScriptClass.__getattr__ß  sk   ø€ ØŒ}× Ò  Ñ1Ô1ð 1Ý‘w”w×*Ò*¨4Ñ0Ô0Ð0à�t”{Ð"Ð"Ø”{ 4Ô(×-Ò-Ñ/Ô/Ð/å˜4œ7 DÑ)Ô)Ð)r5   r7   Nc                 óþ   •— | j                              d¦  «        r"t          ¦   «                              ||¦  «        S || j        v r | j        |                              |¦  «        S t          | j        ||¦  «         d S r  )rE   r  ry   Ú__setattr__r  Úfsetrj   rM   ©rN   rÛ   r7   rD   s      €r3   r  z RecursiveScriptClass.__setattr__è  sw   ø€ ØŒ}× Ò  Ñ1Ô1ð 8Ý‘w”w×*Ò*¨4°Ñ7Ô7Ð7à�t”{Ð"Ð"Ø”{ 4Ô(×-Ò-¨eÑ4Ô4Ð4å�D”G˜T 5Ñ)Ô)Ð)Ð)Ð)r5   Úmethod_namer¥   r¦   c                 ó~   — | j                              |¦  «        st          ‚|                      |¦  «        } ||i |¤ŽS r:   )rM   Ú_has_methodÚ	TypeErrorr¼   ©rN   r  r¥   r¦   Úself_methods        r3   Úforward_magic_methodz)RecursiveScriptClass.forward_magic_methodó  sI   € ð ”7×&Ò& {Ñ3Ô3ð  Ý�à×*Ò*¨;Ñ7Ô7ˆKØ�; Ð/¨Ð/Ð/Ð/r5   c                 ó*   — t          j        d¦  «        ‚)NzScriptClasses cannot be pickledr.   rZ   s    r3   Ú__getstate__z!RecursiveScriptClass.__getstate__ü  s   € ÝÔ$Ð%FÑGÔGÐGr5   Úotherc                 óŽ   — | j                              d¦  «        r|                      d|¦  «        S |                      d|¦  «        S )NÚ__iadd__rí   )rM   r  r  )rN   r!  s     r3   r#  zRecursiveScriptClass.__iadd__ÿ  sG   € ØŒw×"Ò" :Ñ.Ô.ð CØ×0Ò0°¸UÑCÔCÐCà×0Ò0°¸EÑBÔBÐBr5   )rs   rt   ru   Ú__doc__rO   rÝ   r   r¼   r  r  r   r
   r#  r‰   rŠ   s   @r3   r  r  Ä  s  ø€ € € € € ð	ð 	ð	3ð 	3ð 	3ð 	3ð 	3ð	* Cð 	*¨Cð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð	* Cð 	*°ð 	*¸ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð	0Ø"ð	0Ø+.ð	0Ø:=ð	0àð	0ð 	0ð 	0ð 	0ð	Hð 	Hð 	Hð	C $ð 	C¨4ð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cr5   r  c                 ó.   —  | j         t          g|¢R i |¤ŽS r:   )r  r  ©rN   r¥   r¦   s      r3   Úmethod_templater'    s%   € Ø,�4Ô,­[ÐJ¸4ÐJÐJÐJÀ6ÐJÐJÐJr5   c                   ó    ‡ — e Zd ZU dZg d¢Zdˆ fd„Z e¦   «         Zede	f         e
d<   dede	fˆ fd	„Zded
e	ddfˆ fd„Zd„ Zd„ Zdefd„Zˆ xZS )r‡   a'  Wrapper for C++ torch::jit::Module with methods, attributes, and parameters.

        A wrapper around C++ ``torch::jit::Module``. ``ScriptModule``\s
        contain methods, attributes, parameters, and
        constants. These can be accessed the same way as on a normal ``nn.Module``.
        )ÚcodeÚcode_with_constantsÚgraphÚinlined_graphÚoriginal_namerØ   Nc                 óH   •— t          ¦   «                              ¦   «          d S r:   ©ry   rO   )rN   rD   s    €r3   rO   zScriptModule.__init__$  ó   ø€ Ý‰GŒG×ÒÑÔÐÐÐr5   .r»   rÛ   c                 ó‚   •— d| j         vr!t          ¦   «                              |¦  «        S t          | j        |¦  «        S )Nrš   )rE   ry   r¼   r@   rš   r  s     €r3   r¼   zScriptModule.__getattr__)  s;   ø€ Ø&¨d¬mÐ;Ð;Ý‘w”w×*Ò*¨4Ñ0Ô0Ð0Ý˜4Ô5°tÑ<Ô<Ð<r5   r7   c                 ó  •— d| j         vrgt          |t          ¦  «        r0d| j        j         vri | j        _        |j        | j        |<   |j        }t          ¦   «                              ||¦  «        S t          | j
        ||¦  «         d S )Nrš   Ú__annotations__)rE   r†   r6   rD   r3  r8   r7   ry   r  rj   rš   r  s      €r3   r  zScriptModule.__setattr__.  s‹   ø€ Ø&¨d¬mÐ;Ð;õ ˜e¥YÑ/Ô/ð (ð
 )°´Ô0GÐGÐGØ9;˜œÔ6Ø16´�DÔ(¨Ñ.Ø!œK�EÝ‘w”w×*Ò*¨4°Ñ7Ô7Ð7å�DÔ.°°eÑ<Ô<Ð<Ð<Ð<r5   c                 ó  — d| j         v r| j                             |¦  «        S t          j        d¬¦  «        }t
          j                             |¦  «        }t          ||d ¦  «        | j	        | 
                    ¦   «         j
        <   d S )Nrš   r(   rÇ   )rE   rš   ÚdefinerÏ   rÐ   rz   r{   Ú_parse_source_defr   r�   rA   )rN   ÚsrcÚrcbrÓ   s       r3   r5  zScriptModule.defineC  sz   € Ø&¨$¬-Ð7Ð7ð Ô1×8Ò8¸Ñ=Ô=Ð=õ  ÔAÈAÐNÑNÔNˆCÝ”(×,Ò,¨SÑ1Ô1ˆCÝ-=¸cÀ3ÈÑ-MÔ-MˆDŒM˜#Ÿ(š(™*œ*œ/Ñ*Ð*Ð*r5   c                 ó4   — | j                              ¦   «         S r:   )rš   Ú_replicate_for_data_parallelrZ   s    r3   r:  z)ScriptModule._replicate_for_data_parallelY  s   € ØÔ-×JÒJÑLÔLÐLr5   Úexporterc                 ó˜   — |                      ¦   «         }|j                             | j        t	          |¦  «        ¦  «         t
          |ffS )a¸  Save a ScriptModule inside of a ``torch.package`` archive.

            Called by ``torch.package.PackageExporter``'s Pickler's ``persistent_id`` when
            saving TorchScript objects. Performs act of saving a ScriptModule inside of
            a ``torch.package`` archive.

            Returns method to load the ScriptModule from a ``torch.package.PackageImporter``'s
            Pickler's ``persistent_load`` function.
            )Úget_unique_idÚscript_module_serializerÚ	serializerM   Úintré   )rN   r;  rß   s      r3   Ú__reduce_package__zScriptModule.__reduce_package__\  sI   € ð  (×5Ò5Ñ7Ô7ÐØÔ-×7Ò7¸¼ÅÐEUÑAVÔAVÑWÔWÐWÝ+Ð.>Ð-@ÐAÐAr5   ©rØ   N)rs   rt   ru   r$  Ú__jit_unused_properties__rO   r¹   r»   r   r   r3  rÝ   r¼   r  r5  r:  r%   rA  r‰   rŠ   s   @r3   r‡   r‡     s%  ø€ € € € € € ð	ð 	ð%
ð %
ð %
Ð!ð	ð 	ð 	ð 	ð 	ð 	ð '5 nÑ&6Ô&6ˆ�˜#˜s˜(Ô#Ð6Ð6Ñ6ð	= Cð 	=¨Cð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð
	= Cð 	=°ð 	=¸ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð*	Nð 	Nð 	Nð,	Mð 	Mð 	Mð	B¨ð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Br5   r‡   )Ú	metaclassc                   ó<  ‡ — e Zd ZdZdZˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	e
d„ ¦   «         Ze
d„ ¦   «         Ze
d	„ ¦   «         Ze
d
„ ¦   «         Zd„ Z ed¦  «        d„ ¦   «         Z ed¦  «        d„ ¦   «         Zdededefd„Zdededefd„Zdefd„Zdededefd„Ze
d„ ¦   «         Zd„ Zdedefˆ fd„Zdededdfˆ fd„Zdefd„Zdee ef         dz  defd„Z!d edededefd!„Z"de#e         fd"„Z$d#e defd$„Z%d%„ Z&d&„ Z'de(e         fˆ fd'„Z)d(„ Z*d)„ Z+ˆ xZ,S )*ÚRecursiveScriptModuleaZ  Retain the existing isinstance(ScriptModule) behavior.

        The core data structure in TorchScript is the ``ScriptModule``. It is an
        analogue of torch's ``nn.Module`` and represents an entire model as a tree of
        submodules. Like normal modules, each individual module in a ``ScriptModule`` can
        have submodules, parameters, and methods. In ``nn.Module``\s methods are implemented
        as Python functions, but in ``ScriptModule``\s methods are implemented as
        TorchScript functions, a statically-typed subset of Python that contains all
        of PyTorch's built-in Tensor operations. This difference allows your
        ``ScriptModule``\s code to run without the need for a Python interpreter.

        ``ScriptModule``\s should not be created manually, instead use
        either :func:`tracing <torch.jit.trace>` or :func:`scripting <torch.jit.script>`.
        Tracing and scripting can be applied incrementally and :ref:`composed as necessary <Types>`.

        * Tracing records the tensor operations as executed with a set of example inputs and uses these
          operations to construct a computation graph. You can use the full dynamic behavior of Python with tracing,
          but values other than Tensors and control flow aren't captured in the graph.

        * Scripting inspects the Python code of the model
          and compiles it to TorchScript. Scripting allows the use of many `types`_ of values and supports dynamic control flow.
          Many, but not all features of Python are supported by the compiler, so changes to the source code may be necessary.
        Tc                 óŠ   •— d| j         d<   || _        t          ¦   «                              ¦   «          t	          | d¦  «         d S )NTr  Útraining)rE   rM   ry   rO   r£   )rN   rè   rD   s     €r3   rO   zRecursiveScriptModule.__init__ˆ  sD   ø€ Ø-1ˆDŒM˜/Ñ*Ø ˆDŒGÝ‰GŒG×ÒÑÔÐõ �D˜*Ñ%Ô%Ð%Ð%Ð%r5   c                 ón   — t          | ¦  «        } ||¦  «         t                                |¦  «         |S )a†  
            Construct a RecursiveScriptModule that's ready for use.

            PyTorch code should use this to construct a RecursiveScriptModule instead
            of instead of calling `__init__` directly, as it makes sure the
            object is properly finalized (and in the future, we may take
            control of how the RecursiveScriptModule instance is created).

            Args:
                cpp_module:  The C++ Module that will hold the actual state of
                             this RecursiveScriptModule instance.
                init_fn:  Lambda that initializes the RecursiveScriptModule passed to it.
            )rF  Ú_finalize_scriptmodule)rè   Úinit_fnÚscript_modules      r3   Ú
_constructz RecursiveScriptModule._construct‘  s=   € õ 2°*Ñ=Ô=ˆMØˆG�MÑ"Ô"Ð"õ
 "×8Ò8¸ÑGÔGÐGØ Ð r5   c                 ó*  — t          t          j                             | j        ¦  «        ¦  «        | _        t          t          j                             | j        ¦  «        ¦  «        | _        t          | j        | j	        ¦  «        | _	        d| _
        d S )NF)rK   rz   r{   ÚParameterDictrM   r›   Ú
BufferDictrœ   rw   r�   r  ©rL  s    r3   rJ  z,RecursiveScriptModule._finalize_scriptmodule©  sƒ   € å(:Ý”×&Ò& }Ô'7Ñ8Ô8ñ)ô )ˆMÔ%õ &8Ý”×#Ò# MÔ$4Ñ5Ô5ñ&ô &ˆMÔ"õ &7ØÔ  -Ô"8ñ&ô &ˆMÔ"ð +0ˆMÔ'Ð'Ð'r5   c                 óÀ  — |                       |¦  «         t          j        j                             | j                             ¦   «         ¦  «        | _        i }t          j                             | j        ¦  «         	                    ¦   «         D ]\  }}t          |¦  «        ||<   Œt          | j        |¦  «        | _        t          t          j                             | j        ¦  «        ¦  «        | _        t          t          j                             | j        ¦  «        ¦  «        | _        d„ | j         	                    ¦   «         D ¦   «         | _        d| j        d<   dS )zä
            Re-construct an instance of RecursiveScriptModule using an instance of a C++ module.

            Args:
                cpp_module: The C++ module that this RecursiveScriptModule will be rebuilt around.
            c                 óX   — i | ]'\  }}t          |t          j        j        ¦  «        °$||“Œ(S r;   )r†   rz   r{   ÚScriptMethodrR   s      r3   r  z6RecursiveScriptModule._reconstruct.<locals>.<dictcomp>Ï  sC   € ð ð ð á�A�qÝ! !¥U¤XÔ%:Ñ;Ô;ðØ�1ðð ð r5   Fr  N)rO   rz   r{   ÚConcreteModuleTypeÚfrom_jit_typerM   Ú_typer¡   r|   rY   r   rw   r�   rK   rO  r›   rP  rœ   rE   )rN   rè   ÚmodulesrA   s       r3   Ú_reconstructz"RecursiveScriptModule._reconstruct¶  s(  € ð �MŠM˜*Ñ%Ô%Ð%õ #(¤(Ô"=×"KÒ"KØ”—’‘”ñ#ô #ˆDÔð
 ˆGÝ$)¤H×$7Ò$7¸¼Ñ$@Ô$@×$FÒ$FÑ$HÔ$Hð <ð <Ñ ��jÝ /°
Ñ ;Ô ;�˜‘�Ý-¨d¬g°wÑ?Ô?ˆDŒMõ  2µ%´(×2HÒ2HÈÌÑ2QÔ2QÑRÔRˆDÔÝ.­u¬x×/BÒ/BÀ4Ä7Ñ/KÔ/KÑLÔLˆDŒMðð à œM×/Ò/Ñ1Ô1ðñ ô ˆDŒMð
 .3ˆDŒM˜/Ñ*Ð*Ð*r5   c                 ó@   — | j                              d¦  «        j        S )zPReturn a string representation of the internal graph for the ``forward`` method.r»   )rM   Ú_get_methodr+  rZ   s    r3   r+  zRecursiveScriptModule.graphÖ  s   € ð ”7×&Ò& yÑ1Ô1Ô7Ð7r5   c                 ó   — | j         j        S )zÀ
            Return a string representation of the internal graph for the ``forward`` method.

            This graph will be preprocessed to inline all function and method calls.
            )r»   r,  rZ   s    r3   r,  z#RecursiveScriptModule.inlined_graphÛ  s   € ð ”<Ô-Ð-r5   c                 ó   — | j         j        S )zŒ
            Return a pretty-printed representation (as valid Python syntax) of the internal graph for the ``forward`` method.

            )r»   r)  rZ   s    r3   r)  zRecursiveScriptModule.codeä  s   € ð ”<Ô$Ð$r5   c                 óT   — | j         j        }|d         t          |d         ¦  «        fS )a|  Return a tuple.

            Returns a tuple of:

            [0] a pretty-printed representation (as valid Python syntax) of
            the internal graph for the ``forward`` method. See `code`.
            [1] a ConstMap following the CONSTANT.cN format of the output in [0].
            The indices in the [0] output are keys to the underlying constant's values.

            r   r(   )r»   r*  rÖ   r�   s     r3   r*  z)RecursiveScriptModule.code_with_constantsì  s'   € ð ”Ô0ˆAØ�a”D�( 1 Q¤4™.œ.Ð)Ð)r5   c                 óB   —  | j         j        t          |¦  «        fi |¤ŽS )am  Save with a file-like object.

            save(f, _extra_files={})

            See :func:`torch.jit.save <torch.jit.save>` which accepts a file-like object.
            This function, torch.save(), converts the object to a string, treating it as a path.
            DO NOT confuse these two functions when it comes to the 'f' parameter functionality.
            )rM   ÚsaverÝ   )rN   Úfr¦   s      r3   r`  zRecursiveScriptModule.saveû  s&   € ð  �4”7”<¥ A¡¤Ð1Ð1¨&Ð1Ð1Ð1r5   z”Lite Interpreter is deprecated. Please consider switching to ExecuTorch.             https://docs.pytorch.org/executorch/stable/getting-started.htmlc                 ó^   — t          j        dt          d¬¦  «          | j        j        |i |¤ŽS )az  Add (or update) the bytecode session to the script model.

            _save_for_lite_interpreter(f)

            The updated model is used
            in lite interpreter for mobile applications.

            Args:
                f: a string containing a file name.
                _extra_files: Map from filename to contents which will be stored as part of 'f'.

            ú˜Lite Interpreter is deprecated. Please consider switching to ExecuTorch.                 https://docs.pytorch.org/executorch/stable/getting-started.htmlrÆ   ©Ú
stacklevel)rÌ   rÍ   rÎ   rM   Ú_save_for_mobiler&  s      r3   Ú_save_for_lite_interpreterz0RecursiveScriptModule._save_for_lite_interpreter  sE   € õ" ŒMðQå"Øð	ñ ô ð ð ,�4”7Ô+¨TÐ<°VÐ<Ð<Ð<r5   c                 ó^   — t          j        dt          d¬¦  «          | j        j        |i |¤ŽS )Nrc  rÆ   rd  )rÌ   rÍ   rÎ   rM   Ú_save_to_buffer_for_mobiler&  s      r3   Ú$_save_to_buffer_for_lite_interpreterz:RecursiveScriptModule._save_to_buffer_for_lite_interpreter  sE   € õ
 ŒMðQå"Øð	ñ ô ð ð 6�4”7Ô5°tÐF¸vÐFÐFÐFr5   r¥   r¦   rØ   c                 ó&   —  | j         j        |i |¤ŽS r:   )rM   Úsave_to_bufferr&  s      r3   rl  z$RecursiveScriptModule.save_to_buffer,  s   € Ø)�4”7Ô)¨4Ð:°6Ð:Ð:Ð:r5   c                 ó4   — | j                              ¦   «         S r:   )rM   Úget_debug_stater&  s      r3   rn  z%RecursiveScriptModule.get_debug_state/  s   € Ø”7×*Ò*Ñ,Ô,Ð,r5   c                 ó   — d| j         › �S )Nzoriginal_name=)r-  rZ   s    r3   Ú
extra_reprz RecursiveScriptModule.extra_repr2  s   € Ø8 DÔ$6Ð8Ð8Ð8r5   c                 ó.   —  | j         j        | g|¢R i |¤ŽS r:   )r»   Ú	graph_forr&  s      r3   rr  zRecursiveScriptModule.graph_for5  s'   € Ø)�4”<Ô)¨$Ð@°Ð@Ð@Ð@¸Ð@Ð@Ð@r5   c                 ó  — t          | ¦  «        t          | j                             ¦   «                              ¦   «         ¦  «        u rdS t          | j                             ¦   «                              ¦   «         ¦  «        S )NÚ )r8   rÝ   rM   rW  rA   rZ   s    r3   r-  z#RecursiveScriptModule.original_name8  s\   € õ �D‰zŒz�S ¤§¢¡¤×!5Ò!5Ñ!7Ô!7Ñ8Ô8Ð8Ð8Ø�rÝ�t”w—}’}‘”×+Ò+Ñ-Ô-Ñ.Ô.Ð.r5   c                 ór   — t          j        d¬¦  «        }| j                             | j        ||¦  «         d S )Nr(   rÇ   )rÏ   rÐ   rM   Ú_definer¡   )rN   r7  r8  s      r3   r5  zRecursiveScriptModule.define?  s8   € õ  ÔAÈAÐNÑNÔNˆCØŒG�OŠO˜DÔ/°°cÑ:Ô:Ð:Ð:Ð:r5   rÛ   c                 óÚ  •— d| j         vrt          d¦  «        ‚| j        r!t          ¦   «                              |¦  «        S || j        v r| j        |         S | j                             |¦  «        r| j                             |¦  «        S | j         	                    |¦  «        r&| j         
                    |¦  «        }|| j         |<   |S t          ¦   «                              |¦  «        S )Nr  zKScriptModule has not been initialized, did you forget to call super's init?)rE   re   r  ry   r¼   r�   rM   rG   r@   r  r[  )rN   rÛ   rÔ   rD   s      €r3   r¼   z!RecursiveScriptModule.__getattr__K  sé   ø€ Ø d¤mÐ3Ð3Ý"Øañô ð ð Ô!ð 1Ý‘w”w×*Ò*¨4Ñ0Ô0Ð0ð �t”}Ð$Ð$Ø”} TÔ*Ð*Ø”—’ Ñ&Ô&ð %Ø”w—’ tÑ,Ô,Ð,Ø”×$Ò$ TÑ*Ô*ð %Ø $¤× 3Ò 3°DÑ 9Ô 9�ð '4�”˜dÑ#Ø$Ð$å‘7”7×&Ò& tÑ,Ô,Ð,r5   r7   Nc                 ó´  •— | j         r"t          ¦   «                              ||¦  «        S || j        v r|| j        |<   d S | j                             |¦  «        r| j                             ||¦  «         d S t          | d¦  «        r1|| j                             ¦   «         v rt          d|› d|› d�¦  «        ‚t          ¦   «                              ||¦  «        S )Nr¡   z+Cannot mutate TorchScript constant value: 'z'. Value: 'ú')
r  ry   r  r�   rM   rG   rj   r¡   Úget_constantsÚAttributeErrorr  s      €r3   r  z!RecursiveScriptModule.__setattr__c  sí   ø€ ØÔ!ð 8Ý‘w”w×*Ò*¨4°Ñ7Ô7Ð7à�t”}Ð$Ð$Ø&+�”˜dÑ#Ð#Ð#Ø”—’ Ñ&Ô&ð 8Ø”—’  eÑ,Ô,Ð,Ð,Ð,å˜Ð.Ñ/Ô/ð8à˜DÔ/×=Ò=Ñ?Ô?Ð?Ð?õ %Ø[À$Ð[Ð[ÐSXÐ[Ð[Ð[ñô ð õ ‘w”w×*Ò*¨4°Ñ7Ô7Ð7r5   c                 óx   — t           j        j                             t	          j        | j        ¦  «        ¦  «        S r:   )rz   rž   rŸ   r   ÚcopyrM   rZ   s    r3   Ú__copy__zRecursiveScriptModule.__copy__~  s'   € Ý”9Ô'×7Ò7½¼	À$Ä'Ñ8JÔ8JÑKÔKÐKr5   Úmemoc                 óz   — t           j        j                             t	          j        | j        |¦  «        ¦  «        S r:   )rz   rž   rŸ   r   r}  ÚdeepcopyrM   )rN   r  s     r3   Ú__deepcopy__z"RecursiveScriptModule.__deepcopy__�  s)   € Ý”9Ô'×7Ò7½¼ÀdÄgÈtÑ8TÔ8TÑUÔUÐUr5   r  c                 ó�   — t          | |¦  «        }t          |dd ¦  «        t          t          |¦  «        k    rt          ‚ ||i |¤ŽS )NÚ__func__)r@   rF  ÚNotImplementedErrorr  s        r3   r  z*RecursiveScriptModule.forward_magic_methodˆ  sZ   € õ " $¨Ñ4Ô4ˆKÝ�{ J°Ñ5Ô5½Ý% {ñ:ô :ò ð õ *Ð)Ø�; Ð/¨Ð/Ð/Ð/r5   c                 ó,   — |                       d¦  «        S )Nrê   ©r  rZ   s    r3   rê   zRecursiveScriptModule.__iter__’  s   € Ø×,Ò,¨ZÑ8Ô8Ð8r5   Úidxc                 ó.   — |                       d|¦  «        S )Nrr   r‡  )rN   rˆ  s     r3   rr   z!RecursiveScriptModule.__getitem__•  s   € Ø×,Ò,¨]¸CÑ@Ô@Ð@r5   c                 ó,   — |                       d¦  «        S )Nrb   r‡  rZ   s    r3   rb   zRecursiveScriptModule.__len__˜  s   € Ø×,Ò,¨YÑ7Ô7Ð7r5   c                 ó.   — |                       d|¦  «        S )Nro   r‡  )rN   Úkeys     r3   ro   z"RecursiveScriptModule.__contains__›  s   € Ø×,Ò,¨^¸SÑAÔAÐAr5   c                 óž   •— | j         }|j        t          t          d¦  «        u r t	          ¦   «                               ¦   «         S  |¦   «         S )NÚ__dir__)rŽ  r„  rB   rF  ry   )rN   r  rD   s     €r3   rŽ  zRecursiveScriptModule.__dir__   sL   ø€ Øœ,ˆKàÔ$Ý*Õ+@À)ÑLÔLðMð Mõ ‘w”w—’Ñ(Ô(Ð(Ø�;‘=”=Ð r5   c                 ó`   — | j         }|j        t          t          d¦  «        u rdS  |¦   «         S )Nrþ   T)rþ   r„  rB   rF  )rN   r  s     r3   rþ   zRecursiveScriptModule.__bool__¬  s<   € Øœ-ˆKàÔ$Ý*Õ+@À*ÑMÔMðNð Nð �tØ�;‘=”=Ð r5   c                 ól   — d„ }t                                | j                             ¦   «         |¦  «        S )Nc                 ó   — d S r:   r;   rQ  s    r3   rK  zCRecursiveScriptModule._replicate_for_data_parallel.<locals>.init_fn¸  s   € à�r5   )rF  rM  rM   r:  )rN   rK  s     r3   r:  z2RecursiveScriptModule._replicate_for_data_parallelµ  s>   € ðð ð õ
 )×3Ò3Ø”×4Ò4Ñ6Ô6¸ñô ð r5   )-rs   rt   ru   r$  r‘   rO   ÚstaticmethodrM  rJ  rY  r  r+  r,  r)  r*  r`  r	   rg  rj  r   rl  rn  rÝ   rp  rr  r-  r5  r¼   r  r
   r~  Údictr@  r‚  r  r   rê   rr   rb   ro   r   rŽ  rþ   r:  r‰   rŠ   s   @r3   rF  rF  j  sÌ  ø€ € € € € ð	ð 	ð0  $Ðð	&ð 	&ð 	&ð 	&ð 	&ð 
ð	!ð 	!ñ 
Œð	!ð. 
ð
	0ð 
	0ñ 
Œð
	0ð	3ð 	3ð 	3ð@ 
ð	8ð 	8ñ 
Œð	8ð 
ð	.ð 	.ñ 
Œð	.ð 
ð	%ð 	%ñ 
Œð	%ð 
ð	*ð 	*ñ 
Œð	*ð		2ð 		2ð 		2ð 
ˆðMñ

ô 

ð	=ð 	=ñ	

ô 

ð	=ð* 
ˆðMñ

ô 

ð	Gð 	Gñ	

ô 

ð	Gð	;¨ð 	;°sð 	;¸sð 	;ð 	;ð 	;ð 	;ð	-¨ð 	-¸ð 	-Àð 	-ð 	-ð 	-ð 	-ð	9 ð 	9ð 	9ð 	9ð 	9ð	A 3ð 	A°#ð 	A¸#ð 	Að 	Að 	Að 	Að 
ð	/ð 	/ñ 
Œð	/ð
	;ð 
	;ð 
	;ð	- Cð 	-¨Cð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð0	8 Cð 	8°ð 	8¸ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð6	L˜dð 	Lð 	Lð 	Lð 	Lð	V T¨#¨s¨(¤^°dÑ%:ð 	V¸tð 	Vð 	Vð 	Vð 	Vð	0Ø"ð	0Ø+.ð	0Ø:=ð	0àð	0ð 	0ð 	0ð 	0ð	9˜h sœmð 	9ð 	9ð 	9ð 	9ð	A 3ð 	A¨3ð 	Að 	Að 	Að 	Að	8ð 	8ð 	8ð	Bð 	Bð 	Bð
	!˜X cœ]ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð	!ð 	!ð 	!ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	r5   rF  Ú__c                 ó6   ‡— dd l Š ‰j        | ˆfd„¬¦  «        S )Nr   c                 óD   •—  ‰j         | ¦  «        p ‰j        | ¦  «        S r:   )Ú
isfunctionÚismethod)ÚxÚinspects    €r3   r“   z_get_methods.<locals>.<lambda>Ö  s(   ø€ Ð%7 WÔ%7¸Ñ%:Ô%:Ð%QÐ>N¸gÔ>NÈqÑ>QÔ>Q€ r5   )Ú	predicate)rš  Ú
getmembers)r2   rš  s    @r3   Ú_get_methodsr�  Ñ  s9   ø€ Øˆˆˆð "ˆwÔ!ØÐQÐQÐQÐQð
ñ 
ô 
ð 	
r5   >%   ÚtoÚcpuÚcudaÚevalÚhalfr8   ÚapplyÚfloatÚtrainÚ_applyÚdoubleÚbuffersr»   rX  ÚchildrenÚ	_get_nameÚ	zero_gradÚ
add_modulerp  Ú
parametersÚ
state_dictÚshare_memoryÚ_slow_forwardÚ_tracing_nameÚnamed_buffersÚnamed_modulesÚ_named_membersÚnamed_childrenÚget_extra_stateÚload_state_dictÚregister_bufferÚregister_moduleÚset_extra_stateÚnamed_parametersÚregister_parameterÚ_save_to_state_dictÚ_load_from_state_dictc                 ó   ‡ — ˆ fd„}|S )Nc                 ó(   •— t          ‰dz   ¦  «        ‚)Nz" is not supported on ScriptModulesrd   )rN   r¥   r¦   rA   s      €r3   Úfailz_make_fail.<locals>.fail  s   ø€ Ý˜tÐ&JÑJÑKÔKÐKr5   r;   )rA   rÁ  s   ` r3   Ú
_make_failrÂ    s(   ø€ ð	Lð 	Lð 	Lð 	Lð 	Lð ˆr5   Ú
_call_implc                   ó   — e Zd ZdS )r  NrÁ   r;   r5   r3   r  r    s   € € € € € Øˆr5   c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )r‡   Nc                 óH   •— t          ¦   «                              ¦   «          d S r:   r/  ©rN   ÚargrD   s     €r3   rO   zScriptModule.__init__  r0  r5   r:   r·   rŠ   s   @r3   r‡   r‡     ó=   ø€ € € € € ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r5   c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )rF  Nc                 óH   •— t          ¦   «                              ¦   «          d S r:   r/  rÇ  s     €r3   rO   zRecursiveScriptModule.__init__  r0  r5   r:   r·   rŠ   s   @r3   rF  rF    rÉ  r5   c                 ó~  — t          | t          j        j        ¦  «        s| S t	          | ¦  «        }||v r|t	          | ¦  «                 S t          | d¦  «        r|                      ¦   «         n| } | ||<   i }| j                             ¦   «         D ]‹\  }}|dk    r3|                     ¦   «         D ]\  }}t          ||¦  «        ||<   Œ|||<   Œ>t          |t          j        j        ¦  «        r)t          |t          ¦  «        st          ||¦  «        ||<   Œ†|||<   ŒŒ|                     ¦   «         D ]}|| j        |<   Œ| S )NÚ__prepare_scriptable__r�   )r†   rz   Únnr!   ÚidrG   rÍ  rE   rY   Ú!call_prepare_scriptable_func_implr‡   r_   )r½   r  Úobj_idÚnew_obj_dictrA   Ú
sub_modulerT   rU   s           r3   rÐ  rÐ     sq  € Ý�c�5œ8œ?Ñ+Ô+ð Øˆ
å�‰WŒW€Fð �€~€~Ø•B�s‘G”GŒ}Ðõ )0°Ð5MÑ(NÔ(NÐWˆ×"Ò"Ñ$Ô$Ð$ÐTWð ð €Dˆ�Là€LàœL×.Ò.Ñ0Ô0ð 
,ð 
,ÑˆˆjØ�:ÒÐØ"×(Ò(Ñ*Ô*ð Kð K‘��1Ý AÀ!ÀTÑ JÔ J�
˜1‘�Ø!+ˆL˜ÑÐÝ˜
¥E¤H¤OÑ4Ô4ð 	,½ZØ�ñ>
ô >
ð 	,õ "CÀ:ÈtÑ!TÔ!TˆL˜ÑÐà!+ˆL˜ÑÐà× Ò Ñ"Ô"ð ð ˆØˆŒ�TÑÐà€Jr5   c                 ó&   — i }t          | |¦  «        S r:   )rÐ  )r½   r  s     r3   Úcall_prepare_scriptable_funcrÕ  G  s   € Ø')€DÝ,¨S°$Ñ7Ô7Ð7r5   c                 ó@   — t           j                             | ¦  «        S )a²  
    Create a ``torch._C.ScriptDict`` instance with the data from ``obj``.

    Args:
        obj (dict): The Python dictionary that is used to initialize the ``ScriptDict``
                    returned by this function.

    Returns:
        An instance of ``torch._C.ScriptDict`` that has the same data as ``obj``
        and can be passed between Python and TorchScript with reference semantics and
        zero copy overhead.
    )rz   r{   Ú
ScriptDict)r½   s    r3   Úcreate_script_dictrØ  L  s   € õ Œ8×Ò˜sÑ#Ô#Ð#r5   c                 ó@   — t           j                             | ¦  «        S )a«  
    Create a ``torch._C.ScriptList`` instance with the data from ``obj``.

    Args:
        obj (dict): The Python list that is used to initialize the ``ScriptList``
                    returned by this function.
    Returns:
        An instance of ``torch._C.ScriptList`` that has the same data as ``obj``
        and can be passed between Python and TorchScript with reference semantics and
        zero copy overhead.
    )rz   r{   Ú
ScriptList)r½   Ú	type_hints     r3   Úcreate_script_listrÜ  \  s   € õ Œ8×Ò˜sÑ#Ô#Ð#r5   TÚ	_TOPLEVELÚexample_inputsc                 ó¼  — |�t          j        dt          d¬¦  «         t          | t          ¦  «        r| S t          | t
          ¦  «        r| S t          | t          ¦  «        r| S |rÐt          ¦   «         at          r¥t          t          ¦  «        }t          |¦  «        5  t          |t          ¦  «        r%|                     ¦   «         D ]\  }}|D ]} ||Ž  ŒŒn/t          |t          ¦  «        r|D ]}	 | |	Ž  Œnt          d¦  «        ‚d d d ¦  «         n# 1 swxY w Y   nt          j        dd¬¦  «         t          | t          j        j        ¦  «        rHt%          | ¦  «        } t          j        j                             | t          j        j        j        ¦  «        S t/          | d¦  «        r|                      ¦   «         n| } t          | t          ¦  «        rt3          | ¦  «        S t          | t          ¦  «        rt5          | ¦  «        S t7          j        | ¦  «        rÛt;          | ¦  «        }
t=          | t          j        j        ¦  «        rt?          d| › d	�¦  «        ‚t=          | t@          j!        ¦  «        r| S tE          | ¦  «        st?          d
¦  «        ‚tG          |  $                    ¦   «         ¦  «        dk    rt?          d¦  «        ‚|€tK          j&        |dz   ¦  «        }tO          | ||
¦  «         | S t7          j(        | ¦  «        st7          j)        | ¦  «        �rt;          | ¦  «        }
t/          | d¦  «        r| j*        } tK          j+        | ¦  «        }t/          | d¦  «        rt?          d| j,        z   ¦  «        ‚t[          | ¦  «         t]          | ¦  «        }|r	| |_/        |S ta          | | j1        ¦  «        }|€tK          j+        | ¦  «        }t          j2         3                    |
||ti          | ¦  «        ¦  «        }| j5        |_5        d|_1        d|_6        | |_/        to          | |¦  «         |S t          j        j         8                    | ¦  «        S )Nz^`optimize` is deprecated and has no effect. Use `with torch.jit.optimized_execution()` insteadrÄ   rd  zˆError: Unable to infer types. Please format the inputs to type `List[Tuple]` or `Dict[Callable, List[Tuple]]` to be run with MonkeyType.zîWarning: monkeytype is not installed. Please install https://github.com/Instagram/MonkeyType to enable Profile-Directed Typing in TorchScript. Refer to https://github.com/Instagram/MonkeyType/blob/master/README.rst to install MonkeyType. rÆ   rÍ  zType 'zO' cannot be compiled since it inherits from nn.Module, pass an instance insteadzLTorchScript classes must be new-style classes. Please inherit from 'object'.z\TorchScript classes does not support inheritance yet. Please directly inherit from 'object'.r(   Ú__script_if_tracing_wrapperÚ__script_unsupportedzTorchScript error: r+   r,   )9rÌ   rÍ   ÚFutureWarningr†   r  r‡   r+   r   r=   r   r   r“  rY   ÚlistÚ
ValueErrorrz   rÎ  r!   rÕ  rž   rŸ   r    r   rG   rÍ  rØ  rÜ  rš  Úisclassr   Ú
issubclassre   ÚenumÚEnumrI   ra   ÚmrorÏ   rÐ   r   r—  r˜  Ú__original_fnÚ#createResolutionCallbackFromClosurerá  Ú"_check_directly_compile_overloadedr   Ú_torchdynamo_inliner    rs   r{   Ú_jit_script_compiler   r$  ru   r   Úcreate_script_class)r½   ÚoptimizeÚ
_frames_uprÒ   rÞ  Úmonkeytype_configr~   Úexample_inputÚexampleÚexamplesÚqualified_nameÚmaybe_already_compiled_fnrÓ   rÑ   s                 r3   Ú_script_implrø  n  só  € ð ÐÝŒðAåØð		
ñ 	
ô 	
ð 	
õ �#Õ+Ñ,Ô,ð Øˆ
Ý�#•|Ñ$Ô$ð Øˆ
Ý�#•~Ñ&Ô&ð Øˆ
àð !õ
 *Ñ+Ô+ˆÝð 	å 2µ=Ñ AÔ AÐÝ!Ð"3Ñ4Ô4ð ð Ý˜n­dÑ3Ô3ð ð 2@×1EÒ1EÑ1GÔ1Gð -ð -Ñ-˜ Ø'4ð -ð -˜GØ"˜F GÐ,Ð,Ð,ð-ð-õ   µÑ5Ô5ð Ø$2ð 'ð '˜Ø˜˜X˜˜˜ð'õ %ðWñô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øõ& ŒMðið ð	ñ ô ð õ �#•u”x”Ñ'Ô'ð 

Ý*¨3Ñ/Ô/ˆÝŒyÔ#×8Ò8Ø•”Ô%Ô>ñ
ô 
ð 	
õ �sÐ4Ñ5Ô5ðˆC×&Ò&Ñ(Ô(Ð(àð 	õ �#•tÑÔð 'Ý! #Ñ&Ô&Ð&Ý�#•tÑÔð 'Ý! #Ñ&Ô&Ð&å„�sÑÔð ;=Ý(¨Ñ-Ô-ˆõ �c�5œ8œ?Ñ+Ô+ð 	ÝØm˜ÐmÐmÐmñô ð õ �c�4œ9Ñ%Ô%ð 	ØˆJå" 3Ñ'Ô'ð 	Ýð0ñô ð õ ˆs�wŠw‰yŒy‰>Œ>˜AÒÐÝð9ñô ð ð ˆ<Ý ÔBÀ:ÐPQÁ>ÑRÔRˆDÝ# C¨¨~Ñ>Ô>Ð>Øˆ
Ý	Ô	˜CÑ	 Ô	 ð =¥GÔ$4°SÑ$9Ô$9ñ =Ý(¨Ñ-Ô-ˆå�3Ð5Ñ6Ô6ð 	JØÔ#ˆCÝ ÔDÀSÑIÔIˆDõ �3Ð.Ñ/Ô/ð 	QÝÐ4°sÔ7OÑOÑPÔPÐPå*¨3Ñ/Ô/Ð/Ý$@ÀÑ$EÔ$EÐ!Ø$ð 	-Ø<?Ð%Ô9Ø,Ð,Ý˜#˜sœ|Ñ,Ô,ˆØˆ<Ý ÔDÀSÑIÔIˆDÝŒX×)Ò)Ø˜C Õ'7¸Ñ'<Ô'<ñ
ô 
ˆð ”[ˆŒ
Ø&ˆŒØ4ˆŒà!$ˆÔÝ  RÑ(Ô(Ð(Øˆ	åŒyÔ#×7Ò7¸Ñ<Ô<Ð<s   ÂA*DÄDÄDr½   rð  rñ  rÒ   c                 ó6  — t           j        dk    rt          j        dt          ¦  «         nt          j        dt          ¦  «         t
          s| S 	 t          }dat          | ||dz   ||¬¦  «        }|rt          dt          |¦  «        ¬¦  «         ||aS # |aw xY w)	a­  Script the function.

    Scripting a function or ``nn.Module`` will inspect the source code, compile
    it as TorchScript code using the TorchScript compiler, and return a :class:`ScriptModule` or
    :class:`ScriptFunction`. TorchScript itself is a subset of the Python language, so not all
    features in Python work, but we provide enough functionality to compute on
    tensors and do control-dependent operations. For a complete guide, see the
    :ref:`language-reference`.

    Scripting a dictionary or list copies the data inside it into a TorchScript instance than can be
    subsequently passed by reference between Python and TorchScript with zero copy overhead.

    ``torch.jit.script`` can be used as a function for modules, functions, dictionaries and lists
     and as a decorator ``@torch.jit.script`` for torchscript-classes and functions.

    Args:
        obj (Callable, class, or nn.Module):  The ``nn.Module``, function, class type,
                                                  dictionary, or list to compile.
        example_inputs (Union[List[Tuple], Dict[Callable, List[Tuple]], None]): Provide example inputs
            to annotate the arguments for a function or ``nn.Module``.

    Returns:
        If ``obj`` is ``nn.Module``, ``script`` returns
        a :class:`ScriptModule` object. The returned :class:`ScriptModule` will
        have the same set of sub-modules and parameters as the
        original ``nn.Module``. If ``obj`` is a standalone function,
        a :class:`ScriptFunction` will be returned. If ``obj`` is a ``dict``, then
        ``script`` returns an instance of `torch._C.ScriptDict`. If ``obj`` is a ``list``,
        then ``script`` returns an instance of `torch._C.ScriptList`.

    **Scripting a function**
        The ``@torch.jit.script`` decorator will construct a :class:`ScriptFunction`
        by compiling the body of the function.

        Example (scripting a function):

        .. testcode::

            import torch

            @torch.jit.script
            def foo(x, y):
                if x.max() > y.max():
                    r = x
                else:
                    r = y
                return r

            print(type(foo))  # torch.jit.ScriptFunction

            # See the compiled graph as Python code
            print(foo.code)

            # Call the function using the TorchScript interpreter
            foo(torch.ones(2, 2), torch.ones(2, 2))

        .. testoutput::
            :hide:

            ...

    ****Scripting a function using example_inputs**
        Example inputs can be used to annotate a function arguments.

        Example (annotating a function before scripting):

        .. testcode::

            import torch

            def test_sum(a, b):
                return a + b

            # Annotate the arguments to be int
            scripted_fn = torch.jit.script(test_sum, example_inputs=[(3, 4)])

            print(type(scripted_fn))  # torch.jit.ScriptFunction

            # See the compiled graph as Python code
            print(scripted_fn.code)

            # Call the function using the TorchScript interpreter
            scripted_fn(20, 100)

        .. testoutput::
            :hide:

            ...

    **Scripting an nn.Module**
        Scripting an ``nn.Module`` by default will compile the ``forward`` method and recursively
        compile any methods, submodules, and functions called by ``forward``. If a ``nn.Module`` only uses
        features supported in TorchScript, no changes to the original module code should be necessary. ``script``
        will construct :class:`ScriptModule` that has copies of the attributes, parameters, and methods of
        the original module.

        Example (scripting a simple module with a Parameter):

        .. testcode::

            import torch

            class MyModule(torch.nn.Module):
                def __init__(self, N, M):
                    super().__init__()
                    # This parameter will be copied to the new ScriptModule
                    self.weight = torch.nn.Parameter(torch.rand(N, M))

                    # When this submodule is used, it will be compiled
                    self.linear = torch.nn.Linear(N, M)

                def forward(self, input):
                    output = self.weight.mv(input)

                    # This calls the `forward` method of the `nn.Linear` module, which will
                    # cause the `self.linear` submodule to be compiled to a `ScriptModule` here
                    output = self.linear(output)
                    return output

            scripted_module = torch.jit.script(MyModule(2, 3))

        Example (scripting a module with traced submodules):

        .. testcode::

            import torch
            import torch.nn as nn
            import torch.nn.functional as F

            class MyModule(nn.Module):
                def __init__(self) -> None:
                    super().__init__()
                    # torch.jit.trace produces a ScriptModule's conv1 and conv2
                    self.conv1 = torch.jit.trace(nn.Conv2d(1, 20, 5), torch.rand(1, 1, 16, 16))
                    self.conv2 = torch.jit.trace(nn.Conv2d(20, 20, 5), torch.rand(1, 20, 16, 16))

                def forward(self, input):
                    input = F.relu(self.conv1(input))
                    input = F.relu(self.conv2(input))
                    return input

            scripted_module = torch.jit.script(MyModule())

        To compile a method other than ``forward`` (and recursively compile anything it calls), add
        the :func:`@torch.jit.export <torch.jit.export>` decorator to the method. To opt out of compilation
        use :func:`@torch.jit.ignore <torch.jit.ignore>` or :func:`@torch.jit.unused <torch.jit.unused>`.

        Example (an exported and ignored method in a module)::

            import torch
            import torch.nn as nn


            class MyModule(nn.Module):
                def __init__(self) -> None:
                    super().__init__()

                @torch.jit.export
                def some_entry_point(self, input):
                    return input + 10

                @torch.jit.ignore
                def python_only_fn(self, input):
                    # This function won't be compiled, so any
                    # Python APIs can be used
                    import pdb

                    pdb.set_trace()

                def forward(self, input):
                    if self.training:
                        self.python_only_fn(input)
                    return input * 99


            scripted_module = torch.jit.script(MyModule())
            print(scripted_module.some_entry_point(torch.randn(2, 2)))
            print(scripted_module(torch.randn(2, 2)))

        Example ( Annotating forward of nn.Module using example_inputs)::

            import torch
            import torch.nn as nn
            from typing import NamedTuple

            class MyModule(NamedTuple):
            result: List[int]

            class TestNNModule(torch.nn.Module):
                def forward(self, a) -> MyModule:
                    result = MyModule(result=a)
                    return result

            pdt_model = TestNNModule()

            # Runs the pdt_model in eager model with the inputs provided and annotates the arguments of forward
            scripted_model = torch.jit.script(pdt_model, example_inputs={pdt_model: [([10, 20, ], ), ], })

            # Run the scripted_model with actual inputs
            print(scripted_model([20]))
    rÃ   zv`torch.jit.script` is not supported in Python 3.14+ and may break. Please switch to `torch.compile` or `torch.export`.zU`torch.jit.script` is deprecated. Please switch to `torch.compile` or `torch.export`.Fr(   )r½   rð  rñ  rÒ   rÞ  Úscript)Úmodel_id)
rÊ   rË   rÌ   rÍ   rÎ   r   rÝ  rø  r   r   )r½   rð  rñ  rÒ   rÞ  ÚprevÚrets          r3   rú  rú  ù  s×   € õ` Ô˜7Ò"Ð"ÝŒðBåñ	
ô 	
ð 	
ð 	
õ 	ŒØcÝñ	
ô 	
ð 	
õ ð Øˆ
ðåˆØˆ	ÝØØØ! A‘~ØØ)ð
ñ 
ô 
ˆð ð 	IÝ! (µ]À3Ñ5GÔ5GÐHÑHÔHÐHààˆ	ˆ	ø�Dˆ	ÐÐÐÐs   ÁAB ÂBc                 óª   — |                      ¦   «         D ]=\  }}|| vs| |         |k    r(t          j        j                             |d|› �¦  «        ‚Œ>d S )Nz™Default parameters on overloads do not affect the runtime so they must equal to the default parameter on the implementation function. Found on parameter )rY   rz   rž   ÚfrontendÚFrontendError)Úimpl_defaultsÚoverload_defaultsÚlocrA   Úoverload_values        r3   Ú_check_overload_defaultsr  î  s~   € Ø 1× 7Ò 7Ñ 9Ô 9ð ð ÑˆˆnØ�}Ð$Ð$¨°dÔ(;¸~Ò(MÐ(MÝ”)Ô$×2Ò2Øð$à!ð$ð $ñô ð ð )Nðð r5   c                 óâ  — t          | | j        ¦  «                             ¦   «         }t          j        j                             | d d t          j        | ¦  «        ¦  «        }t          ||j        ¦  «        }t          | ¦  «        }t          |¦  «        }t          j        |¦  «        }t          |||                     ¦   «         ¦  «         t          j                             ||||||¦  «        }	|	S r:   )r    rs   Údeclrz   rž   ÚannotationsÚget_signaturerš  r˜  r   rÏ   rë  r  Úranger{   Ú_jit_script_compile_overload)
Úoverload_fnÚ	qual_nameÚimpl_fnÚoverload_declÚoverload_signatureÚimpl_astr  Úimplementation_defaultsrÒ   rÑ   s
             r3   Ú_compile_function_with_overloadr  ù  sç   € Ý ¨[Ô-AÑBÔB×GÒGÑIÔI€MÝœÔ.×<Ò<Ø�T˜4¥Ô!1°+Ñ!>Ô!>ñô Ðõ ˜7 GÔ$4Ñ5Ô5€HÝ(¨Ñ5Ô5ÐÝ.¨wÑ7Ô7ÐÝÔ<¸WÑEÔE€DÝØÐ!2°M×4GÒ4GÑ4IÔ4Iñô ð õ 
Œ×	.Ò	.ØØØØØØñ
ô 
€Bð €Ir5   c                 ó6  ‡ ‡— t          ‰ ¦  «        }t          ‰ ¦  «        Št          j        ‰¦  «        }|€|S ‰ |v r"t	          t          j        d‰ ¦  «        ¦  «        ‚ˆ ˆfd„|D ¦   «         }|r||z   }t          ‰ |¦  «         t          j        ‰¦  «         |S )NÚfunctionc                 ó2   •— g | ]}t          |‰‰¦  «        ‘ŒS r;   )r  )rS   r  r½   r  s     €€r3   rV   z"_get_overloads.<locals>.<listcomp>  s5   ø€ ð ð ð àõ 	(¨°YÀÑDÔDðð ð r5   )r   r   rÏ   Ú_get_fn_overloadsre   Ú,get_overload_no_implementation_error_messager   Ú_clear_fn_overloads)r½   Úexisting_compiled_fnsÚuncompiled_overloadsÚcompiled_fnsr  s   `   @r3   Ú_get_overloadsr    sÕ   øø€ å9¸#Ñ>Ô>ÐÝ Ñ$Ô$€IÝ(Ô:¸9ÑEÔEÐØÐ#Ø$Ð$à
Ð"Ð"Ð"ÝÝÔFÀzÐSVÑWÔWñ
ô 
ð 	
ðð ð ð ð à/ðñ ô €Lð
 ð <Ø,¨|Ñ;ˆõ ˜C Ñ.Ô.Ð.ÝÔ% iÑ0Ô0Ð0ØÐr5   c                 ó�   — t          | ¦  «        }t          j        |¦  «        st          | ¦  «        rt	          d|› d�¦  «        ‚d S )Nz	Function z˜ cannot be directly compiled because it is overloaded. It must be used in a context of a function where its inputs can determine which overload to call.)r   rÏ   r  r   re   )r½   r  s     r3   rì  rì  +  si   € Ý Ñ$Ô$€IÝÔ& yÑ1Ô1ð 
Õ5RÐSVÑ5WÔ5Wð 
ÝðF˜	ð Fð Fð Fñ
ô 
ð 	
ð
ð 
r5   c                 ór  — t          j        dt          ¦  «         t          j        | ¦  «        st          d¦  «        ‚t          | ¦  «        st          d¦  «        ‚t          | t          j	        j
        ¦  «        o$t          |                      ¦   «         ¦  «        dk    }|s4t          |                      ¦   «         ¦  «        dk    rt          d¦  «        ‚t          | ¦  «        }t          j        d¦  «        }t!          | | j        ¦  «        }t          j                             ||||¦  «        }|| _        | S )a¸  Decorate to annotate classes or modules of different types.

    .. deprecated:: 2.5
        TorchScript is deprecated, please use ``torch.compile`` instead.

    This decorator can be used to define an interface that can be used to annotate
    classes or modules of different types. This can be used for to annotate a submodule
    or attribute class that could have different types that implement the same
    interface, or which could be swapped at runtime; or to store a list of modules or
    classes of varying types.

    It is sometimes used to implement "Callables" - functions or modules that implement
    an interface but whose implementations differ and which can be swapped out.

    Example:
    .. testcode::

        import torch
        from typing import List

        @torch.jit.interface
        class InterfaceType:
            def run(self, x: torch.Tensor) -> torch.Tensor:
                pass

        # implements InterfaceType
        @torch.jit.script
        class Impl1:
            def run(self, x: torch.Tensor) -> torch.Tensor:
                return x.relu()

        class Impl2(torch.nn.Module):
            def __init__(self) -> None:
                super().__init__()
                self.val = torch.rand(())

            @torch.jit.export
            def run(self, x: torch.Tensor) -> torch.Tensor:
                return x + self.val

        def user_fn(impls: List[InterfaceType], idx: int, val: torch.Tensor) -> torch.Tensor:
            return impls[idx].run(val)

        user_fn_jit = torch.jit.script(user_fn)

        impls = [Impl1(), torch.jit.script(Impl2())]
        val = torch.rand(4, 4)
        user_fn_jit(impls, 0, val)
        user_fn_jit(impls, 1, val)
    zH`torch.jit.interface` is deprecated. Please use `torch.compile` instead.z$interface must be applied to a classz1TorchScript interfaces must inherit from 'object'rÄ   rÆ   zmTorchScript interface does not support inheritance yet. Please directly inherit from 'object' or 'nn.Module'.r(   )rÌ   rÍ   rÎ   rš  rå  re   rI   ræ  rz   rÎ  r!   ra   ré  r   rÏ   rÐ   r   rs   r{   Ú_jit_script_interface_compileÚ__torch_script_interface__)r½   Úis_module_interfacerö  r8  rÓ   Úmangled_classnames         r3   Ú	interfacer$  5  s-  € õf „MØRÝñô ð õ Œ?˜3ÑÔð CÝÐAÑBÔBÐBÝ˜sÑ#Ô#ð PÝÐNÑOÔOÐOõ % S­%¬(¬/Ñ:Ô:ÐR½sÀ3Ç7Â7Á9Ä9¹~¼~ÐQRÒ?RÐàð 
¥3 s§w¢w¡y¤y¡>¤>°AÒ#5Ð#5ÝðDñ
ô 
ð 	
õ
 % SÑ)Ô)€NÝ
Ô
9¸!Ñ
<Ô
<€Cõ ˜C ¤Ñ
.Ô
.€CÝœ×>Ò>Ø˜˜SÐ"5ñô Ðð &7€CÔ"Ø€Jr5   c                 óª   — t          | ¦  «        }t          j                             ||¦  «        }t	          j        | ¦  «        }t          | ||¦  «        S r:   )r   rz   r{   Ú	CallStackrÏ   Ú'createResolutionCallbackForClassMethodsr   )r½   r  Ú
_qual_nameÚerror_stackr8  s        r3   Ú_recursive_compile_classr*  Š  sJ   € Ý  Ñ%Ô%€Jõ ”(×$Ò$ Z°Ñ5Ô5€KÝ
Ô
?ÀÑ
DÔ
D€CÝ& s¨C°Ñ<Ô<Ð<r5   ú ÚsÚpaddingÚoffsetÚcharc                 ó¶   ‡— |t          | ¦  «        k    r|t          | ¦  «        z  }d                     ˆfd„t          ||z   ¦  «        D ¦   «         ¦  «        | z   S )Nrt  c                 ó   •— g | ]}‰‘ŒS r;   r;   )rS   rª   r/  s     €r3   rV   zpad.<locals>.<listcomp>š  s   ø€ Ð:Ð:Ð:˜Q�DÐ:Ð:Ð:r5   )ra   Újoinr
  )r,  r-  r.  r/  s      `r3   Úpadr3  —  s]   ø€ Ø•#�a‘&”&ÒÐØ•3�q‘6”6ÑˆØ�7Š7Ð:Ð:Ð:Ð:¥%¨°&Ñ(8Ñ"9Ô"9Ð:Ñ:Ô:Ñ;Ô;¸aÑ?Ð?r5   c                   ó:   — e Zd Zddededefd„Zdedefd	„Zd
„ ZdS )Ú_ScriptProfileColumné   r   ÚheaderÚ	alignmentr.  c                 ó>   — || _         || _        || _        i | _        d S r:   )r7  r8  r.  Úrows)rN   r7  r8  r.  s       r3   rO   z_ScriptProfileColumn.__init__ž  s"   € ØˆŒØ"ˆŒØˆŒØ$&ˆŒ	ˆ	ˆ	r5   Úlinenor7   c                 ó   — || j         |<   d S r:   )r:  )rN   r;  r7   s      r3   Úadd_rowz_ScriptProfileColumn.add_row¤  s   € Ø!ˆŒ	�&ÑÐÐr5   c                 ó˜  ‡ ‡— t          ‰ j        ¦  «        }g }‰ j                             ¦   «         D ]H\  }}t	          |¦  «        }|                     ||f¦  «         t          t          |¦  «        |¦  «        }ŒI‰ j        dk    r|‰ j        z   Š‰‰‰ j        z  z  ŠndŠˆˆ fd„|D ¦   «         }t          ‰ j        ‰‰ j	        ¦  «        |fS )Nr   c                 óF   •— g | ]\  }}|t          |‰‰j        ¦  «        f‘ŒS r;   )r3  r.  )rS   rŒ  Úcellr-  rN   s      €€r3   rV   z4_ScriptProfileColumn.materialize.<locals>.<listcomp>µ  s0   ø€ ÐMÐMÐM¹9¸3À�•c˜$ ¨¬Ñ5Ô5Ð6ÐMÐMÐMr5   )
ra   r7  r:  rY   rÝ   ÚappendÚmaxr8  r3  r.  )rN   Ú
max_lengthr:  rŒ  r7   r@  r-  s   `     @r3   Úmaterializez _ScriptProfileColumn.materialize§  s×   øø€ Ý˜œÑ%Ô%ˆ
Ø&(ˆØœ)Ÿ/š/Ñ+Ô+ð 	4ð 	4‰JˆC�Ý�u‘:”:ˆDØ�KŠK˜˜d˜Ñ$Ô$Ð$Ý�S ™YœY¨
Ñ3Ô3ˆJˆJàŒ>˜AÒÐØ  4¤>Ñ1ˆGØ�w ¤Ñ/Ñ/ˆGˆGàˆGàMÐMÐMÐMÐMÈÐMÑMÔMˆÝ�4”; ¨¬Ñ5Ô5°tÐ;Ð;r5   N)r6  r   )	rs   rt   ru   rÝ   r@  rO   r   r=  rD  r;   r5   r3   r5  r5  �  ss   € € € € € ð'ð '˜sð '¨sð 'Àð 'ð 'ð 'ð 'ð"˜cð "¨#ð "ð "ð "ð "ð<ð <ð <ð <ð <r5   r5  c                   ó<   — e Zd Zdee         dee         fd„Zd„ ZdS )Ú_ScriptProfileTableÚcolsÚsource_rangec                 ó"   — || _         || _        d S r:   )rG  rH  )rN   rG  rH  s      r3   rO   z_ScriptProfileTable.__init__º  s   € ØˆŒ	Ø(ˆÔÐÐr5   c           	      ó&  — g }g }d}| j         D ]B}|                     ¦   «         \  }}||z  }|                     |t          |¦  «        f¦  «         ŒC|                     |¦  «         |                     t	          dt          |¦  «        dd¦  «        ¦  «         | j        D ]^}d}|D ]B\  }}|                     |¦  «        }	|	€!|t	          dt          |¦  «        ¦  «        z  }Œ=||	z  }ŒC|                     |¦  «         Œ_d                     |¦  «        S )Nrt  r   ú=ú
)	rG  rD  rA  r“  r3  ra   rH  r  r2  )
rN   ÚoutputsÚcellsÚheader_bufferÚcolr7  r:  ÚlineÚ
row_bufferr@  s
             r3   Údump_stringz_ScriptProfileTable.dump_string¾  s&  € ØˆØ24ˆØˆØ”9ð 	/ð 	/ˆCØŸ?š?Ñ,Ô,‰LˆF�DØ˜VÑ#ˆMØ�LŠL˜&¥$ t¡*¤*Ð-Ñ.Ô.Ð.Ð.à�Š�}Ñ%Ô%Ð%Ø�Š•s˜2�s =Ñ1Ô1°1°cÑ:Ô:Ñ;Ô;Ð;ØÔ%ð 	'ð 	'ˆDØˆJØ %ð 'ð '‘�˜Ø—x’x ‘~”~�Ø�<Ø¥# b­#¨f©+¬+Ñ"6Ô"6Ñ6�J�Jà $Ñ&�J�JØ�NŠN˜:Ñ&Ô&Ð&Ð&Ø�yŠy˜Ñ!Ô!Ð!r5   N)rs   rt   ru   rã  r5  r@  rO   rS  r;   r5   r3   rF  rF  ¹  sO   € € € € € ð)˜TÐ"6Ô7ð )ÀtÈCÄyð )ð )ð )ð )ð"ð "ð "ð "ð "r5   rF  c                   ó4   — e Zd Zdd„Zd„ Zd„ Zdefd„Zd„ ZdS )	Ú_ScriptProfilerØ   Nc                 óL   — t           j                             ¦   «         | _        d S r:   )r   Ú	profilingrU  ÚprofilerZ   s    r3   rO   z_ScriptProfile.__init__Ö  s   € ÝÔ(×7Ò7Ñ9Ô9ˆŒˆˆr5   c                 ó8   — | j                              ¦   «          d S r:   )rX  ÚenablerZ   s    r3   rZ  z_ScriptProfile.enableÙ  s   € ØŒ×ÒÑÔÐÐÐr5   c                 ó8   — | j                              ¦   «          d S r:   )rX  ÚdisablerZ   s    r3   r\  z_ScriptProfile.disableÜ  s   € ØŒ×ÒÑÔÐÐÐr5   c                 ó  ‡— g }| j                              ¦   «         D �]Õ}|                     ¦   «         }|                     ¦   «                              ¦   «         }t          d„ |D ¦   «         ¦  «        Šˆfd„|D ¦   «         }|                     ¦   «         }|t          |¦  «        z   }t          ||¦  «        }t          d¦  «        }t          d¦  «        }	t          d¦  «        }
t          ddd¦  «        }| 
                    ¦   «         }|D ]ž}|                     ||¦  «         |                     ||||z
           ¦  «         |                     |¦  «        }|�P|	                     ||                     ¦   «         ¦  «         |
                     ||                     ¦   «         ¦  «         ŒŸt          ||	|
|gt!          |¦  «        ¦  «        }|                     |                     ¦   «         ¦  «         �Œ×d	                     |¦  «        S )
Nc              3   óz   K  — | ]6}t          |¦  «        t          |                     d ¦  «        ¦  «        z
  V — Œ7dS )r+  N)ra   Úlstrip)rS   rQ  s     r3   ú	<genexpr>z-_ScriptProfile.dump_string.<locals>.<genexpr>ä  sA   è è € ÐTÐT¸t�˜T™œ¥S¨¯ª°SÑ)9Ô)9Ñ%:Ô%:Ñ:ÐTÐTÐTÐTÐTÐTr5   c                 ó$   •— g | ]}|‰d …         ‘ŒS r:   r;   )rS   rQ  Údedents     €r3   rV   z._ScriptProfile.dump_string.<locals>.<listcomp>å  s!   ø€ ÐCÐCÐC¨d˜D   œMÐCÐCÐCr5   zLine #ÚHitsz	Time (ns)zLine Contentsr   r(   z

)rX  Ú_dump_statsÚsourceÚtextÚ
splitlinesÚminÚstarting_linenora   r
  r5  Úline_mapr=  r  ÚcountÚduration_nsrF  rã  rA  rS  r2  )rN   rM  Úsource_statsÚ
source_refÚsource_linesÚ
start_lineÚend_linerH  r;  ÚhitsÚtime_nsÚline_contentsÚstatsrQ  ÚstatÚtablerb  s                   @r3   rS  z_ScriptProfile.dump_stringß  sð  ø€ ØˆØ œL×4Ò4Ñ6Ô6ð 	0ñ 	0ˆLØ%×,Ò,Ñ.Ô.ˆJØ%Ÿ?š?Ñ,Ô,×7Ò7Ñ9Ô9ˆLÝÐTÐTÀ|ÐTÑTÔTÑTÔTˆFØCÐCÐCÐC°lÐCÑCÔCˆLà#×3Ò3Ñ5Ô5ˆJØ!¥C¨Ñ$5Ô$5Ñ5ˆHÝ  ¨XÑ6Ô6ˆLÝ)¨(Ñ3Ô3ˆFÝ'¨Ñ/Ô/ˆDÝ*¨;Ñ7Ô7ˆGÝ0°À!ÀQÑGÔGˆMØ ×)Ò)Ñ+Ô+ˆEØ$ð >ð >�Ø—’˜t TÑ*Ô*Ð*Ø×%Ò% d¨L¸À
Ñ9JÔ,KÑLÔLÐLØ—y’y ‘”�ØÐ#Ø—L’L  t§z¢z¡|¤|Ñ4Ô4Ð4Ø—O’O D¨$×*:Ò*:Ñ*<Ô*<Ñ=Ô=Ð=øå'Ø˜˜w¨Ð6½¸\Ñ8JÔ8Jñô ˆEð �NŠN˜5×,Ò,Ñ.Ô.Ñ/Ô/Ð/Ñ/Ø�{Š{˜7Ñ#Ô#Ð#r5   c                 óH   — t          |                      ¦   «         ¦  «         d S r:   )ÚprintrS  rZ   s    r3   Údumpz_ScriptProfile.dumpý  s"   € Ýˆd×ÒÑ Ô Ñ!Ô!Ð!Ð!Ð!r5   rB  )	rs   rt   ru   rO   rZ  r\  rÝ   rS  rz  r;   r5   r3   rU  rU  Õ  sp   € € € € € ð:ð :ð :ð :ðð ð ðð ð ð$˜Sð $ð $ð $ð $ð<"ð "ð "ð "ð "r5   rU  c                 ó(   — | €t          d¦  «        ‚| S )NzUnwrapping null optional)ÚAssertionError)r™  s    r3   Ú_unwrap_optionalr}    s   € Ø€yÝÐ7Ñ8Ô8Ð8Ø€Hr5   zaten::_unwrap_optionalzaten::is_scriptingzaten::has_torch_functionr:   )Nr   NN)r   r+  )Œr$  Úcollectionsr}  rç  r±   rš  r/   rÊ   rÌ   Úcollections.abcr   r   r   r   Útypingr   r   Útyping_extensionsr	   r
   rz   Útorch._jit_internalrÏ   Útorch._classesr   r   r   Útorch._utils_internalr   Útorch.jit._builtinsr   Útorch.jit._fuserr   r   Útorch.jit._monkeytype_configr   r   r   Útorch.jit._recursiver   r   r   r   Útorch.jit._stater   r   r   r   r   Útorch.jit.frontendr   r   r    Útorch.nnr!   Útorch.overridesr"   r#   r$   Útorch.packager%   r&   Útorch.utilsr'   Ú_serializationr)   r*   r=   r{   rT  rr  r+   rs   ru   r4   Ú
__reduce__Ú
namedtupler6   r>   rB   rI   rK   rw   r8   rŒ   r¹   ÚWarningrÀ   rÔ   rÖ   rÝ   rÎ  ré   Ú_magic_methodsr  r  r'  rj   r‡   rF  rE   rY   rA   ÚitemÚcallabler†   r  Ú
startswithrG   r�  Ú_compiled_methods_allowlistrÂ  ÚmethodÚendswithrÐ  rÕ  rØ  rÜ  rÝ  Úboolr3  rã  Útupler“  rø  r@  rú  r  r  r  rì  r$  r*  rã   r3  r5  rF  rU  r}  Úis_scriptingr;   r5   r3   ú<module>r�     s¥
  ððð ð ð Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ Ð Ð Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .à €€€Ø +Ð +Ð +Ð +Ð +Ð +Ø "Ð "Ð "Ð "Ð "Ð "Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð PÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OØ Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð
 ;Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø "Ð "Ð "Ð "Ð "Ð "à 1Ð 1Ð 1Ð 1Ð 1Ð 1ð €WˆT�]„]€ð "Ð!Ñ#Ô#€à":€„Ô Ô Ø$.€„Ô Ô !Ø”Ô(€ð€Ô ð +€Ô Ø8€Ô Ø 
€
ˆ>˜;Ñ 'Ô 'Ð 'ð
Að Að Að $€Ô ð ð Ø&�Ô& {°W¸fÐ4EÑFÔF€I€Iðð ð ðI€	Ô ðXð ð ð$ð $ð $ðCð Cð Cð( "ð  "ð  "ð  "ð  "ñ  "ô  "ð  "ðF&'ð &'ð &'ð &'ð &'Ð*ñ &'ô &'ð &'ðb;-ð ;-ð ;-ð ;-ð ;-�ñ ;-ô ;-ð ;-ð|+ð +ð +ð +ð +ñ +ô +ð +ð
	ð 	ð 	ð 	ð 	�Gñ 	ô 	ð 	ð+ð +ð +ð>(ð (ð (ð (ð (ñ (ô (ð (ð'Øð'Ø14ð'à
„X„_ð'ð 'ð 'ð 'ð0 ñ y	ðð ð €Nð>?Cð ?Cð ?Cð ?Cð ?Cñ ?Cô ?Cð ?CðB &ð Dð Dˆð	Kð 	Kð 	Kð 	ˆÐ$ k°?ÑCÔCÐCÐCðTBð TBð TBð TBð TB�v¨ð TBñ TBô TBð TBðlUð Uð Uð Uð U ñ Uô Uð Uðz
 ,Ô4×:Ò:Ñ<Ô<ð *ð *‰
ˆˆdØˆx˜‰~Œ~ð 	 j j°°xÑ&@Ô&@ð 	ØØ�?Š?˜4Ñ Ô ð 	 G G¨L¸$Ñ$?Ô$?ð 	Øð 	ˆ�˜d DÑ)Ô)Ð)Ð)ð
ð 
ð 
ð&#ð &#ð &#ÐðPð ð ð %˜ U¤X¤_Ñ5Ô5ð Nð N‰ˆˆfØ�?Š?˜4Ñ Ô ð 	 D§M¢M°,Ñ$?Ô$?ð 	Øð Ð-Ô6Ð6Ð6ØÐ7Ð7Ð7àˆGÐ)¨6¬?¸J¸JÀtÑ<LÔ<LÑMÔMÐMøðNðð ð ð ð ñ ô ð ðð ð ð ð �u”x”ñ ô ð ðð ð ð ð  ñ ô ð ð
$ð $ð $ðN8ð 8ð 8ð
$ð $ð $ð $ð $ð $ð $ð €	ˆ4Ð Ð Ñ ð
 ØØ	ØGKðH=ð H=ð
 ˜”K $ x°°e´Ð'<Ô"=Ñ=ÀÑDðH=ð H=ð H=ð H=ðZ ØØ(,ØGKðnð nØ	ðnàðnð ðnð �C�5˜#�:Ô
 Ñ
%ð	nð
 ˜”K $ x°°e´Ð'<Ô"=Ñ=ÀÑDðnð 	ðnð nð nð nðjð ð ðð ð ð.ð ð ð6
ð 
ð 
ðR�2ð R˜"ð Rð Rð Rð Rðj=ð =ð =ð ”(Ô*€Ø 
€
ˆ?˜KÑ (Ô (Ð (ð@ð @ˆ3ð @˜ð @ cð @°Sð @ð @ð @ð @ð<ð <ð <ð <ð <ñ <ô <ð <ð8"ð "ð "ð "ð "ñ "ô "ð "ð8)"ð )"ð )"ð )"ð )"ñ )"ô )"ð )"ðXð ð ð Ð Ð"Ð$<Ñ =Ô =Ð =Ø Ð �-Ô,Ð.BÑ CÔ CÐ CØ Ð Ð$Ð&@Ñ AÔ AÐ AØ Ð Ð*Ð,FÑ GÔ GÐ GØ Ð Ð-Ð/IÑ JÔ JÐ JÐ JÐ Jr5   