+
    –°³jÂ-  ã                  óÐ  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIHtHt ^ RIt^ RI	t	^ RI
Ht ^ RIHt ^ RIHt ^ RIHt ^ RIHt ]'       d   ^ RIHtHt ^ R	IHt ^ R
IHt ]	P6                  P8                  t]P:                  ! RR7       ! R R4      4       tR R ltR R lt ]PB                  ]PD                  ]PF                  ]PH                  ]PJ                  ]PL                  ]PN                  ]PP                  ]PR                  ]PT                  ]PV                  ]PX                  ]PZ                  ]P\                  ]P^                  .t0RR R llt1R R lt2R R lt3R R lt4R R lt5R# )é    )ÚannotationsN)ÚAnyÚTYPE_CHECKING)Úfree_unbacked_symbols)ÚStorageWeakRef)Ú_pytree)Útree_flatten)ÚCallableÚHashable)ÚOpOverloadPacket)ÚTreeSpecT)Úfrozenc                  ó,   € ] tR t^t$ R]R&   R]R&   RtR# )Ú
_ScalarKeyÚstrÚtagÚbytesÚbits© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__r   ó    Ú_/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_functorch/compile_utils.pyr   r      s   ‡ à	ƒHØ
‡Kr   r   c               ó    € V ^8„  d   QhRRRR/# )é   Úvalr   Úreturnr   )Úformats   "r   Ú__annotate__r#   !   s   € ÷ ñ ˜Cð  Cñ r   c                ó   € \        V 4      \        J d"   \        R \        P                  ! RV 4      4      # \        V 4      \
        J d7   \        R\        P                  ! RV P                  V P                  4      4      # V # )Úfloatz>dÚcomplexz>dd)Útyper%   r   ÚstructÚpackr&   ÚrealÚimag)r    s   &r   Ú_normalize_cse_argr,   !   s[   € ô ˆCƒy”EÓÜ˜'¤6§;¢;¨t°SÓ#9Ó:Ð:ÜˆCƒy”GÓÜ˜)¤V§[¢[°¸¿¹À#Ç(Á(Ó%KÓLÐLØ€Jr   c               ó    € V ^8„  d   QhRRRR/# )r   Únodeúfx.Noder!   z+OpOverloadPacket | Callable[..., Any] | strr   )r"   s   "r   r#   r#   +   s   € ÷ ñ ˜'ð Ð&Qñ r   c                ó~   € \        V P                  R 4      '       d   V P                  P                  # V P                  # )Úoverloadpacket)ÚhasattrÚtargetr1   ©r.   s   &r   Úget_aten_targetr5   +   s.   € Üˆt�{‰{Ð,×-Ò-Ø�{‰{×)Ñ)Ð)Ø�;‰;Ðr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úfx_gztorch.fx.graph.GraphÚextra_node_keyz$Callable[[fx.Node], Hashable] | Noner!   úfx.Graphr   )r"   s   "r   r#   r#   E   s+   € ÷ Añ AØ
ðAà8ðAð ñAr   c                ó4
  a$€ \         P                  ! 4       p/ o$/ p/ p^ RIHpHp V! V 4       \        V P                  4      R$,          pVP                  R8w  d   \        RVP                   R24      hR R lpR R lp	VP                   U
