Ë
    M²j‚+  ã                   ó  — U d dl Z d dlZd dlZd dlmZ d dlmZ d dlZd dlZd„ Z	d„ Z
d„ Zd„ Zdd„Zd	„ Zdd
œd„Zej                   j"                  e	ej                   j$                  e
ej&                  eej                   j(                  j&                  eej                   j*                  eej,                  eej.                  eiZeeef   ed<   d„ Z G d„ dej8                  j:                  «      Z G d„ de«      Z G d„ de«      Z d„ Z! G d„ dej8                  jD                  «      Z#	 	 ddej                   jH                  edef   z  dee%ejL                  f   dz  dee%ef   dz  dej8                  jN                  fd„Z(y)é    N)ÚCallable)ÚAnyc                 óx   — t        j                  g |j                  ¢| j                  j                  d   ‘­ddiŽS )NéÿÿÿÿÚdeviceÚmeta)ÚtorchÚemptyÚshapeÚweight©ÚselfÚinputs     ú`/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/fx/experimental/meta_tracer.pyÚembedding_overrider      s1   € Ü�;‰;ÐJ˜Ÿ™ÐJ T§[¡[×%6Ñ%6°rÑ%:ÒJÀ6ÑJÐJó    c                 ó   — |S ©N© r   s     r   Únn_layernorm_overrider      s   € Ø€Lr   c                 ó   — | S r   r   )Úxs    r   Útorch_relu_overrider      ó   € Ø€Hr   c                 ó   — |S r   r   )r   r   s     r   Útorch_nn_relu_overrider      r   r   c                 ó    — |rt        d«      ‚| S )Nz<dont support inplace functional.relu for metatensor analysis©ÚAssertionError)r   Úinplaces     r   Úfunctional_relu_overrider!      s   € ÙÜØJó
ð 	
ð €Hr   c                 ór   — | j                  d¬«      |j                  d¬«      z   |j                  d¬«      z   S )Nr   ©r   )Úto)Ú	conditionr   Úys      r   Útorch_where_overrider'   $   s5   € ð �<‰<˜vˆ<Ó&¨¯©°V¨Ó)<Ñ<¸q¿t¹tÈ6¸tÓ?RÑRÐRr   )Úoutc                ó    — |�t        d«      ‚| S )Nz1Dont support in-place abs for MetaTensor analysisr   )r   r(   s     r   Útorch_abs_overrider*   *   s   € Ø
€ÜÐPÓQÐQØ€Lr   Úmanual_meta_overridesc                 óF   ‡ — t        j                  ‰ «      ˆ fd„«       }|‰ fS )Nc                  ó  •‡— d Šˆfd„}t         j                  j                  j                  | |«       t         j                  j                  j                  ||«       ‰�‰j                  j                  d‰| |«      S  ‰| i |¤ŽS )Nc                 óT   •— t        | t        j                  j                  «      r| Šy y r   )Ú
isinstancer	   ÚfxÚProxy)ÚvÚproxys    €r   Úcheck_has_proxyzAgen_constructor_wrapper.<locals>.wrapper.<locals>.check_has_proxy@   s   ø€ Ü˜!œUŸX™XŸ^™^Ô,à‘ð -r   Úcall_function)r	   r0   ÚnodeÚmap_aggregateÚtracerÚcreate_proxy)ÚargsÚkwargsr4   r3   Útargets      @€r   Úwrapperz(gen_constructor_wrapper.<locals>.wrapper<   sp   ù€ àˆô	ô
 	�‰�‰×#Ñ# D¨/Ô:Ü�‰�‰×#Ñ# F¨OÔ<àÐØ—<‘<×,Ñ,¨_¸fÀdÈFÓSÐSá˜4Ð* 6Ñ*Ð*r   )Ú	functoolsÚwraps)r<   r=   s   ` r   Úgen_constructor_wrapperr@   ;   s*   ø€ Ü‡_�_�VÓó+ó ð+ð  �Fˆ?Ðr   c                   óV   — e Zd Zd„ Zd	d„Zd„ Zed„ «       Zed„ «       Zed„ «       Z	d„ Z
y)
Ú	MetaProxyc                 ó   — || _         y r   )Ú_tensor_meta)r   Útensor_metas     r   Úinstall_tensor_metazMetaProxy.install_tensor_metaQ   s
   € Ø'ˆÕr   Nc                 óÄ   — t        | d«      r+| j                  � | j                  j                  |r|gŽ S g Ž S | j                  j	                  dd|r	| |fi «      S | fi «      S )NrD   Úcall_methodÚsize)ÚhasattrrD   rI   r8   r9   )r   Údims     r   rI   zMetaProxy.sizeT   ss   € Ü�4˜Ô(¨T×->Ñ->Ð-JØ)�4×$Ñ$×)Ñ)±C¨C¨5Ð@Ð@¸RÐ@Ð@Ø�{‰{×'Ñ'Ø˜6±# D¨# ;ÀBó
