Ë
    M²jñ‡  ã                   óÊ  — 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 d dl	m
Z
mZ d dlmZmZmZ d dlmZmZ d dlmZ  e«       Ze�eZd dlZd dlmc mZ d dlmZ d dlmZ d d	lm Z  d d
l!m"Z"m#Z#m$Z$ d dl%m&Z&m'Z'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z.  edej^                  ej`                  «      Z1de2de3fd„Z4de2de3fd„Z5ejl                   G d„ d«      «       Z7d?d„Z8de9dejt                  e9   fd„Z;de
g df   fd„Z<e jz                  ded   fd„«       Z> G d„ dej~                  «      Z@ G d„ d«      ZA ed e9«      ZB G d!„ d"ej†                  «      ZD G d#„ d$«      ZE G d%„ d&«      ZF G d'„ d(«      ZG G d)„ d*«      ZH G d+„ d,«      ZI G d-„ d.«      ZJ G d/„ d0«      ZK G d1„ d2eK«      ZL G d3„ d4eK«      ZM G d5„ d6eK«      ZN G d7„ d8eK«      ZO G d9„ d:eK«      ZP G d;„ d<«      ZQ G d=„ d>«      ZRy)@é    N)Úabstractmethod)ÚCallableÚ	Generator)ÚAnyÚNewTypeÚTypeVar)ÚoverrideÚSelf)Úimport_dill)ÚTracingContext)ÚAOTCompiledArtifact)ÚFakeScriptObject)Ú
FakeTensorÚFakeTensorModeÚTensor)ÚMetaConverterÚMetaTensorDescÚMetaTensorDescriber)ÚSymNode)ÚShapeEnv)Úno_dispatchÚ	_SymNodeTÚnameÚreturnc                 ó$   — | j                  d«      S )z£
    An ops filter which allows pickle-safe ops. Pickle-safe ops are built-in
    ones where it will be possible to unpickle on any machine which has PyTorch.
    )ztorch.ops.atenztorch.ops.fbgemm)Ú
startswith©r   s    úV/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/fx/_graph_pickler.pyÚ_ops_filter_safer   '   s   € ð �?‰?ð	
óð ó    Úkeyc                 ó
   — | dvS )z§
    A metadata filter which allows pickle-safe node metadata. These often times contain
    stacks with pointers to unserializable objects, so we clear them out.
    )Úsource_fn_stackÚnn_module_stackÚfwd_source_fn_stack© )r!   s    r   Ú_node_metadata_key_filter_safer'   5   s   € ð
 ÐSÐSÐSr    c                   ó\   — e Zd ZU eZeegef   dz  ed<   e	Z
eegef   dz  ed<   dZeed<   y)ÚOptionsNÚ
ops_filterÚnode_metadata_key_filterFÚignore_raw_node)Ú__name__Ú
__module__Ú__qualname__r   r*   r   ÚstrÚboolÚ__annotations__r'   r+   r,   r&   r    r   r)   r)   =   sJ   … ð 0@€J�˜#˜ ˜Ñ%¨Ñ,Ó?à&ð ˜h¨ u¨d {Ñ3°dÑ:ó ð
 "€O�TÔ!r    r)   c                   ó   — y ©Nr&   r&   r    r   Ú_unpickle_as_noner5   J   s   € Ør    Úreferentc                 ó,   — t        j                  | «      S r4   )ÚweakrefÚref)r6   s    r   Ú_unpickle_as_weakrefr:   N   s   € Ü�;‰;�xÓ Ð r    c                  ó   — d„ S )Nc                   ó   — y r4   r&   r&   r    r   ú<lambda>z+_unpickle_as_dead_weakref.<locals>.<lambda>S   s   � r    r&   r&   r    r   Ú_unpickle_as_dead_weakrefr>   R   s   € ÙÐr    c               #   óô   K  — t         t        j                  v rd –— y t        j                  t         d„ d„ «       	 d –— t        j                  t         «       y # t        j                  t         «       w xY w­w)Nc                 óL   — | j                   | j                  | j                  gd fS r4   )ÚstartÚstopÚstep)Úxs    r   r=   z-patch_pytree_map_over_slice.<locals>.<lambda>]   s   € ˜1Ÿ7™7 A§F¡F¨A¯F©FÐ3°TÐ:€ r    c                 ó   — t        | Ž S r4   )Úslice)rD   Úcs     r   r=   z-patch_pytree_map_over_slice.<locals>.<lambda>]   s   € ÌÐPQÈ€ r    )rF   ÚpytreeÚSUPPORTED_NODESÚ_private_register_pytree_nodeÚ_deregister_pytree_noder&   r    r   Úpatch_pytree_map_over_slicerL   V   sU   è ø€ ä”×&Ñ&Ñ&ÛØä
×(Ñ(ÜÑ:Ñ<Rôð.Ûä×&Ñ&¤uÕ-øŒ×&Ñ&¤uÕ-üs   ‚9A8¼A Á A8ÁA5Á5A8c                   ó&  ‡ — e Zd ZdZddej
                  dedz  ddfˆ fd„Zede	de
edef   e
edf   f   fd	„«       Zede	dedz  fd
„«       Zedde	dedz  defd„«       Zededede	fd„«       Ze	 dddddœde	dddededededz  fd„«       Zˆ xZS )ÚGraphPicklerzb
    GraphPickler is a Pickler which helps pickling fx graph - in particular
    GraphModule.
    NÚfileÚoptionsr   c                 óÌ   •— t         �t        ‰| �	  |d¬«       nt        ‰| �	  |«       |xs
 t        «       | _        t        t        «       «      | _        t        d¬«      | _	        y )NT)ÚbyrefF)Ú	copy_data)
ÚdillÚsuperÚ__init__r)   rP   Ú_UnpickleStateTokenÚobjectÚ_unpickle_stater   Ú_meta_tensor_describer)ÚselfrO   rP   Ú	__class__s      €r   rV   zGraphPickler.__init__m   sV   ø€ ÜÐÜ‰GÑ˜T¨ÐÕ.ä‰GÑ˜TÔ"ØÒ+¤'£)ˆŒô  3´6³8Ó<ˆÔô ':ÀEÔ&JˆÕ#r    Úobj.c                 óf  — t        |t        «      rt        j                  | |«      S t        |t        j
                  j                  «      rt        j                  | |«      S t        |t        j                  j                  t        j                  j                  f«      rt        j                  | |«      S t        |t        «      rt        j                  | |«      S t        |t        j                  «      rt        j                  | |«      S t        |t        j                   j"                  «      rt$        j                  | |«      S t        |t&        «      r=ddlm} t,        j/                  |d«      }|� |t1        |«      «      rt2        S t4        dfS t        |t6        j8                  «      r |«       }|�	t:        |ffS t<        dfS t        |t        j
                  j>                  «      r)| j@                  jB                  rt4        dfS tE        d«      ‚tF        j                  | |«      x}r|S t2        S )Nr   )Úis_opaque_value_typeÚreal_objr&   z#Unexpected raw Node during pickling)$Ú
