Ë
    f^(hò„  ã                   ó6  — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZm	Z	m
Z
mZ d dlZd dl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mZ d dlmZ  ej8                  e«      Z	 d dlZdej@                  d	e!fd
„Z"d„ Z#e G d„ d«      «       Z$de	ddd	e	fd„Z% G d„ dej                   jL                  «      Z' G d„ d«      Z( G d„ d«      Z)dZ*g d¢Z+d dl-m.Z/ d	e0fd„Z1d	e2fd„Z3d„ Z4 G d„ d e«      Z5 G d!„ d"e«      Z6 e4«        d#„ Z7y# e,$ r	 dZ*g d¢Z+Y ŒCw xY w)$é    N)Ú	dataclass)ÚAnyÚCallableÚOptionalÚUnion)ÚTorchDynamoException)Údynamo_timed)ÚArgumentÚTarget)Úsympy_interpÚeÚreturnc                 óZ  ‡
‡— t        j                  | «      s
J d| › �«       ‚dt         j                  dt        t           fd„}t        j
                  | «      } t        j                  | «      st        d| › �«      ‚t        j                  | «      st        j                  | «      r| j                  «       S | j                  «       }|j                  «       Št	        |«      } || «      }‰t         j                  k(  rd}�nƒ‰t         j                  t         j                  fv rˆ
ˆfd„Š
 ‰
| «      }�nQ‰t         j                   k(  rŸ| j#                  «       dk(  sJ ‚| j%                  d	«      }t        j                  |«      sJ ‚|j                  «       j                  «       }t         j&                  d
t         j(                  dt         j*                  di}||v r­||   } ||«      }nŸ‰t         j,                  t         j.                  fv rJ| j#                  «       dk(  sJ ‚t1        | j%                  d	«      «      }|j3                  d«      rd|dd  z   S |S ‰t         j4                  k(  r | j#                  «       d	k(  sJ ‚t	        |«      S |dz   dj7                  |«      z   }	d|	j9                  «       › d�S )Nzunsupported expression type: r   r   c                 óŠ   — t        | j                  «       «      D �cg c]  }t        | j                  |«      «      ‘Œ c}S c c}w ©N)ÚrangeÚnum_argsÚz3strÚarg)r   Úis     ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/fx/experimental/validator.pyÚget_args_strzz3str.<locals>.get_args_str?   s-   € Ü-2°1·:±:³<Ó-@ÖA¨”E˜!Ÿ%™% ›(•OÒAÐAùÒAs   œ!A zcan't print Z3 expression: Úpowc           	      ó  •— t        j                  | «      r!| j                  «       j                  «       ‰k(  st	        | «      gS t        | j                  «       «      D ��cg c]   } ‰| j                  |«      «      D ]  }|‘Œ Œ" c}}S c c}}w r   )Úz3Úis_appÚdeclÚkindr   r   r   r   )r   r   ÚxÚcollect_str_argsr   s      €€r   r    zz3str.<locals>.collect_str_argsZ   s|   ø€ ÜŸ	™	 !œ¨¯©«¯©«¸DÒ)@Ü! !›H˜:Ð%ô "' q§z¡z£|Ó!4÷àÙ!1°!·%±%¸³(Ó!;òð ò ðØóð ùó s   Á %B	é   r   z!=ú>ú<z(/z(idivé   ú ú(ú))r   Úis_exprÚExprRefÚlistÚstrÚsimplifyr   Ú
ValueErrorÚis_int_valueÚis_rational_valueÚ	as_stringr   r   ÚZ3_OP_POWERÚ	Z3_OP_ADDÚ	Z3_OP_MULÚ	Z3_OP_NOTr   r   ÚZ3_OP_EQÚZ3_OP_LEÚZ3_OP_GEÚZ3_OP_TO_INTÚZ3_OP_TO_REALr   Ú
startswithÚZ3_OP_UNINTERPRETEDÚjoinÚrstrip)r   r   r   ÚopÚargsr   ÚargkindÚlogic_inverseÚargstrÚstringr    r   s             @@r   r   r   <   s@  ù€ Ü�z‰z˜!Œ}ÐAÐ =¸a¸SÐAÓAˆ}ð	BœBŸJ™Jð 	B¬4´©9ó 	Bô
 �K‰K˜‹Nˆô �y‰y˜Œ|ÜÐ:¸1¸#Ð>Ó?Ð?ä�?‰?˜1Ô¤×!5Ñ!5°aÔ!8Ø—;‘;“=Ð à�v‰v‹xˆØ�y‰y‹{ˆÜ�‹YˆÙ˜A‹ˆà”2—>‘>Ò!ØŠBà”b—l‘l¤B§L¡LÐ1Ñ1õñ $ AÓ&ŠDà”R—\‘\Ò!ð —:‘:“< 1Ò$Ð$Ð$Ø—%‘%˜“(ˆCä—9‘9˜S”>Ð!�>Ø—h‘h“j—o‘oÓ'ˆGô —‘˜TÜ—‘˜SÜ—‘˜SðˆMð ˜-Ñ'Ø" 7Ñ+�Ù# CÓ(‘à”b—o‘o¤r×'7Ñ'7Ð8Ñ8Ø—:‘:“< 1Ò$Ð$Ð$Ü˜1Ÿ5™5 ›8“_ˆFð × Ñ  Ô&Ø ¨¨ Ñ+Ð+ð ˆMà”R×+Ñ+Ò+Ø—:‘:“< 1Ò$Ð$Ð$Ü�t“9Ðà�c‘˜CŸH™H T›NÑ*ˆØ�6—=‘=“?Ð# 1Ð%Ð%ó    c                 óF   ‡ ‡— t        j                  ‰ «      ˆ ˆfd„«       }|S )Nc                 óŠ   •— ‰�t        d„ |D «       «      r ‰|Ž S t        d„ |D «       «      }t        j                   ‰|Ž «      S )Nc              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wr   )Ú
