ó
    Eñië  ã                   ó@  • S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJr  S SK	J
r
JrJrJrJr  S SKJrJr  S SKJr  \" 5       r\b  \rS SKrS SKJs  Jr  S SKJr  S SKJr  S S	KJrJ r J!r!  S S
K"J#r#J$r$J%r%  S SK&J'r'  S SK(J)r)  S SK*J+r+  \" S\RX                  \RZ                  5      r.S\/S\04S jr1S\/S\04S jr2\ Rf                   " S S5      5       r4 " S S\Rj                  5      r6 " S S5      r7\" S\85      r9 " S S\Rt                  5      r; " S S5      r< " S S 5      r= " S! S"5      r> " S# S$5      r? " S% S&5      r@ " S' S(5      rA " S) S*5      rB " S+ S,\B5      rC " S- S.\B5      rD " S/ S0\B5      rE " S1 S2\B5      rF " S3 S4\B5      rG " S5 S65      rH " S7 S85      rIg)9é    N)Úabstractmethod)ÚCallable)ÚAnyÚNewTypeÚOptionalÚTypeVarÚUnion)ÚoverrideÚSelf)Úimport_dill)ÚTracingContext)ÚAOTCompiledArtifact)Ú
FakeTensorÚFakeTensorModeÚTensor)ÚMetaConverterÚMetaTensorDescÚMetaTensorDescriber)ÚSymNode)ÚShapeEnv)Úno_dispatchÚ	_SymNodeTÚnameÚreturnc                 ó$   • U R                  S5      $ )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    ÚT/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/fx/_graph_pickler.pyÚ_ops_filter_safer   $   s   € ð �?‰?ð	
óð ó    Úkeyc                 ó   • U 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'   2   s   € ð
 ÐSÑSÐSr    c                   óV   • \ rS rSr% \r\\\/\	4      \
S'   \r\\\/\	4      \
S'   Srg)ÚOptionsé:   Ú
ops_filterÚnode_metadata_key_filterr&   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r+   r   r   ÚstrÚboolÚ__annotations__r'   r,   Ú__static_attributes__r&   r    r   r)   r)   :   s>   ‡ ð 3C€J�˜ 3 %¨ +Ñ.Ñ/ÓBà&ð ˜h x°°°t°Ñ'<Ñ=ö r    r)   c                   óD  ^ • \ rS rSrSrSS\R                  S\\   SS4U 4S jjjr	\
S\S\\S	\4   \\S	4   4   4S
 j5       r\