isinstancer   Ú_TensorPickleDataÚreduce_helperÚtorchÚfxÚGraphModuleÚ_GraphModulePickleDataÚ_opsÚOperatorBaseÚOpOverloadPacketÚ_OpPickleDatar   Ú_ShapeEnvPickleDataÚSymIntÚ_SymNodePickleDataÚ_guardsr   Ú_TracingContextPickleDatar   Útorch._library.opaque_objectr_   rX   Ú__getattribute__ÚtypeÚNotImplementedr5   r8   r9   r:   r>   ÚNoderP   r,   ÚAssertionErrorÚ_TorchNumpyPickleData)r[   r]   r_   r`   r6   Úreduces         r   Úreducer_overridezGraphPickler.reducer_override~   s¸  € ô, �cœ:Ô&Ü$×2Ñ2°4¸Ó=Ð=Ü˜œUŸX™X×1Ñ1Ô2Ü)×7Ñ7¸¸cÓBÐBÜ˜œeŸj™j×5Ñ5´u·z±z×7RÑ7RÐSÔTÜ ×.Ñ.¨t°SÓ9Ð9Ü˜œXÔ&Ü&×4Ñ4°T¸3Ó?Ð?Ü˜œUŸ\™\Ô*Ü%×3Ñ3°D¸#Ó>Ð>Ü˜œUŸ]™]×9Ñ9Ô:Ü,×:Ñ:¸4ÀÓEÐEÜ˜Ô-Ô.ÝIä×.Ñ.¨s°JÓ?ˆHØÐ#Ñ(<¼TÀ(»^Ô(Lä%Ð%ä% rÐ*Ð*Ü˜œWŸ[™[Ô)ñ “uˆHØÐ#Ü,¨x¨kÐ:Ð:ä1°2Ð6Ð6ô ˜#œuŸx™xŸ}™}Ô-Ø—<‘<×/Ò/Ü-¨rÐ2Ð2Ü$Ð%JÓKÐKÜ.×<Ñ<¸TÀ3ÓGÐGˆvÐGØ�ô "Ð!r    c                 ó"   — || j                   u ryy )NÚunpickle_state)rY   )r[   r]   s     r   Úpersistent_idzGraphPickler.persistent_id¿   s   € ð �$×&Ñ&Ñ&Ø#àr    c                 óü   — t        «       5  t        j                  «       5 } | ||«      }|j                  |«       |j	                  «       cddd«       cddd«       S # 1 sw Y   nxY wddd«       y# 1 sw Y   yxY w)z#
        Pickle an object.
        N)rL   ÚioÚBytesIOÚdumpÚgetvalue)Úclsr]   rP   ÚstreamÚpicklers        r   ÚdumpszGraphPickler.dumpsÇ   se   € ô
 )Ó*ñ 	%¬B¯J©J«Lð 	%¸FÙ˜& 'Ó*ˆGØ�L‰L˜ÔØ—?‘?Ó$÷	%÷ 	%÷ 	%ó 	%ú÷ 	%÷ 	%ñ 	%ús"   ‹A2 *AÁ
	A2ÁA&	Á"A2Á2A;ÚdataÚ	fake_modec                 óT  — ddl m} t        «       5   |d«      5  t        |«      }t	        j
                  | «      5 }t        ||«      }|j                  «       cddd«       cddd«       cddd«       S # 1 sw Y   nxY w	 ddd«       n# 1 sw Y   nxY wddd«       y# 1 sw Y   yxY w)z%
        Unpickle an object.
        r   )Údynamo_timedzGraphPickler.loadsN)Útorch._dynamo.utilsr‰   rL   Ú_UnpickleStater~   r   Ú_GraphUnpicklerÚload)r†   r‡   r‰   Ústaterƒ   Ú	unpicklers         r   ÚloadszGraphPickler.loadsÑ   s›   € õ
 	5ä(Ó*ñ 	(©LÐ9MÓ,Nñ 	(Ü" 9Ó-ˆEÜ—‘˜DÓ!ð ( VÜ+¨F°EÓ:�	Ø —~‘~Ó'÷(ð (÷	(÷ 	(ò 	(÷(ð (úð (÷	(÷ 	(ñ 	(ú÷ 	(÷ 	(ñ 	(ús?   ‘	Bš!B	»A3Á	B	Á 	BÁ3A<Á8B	Â 	BÂ	B	ÂBÂB'éP   é2   T)Ú	max_depthÚmax_iter_itemsÚverbosezOptions | Noner“   r”   r•   c          	      ó*  ‡ ‡‡‡‡‡‡‡	‡
‡— ‰xs
 t        «       Š ‰ t        j                  «       ‰«      Š	t        «       Š
dt        ddfˆfd„Šdt
        dt        dz  fˆ ˆfd„Šdt
        dt        dt        dt        dz  fˆˆˆˆˆ	ˆ
ˆfd	„Š ‰|d
d«      }|S )a´  
        Find the first leaf that GraphPickler.dumps cannot serialize and return its path.

        This is GraphPickler-aware and avoids infinite loops by:
          - Traversing builtin containers directly (dict/list/tuple/set) instead of
            exploring their __reduce_ex__ tuples.
          - Only using __reduce_ex__ / __reduce__ for "opaque" objects.
          - Bounding recursion depth and iterator expansion.

        Args:
            obj: The object to attempt to pickle and debug.
            options: Optional Options instance for the GraphPickler.
            max_depth: Maximum recursion depth before stopping traversal.
            max_iter_items: Maximum number of items to materialize from iterators.
            verbose: If True, prints detailed traversal information.

        Returns:
            A string representing the path to the first unpicklable leaf,
            or None if the object is fully picklable.
        Úmsgr   Nc                 ó"   •— ‰rt        | «       y y r4   )Úprint)r—   r•   s    €r   Úlogz%GraphPickler.debug_dumps.<locals>.log  s   ø€ ÙÜ�c•
ð r    Úoc                 ó\   •— 	 ‰j                  | ‰«       y # t        $ r}|cY d }~S d }~ww xY wr4   )r…   Ú	Exception)r›   Úer‚   rP   s     €€r   Úfail_excz*GraphPickler.debug_dumps.<locals>.fail_exc  s.   ø€ ðØ—	‘	˜!˜WÔ%ØøÜò Ø•ûðús   ƒ –	+Ÿ& +¦+ÚpathÚdepthc           	      ó`
  •— |‰kD  r" ‰d|z  › d|› dt        | «      › d�«       |dz   S t        | «      }|‰v ry ‰j                  |«       d|z  } ‰|› d|› dt        | «      › d�«        ‰| «      }|€ ‰|› d�«       y  ‰|› dt        | «      › d	|› �«       t        | t        «      r3| j                  «       D ]  \  }} ‰||› d