isinstancer   ÚBoolRef)Ú.0r   s     r   ú	<genexpr>z/_bitwise_op.<locals>.wrapper.<locals>.<genexpr>”   s    è ø€ ò -Ø03”
˜3¤§
¡
×+ñ-ùs   ‚$&c              3   óH   K  — | ]  }t        j                  |d «      –— Œ y­w)é@   N)r   ÚInt2BV)rJ   Úas     r   rK   z/_bitwise_op.<locals>.wrapper.<locals>.<genexpr>™   s   è ø€ Ò @°a¤§¡¨1¨b×!1Ñ @ùs   ‚ ")ÚallÚtupler   ÚBV2Int)Úselfr?   Úwrapped_argsÚbitwise_funcÚ	bool_funcs      €€r   Úwrapperz_bitwise_op.<locals>.wrapper’   sN   ø€ àÐ$¬ñ -Ø7;ô-ô *ñ ! $Ð'Ð'ä Ñ @¸4Ô @Ó@ˆLÜ—9‘9™\¨<Ð8Ó9Ð9rD   )Ú	functoolsÚwraps)rU   rV   rW   s   `` r   Ú_bitwise_oprZ   ‘   s%   ù€ Ü	�‰˜Ó	&ô	:ó 
'ð	:ð ˆrD   c                   óÄ  — e Zd ZU ded<   edej                  dej                  fd„«       Zedej                  dej                  fd„«       Zdej                  dej                  fd„Z	d	ej                  d
ej                  dej                  fd„Z
dej                  dej                  fd„Zd	ej                  d
ej                  dej                  fd„Zdej                  dej                  fd„Zdej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  fd„Zdej                  dej                  fd„Zdej                  dej                  fd„Z eej0                  ej2                  «      Z eej6                  ej8                  «      Z eej<                  d«      Z eej>                  d«      Zy)Ú_Z3OpsÚTranslationValidatorÚ	validatorr   r   c                 óP   — | j                  «       r| S t        j                  | «      S r   )Úis_realr   ÚToReal©r   s    r   Úto_realz_Z3Ops.to_real­   s   € àŸ	™	œ�1Ð5¬¯©°1«Ð5rD   c                 óP   — | j                  «       r| S t        j                  | «      S r   )Úis_intr   ÚToIntrb   s    r   Úto_intz_Z3Ops.to_int²   s   € àŸ™œ
�1Ð3¬¯©°«Ð3rD   r?   c                 ó   — t        |«      S r   )Úsum)rS   r?   s     r   Úsym_sumz_Z3Ops.sym_sum¶   s   € Ü�t“9ÐrD   Ú	numeratorÚdenominatorc                 ó”   — | j                   j                  |dk7  «       t        j                  |«      t        j                  |«      z  S ©Nr   )r^   Úadd_assertionr\   rc   ©rS   rk   rl   s      r   Údivz
_Z3Ops.divº   s6   € Ø�N‰N×(Ñ(¨¸Ñ)9Ô:Ü—>‘> )Ó,¬v¯~©~¸kÓ/JÑJÐJrD   Únumberc                 ó,   — t         j                  |«      S r   )r\   rg   ©rS   rr   s     r   Úfloorz_Z3Ops.floor¾   s   € ä—=‘= Ó(Ð(rD   c                 óÂ   — |j                  «       xs |j                  «       }t        j                  | j                  ||«      «      }|rt        j	                  |«      S |S r   )r`   r\   rg   rq   rc   )rS   rk   rl   Úcast_result_to_realÚresults        r   Úfloordivz_Z3Ops.floordivÄ   sS   € ð #,×"3Ñ"3Ó"5Ò"N¸×9LÑ9LÓ9NÐÜ—]‘] 4§8¡8¨I°{Ó#CÓDˆFñ .A”6—>‘> &Ó)ÐLÀfÐLrD   c                 óx   — t        j                  | j                  |«      |k  | j                  |dz   «      |«      S ©Nr!   )r   ÚIfru   rt   s     r   Úceilz_Z3Ops.ceilÍ   s5   € Ü—5‘5Ø—
‘
˜6Ó" VÑ+¨T¯Z©Z¸À¹
Ó-CÀVóð rD   c                 ór   — t        j                  |dk\  | j                  |«      | j                  |«      «      S rn   )r   r|   ru   r}   rt   s     r   Útruncz_Z3Ops.truncÒ   s+   € Ü—5‘5˜ 1™ d§j¡j°Ó&8¸$¿)¹)ÀFÓ:KÓLÐLrD   rO   Úbc                 ó6   — t        j                  ||kD  ||«      S r   ©r   r|   ©rS   rO   r€   s      r   Úmaxz
_Z3Ops.maxÕ   ó   € Ü—5‘5˜˜Q™  1Ó%Ð%rD   c                 ó6   — t        j                  ||k  ||«      S r   r‚   rƒ   s      r   Úminz
_Z3Ops.minØ   r…   rD   ÚpÚqc                 ó2   — || j                  ||«      |z  z
  S r   )ry   ©rS   rˆ   r‰   s      r   Úmodz
_Z3Ops.modÝ   s   € Ø�t—}‘} Q¨Ó*¨QÑ.Ñ.Ð.rD   ÚbaseÚexpc                 óv   — | j                   j                  t        j                  |dk7  |dkD  «      «       ||z  S rn   )r^   ro   r   ÚOr©rS   r�   rŽ   s      r   r   z
_Z3Ops.powà   s1   € à�N‰N×(Ñ(¬¯©¨t°q©y¸#À¹'Ó)BÔCØ˜‘9ÐrD   c                 ór   — t         j                  |«      }| j                  j                  |dk\  «       |dz  S )Nr   ç      à?)r\   rc   r^   ro   rt   s     r   Úsqrtz_Z3Ops.sqrtå   s4   € ô —^‘^ FÓ+ˆFð �N‰N×(Ñ(¨°1©Ô5Ø˜3‘;ÐrD   c                 ó,   — t        j                  |«      S r   )r   ÚAbsrt   s     r   Úabsz
_Z3Ops.absî   s   € Ü—6‘6˜&“>Ð!rD   c                 óÄ   — t        j                  | j                  |t        j                  d«      «      dk(  | j	                  |dz
  «      | j                  |dz   «      «      S )Nr$   r“   )r   r|   rŒ   ÚIntValr}   ru   rt   s     r   Úround_to_intz_Z3Ops.round_to_intñ   sP   € ô —5‘5Ø—‘˜¤§¡¨1£Ó.°#Ñ5Ø—	‘	˜& 3™,Ó'Ø—
‘
˜6 C™<Ó(óð rD   N) Ú__name__Ú
__module__Ú__qualname__Ú__annotations__Ústaticmethodr   ÚArithRefrc   rg   rj   rq   ru   ry   r}   r   r„   r‡   rŒ   r   r”   r—   rš   rZ   ÚoperatorÚand_ÚAndÚbitwise_andÚor_r�   Ú
bitwise_orÚlshiftÚrshift© rD   r   r\   r\   £   sW  … ð *Ó)ð 
ð	6�r—{‘{ð 	6 r§{¡{ò 	6ó 
ð	6ð 
ð	4�b—k‘kð 	4 b§k¡kò 	4ó 
ð	4ð	 §¡ð 	°·±ó 	ð	K §¡ð 	K¸2¿;¹;ð 	KÈ2Ï;É;ó 	Kð	) §¡ð 	)°·±ó 	)ð	MØŸ[™[ð	MØ79·{±{ð	Mà�[‰[ó	Mð	˜rŸ{™{ð 	¨r¯{©{ó 	ð
	M §¡ð 	M°·±ó 	Mð	&˜Ÿ™ð 	&¨¯©ð 	&¸¿¹ó 	&ð	&˜Ÿ™ð 	&¨¯©ð 	&¸¿¹ó 	&ð
	/˜Ÿ™ð 	/¨¯©ð 	/¸¿¹ó 	/ð	˜BŸK™Kð 	¨b¯k©kð 	¸b¿k¹kó 	ð
	˜rŸ{™{ð 	¨r¯{©{ó 	ð	"˜bŸk™kð 	"¨b¯k©kó 	"ð	 r§{¡{ð 	°r·{±{ó 	ñ " (§-¡-°·±Ó8ˆÙ  §¡¨r¯u©uÓ5ˆ
Ù˜XŸ_™_¨dÓ3ˆÙ˜XŸ_™_¨dÓ3‰rD   r\   r>   r^   r]   c                 óŒ  ‡— t         j                  h}| |v Šˆfd„}t        |«      }i t         j                   |t        j                  «      “t         j
                   ||j                  «      “t         j                   ||j                  «      “t         j                   ||j                  «      “t         j                   ||j                  «      “t         j                   ||j                  «      “t         j                   ||j                  «      “t         j                   ||j                  «      “t         j                   ||j                  «      “t         j"                   ||j$                  «      “t&        j(                   ||j(                  «      “t&        j*                   ||j*                  «      “t&        j,                   ||j,                  «      “t.        j0                   ||j2                  «      “t.        j4                   ||j6                  «      “t.        j8                   ||j:                  «      “t.        j<                   ||j<                  «      “t.        j>                   |d„ «      t.        j@                   ||jB                  «      t.        jD                  t.        jD                  i¥}| |v r||    S  || «      S )Nc                 ót   •‡ ‡— dt         j                  fˆfd„Št        j                  ‰ «      ˆ ˆfd„«       }|S )Nr   c                 ó  •— t        | t        j                  t        j                  f«      r| S t        | t        «      s‰r.t        | t
        «      rt        j                  t	        | «      «      S t        | t
        t        j                  f«      rt        j                  t        | «      «      S t        | t        t        j                  f«      rt        j                  t        | «      «      S t        dt        | «      › �«      ‚)Nzcan't lift type: )rH   r   r    rI   ÚboolÚintÚBoolValÚsympyÚIntegerr™   ÚfloatÚFloatÚRealValr-   Útype)rO   Úas_bools    €r   Úwrapz z3op.<locals>.lift.<locals>.wrap  s¬   ø€ Ü˜a¤"§+¡+¬r¯z©zÐ!:Ô;Ø�Hô ˜a¤Ô&©7´zÀ!ÄSÔ7IÜŸ:™:¤d¨1£gÓ.Ð.Ü˜a¤#¤u§}¡}Ð!5Ô6ÜŸ9™9¤S¨£VÓ,Ð,Ü˜a¤%¬¯©Ð!5Ô6ÜŸ:™:¤e¨A£hÓ/Ð/Ü Ð#4´T¸!³W°IÐ!>Ó?Ð?rD   c                  ó¶   •— t        | «      dk(  r2t        | d   t        t        f«      rt        ˆfd„| d   D «       «      f}nt        ˆfd„| D «       «      } ‰|Ž S )Nr!   r   c              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr   r©   ©rJ   rO   r·   s     €r   rK   z6z3op.<locals>.lift.<locals>.wrapper.<locals>.<genexpr>(  s   øè ø€ Ò)C°a©$¨q¯'Ñ)Cùó   ƒc              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr   r©   rº   s     €r   rK   z6z3op.<locals>.lift.<locals>.wrapper.<locals>.<genexpr>*  s   øè ø€ Ò(?°Q©¨a¯Ñ(?ùr»   )ÚlenrH   r*   rQ   )r?   rT   Úfuncr·   s     €€r   rW   z#z3op.<locals>.lift.<locals>.wrapper$  sS   ø€ ô �t“9 ’>¤j°°a±¼4Ä¸-Ô&HÜ$)Ó)C¸4À¹7Ô)CÓ$CÐ#E‘Lä#(Ó(?¸$Ô(?Ó#?�Lá˜\Ð*Ð*rD   )r   r)   rX   rY   )r¾   rW   r·   r¶   s   ` @€r   Úliftzz3op.<locals>.lift  s9   ú€ ð@œ2Ÿ:™:õ @ô �_‰_˜TÓ"ô+ó #ð+ð ˆNrD   c                 ó   — | r|S |S r   r©   )r€   ÚtÚfs      r   ú<lambda>zz3op.<locals>.<lambda>F  s   € ±Q°€ ¸A€ rD   )#r¡   Únot_r\   r   ÚNotr¢   r¤   r¥   r¦   r§   r¨   ry   Útruedivrq   rŒ   r—   ÚbuiltinsÚroundrš   Úmathr}   ru   r   ÚtorchÚ	sym_floatrc   Úsym_maxr„   Úsym_minr‡   rj   Úsym_iteÚ	_sym_sqrtr”   Ú_assert)r>   r^   Úboolean_opsr¿   ÚopsÚreplacement_mapr¶   s         @r   Úz3oprÔ     s)  ø€ ô
  —}‘}�oˆØ˜Ð#ˆô	ô4 �YÓˆð
