§
    ŠŠtjšk  ã                   óT  — d dl Z d dlmZ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 er
d dlZd dlmZ g d	¢Ze j         G d
„ d¦  «        ¦   «         Ze j         G d„ d¦  «        ¦   «         Ze j         G d„ d¦  «        ¦   «         Ze j         G d„ d¦  «        ¦   «         Ze j         G d„ d¦  «        ¦   «         Ze j         G d„ d¦  «        ¦   «         Ze j         G d„ d¦  «        ¦   «         Zeez  ez  ez  ez  ez  ez  Z G d„ de¦  «        Ze j         G d„ d¦  «        ¦   «         Z G d„ de¦  «        Ze j         G d„ d¦  «        ¦   «         Z e j         G d „ d!¦  «        ¦   «         Z!e j         G d"„ d#¦  «        ¦   «         Z"d$„ Z#d%efd&„Z$d'd(d)d*d+e%e&         d%d#fd,„Z'dS )-é    N)Ú
CollectionÚMapping)ÚautoÚEnum)ÚTYPE_CHECKING©ÚFakeScriptObject)Úget_opaque_type_nameÚis_opaque_type)Úis_fake)ÚGraphSignature)ÚConstantArgumentÚCustomObjArgumentÚExportBackwardSignatureÚExportGraphSignatureÚ	InputKindÚ	InputSpecÚ
OutputKindÚ
OutputSpecÚSymIntArgumentÚSymFloatArgumentÚSymBoolArgumentÚTensorArgumentc                   ó   — e Zd ZU eed<   dS )r   ÚnameN©Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__© ó    úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/export/graph_signature.pyr   r       ó   € € € € € € à
€I€I�I€I€Ir#   r   c                   ó   — e Zd ZU eed<   dS )ÚTokenArgumentr   Nr   r"   r#   r$   r'   r'   %   r%   r#   r'   c                   ó   — e Zd ZU eed<   dS )r   r   Nr   r"   r#   r$   r   r   *   r%   r#   r   c                   ó   — e Zd ZU eed<   dS )r   r   Nr   r"   r#   r$   r   r   /   r%   r#   r   c                   ó   — e Zd ZU eed<   dS )r   r   Nr   r"   r#   r$   r   r   4   r%   r#   r   c                   ó8   — e Zd ZU eed<   eed<   dZedz  ed<   dS )r   r   Ú	class_fqnNÚfake_val)r   r   r   r    r!   r-   r	   r"   r#   r$   r   r   9   s:   € € € € € € à
€I€I�IØ€N€N�NØ(,€HÐ Ñ%Ð,Ð,Ñ,Ð,Ð,r#   r   c                   ó<   — e Zd ZU eed<   eez  ez  ez  dz  ed<   dS )r   r   NÚvalue)r   r   r   r    r!   ÚintÚfloatÚboolr"   r#   r$   r   r   @   s:   € € € € € € à
€I€I�IØ�‰;˜Ñ Ñ# dÑ*Ð*Ð*Ñ*Ð*Ð*r#   r   c                   ó†   — e Zd Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z	dS )r   N)
r   r   r   r   Ú
USER_INPUTÚ	PARAMETERÚBUFFERÚCONSTANT_TENSORÚ
CUSTOM_OBJÚTOKENr"   r#   r$   r   r   Q   sP   € € € € € Ø�‘”€JØ�‘”€IØˆT‰VŒV€FØ�d‘f”f€OØ�‘”€JØˆD‰FŒF€E€E€Er#   r   c                   óT   — e Zd ZU eed<   eed<   edz  ed<   dZedz  ed<   d„ Z	d„ Z
dS )r   ÚkindÚargNÚtargetÚ
persistentc           
      ó"  — | j         t          j        k    r| j        €t	          d¦  «        ‚t          | j        t          t          t          t          t          t          t          f¦  «        s$t	          dt          | j        ¦  «        › �¦  «        ‚d S )Nz,Failed to specify persistent flag on BUFFER.úexpected valid arg type, got )r;   r   r6   r>   ÚAssertionErrorÚ
isinstancer<   r   r   r   r   r   r   r'   Útype©Úselfs    r$   Ú__post_init__zInputSpec.__post_init__a   sˆ   € ØŒ9�	Ô(Ò(Ð(ØŒÐ&Ý$Ð%SÑTÔTÐTÝØŒHåÝÝ ÝÝ Ý!Ýðñ
ô 
ð 	Sõ !Ð!QÅÀdÄhÁÄÐ!QÐ!QÑRÔRÐRð	Sð 	Sr#   c                 óÂ   — | j         €dn
d| j         › d�}| j        €dn	d| j        › �}t          | j        j        ¦  «        › dt          | j        j        ¦  «        › |› |› �S )NÚ ú	 target='ú'z persistent=ú: )r=   r>   r    r<   r   r;   )rE   r=   r>   s      r$   Ú__str__zInputSpec.__str__s   sq   € Ø”{Ð*��Ð0J¸D¼KÐ0JÐ0JÐ0JˆØœ?Ð2�R�RÐ8XÀtÄÐ8XÐ8Xˆ
Ý�d”h”mÑ$Ô$ÐQÐQ­¨D¬I¬NÑ(;Ô(;ÐQ¸VÐQÀZÐQÐQÐQr#   )r   r   r   r   r!   ÚArgumentSpecr    r>   r2   rF   rL   r"   r#   r$   r   r   Z   su   € € € € € € à
€O€O�OØ	ÐÐÑØ�$‰JÐÐÑØ"€J��t‘Ð"Ð"Ñ"ðSð Sð Sð$Rð Rð Rð Rð Rr#   r   c                   ó®   — e Zd Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z	 e¦   «         Z
 e¦   «         ZdS )r   N)r   r   r   r   ÚUSER_OUTPUTÚLOSS_OUTPUTÚBUFFER_MUTATIONÚPARAMETER_MUTATIONÚGRADIENT_TO_PARAMETERÚGRADIENT_TO_USER_INPUTÚUSER_INPUT_MUTATIONr9   r"   r#   r$   r   r   y   sj   € € € € € Ø�$‘&”&€KØ�$‘&”&€KØ�d‘f”f€OØ˜™œÐØ ˜D™FœFÐØ!˜T™VœVÐØ˜$™&œ&ÐØˆD‰FŒF€E€E€Er#   r   c                   ó@   — e Zd ZU eed<   eed<   edz  ed<   d„ Zd„ ZdS )r   r;   r<   Nr=   c           
      ó²   — t          | j        t          t          t          t
          t          t          t          f¦  «        st          d| j        › �¦  «        ‚d S )Nr@   )
