§
    ŠŠtj^  ã                   óÜ  — 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 d dl	Z	d dl
mZ d dlmZmZ d dlmZ d dlmZmZmZmZmZmZmZ d dlmZ erd d	lmZ  G d
„ de¦  «        Zdedefd„Z de	j!        j"        ddfd„Z#de	j!        j"        ddfd„Z$de	j!        j"        ddfd„Z% G d„ de&¦  «        Z'dede(defd„Z) G d„ de'¬¦  «        Z* G d„ de*¦  «        Z+d!d„Z,d!d„Z-de(de&e*         fd „Z.dS )"é    N)ÚIterable)ÚAnyÚfinalÚTYPE_CHECKING)Úis_opaque_type)ÚHigherOrderOperatorÚ
OpOverload)Ú
FakeTensor)ÚCustomObjArgumentÚ	InputKindÚSymBoolArgumentÚSymFloatArgumentÚSymIntArgumentÚTensorArgumentÚTokenArgument)ÚGraphModule)ÚExportedProgramc                   ó   — e Zd ZdS )ÚSpecViolationErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úT/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_export/verifier.pyr   r      s   € € € € € Ø€Dr   r   ÚopÚreturnc                 ó   — | j         j         S ©N)Ú_schemaÚ
is_mutable©r   s    r   Úis_functionalr#       s   € ØŒzÔ$Ð$Ð$r   Únodec                 ó    — t          | ¦  «        S r   )Ú
_check_val)r$   s    r   Ú_check_has_fake_tensorr'   $   s   € å�dÑÔÐr   c                 ó  ‡‡‡‡— ddl mŠmŠmŠ ˆˆˆˆfd„Šd„ }d| j        vr5| j        dk    r || j        ¦  «        rd S t          d| j        › d�¦  «        ‚| j        d         } ‰|¦  «        st          d| j        › d	|› �¦  «        ‚d S )
Nr   )ÚSymBoolÚSymFloatÚSymIntc                 ó  •— | €dS t          | t          t          t          t          f¦  «        rdS t          | t
          j        t
          j        t
          j        t
          j	        f¦  «        rdS t          | t          t
          j        f¦  «        rdS t          | ‰‰‰f¦  «        rdS t          | t          ¦  «        rdS t          | t          ¦  «        rt          ˆfd„| D ¦   «         ¦  «        S t          t!          | ¦  «        ¦  «        rdS dS )NTc              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r   r   )Ú.0ÚxÚ_check_correct_vals     €r   ú	<genexpr>z9_check_val.<locals>._check_correct_val.<locals>.<genexpr>>   s/   øè è € Ð:Ð:°Ð)Ð)¨!Ñ,Ô,Ð:Ð:Ð:Ð:Ð:Ð:r   F)Ú
isinstanceÚintÚboolÚstrÚfloatÚtorchÚmemory_formatÚdtypeÚdeviceÚlayoutr
   ÚTensorr   r   Úallr   Útype)Úvalr)   r*   r+   r0   s    €€€€r   r0   z&_check_val.<locals>._check_correct_val,   s  ø€ Øˆ;Ø�4Ý˜�c¥4­­eÐ4Ñ5Ô5ð 	Ø�4ÝØ•%Ô%¥u¤{µE´LÅ%Ä,ÐOñ
ô 
ð 	ð �4ÝØ•*�eœlÐ+ñ
ô 
ð 	ð �4Ý˜˜f h°Ð8Ñ9Ô9ð 	Ø�4Ý˜Õ.Ñ/Ô/ð 	Ø�4Ý˜�XÑ&Ô&ð 	ÝÐ:Ð:Ð:Ð:°cÐ:Ñ:Ô:Ñ:Ô:Ð:Ý�D ™IœIÑ&Ô&ð 	Ø�4Øˆur   c                 ój   — t          | t          ¦  «        sdS t          | j        j        ¦  «        dk    S )NFr   )r2   r	   Úlenr    Úreturnsr"   s    r   Ú_no_returnsz_check_val.<locals>._no_returnsC   s1   € Ý˜"�jÑ)Ô)ð 	Ø�5Ý�2”:Ô%Ñ&Ô&¨!Ò+Ð+r   r?   Úcall_functionú
Node.meta z is missing val field.z has invalid val field )	Ú%torch.fx.experimental.symbolic_shapesr)   r*   r+   Úmetar   Útargetr   Úname)r$   rC   r?   r)   r*   r+   r0   s      @@@@r   r&   r&   )   s÷   øøøø€ ØOÐOÐOÐOÐOÐOÐOÐOÐOÐOðð ð ð ð ð ð ð ð.,ð ,ð ,ð
 �D”IÐÐØŒ7�oÒ%Ð%¨+¨+°d´kÑ*BÔ*BÐ%ØˆFÝ Ð!O¨d¬iÐ!OÐ!OÐ!OÑPÔPÐPà