|›d�|dz   «      }|sŒ|c S  |S t        | t        t        f«      r.t        | «      D ]  \  }	} ‰||› d
|	› d�|dz   «      }|sŒ|c S  |S t        | t        t        f«      r.t        | «      D ]  \  }	} ‰||› d
|	› d�|dz   «      }|sŒ|c S  |S t        | d«      r£t        | «      j                  j                  d«      r	 t        t        j                  t!        | «      ‰dz   «      «      }
|
�Qt%        |
«      ‰kD  r ‰|› d‰› d‰› �«       |
d ‰ }
t        |
«      D ]  \  }	} ‰||› d
|	› d�|dz   «      }|sŒ|c S  |S 	 ‰j'                  | «      } ‰|› dt        |«      › �«       |t(        urG|\  }} ‰|› dt%        |«      › �«       t        |«      D ]  \  }	} ‰||› d|	› d�|dz   «      }|sŒ|c S  t+        j,                  | «      rUt+        j.                  | «      D ];  }	 t1        | |j2                  «      } ‰||› d|j2                  › �|dz   «      }|sŒ9|c S  |S t1        | dd «      }t5        |«      r2	  |«       } ‰|› dt        |«      › �«        ‰||dz   |dz   «      }|r|S t        | d«      r;t7        | «      j                  «       D ]  \  }} ‰||› d|› �|dz   «      }|sŒ|c S  |S t        | d«      rB| j8                  D ]1  }t        | |«      sŒ ‰t1        | |«      |› d|› �|dz   «      }|sŒ/|c S  |S d }	 t        | d«      r6| j;                  t<        j>                  «      } ‰|› dt        |«      › �«       n2t        | d«      r&| jA                  «       } ‰|› dt        |«      › �«       t        |t        «      r/t        |«      D ]!  \  }	}|€Œ	 ‰||› d!|	› d�|dz   «      }|sŒ|c S  |S # t"        $ r d }
Y �ŒÙw xY w# t"        $ r} ‰|› d|› �«       |cY d }~S d }~ww xY w# t"        $ r |› d|j2                  › �cY c S w xY w# t"        $ r} ‰|› d|› �«       |dz   cY d }~S d }~ww xY w# t"        $ r} ‰|› d |› �«       |cY d }~S d }~ww xY w)"Nz  zDepth limit at z (ú)z (depth_limit)z	Walking: u   âœ“ Pickles fine alonez[FAIL pickle] z -> ú[ú]é   Ú__iter__Úiteratoru   âš  Iterator has more than z items, only checking first zreducer_override -> u   ðŸ’¥ reducer_override crashed: zUsing custom reduce, args=z.reduce_args[ú.Ú__getstate__z__getstate__ -> u   ðŸ’¥ __getstate__ failed: z.__getstate__()Ú__dict__Ú	__slots__Ú__reduce_ex__z__reduce_ex__ -> Ú
__reduce__z__reduce__ -> u   ðŸ’¥ reduce protocol failed: z.__reduce__[)!rs   ÚidÚaddra   ÚdictÚitemsÚlistÚtupleÚ	enumerateÚsetÚ	frozensetÚhasattrr-   ÚendswithÚ	itertoolsÚisliceÚiterr�   Úlenry   rt   ÚdataclassesÚis_dataclassÚfieldsÚgetattrr   ÚcallableÚvarsr¬   r­   ÚpickleÚHIGHEST_PROTOCOLr®   ) r›   r    r¡   r!   Úindentrž   ÚkÚvÚbadÚiÚprefixÚredÚe2Ú_ÚargsÚaÚfÚgetstaterŽ   Úe3r   ÚslotÚreduce_tupleÚe4ÚpartrŸ   rš   r“   r”   r„   ÚvisitedÚwalks                             €€€€€€€r   rÙ   z&GraphPickler.debug_dumps.<locals>.walk  s,  ø€ Ø�yÒ Ù�t˜e‘|�n O°D°6¸¼DÀ»G¸9ÀAÐFÔGØÐ.Ñ.Ð.ä�Q“%ˆCØ�g‰~ØØ�K‰K˜Ôà˜E‘\ˆFÙ�6�(˜) D 6¨¬D°«G¨9°AÐ6Ô7á˜“ˆAØˆyÙ�v�hÐ4Ð5Ô6ØÙ�6�(˜.¬¨a«¨	°°a°SÐ9Ô:ô ˜!œTÔ"ØŸG™G›Iò #‘D�A�qÙ˜q T F¨!¨A¨5°Ð"2°E¸A±IÓ>�CÚØ"š
ð#ð �ä˜!œd¤E˜]Ô+Ü% a›Lò #‘D�A�qÙ˜q T F¨!¨A¨3¨a .°%¸!±)Ó<�CÚØ"š
ð#ð �ä˜!œc¤9Ð-Ô.Ü% a›Lò #‘D�A�qÙ˜q T F¨!¨A¨3¨a .°%¸!±)Ó<�CÚØ"š
ð#ð �ô �q˜*Ô%¬$¨q«'×*:Ñ*:×*CÑ*CÀJÔ*Oð"Ü!¤)×"2Ñ"2´4¸³7¸NÈQÑ<NÓ"OÓP�Fð Ð%Ü˜6“{ ^Ò3ÙØ%˜hÐ&AÀ.ÐAQð R3Ø3AÐ2BðDôð "(¨¨Ð!8˜Ü )¨&Ó 1ò '™˜˜1Ù" 1¨¨¨a°¨s°! n°e¸a±iÓ@˜ÚØ#&šJð'ð  �KðØ×.Ñ.¨qÓ1�Ù�v�hÐ2´4¸³9°+Ð>Ô?ð
 œ.Ñ(Ø‘��4Ù�v�hÐ8¼¸T»¸ÐDÔEÜ% d›Oò #‘D�A�qÙ˜q T F¨-¸°s¸!Ð"<¸eÀa¹iÓH�CÚØ"š
ð#ô ×'Ñ'¨Ô*Ü$×+Ñ+¨AÓ.ò #�Að2Ü# A q§v¡vÓ.˜ñ ˜q T F¨!¨A¯F©F¨8Ð"4°e¸a±iÓ@�CÚØ"š
ð#ð �ô ˜q .°$Ó7ˆHÜ˜Ô!ð4Ù$›J�EÙ˜6˜(Ð"2´4¸³;°-Ð@ÔAñ ˜5 $Ð):Ñ":¸EÀA¹IÓF�ÙØ�Jä�q˜*Ô%Ü# A›wŸ}™}›ò #‘G�D˜!Ù˜q T F¨!¨D¨6Ð"2°E¸A±IÓ>�CÚØ"š
ð#ð �ä�q˜+Ô&ØŸK™Kò '�DÜ˜q $Õ'Ù"¤7¨1¨dÓ#3¸°v¸Q¸t¸fÐ5EÀuÈqÁyÓQ˜ÚØ#&šJð	'ð
 �ð  ˆLð	Ü˜1˜oÔ.Ø#$§?¡?´6×3JÑ3JÓ#K�LÙ˜6˜(Ð"3´D¸Ó4FÐ3GÐHÕIÜ˜Q Ô-Ø#$§<¡<£>�LÙ˜6˜( .´°lÓ1CÐ0DÐEÔFô
 ˜,¬Ô.Ü(¨Ó6ò #‘G�A�tØ�|Ø Ù˜t¨ v¨\¸!¸¸AÐ%>ÀÈÁ	ÓJ�CÚØ"š
ð#ð ˆKøôy !ò "Ø!“Fð"ûô& ò Ù�v�hÐ=¸b¸TÐBÔCØ•ûðûô" %ò 2Ø"&  q¨¯©¨Ð1Ô1ð2ûô !ò 4Ù˜6˜(Ð"<¸R¸DÐAÔBØÐ"3Ñ3Õ3ûð4ûô> ò Ù�v�hÐ;¸B¸4Ð@ÔAØ•ûðús   Æ+R
 È'R Ê7SÌS# ÏA4T Ò
RÒRÒ	R>Ò%R9Ò3R>Ò9R>ÓS ÓS Ó#	TÓ,TÓ=TÔTÔ	T-ÔT(Ô"T-Ô(T-Úrootr   )r)   r~   r   r¶   r0   r   ÚBaseExceptionÚint)r‚   r]   rP   r“   r”   r•   rÉ   rŸ   rš   r„   rØ   rÙ   s   ` ```` @@@@@r   Údebug_dumpszGraphPickler.debug_dumpsÞ   sœ   ÿù€ ð< Ò&œW›YˆÙ”b—j‘j“l GÓ,ˆä›Eˆð	”Sð 	˜Tõ 	ð	œð 	¤°Ñ 4ö 	ðI	”Cð I	œsð I	¬3ð I	´3¸±:÷ I	ó I	ñV �3˜ Ó"ˆØˆ
r    r4   )r-   r.   r/   Ú__doc__r~   r   r)   rV   r	   rX   r´   r   r   ry   r0   r|   ÚclassmethodÚbytesr…   Ústaticmethodr   r�   rÜ   r1   rÝ   Ú__classcell__©r\   s   @r   rN   rN   g   sZ  ø„ ññ
K˜RŸZ™Zð K°'¸D±.ð KÈDõ Kð" ð="Øð="à	ˆx˜˜S˜Ñ! 5¨¨c¨¡?Ð2Ñ	3ò="ó ð="ð~ ð ð ¨C°$©Jò ó ðð ñ%˜ð %¨°4©ð %À5ò %ó ð%ð ð
(�Eð 
( nð 
(¸ò 
(ó ð
(ð ð %)ðyð
 Ø Øòyàðyð "ðyð
 ðyð ðyð ðyð 
ˆt‰òyó ôyr    rN   c                   ó   — e Zd Zdeddfd„Zy)r‹   r‡   r   Nc                 ó0   — || _         t        «       | _        y r4   )r‡   r   Úmeta_converter)r[   r‡   s     r   rV   z_UnpickleState.__init__œ  s   € Ø"ˆŒÜ9F»ˆÕr    )r-   r.   r/   r   rV   r&   r    r   r‹   r‹   ›  s   „ ðI .ð I°Tô Ir    r‹   rW   c                   óZ   ‡ — e Zd Zdej                  deddfˆ fd„Zededefd„«       Z	ˆ xZ
S )rŒ   rƒ   r{   r   Nc                 ó2   •— t         ‰| �  |«       || _        y r4   )rU   rV   rY   )r[   rƒ   r{   r\   s      €r   rV   z_GraphUnpickler.__init__¨  s   ø€ Ü‰Ñ˜Ô Ø-ˆÕr    Úpidc                 óN   — |dk(  r| j                   S t        j                  d«      ‚)Nr{   zInvalid persistent ID)rY   rÄ   ÚUnpicklingError)r[   ré   s     r   Úpersistent_loadz_GraphUnpickler.persistent_load¬  s+   € ð Ð"Ò"Ø×'Ñ'Ð'ä×(Ñ(Ð)@ÓAÐAr    )r-   r.   r/   r~   r   r‹   rV   r	   rX   rì   râ   rã   s   @r   rŒ   rŒ   §  sG   ø„ ð.˜rŸz™zð .¸>ð .Èdõ .ð ðB 6ð B¨fò Bó ôBr    rŒ   c                   ó‚   — e Zd ZU eeef   ed<   edede	de
eeege	f   e
eef   f   fd„«       Zde	ddfd„Zd	ede	fd
„Zy)rl   r†   r„   r]   r   c                 óB   — | j                    | |«      |j                  ffS r4   ©ÚunpicklerY   ©r‚   r„   r]   s      r   rc   z!_ShapeEnvPickleData.reduce_helper¸  s"   € ð �|‰|™c #›h¨×(?Ñ(?Ð@Ð@Ð@r    ÚenvNc                 ó¤   — |j                   rt        d«      ‚|j                  j                  «       | _        | j                  d= | j                  d= y )Nz4Translation validation must be disabled for picklingÚtracked_fakesÚfake_tensor_cache)Ú_translation_validation_enabledrv   r«   Úcopyr†   )r[   rò   s     r   rV   z_ShapeEnvPickleData.__init__À  sF   € ð ×.Ò.Ü Ð!WÓXÐXØ—L‘L×%Ñ%Ó'ˆŒ	Ø�I‰I�oÐ&Ø�I‰IÐ)Ñ*r    r{   c                 ó$  — |j                   st        d«      ‚|j                   j                  st        d«      ‚| j                  j	                  «       D ]&  \  }}t        |j                   j                  ||«       Œ( |j                   j                  S )Nz#unpickle_state.fake_mode is not setz-unpickle_state.fake_mode.shape_env is not set)r‡   rv   Ú	shape_envr†   r²   Úsetattr)r[   r{   rÇ   rÈ   s       r   rð   z_ShapeEnvPickleData.unpickleÊ  s|   € à×'Ò'Ü Ð!FÓGÐGØ×'Ñ'×1Ò1Ü Ð!PÓQÐQà—I‘I—O‘OÓ%ò 	>‰DˆAˆqÜ�N×,Ñ,×6Ñ6¸¸1Õ=ð	>ð ×'Ñ'×1Ñ1Ð1r    )r-   r.   r/   r±   r0   rX   r2   rß   rN   r   r´   r   r
   r‹   rW   rc   rV   rð   r&   r    r   rl   rl   µ  s�   … Ø