rB   r<   r   r   r   r   r   r'   r   rA   rD   s    r$   rF   zOutputSpec.__post_init__Š   s[   € ÝØŒHåÝÝ ÝÝ ÝÝ!ðñ
ô 
ð 	Mõ !Ð!KÀÄÐ!KÐ!KÑLÔLÐLð	Mð 	Mr#   c                 ó˜   — | j         €dn
d| j         › d�}t          | j        j        ¦  «        › dt          | j        j        ¦  «        › |› �S )NrH   rI   rJ   rK   )r=   r    r<   r   r;   )rE   r=   s     r$   rL   zOutputSpec.__str__™   sQ   € Ø”{Ð*��Ð0J¸D¼KÐ0JÐ0JÐ0JˆÝ�d”h”mÑ$Ô$ÐEÐE­¨D¬I¬NÑ(;Ô(;ÐE¸VÐEÐEÐEr#   )	r   r   r   r   r!   rM   r    rF   rL   r"   r#   r$   r   r   „   sd   € € € € € € à
ÐÐÑØ	ÐÐÑØ�$‰JÐÐÑðMð Mð MðFð Fð Fð Fð Fr#   r   c                   óN   — e Zd ZU eeef         ed<   eeef         ed<   eed<   dS )r   Úgradients_to_parametersÚgradients_to_user_inputsÚloss_outputN)r   r   r   Údictr    r!   r"   r#   r$   r   r   ž   sF   € € € € € € à! # s (œ^Ð+Ð+Ñ+Ø" 3¨ 8œnÐ,Ð,Ñ,ØÐÐÑÐÐr#   r   c                   ó†  — e Zd ZU dZee         ed<   ee         ed<   ede	e
         fd„¦   «         Zede	e
         fd„¦   «         Zede	e
         fd„¦   «         Zede	e
         fd„¦   «         Zede	e
         fd	„¦   «         Zede	eez  ez  e
z  d
z           fd„¦   «         Zede	eez  ez  e
z  d
z           fd„¦   «         Zedee
e
f         fd„¦   «         Zedee
e
f         fd„¦   «         Zedee
e
f         fd„¦   «         Zedee
e
f         fd„¦   «         Zedee
e
f         fd„¦   «         Zedee
e
f         fd„¦   «         Zedee
e
f         fd„¦   «         Zeded
z  fd„¦   «         Zedeee
f         d
z  fd„¦   «         Zede	e
         fd„¦   «         Z ede	e
         fd„¦   «         Z!dd„Z"de
de
fd„Z#d d„Z$d„ Z%d
S )!r   a.  
    :class:`ExportGraphSignature` models the input/output signature of Export Graph,
    which is a fx.Graph with stronger invariants guarantees.

    Export Graph is functional and does not access "states" like parameters
    or buffers within the graph via ``getattr`` nodes. Instead, :func:`export`
    guarantees that parameters, buffers, and constant tensors are lifted out of
    the graph as inputs.  Similarly, any mutations to buffers are not included
    in the graph either, instead the updated values of mutated buffers are
    modeled as additional outputs of Export Graph.

    The ordering of all inputs and outputs are::

        Inputs = [*parameters_buffers_constant_tensors, *flattened_user_inputs]
        Outputs = [*mutated_inputs, *flattened_user_outputs]

    e.g. If following module is exported::

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

                # Define a parameter
                self.my_parameter = nn.Parameter(torch.tensor(2.0))

                # Define two buffers
                self.register_buffer("my_buffer1", torch.tensor(3.0))
                self.register_buffer("my_buffer2", torch.tensor(4.0))

            def forward(self, x1, x2):
                # Use the parameter, buffers, and both inputs in the forward method
                output = (
                    x1 + self.my_parameter
                ) * self.my_buffer1 + x2 * self.my_buffer2

                # Mutate one of the buffers (e.g., increment it by 1)
                self.my_buffer2.add_(1.0)  # In-place addition

                return output


        mod = CustomModule()
        ep = torch.export.export(mod, (torch.tensor(1.0), torch.tensor(2.0)))

    Resulting Graph is non-functional::

        graph():
            %p_my_parameter : [num_users=1] = placeholder[target=p_my_parameter]
            %b_my_buffer1 : [num_users=1] = placeholder[target=b_my_buffer1]
            %b_my_buffer2 : [num_users=2] = placeholder[target=b_my_buffer2]
            %x1 : [num_users=1] = placeholder[target=x1]
            %x2 : [num_users=1] = placeholder[target=x2]
            %add : [num_users=1] = call_function[target=torch.ops.aten.add.Tensor](args = (%x1, %p_my_parameter), kwargs = {})
            %mul : [num_users=1] = call_function[target=torch.ops.aten.mul.Tensor](args = (%add, %b_my_buffer1), kwargs = {})
            %mul_1 : [num_users=1] = call_function[target=torch.ops.aten.mul.Tensor](args = (%x2, %b_my_buffer2), kwargs = {})
            %add_1 : [num_users=1] = call_function[target=torch.ops.aten.add.Tensor](args = (%mul, %mul_1), kwargs = {})
            %add_ : [num_users=0] = call_function[target=torch.ops.aten.add_.Tensor](args = (%b_my_buffer2, 1.0), kwargs = {})
            return (add_1,)

    Resulting ExportGraphSignature of the non-functional Graph would be::

        # inputs
        p_my_parameter: PARAMETER target='my_parameter'
        b_my_buffer1: BUFFER target='my_buffer1' persistent=True
        b_my_buffer2: BUFFER target='my_buffer2' persistent=True
        x1: USER_INPUT
        x2: USER_INPUT

        # outputs
        add_1: USER_OUTPUT

    To get a functional Graph, you can use :func:`run_decompositions`::

        mod = CustomModule()
        ep = torch.export.export(mod, (torch.tensor(1.0), torch.tensor(2.0)))
        ep = ep.run_decompositions()

    Resulting Graph is functional::

        graph():
            %p_my_parameter : [num_users=1] = placeholder[target=p_my_parameter]
            %b_my_buffer1 : [num_users=1] = placeholder[target=b_my_buffer1]
            %b_my_buffer2 : [num_users=2] = placeholder[target=b_my_buffer2]
            %x1 : [num_users=1] = placeholder[target=x1]
            %x2 : [num_users=1] = placeholder[target=x2]
            %add : [num_users=1] = call_function[target=torch.ops.aten.add.Tensor](args = (%x1, %p_my_parameter), kwargs = {})
            %mul : [num_users=1] = call_function[target=torch.ops.aten.mul.Tensor](args = (%add, %b_my_buffer1), kwargs = {})
            %mul_1 : [num_users=1] = call_function[target=torch.ops.aten.mul.Tensor](args = (%x2, %b_my_buffer2), kwargs = {})
            %add_1 : [num_users=1] = call_function[target=torch.ops.aten.add.Tensor](args = (%mul, %mul_1), kwargs = {})
            %add_2 : [num_users=1] = call_function[target=torch.ops.aten.add.Tensor](args = (%b_my_buffer2, 1.0), kwargs = {})
            return (add_2, add_1)

    Resulting ExportGraphSignature of the functional Graph would be::

        # inputs
        p_my_parameter: PARAMETER target='my_parameter'
        b_my_buffer1: BUFFER target='my_buffer1' persistent=True
        b_my_buffer2: BUFFER target='my_buffer2' persistent=True
        x1: USER_INPUT
        x2: USER_INPUT

        # outputs
        add_2: BUFFER_MUTATION target='my_buffer2'
        add_1: USER_OUTPUT

    Úinput_specsÚoutput_specsÚreturnc                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó‚   K  — | ]:}|j         t          j        k    ¯t          |j        t
          ¦  «        ¯1|j        V — Œ;d S ©N)r;   r   r5   rB   r=   r    ©Ú.0Úss     r$   ú	<genexpr>z2ExportGraphSignature.parameters.<locals>.<genexpr>  sT   è è € ð 
