o 0i76 @ s@ d dl Z d dlZd dlZd dlZe jdkr"dd Zdd Zdd Znoe jd kr7ejd kr7d dl m Z dd ZnZejd rDd dl mZ nMe jd krd dlZd dlZdd Zdd Zejdkrcdd Zndd Zejdrvdd Zdd Znejdkrdd Zd'ddZndd Zd!d" Zd#d Zd$d% Zed&kre dS dS )( Nntc C s d} t j| }|dkrdS |t| }t j|d dd\}}t|dd d }|dkr3|d7 }t|d d d }|dkrCd}|dkrK|| S dS ) zReturn the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. zMSC v. N g $@r )sysversionfindlensplitint)prefixisrestZmajorVersionZminorVersion r 2/opt/alt/python310/lib64/python3.10/ctypes/util.py_get_build_version s r c C s^ t } | du r dS | dkrd}n | dkrd| d }ndS ddl}d|jjv r+|d 7 }|d S )z%Return the name of the VC runtime dllNr msvcrtr zmsvcr%d r z_d.pydd.dll)r importlib.machinery machineryEXTENSION_SUFFIXES)r Zclibname importlibr r r find_msvcrt" s r c C sx | dv rt S tjd tjD ])}tj|| }tj|r#| S | dr+q|d }tj|r9| S qd S )N)cmPATHr ) r osenvironr pathseppathjoinisfilelowerendswith)nameZ directoryZfnamer r r find_library7 s r- posixdarwin) dyld_findc C sH d| d| d| | f g}|D ]} zt | W S ty! Y qw d S )Nzlib%s.dylibz%s.dylibz%s.framework/%s) _dyld_find ValueError)r, possibler r r r- H s aix)r- c C s@ d}t | d}|d|kW d S 1 sw Y dS )z,Return True if the given file is an ELF files ELFbr N)openread)filenameZ elf_headerZthefiler r r _is_elf` s $r: c C sf t dt| }td}|std}|sd S t }zh|dd|jd| g}t t j }d|d<