§
    ÏÁ³gS  ã                   ó   — d dl Z d dlZd dlZd dlZd„ Zd„ Z ej        e¦  «        ZdZ	dZ
ej                             e
d¦  «        Ze€$e                     de
› d�¦  «          e¦   «         Z	n8e                     de› d�¦  «          e¦   «         Z	e	                     e¦  «         d	Z ed
„ e	D ¦   «         ¦  «        Zer^	 e                     d¦  «         ddlT e                     d¦  «         dZn,# e$ r$Ze                     de›�¦  «         d	ZY dZ[ndZ[ww xY w ed„ e	D ¦   «         ¦  «        Zer^	 e                     d¦  «         ddlT e                     d¦  «         dZn,# e$ r$Ze                     de›�¦  «         d	ZY dZ[ndZ[ww xY wde	v Zer`es^	 e                     d¦  «         ddlT e                     d¦  «         dZn,# e$ r$Ze                     de›�¦  «         d	ZY dZ[ndZ[ww xY wde	v Zer`es^	 e                     d¦  «         ddlT e                     d¦  «         dZn,# e$ r$Ze                     de›�¦  «         d	ZY dZ[ndZ[ww xY wes0e                     d¦  «         ddlT e                     d¦  «         dS dS )é    Nc                 ó@   — d„ |                       d¦  «        D ¦   «         S )Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS © )Úint©Ú.0Úxs     úJ/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/faiss/loader.pyú
<listcomp>zVersion.<locals>.<listcomp>   s   € Ð)Ð)Ð)�q�C�‰FŒFÐ)Ð)Ð)ó    ú.)Úsplit)Úvs    r
   ÚVersionr      s    € Ø)Ð)˜AŸGšG C™LœLÐ)Ñ)Ô)Ð)r   c                  ó¸  — d„ } ddl }t          |j        ¦  «        t          d¦  «        k    r…ddlm} d„ |                     ¦   «         D ¦   «         } | ¦   «         r|                     d¦  «         t          j        dd	¦  «         	                    d