ä�M‰M™4¤§¡›<ð
ô �M‰M™4 §¡Ó0ð
ô �L‰L™$˜sŸ~™~Ó.ð	
ô
 �O‰O™T #§*¡*Ó-ð
ô �O‰O™T #§*¡*Ó-ð
ô ×Ñ™t C§L¡LÓ1ð
ô ×Ñ™d 3§7¡7›mð
ô �L‰L™$˜sŸw™w›-ð
ô �L‰L™$˜sŸw™w›-ð
ô �N‰N™D ×!1Ñ!1Ó2ð
ô �I‰I‘t˜CŸH™H“~ð
ô �J‰J™˜SŸY™Y›ð
ô �J‰J™˜SŸY™Y›ð
ô" �O‰O™T #§+¡+Ó.ð#
ô$ �M‰M™4 §¡›=ð%
ô& �M‰M™4 §¡›=ð'
ô( �M‰M™4 §¡Ó,ð)
ô* �M‰M™4Ñ =Ó>Ü�O‰O™T #§(¡(›^ô �M‰Mœ5Ÿ=™=ñ3
ˆð6 ')¨OÑ&;ˆ˜rÑ"ÐIÁÀbÃÐIrD   c                   ó¬   ‡ — e Zd Zdej                  j
                  ddfˆ fd„Zdedee	df   de