ð 	
Ø<@¸7ÀBó
ð 	
r   c                 ó¤   — t        | d«      r&| j                  �| j                  j                  «       S | j                  j	                  dd| fi «      S )NrD   rH   rK   )rJ   rD   rK   r8   r9   ©r   s    r   rK   zMetaProxy.dim[   sI   € Ü�4˜Ô(¨T×->Ñ->Ð-JØ×$Ñ$×(Ñ(Ó*Ð*Ø�{‰{×'Ñ'¨°u¸t¸gÀrÓJÐJr   c                 óº   — t        | d«      r"| j                  �| j                  j                  S | j                  j	                  dt
        j                  | dfi «      S )NrD   r5   r   )rJ   rD   r   r8   r9   ÚbuiltinsÚgetattrrM   s    r   r   zMetaProxy.shape`   óS   € ä�4˜Ô(¨T×->Ñ->Ð-JØ×$Ñ$×*Ñ*Ð*Ø�{‰{×'Ñ'ØœX×-Ñ-°°g¨Àó
ð 	
r   c                 óº   — t        | d«      r"| j                  �| j                  j                  S | j                  j	                  dt
        j                  | dfi «      S )NrD   r5   Údtype)rJ   rD   rS   r8   r9   rO   rP   rM   s    r   rS   zMetaProxy.dtypeh   rQ   r   c                 ó   — t        | d«      S )Nr   )ÚMetaDeviceAttributerM   s    r   r   zMetaProxy.devicep   s   € ô # 4¨Ó2Ð2r   c                 óF   — |dk(  r| j                  |«      S t        | |«      S )NrD   )Ú__getattribute__ÚMetaAttribute)r   Úks     r   Ú__getattr__zMetaProxy.__getattr__v   s*   € Ø�ÒØ×(Ñ(¨Ó+Ð+ô ˜T 1Ó%Ð%r   r   )Ú__name__Ú
__module__Ú__qualname__rF   rI   rK   Úpropertyr   rS   r   rZ   r   r   r   rB   rB   P   sS   „ ò(ó
òKð
 ñ
ó ð
ð ñ
ó ð
ð ñ3ó ð3ó
&r   rB   c                   ó.   — e Zd Zdefd„Zed„ «       Zd„ Zy)rX   Úattrc                 óP   — || _         || _        |j                  | _        d | _        y r   )Úrootr`   r8   Ú_node)r   rb   r`   s      r   Ú__init__zMetaAttribute.__init__   s"   € ØˆŒ	ØˆŒ	Ø—k‘kˆŒØˆ�
r   c                 óÀ   — | j                   €G| j                  j                  dt        | j                  | j
                  fi «      j                  | _         | j                   S )Nr5   )rc   r8   r9   rP   rb   r`   r6   rM   s    r   r6   zMetaAttribute.node…   sN   € ð �:‰:ÐØŸ™×1Ñ1Ø¤¨4¯9©9°d·i±iÐ*@À"óç‰dð ŒJð �z‰zÐr   c                 ón   — | j                   j                  d| j                  | j                  f|z   |«      S )NrH   )r8   r9   r`   rb   )r   r:   r;   s      r   Ú__call__zMetaAttribute.__call__�   s1   € Ø�{‰{×'Ñ'Ø˜4Ÿ9™9 t§y¡y l°TÑ&9¸6ó
ð 	
r   N)r[   r\   r]   Ústrrd   r^   r6   rg   r   r   r   rX   rX   ~   s'   „ ð 3ó ð ñó ðó
r   rX   c                   ó   — e Zd Zy)rU   N)r[   r\   r]   r   r   r   rU   rU   •   s   „ Ør   rU   c                 ó  — t        | t        «      ryt        | t        j                  j                  «      rJt        | t
        «      st        dt        | «      › �«      ‚t        | d«      st        d«      ‚| j                  S | S )Nr   zExpected MetaProxy but got rD   z*MetaProxy does not have an associated meta)