ð 
àØŒv�Ô,Ò,Ð,Ý˜!œ(¥CÑ(Ô(ð -ð ŒHà,Ð,Ð,Ð,ð
ð 
r#   ©Útupler_   rD   s    r$   Ú
parameterszExportGraphSignature.parameters  ó3   € åð 
ð 
àÔ%ð
ñ 
ô 
ñ 
ô 
ð 	
r#   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó‚   K  — | ]:}|j         t          j        k    ¯t          |j        t
          ¦  «        ¯1|j        V — Œ;d S rd   )r;   r   r6   rB   r=   r    re   s     r$   rh   z/ExportGraphSignature.buffers.<locals>.<genexpr>"  sT   è è € ð 
ð 
àØŒv�Ô)Ò)Ð)Ý˜!œ(¥CÑ(Ô(ð *ð ŒHà)Ð)Ð)Ð)ð
ð 
r#   ri   rD   s    r$   ÚbufferszExportGraphSignature.buffers   rl   r#   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó”   K  — | ]C}|j         t          j        k    r,|j        d u ¯ t	          |j        t          ¦  «        ¯:|j        V — ŒDdS )FN)r;   r   r6   r>   rB   r=   r    re   s     r$   rh   z>ExportGraphSignature.non_persistent_buffers.<locals>.<genexpr>+  sc   è è € ð 
ð 
àØŒv�Ô)Ò)Ð)ØŒ|˜uÐ$Ð$Ý˜!œ(¥CÑ(Ô(ð %ð ŒHð %Ð$Ð$Ð$ð	
ð 
r#   ri   rD   s    r$   Únon_persistent_buffersz+ExportGraphSignature.non_persistent_buffers)  s3   € åð 
ð 
àÔ%ð
ñ 
ô 
ñ 
ô 
ð 	
r#   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó‚   K  — | ]:}|j         t          j        k    ¯t          |j        t
          ¦  «        ¯1|j        V — Œ;d S rd   )r;   r   r7   rB   r=   r    re   s     r$   rh   z?ExportGraphSignature.lifted_tensor_constants.<locals>.<genexpr>6  sT   è è € ð 
ð 
àØŒv�Ô2Ò2Ð2Ý˜!œ(¥CÑ(Ô(ð 3ð ŒHà2Ð2Ð2Ð2ð
ð 
r#   ri   rD   s    r$   Úlifted_tensor_constantsz,ExportGraphSignature.lifted_tensor_constants4  rl   r#   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó‚   K  — | ]:}|j         t          j        k    ¯t          |j        t
          ¦  «        ¯1|j        V — Œ;d S rd   )r;   r   r8   rB   r=   r    re   s     r$   rh   z:ExportGraphSignature.lifted_custom_objs.<locals>.<genexpr>?  sT   è è € ð 
ð 
àØŒv�Ô-Ò-Ð-Ý˜!œ(¥CÑ(Ô(ð .ð ŒHà-Ð-Ð-Ð-ð
ð 
r#   ri   rD   s    r$   Úlifted_custom_objsz'ExportGraphSignature.lifted_custom_objs=  rl   r#   Nc           	      óª  — g }| j         D ]»}|j        t          j        k    rŒt	          |j        t          t          t          t          t          f¦  «        r |                     |j        j        ¦  «         Œkt	          |j        t          ¦  «        r |                     |j        j        ¦  «         Œ¥t          |j        › d�¦  «        ‚t!          |¦  «        S )Nz is not a valid user input)r_   r;   r   r4   rB   r<   r   r   r   r   r   Úappendr   r   r/   ÚRuntimeErrorrj   )rE   Úuser_inputsrg   s      r$   r|   z ExportGraphSignature.user_inputsG  sÏ   € à=?ˆØÔ!ð 	Ið 	IˆAØŒv�Ô-Ò-Ð-ØåØ”å"Ý"Ý$Ý#Ý%ðñ	ô 	ð Ið ×"Ò" 1¤5¤:Ñ.Ô.Ð.Ð.Ý˜AœEÕ#3Ñ4Ô4ð IØ×"Ò" 1¤5¤;Ñ/Ô/Ð/Ð/å" a¤eÐ#GÐ#GÐ#GÑHÔHÐHÝ�[Ñ!Ô!Ð!r#   c                 ó&  — g }| j         D ]ù}|j        t          j        t          j        fvrŒ"t          |j        t          t          t          t          f¦  «        r |                     |j        j        ¦  «         Œot          |j        t          ¦  «        r |                     |j        j        ¦  «         Œ©t          |j        t          ¦  «        r |                     |j        j        ¦  «         Œãt!          |j        › d�¦  «        ‚t#          |¦  «        S )Nz is not a valid user output)r`   r;   r   rO   rP   rB   r<   r   r   r   r   rz   r   r   r/   r   r{   rj   )rE   Úuser_outputsrg   s      r$   r~   z!ExportGraphSignature.user_outputsa  s  € à>@ˆØÔ"ð 	Jð 	JˆAØŒvÝÔ&ÝÔ&ðð ð ð åØ”Ý¥Õ1AÅ?ÐSñô ð 
Jð ×#Ò# A¤E¤JÑ/Ô/Ð/Ð/Ý˜AœEÕ#3Ñ4Ô4ð JØ×#Ò# A¤E¤KÑ0Ô0Ð0Ð0Ý˜AœEÕ#4Ñ5Ô5ð JØ×#Ò# A¤E¤JÑ/Ô/Ð/Ð/å" a¤eÐ#HÐ#HÐ#HÑIÔIÐIÝ�\Ñ"Ô"Ð"r#   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   óÎ   K  — | ]`}|j         t          j        k    ¯t          |j        t
          ¦  «        ¯1t          |j        t          ¦  «        ¯K|j        j        |j        fV — Œad S rd   )	r;   r   r5   rB   r<   r   r=   r    r   re   s     r$   rh   z<ExportGraphSignature.inputs_to_parameters.<locals>.<genexpr>|  sq   è è € ð 
ð 
àØŒv�Ô,Ò,Ð,Ý˜1œ5¥.Ñ1Ô1ð -å˜1œ8¥SÑ)Ô)ð -ð ŒUŒZ˜œÐ"à,Ð,Ð,Ð,ð
ð 
r#   ©Ú_immutable_dictr_   rD   s    r$   Úinputs_to_parametersz)ExportGraphSignature.inputs_to_parametersz  ó3   € åð 
ð 
àÔ%ð
ñ 
ô 
ñ 
ô 
ð 	
r#   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   óÎ   K  — | ]`}|j         t          j        k    ¯t          |j        t
          ¦  «        ¯1t          |j        t          ¦  «        ¯K|j        j        |j        fV — Œad S rd   )	r;   r   r6   rB   r<   r   r=   r    r   re   s     r$   rh   z9ExportGraphSignature.inputs_to_buffers.<locals>.<genexpr>ˆ  sq   è è € ð 
ð 
àØŒv�Ô)Ò)Ð)Ý˜1œ5¥.Ñ1Ô1ð *å˜1œ8¥SÑ)Ô)ð *ð ŒUŒZ˜œÐ"à)Ð)Ð)Ð)ð
ð 
r#   r�   rD   s    r$   Úinputs_to_buffersz&ExportGraphSignature.inputs_to_buffers†  r„   r#   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   óÎ   K  — | ]`}|j         t          j        k    ¯t          |j        t
          ¦  «        ¯1t          |j        t          ¦  «        ¯K|j        j        |j        fV — Œad S rd   )	r;   r   rQ   rB   r<   r   r=   r    r   re   s     r$   rh   z9ExportGraphSignature.buffers_to_mutate.<locals>.<genexpr>”  sq   è è € ð 