u0 uF=  p
V! V
4      '       g   K  \        V
P                  R	,          P                  4       4      kK?  	  pp
V P                   U
u0 uFF  p
V! V
4      '       g   K  \        V
P                  R	,          P                  4       4      V9   g   KD  V
kKH  	  pp
^ R
IHp ^ RIHp R R lp\#        4       pV P%                  R\&        P(                  P*                  P,                  R7       F/  p
V
P.                  P1                  RR%4       F  pV! VV4       K  	  K1  	  V P%                  R\&        P(                  P*                  P2                  R7       FL  p
V
P4                  ^ ,          pV! V4      w  ppV F%  pV! V
P.                  P1                  V4      V4       K'  	  KN  	  V P%                  RVR7       FZ  p
V
P.                  P1                  R/ 4      pV
P.                  P1                  RR%4       F  pV! VP1                  V4      V4       K  	  K\  	  V P                   EFU  p
V
P                  R8X  gÛ   V
P                  R8X  gÊ   V
P                  R8X  g¹   V
P7                  4       '       g£   \9        V
4      \:        9   g�   \9        V
4      \<        P>                  J gr   W¬9   gl   V
V9   ge   R	V
P                  9   dr   \A        V
P                  R	,          \B        PD                  4      '       dA   \G        V
P                  R	,          4      '       d   VPI                  V
V$3R l4      pVS$V
&   EK  R V$3R llpV! V
P4                  4      w  ppV! V
P.                  4      w  ppVe	   V! V
4      MRpRV
PJ                  RVRVRVRVRVRV	! V
4      /p\M        \N        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      \N        ;QJ d    . R  V 4       F  NK  	  5M! R  V 4       4      34      pV
PJ                  VV3p V V9   p!R!p"V!'       d1   VV ,          V8X  d#   VV ,          p#V! V
V#4      '       d	   V#S$V
&   EK  R"p"VPI                  V
V$3R# l4      pVS$V
&   V"'       g   V!'       d   EKK  VVV &   VVV &   EKX  	  V# u up
i u up
i )&r   )Úcompute_mutation_region_idsÚsame_mutation_regionsÚoutputz-expected output_node.op to be 'output', got 'Ú'c               ó    € V ^8„  d   QhRRRR/# )r   r.   r/   r!   Úboolr   )r"   s   "r   r#   Ú"fx_graph_cse.<locals>.__annotate__d   s   € ÷ 
ñ 
˜Wð 
¨ñ 
r   c                óö   € RV P                   9  g2   \        V P                   R,          \        P                  4      '       g   R#  V P                   R,          P	                  4        R#   \
         d     R# i ; i)zGWe can evaluate only nodes that represent tensors with defined storage.r    FT)ÚmetaÚ
isinstanceÚtorchÚTensorÚuntyped_storageÚNotImplementedErrorr4   s   &r   Úcheckable_nodeÚ$fx_graph_cse.<locals>.checkable_noded   s]   € à˜Ÿ	™	Ô!¬°D·I±I¸eÕ4DÄeÇlÁl×)SÒ)SÙð	Ø�I‰I�eÕ×,Ñ,Ô.ñ øô #ô 	Úð	ús   Á!A) Á)A8Á7A8c               ó    € V ^8„  d   QhRRRR/# )r   r.   r/   r!   z"tuple[int, int | None, int | None]r   )r"   s   "r   r#   rA   p   s   € ÷ 
ñ 
 ð 