ˆs�Fˆ{Ñ
ÓàðAØ"ðAØ)1ðAà	Ø�$˜Ð'¨Ð1Ñ2°E¸$Ð@SÐ:SÑ4TÐTñ
òAó ðAð+˜Hð +¨ó +ð
2 ~ð 
2¸(ô 
2r    rl   c                   óŒ   — e Zd Zedededeeee	gef   eee
f   f   fd„«       Zdeddfd„Zdefd„Zd	e	dej                   fd
„Zy)rn   r„   r]   r   c                 óÄ   —  | |j                   «      |j                  f}t        |t        j                  «      rt
        j                  |fS t        dt        |«      › �«      ‚)NzUnhandled SymNode type )	ÚnoderY   ra   rd   rm   rn   Úunpickle_sym_intÚNotImplementedErrorrs   )r‚   r„   r]   rÏ   s       r   rc   z _SymNodePickleData.reduce_helperØ  sR   € ñ �C—H‘H“˜w×6Ñ6Ð7ˆÜ�cœ5Ÿ<™<Ô(ä%×6Ñ6¸Ð<Ð<ä%Ð(?ÄÀSÃ	¸{Ð&KÓLÐLr    rý   Nc                 óŒ   — |j                   | _        |j                  | _        |j                  | _        |j                  | _        y r4   )Ú_exprÚexprrù   ÚpytypeÚ_hintÚhint)r[   rý   s     r   rV   z_SymNodePickleData.__init__ç  s.   € Ø—J‘JˆŒ	ØŸ™ˆŒØ—k‘kˆŒØ—J‘Jˆ�	r    c                 óœ   — | j                   €t        d«      ‚t        | j                  | j                   | j                  | j
                  «      S )Nzshape_env is None)rù   rv   r   r  r  r  )r[   s    r   Ú_to_sym_nodez_SymNodePickleData._to_sym_nodeí  s9   € Ø�>‰>Ð!Ü Ð!4Ó5Ð5Ü�t—y‘y $§.¡.°$·+±+¸t¿y¹yÓIÐIr    r{   c                 óH   — t        j                  | j                  «       «      S r4   )rd   rm   r  ©r[   r{   s     r   rþ   z#_SymNodePickleData.unpickle_sym_intò  s   € Ü�|‰|˜D×-Ñ-Ó/Ó0Ð0r    )r-   r.   r/   rß   rN   r   r´   r   r
   r‹   rW   rc   r   rV   r  rd   rm   rþ   r&   r    r   rn   rn   ×  s”   „ ØðMàðMð ðMð 
Ø�$˜Ð'¨Ð2Ñ3°U¸4ÐATÐ;TÑ5UÐUñ
ò	Mó ðMð˜Wð ¨ó ðJ˜gó Jð
1¨~ð 1À%Ç,Á,ô 1r    rn   c                   ó‚   — e Zd ZU ee   ed<   edededee	e
egef   ee
ef   f   fd„«       Zdededdfd	„Zd
edefd„Zy)rb   Úmetadatar„   r]   r   c                 óX   — | j                    | |j                  |«      |j                  ffS r4   )rð   rZ   rY   rñ   s      r   rc   z_TensorPickleData.reduce_helperù  s3   € ð �|‰|Ù�×.Ñ.°Ó4Ø×#Ñ#ð
ð 
ð 	
r    Ú	describerÚtNc           
      óÒ  — |j                  |«      }|j                  rYt        |j                  t        j                  j
                  j                  «      s!t        dt        |j                  «      › �«      ‚t        j                  |d ¬«      | _        t        j                  D ]B  }|dv rŒt        | j                  |«      €Œt        d|› dt        | j                  |«      › �«      ‚ y )Nz3view_func must be None or _FakeTensorViewFunc, got ©r‡   )r‡   Ú	view_funcz