ð 
àØŒv�Ô3Ò3Ð3Ý˜1œ5¥.Ñ1Ô1ð 4å˜1œ8¥SÑ)Ô)ð 4ð ŒUŒZ˜œÐ"à3Ð3Ð3Ð3ð
ð 
r#   ©r‚   r`   rD   s    r$   Úbuffers_to_mutatez&ExportGraphSignature.buffers_to_mutate’  ó3   € åð 
ð 
àÔ&ð
ñ 
ô 
ñ 
ô 
ð 	
r#   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   óÎ   K  — | ]`}|j         t          j        k    ¯t          |j        t
          ¦  «        ¯1t          |j        t          ¦  «        ¯K|j        j        |j        fV — Œad S rd   )	r;   r   rR   rB   r<   r   r=   r    r   re   s     r$   rh   z<ExportGraphSignature.parameters_to_mutate.<locals>.<genexpr>ž  sq   è è € ð 
ð 
àØŒv�Ô6Ò6Ð6Ý˜1œ5¥.Ñ1Ô1ð 7å˜1œ8¥SÑ)Ô)ð 7ð ŒUŒZ˜œÐ"à6Ð6Ð6Ð6ð
ð 
r#   rŠ   rD   s    r$   Úparameters_to_mutatez)ExportGraphSignature.parameters_to_mutateœ  rŒ   r#   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   óÎ   K  — | ]`}|j         t          j        k    ¯t          |j        t
          ¦  «        ¯1t          |j        t          ¦  «        ¯K|j        j        |j        fV — Œad S rd   )	r;   r   rU   rB   r<   r   r=   r    r   re   s     r$   rh   z=ExportGraphSignature.user_inputs_to_mutate.<locals>.<genexpr>¨  sq   è è € ð 
ð 
àØŒv�Ô7Ò7Ð7Ý˜1œ5¥.Ñ1Ô1ð 8å˜1œ8¥SÑ)Ô)ð 8ð ŒUŒZ˜œÐ"à7Ð7Ð7Ð7ð
ð 
r#   rŠ   rD   s    r$   Úuser_inputs_to_mutatez*ExportGraphSignature.user_inputs_to_mutate¦  rŒ   r#   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   óÎ   K  — | ]`}|j         t          j        k    ¯t          |j        t
          ¦  «        ¯1t          |j        t          ¦  «        ¯K|j        j        |j        fV — Œad S rd   )	r;   r   r7   rB   r<   r   r=   r    r   re   s     r$   rh   zIExportGraphSignature.inputs_to_lifted_tensor_constants.<locals>.<genexpr>³  sq   è è € ð 
ð 
àØŒv�Ô2Ò2Ð2Ý˜1œ5¥.Ñ1Ô1ð 3å˜1œ8¥SÑ)Ô)ð 3ð ŒUŒZ˜œÐ"à2Ð2Ð2Ð2ð
ð 
r#   r�   rD   s    r$   Ú!inputs_to_lifted_tensor_constantsz6ExportGraphSignature.inputs_to_lifted_tensor_constants±  r„   r#   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   óÎ   K  — | ]`}|j         t          j        k    ¯t          |j        t
          ¦  «        ¯1t          |j        t          ¦  «        ¯K|j        j        |j        fV — Œad S rd   )	r;   r   r8   rB   r<   r   r=   r    r   re   s     r$   rh   zDExportGraphSignature.inputs_to_lifted_custom_objs.<locals>.<genexpr>½  sr   è è € ð 