r/   rU   r	   r0   r1   rB   r   ÚtyperJ   rD   )r2   s    r   Úproxys_to_metasrl   ™   sh   € Ü�!Ô(Ô)ØÜ�!”U—X‘X—^‘^Ô$Ü˜!œYÔ'Ü Ð#>¼tÀA»w¸iÐ!HÓIÐIÜ�q˜.Ô)Ü Ð!MÓNÐNØ�~‰~ÐØ€Hr   c                   óü   ‡ — e Zd ZU dZeed<   g d¢Z	 	 	 dˆ fd„	Zˆ fd„Zˆ fd„Z	de
j                  j                  defd	„Zde
j                  j                  defˆ fd
„Zd„ Zddeee
j$                  f   fˆ fd„Zˆ xZS )Ú
MetaTracerTÚallow_insert_stateless_mods)ÚarangeÚzerosÚonesÚ	full_likeÚeyec           	      ó8  •— t         ‰| �  |||||||«      }|dk(  r.|| j                  v r |j                  | j                  |   «       |S || j                  v r	d|v rd|d<   	 t
        j                  j                  j                  |t        «      }	t
        j                  j                  j                  |t        «      }
|dk(  r t        j                  ||«      } ||	i |
¤Ž}�n*|dk(  rt        |	d   |«      } ||	dd  i |
¤Ž}�n	|dk(  rzt        | d	«      st        d
«      ‚d| _        	 | j                   j#                  |«      }t%        |«      }|t        v rt        |   |g|	¢­i |
¤Ž}n | j&                  |	i |
¤Ž}d| _        nŠ|dk(  rƒd| _        	 | j                   }|j)                  d«      }|D ]  }t        ||«      }Œ t+        |t
        j,                  «      st        dt%        |«      › �«      ‚|j/                  d¬«      }d| _        n|S t+        |t
        j                  j0                  «      st        d«      ‚|j                  |«       |S # d| _        w xY w# d| _        w xY w# t2        $ r)}t5        j6                  d|› d|› d|› �«       Y d }~|S d }~ww xY w)NÚplaceholderr   r   r5   rH   r   é   Úcall_moduleÚorig_forwardz$orig_forward not set for call_moduleTFÚget_attrú.zExpected Tensor, got r#   z!Dont support composite output yetzCould not compute metadata for z target z: )Úsuperr9   Ú	meta_argsrF   Úorig_fnsr	   r0   r6   r7   rl   r+   ÚgetrP   rJ   r   Ú_disable_module_getattrrb   Úget_submodulerk   ry   Úsplitr/   ÚTensorr$   r1   Ú	ExceptionÚwarningsÚwarn)r   Úkindr<   r:   r;   ÚnameÚ	type_exprÚproxy_factory_fnÚrvÚ