eef   d	efd
„Zdedee	df   de
eef   d	efˆ fd„Zˆ xZS )ÚPopulateValidatorÚgraphr^   r]   c                 óx   •— || _         t        j                  j                  i |¬«      }t        ‰| �  |d¬«       y )N)Úrootr×   T)Úgarbage_collect_values)r^   rÊ   ÚfxÚGraphModuleÚsuperÚ__init__)rS   r×   r^   ÚmoduleÚ	__class__s       €r   rÞ   zPopulateValidator.__init__X  s7   ø€ à&ˆDŒNô —X‘X×)Ñ)¨r¸Ð)Ó?ˆFÜ‰GÑ˜V¸DÐÕArD   Útargetr?   .Úkwargsr   c                 óf   — t        j                  «       d   }| j                  j                  |«      S )NÚsymbol)Úfx_tracebackÚget_current_metar^   Úz3var)rS   rá   r?   râ   rä   s        r   ÚplaceholderzPopulateValidator.placeholder`  s,   € ô "×2Ñ2Ó4°XÑ>ˆFØ—>‘>×'Ñ'¨Ó/Ð/rD   c                 óö   •— |t         j                  k7  r%t        ‰| �  t	        || j
                  «      ||«      S t        |«      dk(  sJ dt        |«      › d�«       ‚| j
                  j                  |d   «       y )Nr!   z'expected 1 argument on assertion. Got: r%   r   )rÊ   rÐ   rÝ   Úcall_functionrÔ   r^   r½   Úadd_source_expr)rS   rá   r?   râ   rà   s       €r   rê   zPopulateValidator.call_functionf  ss   ø€ ð œŸ™Ò&ä‘wÑ,¬T°&¸$¿.¹.Ó-IÈ4ÐQWÓXÐXô �D“	˜Q’ðFà8¼¸T»¸À1ÐEóFØà�N‰N×*Ñ*¨4°©7Õ3rD   )r›   rœ   r�   rÊ   rÛ   ÚGraphrÞ   r   rQ   r
   Údictr+   r   rè   rê   Ú__classcell__)rà   s   @r   rÖ   rÖ   W  s•   ø„ ð	B %§(¡(§.¡.ð 	BÐ=Sõ 	Bð	0Ø ð	0Ø(-¨h¸¨mÑ(<ð	0ØFJÈ3ÐPSÈ8Ánð	0àó	0ð	4Ø ð	4Ø(-¨h¸¨mÑ(<ð	4ØFJÈ3ÐPSÈ8Ánð	4à÷	4ñ 	4rD   rÖ   c                   óh  — e Zd Zh d£Z	 	 	 	 dd„Zdedej                  dej                  fd„Z
dej                  dej                  dej                  fd	„Zdej                  dej                  dej                  fd
„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdedefd„Zdej6                  dej                  fd„Zy) Ú	SympyToZ3>   ÚeqÚgeÚgtÚleÚltÚneÚaddÚmulr   Nc                 óF   — || _         t        | j                   «      | _        y r   )Ú
_validatorr\   Ú_ops)rS   r^   s     r   rÞ   zSympyToZ3.__init__|  s   € ð (ˆDŒOÜ˜tŸ™Ó/ˆD�IrD   ÚvalueÚdtypec                 ó>  — |t         j                  u rt        j                  t	        |«      «      S |t         j
                  u rt        j                  t        |«      «      S |t         j                  u rt        j                  t        |«      «      S t        d|› �«      ‚)Nzunsupported dtype (SympyToZ3): )rÊ   Úint64r   r™   r®   Údoubler´   r²   r­   r¯   r-   )rS   rü   rý   s      r   ÚconstantzSympyToZ3.constantƒ  sr   € àœŸ™Ñ#Ü—y‘y¤ U£Ó,Ð,ØœŸ™Ñ$Ü—z‘z¤%¨£,Ó/Ð/ØœŸ
™
Ñ"Ü—z‘z¤$ u£+Ó.Ð.ÜÐ>¸u¸gÐFÓGÐGrD   r   c                 óp   — |t         j                  k(  rt        j                  |«      S t	        d|› d�«      ‚)Nz	to_dtype z NYI)rÊ   Úfloat64r   ra   ÚNotImplementedError©rS   r   rý   s      r   Úto_dtypezSympyToZ3.to_dtype�  s0   € ØœŸ™Ò%Ü—y‘y “|Ð#Ü%¨	°%°¸Ð&=Ó>Ð>rD   c                 ó,   — t        j                  |«      S r   )r   rf   r  s      r   Útrunc_to_intzSympyToZ3.trunc_to_int’  s   € Ü—8‘8˜A“;ÐrD   c                 ó8   — | j                   j                  |«      S r   )rû   rš   r  s      r   rš   zSympyToZ3.round_to_int•  s   € Ø—9‘9×)Ñ)¨!Ó,Ð,rD   rk   rl   c                 ó:   — | j                   j                  ||«      S r   ©rû   rq   rp   s      r   Úint_truedivzSympyToZ3.int_truediv˜  ó   € ð —9‘9—=‘= ¨KÓ8Ð8rD   c                 ó:   — | j                   j                  ||«      S r   r  rp   s      r   rÆ   zSympyToZ3.truediv�  r  rD   c                 ó:   — | j                   j                  ||«      S r   ©rû   ry   rp   s      r   ry   zSympyToZ3.floordiv¢  s   € ð —9‘9×%Ñ% i°Ó=Ð=rD   c                 ó:   — | j                   j                  ||«      S r   r  rp   s      r   rq   zSympyToZ3.div§  s   € Ø—9‘9×%Ñ% i°Ó=Ð=rD   r�   rŽ   c                 ó:   — | j                   j                  ||«      S r   ©rû   r   r‘   s      r   r   zSympyToZ3.powª  ó   € Ø—9‘9—=‘=  sÓ+Ð+rD   c                 ó:   — | j                   j                  ||«      S r   r  r‘   s      r   Úpow_by_naturalzSympyToZ3.pow_by_natural­  r  rD   rˆ   r‰   c                 ó:   — | j                   j                  ||«      S r   )rû   rŒ   r‹   s      r   rŒ   zSympyToZ3.mod°  s   € Ø—9‘9—=‘=  AÓ&Ð&rD   c                 ó8   — | j                   j                  |«      S r   )rû   r}   r  s      r   Úceil_to_intzSympyToZ3.ceil_to_int³  s   € Ø—9‘9—>‘> !Ó$Ð$rD   c                 ó8   — | j                   j                  |«      S r   )rû   ru   r  s      r   Úfloor_to_intzSympyToZ3.floor_to_int¶  s   € Ø—9‘9—?‘? 1Ó%Ð%rD   Únamec                 ó  — t         j                  t         j                  t         j                  | j                  j
                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  dœ}||v r||   S || j                  v rt        t        |«      S t!        d|› �«      ‚)N)r¢   r¥   rÄ   r¤   r¦   r§   r¨   ru   r}   ÚminimumÚmaximumzunhandled operator: )r   r£   r�   rÅ   rû   r¤   r¦   r§   r¨   ru   r}   r‡   r„   ÚOPERATOR_HANDLESÚgetattrr¡   ÚAttributeError)rS   r  ÚREPLACEMENTs      r   Ú__getattr__zSympyToZ3.__getattr__¹  sÁ   € äŸ™Ü—u‘uÜŸ™Ø#Ÿy™y×4Ñ4Ø"Ÿi™i×2Ñ2ØŸ)™)×*Ñ*ØŸ)™)×*Ñ*ØŸ™Ÿ™ØŸ	™	Ÿ™ØŸ9™9Ÿ=™=ØŸ9™9Ÿ=™=ñˆKð �{Ñ"Ø" 4Ñ(Ð(Ø�t×,Ñ,Ñ,Üœx¨Ó.Ð.Ü Ð#7¸°vÐ!>Ó?Ð?rD   Úexprc                 óD   — t        | | j                  j                  |«      S r   )r   rú   Úsymbols)rS   r%  s     r   ÚrunzSympyToZ3.runÎ  s   € Ü  d§o¡o×&=Ñ&=¸tÓDÐDrD   )r^   r]   r   N)r›   rœ   r�   r   rÞ   r   rÊ   rý   r   r)   r  r    r  r  rš   r  rÆ   ry   rq   r   r  rŒ   r  r  r+   r$  r°   ÚBasicr(  r©   rD   r   rð   rð   y  sJ  „ ÚMÐð	0à-ð	0ð ó	0ð	H #ð 	H¨e¯k©kð 	H¸b¿j¹jó 	Hð	?˜bŸk™kð 	?°%·+±+ð 	?À"Ç+Á+ó 	?ð
	 "§+¡+ð 	°e·k±kð 	ÀbÇkÁkó 	ð	- "§+¡+ð 	-°e·k±kð 	-ÀbÇkÁkó 	-ð	9ØŸ[™[ð	9Ø79·{±{ð	9à�[‰[ó	9ð
	9ØŸ[™[ð	9Ø79·{±{ð	9à�[‰[ó	9ð
	>ØŸ[™[ð	>Ø79·{±{ð	>à�[‰[ó	>ð
	> §¡ð 	>¸2¿;¹;ð 	>È2Ï;É;ó 	>ð	,˜BŸK™Kð 	,¨b¯k©kð 	,¸b¿k¹kó 	,ð	, r§{¡{ð 	,¸¿¹ð 	,ÈÏÉó 	,ð	'˜Ÿ™ð 	'¨¯©ð 	'¸¿¹ó 	'ð	% §¡ð 	%°U·[±[ð 	%ÀRÇ[Á[ó 	%ð	& "§+¡+ð 	&°e·k±kð 	&ÀbÇkÁkó 	&ð	@ Cð 	@¨Có 	@ð*	E˜EŸK™Kð 	E¨B¯J©Jô 	ErD   rð   c                   ób  — e Zd Zdd„Zdej
                  dej                  fd„Zdej
                  de	dej                  fd„Z
dej                  ddfd	„Zdej                  dej                  fd
„Zdej                  ddfd„Zdd„Zdeej                  ej                  f   ddfd„Zdd„Zdd„Zy)r]   r   Nc                 ó–   — t         j                  d«       i | _        t        «       | _        t        «       | _        t        «       | _        y )Nznew instance)ÚlogÚdebugr'  ÚsetÚ_source_exprsÚ_target_exprsÚ_assertions©rS   s    r   rÞ   zTranslationValidator.__init__à  s;   € Ü�I‰I�nÔ%ð <>ˆDŒLô
 36³%ˆDÔô
 36³%ˆDÔô 14³ˆDÕrD   rä   c                 óP   — || j                   v s
J d|› �«       ‚| j                   |   S )NzZ3 variable not found for: )r'  )rS   rä   s     r   rç   zTranslationValidator.z3varõ  s0   € Ø˜TŸ\™\Ñ)ÐQÐ-HÈÈÐ+QÓQÐ)Ø—<‘< Ñ'Ð'rD   rµ   c                 ó  — || j                   v r| j                   |   S t        j                  d|j                  |j                  «       |t
        u rJt        j                  |j                  «      }|j                  r}| j                  j                  |dkD  «       n^|t        u r t        j                  |j                  «      }n6|t        u r t        j                  |j                  «      }nt        d|› �«      ‚|| j                   |<   |S )Nznew variable: %s (%s)r   z"unsupported type for Z3 variable: )r'  r,  r-  r  r›   r®   r   ÚIntÚis_positiver0  r÷   r²   ÚRealr­   ÚBoolÚRuntimeError)rS   rä   rµ   Úvars       r   Úadd_varzTranslationValidator.add_varú  sÊ   € Ø˜Ÿ™Ñ%Ø—|‘| FÑ+Ð+ä�I‰IÐ-¨v¯{©{¸D¿M¹MÔJà”s‰{Ü—f‘f˜VŸ[™[Ó)�ð ×%Ò%Ø×&Ñ&×*Ñ*¨3°©7Õ3Øœ‘Ü—g‘g˜fŸk™kÓ*‘Øœ‘Ü—g‘g˜fŸk™kÓ*‘ä"Ð%GÈÀvÐ#NÓOÐOà#&ˆD�L‰L˜Ñ ØˆJrD   r   c                 ó€   — |j                   D ]/  }t        |t        j                  «      sJ ‚| j	                  |«       Œ1 y r   )Úfree_symbolsrH   r°   ÚSymbolrç   )rS   r   Úss      r   Ú_check_freesymbolsz'TranslationValidator._check_freesymbols  s6   € Ø—^‘^ò �Ü! !¤U§\¡\Ô2Ð2Ð2ð —
‘
˜1•ñ	rD   c                 ó‚   — t        | «      j                  |«      }t        |t        j                  «      s
J d|› �«       ‚|S )Nz"expected boolean expression. Got: )rð   r(  rH   r   rI   ©rS   r   Úz3exprs      r   Úto_z3_boolean_exprz'TranslationValidator.to_z3_boolean_expr  sG   € Ü˜t“_×(Ñ(¨Ó+ˆFÜØœŸ
™
ôð =à3°F°8Ð<ó=ð ð ˆMrD   c                 ó”   — || j                   vrt        j                  dt        |«      «       | j                   j	                  |«       y )Nzadd source guard: %s)r/  r,  r-  r   r÷   )rS   r   s     r   rë   z$TranslationValidator.add_source_expr   s7   € Ø˜×*Ñ*Ñ*Ü—	‘	Ð0´%¸³(Ô;Ø×Ñ×"Ñ" 1Õ%rD   c                 óØ   — | j                  |«       | j                  |«      }|| j                  vrt        j	                  dt        |«      «       | j                  j                  |«       y )Nzadd target guard: %s)r@  rD  r0  r,  r-  r   r÷   rB  s      r   Úadd_target_exprz$TranslationValidator.add_target_expr%  sU   € Ø×#Ñ# AÔ&Ø×,Ñ,¨QÓ/ˆFØ˜×*Ñ*Ñ*Ü—	‘	Ð0´%¸³-Ô@Ø×Ñ×"Ñ" 6Õ*rD   c                 óJ  — t        |t        j                  «      r#| j                  |«       | j	                  |«      }n|}t        |t
        j                  «      sJ ‚|| j                  vrt        j                  dt        |«      «       | j                  j                  |«       y )Nzadd assertion: %s)rH   r°   r)  r@  rD  r   rI   r1  r,  r-  r   r÷   )rS   r   Úrefs      r   ro   z"TranslationValidator.add_assertion,  s|   € Ü˜!œUŸ[™[Ô)Ø×'Ñ'¨Ô*Ø×-Ñ-¨aÓ0‘à�Ü˜c¤2§:¡:Ô.Ð.Ð.Ø˜$×*Ñ*Ñ*Ü—	‘	Ð-¬u°S«zÔ:Ø×Ñ× Ñ  Õ%rD   c                 ód   — t        d«      5  | j                  «       cd d d «       S # 1 sw Y   y xY w)NzTranslationValidator.validate)r	   Ú	_validater2  s    r   ÚvalidatezTranslationValidator.validate7  s*   € ÜÐ=Ó>ñ (Ø—~‘~Ó'÷(÷ (ò (ús   Œ&¦/c                 ó�  — t        | j                  «      dk(  st        | j                  «      dk(  ry t        j                  d«      }|j                  t        «       ¬«       | j                  D ]  }|j                  |«       Œ |j                  t        j                  t        j                  | j                  Ž «      «        |j                  | j                  Ž  t        j                  d«       |j                  «       }|t        j                  k(  r]|j                  «       }t!        || j                  | j                  | j                  D �cg c]  }|j#                  |«      rŒ|‘Œ c}¬«      ‚|t        j$                  k(  rt        j'                  d«       y |t        j(                  k(  sJ ‚t        j                  d«       y c c}w )Nr   ÚQF_NRA)Útimeoutztranslation validation: start)Úfailed_source_exprsz:translation validation: could not validate: got z3.unknownztranslation validation: success)r½   r/  r0  r   Ú	SolverForr.  Útranslation_validation_timeoutr1  r÷   rÅ   r£   r,  r-  ÚcheckÚsatÚmodelÚValidationExceptionÚevaluateÚunknownÚwarningÚunsat)rS   ÚsolverÚ	assertionÚrrU  Úinps         r   rK  zTranslationValidator._validate;  sd  € Ü�4×%Ñ%Ó&¨!Ò+¬s°4×3EÑ3EÓ/FÈ!Ò/Kð ô —\‘\ (Ó+ˆFà�J‰JÔ=Ó?ˆJÔ@ð "×-Ñ-ò &�	Ø—
‘
˜9Õ%ð&ð
 �J‰J”r—v‘vœbŸf™f d×&8Ñ&8Ð9Ó:Ô;ØˆF�J‰J˜×*Ñ*Ñ+ä�I‰IÐ5Ô6Ø—‘“ˆAØ”B—F‘FŠ{ð Ÿ™›�Ü)ØØ×$Ñ$Ø×&Ñ&à'+×'9Ñ'9ö)Ø #ÀÇÁÐPSÕATšò)ô	ð ð œŸ
™
’?ô —K‘KØTõð
 ¤§¡š=Ð(˜=Ü—I‘IÐ?Õ@ùò)s   ÅGÅ#G)r   N)r   zsympy.logic.boolalg.Booleanr   N)r›   rœ   r�   rÞ   r°   r>  r   r)   rç   rµ   r;  r)  r@  rI   rD  rë   rG  r   ro   rL  rK  r©   rD   r   r]   r]   ß  sÂ   „ ó	6ð*	( §¡ð 	(°·±ó 	(ð
	 %§,¡,ð 	°dð 	¸r¿z¹zó 	ð0	¨¯©ð 	¸ó 	ð	¨¯©ð 	¸¿
¹
ó 	ð	& R§Z¡Zð 	&°Dó 	&ó
	+ð		& 5¨¯©°U·[±[Ð)@Ñ#Að 		&Àdó 		&ó	(ô6	ArD   T)	r   rÔ   rÖ   rð   r]   Útranslation_validation_enabledrR  rV  ÚBisectValidationExceptionF)r_  rR  rV  r`  )Ú_configc                  óF   — t        «        t        xr t        j                  S r   )Ú_assert_z3_installed_if_tv_setÚ_HAS_Z3ÚconfigÚtranslation_validationr©   rD   r   r_  r_  �  s   € ô #Ô$ÜÒ4”v×4Ñ4Ð4rD   c                  ó"   — t         j                  S r   )re  rR  r©   rD   r   rR  rR  –  s   € Ü×0Ñ0Ð0rD   c                  ó@   — t         st        j                  rJ d«       ‚y y )Nzotranslation validation requires Z3 package. Please, either install z3-solver or disable translation validation.)rd  re  rf  r©   rD   r   rc  rc  š  s$   € Ýœ&×7Ò7ð ð	7óÐ7Ð7ˆ7rD   c                   ó   — e Zd Zd„ Zd„ Zy)rV  c                 óf  ‡— t         sJ ‚dt        fˆfd„}dt        fd„} |t        t        |‰«      «      «      } |t        t        t        |«      «      «      } |t        t        t        |«      «      «      }	 |t        t        t        |«      «      «      }