ð 
àØŒv�Ô-Ò-Ð-Ý˜1œ5Õ"3Ñ4Ô4ð .å˜1œ8¥SÑ)Ô)ð .ð ŒUŒZ˜œÐ"à-Ð-Ð-Ð-ð
ð 
r#   r�   rD   s    r$   Úinputs_to_lifted_custom_objsz1ExportGraphSignature.inputs_to_lifted_custom_objs»  r„   r#   c                 óÌ  — d }i }i }| j         D �]À}|j        t          j        k    r\|�t	          d¦  «        ‚t          |j        t          ¦  «        s$t	          dt          |j        ¦  «        › �¦  «        ‚|j        j	        }Œt|j        t          j
        k    r’t          |j        t          ¦  «        s$t	          dt          |j        ¦  «        › �¦  «        ‚t          |j        t          ¦  «        s$t	          dt          |j        ¦  «        › �¦  «        ‚|j        ||j        j	        <   �Œ|j        t          j        k    r�t          |j        t          ¦  «        s$t	          dt          |j        ¦  «        › �¦  «        ‚t          |j        t          ¦  «        s$t	          dt          |j        ¦  «        › �¦  «        ‚|j        ||j        j	        <   �ŒÂ|€d S t          |||¬¦  «        S )Nz multiple LOSS_OUTPUT specs foundz-expected TensorArgument for LOSS_OUTPUT, got z3expected str target for GRADIENT_TO_PARAMETER, got z7expected TensorArgument for GRADIENT_TO_PARAMETER, got z4expected str target for GRADIENT_TO_USER_INPUT, got z8expected TensorArgument for GRADIENT_TO_USER_INPUT, got )r\   rZ   r[   )r`   r;   r   rP   rA   rB   r<   r   rC   r   rS   r=   r    rT   r   )rE   r\   rZ   r[   Úspecs        r$   Úbackward_signaturez'ExportGraphSignature.backward_signatureÅ  s  € àˆØ24ÐØ35Ð ØÔ%ð 	Fñ 	FˆDØŒy�JÔ2Ò2Ð2ØÐ*Ý(Ð)KÑLÔLÐLÝ! $¤(­NÑ;Ô;ð Ý(ØXÍÈTÌXÉÌÐXÐXñô ð ð #œhœm��Ø”�jÔ>Ò>Ð>Ý! $¤+­sÑ3Ô3ð Ý(ØaÍdÐSWÔS^ÑN_ÔN_ÐaÐañô ð õ " $¤(­NÑ;Ô;ð Ý(ØbÕRVÐW[ÔW_ÑR`ÔR`ÐbÐbñô ð ð :>¼Ð'¨¬¬Ñ6Ñ6Ø”�jÔ?Ò?Ð?Ý! $¤+­sÑ3Ô3ð Ý(ØbÍtÐTXÔT_ÑO`ÔO`ÐbÐbñô ð õ " $¤(­NÑ;Ô;ð Ý(ØcÕSWÐX\ÔX`ÑSaÔSaÐcÐcñô ð ð ;?¼+Ð(¨¬¬Ñ7ùàÐØ�4å&Ø#Ø$;Ø%=ð
ñ 
ô 
ð 	
r#   c                 ó   — d S rd   r"   rD   s    r$   Úassertion_dep_tokenz(ExportGraphSignature.assertion_dep_tokenô  s   € àˆtr#   c                 ó  — g }| j         D ]t}|j        t          j        k    r]t	          |j        t          ¦  «        s$t          dt          |j        ¦  «        › �¦  «        ‚| 	                    |j        j
        ¦  «         Œut          |¦  «        S ©Nz+expected TokenArgument for TOKEN kind, got )r_   r;   r   r9   rB   r<   r'   rA   rC   rz   r   rj   )rE   Úinput_tokensrg   s      r$   r    z!ExportGraphSignature.input_tokensø  sŠ   € àˆØÔ!ð 	0ð 	0ˆAØŒv�œÒ(Ð(Ý! !¤%­Ñ7Ô7ð Ý(ØSÅdÈ1Ì5ÁkÄkÐSÐSñô ð ð ×#Ò# A¤E¤JÑ/Ô/Ð/øÝ�\Ñ"Ô"Ð"r#   c                 ó  — g }| j         D ]t}|j        t          j        k    r]t	          |j        t          ¦  «        s$t          dt          |j        ¦  «        › �¦  «        ‚| 	                    |j        j
        ¦  «         Œut          |¦  «        S rŸ   )r`   r;   r   r9   rB   r<   r'   rA   rC   rz   r   rj   )rE   Úoutput_tokensrg   s      r$   r¢   z"ExportGraphSignature.output_tokens  s‹   € àˆØÔ"ð 	1ð 	1ˆAØŒv�Ô)Ò)Ð)Ý! !¤%­Ñ7Ô7ð Ý(ØSÅdÈ1Ì5ÁkÄkÐSÐSñô ð ð ×$Ò$ Q¤U¤ZÑ0Ô0Ð0øÝ�]Ñ#Ô#Ð#r#   c                 ód  — | j         }|€d S t          |¦  «        dk    rt          dt          |¦  «        › �¦  «        ‚t          t	          |                     ¦   «         ¦  «        ¦  «        }t          | j        ¦  «        t          | j        ¦  «        z   }||k    rt          d|› d|› �¦  «        ‚d S )Né   z,expected exactly 1 assertion_dep_token, got z)expected assertion_dep_token_index to be z, got )r�   ÚlenrA   ÚnextÚiterÚkeysr~   r‹   )rE   r�   Úassertion_dep_token_indexÚexpected_indexs       r$   rF   z"ExportGraphSignature.__post_init__  sÏ   € Ø"Ô6ÐØÐ&ØˆFÝÐ"Ñ#Ô# qÒ(Ð(Ý ØY½sÐCVÑ?WÔ?WÐYÐYñô ð õ %)­Ð.A×.FÒ.FÑ.HÔ.HÑ)IÔ)IÑ$JÔ$JÐ!Ý˜TÔ.Ñ/Ô/µ#°dÔ6LÑ2MÔ2MÑMˆØÐ6Ò6Ð6Ý Øm¸NÐmÐmÐRkÐmÐmñô ð ð 7Ð6r#   ÚoldÚnewc                 ó  — t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚t          t
          t          t          t          t          f}| j
        D ]3}t          |j        |¦  «        r|j        j        |k    r||j        _        Œ4| j        D ]3}t          |j        |¦  «        r|j        j        |k    r||j        _        Œ4dS )zR
        Replace all uses of the old name with new name in the signature.
        zexpected old to be str, got zexpected new to be str, got N)rB   r    rA   rC   r   r   r   r   r   r'   r`   r<   r   r_   )rE   r«   r¬   Ú	arg_typesÚoÚis         r$   Úreplace_all_usesz%ExportGraphSignature.replace_all_uses  s  € õ ˜#�sÑ#Ô#ð 	MÝ Ð!KÅÀSÁ	Ä	Ð!KÐ!KÑLÔLÐLÝ˜#�sÑ#Ô#ð 	MÝ Ð!KÅÀSÁ	Ä	Ð!KÐ!KÑLÔLÐLåÝÝÝÝÝð