not None: z: )Údescribe_tensorr  ra   rd   Ú_subclassesÚ
meta_utilsÚ_FakeTensorViewFuncrv   rs   r¾   Úreplacer  r   Ú_UNSERIALIZABLErÁ   )r[   r  r  r  rÇ   s        r   rV   z_TensorPickleData.__init__  sÛ   € ð
 ×,Ñ,¨QÓ/ˆð ×Ò¤jØ×Ñ¤× 1Ñ 1× <Ñ <× PÑ Pô'
ô !ØEÜ˜×*Ñ*Ó+Ð,ð.óð ô $×+Ñ+¨HÀÔEˆŒô  ×/Ñ/ò 	TˆAØÐ.Ñ.ØÜ�t—}‘} aÓ(Ñ4Ü$ z°!°°B´w¸t¿}¹}ÈaÓ7PÐ6QÐ%RÓSÐSñ		Tr    r{   c                 óì  ‡— t        j                  | j                  ‰j                  ¬«      }|j                  rN|j
                  �Bt        j                  |j
                  ‰j                  ¬«      }t        j                  ||¬«      }dt        g t        j                  f   dt        j                  t        z  dt        fˆfd„}‰j                  j                  |‰j                  j                  |d d «      S )Nr  )ÚbaseÚmake_meta_tÚdevicer   c                 ó|   •— t        «       5  t        ‰j                   | «       |«      cd d d «       S # 1 sw Y   y xY wr4   )r   r   r‡   )r  r  r{   s     €r   Ú	with_fakez-_TensorPickleData.unpickle.<locals>.with_fake,  s8   ø€ ô “ñ Ü!Ø"×,Ñ,Ù“Màó	÷÷ ò ús   Œ2²;)r¾   r  r  r‡   Úis_viewr  r   rd   r   r  r0   r   ræ   Úmeta_tensorrù   )r[   r{   r  Únew_baser  s    `   r   rð   z_TensorPickleData.unpickle  sÕ   ø€ ä×&Ñ&Ø�M‰MØ$×.Ñ.ô
ˆð ×Ò §¡Ð 9Ü"×*Ñ*Ø—‘Ø(×2Ñ2ôˆHô #×*Ñ*¨8¸(ÔCˆHð		Ü! "¤e§l¡lÐ"2Ñ3ð		Ü=B¿\¹\ÌCÑ=Oð		äõ		ð ×,Ñ,×8Ñ8ØØ×$Ñ$×.Ñ.ØØØó
ð 	
r    )r-   r.   r/   r   r   r2   rß   rN   r´   r   r
   r‹   rW   rc   r   r   rV   rð   r&   r    r   rb   rb   ö  s�   … Ø˜ZÑ(Ó(àð
Ø"ð
Ø)3ð
à	Ø�$˜Ð'¨Ð3Ñ4°e¸DÐBUÐ<UÑ6VÐVñ
ò
ó ð
ðTÐ"5ð T¸&ð TÀTó Tð2 
 ~ð  
¸*ô  
r    rb   c                   ó    — e Zd Zedededeeee	gef   eee
f   f   dz  fd„«       Zdededdfd„Zd	e	ded
ef   fd„Zedededz  fd„«       Zy)rw   r„   r]   r   Nc                 ó^   — | j                  |«      x}r| j                  ||j                  ffS y r4   )Úfrom_objectrð   rY   )r‚   r„   r]   r†   s       r   rc   z#_TorchNumpyPickleData.reduce_helperA  s5   € ð —?‘? 3Ó'Ð'ˆ4Ð'Ø—L‘L 4¨×)@Ñ)@Ð"AÐBÐBàr    Úmodr   c                 ó    — || _         || _        y r4   )r$  r   )r[   r$  r   s      r   rV   z_TorchNumpyPickleData.__init__O  s   € ØˆŒØˆ�	r    r{   .c                 óÒ   — t        t        j                  | j                  «      | j                  «      }t
        j                  j                  j                  j                  «       |   S r4   )
rÁ   Ú	importlibÚimport_moduler$  r   rd   Ú_dynamoÚ	variablesÚmiscÚget_np_to_tnp_map)r[   r{   Únps      r   rð   z_TorchNumpyPickleData.unpickleS  sE   € Ü”Y×,Ñ,¨T¯X©XÓ6¸¿	¹	ÓBˆÜ�}‰}×&Ñ&×+Ñ+×=Ñ=Ó?ÀÑCÐCr    Útnpc                 ó‚  — t        |«      sy t        j                  j                  j                  j                  «       }	 |j                  |«      x}sy 	 t        |dd «      x}sd}t        |dd «      x}sy |t        t        j                  |«      |«      k7  rt        d|› d|› �«      ‚ | ||«      S # t        $ r Y y w xY w)Nr.   Únumpyr-   zNumpy object mismatch for r©   )rÂ   rd   r)  r*  r+  Úget_tnp_to_np_mapÚgetÚ	TypeErrorrÁ   r'  r(  rv   )r‚   r.  Ú	tnp_to_npr-  r$  r   s         r   r#  z!_TorchNumpyPickleData.from_objectW  sØ   € ä˜Œ}Øä—M‘M×+Ñ+×0Ñ0×BÑBÓDˆ	ð	Ø#Ÿ-™-¨Ó,Ð,�BÐ,Øð -ô
 ˜r <°Ó6Ð6�Ð6ØˆCä  J°Ó5Ð5�Ð5Øð ”œ×0Ñ0°Ó5°tÓ<Ò<Ü Ø,¨S¨E°°4°&Ð9óð ñ �3˜‹~Ðøô ò 	Ùð	ús   Á B2 Â2	B>Â=B>)r-   r.   r/   rß   rN   rX   r´   r   r
   r‹   rW   rc   r0   rV   rð   r#  r&   r    r   rw   rw   @  s¾   „ ØðØ"ðØ)/ðð 	Ø�d˜NÐ+¨VÐ3Ñ4°e¸DÐBUÐ<UÑ6VÐVñ	
ð ñ	òó ðð˜Cð  sð ¨tó ðD ~ð D¸(À3ÈÀ;Ñ:Oó Dð ð˜fð ¨°©ò ó ñr    rw   c                   ó  — e Zd Zededej                  j                  dee	e
egej                  j                  f   ee
ef   f   fd„«       Zdej                  j                  deddfd„Zd	edej                  j                  fd
„Zy)rg   r„   r]   r   c                 óX   — | j                    | ||j                  «      |j                  ffS r4   )rð   rP   rY   rñ   s      r   rc   z$_GraphModulePickleData.reduce_helpers  s1   € ð �|‰|Ù��W—_‘_Ó%Ø×#Ñ#ð
ð 
ð 	
r    ÚgmrP   Nc                 ót  — t        |t        j                  j                  j                  «      r|j                  «       }n|j                  «       }t        |d«      r|j                  «       | _	        n|j                  j                  «       | _	        | j                  d= t        |j                  |«      | _        y )Nrª   Ú_graph)ra   rd   re   Ú_lazy_graph_moduleÚ_LazyGraphModuleÚ_real_recompileÚ	recompiler¸   rª   Úgm_dictr«   r÷   Ú_GraphPickleDatar9  Úgraph)r[   r7  rP   Ú_python_codes       r   rV   z_GraphModulePickleData.__init__  s   € ä�bœ%Ÿ(™(×5Ñ5×FÑFÔGØ×-Ñ-Ó/‰LàŸ<™<›>ˆLÜ�2�~Ô&ØŸ?™?Ó,ˆD�LàŸ;™;×+Ñ+Ó-ˆDŒLØ�L‰L˜Ð"Ü% b§i¡i°Ó9ˆ�
r    r{   c                 óì   — t         j                  j                  j                  t         j                  j                  «      }| j                  |_        | j                  j                  ||«      |_        |S r4   )	rd   re   rf   Ú__new__r>  r«   r@  rð   r9  )r[   r{   r7  s      r   rð   z_GraphModulePickleData.unpickleŒ  sN   € Ü�X‰X×!Ñ!×)Ñ)¬%¯(©(×*>Ñ*>Ó?ˆØ—l‘lˆŒØ—J‘J×'Ñ'¨¨NÓ;ˆŒ	Øˆ	r    )r-   r.   r/   rß   rN   rd   re   rf   r´   r   r
   r‹   rW   rc   r)   rV   rð   r&   r    r   rg   rg   r  s«   „ Øð	
Ø"ð	
Ø).¯©×)=Ñ)=ð	
à	Ø�$˜Ð'¨¯©×)=Ñ)=Ð=Ñ>ØˆdÐ'Ð'Ñ(ð	*ñ
ò	
ó ð	
ð:˜5Ÿ8™8×/Ñ/ð :¸'ð :Àdó :ð ~ð ¸%¿(¹(×:NÑ:Nô r    rg   c                   ó  — e Zd Zdej                  j
                  deej                  j
                  d f   deddfd„Zdej                  j                  ded ej                  j
                  f   de