args_metasÚkwargs_metasÚmeta_targetÚmeta_outÚmodÚmod_typeÚattr_itrÚatomsÚatomÚeÚ	__class__s                      €r   r9   zMetaTracer.create_proxyª   s²  ø€ ô ‰WÑ!ØØØØØØàó	
ˆð �=Ò  V¨t¯~©~Ñ%=Ø×"Ñ" 4§>¡>°&Ñ#9Ô:ØˆIà�T—]‘]Ñ"ð ˜6Ñ!Ø#)��xÑ ð.	YÜŸ™Ÿ™×4Ñ4°T¼?ÓKˆJÜ Ÿ8™8Ÿ=™=×6Ñ6°v¼ÓOˆLà�Ò&Ü3×7Ñ7¸ÀÓG�á&¨
ÐC°lÑC’Ø˜Ò&Ü% j°¡m°VÓ<�Ù&¨
°1°2¨ÐG¸,ÑG’Ø˜Ò&Ü˜t ^Ô4Ü(Ð)OÓPÐPØ/3�Ô,ð
9ØŸ)™)×1Ñ1°&Ó9�CÜ# C›y�HØÔ#8Ñ8Ü#8¸Ñ#BØð$Ø",ò$Ø0<ñ$™ð $5 4×#4Ñ#4°jÐ#QÀLÑ#Q˜à38�DÕ0Ø˜Ò#Ø/3�Ô,ð	9Ø#Ÿy™y�HØ"ŸL™L¨Ó-�EØ %ò ;˜Ü#*¨8°TÓ#:™ð;ä% h´·±Ô=Ü,Ð/DÄTÈ(Ã^ÐDTÐ-UÓVÐVØ'Ÿ{™{°&˜{Ó9�Hà38�DÕ0à�	ô ˜b¤%§(¡(§.¡.Ô1Ü$Ð%HÓIÐIØ×"Ñ" 8Ô,ð ˆ	øð/ 49�DÕ0ûð 49�DÕ0ûô ò 	YÜ�M‰MÐ;¸D¸6ÀÈ&ÈÐQSÐTUÐSVÐW×XÐXàˆ	ûð	YúsR   Á"CI' Ä(AI Å;I' ÆA3I È	I' ÈA I' É	IÉI' É	I$É$I' É'	JÉ0JÊJc                 óD   •— t        | dd«      r|S t        ‰| �  |||«      S )Nr€   F)rP   r|   )r   r`   Úattr_valÚparameter_proxy_cacher–   s       €r   rP   zMetaTracer.getattrþ   s)   ø€ Ü�4Ð2°EÔ:ØˆOä‘7‘? 4¨Ð3HÓIÐIr   c                 ó6   •— || _         t        ‰| �	  ||||«      S r   )ry   r|   rx   )r   ÚmÚforwardr:   r;   r–   s        €r   rx   zMetaTracer.call_module  s!   ø€ Ø#ˆÔÜ‰wÑ" 1 g¨t°VÓ<Ð<r   r�   Úreturnc                 ó
  — d}|j                   j                  j                  «       }|› d|› �}t        | j                  |«      r#|› d|› �}|dz  }t        | j                  |«      rŒ#| j                  j                  ||«       |S )zb
        Helper method which tries to insert a module that was not declared as submodule.
        r   Ú_rw   )r–   r[   ÚlowerrJ   rb   Ú
add_module)r   r�   ÚidxÚmod_nameÚpaths        r   Ú_insert_module_as_submodulez&MetaTracer._insert_module_as_submodule  sƒ   € ð ˆØ—=‘=×)Ñ)×/Ñ/Ó1ˆØ�˜1˜S˜EÐ"ˆÜ�d—i‘i Ô&Ø�Z˜q  Ð&ˆDØ�1‰HˆCô �d—i‘i Õ&ð 	�	‰	×Ñ˜T 3Ô'Øˆr   c                 ó$  •— 	 t         ‰| �  |«      S # t        $ rt | j                  rft	        t        |j                  «       «      «      dk(  rAt	        t        |j                  «       «      «      dk(  r| j                  |«      }|| _	        |cY S ‚ w xY w)Nr   )
r|   Úpath_of_moduleÚ	NameErrorro   ÚlenÚlistÚ
parametersÚbuffersr¥   Úprev_module)r   r�   r¤   r–   s      €r   r§   zMetaTracer.path_of_module  s�   ø€ ð	Ü‘7Ñ)¨#Ó.Ð.øÜò 		à×0Ò0Üœ˜SŸ^™^Ó-Ó.Ó/°1Ò4Üœ˜SŸ[™[›]Ó+Ó,°Ò1à×7Ñ7¸Ó<�Ø#'�Ô Ø’Øð		ús   ƒ ’A9BÂBc                 ó   — t        || «      S r   )rB   )r   r6   s     r   r3   zMetaTracer.proxy$  s   € Ü˜˜tÓ$Ð$r   r}   c           
      ó²  •— t        |t        «      st        dt        |«      › �«      ‚|| _        | j
                  D �ci c]  }|t        t        t        |«      «      “Œ c}| _	        t        «       | _        | j                  j                  «       D ]4  \  }\  }}t        t        ||«       | j                  j                  |«       Œ6 	 t        ‰