ˆ	ð Ô"ð 	%ð 	%ˆAÝ˜!œ% Ñ+Ô+ð %Ø”5”: Ò$Ð$Ø!$�A”E”JøØÔ!ð 	%ð 	%ˆAÝ˜!œ% Ñ+Ô+ð %Ø”5”: Ò$Ð$Ø!$�A”E”Jøð	%ð 	%r#   Fc                 ó   ‡ ‡— ˆˆ fd„}|S )Nc                 ó¬   •— |j         dk    r‰                     | j        |¦  «         ‰r(| j         dk    r‰                     | j        |¦  «         d S d S d S )NÚoutputÚplaceholder)Úopr±   r   )r«   r¬   ÚuserÚreplace_inputsrE   s      €€r$   Ú_z0ExportGraphSignature.get_replace_hook.<locals>._9  sj   ø€ ØŒw˜(Ò"Ð"Ø×%Ò% c¤h°Ñ4Ô4Ð4Øð 5 #¤&¨MÒ"9Ð"9Ø×%Ò% c¤h°Ñ4Ô4Ð4Ð4Ð4ð5ð 5Ð"9Ð"9r#   r"   )rE   r¸   r¹   s   `` r$   Úget_replace_hookz%ExportGraphSignature.get_replace_hook8  s)   øø€ ð	5ð 	5ð 	5ð 	5ð 	5ð 	5ð ˆr#   c                 ó¤   — d                      d„ | j        D ¦   «         ¦  «        }d                      d„ | j        D ¦   «         ¦  «        }d|› d|› d�S )Nú
c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rd   ©r    re   s     r$   rh   z/ExportGraphSignature.__str__.<locals>.<genexpr>B  s(   è è € ÐAÐA¨1¥ A¡¤ÐAÐAÐAÐAÐAÐAr#   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rd   r¾   re   s     r$   rh   z/ExportGraphSignature.__str__.<locals>.<genexpr>C  s(   è è € Ð CÐ C¨A¥ Q¡¤Ð CÐ CÐ CÐ CÐ CÐ Cr#   z

# inputs
z

# outputs
)Újoinr_   r`   )rE   r_   r`   s      r$   rL   zExportGraphSignature.__str__A  sa   € Ø—i’iÐAÐA°Ô0@ÐAÑAÔAÑAÔAˆØ—y’yÐ CÐ C°Ô1BÐ CÑ CÔ CÑCÔCˆØJ˜kÐJÐJ¸,ÐJÐJÐJÐJr#   )ra   N)F)&r   r   r   Ú__doc__Úlistr   r!   r   Úpropertyr   r    rk   ro   rr   ru   rx   r0   r1   r2   r|   r~   r   rƒ   r‡   r‹   r�   r’   r•   r˜   r   r›   r�   r    r¢   rF   r±   rº   rL   r"   r#   r$   r   r   ¥   s  € € € € € € ðið iðV �i”Ð Ð Ñ Ø�zÔ"Ð"Ð"Ñ"ð ð
˜J sœOð 
ð 
ð 
ñ „Xð
ð ð
˜ Cœð 
ð 
ð 
ñ „Xð
ð ð
¨
°3¬ð 
ð 
ð 
ñ „Xð
ð ð
¨°C¬ð 
ð 
ð 
ñ „Xð
ð ð
 J¨s¤Oð 
ð 
ð 
ñ „Xð
ð ð"˜Z¨¨e©°dÑ(:¸SÑ(@À4Ñ(GÔHð "ð "ð "ñ „Xð"ð2 ð#˜j¨¨u©°tÑ);¸cÑ)AÀDÑ)HÔIð #ð #ð #ñ „Xð#ð0 ð
 g¨c°3¨hÔ&7ð 
ð 
ð 
ñ „Xð
ð ð
 7¨3°¨8Ô#4ð 
ð 
ð 
ñ „Xð
ð ð
 7¨3°¨8Ô#4ð 
ð 
ð 
ñ „Xð
ð ð
 g¨c°3¨hÔ&7ð 
ð 
ð 
ñ „Xð
ð ð
 w¨s°C¨xÔ'8ð 
ð 
ð 
ñ „Xð
ð ð
°7¸3À¸8Ô3Dð 
ð 
ð 
ñ „Xð
ð ð
¨g°c¸3°hÔ.?ð 
ð 
ð 
ñ „Xð
ð ð)
Ð$;¸dÑ$Bð )
ð )
ð )
ñ „Xð)
ð\ ð W¨S°#¨XÔ%6¸Ñ%=ð ð ð ñ „Xðð ð	#˜j¨œoð 	#ð 	#ð 	#ñ „Xð	#ð ð	$˜z¨#œð 	$ð 	$ð 	$ñ „Xð	$ðð ð ð ð% Cð %¨cð %ð %ð %ð %ð2ð ð ð ðKð Kð Kð Kð Kr#   r   c                 ó>   — ddl m}  |t          | ¦  «        ¦  «        S )zœ
    Creates a mapping where items cannot be added, deleted, or updated.
    NOTE: The immutability is shallow (like tuple is an immutable collection).
    r   )ÚMappingProxyType)ÚtypesrÅ   r]   )ÚitemsrÅ   s     r$   r‚   r‚   G  s-   € ð
 'Ð&Ð&Ð&Ð&Ð&àÐ�D ™KœKÑ(Ô(Ð(r#   ra   c           
      óÄ  — ddl m}m}m}m} ddlm} t          | t          t          t          t          d ¦  «        t          f¦  «        rt          d| ¬¦  «        S d| j        vrt          | › d�¦  «        ‚| j        d         }| j        |v rt#          | j        ¬¦  «        S t%          |¦  «        rt'          | j        ¬¦  «        S t          ||¦  «        rt)          | j        ¬¦  «        S t          ||¦  «        rt+          | j        ¬¦  «        S t          ||¦  «        rt-          | j        ¬¦  «        S t          ||¦  «        r:t/          | j        |                     ¦   «                              ¦   «         ¬	¦  «        S t          ||¦  «        rt/          | j        |j        |¬