Œ)�EÔ
€CØÐ˜cÑ"Ô"ð WÝ Ð!U¨d¬iÐ!UÐ!UÐPSÐ!UÐ!UÑVÔVÐVðWð Wr   c                 ó>  — | j                              d¦  «        }|€t          d| j        › �¦  «        ‚t	          |t
          ¦  «        sPt	          |d         t          ¦  «        r7t	          |d         t          ¦  «        rt          d| j        › d|› �¦  «        ‚d S d S d S )NÚtorch_fnz*Unable to find torch_fn metadata for node r   é   rE   z has invalid torch_fn field )rG   Úgetr   rI   r2   Útupler5   )r$   rK   s     r   Ú_check_torch_fnrO   R   sÃ   € ØŒy�}Š}˜ZÑ(Ô(€HØÐÝ ØD¸¼ÐDÐDñ
ô 
ð 	
õ �x¥Ñ'Ô'ð
å�x ”{¥CÑ(Ô(ð
õ �x ”{¥CÑ(Ô(ð
õ
 !ØJ˜œÐJÐJÀÐJÐJñ
ô 
ð 	
ð
ð 
ð 
ð 
ð 
ð 
r   c                   ó@   — e Zd ZU i Zeeed         f         ed<   d„ ZdS )Ú_VerifierMetaÚVerifierÚ	_registryc                 ó  — |rMd|v sd|v rt          d¦  «        ‚d|vs|d         dk    r%t          d|                     d¦  «        › �¦  «        ‚nJd|vrt          d¦  «        ‚d|vrt          d¦  «        ‚|d         dk    rt          d	|d         › �¦  «        ‚t          |d         t          ¦  «        s%t          d
t          |d         ¦  «        › �¦  «        ‚t
                               | |||¦  «        }|| j        |d         <   |S )NÚcheckÚ_check_graph_modulez'Overriding method check is not allowed.ÚdialectÚATENz,subclass must define dialect != 'ATEN', got z%base class must define 'check' methodz3base class must define '_check_graph_module' methodz'base class dialect must be 'ATEN', got zdialect must be str, got )ÚSyntaxErrorÚAssertionErrorrM   r2   r5   r>   Ú__new__rS   )ÚmetaclsrI   ÚbasesÚattrsÚrets        r   r[   z_VerifierMeta.__new__e   sT  € Øð 	Ø˜%ÐÐÐ#8¸EÐ#AÐ#AÝ!Ð"KÑLÔLÐLØ Ð%Ð%¨¨yÔ)9¸VÒ)CÐ)CÝ$ØYÀ5Ç9Â9ÈYÑCWÔCWÐYÐYñô ð ð *Dð
 ˜eÐ#Ð#Ý$Ð%LÑMÔMÐMØ$¨EÐ1Ð1Ý$ØIñô ð ð �YÔ 6Ò)Ð)Ý$ØP¸eÀIÔ>NÐPÐPñô ð õ ˜% 	Ô*­CÑ0Ô0ð 	WÝ Ð!U½TÀ%È	ÔBRÑ=SÔ=SÐ!UÐ!UÑVÔVÐVÝ�lŠl˜7 D¨%°Ñ7Ô7ˆØ.1ˆÔ˜% 	Ô*Ñ+Øˆ
r   N)	r   r   r   rS   Údictr5   r>   Ú__annotations__r[   r   r   r   rQ   rQ   b   sD   € € € € € € Ø-/€Iˆt�C˜˜jÔ)Ð)Ô*Ð/Ð/Ñ/ðð ð ð ð r   rQ   ÚobjrH   c           	      óø   — |                      d¦  «        }| }t          |¦  «        D ]R\  }}t          ||¦  «        s-t          dd                     |d |…         ¦  «        › �¦  «        ‚t          ||¦  «        }ŒS|S )Nú.z#Node referenced nonexistent target )ÚsplitÚ	enumerateÚhasattrÚRuntimeErrorÚjoinÚgetattr)rb   rH   Útarget_atomsÚattr_itrÚiÚatoms         r   Úgetattr_recursivero   €   s�   € Ø—<’< Ñ$Ô$€LØ€HÝ˜\Ñ*Ô*ð +ð +‰ˆˆ4Ý�x Ñ&Ô&ð 	ÝØR°c·h²h¸|ÈBÈQÈBÔ?OÑ6PÔ6PÐRÐRñô ð õ ˜8 TÑ*Ô*ˆˆØ€Or   c                   óø   — e Zd ZdZdefd„Zdeee         df         fd„Z	deee         df         fd„Z
deee         df         fd„Zd„ Zd	edd
fd„Zedd„¦   «         Zed	ej        j        dd
fd„¦   «         Zd
S )rR   rX   r   c                 ó"  — t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j	        t           j
        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t,          j        t,          j        t,          j        t4          gS r   )ÚoperatorÚgetitemÚaddÚmulÚsubÚtruedivÚgeÚleÚgtÚltÚeqÚneÚfloordivÚmodÚand_Úor_Únot_ÚpowÚnegÚabsÚlshiftÚrshiftÚmathÚceilÚfloorÚtruncÚround©Úselfs    r   Úallowed_builtin_opszVerifier.allowed_builtin_ops�   sŠ   € åÔÝŒLÝŒLÝŒLÝÔÝŒKÝŒKÝŒKÝŒKÝŒKÝŒKÝÔÝŒLÝŒMÝŒLÝŒMÝŒLÝŒLÝŒLÝŒOÝŒOÝŒIÝŒJÝŒJÝð3