S\S\\   4S j5       r\SS\S\\   S\4S jj5       r\S\S\S\4S j5       r\ SSSSS.S\SSS\S\S\S\\   4S jjj5       rSrU =r$ )ÚGraphPickleréE   zV
GraphPickler is a Pickler which helps pickling fx graph - in particular
GraphModule.
NÚfileÚoptionsr   c                 óÌ   >• [         b  [        TU ]	  USS9  O[        TU ]	  U5        U=(       d
    [        5       U l        [        [        5       5      U l        [        SS9U l	        g )NT)ÚbyrefF)Ú	copy_data)
ÚdillÚsuperÚ__init__r)   r9   Ú_UnpickleStateTokenÚobjectÚ_unpickle_stater   Ú_meta_tensor_describer)Úselfr8   r9   Ú	__class__s      €r   r?   ÚGraphPickler.__init__K   sV   ø€ ÜÑÜ‰GÑ˜T¨ÐÒ.ä‰GÑ˜TÔ"Ø×+¤'£)ˆŒô  3´6³8Ó<ˆÔô ':ÀEÑ&JˆÕ#r    Úobj.c                 ój  • [        U[        5      (       a  [        R                  X5      $ [        U[        R
                  R                  5      (       a  [        R                  X5      $ [        U[        R                  R                  [        R                  R                  45      (       a  [        R                  X5      $ [        U[        5      (       a  [        R                  X5      $ [        U[        R                  5      (       a  [        R                  X5      $ [        U[        R                   R"                  5      (       a  [$        R                  X5      $ [        U[        R
                  R&                  5      (       a  [)        S5      e[*        R                  X5      =n(       a  U$ [,        $ )Nz#Unexpected raw Node during pickling)Ú
isinstancer   Ú_TensorPickleDataÚreduce_helperÚtorchÚfxÚGraphModuleÚ_GraphModulePickleDataÚ_opsÚOperatorBaseÚOpOverloadPacketÚ_OpPickleDatar   Ú_ShapeEnvPickleDataÚSymIntÚ_SymNodePickleDataÚ_guardsr   Ú_TracingContextPickleDataÚNodeÚAssertionErrorÚ_TorchNumpyPickleDataÚNotImplemented)rD   rG   Úreduces      r   Úreducer_overrideÚGraphPickler.reducer_override\   s/  € ô, �cœ:×&Ñ&Ü$×2Ñ2°4Ó=Ð=Ü˜œUŸX™X×1Ñ1×2Ñ2Ü)×7Ñ7¸ÓBÐBÜ˜œeŸj™j×5Ñ5´u·z±z×7RÑ7RÐS×TÑTÜ ×.Ñ.¨tÓ9Ð9Ü˜œX×&Ñ&Ü&×4Ñ4°TÓ?Ð?Ü˜œUŸ\™\×*Ñ*Ü%×3Ñ3°DÓ>Ð>Ü˜œUŸ]™]×9Ñ9×:Ñ:Ü,×:Ñ:¸4ÓEÐEô ˜#œuŸx™xŸ}™}×-Ñ-Ü$Ð%JÓKÐKÜ.×<Ñ<¸TÓGÐGˆvÕGØ�ô "Ð!r    c                 ó"   • XR                   L a  gg )NÚunpickle_state©rB   )rD   rG   s     r   Úpersistent_idÚGraphPickler.persistent_id‰   s   € ð ×&Ñ&Ò&Ø#àr    c                 ó´   • [         R                  " 5        nU " X25      nUR                  U5        UR                  5       sSSS5        $ ! , (       d  f       g= f)z
Pickle an object.
N)ÚioÚBytesIOÚdumpÚgetvalue)ÚclsrG   r9   ÚstreamÚpicklers        r   ÚdumpsÚGraphPickler.dumps‘   s9   € ô
 �ZŠZŒ\˜VÙ˜&Ó*ˆGØ�L‰L˜ÔØ—?‘?Ó$÷ �\�\ús   –)A	Á	
AÚdataÚ	fake_modec                 ó°   • [        U5      n[        R                  " U 5       n[        X25      nUR	                  5       sSSS5        $ ! , (       d  f       g= f)z
Unpickle an object.
N)Ú_UnpickleStaterf   rg   Ú_GraphUnpicklerÚload)ro   rp   Ústaterk   Ú	unpicklers        r   ÚloadsÚGraphPickler.loads›   s<   € ô
 ˜yÓ)ˆÜ�ZŠZ˜Ô Ü'¨Ó6ˆIØ—>‘>Ó#÷ ××ús   ¢AÁ
AéP   é2   T)Ú	max_depthÚmax_iter_itemsÚverbosezOptions | Noner{   r|   r}   c          	      óR  ^ ^^^^^^^	^
^• T=(       d
    [        5       mT " [        R                  " 5       T5      m	[        5       m
S[        SS4U4S jjmS[
        S[        [           4U U4S jjmS[
        S[        S[        S[        [           4UUUUU	U
U4S	 jjmT" US
S5      nU$ )a4  
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                 ó,   >• T(       a  [        U 5        g g ©N)Úprint)r   r}   s    €r   ÚlogÚ%GraphPickler.debug_dumps.<locals>.logÈ   s   ø€ ÞÜ�c•
ð r    Úoc                 ó^   >•  TR                  U T5        g ! [         a  nUs S nA$ S nAff = fr�   )rm   Ú	Exception)r…   Úerj   r9   s     €€r   Úfail_excÚ*GraphPickler.debug_dumps.<locals>.fail_excÌ   s.   ø€ ðØ—	‘	˜!˜WÔ%ØøÜó Ø•ûðús   ƒ –
, '¡,§,ÚpathÚdepthc           	      óv  >• UT:”  a"  T" SU-   SU S[        U 5       S35        US-   $ [        U 5      nUT;   a  g TR                  U5        SU-  nT" U SU S[        U 5       S35        T" U 5      nUc  T" U S35        g T" U S[        U 5       S	U 35        [        U [        5      (       a9  U R                  5        H#  u  pgT" Xq S
U< S3US-   5      nU(       d  M!  Us  $    U$ [        U [        [        45      (       a3  [        U 5       H"  u  p—T" Xq S
U	 S3US-   5      nU(       d  M   Us  $    U$ [        U [        [        45      (       a3  [        U 5       H"  u  p—T" Xq S
U	 S3US-   5      nU(       d  M   Us  $    U$ [        U S5      (       a°  [        U 5      R                  R                  S5      (       a‡   [        [        R                  " [!        U 5      TS-   5      5      n
U
bW  [%        U
5      T:”  a  T" U ST ST 35        U
S T n
[        U
5       H"  u  p—T" Xq S
U	 S3US-   5      nU(       d  M   Us  $    U$  TR'                  U 5      nT" U S[        U5       35        U[(        LaK  Uu  pÞT" U S[%        U5       35        [        U5       H"  u  pŸT" Xñ SU	 S3US-   5      nU(       d  M   Us  $    [*        R,                  " U 5      (       a\  [*        R.                  " U 5       H@  n [1        U UR2                  5      nT" Xq SUR2                   3US-   5      nU(       d  M>  Us  $    U$ [1        U SS 5      n[5        U5      (       a7   U" 5       nT" U S[        U5       35        T" UUS-   US-   5      nU(       a  U$ [        U S5      (       aA  [7        U 5      R                  5        H"  u  nnT" Xq SU 3US-   5      nU(       d  M   Us  $    U$ [        U S5      (       aO  U R8                   H=  n[        U U5      (       d  M  T" [1        U U5      U SU 3US-   5      nU(       d  M;  Us  $    U$ S n [        U S5      (       a6  U R;                  [<        R>                  5      nT" U S[        U5       35        O7[        U S5      (       a&  U RA                  5       nT" U S[        U5       35        [        U[        5      (       a8  [        U5       H)  u  n	nUc  M  T" UU S!U	 S3US-   5      nU(       d  M'  Us  $    U$ ! ["         a    S n
 GN2f = f! ["         a  nT" U SU 35        Us S nA$ S nAff = f! ["         a    U SUR2                   3s s  $ f = f! ["         a  nT" U SU 35        US-   s S nA$ S nAff = f! ["         a  nT" U S U 35        Us S nA$ S nAff = f)"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__[)!ÚtypeÚidÚaddrI   ÚdictÚitemsÚlistÚtupleÚ	enumerateÚsetÚ	frozensetÚhasattrr-   ÚendswithÚ	itertoolsÚisliceÚiterr‡   Úlenr^   r\   Ú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Úgetstateru   Úe3r   ÚslotÚreduce_tupleÚe4Úpartr‰   rƒ   r{   r|   rl   ÚvisitedÚwalks                             €€€€€€€r   rÅ   Ú&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 F¨!¨A©5°Ð"2°E¸A±IÓ>�Cß�sØ"š
ñ &ð �ä˜!œd¤E˜]×+Ñ+Ü% ažL‘D�AÙ˜q F¨!¨A¨3¨a .°%¸!±)Ó<�Cß�sØ"š
ñ )ð �ä˜!œc¤9Ð-×.Ñ.Ü% ažL‘D�AÙ˜q F¨!¨A¨3¨a .°%¸!±)Ó<�Cß�sØ"š
ñ )ð �ô �q˜*×%Ñ%¬$¨q«'×*:Ñ*:×*CÑ*CÀJ×*OÑ*Oð"Ü!¤)×"2Ò"2´4¸³7¸NÈQÑ<NÓ"OÓP�Fð Ñ%Ü˜6“{ ^Ó3ÙØ%˜hÐ&AÀ.ÐAQð R3Ø3AÐ2BðDôð "(¨¨Ð!8˜Ü )¨&Ö 1™˜Ù" 1¨¨a°¨s°! n°e¸a±iÓ@˜ß˜3Ø#&šJñ !2ð  �KðØ×.Ñ.¨qÓ1�Ù�v�hÐ2´4¸³9°+Ð>Ô?ð
 œ.Ò(Ø‘�Ù�v�hÐ8¼¸T»¸ÐDÔEÜ% džO‘D�AÙ˜q F¨-¸°s¸!Ð"<¸eÀa¹iÓH�Cß�sØ"š
ñ ,ô ×'Ò'¨×*Ñ*Ü$×+Ò+¨AÖ.�Að2Ü# A q§v¡vÓ.˜ñ ˜q F¨!¨A¯F©F¨8Ð"4°e¸a±iÓ@�Cß�sØ"š
ñ /ð �ô ˜q .°$Ó7ˆHÜ˜×!Ñ!ð4Ù$›J�EÙ˜6˜(Ð"2´4¸³;°-Ð@ÔAñ ˜5 $Ð):Ñ":¸EÀA¹IÓF�ÞØ�Jä�q˜*×%Ñ%Ü# A›wŸ}™}ž‘G�D˜!Ù˜q F¨!¨D¨6Ð"2°E¸A±IÓ>�Cß�sØ"š
ñ  /ð �ä�q˜+×&Ñ&ØŸKœK�DÜ˜q $×'Ó'Ù"¤7¨1¨dÓ#3¸°v¸Q¸t¸fÐ5EÀuÈqÁyÓQ˜ß˜3Ø#&š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ß�sØ"š
ñ  7ð ˆ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…   Ç,T É'T# Ë8U	ÍU, ÑAV Ò
7V ÔT ÔT Ô#
UÔ-UÔ;UÕUÕ	U)Õ(U)Õ,
VÕ6VÖVÖVÖ
V8ÖV3Ö-V8Ö3V8Úrootr   )	r)   rf   rg   r¢   r1   r   r   ÚBaseExceptionÚint)rj   rG   r9   r{   r|   r}   rµ   r‰   rƒ   rl   rÄ   rÅ   s   ` ```` @@@@@r   Údebug_dumpsÚGraphPickler.debug_dumps¥   s¡   ÿù€ ð< ×&œW›YˆÙ”b—j’j“l GÓ,ˆä›Eˆð	”Sð 	˜T÷ 	ð	œð 	¤¬Ñ 7÷ 	ð 	ðI	”Cð I	œsð I	¬3ð I	´8¼C±=÷ I	õ I	ñV �3˜ Ó"ˆØˆ
r    )rC   rB   r9   r�   )r-   r.   r/   r0   Ú__doc__rf   rg   r   r)   r?   r
   rA   r    r   r   r^   r1   rc   ÚclassmethodÚbytesrm   Ústaticmethodr   rw   rÉ   r2   rÊ   r4   Ú__classcell__©rE   s   @r   r6   r6   E   sb  ø† ññ
K˜RŸZ™Zð K°(¸7Ñ2Cð KÈt÷ Kð Kð" ð)"Øð)"à	ˆx˜˜S˜Ñ! 5¨¨c¨¡?Ð2Ñ	3ó)"ó ð)"ðV ð ð ¨H°S©Mó ó ðð ñ%˜ð %¨°'Ñ):ð %Àeô %ó ð%ð ð$�Eð $ nð $¸ó $ó ð$ð ð %)ðyð
 Ø Øòyàðyð "ðyð
 ðyð ðyð ðyð 
�#‰õyó öyr    r6   c                   ó&   • \ rS rSrS\SS4S jrSrg)rr   ib  rp   r   Nc                 ó.   • Xl         [        5       U l        g r�   )rp   r   Úmeta_converter)rD   rp   s     r   r?   Ú_UnpickleState.__init__c  s   € Ø"ŒÜ9F»ˆÕr    )rp   rÔ   )r-   r.   r/   r0   r   r?   r4   r&   r    r   rr   rr   b  s   † ðI .ð I°T÷ Ir    rr   r@   c                   óh   ^ • \ rS rSrS\R
                  S\SS4U 4S jjr\S\	S\	4S j5       r
S	rU =r$ )
rs   in  rk   ra   r   Nc                 ó0   >• [         TU ]  U5        X l        g r�   )r>   r?   rB   )rD   rk   ra   rE   s      €r   r?   Ú_GraphUnpickler.__init__o  s   ø€ Ü‰Ñ˜Ô Ø-Õr    Úpidc                 óR   • US:X  a  U R                   $ [        R                  " S5      e)Nra   zInvalid persistent ID)rB   r°   ÚUnpicklingError)rD   rÙ   s     r   Úpersistent_loadÚ_GraphUnpickler.persistent_loads  s+   € ð Ð"Ó"Ø×'Ñ'Ð'ä×(Ò(Ð)@ÓAÐAr    rb   )r-   r.   r/   r0   rf   rg   rr   r?   r
   rA   rÜ   r4   rÐ   rÑ   s   @r   rs   rs   n  sG   ø† ð.˜rŸz™zð .¸>ð .Èd÷ .ð ðB 6ð B¨fó Bó öBr    rs   c                   ó�   • \ rS rSr% \\\4   \S'   \S\	S\
S\\\\/\
4   \\\4   4   4S j5       rS\
SS4S	 jrS
\S\
4S jrSrg)rT   i|  ro   rl   rG   r   c                 óB   • U R                   U " U5      UR                  44$ r�   ©ÚunpicklerB   ©rj   rl   rG   s      r   rK   Ú!_ShapeEnvPickleData.reduce_helper  s"   € ð �|‰|™c #›h¨×(?Ñ(?Ð@Ð@Ð@r    ÚenvNc                 ó®   • UR                   (       a  [        S5      eUR                  R                  5       U l        U R                  S	 U R                  S	 g )Nz4Translation validation must be disabled for picklingÚtracked_fakesÚfake_tensor_cache)Ú_translation_validation_enabledrZ   r–   Úcopyro   )rD   rä   s     r   r?   Ú_ShapeEnvPickleData.__init__‡  sF   € ð ×.×.Ü Ð!WÓXÐXØ—L‘L×%Ñ%Ó'ˆŒ	Ø�I‰I�oÐ&Ø�I‰IÐ)Ñ*r    ra   c                 ó8  • UR                   (       d  [        S5      eUR                   R                  (       d  [        S5      eU R                  R	                  5        H%  u  p#[        UR                   R                  X#5        M'     UR                   R                  $ )Nz#unpickle_state.fake_mode is not setz-unpickle_state.fake_mode.shape_env is not set)rp   rZ   Ú	shape_envro   rž   Úsetattr)rD   ra   r³   r´   s       r   rá   Ú_ShapeEnvPickleData.unpickle‘  ss   € à×'×'Ü Ð!FÓGÐGØ×'Ñ'×1×1Ü Ð!PÓQÐQà—I‘I—O‘OÖ%‰DˆAÜ�N×,Ñ,×6Ñ6¸Ö=ñ &ð ×'Ñ'×1Ñ1Ð1r    )ro   )r-   r.   r/   r0   r�   r1   rA   r3   rÍ   r6   r   r    r   r   rr   r@   rK   r?   rá   r4   r&   r    r   rT   rT   |  s�   ‡ Ø
ˆs�Fˆ{Ñ
ÓàðAØ"ðAØ)1ðAà	Ø�$˜Ð'¨Ð1Ñ2°E¸$Ð@SÐ:SÑ4TÐTñ
óAó ðAð+˜Hð +¨ô +ð
2 ~ð 
2¸(÷ 
2r    rT   c                   óœ   • \ rS rSr\S\S\S\\\	\
/\4   \\	\4   4   4S j5       rS\SS4S jrS\4S	 jrS
\
S\R"                  4S jrSrg)rV   iž  rl   rG   r   c                 óÎ   • U " UR                   5      UR                  4n[        U[        R                  5      (       a  [
        R                  U4$ [        S[        U5       35      e)NzUnhandled SymNode type )	ÚnoderB   rI   rL   rU   rV   Úunpickle_sym_intÚNotImplementedErrorrš   )rj   rl   rG   r»   s       r   rK   Ú _SymNodePickleData.reduce_helperŸ  sU   € ñ �C—H‘H“˜w×6Ñ6Ð7ˆÜ�cœ5Ÿ<™<×(Ñ(ä%×6Ñ6¸Ð<Ð<ä%Ð(?ÄÀSÃ	¸{Ð&KÓLÐLr    rñ   Nc                 óŒ   • UR                   U l        UR                  U l        UR                  U l        UR                  U l        g r�   )Ú_exprÚexprrì   ÚpytypeÚ_hintÚhint)rD   rñ   s     r   r?   Ú_SymNodePickleData.__init__®  s.   € Ø—J‘JˆŒ	ØŸ™ˆŒØ—k‘kˆŒØ—J‘Jˆ�	r    c                 óž   • U R                   c  [        S5      e[        U R                  U R                   U R                  U R
                  5      $ )Nzshape_env is None)rì   rZ   r   r÷   rø   rú   )rD   s    r   Ú_to_sym_nodeÚ_SymNodePickleData._to_sym_node´  s9   € Ø�>‰>Ñ!Ü Ð!4Ó5Ð5Ü�t—y‘y $§.¡.°$·+±+¸t¿y¹yÓIÐIr    ra   c                 óJ   • [         R                  " U R                  5       5      $ r�   )rL   rU   rý   ©rD   ra   s     r   rò   Ú#_SymNodePickleData.unpickle_sym_int¹  s   € Ü�|Š|˜D×-Ñ-Ó/Ó0Ð0r    )r÷   rú   rø   rì   )r-   r.   r/   r0   rÍ   r6   r   r    r   r   rr   r@   rK   r   r?   rý   rL   rU   rò   r4   r&   r    r   rV   rV   ž  s”   † ØðMàðMð ðMð 
Ø�$˜Ð'¨Ð2Ñ3°U¸4ÐATÐ;TÑ5UÐUñ
ó	Mó ðMð˜Wð ¨ô ðJ˜gô Jð
1¨~ð 1À%Ç,Á,÷ 1r    rV   c                   ó�   • \ rS rSr% \\   \S'   \S\S\S\	\
\\/\4   \	\\4   4   4S j5       rS\S\SS	4S
 jrS\S\4S jrSrg	)rJ   i½  Úmetadatarl   rG   r   c                 óX   • U R                   U " UR                  U5      UR                  44$ r�   )rá   rC   rB   râ   s      r   rK   Ú_TensorPickleData.reduce_helperÀ  s3   € ð �|‰|Ù�×.Ñ.°Ó4Ø×#Ñ#ð
ð 
ð 	
r    Ú	describerÚtNc           
      óî  • UR                  U5      nUR                  (       a^  [        UR                  [        R                  R
                  R                  5      (       d!  [        S[        UR                  5       35      e[        R                  " US S9U l        [        R                   HG  nUS;   a  M  [        U R                  U5      c  M$  [        SU S[        U R                  U5       35      e   g )Nz3view_func must be None or _FakeTensorViewFunc, got ©rp   )rp   Ú	view_funcz
not None: z: )Údescribe_tensorr
  rI   rL   Ú_subclassesÚ
meta_utilsÚ_FakeTensorViewFuncrZ   rš   rª   Úreplacer  r   Ú_UNSERIALIZABLEr­   )rD   r  r  r  r³   s        r   r?   Ú_TensorPickleData.__init__Ë  sÙ   € ð
 ×,Ñ,¨QÓ/ˆð ××¤jØ×Ñ¤× 1Ñ 1× <Ñ <× PÑ P÷'
ñ '
ô !ØEÜ˜×*Ñ*Ó+Ð,ð.óð ô $×+Ò+¨HÀÑEˆŒô  ×/Ô/ˆAØÐ.Ó.ÙÜ�t—}‘} aÓ(Ó4Ü$ z°!°°B´w¸t¿}¹}ÈaÓ7PÐ6QÐ%RÓSÐSò	 0r    ra   c                 óú  ^• [         R                  " U R                  TR                  S9nUR                  (       aJ  UR
                  b=  [         R                  " UR
                  TR                  S9n[         R                  " X#S9nS[        / [        R                  4   S[        [        R                  [        4   S[        4U4S jjnTR                  R                  UTR                  R                  US S 5      $ )Nr	  )ÚbaseÚmake_meta_tÚdevicer   c                 ó†   >• [        5          [        TR                  U " 5       U5      sS S S 5        $ ! , (       d  f       g = fr�   )r   r   rp   )r  r  ra   s     €r   Ú	with_fakeÚ-_TensorPickleData.unpickle.<locals>.with_fakeó  s-   ø€ ô •Ü!Ø"×,Ñ,Ù“Màó	÷ ——ús	   Œ2²
A )rª   r  r  rp   Úis_viewr  r   rL   r   r	   r  r1   r   rÔ   Úmeta_tensorrì   )rD   ra   r  Únew_baser  s    `   r   rá   Ú_TensorPickleData.unpickleä  sÙ   ø€ ä×&Ò&Ø�M‰MØ$×.Ñ.ñ
ˆð ×× §¡Ñ 9Ü"×*Ò*Ø—‘Ø(×2Ñ2ñˆHô #×*Ò*¨8ÑCˆHð		Ü! "¤e§l¡lÐ"2Ñ3ð		Ü=BÄ5Ç<Á<ÔQTÐCTÑ=Uð		ä÷		ð ×,Ñ,×8Ñ8ØØ×$Ñ$×.Ñ.ØØØó
ð 	
r    )r  )r-   r.   r/   r0   r   r   r3   rÍ   r6   r    r   r   rr   r@   rK   r   r   r?   rá   r4   r&   r    r   rJ   rJ   ½  s�   ‡ Ø˜ZÑ(Ó(àð
Ø"ð
Ø)3ð
à	Ø�$˜Ð'¨Ð3Ñ4°e¸DÐBUÐ<UÑ6VÐVñ
ó
ó ð
ðTÐ"5ð T¸&ð TÀTô Tð2 
 ~ð  
¸*÷  
r    rJ   c                   ó°   • \ rS rSr\S\S\S\\\	\
\/\4   \\
\4   4      4S j5       rS\S\SS4S	 jrS
\S\	S\4   4S jr\S\S\\
   4S j5       rSrg)r[   i  rl   rG   r   c                 óf   • U R                  U5      =n(       a  U R                  X1R                  44$ g r�   )Úfrom_objectrá   rB   )rj   rl   rG   ro   s       r   rK   Ú#_TorchNumpyPickleData.reduce_helper  s3   € ð —?‘? 3Ó'Ð'ˆ4Õ'Ø—L‘L 4×)@Ñ)@Ð"AÐBÐBàr    Úmodr   Nc                 ó   • Xl         X l        g r�   ©r!  r   )rD   r!  r   s      r   r?   Ú_TorchNumpyPickleData.__init__  s   € ØŒØ�	r    ra   .c                 óÔ   • [        [        R                  " U R                  5      U R                  5      n[
        R                  R                  R                  R                  5       U   $ r�   )
r­   Ú	importlibÚimport_moduler!  r   rL   Ú_dynamoÚ	variablesÚmiscÚget_np_to_tnp_map)rD   ra   Únps      r   rá   Ú_TorchNumpyPickleData.unpickle  sE   € Ü”Y×,Ò,¨T¯X©XÓ6¸¿	¹	ÓBˆÜ�}‰}×&Ñ&×+Ñ+×=Ñ=Ó?ÀÑCÐCr    Útnpc                 ó®  • [        U5      (       d  g [        R                  R                  R                  R                  5       n UR                  U5      =n(       d  g  [        USS 5      =n(       d  Sn[        USS 5      =n(       d  g U[        [        R                  " U5      U5      :w  a  [        SU SU 35      eU " XE5      $ ! [         a     g f = f)Nr.   Únumpyr-   zNumpy object mismatch for r”   )r®   rL   r(  r)  r*  Úget_tnp_to_np_mapÚgetÚ	TypeErrorr­   r&  r'  rZ   )rj   r.  Ú	tnp_to_npr,  r!  r   s         r   r  Ú!_TorchNumpyPickleData.from_object  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   ÁC Ã
CÃCr#  )r-   r.   r/   r0   rÍ   r6   rA   r   r    r   r   rr   r@   rK   r1   r?   rá   r  r4   r&   r    r   r[   r[     sº   † Øð
Ø"ð
Ø)/ð
à	ØØ�d˜NÐ+¨VÐ3Ñ4°e¸DÐBUÐ<UÑ6VÐVñ	
ñ
ó
ó ð
ð˜Cð  sð ¨tô ðD ~ð D¸(À3ÈÀ;Ñ:Oô Dð ð˜fð ¨°$©ó ó ór    r[   c                   ó  • \ rS rSr\S\S\R                  R                  S\	\
\\/\R                  R                  4   \	\\4   4   4S j5       rS\R                  R                  S\SS4S	 jrS
\S\R                  R                  4S jrSrg)rO   i8  rl   rG   r   c                 óV   • U R                   U " X!R                  5      UR                  44$ r�   )rá   r9   rB   râ   s      r   rK   Ú$_GraphModulePickleData.reduce_helper9  s/   € ð �|‰|Ù�—_‘_Ó%Ø×#Ñ#ð
ð 
ð 	
r    Úgmr9   Nc                 óˆ  • [        U[        R                  R                  R                  5      (       a  UR                  5       nOUR                  5       n[        US5      (       a  UR                  5       U l	        OUR                  R                  5       U l	        U R                  S	 [        UR                  U5      U l        g )Nr•   Ú_graph)rI   rL   rM   Ú_lazy_graph_moduleÚ_LazyGraphModuleÚ_real_recompileÚ	recompiler¤   r•   Úgm_dictr–   ré   Ú_GraphPickleDatar;  Úgraph)rD   r9  r9   Ú_python_codes       r   r?   Ú_GraphModulePickleData.__init__E  s…   € ä�bœ%Ÿ(™(×5Ñ5×FÑF×GÑGØ×-Ñ-Ó/‰LàŸ<™<›>ˆLÜ�2�~×&Ñ&ØŸ?™?Ó,ˆD�LàŸ;™;×+Ñ+Ó-ˆDŒLØ�L‰L˜Ð"Ü% b§i¡i°Ó9ˆ�
r    ra   c                 óê   • [         R                  R                  R                  [         R                  R                  5      nU R                  Ul        U R                  R                  X!5      Ul        U$ r�   )	rL   rM   rN   Ú__new__r@  r–   rB  rá   r;  )rD   ra   r9  s      r   rá   Ú_GraphModulePickleData.unpickleR  sL   € Ü�X‰X×!Ñ!×)Ñ)¬%¯(©(×*>Ñ*>Ó?ˆØ—l‘lˆŒØ—J‘J×'Ñ'¨Ó;ˆŒ	Øˆ	r    )r@  rB  )r-   r.   r/   r0   rÍ   r6   rL   rM   rN   r    r   r   rr   r@   rK   r)   r?   rá   r4   r&   r    r   rO   rO   8  s«   † Øð	
Ø"ð	
Ø).¯©×)=Ñ)=ð	
à	Ø�$˜Ð'¨¯©×)=Ñ)=Ð=Ñ>ØˆdÐ'Ð'Ñ(ð	*ñ
ó	
ó ð	
ð:˜5Ÿ8™8×/Ñ/ð :¸'ð :Àdô :ð ~ð ¸%¿(¹(×:NÑ:N÷ r    rO   c                   ó$  • \ rS rSrS\R
                  R                  S\\R
                  R                  S 4   S\SS4S jr	S\R
                  R                  S\S \R
                  R                  4   S	\S\R
                  R                  4S
 jrSrg)Ú_NodePickleDataiY  rñ   Úmappingr9   r   Nc                 óˆ  ^• [         R                  " [        R                  R                  U4S jUR
                  5      U l        [         R                  " [        R                  R                  U4S jUR                  5      U l        UR                  U l        UR                  U l        [        R                  UR                  U5      U l        UR                  U l        UR                  R                  5        VVs0 s H0  u  pEUR                  (       a  UR                  U5      (       d  M.  XE_M2     snnU l        g s  snnf )Nc                 ó   >• TU    $ r�   r&   ©ÚnrJ  s    €r   Ú<lambda>Ú*_NodePickleData.__init__.<locals>.<lambda>`  s	   ø€ À'È!Â*r    c                 ó   >• TU    $ r�   r&   rM  s    €r   rO  rP  b  s	   ø€  W¨Q¢Zr    )ÚpytreeÚtree_map_onlyrL   rM   rY   r»   Úkwargsr   ÚoprS   r°   Útargetrš   Úmetarž   r,   )rD   rñ   rJ  r9   r³   r´   s     `   r   r?   Ú_NodePickleData.__init__Z  sÙ   ø€ ô ×(Ò(¬¯©¯©Ô8LÈdÏiÉiÓXˆŒ	Ü×*Ò*Ü�H‰H�M‰MÔ/°·±ó
ˆŒð —I‘IˆŒ	Ø—'‘'ˆŒÜ#×*Ñ*¨4¯;©;¸Ó@ˆŒð —I‘IˆŒ	ð Ÿ	™	Ÿ™Ô)ô
â)‘�à×4×4Ø×3Ñ3°A×6ó	 ˆAŠDÙ)ò
ˆ�	ùó 
s   Ã=-D>Ä.D>rB  ra   c                 óä  ^• [         R                  " [        U4S jU R                  5      n[         R                  " [        U4S jU R                  5      nU R
                  R                  U5      n[        U5      (       d,  [        U[        5      (       d  [        S[        U5       35      eUR                  U R                  XdXPR                  U R                  5      nU R                  Ul        U$ )Nc                 ó   >• TU    $ r�   r&   rM  s    €r   rO  Ú*_NodePickleData.unpickle.<locals>.<lambda>}  s	   ø€ ¸wÀqºzr    c                 ó   >• TU    $ r�   r&   rM  s    €r   rO  r[    s	   ø€  w¨q¢zr    z$target must be callable or str, got )rR  rS  rI  r»   rT  rV  rá   r®   rI   r1   rZ   rš   Úcreate_noderU  r   rW  )rD   rB  rJ  ra   r»   rT  rV  rñ   s     `     r   rá   Ú_NodePickleData.unpicklew  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»   rT  rW  r   rU  rV  rš   )r-   r.   r/   r0   rL   rM   rY   r�   r)   r?   ÚGraphrr   rá   r4   r&   r    r   rI  rI  Y  s–   † ð
à�h‰h�m‰mð
ð �e—h‘h—m‘mÐ%6Ð6Ñ7ð
ð ð	
ð
 
ô
ð:à�x‰x�~‰~ðð Ð'¨¯©¯©Ð6Ñ7ðð 'ð	ð
 
�‰�‰÷r    rI  c            
       ó  • \ rS rSr\S\S\S\\\	/\4   \\
   4   4S j5       r\S\S\SS 4S j5       r\S\S	\\S
   \S   4   S\SS 4S j5       r\S\	S\4S j5       r\S\S\4S j5       r\S\S\S\4S j5       rSrg)rS   i‰  rl   rU  r   c                 ój   • U R                  X!R                  5      nUR                  UR                  44$ r�   )r°   r9   rá   rB   )rj   rl   rU  Úresults       r   rK   Ú_OpPickleData.reduce_helperŠ  s.   € ð —‘˜B§¡Ó0ˆØ—‘ '×"9Ñ"9Ð!;Ð<Ð<r    r9   c                 óR  • [        U[        5      (       a  [        U5      $ [        [        USS 5      [        5      (       a_  [        US5      (       d  [        S5      eUR                  n[        U[        5      (       d  [        S[        U5       35      e[        U5      $ [        R                  R                  R                  U5      n[        U[        R                  R                  5      (       a  U R!                  U["        U5      $ [        U[        R                  R$                  5      (       a  U R!                  U[&        U5      $ UR)                  [*        R,                  5      (       a  UR/                  SS5      u  pV[+        XV5      $ [1        S[        U5       SU SU 35      e)NÚ__wrapped__z op missing __wrapped__ attributez"Expected AOTCompiledArtifact, got r”   r‘   zTARGET: Ú )rI   r1   Ú_OpStrPickleDatar­   r   r¤   rZ   re  rš   Ú_OpPrecompiledPickleDatarL   rM   rY   Ú_pretty_print_targetrP   Ú
OpOverloadÚ
_pickle_opÚ_OpOverloadPickleDatarR   Ú_OpOverloadPacketPickleDatar   Ú_OpFunctionPickleDataÚSUPPORTED_ROOTSÚsplitró   )rj   rU  r9   Úartifactr   rÇ   Údetails          r   r°   Ú_OpPickleData.pickle‘  sO  € ä�bœ#×ÑÜ# BÓ'Ð'ä”g˜b -°Ó6Ô8K×LÑLÜ˜2˜}×-Ñ-Ü$Ð%GÓHÐHØ—~‘~ˆHÜ˜hÔ(;×<Ñ<Ü$Ø8¼¸h»Ð8HÐIóð ô ,¨HÓ5Ð5ä�x‰x�}‰}×1Ñ1°"Ó5ˆä�bœ%Ÿ*™*×/Ñ/×0Ñ0Ø—>‘> $Ô(=¸wÓGÐGÜ˜œEŸJ™J×7Ñ7×8Ñ8Ø—>‘> $Ô(CÀWÓMÐMØ�_‰_Ô2×BÑB×CÑCØŸ:™: c¨1Ó-‰LˆDÜ(¨Ó6Ð6ô &¨´°b³°
¸!¸B¸4¸qÀÀÐ&GÓHÐHr    r   Údataclsrl  rm  c                 ót   • UR                   =n(       a  U" U 5      (       d  SSKJn  U" SU  35      eU" U 5      $ )Nr   )ÚBypassFxGraphCachez"Unable to pickle non-standard op: )r+   Útorch._inductor.codecacherv  )r   rt  r9   r+   rv  s        r   rk  Ú_OpPickleData._pickle_op­  s?   € ð "×,Ñ,Ð,ˆJÕ,±jÀ×6FÑ6FÝDá$Ð'IÈ$ÈÐ%PÓQÐQÙ�t‹}Ðr    ra   c                 ó   • g r�   r&   r   s     r   rá   Ú_OpPickleData.unpickle»  s   € àr    c                 óŒ   • SU;   a2  UR                  SS5      u  p#[        5       U   nU R                  XC5      $ [        5       U   $ )z3
Like `globals()[name]` but supports dotted names.
r”   r‘   )rp  ÚglobalsÚ_getattr_by_name)rj   r   r!  ÚrestrÇ   s        r   Ú_lookup_global_by_nameÚ$_OpPickleData._lookup_global_by_name¿  sE   € ð
 �$‹;ØŸ
™
 3¨Ó*‰IˆCÜ“9˜S‘>ˆDØ×'Ñ'¨Ó3Ð3ä“9˜T‘?Ð"r    rÇ   c                 ór   • SU;   a'  UR                  SS5      u  p![        X5      n SU;   a  M'  [        X5      $ )z7
Like `getattr(root, name)` but supports dotted names.
r”   r‘   )rp  r­   )rÇ   r   r!  s      r   r}  Ú_OpPickleData._getattr_by_nameË  s=   € ð
 �T‹kØŸ
™
 3¨Ó*‰IˆCÜ˜4Ó%ˆDð �T�kô �tÓ"Ð"r    r&   N)r-   r.   r/   r0   rÍ   r6   rA   r    r   rr   r@   rK   r)   r°   rÏ   r1   r	   rš   rk  r   rá   r  r}  r4   r&   r    r   rS   rS   ‰  s5  † Øð=Ø"ð=Ø(.ð=à	ˆx˜Ð(¨&Ð0Ñ1°5Ð9LÑ3MÐMÑ	Nó=ó ð=ð ðI˜ð I¨ð I°_ó Ió ðIð6 ðØðàØÐ(Ñ)¨4Ð0MÑ+NÐNñ
ðð
 ðð 
óó ðð ð ~ð ¸&ó ó ðð ð	#¨#ð 	#°&ó 	#ó ð	#ð ð#˜vð #¨Sð #°Vó #ó ó#r    rS   c                   ó8   • \ rS rSrS\SS4S jrS\S\4S jrSrg)	rg  iÖ  r   r   Nc                 ó   • Xl         g r�   r   ©rD   r   s     r   r?   Ú_OpStrPickleData.__init__×  ó   € Ø�	r    ra   c                 ó   • U R                   $ r�   r   r   s     r   rá   Ú_OpStrPickleData.unpickleÚ  s   € Ø�y‰yÐr    r   )	r-   r.   r/   r0   r1   r?   rr   rá   r4   r&   r    r   rg  rg  Ö  s(   † ð˜Sð  Tô ð ~ð ¸#÷ r    rg  c                   ó`   • \ rS rSrS\SS4S jrS\S\R                  R                  4S jr
Srg)	rl  iÞ  r   r   Nc                 ó   • Xl         g r�   r   r…  s     r   r?   Ú_OpOverloadPickleData.__init__ß  r‡  r    ra   c                 ó¼   • U R                  U R                  5      n[        U[        R                  R
                  5      (       d  [        S[        U5       35      eU$ )NzExpected OpOverload, got )r  r   rI   rL   rP   rj  rZ   rš   ©rD   ra   rG   s      r   rá   Ú_OpOverloadPickleData.unpickleâ  sI   € Ø×)Ñ)¨$¯)©)Ó4ˆÜ˜#œuŸz™z×4Ñ4×5Ñ5Ü Ð#<¼TÀ#»Y¸KÐ!HÓIÐIØˆ
r    r   )r-   r.   r/   r0   r1   r?   rr   rL   rP   rj  rá   r4   r&   r    r   rl  rl  Þ  s2   † ð˜Sð  Tô ð ~ð ¸%¿*¹*×:OÑ:O÷ r    rl  c                   ó`   • \ rS rSrS\SS4S jrS\S\R                  R                  4S jr
Srg)	rm  ié  r   r   Nc                 ó   • Xl         g r�   r   r…  s     r   r?   Ú$_OpOverloadPacketPickleData.__init__ê  r‡  r    ra   c                 ó¼   • U R                  U R                  5      n[        U[        R                  R
                  5      (       d  [        S[        U5       35      eU$ )NzExpected OpOverloadPacket, got )r  r   rI   rL   rP   rR   rZ   rš   rŽ  s      r   rá   Ú$_OpOverloadPacketPickleData.unpickleí  sI   € Ø×)Ñ)¨$¯)©)Ó4ˆÜ˜#œuŸz™z×:Ñ:×;Ñ;Ü Ð#BÄ4ÈÃ9À+Ð!NÓOÐOØˆ
r    r   )r-   r.   r/   r0   r1   r?   rr   rL   rP   rR   rá   r4   r&   r    r   rm  rm  é  s2   † ð˜Sð  Tô ð ~ð ¸%¿*¹*×:UÑ:U÷ r    rm  c                   ó8   • \ rS rSrS\SS4S jrS\S\4S jrSr	g)	rh  iô  rq  r   Nc                 ó.   • UR                  5       U l        g r�   )Ú	serializeÚcontents)rD   rq  s     r   r?   Ú!_OpPrecompiledPickleData.__init__õ  s   € Ø ×*Ñ*Ó,ˆ�r    ra   c                 ó    ^• [         R                  " U R                  5      mSS KnUR	                  T5      S[
        S[
        4U4S jj5       nU$ )Nr   r»   r   c                  ó   >• T" U 6 $ r�   r&   )r»   Úprecompiled_artifacts    €r   ÚwrappedÚ2_OpPrecompiledPickleData.unpickle.<locals>.wrappedü  s   ø€ á'¨Ð.Ð.r    )r   Údeserializer˜  Ú	functoolsÚwrapsr   )rD   ra   r   r�  rœ  s       @r   rá   Ú!_OpPrecompiledPickleData.unpickleø  sL   ø€ Ü2×>Ò>¸t¿}¹}ÓMÐÛà	�‰Ð-Ó	.ð	/œ3ð 	/¤3ö 	/ó 
/ð	/ð ˆr    )r˜  )
r-   r.   r/   r0   r   r?   rr   rA   rá   r4   r&   r    r   rh  rh  ô  s)   † ð-Ð!4ð -¸ô -ð ~ð ¸&÷ r    rh  c                   óD   • \ rS rSrSrSrS\S\SS4S jrS	\S\	4S
 jr
Srg)rn  i  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                 ó   • Xl         X l        g r�   )rÇ   r   )rD   rÇ   r   s      r   r?   Ú_OpFunctionPickleData.__init__  s   € ØŒ	Ø�	r    ra   c                 óæ  • U R                   S:X  a  [        R                  U R                  5      $ U R                   S:X  a  SS KnU R                  X R                  5      $ U R                   S:X  a   U R                  [        U R                  5      $ U R                   S:X  a  SS KnU R                  X0R                  5      $ U R                   S:X  a  SS KnU R                  X@R                  5      $ [        e)NÚbuiltinsÚmathr   rL   ÚoperatorÚeinops)
rÇ   Ú__builtins__r2  r   r¨  r}  rL   r©  rª  ró   )rD   ra   r¨  r©  rª  s        r   rá   Ú_OpFunctionPickleData.unpickle  s¸   € Ø�9‰9˜
Ó"Ü×#Ñ# D§I¡IÓ.Ð.Ø�Y‰Y˜&Ó Ûà×(Ñ(¨¯y©yÓ9Ð9Ø�Y‰Y˜'Ó!Ø×(Ñ(¬°·	±	Ó:Ð:Ø�Y‰Y˜*Ó$Ûà×(Ñ(¨·9±9Ó=Ð=Ø�Y‰Y˜(Ó"Ûà×(Ñ(¨·±Ó;Ð;ä%Ð%r    )r   rÇ   )r-   r.   r/   r0   rÌ   ro  r1   r?   rr   rA   rá   r4   r&   r    r   rn  rn    s<   † ñð O€Oð˜Sð ¨ð °ô ð& ~ð &¸&÷ &r    rn  c                   ó¸   • \ rS rSrS\R
                  R                  S\SS4S jrS\R
                  R                  S\
S\R
                  R                  4S	 jrS
rg)rA  i&  rB  r9   r   Nc                 óì   • UR                   U l        UR                  U l        0 nUR                   H  n[        XCU5      X4'   M     [        UR                  5       5      U l        UR                  U l        g r�   )	Ú_tracer_clsÚ
tracer_clsÚ_tracer_extrasÚtracer_extrasÚnodesrI  r    ÚvaluesÚ_codegen)rD   rB  r9   r³  rñ   s        r   r?   Ú_GraphPickleData.__init__'  s[   € Ø×+Ñ+ˆŒØ"×1Ñ1ˆÔà68ˆØ—K”KˆDÜ)¨$°wÓ?ˆE‹Kñ  ä˜5Ÿ<™<›>Ó*ˆŒ
ØŸ™ˆ�r    r9  ra   c                 ó  • [         R                  R                  XR                  U R                  5      n0 nU R
                   H  nUR                  X4U5      XE'   M     [        U S5      (       a  U R                  Ul        U$ )Nrµ  )	rL   rM   r_  r°  r²  r³  rá   r¤   rµ  )rD   r9  ra   rB  r³  Únds         r   rá   Ú_GraphPickleData.unpickle:  sd   € ô —‘—‘˜r§?¡?°D×4FÑ4FÓGˆà68ˆØ—*”*ˆBØŸ™ E°.ÓAˆE‹Iñ ä�4˜×$Ñ$Ø!Ÿ]™]ˆEŒNàˆr    )rµ  r³  r°  r²  )r-   r.   r/   r0   rL   rM   r_  r)   r?   rN   rr   rá   r4   r&   r    r   rA  rA  &  sS   † ð'˜eŸh™hŸn™nð '°wð 'À4ô 'ð&Ø—(‘(×&Ñ&ðØ8Fðà	�‰�‰÷r    rA  c                   óÊ   • \ rS rSr\S\S\R                  R                  S\	\
\\/\R                  R                  4   \	\\4   4   4S j5       rS\SS4S jrS	\S\4S
 jrSrg)rX   iH  rl   rG   r   c                 óB   • U R                   U " U5      UR                  44$ r�   rà   râ   s      r   rK   Ú'_TracingContextPickleData.reduce_helperI  s*   € ð �L‰Lá�C“Ø×'Ñ'ðð
ð 	
r    ÚcontextNc                 ó6  • UR                   U l         UR                  U l        UR                  U l        UR                  U l        UR                  U l        UR
                  U l        UR                  U l        UR                  U l        UR                  U l        g r�   )	Ú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)rD   r½  s     r   r?   Ú"_TracingContextPickleData.__init__X  sƒ   € à%×4Ñ4ˆÔØ#*×#>Ñ#>ˆÔ Ø#×0Ñ0ˆÔØ%×4Ñ4ˆÔØ"×.Ñ.ˆÔØ-4×-RÑ-RˆÔ*Ø.5×.TÑ.TˆÔ+Ø%×4Ñ4ˆÔà×7Ñ7ð 	Õ0r    ra   c                 ób  • [        UR                  5      nU R                  Ul        U R                  Ul        U R                  Ul        U R
                  Ul        U R                  Ul        U R                  Ul        U R                  Ul        U R                  Ul	        U R                  Ul
        U$ r�   )r   rp   r¿  rÀ  rÁ  rÂ  rÃ  rÄ  rÅ  rÆ  rÇ  )rD   ra   r½  s      r   rá   Ú"_TracingContextPickleData.unpicklen  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Á  r¿  rÆ  rÃ  rÄ  rÅ  )r-   r.   r/   r0   rÍ   r6   rL   rW   r   r    r   r   rr   r@   rK   r?   rá   r4   r&   r    r   rX   rX   H  s�   † Øð
Ø"ð
Ø).¯©×)EÑ)Eð
à	Ø�$˜Ð'¨¯©×)EÑ)EÐEÑFØˆdÐ'Ð'Ñ(ð	*ñ
ó
ó ð
ð
 ð 
°4ô 
ð, ~ð ¸.÷ r    rX   )Jrª   r&  rf   r¦   r°   Úabcr   Úcollections.abcr   Útypingr   r   r   r   r	   Útyping_extensionsr
   r   Útorch.utils._import_utilsr   r=   rL   Útorch.utils._pytreeÚutilsÚ_pytreerR  Útorch._guardsr   Ú"torch._inductor.standalone_compiler   Ú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   rU   ÚSymFloatr   r1   r2   r   r'   Ú	dataclassr)   ÚPicklerr6   rr   rA   r@   Ú	Unpicklerrs   rT   rV   rJ   r[   rO   rI  rS   rg  rl  rm  rh  rn  rA  rX   r&   r    r   Ú<module>rÞ     s©  ðÛ Û Û 	Û Û Ý Ý $ß 9Õ 9ß ,å 1ñ ƒ}€ØÑØ€Fã ß $Ð $Ý (Ý Bß LÑ L÷ñ õ
 3Ý :Ý /ñ �K §¡¨u¯~©~Ó>€	ð˜3ð  4ô ðT¨ð T°ô Tð ×Ñ÷ð ó ðôZ�6—>‘>ô Z÷zIñ Iñ Ð3°VÓ<Ð ôB�f×&Ñ&ô B÷2ñ 2÷D1ñ 1÷>G
ñ G
÷T.ñ .÷bñ ÷B-ñ -÷`J#ñ J#ôZ�}ô ô˜Mô ô -ô ô˜}ô ô &˜Mô  &÷Fñ ÷D3ò 3r    