dej                  j
                  fd	„Zy)
Ú_NodePickleDatarý   ÚmappingrP   r   Nc                 óf  ‡— t        j                  t        j                  j                  ˆfd„|j
                  «      | _        t        j                  t        j                  j                  ˆfd„|j                  «      | _        |j                  | _        |j                  | _        t        j                  |j                  |«      | _        |j                  | _        |j                  j                  «       D ��ci c]%  \  }}|j                  r|j                  |«      r||“Œ' c}}| _        y c c}}w )Nc                 ó   •— ‰|    S r4   r&   ©ÚnrF  s    €r   r=   z*_NodePickleData.__init__.<locals>.<lambda>š  s   ø€ À'È!Á*€ r    c                 ó   •— ‰|    S r4   r&   rI  s    €r   r=   z*_NodePickleData.__init__.<locals>.<lambda>œ  s   ø€  W¨Q¡Z€ r    )rH   Útree_map_onlyrd   re   ru   rÏ   Úkwargsr   Úoprk   rÄ   Útargetrs   Úmetar²   r+   )r[   rý   rF  rP   rÇ   rÈ   s     `   r   rV   z_NodePickleData.__init__”  sÖ   ø€ ô ×(Ñ(¬¯©¯©Ó8LÈdÏiÉiÓXˆŒ	Ü×*Ñ*Ü�H‰H�M‰MÓ/°·±ó
ˆŒð —I‘IˆŒ	Ø—'‘'ˆŒÜ#×*Ñ*¨4¯;©;¸Ó@ˆŒð —I‘IˆŒ	ð Ÿ	™	Ÿ™Ó)÷
á��1à×4Ò4Ø×3Ñ3°AÔ6ð	 ˆq‰Dó
ˆ�	ùó 
s   Ã9*D-r@  r{   c                 óÌ  ‡— t        j                  t        ˆfd„| j                  «      }t        j                  t        ˆfd„| j                  «      }| j
                  j                  |«      }t        |«      s't        |t        «      st        dt        |«      › �«      ‚|j                  | j                  |||| j                  | j                  «      }| j                  |_        |S )Nc                 ó   •— ‰|    S r4   r&   rI  s    €r   r=   z*_NodePickleData.unpickle.<locals>.<lambda>·  s   ø€ ¸wÀq¹z€ r    c                 ó   •— ‰|    S r4   r&   rI  s    €r   r=   z*_NodePickleData.unpickle.<locals>.<lambda>¹  s   ø€  w¨q¡z€ r    z$target must be callable or str, got )rH   rL  rE  rÏ   rM  rO  rð   rÂ   ra   r0   rv   rs   Úcreate_noderN  r   rP  )r[   r@  rF  r{   rÏ   rM  rO  rý   s     `     r   rð   z_NodePickleData.unpickle±  s®   ø€ ô ×#Ñ#¤OÓ5IÈ4Ï9É9ÓUˆÜ×%Ñ%ÜÓ1°4·;±;ó
ˆð —‘×%Ñ% nÓ5ˆÜ˜Ô ¤J¨v´sÔ$;Ü Ð#GÌÈVËÀ~Ð!VÓWÐWØ× Ñ  §¡¨&°$¸ÀÇ	Á	È4Ï9É9ÓUˆØ—I‘IˆŒ	Øˆr    )r-   r.   r/   rd   re   ru   r±   r)   rV   ÚGraphr‹   rð   r&   r    r   rE  rE  “  s–   „ ð
à�h‰h�m‰mð
ð �e—h‘h—m‘mÐ%6Ð6Ñ7ð
ð ð	
ð
 
ó
ð:à�x‰x�~‰~ðð Ð'¨¯©¯©Ð6Ñ7ðð 'ð	ð
 
�‰�‰ôr    rE  c            
       óê   — e Zd Zedededeeegef   ee	   f   fd„«       Z
edededd fd„«       Zededed	   ed
   z  dedd fd„«       Zededefd„«       Zededefd„«       Zedededefd„«       Zy)rk   r„   rN  r   c                 ól   — | j                  ||j                  «      }|j                  |j                  ffS r4   )rÄ   rP   rð   rY   )r‚   r„   rN  Úresults       r   rc   z_OpPickleData.reduce_helperÄ  s0   € ð —‘˜B §¡Ó0ˆØ—‘ '×"9Ñ"9Ð!;Ð<Ð<r    rP   c                 ó  — t        |t        «      rt        |«      S t        t        |dd «      t        «      rUt        |d«      st        d«      ‚|j                  }t        |t        «      st        dt        |«      › �«      ‚t        |«      S t        j                  j                  j                  |«      }t        |t        j                  j                  «      r| j!                  |t"        |«      S t        |t        j                  j$                  «      r| j!                  |t&        |«      S |j)                  t*        j,                  «      r!|j/                  dd«      \  }}t+        ||«      S t1        dt        |«      › d|› d|› �«      ‚)NÚ__wrapped__z op missing __wrapped__ attributez"Expected AOTCompiledArtifact, got r©   r¦   zTARGET: ú )ra   r0   Ú_OpStrPickleDatarÁ   r   r¸   rv   rZ  rs   Ú_OpPrecompiledPickleDatard   re   ru   Ú_pretty_print_targetrh   Ú