ð 	
r   .c                 ó   — t           t          fS r   )r	   r   r�   s    r   Úallowed_op_typeszVerifier.allowed_op_types¬   s   € ÝÕ/Ð0Ð0r   c                 óP   — t           j        j        t           j        j        j        fS r   )r7   Úfxr   ÚutilsÚ_pytreeÚTreeSpecr�   s    r   Úallowed_getattr_typeszVerifier.allowed_getattr_types¯   s   € Ý”Ô$¥e¤kÔ&9Ô&BÐCÐCr   c                 ó�   — t           j        j        t           j        j        j        t           j        t           j        j        j	        fS r   )
r7   r“   r   ÚnnÚ	parameterÚ	Parameterr<   r”   r•   r–   r�   s    r   Úallowed_getattr_types_for_subgmz(Verifier.allowed_getattr_types_for_subgm²   s1   € õ ŒHÔ ÝŒHÔÔ(ÝŒLÝŒKÔÔ(ð	
ð 	
r   c                 ó   — d S r   r   )rŽ   r   s     r   Úcheck_valid_opzVerifier.check_valid_op»   s   € Øˆr   ÚgmNc                 ó   — dS )zG
        Additional checks that are specific to some dialects.
        Nr   )rŽ   rŸ   s     r   Úcheck_additionalzVerifier.check_additional¾   s   € € € r   Úepr   c                 óv   — |                       |j        ¦  «         t          |¦  «         t          |¦  «         d S r   )rV   Úgraph_moduleÚ*_verify_exported_program_module_call_graphÚ"_verify_exported_program_signature)rŽ   r¢   s     r   rU   zVerifier.checkÃ   s:   € à× Ò  ¤Ñ1Ô1Ð1Ý2°2Ñ6Ô6Ð6Ý*¨2Ñ.Ô.Ð.Ð.Ð.r   c                 ó€  ‡ ‡— dt           t          t                   df         fˆ fd„}dˆ fd„}|                     ¦   «         D �]å}||u }t	          |t
          j        j        ¦  «        sŒ'|j         	                    ¦   «          |j        j
        D �]—}|j        dv rt          d|j        › d�¦  «        ‚|j        dk    r t          |¦  «          ||j        ¦  «         ŒO|j        d	k    �r"t	          |j        t          ¦  «        s$t          d
t          |j        ¦  «        › �¦  «        ‚t!          ||j        ¦  «        Št	          ‰t
          j        j        ¦  «        �raˆfd„}t          ‰¦  «        j        dk    �r |dt          ¦  «        r7t)          ‰d¦  «        r't)          ‰d¦  «        rt+          ‰dd ¦  «        dk    r�Œ4 |dt          ¦  «        r4 |dt,          ¦  «        r# |dt.          ¦  «        rt)          ‰d¦  «        r�Œyt+          ‰dd ¦  «        }t+          ‰dd ¦  «        }	t+          ‰dd ¦  «        }
t          dt          ‰¦  «        › dt          |¦  «        › dt          |	¦  «        › dt          |
¦  «        › �¦  «        ‚t          ‰¦  «        j        dk    r�Œt          ‰¦  «        j        dk    r�Œ/t	          ‰ ||¦  «        ¦  «        s3t          dt          ‰¦  «        › d|j        › d ||¦  «        › �¦  «        ‚�Œ}|j        dk    rt          |¦  «         �Œ™�Œç‰                      |¦  «         d S )Nr   .c                 ó®   •— | r‰                      ¦   «         }n‰                     ¦   «         }t          d„ |D ¦   «         ¦  «        rt          d¦  «        ‚|S )Nc              3   ó(   K  — | ]}|t           u V — Œd S r   ©Úobject©r.   Úts     r   r1   zOVerifier._check_graph_module.<locals>._allowed_getattr_types.<locals>.<genexpr>Ð   s&   è è € Ð,Ð, 1�1��;Ð,Ð,Ð,Ð,Ð,Ð,r   z/allowed_getattr_types must not contain 'object')r—   rœ   ÚanyrZ   )Úis_toplevel_gmr_   rŽ   s     €r   Ú_allowed_getattr_typesz<Verifier._check_graph_module.<locals>._allowed_getattr_typesË   sc   ø€ Øð =Ø×0Ò0Ñ2Ô2��à×:Ò:Ñ<Ô<�ÝÐ,Ð,¨Ð,Ñ,Ô,Ñ,Ô,ð XÝ$Ð%VÑWÔWÐWØˆJr   c                 óh  •— dt           fˆfd„}dt          t          t                   df         fˆfd„}t          j        j        j        t          j        t          j	        t          j
        t          j        t          j        t          j        t          j        t          j        t          j        j        j        t          j        j        t          j        j        j        t          j        j        j        t          j        j        j        j        t          j        j        j        t          j        j        j         t          j        j        j!        t          j        j        j"        t          j        j        j#        t          j        j        j$        t          j        j        j%        t          j        j        j&        t          j        j        j'        t          j        j        j(        t          j        j        j)        t          j        j        j*        f}tW          |  |¦   «         ¦  «        s;|  |¦   «         vr/| |vr+tY          d| › d |¦   «         › d |¦   «         › d|› �¦  «        ‚tW          | tZ          ¦  «        r-‰j.        d	k    r"t_          | ¦  «        stY          d