¦  «        S t7          t          |¦  «        ¦  «        r1t/          | j        t9          t          |¦  «        ¦  «        |¬
¦  «        S t          |t          t          t          t          t          d ¦  «        f¦  «        rt          | j        |¬¦  «        S t          dt          |¦  «        › d�¦  «        ‚)Nr   )ÚScriptObjectÚSymBoolÚSymFloatÚSymIntr   rH   )r   r/   Úvalz8 is not a constant or a node with a 'val' metadata field)r   )r   r,   )r   r,   r-   z*Encountered an unsupported object of type z0 while writing the metadata for exported program)ÚtorchrÉ   rÊ   rË   rÌ   Ú"torch._library.fake_class_registryr	   rB   r0   r2   r1   rC   r    r   ÚmetarA   r   r'   r   r   r   r   r   r   Ú_typeÚqualified_nameÚscript_class_namer   r
   )ÚnodeÚtoken_namesrÉ   rÊ   rË   rÌ   r	   rÍ   s           r$   Ú_make_argument_specrÖ   Q  sx  € Ø=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ØCÐCÐCÐCÐCÐCå�$��d¥E­4°©:¬:µsÐ;Ñ<Ô<ð 5å R¨tÐ4Ñ4Ô4Ð4à�D”IÐÐÝØÐMÐMÐMñ
ô 
ð 	
ð Œ)�EÔ
€CØ„y�KÐÐÝ $¤)Ð,Ñ,Ô,Ð,Ý	�‰Œð 
Ý 4¤9Ð-Ñ-Ô-Ð-Ý	�C˜Ñ	 Ô	 ð 
Ý 4¤9Ð-Ñ-Ô-Ð-Ý	�C˜Ñ	"Ô	"ð 
Ý T¤YÐ/Ñ/Ô/Ð/Ý	�C˜Ñ	!Ô	!ð 
Ý D¤IÐ.Ñ.Ô.Ð.Ý	�C˜Ñ	&Ô	&ð 
Ý  d¤i¸3¿9º9¹;¼;×;UÒ;UÑ;WÔ;WÐXÑXÔXÐXÝ	�CÐ)Ñ	*Ô	*ð 
Ý Ø” cÔ&;Àcð
ñ 
ô 
ð 	
õ 
�˜S™	œ	Ñ	"Ô	"ð 

Ý Ø”Õ&:½4À¹9¼9Ñ&EÔ&EÐPSð
ñ 
ô 
ð 	
õ 
�C�#�t¥S­%µ°d±´Ð<Ñ	=Ô	=ð 
Ý T¤Y°cÐ:Ñ:Ô:Ð:åð?½¸c¹¼ð ?ð ?ð ?ñ
ô 
ð 	
r#   Úgraph_signaturer   Úgmztorch.fx.GraphModulerr   c           
      ó  ‡‡	‡
‡‡‡‡‡‡‡‡‡‡‡‡— ddl m} | j        d u}t          | j        ¦  «        Š| j        Š| j        Št          | j        ¦  «        Š| j        Š	| j	        Š| j
        Š|r| j        j        ni Š
|r| j        j        ni Š|r| j        j        nd Š| j        Š| j        Šˆfd„|j        j        D ¦   «         }ˆfd„|                     t'          t)          t+          |j        j        ¦  «        ¦  «        ¦  «        j        ¦  «        D ¦   «         }dt.          dt0          fˆˆˆˆfd„Šdt2          d	t.          dt4          fˆ	ˆ
ˆˆˆˆˆˆfd
„Šˆfd„|D ¦   «         }ˆfd„t7          |¦  «        D ¦   «         }t9          ||¬¦  «        S )Nr   )Ú_pytreec                 óF   •— g | ]}|j         d k    ¯t          |‰¦  «        ‘ŒS )rµ   )r¶   rÖ   )rf   rÔ   r    s     €r$   ú
<listcomp>z6_convert_to_export_graph_signature.<locals>.<listcomp>ž  s:   ø€ ð ð ð àØŒ7�mÒ#Ð#õ 	˜D ,Ñ/Ô/à#Ð#Ð#r#   c                 ó0   •— g | ]}t          |‰¦  «        ‘ŒS r"   )rÖ   )rf   rÔ   r¢   s     €r$   rÜ   z6_convert_to_export_graph_signature.<locals>.<listcomp>£  s3   ø€ ð ð ð àõ 	˜D -Ñ0Ô0ðð ð r#   Úinpra   c                 óä  •— t          | t          ¦  «        rt          t          j        | d ¬¦  «        S t          | t
          ¦  «        st          t          j        | d ¬¦  «        S | j        }|‰v rt          t          j        | d ¬¦  «        S |‰v r"t          t          j        | ‰|         ¬¦  «        S |‰v r+t          t          j	        | ‰|         ‰|         ‰v¬¦  «        S t          d|› �¦  «        ‚)N©r;   r<   r=   )r;   r<   r=   r>   zUnknown tensor input kind: )rB   r'   r   r   r9   r   r4   r   r5   r6   rA   )rÞ   r   r‡   rƒ   rr   r|   s     €€€€r$   Úto_input_specz9_convert_to_export_graph_signature.<locals>.to_input_spec¨  s  ø€ Ý�c�=Ñ)Ô)ð 	IÝ¥)¤/°sÀ4ÐHÑHÔHÐHå˜#�~Ñ.Ô.ð 	NÝ¥)Ô"6¸CÈÐMÑMÔMÐMØŒxˆØ�;ÐÐÝ¥)Ô"6¸CÈÐMÑMÔMÐMØÐ)Ð)Ð)ÝÝÔ(ØØ+¨DÔ1ðñ ô ð ð
 Ð&Ð&Ð&ÝÝÔ%ØØ(¨Ô.Ø-¨dÔ3Ð;QÐQð	ñ ô ð õ !Ð!E¸tÐ!EÐ!EÑFÔFÐFr#   Úidxr¯   c                 ó¤  •— t          |t          ¦  «        rt          t          j        |d ¬¦  «        S t          |t
          ¦  «        st          t          j        |d ¬¦  «        S |j        }| t          ‰¦  «        t          ‰¦  «        z   t          ‰	¦  «        z   t          ‰¦  «        z   k     r„|‰v r"t          t          j	        |‰|         ¬¦  «        S |‰v r"t          t          j
        |‰|         ¬¦  «        S |‰	v r"t          t          j        |‰	|         ¬¦  «        S t          d|› �¦  «        ‚|‰