OpOverloadÚ
_pickle_opÚ_OpOverloadPickleDatarj   Ú_OpOverloadPacketPickleDatar   Ú_OpFunctionPickleDataÚSUPPORTED_ROOTSÚsplitrÿ   )r‚   rN  rP   Úartifactr   rÚ   Údetails          r   rÄ   z_OpPickleData.pickleË  s>  € ä�bœ#ÔÜ# BÓ'Ð'ä”g˜b -°Ó6Ô8KÔLÜ˜2˜}Ô-Ü$Ð%GÓHÐHØ—~‘~ˆHÜ˜hÔ(;Ô<Ü$Ø8¼¸h»Ð8HÐIóð ô ,¨HÓ5Ð5ä�x‰x�}‰}×1Ñ1°"Ó5ˆä�bœ%Ÿ*™*×/Ñ/Ô0Ø—>‘> $Ô(=¸wÓGÐGÜ˜œEŸJ™J×7Ñ7Ô8Ø—>‘> $Ô(CÀWÓMÐMØ�_‰_Ô2×BÑBÔCØŸ:™: c¨1Ó-‰LˆD�&Ü(¨¨vÓ6Ð6ô &¨´°b³°
¸!¸B¸4¸qÀÀÐ&GÓHÐHr    r   Údataclsra  rb  c                 ó`   — |j                   x}r || «      sddlm}  |d| › �«      ‚ || «      S )Nr   )ÚBypassFxGraphCachez"Unable to pickle non-standard op: )r*   Útorch._inductor.codecacherj  )r   rh  rP   r*   rj  s        r   r`  z_OpPickleData._pickle_opç  s<   € ð "×,Ñ,Ð,ˆJÐ,±jÀÔ6FÝDá$Ð'IÈ$ÈÐ%PÓQÐQÙ�t‹}Ðr    r{   c                  ó   — y r4   r&   r	  s     r   rð   z_OpPickleData.unpickleó  s   € àr    c                 óŒ   — d|v r4|j                  dd«      \  }}t        «       |   }| j                  ||«      S t        «       |   S )zC
        Like `globals()[name]` but supports dotted names.
        r©   r¦   )re  ÚglobalsÚ_getattr_by_name)r‚   r   r$  ÚrestrÚ   s        r   Ú_lookup_global_by_namez$_OpPickleData._lookup_global_by_name÷  sI   € ð
 �$‰;ØŸ
™
 3¨Ó*‰IˆC�Ü“9˜S‘>ˆDØ×'Ñ'¨¨dÓ3Ð3ä“9˜T‘?Ð"r    rÚ   c                 ón   — d|v r&|j                  dd«      \  }}t        | |«      } d|v rŒ&t        | |«      S )zG
        Like `getattr(root, name)` but supports dotted names.
        r©   r¦   )re  rÁ   )rÚ   r   r$  s      r   ro  z_OpPickleData._getattr_by_name  sC   € ð
 �T‰kØŸ