¦  «        D ]}| 
                    |¦  «         Œ|S t          j        ¦   «         dk    r%t          j        ddg¦  «        d         dk    rdhS �n`t          j        ¦   «         dk    �rHddl}t!          ¦   «         }d|j        j        j        j        d                              dd	¦  «        v r|                     d¦  «         d|j        j        j        j        d                              dd	¦  «        v r|                     d¦  «         d|j        j        j        j        d                              dd	¦  «        v r|                     d¦  «          | ¦   «         r|                     d¦  «         t          j        dd	¦  «         	                    d
¦  «        D ]}| 
                    |¦  «         Œ|S t!          ¦   «         S )aÏ  
    Returns the set of supported CPU features, see
    https://github.com/numpy/numpy/blob/master/numpy/core/src/common/npy_cpu_features.h
    for the list of features that this set may contain per architecture.

    Example:
    >>> supported_instruction_sets()  # for x86
    {"SSE2", "AVX2", "AVX512", ...}
    >>> supported_instruction_sets()  # for PPC
    {"VSX", "VSX2", ...}
    >>> supported_instruction_sets()  # for ARM
    {"NEON", "ASIMD", ...}
    c                  óL  — t          j        ¦   «         dk    rdS t          j        ¦   «         dk    rdS dd l} t	          | j        ¦  «        t	          d¦  «        k    rdS dd l} d| j        j        j	        j
        d                              dd¦  «                             ¦   «         v S )	NÚaarch64FÚLinuxr   z2.0ÚsveÚFeaturesÚ )ÚplatformÚmachineÚsystemÚnumpyr   Ú__version__Únumpy.distutils.cpuinfoÚ	distutilsÚcpuinfoÚcpuÚinfoÚgetr   )r   s    r
   Úis_sve_supportedz4supported_instruction_sets.<locals>.is_sve_supported    s    € ÝÔÑÔ Ò*Ð*Ø�5åŒ?ÑÔ Ò'Ð'Ø�5àˆˆˆÝ�5Ô$Ñ%Ô%­°©¬Ò7Ð7Ø�5à&Ð&Ð&Ð&Ø˜œÔ/Ô3Ô8¸Ô;×?Ò?À
ÈBÑOÔO×UÒUÑWÔWÐWÐWr   r   Nz1.19)Ú__cpu_features__c                 ó   — h | ]	\  }}|¯|’Œ
S r   r   )r   Úkr   s      r
   ú	<setcomp>z-supported_instruction_sets.<locals>.<setcomp>4   s!   € ÐAÐAÐA™4˜1˜a¸qÐA�QÐAÐAÐAr   ÚSVEÚFAISS_DISABLE_CPU_FEATURESr   z, 	
ÚDarwinz/usr/sbin/sysctlzhw.optional.avx2_0éÿÿÿÿÚ1ÚAVX2r   Úavx2ÚflagsÚavx512ÚAVX512Úavx512_fp16Ú
AVX512_SPR)r   r   r   Únumpy.core._multiarray_umathr$   ÚitemsÚaddÚosÚgetenvr   Údiscardr   r   Ú
subprocessÚcheck_outputr   Úsetr   r   r    r!   r"   )r#   r   r$   Ú	supportedÚfÚresults         r
   Úsupported_instruction_setsr@      sn  € ð"Xð Xð Xð €L€L€LÝˆuÔ Ñ!Ô!¥W¨V¡_¤_Ò4Ð4àAÐAÐAÐAÐAÐAð BÐAÐ#3×#9Ò#9Ñ#;Ô#;ÐAÑAÔAˆ	ØÐÑÔð 	!Ø�MŠM˜%Ñ Ô Ð Ý”Ð7¸Ñ<Ô<×BÒBÀ:ÑNÔNð 	!ð 	!ˆAØ×Ò˜aÑ Ô Ð Ð ØÐõ „ÑÔ˜HÒ$Ð$ÝÔ"Ð$6Ð8LÐ#MÑNÔNÈrÔRÐVYÒYÐYØ�8ˆOñ Zå	ŒÑ	Ô	˜gÒ	%Ñ	%Ø&Ð&Ð&Ð&Ý‘”ˆØ�U”_Ô,Ô0Ô5°aÔ8×<Ò<¸WÀbÑIÔIÐIÐIØ�JŠJ�vÑÔÐØ�u”Ô.Ô2Ô7¸Ô:×>Ò>¸wÈÑKÔKÐKÐKØ�JŠJ�xÑ Ô Ð Ø˜EœOÔ3Ô7Ô<¸QÔ?×CÒCÀGÈRÑPÔPÐPÐPà�JŠJ�|Ñ$Ô$Ð$ØÐÑÔð 	Ø�JŠJ�uÑÔÐÝ”Ð7¸Ñ<Ô<×BÒBÀ:ÑNÔNð 	ð 	ˆAØ�NŠN˜1ÑÔÐÐØˆÝ‰5Œ5€Lr   ÚFAISS_OPT_LEVELzEnvironment variable zK is not set, so let's pick the instruction set according to the current CPUzUsing z as an instruction set.Fc              #   óB   K  — | ]}d |                      ¦   «         v V — ŒdS )r3   N©Úupperr   s     r
   ú	<genexpr>rE   b   s/   è è € ÐIÐI°1�\ Q§W¢W¡Y¤YÐ.ÐIÐIÐIÐIÐIÐIr   z&Loading faiss with AVX512-SPR support.é   )Ú*z2Successfully loaded faiss with AVX512-SPR support.Tz7Could not load library with AVX512-SPR support due to:
c              #   óB   K  — | ]}d |                      ¦   «         v V — ŒdS )r1   NrC   r   s     r
   rE   rE   n   s/   è è € ÐAÐA¨1�˜QŸWšW™YœYÐ&ÐAÐAÐAÐAÐAÐAr   z"Loading faiss with AVX512 support.z.Successfully loaded faiss with AVX512 support.z3Could not load library with AVX512 support due to:
r-   z Loading faiss with AVX2 support.z,Successfully loaded faiss with AVX2 support.z1Could not load library with AVX2 support due to:
r(   zLoading faiss with SVE support.z+Successfully loaded faiss with SVE support.z0Could not load library with SVE support due to:
zLoading faiss.zSuccessfully loaded faiss.)r   r:   Úloggingr7   r   r@   Ú	getLoggerÚ__name__ÚloggerÚinstruction_setsÚopt_env_variable_nameÚenvironr"   Ú	opt_levelÚdebugr<   r6   ÚloadedÚanyÚhas_AVX512_SPRr!   Úswigfaiss_avx512_sprÚImportErrorÚeÚ
has_AVX512Úswigfaiss_avx512Úhas_AVX2Úswigfaiss_avx2Úhas_SVEÚswigfaiss_sveÚ	swigfaissr   r   r
   ú<module>r_      s  ðð €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	ð*ð *ð *ð?ð ?ð ?ðB 
ˆÔ	˜8Ñ	$Ô	$€àÐ ð *Ð ØŒJ�NŠNÐ0°$Ñ7Ô7€	àÐØ
‡L‚Lð QÐ)>ð Qð Qð Qñ Rô Rð Rà1Ð1Ñ3Ô3ÐÐà
‡L‚LÐ<˜)Ð<Ð<Ð<Ñ=Ô=Ð=Ø�s‘u”uÐØ×Ò˜Ñ#Ô#Ð#à	€Ø�ÐIÐIÐ8HÐIÑIÔIÑIÔI€Øð 	ðØ�ŠÐ<Ñ=Ô=Ð=Ø+Ð+Ð+Ð+Ø�ŠÐHÑIÔIÐIØˆˆøØð ð ð Ø�ŠÐTÈqÐTÐTÑUÔUÐUàˆˆˆˆˆˆøøøøðøøøð
 ˆSÐAÐAÐ0@ÐAÑAÔAÑAÔA€
Øð 	ðØ�ŠÐ8Ñ9Ô9Ð9Ø'Ð'Ð'Ð'Ø�ŠÐDÑEÔEÐEØˆˆøØð ð ð Ø�ŠÐPÈ1ÐPÐPÑQÔQÐQàˆˆˆˆˆˆøøøøðøøøð
 Ð%Ð%€Øð 	�Fð 	ðØ�ŠÐ6Ñ7Ô7Ð7Ø%Ð%Ð%Ð%Ø�ŠÐBÑCÔCÐCØˆˆøØð ð ð Ø�ŠÐNÈÐNÐNÑOÔOÐOàˆˆˆˆˆˆøøøøðøøøð
 Ð#Ð
#€Ø
ð 	�6ð 	ðØ�ŠÐ5Ñ6Ô6Ð6Ø$Ð$Ð$Ð$Ø�ŠÐAÑBÔBÐBØˆˆøØð ð ð Ø�ŠÐMÈÐMÐMÑNÔNÐNàˆˆˆˆˆˆøøøøðøøøð
 ð .à
‡K‚KÐ Ñ!Ô!Ð!ØÐÐÐØ
‡K‚KÐ,Ñ-Ô-Ð-Ð-Ð-ð	.ð .s`   Â>0C/ Ã/DÃ4DÄDÄ30E$ Å$FÅ)FÆFÆ0G
 Ç
G3ÇG.Ç.G3Ç?0H0 È0IÈ5IÉI