| › d�¦  «        ‚‰ 0                    | ¦  «         d S )Nr   c                  ó€   •— ‰                      ¦   «         } t          d„ | D ¦   «         ¦  «        st          d¦  «        ‚| S )Nc              3   ó>   K  — | ]}t          j        |¦  «        V — Œd S r   )ÚinspectÚ	isbuiltin)r.   r   s     r   r1   zfVerifier._check_graph_module.<locals>._check_valid_op.<locals>._allowed_builtin_ops.<locals>.<genexpr>×   s-   è è € Ð?Ð?°R�7Ô,¨RÑ0Ô0Ð?Ð?Ð?Ð?Ð?Ð?r   z(allowed_builtin_ops must all be builtins)r�   r=   rZ   ©r_   rŽ   s    €r   Ú_allowed_builtin_opszSVerifier._check_graph_module.<locals>._check_valid_op.<locals>._allowed_builtin_opsÕ   sH   ø€ Ø×.Ò.Ñ0Ô0�ÝÐ?Ð?¸3Ð?Ñ?Ô?Ñ?Ô?ð UÝ(Ð)SÑTÔTÐTØ�
r   .c                  ó€   •— ‰                      ¦   «         } t          d„ | D ¦   «         ¦  «        rt          d¦  «        ‚| S )Nc              3   ó(   K  — | ]}|t           u V — Œd S r   rª   r¬   s     r   r1   zcVerifier._check_graph_module.<locals>._check_valid_op.<locals>._allowed_op_types.<locals>.<genexpr>Ý   s&   è è € Ð0Ð0 q�q�F�{Ð0Ð0Ð0Ð0Ð0Ð0r   z*allowed_op_types must not contain 'object')r‘   r®   rZ   r¶   s    €r   Ú_allowed_op_typeszPVerifier._check_graph_module.<locals>._check_valid_op.<locals>._allowed_op_typesÛ   sH   ø€ Ø×+Ò+Ñ-Ô-�ÝÐ0Ð0¨CÐ0Ñ0Ô0Ñ0Ô0ð WÝ(Ð)UÑVÔVÐVØ�
r   z
Operator 'z#' is not an allowed operator type: z
Valid builtin ops: zValid torch functions: ÚTRAININGz
operator 'z' is not functional)1ÚlistrN   r>   r   r7   ÚautogradÚ	grad_modeÚset_grad_enabledÚsym_intÚ	sym_floatÚsym_iteÚsym_maxÚsym_minÚsym_notÚsym_sqrtÚsym_sumÚexportÚ
custom_opsÚ._call_custom_autograd_function_in_pre_dispatchÚ_CÚ_set_grad_enabledÚampÚautocast_modeÚ_enter_autocastÚ_exit_autocastr“   ÚexperimentalÚsymbolic_shapesÚ cast_symbool_to_symint_guardlessÚ
_functorchÚpredispatchÚ_add_batch_dimÚ_remove_batch_dimÚ_vmap_increment_nestingÚ_vmap_decrement_nestingÚlazy_load_decompositionsÚ
_make_dualÚ_unpack_dualÚ_jvp_increment_nestingÚ_jvp_decrement_nestingÚ_unwrap_for_gradÚ_enter_dual_levelÚ_exit_dual_levelr2   r   r	   rW   r#   rž   )r   r·   rº   Ú_allowed_torch_functionsrŽ   s       €r   Ú_check_valid_opz5Verifier._check_graph_module.<locals>._check_valid_opÔ   sj  ø€ ð­$ð ð ð ð ð ð ð¥u­Tµ#¬Y¸¨^Ô'<ð ð ð ð ð ð õ ”Ô(Ô9Ý”Ý”Ý”Ý”Ý”Ý”Ý”Ý”Ý”Ô'ÔVõ ”Ô*Ý”	Ô'Ô7Ý”	Ô'Ô6Ý”Ô%Ô5ÔVÝÔ Ô,Ô;ÝÔ Ô,Ô>ÝÔ Ô,ÔDÝÔ Ô,ÔDÝÔ Ô,ÔEÝÔ Ô,Ô7ÝÔ Ô,Ô9ÝÔ Ô,ÔCÝÔ Ô,ÔCÝÔ Ô,Ô=ÝÔ Ô,Ô>ÝÔ Ô,Ô=ð;(Ð$õ@ ˜bÐ"3Ð"3Ñ"5Ô"5Ñ6Ô6ð 	àÐ2Ð2Ñ4Ô4Ð4Ð4ØÐ":Ð:Ð:å,ðM Rð Mð MÐL]ÐL]ÑL_ÔL_ð Mð MØ.BÐ.BÑ.DÔ.DðMð Mà2JðMð Mñô ð õ ˜"�jÑ)Ô)ð Sð ”< :Ò-Ð-µmÀBÑ6GÔ6GÐ-Ý,Ð-Q¸"Ð-QÐ-QÐ-QÑRÔRÐRØ×Ò Ñ#Ô#Ð#Ð#Ð#r   >   Úcall_methodÚcall_modulez'call_module is not valid: got a class 'z' rD   Úget_attrz/Expected get_attr target to be string, but got c                 óB   •— t          t          ‰| d ¦  «        |¦  «        S r   )r2   rj   )rI   ÚtyÚattrs     €r   Ú_is_typez.Verifier._check_graph_module.<locals>._is_type0  s   ø€ Ý#-­g°d¸DÀ$Ñ.GÔ.GÈÑ#LÔ#LÐLr   ÚLoweredBackendModuleÚ
backend_idÚoriginal_moduleÚmodule_nameÚaotiÚprocessed_bytesÚcompile_specszInvalid get_attr type z2. 
LoweredBackendModule fields: backend_id(str) : z, processed_bytes(bytes) : z, compile_specs(list) : ÚAOTInductorEPModuleÚAOTInductorRunnerWrapperz on target z. 
Valid get_attr types: Úplaceholder©r   N)rN   r>   r   Úmodulesr2   r7   r“   r   ÚgraphÚlintÚnodesr   r   rH   r&   r5   ro   r™   ÚModuler   rg   rj   Úbytesr¼   r¡   )rŽ   rŸ   r°   rã   r   r¯   r$   rê   rì   rð   rñ   ré   s   `          @r   rV   zVerifier._check_graph_moduleÉ   s  øø€ ð	µe½DÅ¼IÀs¸NÔ6Kð 	ð 	ð 	ð 	ð 	ð 	ð>	$ð >	$ð >	$ð >	$ð >	$ð >	$ð@ —:’:‘<”<ð F	%ñ F	%ˆCØ  B˜YˆNå˜c¥5¤8Ô#7Ñ8Ô8ð ØàŒI�NŠNÑÔÐØœ	œð ?%ñ ?%�à”7Ð<Ð<Ð<Ý,ØQÀ$Ä+ÐQÐQÐQñô ð ð ”W Ò/Ð/Ý˜tÑ$Ô$Ð$à#�O D¤KÑ0Ô0Ð0Ð0à”W 
Ò*Ñ*Ý% d¤kµ3Ñ7Ô7ð Ý0ØaÍdÐSWÔS^ÑN_ÔN_ÐaÐañô ð õ -¨S°$´+Ñ>Ô>�DÝ! $­¬¬Ñ8Ô8ñ #%ðMð Mð Mð Mð Mõ   ™:œ:Ô.Ð2HÒHÑHà ( ¨µsÑ ;Ô ;ð)å$+¨DÐ2CÑ$DÔ$Dð)õ %,¨D°-Ñ$@Ô$@ð)õ %,¨D°,ÀÑ$EÔ$EÈÒ$OÐ$Oá (à ( ¨µsÑ ;Ô ;ð"à$, HÐ->ÅÑ$FÔ$Fð"ð %- H¨_½dÑ$CÔ$Cð"õ %,¨DÐ2CÑ$DÔ$Dð	"ñ !)å-4°T¸<ÈÑ-NÔ-N 
Ý29¸$Ð@QÐSWÑ2XÔ2X Ý07¸¸oÈtÑ0TÔ0T Ý&8ð%S½TÀ$¹Z¼Zð %Sð %Så9=¸jÑ9IÔ9Ið%Sð %Sõ AEÀ_Ñ@UÔ@Uð%Sð %Sõ >BÀ-Ñ=PÔ=Pð	%Sð %Sñ'"ô '"ð !"õ " $™ZœZÔ0Ð4IÒIÐIÙ$å! $™ZœZÔ0Ð4NÒNÐNÙ$å% dÐ,BÐ,BÀ>Ñ,RÔ,RÑSÔSð Ý0ð^µT¸$±Z´Zð ^ð ^ÈDÌKð ^ð ^Ø5KÐ5KÈNÑ5[Ô5[ð^ð ^ñô ð ñð ”W Ò-Ð-Ý˜tÑ$Ô$Ð$ùñ?%ðH 	×Ò˜bÑ!Ô!Ð!Ð!Ð!r   )r¢   r   r   N)r   r   r   rW   r¼   r�   rN   r>   r   r‘   r—   rœ   rž   r   r¡   r   rU   r7   r“   rV   r   r   r   rR   rR   Œ   s=  € € € € € Ø€Gð
 Tð 
ð 
ð 
ð 
ð:1 %¨¨S¬	°3¨Ô"7ð 1ð 1ð 1ð 1ðD u¨T°#¬Y¸¨^Ô'<ð Dð Dð Dð Dð
°°t¸C´yÀ#°~Ô1Fð 
ð 
ð 
ð 
ðð ð ð ;ð °4ð ð ð ð ð
 ð/ð /ð /ñ „Uð/ð
 ðU" e¤hÔ&:ð U"¸tð U"ð U"ð U"ñ „UðU"ð U"ð U"r   rR   )Ú	metaclassc                   ó   — e Zd ZdZdS )ÚTrainingIRVerifierr»   N)r   r   r   rW   r   r   r   rþ   rþ   b  s   € € € € € Ø€G€G€Gr   rþ   c                 ó4  — | j         }d„ | j        j        D ¦   «         }|D ]w}|j        �n|j        j        D ]*}|j        r!|j        |vrt          d|j        › d�¦  «        ‚Œ+|j        j        D ]*}|j        r!|j        |vrt          d|j        › d�¦  «        ‚Œ+Œxd S )Nc                 ó   — h | ]	}|j         ’Œ
S r   ©rI   ©r.   r$   s     r   ú	<setcomp>z=_verify_exported_program_module_call_graph.<locals>.<setcomp>h  s   € Ð@Ð@Ð@˜4ˆTŒYÐ@Ð@Ð@r   zInput z does not exist in the graph.zOutput )Úmodule_call_graphr÷   rù   Ú	signatureÚinputsrI   r   Úoutputs)Úexported_programr  rù   ÚentryÚargs        r   r¥   r¥   f  sã   € Ø(Ô:ÐØ@Ð@Ð#3Ô#9Ô#?Ð@Ñ@Ô@€EØ"ð ð ˆØŒ?Ð&Ø”Ô-ð ð �Ø”8ð  ¤°Ð 5Ð 5Ý,ØH ¤ÐHÐHÐHñô ð øð ”Ô.ð ð �Ø”8ð  ¤°Ð 5Ð 5Ý,ØI #¤(ÐIÐIÐIñô ð øøðð r   c           
      óÐ  — | j         }d }d„ | j        j        D ¦   «         }t          |¦  «        t          |j        ¦  «        k    r‰d„ |j        D ¦   «         }t          |¦  «        t          |¦  «        z
  }t          |¦  «        t          |¦  «        z
  }t          dt          |¦  «        › dt          |j        ¦  «        › d|› d|› �¦  «        ‚t          |j        |¦  «        D �]Ø\  }}t          |j	        t          t          t          t          f¦  «        r/|j	        j        |k    rt          d|j	        j        › d|› �¦  «        ‚|j        t           j        k    rŒx|j        t           j        k    r»t          |j	        t          ¦  «        s t          d	|j        › d
|j	        › d�¦  «        ‚|j        €t          d|j        › d�¦  «        ‚|j        }	|	| j        vrt          d	|	› d�¦  «        ‚t          | j        |	         t*          j        j        ¦  «        st          d|	› d�¦  «        ‚�ŒH|j        t           j        k    rît          |j	        t          ¦  «        s t          d|j        › d
|j	        › d�¦  «        ‚|j        €t          d|j        › d�¦  «        ‚|j        }
|j        €t          d|
› d�¦  «        ‚|j        du rD|
| j        vr;|
| j        vr2|€| j                             ¦   «         }|
|vrt          d|
› d�¦  «        ‚|j        du r|
| j        v rt          d|
› d�¦  «        ‚�ŒK|j        t           j        k    r~t          |j	        t          ¦  «        s t          d|j        › d
|j	        › d�¦  «        ‚|j        €t          d|j        › d�¦  «        ‚|j        }|| j        vrt          d|› d�¦  «        ‚�ŒÞ|j        t           j        k    r~t          |j	        t<          ¦  «        s t          d|j        › d|j	        › d�¦  «        ‚|j        €t          d|j        › d�¦  «        ‚|j        }|| j        vrt          d|› d�¦  «        ‚�Œq|j        t           j        k    r<t          |j	        t@          ¦  «        s t          d|j        › d
|j	        › d�¦  «        ‚�ŒÂt          d|j        › d�¦  «        ‚tC          | j        j        ¦  «        d         }|j"        dk    rtG          d|j"        › �¦  «        ‚d „ |j$        d!         D ¦   «         }t          |¦  «        t          |j%        ¦  «        k    r‰d"„ |j%        D ¦   «         }t          |¦  «        t          |¦  «        z
  }t          |¦  «        t          |¦  «        z
  }t          d#t          |¦  «        › d$t          |j%        ¦  «        › d%|› d&|› �¦  «        ‚t          |j&        ¦  «        }t          |j'        ¦  «        t          |j(        ¦  «        z   t          |j)        ¦  «        z   |z   }|||…         }|||t          |j*        ¦  «        z   …         }|D ]æ}||j'        v r8|j'        |         |j+        vr#t          d'|› d(|j'        › d)|j+        › d*�¦  «        ‚ŒC||j(        v r8|j(        |         |j,        vr#t          d+|› d,|j(        › d-|j,        › d*�¦  «        ‚Œ„||j)        v r8|j)        |         |j-        vr#t          d.|› d/|j)        › d0|j-        › d*�¦  «        ‚ŒÅt          d1|› d2|j'        › d3|j)        › �¦  «        ‚t          ||j*        ¦  «        D ]&\  }}||k    rt          d4|› d5|j*        › d6�¦  «        ‚Œ'd S )7Nc                 ó2   — g | ]}|j         d k    ¯|j        ‘ŒS )rô   )r   rI   r  s     r   ú
<listcomp>z6_verify_exported_program_signature.<locals>.<listcomp>€  s-   € ð ð ð Ø¸d¼gÈÒ>VÐ>VˆŒ	Ð>VÐ>VÐ>Vr   c                 óP   — g | ]#}t          |j        d ¦  «        ¯|j        j        ‘Œ$S r  )rg   r
  rI   ©r.   Úspecs     r   r  z6_verify_exported_program_signature.<locals>.<listcomp>…  s=   € ð 
ð 
ð 
Ø"½ÀÄÈ&Ñ8QÔ8Qð
ØŒHŒMð
ð 
ð 
r   zNumber of graph inputs (z:) does not match number of inputs in the graph signature (z$)
Placeholders missing input_specs: z#
Input_specs missing placeholders: zInput spec name z does not match node name z
Parameter z! is not a tensor argument. Found z	 instead.zInputSpec for z has no target.z is not in the state dict.zState dict entry for parameter z* is not an instance of torch.nn.Parameter.zBuffer z is missing a persistence flagTFzNon-persistent buffer z( is in the state dict, it should not be.zConstant tensor z$ is not in the constants dictionary.zCustom object z( is not a custom object argument. Found zUnknown InputKind rd   éÿÿÿÿÚoutputzlast node must be output, got c                 ó^   — g | ]*}t          |t          j        j        ¦  «        r|j        n|‘Œ+S r   )r2   r7   r“   ÚNoderI   )r.   r
  s     r   r  z6_verify_exported_program_signature.<locals>.<listcomp>   sA   € ð ð ð àõ ˜s¥E¤H¤MÑ2Ô2Ð;ˆŒˆ¸ðð ð r   r   c                 óx   — g | ]7}t          |j        d ¦  «        r|j        j        nt          |j        ¦  «        ‘Œ8S r  )rg   r
  rI   r5   r  s     r   r  z6_verify_exported_program_signature.<locals>.<listcomp>  sI   € ð 
ð 
ð 
àõ % T¤X¨vÑ6Ô6ÐIˆDŒHŒMˆM½CÀÄ¹M¼Mð
ð 
ð 
r   zNumber of output nodes zK is different Than the number of outputs specified by the graph signature: z
Nodes missing output_specs: z
Output_specs missing nodes: zBuffer output zV does not point to a buffer that exists. 
Dict of buffers that are mutated, in order: z 
Buffer nodes available: z 
zParameter output z\ does not point to a parameter that exists. 
Dict of parameters that are mutated, in order: z 
Parameter nodes available: zUser input output z^ does not point to a user input that exists. 
Dict of user inputs that are mutated, in order: z 
User input nodes available: zMutation node z: is neither a buffer nor a user input. Buffers to mutate: z, User inputs to mutate: zUser output zY is not in the correct order or is not found in the exported program's user_output list: z. ).Úgraph_signaturer÷   rù   rA   Úinput_specsÚsetr   Úzipr2   r
  r   r   r   r   rI   Úkindr   Ú
USER_INPUTÚ	PARAMETERrH   Ú
state_dictr7   r™   r›   ÚBUFFERÚ
persistentÚ	constantsr¤   ÚCONSTANT_TENSORÚ
CUSTOM_OBJr   ÚTOKENr   r¼   r   rZ   ÚargsÚoutput_specsÚoutput_tokensÚbuffers_to_mutateÚparameters_to_mutateÚuser_inputs_to_mutateÚuser_outputsÚbuffersÚ
parametersÚuser_inputs)r  ÚgsÚ_gm_state_dictÚinput_node_namesÚinput_spec_namesÚmissing_in_specsÚmissing_in_graphÚ
input_specr$   ÚparamÚbufferÚtensor_constÚ
custom_objÚoutput_nodeÚoutput_nodesÚoutput_spec_namesÚmissing_out_specsÚmissing_out_graphÚ
num_tokensÚendÚmutate_nodesÚuser_output_nodesÚmutation_nodeÚuser_output_nodeÚuser_output_names                            r   r¦   r¦   w  s
  € à	Ô	)€Bð #'€Nðð Ø.Ô4Ô:ðñ ô Ðõ ÐÑÔ¥ B¤NÑ 3Ô 3Ò3Ð3ð
ð 
Ø&(¤nð
ñ 
ô 
Ðõ Ð/Ñ0Ô0µ3Ð7GÑ3HÔ3HÑHÐÝÐ/Ñ0Ô0µ3Ð7GÑ3HÔ3HÑHÐÝ ðD¥sÐ+;Ñ'<Ô'<ð Dð DÝGJÈ2Ì>ÑGZÔGZðDð Dà1AðDð Dð 2BðDð Dñ
ô 
ð 	
õ   ¤Ð0@ÑAÔAð iNñ iNÑˆ
�DÝØŒNÝ�^Õ-=½ÐOñ
ô 
ð 	ð Œ~Ô" dÒ*Ð*Ý(Ø\ z¤~Ô':Ð\Ð\ÐVZÐ\Ð\ñô ð ð Œ?�iÔ2Ò2Ð2ØàŒ_¥	Ô 3Ò3Ð3Ý˜jœn­nÑ=Ô=ð Ý(Øl ¤ÐlÐlÐS]ÔSaÐlÐlÐlñô ð ð Ô Ð(Ý(ØE Z¤_ÐEÐEÐEñô ð ð Ô%ˆEØÐ,Ô7Ð7Ð7Ý(Ð)W°eÐ)WÐ)WÐ)WÑXÔXÐXåÐ.Ô9¸%Ô@Å%Ä(ÔBTÑUÔUð Ý(Øg°eÐgÐgÐgñô ð ñð
 Œ_¥	Ô 0Ò0Ð0Ý˜jœn­nÑ=Ô=ð Ý(Øi˜jœoÐiÐiÐPZÔP^ÐiÐiÐiñô ð ð Ô Ð(Ý(ØE Z¤_ÐEÐEÐEñô ð ð  Ô&ˆFØÔ$Ð,Ý(ØD˜fÐDÐDÐDñô ð ð
 Ô%¨Ð-Ð-ØÐ"2Ô"=Ð=Ð=ð Ð!1Ô!;Ð;Ð;Ø%Ð-Ø)9Ô)F×)QÒ)QÑ)SÔ)S˜Ø ^Ð3Ð3Ý0ØH fÐHÐHÐHñô ð ð Ô$¨Ð-Ð-°&Ð<LÔ<WÐ2WÐ2WÝ(Ø]¨VÐ]Ð]Ð]ñô ð ùð Œ_¥	Ô 9Ò9Ð9Ý˜jœn­nÑ=Ô=ð Ý(Ør z¤ÐrÐrÐYcÔYgÐrÐrÐrñô ð ð Ô Ð(Ý(ØE Z¤_ÐEÐEÐEñô ð ð &Ô,ˆLØÐ#3Ô#=Ð=Ð=Ý(ØY |ÐYÐYÐYñô ð ñ >ð Œ_¥	Ô 4Ò4Ð4Ý˜jœnÕ.?Ñ@Ô@ð Ý(Øw Z¤_ÐwÐwÐ^hÔ^lÐwÐwÐwñô ð ð Ô Ð(Ý(ØE Z¤_ÐEÐEÐEñô ð ð $Ô*ˆJØÐ!1Ô!;Ð;Ð;Ý(ØU ZÐUÐUÐUñô ð ñ <ð Œ_¥	¤Ò/Ð/Ý˜jœn­mÑ<Ô<ð Ý(Ør z¤ÐrÐrÐYcÔYgÐrÐrÐrñô ð ñõ
 %Ð%L¸*¼/Ð%LÐ%LÐ%LÑMÔMÐMõ Ð'Ô-Ô3Ñ4Ô4°RÔ8€KØ„~˜Ò!Ð!ÝÐN¸k¼nÐNÐNÑOÔOÐOðð àÔ# AÔ&ðñ ô €Lõ
 ˆ<ÑÔ�C ¤Ñ0Ô0Ò0Ð0ð
ð 
àœð
ñ 
ô 
Ðõ   Ñ-Ô-µÐ4EÑ0FÔ0FÑFÐÝÐ 1Ñ2Ô2µS¸Ñ5FÔ5FÑFÐÝ ð?¥c¨,Ñ&7Ô&7ð ?ð ?ÝLOÐPRÔP_ÑL`ÔL`ð?ð ?à+<ð?ð ?ð ,=ð?ð ?ñ
ô 
ð 	
õ �RÔ%Ñ&Ô&€JåˆBÔ Ñ!Ô!Ý
ˆbÔ%Ñ
&Ô
&ñ	'å
ˆbÔ&Ñ
'Ô
'ñ	(ð ñ	ð ð +¨:°c¨>Ô:€LØ$ S¨3µ°R´_Ñ1EÔ1EÑ+EÐ%EÔFÐà%ð ð ˆØ˜BÔ0Ð0Ð0ØÔ# MÔ2¸"¼*ÐDÐDÝ(ð? ]ð ?ð ?ØCEÔCWð?ð ?à/1¬zð?ð ?ð ?ñô ð ð Eð ˜bÔ5Ð5Ð5ØÔ& }Ô5¸R¼]ÐJÐJÝ(ðE¨ð Eð EØFHÔF]ðEð Eà24´-ðEð Eð Eñô ð ð Kð ˜bÔ6Ð6Ð6ØÔ'¨Ô6¸b¼nÐLÐLÝ(ðG¨ð Gð GØGIÔG_ðGð Gà35´>ðGð Gð Gñô ð ð Mõ %ðp ð pð pØ&(Ô&:ðpð pØUWÔUmðpð pñô ð õ
 /2Ð2CÀRÄ_Ñ.UÔ.Uð ð Ñ*ÐÐ*ØÐ/Ò/Ð/Ý$ðLÐ/ð Lð Là8:¼ðLð Lð Lñô ð ð 0ðð r   rW   c                 óˆ   — | dk    s| dk    r%t           j                             | t          ¦  «        S t           j        |          S )NrX   Ú )rQ   rS   rM   rR   )rW   s    r   Úload_verifierrG  B  s<   € Ø�&ÒÐ˜G ršM˜MÝÔ&×*Ò*¨7µHÑ=Ô=Ð=ÝÔ" 7Ô+Ð+r   rõ   )/r´   rˆ   rr   Úcollections.abcr   Útypingr   r   r   r7   Útorch._library.opaque_objectr   Ú
torch._opsr   r	   Útorch._subclasses.fake_tensorr
   Útorch.export.graph_signaturer   r   r   r   r   r   r   Útorch.fxr   Útorch.export.exported_programr   Ú	Exceptionr   r4   r#   r“   r  r'   r&   rO   r>   rQ   r5   ro   rR   rþ   r¥   r¦   rG  r   r   r   ú<module>rQ     s÷  ðà €€€Ø €€€Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à €€€Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð !Ð  Ð  Ð  Ð  Ð  ð ð >Ø=Ð=Ð=Ð=Ð=Ð=ð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ð%�jð % Tð %ð %ð %ð %ð ¤¤ð °4ð ð ð ð ð
&W�U”X”]ð &W tð &Wð &Wð &Wð &WðR
˜%œ(œ-ð 
¨Dð 
ð 
ð 
ð 
ð ð ð ð ð �Dñ ô ð ð<	˜3ð 	¨ð 	°ð 	ð 	ð 	ð 	ðS"ð S"ð S"ð S"ð S"˜ð S"ñ S"ô S"ð S"ðlð ð ð ð ˜ñ ô ð ðð ð ð ð"Hð Hð Hð HðV,˜3ð , 4¨¤>ð ,ð ,ð ,ð ,ð ,ð ,r   