d| _        d|› d|› d|	› d|
› �| _        y )	Nr   c                 ó   •— | › d‰|    › �S )Nú: r©   )ÚsymrU  s    €r   Ú	symbolstrz/ValidationException.__init__.<locals>.symbolstr¥  s   ø€ Ø�U˜"˜U 3™Z˜LÐ)Ð)rD   c                 ó2   — dj                  d„ | D «       «      S )Nú
c              3   ó&   K  — | ]	  }d |› �–— Œ y­w)z  ==> Nr©   )rJ   r   s     r   rK   zBValidationException.__init__.<locals>.joinlines.<locals>.<genexpr>©  s   è ø€ Ò6¨a˜v a Sœ\Ñ6ùs   ‚)r<   )Úxss    r   Ú	joinlinesz/ValidationException.__init__.<locals>.joinlines¨  s   € Ø—9‘9Ñ6°2Ô6Ó6Ð6rD   ztranslation validation failed.zModel:
z

Assertions:
z

Target Expressions:
z

Failed Source Expressions:
)rd  r+   ÚsortedÚmapr   ÚmsgÚdetails)rS   rU  Ú
assertionsÚtarget_exprsrP  rn  rs  Ú	model_strÚassertions_strÚtarget_exprs_strÚfailed_source_exprs_strs    `         r   rÞ   zValidationException.__init__¢  sÀ   ø€ Ýˆˆwð	*œcõ 	*ð	7œSó 	7ñ œf¤S¨°EÓ%:Ó;Ó<ˆ	Ù"¤6¬#¬e°ZÓ*@Ó#AÓBˆÙ$¤V¬C´°|Ó,DÓ%EÓFÐÙ"+¬F´3´uÐ>QÓ3RÓ,SÓ"TÐà3ˆŒðà
€ð ð Ð ð ð Ð ð ð Ð ðˆ�rD   c                 ó8   — | j                   › d| j                  › �S ©Nú

©rv  rw  r2  s    r   Ú__str__zValidationException.__str__¾  ó   € Ø—(‘(�˜4 §¡˜~Ð.Ð.rD   N©r›   rœ   r�   rÞ   r‚  r©   rD   r   rV  rV  ¡  s   „ òó8/rD   rV  c                   ó   — e Zd Zd„ Zd„ Zy)r`  c                 óh   — d|› d|› �| _         d|j                  «       › d|j                  › �| _        y )Nz#translation validation failed when rl  z)Failure occurred while running node:
    r€  )rv  Úformat_noderw  )rS   Úvalidation_excr%  Úfailed_actionÚtraced_nodes        r   rÞ   z"BisectValidationException.__init__Ã  sD   € Ø8¸¸ÀrÈ$ÈÐPˆŒðà×ÑÓÐð  à×ÑÐ ð	ˆ�rD   c                 ó8   — | j                   › d| j                  › �S r  r�  r2  s    r   r‚  z!BisectValidationException.__str__Ë  rƒ  rD   Nr„  r©   rD   r   r`  r`  Â  s   „ òó/rD   r`  c                 óR  ‡‡‡‡‡‡— ddl mŠmŠm} ddlm}m}mŠ | j                  Šdt        j                  j                  d|fˆˆfd„}d|dt        fˆˆfd„Šd|d	t        t        t              dt        t           fˆfd