| �A  ||«      }d|i|_        || j                  j                  «       D ]  \  }\  }	}t        t        ||«       Œ S c c}w # | j                  j                  «       D ]  \  }\  }	}t        t        ||«       Œ w xY w)Nz!Expected dict for meta_args, got r}   )r/   Údictr   rk   r}   Ú_TORCH_METHODS_TO_PATCHr@   rP   r	   Úpatched_torch_methodsÚsetr~   ÚitemsÚsetattrÚaddr|   ÚtraceÚ_tracer_extras)r   rb   r}   Úconcrete_argsr<   rˆ   r=   ÚorigÚgraphrŸ   r–   s             €r   r·   zMetaTracer.trace'  sC  ø€ Ü˜)¤TÔ*Ü Ð#DÄTÈ)Ã_ÐDUÐ!VÓWÐWØ"ˆŒð ×6Ñ6ö&
àð Ô+¬G´E¸6Ó,BÓCÑCò&
ˆÔ"ô ›ˆŒà%)×%?Ñ%?×%EÑ%EÓ%Gò 	$Ñ!ˆD‘/�7˜DÜ”E˜4 Ô)Ø�M‰M×Ñ˜dÕ#ð	$ð	+Ü‘G‘M $¨Ó6ˆEØ$/°Ð#;ˆEÔ Øà#'×#=Ñ#=×#CÑ#CÓ#Eò +‘�‘i�q˜$Üœ˜t TÕ*ñ+ùò&
øð $(×#=Ñ#=×#CÑ#CÓ#Eò +‘�‘i�q˜$Üœ˜t TÕ*ñ+ús   ¾!DÃD Ä8E)NNNr   )r[   r\   r]   ro   ÚboolÚ__annotations__r±   r9   rP   rx   r	   ÚnnÚModulerh   r¥   r§   r3   r°   rƒ   r·   Ú__classcell__)r–   s   @r   rn   rn   ¥   s‹   ø… Ø(,Ð Ó,âMÐð ØØõRôhJô=ð¨u¯x©x¯©ð À3ó ð %§(¡(§/¡/ð °cõ ò%ñ+ T¨#¨u¯|©|Ð*;Ñ%<÷ +ñ +r   rn   rb   .r}   r¹   r�   c                 ó"  — t        «       }|j                  | ||«      }t        | t        j                  j
                  «      r| j                  j                  n| j                  }t        j                  j                  |j                  ||«      }|S r   )rn   r·   r/   r	   r¾   r¿   r–   r[   r0   ÚGraphModulerb   )rb   r}   r¹   r8   r»   rˆ   Úgms          r   Úsymbolic_tracerÄ   ?  si   € ô
 ‹\€FØ�L‰L˜˜y¨-Ó8€Eä#-¨d´E·H±H·O±OÔ#Dˆ�‰×ÒÈ$Ï-É-ð 	ô 
�‰×	Ñ	˜fŸk™k¨5°$Ó	7€BØ€Ir   )F)NN))rO   r>   r…   Úcollections.abcr   Útypingr   r	   Útorch.fxr   r   r   r   r!   r'   r*   r¾   Ú	EmbeddingÚ	LayerNormÚreluÚ
functionalÚReLUÚwhereÚabsr+   r°   r½   r@   r0   r1   rB   rX   rU   rl   ÚTracerrn   r¿   rh   rƒ   rÂ   rÄ   r   r   r   ú<module>rÐ      s€  ðä Û Û Ý $Ý ã Û òKòòòóòSð &*ô ð 
‡H�H×ÑÐ*Ø	‡H�H×ÑÐ-Ø	‡J�JÐ#Ø	‡H�H×Ñ×ÑÐ6Ø	‡H�H‡M�MÐ)Ø	‡K�KÐ%Ø	‡I�IÐ!ð3Ð �t˜H hÐ.Ñ/ó òô*+&�—‘—‘ô +&ô\
�Iô 
ô.	˜-ô 	ò	ôW+�—‘—‘ô W+ðx 15Ø+/ñØ
�(‰(�/‰/˜H S¨# XÑ.Ñ
.ðà�C˜Ÿ™Ð%Ñ&¨Ñ-ðð ˜˜S˜‘> DÑ(ðð ‡X�X×Ñô	r   