v rt          t          j        |d ¬¦  «        S |‰v r"t          t          j        |‰|         ¬¦  «        S |‰v r"t          t          j        |‰|         ¬¦  «        S |‰k    rt          t          j        |d ¬¦  «        S t          d|› �¦  «        ‚)Nrà   zUnknown tensor mutation kind: zUnknown tensor output kind: )rB   r'   r   r   r9   r   rO   r   r¥   rQ   rR   rU   rA   rS   rT   rP   )râ   r¯   r   Úbuffer_mutationsÚgrad_paramsÚgrad_user_inputsr\   r¢   Úparameter_mutationsÚuser_input_mutationsr~   s      €€€€€€€€r$   Úto_output_specz:_convert_to_export_graph_signature.<locals>.to_output_specÁ  s1  ø€ Ý�a�Ñ'Ô'ð 	IÝ¥:Ô#3¸À4ÐHÑHÔHÐHå˜!�^Ñ,Ô,ð 	OÝ¥:Ô#9¸qÈÐNÑNÔNÐNØŒvˆØ•Ð%Ñ&Ô&­Ð-@Ñ)AÔ)AÑAÅCØ ñE
ô E
ñ 
å�ÑÔñò ð ð Ð'Ð'Ð'Ý!Ý#Ô3ØØ+¨DÔ1ðñ ô ð ð
 Ð,Ð,Ð,Ý!Ý#Ô6ØØ.¨tÔ4ðñ ô ð ð
 Ð-Ð-Ð-Ý!Ý#Ô7ØØ/°Ô5ðñ ô ð õ %Ð%LÀdÐ%LÐ%LÑMÔMÐMà�|Ð#Ð#Ý!¥zÔ'=À1ÈTÐRÑRÔRÐRà˜Ð$Ð$Ý!Ý#Ô9ØØ& tÔ,ðñ ô ð ð
 Ð)Ð)Ð)Ý!Ý#Ô:ØØ+¨DÔ1ðñ ô ð ð
 ˜Ò$Ð$Ý!¥zÔ'=À1ÈTÐRÑRÔRÐRõ %Ð%JÀDÐ%JÐ%JÑKÔKÐKr#   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r"   r"   )rf   rÞ   rá   s     €r$   rÜ   z6_convert_to_export_graph_signature.<locals>.<listcomp>õ  s#   ø€ Ð8Ð8Ð8¨#�=�= Ñ%Ô%Ð8Ð8Ð8r#   c                 ó.   •— g | ]\  }} ‰||¦  «        ‘ŒS r"   r"   )rf   râ   r¯   ré   s      €r$   rÜ   z6_convert_to_export_graph_signature.<locals>.<listcomp>ö  s)   ø€ ÐLÐLÐL©v¨s°A�N�N 3¨Ñ*Ô*ÐLÐLÐLr#   )r_   r`   )Útorch.utilsrÚ   r›   Úsetr|   rƒ   r‡   r~   r‹   r�   r’   Úgradients_to_parameterr[   r\   r    r¢   ÚgraphÚnodesÚtree_leavesr¦   r§   ÚreversedÚargsrM   r   r0   r   Ú	enumerater   )r×   rØ   rr   ÚpytreeÚis_jointÚinputsÚoutputsr_   r`   rä   rå   ræ   r    r‡   rƒ   r\   r¢   rç   rá   ré   rè   r|   r~   s     `      @@@@@@@@@@@@@@r$   Ú"_convert_to_export_graph_signaturerù   {  sg  øøøøøøøøøøøøøøø€ ð
 .Ð-Ð-Ð-Ð-Ð-àÔ1¸Ð=€Hõ �oÔ1Ñ2Ô2€KØ*Ô?ÐØ'Ô9ÐÝ�Ô3Ñ4Ô4€LØ&Ô8ÐØ)Ô>ÐØ*Ô@Ðð ð	ˆÔ*ÔAÐAàð ð ð	ˆÔ*ÔCÐCàð ð ð	ˆÔ*Ô6Ð6àð ð
 #Ô/€LØ#Ô1€Mðð ð ð à”H”Nðñ ô €Fð
ð ð ð à×&Ò&¥t­Dµ¸"¼(¼.Ñ1IÔ1IÑ,JÔ,JÑ'KÔ'KÔ'PÑQÔQðñ ô €Gð
G�<ð G­Ið Gð Gð Gð Gð Gð Gð Gð Gð Gð22L�Cð 2L¥Lð 2LµZð 2Lð 2Lð 2Lð 2Lð 2Lð 2Lð 2Lð 2Lð 2Lð 2Lð 2Lð 2Lð 2Lðh 9Ð8Ð8Ð8°Ð8Ñ8Ô8€KØLÐLÐLÐL½À7Ñ9KÔ9KÐLÑLÔL€LÝ¨KÀlÐSÑSÔSÐSr#   )(ÚdataclassesÚcollections.abcr   r   Úenumr   r   Útypingr   rÏ   r	   Útorch._library.opaque_objectr
   r   Útorch._subclasses.fake_tensorr   rÎ   Ú&torch._functorch._aot_autograd.schemasr   Ú__all__Ú	dataclassr   r'   r   r   r   r   r   rM   r   r   r   r   r   r   r‚   rÖ   rí   r    rù   r"   r#   r$   ú<module>r     sj  ðà Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø Ð Ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ 1Ð 1Ð 1Ð 1Ð 1Ð 1ð ð FØ€L€L€LØEÐEÐEÐEÐEÐEðð ð €ð  Ôðð ð ð ð ñ ô ñ Ôðð Ôðð ð ð ð ñ ô ñ Ôðð Ôðð ð ð ð ñ ô ñ Ôðð Ôðð ð ð ð ñ ô ñ Ôðð Ôðð ð ð ð ñ ô ñ Ôðð Ôð-ð -ð -ð -ð -ñ -ô -ñ Ôð-ð Ôð+ð +ð +ð +ð +ñ +ô +ñ Ôð+ð Øñàñð ñð ñ	ð
 ñð ñð ðð ð ð ð �ñ ô ð ð ÔðRð Rð Rð Rð Rñ Rô Rñ ÔðRð<ð ð ð ð �ñ ô ð ð ÔðFð Fð Fð Fð Fñ Fô Fñ ÔðFð2 Ôðð ð ð ð ñ ô ñ Ôðð Ôð^Kð ^Kð ^Kð ^Kð ^Kñ ^Kô ^Kñ Ôð^KðB)ð )ð )ð'
¨lð '
ð '
ð '
ð '
ðT|TØ%ð|Tàð|Tð   œHð|Tð ð	|Tð |Tð |Tð |Tð |Tð |Tr#   