™
 3¨Ó*‰IˆC�Ü˜4 Ó%ˆDð �TŠkô �t˜TÓ"Ð"r    N)r-   r.   r/   rß   rN   rX   r´   r   r‹   rW   rc   r)   rÄ   rá   r0   rs   r`  r   rð   rq  ro  r&   r    r   rk   rk   Ã  s-  „ Øð=Ø"ð=Ø(.ð=à	ˆx˜Ð(¨&Ð0Ñ1°5Ð9LÑ3MÐMÑ	Nò=ó ð=ð ðI˜ð I¨ð I°_ò Ió ðIð6 ð	Øð	àÐ-Ñ.°Ð6SÑ1TÑTð	ð ð	ð 
ò		ó ð	ð ð ~ð ¸&ò ó ðð ð	#¨#ð 	#°&ò 	#ó ð	#ð ð#˜vð #¨Sð #°Vò #ó ñ#r    rk   c                   ó,   — e Zd Zdeddfd„Zdedefd„Zy)r\  r   r   Nc                 ó   — || _         y r4   r   ©r[   r   s     r   rV   z_OpStrPickleData.__init__  ó	   € Øˆ�	r    r{   c                 ó   — | j                   S r4   r   r	  s     r   rð   z_OpStrPickleData.unpickle  s   € Ø�y‰yÐr    )r-   r.   r/   r0   rV   r‹   rð   r&   r    r   r\  r\    s(   „ ð˜Sð  Tó ð ~ð ¸#ô r    r\  c                   óT   — e Zd Zdeddfd„Zdedej                  j                  fd„Z	y)ra  r   r   Nc                 ó   — || _         y r4   r   ru  s     r   rV   z_OpOverloadPickleData.__init__  rv  r    r{   c                 ó²   — | j                  | j                  «      }t        |t        j                  j
                  «      st        dt        |«      › �«      ‚|S )NzExpected OpOverload, got )rq  r   ra   rd   rh   r_  rv   rs   ©r[   r{   r]   s      r   rð   z_OpOverloadPickleData.unpickle  sF   € Ø×)Ñ)¨$¯)©)Ó4ˆÜ˜#œuŸz™z×4Ñ4Ô5Ü Ð#<¼TÀ#»Y¸KÐ!HÓIÐIØˆ
r    )
r-   r.   r/   r0   rV   r‹   rd   rh   r_  rð   r&   r    r   ra  ra    s2   „ ð˜Sð  Tó ð ~ð ¸%¿*¹*×:OÑ:Oô r    ra  c                   óT   — e Zd Zdeddfd„Zdedej                  j                  fd„Z	y)rb  r   r   Nc                 ó   — || _         y r4   r   ru  s     r   rV   z$_OpOverloadPacketPickleData.__init__"  rv  r    r{   c                 ó²   — | j                  | j                  «      }t        |t        j                  j
                  «      st        dt        |«      › �«      ‚|S )NzExpected OpOverloadPacket, got )rq  r   ra   rd   rh   rj   rv   rs   r{  s      r   rð   z$_OpOverloadPacketPickleData.unpickle%  sF   € Ø×)Ñ)¨$¯)©)Ó4ˆÜ˜#œuŸz™z×:Ñ:Ô;Ü Ð#BÄ4ÈÃ9À+Ð!NÓOÐOØˆ
r    )
r-   r.   r/   r0   rV   r‹   rd   rh   rj   rð   r&   r    r   rb  rb  !  s2   „ ð˜Sð  Tó ð ~ð ¸%¿*¹*×:UÑ:Uô r    rb  c                   ó,   — e Zd Zdeddfd„Zdedefd„Zy)r]  rf  r   Nc                 ó.   — |j                  «       | _        y r4   )Ú	serializeÚcontents)r[   rf  s     r   rV   z!_OpPrecompiledPickleData.__init__-  s   € Ø ×*Ñ*Ó,ˆ�r    r{   c                 óš   ‡— t        j                  | j                  «      Šdd l}|j	                  ‰«      dt
        dt
        fˆfd„«       }|S )Nr   rÏ   r   c                  ó   •—  ‰| Ž S r4   r&   )rÏ   Úprecompiled_artifacts    €r   Úwrappedz2_OpPrecompiledPickleData.unpickle.<locals>.wrapped4  s   ø€ á'¨Ð.Ð.r    )r   Údeserializer‚  Ú	functoolsÚwrapsr   )r[   r{   rˆ  r†  r…  s       @r   rð   z!_OpPrecompiledPickleData.unpickle0  sL   ø€ Ü2×>Ñ>¸t¿}¹}ÓMÐÛà	�‰Ð-Ó	.ð	/œ3ð 	/¤3ô 	/ó 
/ð	/ð ˆr    )r-   r.   r/   r   rV   r‹   rX   rð   r&   r    r   r]  r]  ,  s)   „ ð-Ð!4ð -¸ó -ð ~ð ¸&ô r    r]  c                   ó8   — e Zd ZdZdZdededdfd„Zdedefd	„Z	y)
rc  zÕ
    Supports pickling a set of standard/common functions
    These must be prefixed with the full namespace in order to properly
    be pickled (i.e `einops.rearrange` and not `from einops import rearrange`)
    )z	builtins.zmath.ztorch.z	operator.zeinops.rÚ   r   r   Nc                 ó    — || _         || _        y r4   )rÚ   r   )r[   rÚ   r   s      r   rV   z_OpFunctionPickleData.__init__E  s   € ØˆŒ	Øˆ�	r    r{   c                 óâ  — | j                   dk(  rt        j                  | j                  «      S | j                   dk(  r dd l}| j                  || j                  «      S | j                   dk(  r | j                  t        | j                  «      S | j                   dk(  r dd l}| j                  || j                  «      S | j                   dk(  r dd l}| j                  || j                  «      S t        ‚)NÚbuiltinsÚmathr   rd   ÚoperatorÚeinops)
rÚ   Ú__builtins__r2  r   rŽ  ro  rd   r�  r�  rÿ   )r[   r{   rŽ  r�  r�  s        r   rð   z_OpFunctionPickleData.unpickleI  s¾   € Ø�9‰9˜
Ò"Ü×#Ñ# D§I¡IÓ.Ð.Ø�Y‰Y˜&Ò Ûà×(Ñ(¨¨t¯y©yÓ9Ð9Ø�Y‰Y˜'Ò!Ø×(Ñ(¬°·	±	Ó:Ð:Ø�Y‰Y˜*Ò$Ûà×(Ñ(¨°4·9±9Ó=Ð=Ø�Y‰Y˜(Ò"Ûà×(Ñ(¨°·±Ó;Ð;ä%Ð%r    )
r-   r.   r/   rÞ   rd  r0   rV   r‹   rX   rð   r&   r    r   rc  rc  ;  s<   „ ñð O€Oð˜Sð ¨ð °ó ð& ~ð &¸&ô &r    rc  c                   ó¬   — e Zd Zdej                  j
                  deddfd„Zdej                  j                  de	dej                  j
                  fd„Z
y)	r?  r@  rP   r   Nc                 óì   — |j                   | _        |j                  | _        i }|j                  D ]  }t        |||«      ||<   Œ t        |j                  «       «      | _        |j                  | _        y r4   )	Ú_tracer_clsÚ
tracer_clsÚ_tracer_extrasÚtracer_extrasÚnodesrE  r´   ÚvaluesÚ_codegen)r[   r@  rP   r˜  rý   s        r   rV   z_GraphPickleData.__init___  sf   € Ø×+Ñ+ˆŒØ"×1Ñ1ˆÔà68ˆØ—K‘Kò 	@ˆDÜ)¨$°°wÓ?ˆE�$ŠKð	@ä˜5Ÿ<™<›>Ó*ˆŒ
ØŸ™ˆ�r    r7  r{   c                 óü   — t         j                  j                  || j                  | j                  «      }i }| j
                  D ]  }|j                  |||«      ||<   Œ t        | d«      r| j                  |_        |S )Nrš  )	rd   re   rU  r•  r—  r˜  rð   r¸   rš  )r[   r7  r{   r@  r˜  Únds         r   rð   z_GraphPickleData.unpickler  sn   € ô —‘—‘˜r 4§?¡?°D×4FÑ4FÓGˆà68ˆØ—*‘*ò 	BˆBØŸ™ E¨5°.ÓAˆE�"ŠIð	Bä�4˜Ô$Ø!Ÿ]™]ˆEŒNàˆr    )r-   r.   r/   rd   re   rU  r)   rV   rf   r‹   rð   r&   r    r   r?  r?  ^  sS   „ ð'˜eŸh™hŸn™nð '°wð 'À4ó 'ð&Ø—(‘(×&Ñ&ðØ8Fðà	�‰�‰ôr    r?  c                   ó¼   — e Zd Zededej                  j                  dee	e
egej                  j                  f   ee
ef   f   fd„«       Zdeddfd„Zdedefd	„Zy)
rp   r„   r]   r   c                 óB   — | j                    | |«      |j                  ffS r4   rï   rñ   s      r   rc   z'_TracingContextPickleData.reduce_helper�  s*   € ð �L‰Lá�C“Ø×'Ñ'ðð
ð 	
r    ÚcontextNc                 ó6  — |j                   | _         |j                  | _        |j                  | _        |j                  | _        |j                  | _        |j
                  | _        |j                  | _        |j                  | _        |j                  | _        y r4   )	Úmodule_contextÚframe_summary_stackÚloc_in_frameÚaot_graph_nameÚparams_flatÚparams_flat_unwrap_subclassesÚparams_unwrapped_to_flat_indexÚoutput_stridesÚ#force_unspec_int_unbacked_size_like)r[   rŸ  s     r   rV   z"_TracingContextPickleData.__init__�  sƒ   € à%×4Ñ4ˆÔØ#*×#>Ñ#>ˆÔ Ø#×0Ñ0ˆÔØ%×4Ñ4ˆÔØ"×.Ñ.ˆÔØ-4×-RÑ-RˆÔ*Ø.5×.TÑ.TˆÔ+Ø%×4Ñ4ˆÔà×7Ñ7ð 	Õ0r    r{   c                 ób  — t        |j                  «      }| j                  |_        | j                  |_        | j                  |_        | j
                  |_        | j                  |_        | j                  |_        | j                  |_        | j                  |_	        | j                  |_
        |S r4   )r   r‡   r¡  r¢  r£  r¤  r¥  r¦  r§  r¨  r©  )r[   r{   rŸ  s      r   rð   z"_TracingContextPickleData.unpickle¦  sš   € Ü  ×!9Ñ!9Ó:ˆØ!%×!4Ñ!4ˆÔØ&*×&>Ñ&>ˆÔ#Ø#×0Ñ0ˆÔØ!%×!4Ñ!4ˆÔØ"×.Ñ.ˆÔØ04×0RÑ0RˆÔ-Ø15×1TÑ1TˆÔ.Ø!%×!4Ñ!4ˆÔà×4Ñ4ð 	Ô3ð ˆr    )r-   r.   r/   rß   rN   rd   ro   r   r´   r   r
   r‹   rW   rc   rV   rð   r&   r    r   rp   rp   €  s�   „ Øð
Ø"ð
Ø).¯©×)EÑ)Eð
à	Ø�$˜Ð'¨¯©×)EÑ)EÐEÑFØˆdÐ'Ð'Ñ(ð	*ñ
ò
ó ð
ð
 ð 
°4ó 
ð, ~ð ¸.ô r    rp   )r   N)SÚ
contextlibr¾   r'  r~   rº   rÄ   r8   Úabcr   Úcollections.abcr   r   Útypingr   r   r   Útyping_extensionsr	   r
   Útorch.utils._import_utilsr   rT   rd   Útorch.utils._pytreeÚutilsÚ_pytreerH   Útorch._guardsr   Ú"torch._inductor.standalone_compiler   Ú"torch._library.fake_class_registryr   Útorch._subclasses.fake_tensorr   r   r   Útorch._subclasses.meta_utilsr   r   r   Útorch.fx.experimental.sym_noder   Ú%torch.fx.experimental.symbolic_shapesr   Útorch.utils._mode_utilsr   rm   ÚSymFloatr   r0   r1   r   r'   Ú	dataclassr)   r5   rX   r9   r:   r>   ÚcontextmanagerrL   ÚPicklerrN   r‹   rW   Ú	UnpicklerrŒ   rl   rn   rb   rw   rg   rE  rk   r\  ra  rb  r]  rc  r?  rp   r&   r    r   ú<module>rÁ     s  ðÛ Û Û Û 	Û Û Û Ý ß /ß (Ñ (ß ,å 1ñ ƒ}€ØÐØ€Fã ß $Ð $Ý (Ý BÝ ?ß LÑ L÷ñ õ
 3Ý :Ý /ñ �K §¡¨u¯~©~Ó>€	ð˜3ð  4ó ðT¨ð T°ó Tð ×Ñ÷	"ð 	"ó ð	"óð! 6ð !¨g¯k©k¸&Ñ.Aó !ð 8¨B°¨HÑ#5ó ð ×Ñð. Y¨t¡_ò .ó ð.ô q�6—>‘>ô q÷h	Iñ Iñ Ð3°VÓ<Ð ôB�f×&Ñ&ô B÷2ñ 2÷D1ñ 1÷>G
ñ G
÷T/ñ /÷dñ ÷B-ñ -÷`H#ñ H#ôV�}ô ô˜Mô ô -ô ô˜}ô ô &˜Mô  &÷Fñ ÷D3ò 3r    