„Šdt        j                  j                  dt        t           fˆˆˆˆfd„} ‰| | j!                  «       «      }|st"        j%                  d«       y | j&                  rt(        j*                  r|‚i }| j,                  j.                  D �cg c]"  }|j0                  t        j2                  k(  sŒ!|‘Œ$ }	}ddt5        |	«      dz
  }}}
 ||	|   «      ||<   |
|k  rH|
|z   dz  }|	|   }t"        j7                  d| ||«      «        ||«      ||<   ||   r|}n|dz   }
|
|k  rŒH|
|v rt9        ||
   t        «      sJ ‚|	|
   } ||«      }|j;                  «       rd}n|j=                  «       s
J d|› �«       ‚d}|j>                  }|€J ‚t5        |«      dk\  s J d|j@                  › dt5        |«      › �«       ‚t9        |d   tB        jD                  «      s#J d|j@                  › dtG        |d   «      › �«       ‚tI        ||
   |d   ||jJ                  |   ¬«      ‚c c}w )Nr   )ÚFakeTensorMetaÚreplay_shape_env_eventsÚShapeEnvEvent)ÚCURRENT_NODE_KEYÚShapeEnvÚSHAPEENV_EVENT_KEYÚnoder   c                 óH   •— ‰| j                   v sJ ‚‰| j                   ‰      S r   )Úmeta)r“  r’  Úeventss    €€r   Úget_node_eventzbisect.<locals>.get_node_eventê  s*   ø€ Ø! T§Y¡YÑ.Ð.Ð.Ø�d—i‘iÐ 2Ñ3Ñ4Ð4rD   Ú	shape_envc           	      ó>  •‡ — t        |t        «      r|S t        |t        j                  «      r.t        j                  |j                  j                  ‰ «      «      S t        |t        j                  «      r.t        j                  |j                  j                  ‰ «      «      S t        |‰«      sJ ‚ ‰t        ˆˆ fd„|j                  «       D «       «      t        ˆˆ fd„|j                  «       D «       «       ‰‰ |j                  «       «      |j                  «      S )Nc              3   ó0   •K  — | ]  } ‰‰|«      –— Œ y ­wr   r©   ©rJ   r?  Únew_with_shape_envr˜  s     €€r   rK   z5bisect.<locals>.new_with_shape_env.<locals>.<genexpr>ü  s   øè ø€ ÒH°qÑ$ Y°×2ÑHùó   ƒc              3   ó0   •K  — | ]  } ‰‰|«      –— Œ y ­wr   r©   r›  s     €€r   rK   z5bisect.<locals>.new_with_shape_env.<locals>.<genexpr>ý  s   øè ø€ ÒJ°qÑ$ Y°×2ÑJùr�  )rH   r®   rÊ   ÚSymIntr“  Úwith_shape_envÚSymFloatrQ   ÚsizeÚstrideÚstorage_offsetÚ	is_nested)r˜  Úfaker�  rœ  s   ` €€r   rœ  z"bisect.<locals>.new_with_shape_envó  sÉ   ù€ Ü�dœCÔ ØˆKÜ�dœEŸL™LÔ)Ü—<‘< §	¡	× 8Ñ 8¸Ó CÓDÐDÜ�dœEŸN™NÔ+Ü—>‘> $§)¡)×":Ñ":¸9Ó"EÓFÐFÜ˜$ Ô/Ð/Ð/ÙÜÔH¸D¿I¹I»KÔHÓHÜÔJ¸D¿K¹K»MÔJÓJÙ˜y¨$×*=Ñ*=Ó*?Ó@Ø�N‰Nó	
ð 	
rD   Útracked_fakesc           	      ó$  •— |€J ‚	 | j                  |D �cg c]  } ‰| |j                  «      ‘Œ c}|D �cg c]  }|j                  ‘Œ c}|D �cg c]  }|j                  ‘Œ c}¬«       y c c}w c c}w c c}w # t        $ r}|cY d }~S d }~ww xY w)N)Úinput_contexts)Úproduce_guardsr¦  ÚsourceÚsymbolic_contextrV  )r˜  r§  rO   r   rœ  s       €r   Úcheck_shapeenv_failsz$bisect.<locals>.check_shapeenv_fails  s“   ø€ ð Ð(Ð(Ð(ð	ð ×$Ñ$Ø@MÖN¸1Ñ# I¨q¯v©vÕ6ÒNØ#0Ö1˜a�—“Ò1Ø<IÖJ°q × 2Ó 2ÒJð %ô ð
 ùò	 OùÚ1ùÚJøô #ò 	Ø�Hûð	úsD   ‡A: –A+°A: ¶A0
Á	A: ÁA5Á"A: Á+A: Á:	BÂB
ÂBÂ
Bc                 óž   •— | j                   ‰   } ‰‰d |dz    «      }|j                  j                  «         ‰|‰|   j                  «      S r{   )r•  r×   Úlintr§  )r“  rr   r˜  r’  r­  r–  rŽ  s      €€€€r   Úcheck_node_failsz bisect.<locals>.check_node_fails  sN   ø€ Ø—‘Ð-Ñ.ˆá+¨F°<°V¸a±ZÐ,@ÓAˆ	Ø�‰×ÑÔÙ# I¨v°f©~×/KÑ/KÓLÐLrD   z2translation validation succeeded: no errors found.r!   r$   zbisecting at %s: %sÚ
evaluatingzunexpected event type: zadding runtime assertzbisecting expects z/ to have at least 2 positional arguments. Got: z9 to have a SymPy expression as its second argument. Got: )r%  r‰  rŠ  )&Útorch.fx.experimental.recordingr�  rŽ  r�  Ú%torch.fx.experimental.symbolic_shapesr�  r‘  r’  r–  rÊ   rÛ   ÚNoder   r   r*   rV  Ú_snapshot_tracked_fakesr,  ÚinfoÚshould_record_eventsre  Ú translation_validation_no_bisectr×   Únodesrá   rÐ   r½   r-  rH   Úis_evaluate_exprÚis_defer_runtime_assertr?   r  r°   r)  rµ   r`  r•  )r˜  r�  r�  r‘  r—  r°  Úlast_exceptionÚ	exceptionr“  Úassert_nodesÚleftÚmidÚrightÚeventr‰  r?   r�  r’  r­  r–  rœ  rŽ  s                   @@@@@@r   ÚbisectrÃ  Û  så  ý€ ÷ñ ÷
ñ ð ×Ñ€Fð5œUŸX™XŸ]™]ð 5¨}ö 5ð
 hð 