Ð-Oñ 
r   c                ó    € V P                   P                  R / 4      pVP                  R^ 4      VP                  R4      VP                  R4      3# )ÚcustomÚstreamÚmempoolÚmempool_device)rC   Úget)r.   rM   s   & r   Úcustom_context_keyÚ(fx_graph_cse.<locals>.custom_context_keyp   sG   € Ø—‘—‘˜x¨Ó,ˆà�J‰J�x Ó#Ø�J‰J�yÓ!Ø�J‰JÐ'Ó(ð
ð 	
r   r    )Úget_mutable_args)Ú triton_kernel_wrapper_functionalc               ó$   € V ^8„  d   QhRRRRRR/# )r   r.   r   Úbaseszset[fx.Node]r!   ÚNoner   )r"   s   "r   r#   rA   �   s!   € ÷ ñ ˜ð  Lð °Tñ r   c                ó¼   € \        V \        \        34      '       d   T MV 3 F6  p\        V\        P                  4      '       g   K%  VP                  V4       K8  	  R # ©N)rD   ÚlistÚtupleÚfxÚNodeÚadd)r.   rW   Úbs   && r   Ú	_add_baseÚfx_graph_cse.<locals>._add_base�   s@   € Ü# D¬4´¨-×8Ò8‘¸t¸gÒEˆAÜ˜!œRŸW™W×%Ô%Ø—	‘	˜!–ó Fr   Úcall_function©Úopr3   Ú
_all_basesÚkwargsÚtensors_to_cloneÚplaceholderÚget_attrc                ó   <€ SV ,          # rZ   r   ©ÚxÚenvs   &€r   Ú<lambda>Úfx_graph_cse.<locals>.<lambda>Ê   ó	   ø€ ¸¸A¾r   c               ó    € V ^8„  d   QhRRRR/# )r   Úarg_listzlist[Any] | tuple[Any, ...]r!   z tuple[tuple[Any, ...], TreeSpec]r   )r"   s   "r   r#   rA   Ï   s   € ÷ -ñ -Ø5ð-à1ñ-r   c                óÊ  <€ \        V 4      w  r\        \        V 4      4       F±  pW,          p\        V\        P
                  P                  P                  4      '       d   VS9   d   SV,          W&   \        V\        P                  \        P                  \        P                  34      '       d   VP                  W&   \        W,          4      W&   K³  	  \        V 4      V3# rZ   )r	   ÚrangeÚlenrD   rE   r]   r.   r^   ÚSymBoolÚSymIntÚSymFloatr,   r\   )rs   ÚspecÚiÚvrn   s   &   €r   Ú
substituteÚ fx_graph_cse.<locals>.substituteÏ   s¡   ø€ ô ".¨hÓ!7‘�Üœs 8›}Ö-�AØ ��AÜ! !¤U§X¡X§]¡]×%7Ñ%7×8Ò8¸QÀ#¼XØ&)¨!¥f˜™Ü! !¤e§m¡m´U·\±\Ä5Ç>Á>Ð%R×SÒSØ&'§f¡f˜™Ü"4°Xµ[Ó"A�H“Kñ .ô ˜X“¨Ð,Ð,r   Nr3   Ú	extra_keyÚargsÚ	args_specÚkwargs_specÚcustom_contextc              3  ó:   "  € T F  q\        V4      3x € K  	  R # 5irZ   ©r'   ©Ú.0Úas   & r   Ú	<genexpr>Úfx_graph_cse.<locals>.<genexpr>ð   s   é € Ð2©T¨œ4 ›7•|«Tùó   ‚c              3  ó:   "  € T F  q\        V4      3x € K  	  R # 5irZ   r…   r†   s   & r   r‰   rŠ   ð   s   é € Ð9WÑPVÈ1¼dÀ1»g½,ÓPVùr‹   FTc                ó   <€ SV ,          # rZ   r   rl   s   &€r   ro   rp      rq   r   éÿÿÿÿr   )(r]   ÚGraphÚtorch._inductor.pattern_matcherr;   r<   r[   Únodesre   ÚAssertionErrorÚall_input_nodesr   rC   rG   Ú*torch._higher_order_ops.auto_functionalizerT   Ú*torch._higher_order_ops.triton_kernel_wraprU   ÚsetÚ
find_nodesrE   ÚopsÚhigher_orderÚauto_functionalized_v2rg   rQ   Úauto_functionalizedr€   Ú	is_impurer5   Úrand_opsÚatenÚemptyrD   ÚsympyÚSymbolr   Ú	node_copyr3   Úhashr\   )%r7   r8   Ú	new_graphÚhash_envÚ	token_mapr;   r<   Úoutput_noderI   rR   ÚnÚoutput_storagesÚnodes_that_alias_outputsrT   rU   ra   Únodes_used_as_mutation_baseÚbaseÚ
mutable_opÚmutable_args_namesÚ_ÚnameÚinner_kwargsÚnew_noder}   r€   r�   rg   r‚   r   ÚtokenÚhash_argÚhash_valÚhash_val_in_hash_envÚoverwrite_due_to_mutationÚduplicate_n_prevrn   s%   &&                                  @r   Úfx_graph_cser¹   E   sœ  ø€ ô —’“
€Ið 	ð ð
 	ð ð
 	ð ÷ñ
   Ô%ô
   §