¼ö 
ð ØðÜ,4´T¼#±YÑ,?ðä	Ô%Ñ	&õð&MœuŸx™xŸ}™}ð M´Ô:MÑ1N÷ Mð Mñ *Ø�9×4Ñ4Ó6ó€Nñ ô 	�‰ÐEÔFØà×)Ò)¬V×-TÒ-Tð Ðð €Ið
 #Ÿ™×.Ñ.öØ°$·+±+ÄÇÁÓ2NŠð€Lð ð ˜!œS Ó.°Ñ2ˆuˆ#€DÙ'¨°UÑ(;Ó<€IˆeÑà
�Š,Ø�e‰| Ñ!ˆà˜CÑ ˆÜ�	‰	Ð'¨©n¸TÓ.BÔCñ *¨$Ó/ˆ	�#‰à�SŠ>Ø‰Eà˜‘7ˆDð �‹,ð �9Ñ¤¨I°d©OÔ=PÔ!QÐQÐQà˜Ñ€DÙ˜4Ó €Eà×ÑÔØ$‰à×,Ñ,Ô.ÐQÐ2IÈ%ÈÐ0QÓQÐ.Ø/ˆà�:‰:€DØÐÐÐÜˆt‹9˜Š>ð Ø
˜UŸZ™Z˜Lð )Ü�D“	ˆ{ð	óˆ>ô �d˜1‘gœuŸ{™{Ô+ð Ø
˜UŸZ™Z˜Lð )Ü�T˜!‘W“ˆð	 óÐ+ô
 $Ø�$‰Ø�!‰WØ#Ø—I‘IÐ.Ñ/ô	ð ùòcs   Ä"J$Ä<J$)8rÇ   rX   ÚloggingrÉ   r¡   Údataclassesr   Útypingr   r   r   r   r°   rÊ   Útorch.fxÚtorch.fx.tracebackrÛ   Ú	tracebackrå   Útorch._dynamo.excr   Útorch._dynamo.utilsr	   Útorch.fx.noder
   r   Útorch.utils._sympy.interpr   Ú	getLoggerr›   r,  r   r)   r+   r   rZ   r\   rÔ   ÚInterpreterrÖ   rð   r]   rd  Ú__all__ÚImportErrorÚtorch.fx.experimentalra  re  r­   r_  r®   rR  rc  rV  r`  rÃ  r©   rD   r   ú<module>rÓ     s_  ðã Û Û Û Û Ý !ß 1Ó 1ã ã Û ß )Ð )Ý 2Ý ,ß *Ý 2ð €g×Ñ˜Ó!€ðs	ÛðHP&�—‘ð P& ó P&òjð$ ÷_4ð _4ó ð_4ðR?J�ð ?JÐ&<ð ?JÀó ?JôT4˜EŸH™H×0Ñ0ô 4÷DVEñ VE÷LRAñ RAð~ €Gò
€Gõ 4ð5¨ó 5ð1¨ó 1òô/Ð.ô /ôB
/Ð 4ô 
/ñ Ô  óLøðQ ò Ø€Gò‚Gðús   Á)A%D
 Ä
DÄD