¡
Ó+¨BÕ/€KØ‡~�~˜Ô!ÜØ;¸K¿N¹NÐ;KÈ1ÐMó
ð 	
õ
õ
ð ×,Ò,óá,ˆAÙ˜!×ô 	8Œ�q—v‘v˜e•}×4Ñ4Ó6Ö7Ù,ð ð ð —’ó áˆAÙ˜!×ô 	
ô ˜1Ÿ6™6 %�=×8Ñ8Ó:Ó;¸ÑN÷ 	
ˆÙð ð  õ Lõõô
 14³ÐØ�_‰_Ø¤5§9¡9×#9Ñ#9×#PÑ#Pð ö ˆð —H‘H—L‘L ¨rÖ2ˆDÙ�dÐ7Ö8ó 3ñ	ð �_‰_Ø¤5§9¡9×#9Ñ#9×#MÑ#Mð ö ˆð
 —V‘V˜A•Yˆ
Ù 0°Ó <ÑÐ˜AÛ&ˆDÙ�a—h‘h—l‘l 4Ó(Ð*EÖFó 'ñð �_‰_ØÐ#Cð ö ˆð —x‘x—|‘| H¨bÓ1ˆØ—H‘H—L‘LÐ!3°RÖ8ˆDÙ�l×&Ñ& tÓ,Ð.IÖJó 9ñ	ð �Z�Zˆð �D‰D�MÔ!Ø�t‰t�xÔØ�t‰t�zÔ!Ø�{‰{�}Š}Ü˜qÓ!¤XÔ-ô ˜qÓ!¤T§Z¡ZÓ/ØÔ,àÐ/Ô/ð ˜Ÿ™”Ü˜qŸv™v e�}¬e¯l©l×;Ò;Ü)¨!¯&©&°­-×8Ò8ð !×*Ñ*¨1Ô.>Ó?ˆHØˆC�ŒF÷-ð -ñ )¨¯©Ó0‰OˆD�)Ù",¨Q¯X©XÓ"6ÑˆF�Kð .<Ò-G™ qÔ)ÈTˆIà˜!Ÿ(™(Ø˜YØ˜Ø˜YØ˜&Ø˜{Ø Ñ"4°QÓ"7ðˆEô ß”Ñ2©TÓ2—‘Ñ2©TÓ2Ó2·E´EÑ9WÑPVÓ9W·E±EÑ9WÑPVÓ9WÓ4WÐXóˆHð Ÿ™ )¨XÐ6ˆHð $,¨xÑ#7Ð Ø(-Ð%ß#¨	°(Õ(;¸uÔ(DØ#+¨HÕ#5Ð Ù(¨Ð,<×=Ò=Ø-�C˜‘FÚð 15Ð-à ×*Ñ*¨1Ô.>Ó?ˆHØˆC�‰Fß(×0DÒ0DØ%-�˜Ñ"Ø&+�	˜(Ô#ñs ðv Ðùò]ùò
 s   ÂTÂ".TÃ TÃ5,TÄ&Tc               ó    € V ^8„  d   QhRRRR/# )r   Úgmúfx.GraphModuler!   r   )r"   s   "r   r#   r#   	  s   € ÷ ñ �~ð ¨.ñ r   c           	     óŠ  € \        V P                  P                  R \        P                  R7      4      p\        V4       Fo  p\        VP                  4      ^8w  d/   \        RVP                   R\        VP                  4       24      hVP                  ^ ,          pVP                  V4       Kq  	  V P                  4        V # )rc   rd   zexpected node z to have 1 input node, got )r[   Úgraphr—   ÚoperatorÚgetitemÚreversedrv   r“   r’   r°   ÚappendÚ	recompile)r»   Úgetitem_nodesr.   Úparents   &   r   Úraise_getitemsrÆ   	  s«   € ô Ø
�‰×Ñ˜´x×7GÑ7GÐÓHó€Mô ˜Ö'ˆÜˆt×#Ñ#Ó$¨Ô)Ü Ø  §¡ Ð+FÄsÈ4×K_ÑK_ÓG`ÐFaÐbóð ð ×%Ñ% aÕ(ˆØ�‰�dÖñ (ð ‡L�L„NØ€Ir   c               ó    € V ^8„  d   QhRRRR/# )r   r»   r¼   r!   rX   r   )r"   s   "r   r#   r#     s   € ÷ 
ñ 
˜ð 
¨4ñ 
r   c                ó  € V P                   P                   FT  p\        VP                  \        P
                  P                  4      '       g   K9  VP                  P                  Vn        KV  	  V P                  4        R# )zŽ
Modifies the target of graph nodes in :attr:`gm` to strip overloads.

Args:
    gm(fx.GraphModule): The input Fx graph module to be modified
N)	r¾   r‘   rD   r3   rE   Ú_opsÚ
OpOverloadr1   rÃ   )r»   r.   s   & r   Ústrip_overloadsrË     sM   € ð —‘—”ˆÜ�d—k‘k¤5§:¡:×#8Ñ#8×9Ô9ØŸ+™+×4Ñ4ˆDŽKñ ð ‡L�L†Nr   c               ó    € V ^8„  d   QhRRRR/# )r   r¾   r9   r!   z	list[Any]r   )r"   s   "r   r#   r#   +  s   € ÷ .ñ .˜Hð .¨ñ .r   c                ó&   € V P                  R R7      # )ri   ©re   )r—   )r¾   s   &r   Úget_placeholdersrÏ   +  s   € Ø×Ñ˜}ÐÓ-Ð-r   c               ó    € V ^8„  d   QhRRRR/# )r   r¾   r9   r!   zlist[fx.Node]r   )r"   s   "r   r#   r#   /  s   € ÷ 1ñ 1�xð 1 Mñ 1r   c                ó˜   € V P                  R R7       F*  p\        P                  ! VP                  ^ ,          4      u # 	  \	        R4      h)r=   rÎ   zNo output node found)r—   ÚpytreeÚtree_leavesr€   r’   )r¾   r.   s   & r   Úget_outputsrÔ   /  s?   € Ø× Ñ  HÐ Ö-ˆÜ×!Ò! $§)¡)¨A¥,Ó/Ò/ñ .ä
Ð/Ó
0Ð0r   rZ   )6Ú
__future__r   Údataclassesr¿   r(   Útypingr   r   r    rE   Útorch.fxr]   Ú%torch.fx.experimental.symbolic_shapesr   Ú torch.multiprocessing.reductionsr   Útorch.utilsr   rÒ   Útorch.utils._pytreer	   Úcollections.abcr
   r   Ú
torch._opsr   r   r˜   rž   Ú	dataclassr   r,   r5   ÚdropoutÚ_fused_dropoutÚ_standard_gammaÚ	bernoulliÚmultinomialÚnative_dropoutÚnormalÚpoissonÚbinomialÚrreluÚ	rand_likeÚrandÚrandintÚrandnÚrandpermr�   r¹   rÆ   rË   rÏ   rÔ   r   r   r   Ú<module>rï      s  ðÝ "ã Û Û ß %ã ã Ý Ý GÝ ;Ý )Ý ,÷ ß2å+Ý,à‡y�y‡~�~€ð ×Ò˜dÔ#÷ð ó $ðõ
õð 	‡L�LØ×ÑØ×ÑØ‡N�NØ×ÑØ×ÑØ‡K�KØ‡L�LØ‡M�MØ‡J�JØ‡N�NØ‡I�IØ‡L�LØ‡J�JØ‡M�Mð€÷(AõHõ*
õ.÷1r   