grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a ´i76ã@sBddlZddlZddlZddlZejdkrDdd„Zdd„Zdd„Znâejd krnejd krndd l m Z d d„Zn¸ej  d ¡rˆddl mZnžejd k�r&ddlZddlZdd„Zdd„ZejdkrÈdd„Zndd„Zej  d¡rîdd„Zdd„Zn8ejdk�rdd„Zd'dd„Zndd „Zd!d"„Zd#d„Zd$d%„Zed&k�r>eƒdS)(éNÚntcCsšd}tj |¡}|dkrdS|t|ƒ}tj|d… dd¡\}}t|dd…ƒd}|dkrf|d7}t|d d …ƒd }|dkr†d }|dkr–||SdS) zÏReturn 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)ÚsysÚversionÚfindÚlenÚsplitÚint)ÚprefixÚiÚsÚrestZ majorVersionZ minorVersion©rú#/usr/lib64/python3.9/ctypes/util.pyÚ_get_build_version s  rcCs^tƒ}|durdS|dkr d}n|dkr6d|d}ndSddl}d|jjvrV|d 7}|d S) z%Return the name of the VC runtime dllNrÚmsvcrtrzmsvcr%dé rz_d.pydÚdú.dll)rÚimportlib.machineryÚ machineryÚEXTENSION_SUFFIXES)r ZclibnameÚ importlibrrrÚ find_msvcrt"s r cCsx|dvrtƒStjd tj¡D]R}tj ||¡}tj |¡rF|S| ¡  d¡rVq |d}tj |¡r |Sq dS)N)ÚcÚmÚPATHr) r ÚosÚenvironrÚpathsepÚpathÚjoinÚisfileÚlowerÚendswith)ÚnameZ directoryÚfnamerrrÚ find_library7s   r.ÚposixÚdarwin)Ú dyld_findc CsNd|d|d||fg}|D]*}zt|ƒWStyFYqYq0qdS)Nz lib%s.dylibz%s.dylibz%s.framework/%s)Ú _dyld_findÚ ValueError)r,Úpossiblerrrr.Hs þ  Úaix)r.cCs@d}t|dƒ�}| d¡|kWdƒS1s20YdS)z,Return True if the given file is an ELF filesELFÚbréN)ÚopenÚread)ÚfilenameZ elf_headerÚthefilerrrÚ_is_elf`s r<c Cstt dt |¡¡}t d¡}|s,t d¡}|s4dSt ¡}zÔ|dd|jd|g}t tj ƒ}d|d<d|d <zt j |t j t j|d �}Wn6ty¼YWz | ¡Wnty¶Yn0dS0|�|j ¡}Wdƒn1sâ0YWz | ¡Wnt�yYn0n$z | ¡Wnt�y2Yn00t ||¡}|�sLdS|D]} t| ƒ�sb�qPt | ¡SdS) Nú[^\(\)\s]*lib%s\.[^\(\)\s]*ZgccZccz-Wl,-tú-oz-lÚCÚLC_ALLÚLANG©ÚstdoutÚstderrÚenv)r$ÚfsencodeÚreÚescapeÚshutilÚwhichÚtempfileÚNamedTemporaryFiler,Údictr%Ú subprocessÚPopenÚPIPEÚSTDOUTÚOSErrorÚcloseÚFileNotFoundErrorrCr9Úfindallr<Úfsdecode) r,ÚexprZ c_compilerZtempÚargsrEÚprocZtraceÚresÚfilerrrÚ _findLib_gccfsT   ý    ÷* û   r\Zsunos5cCsŽ|sdSztjdd|ftjtjd�}Wnty:YdS0|�|j ¡}Wdƒn1s`0Yt d|¡}|s~dSt   |  d¡¡S)Nz/usr/ccs/bin/dumpz-Lpv©rCrDs\[.*\]\sSONAME\s+([^\s]+)r) rNrOrPÚDEVNULLrRrCr9rGÚsearchr$rVÚgroup)ÚfrYÚdatarZrrrÚ _get_sonamešs þ  ( rccCs¤|sdSt d¡}|sdSz"tj|ddd|ftjtjd�}WntyPYdS0|�|j ¡}Wdƒn1sv0Yt   d|¡}|s”dSt   |  d¡¡S)NÚobjdumpú-pz-jz.dynamicr]s\sSONAME\s+([^\s]+)r)rIrJrNrOrPr^rRrCr9rGr_r$rVr`)rardrYÚdumprZrrrrc«s$ þ  ( )ZfreebsdZopenbsdZ dragonflycCsL| d¡}g}z|r*| dt| ¡ƒ¡qWnty>Yn0|pJtjgS)Nó.r)rÚinsertrÚpopr3r Úmaxsize)ZlibnameÚpartsZnumsrrrÚ _num_versionÃs  rlcCs´t |¡}d||f}t |¡}ztjdtjtjd�}WntyNd}Yn00|�|j   ¡}Wdƒn1st0Yt  ||¡}|sšt t |ƒƒS|jtd�t |d¡S)Nz:-l%s\.\S+ => \S*/(lib%s\.\S+))ú/sbin/ldconfigz-rr]ó)Úkeyr)rGrHr$rFrNrOrPr^rRrCr9rUrcr\ÚsortrlrV)r,ZenamerWrYrbrZrrrr.Îs"   þ   (   c Csútj d¡sdSttjƒ}d|d<|r,d}nd}d}ztj|tjtj|d�}Wnt ybYdS0|�@|j D](}|  ¡}|  d¡rpt  |¡ ¡d}qpWdƒn1s®0Y|sÀdS| d ¡D]*}tj |d |¡}tj |¡rÊ|SqÊdS) Nú /usr/bin/crler?r@)rqú-64)rqrBsDefault Library Path (ELF):r7ú:zlib%s.so)r$r'ÚexistsrMr%rNrOrPr^rRrCÚstripÚ startswithrVrr() r,Úis64rErXÚpathsrYÚlineÚdirZlibfilerrrÚ _findLib_crleås8  ý    2  r{FcCstt||ƒpt|ƒƒS©N)rcr{r\)r,rwrrrr. scCsddl}| d¡dkr&t ¡jd}nt ¡jd}dddddd œ}| |d ¡}d }t |t |¡|f¡}z~t j d d gt j t j t j dddœd��F}t  ||j ¡¡}|rÊt | d¡¡WdƒWSWdƒn1sÞ0YWntyüYn0dS)NrÚlr7z-32rrz libc6,x86-64z libc6,64bitz libc6,IA-64)z x86_64-64zppc64-64z sparc64-64zs390x-64zia64-64Zlibc6z\s+(lib%s\.[^\s]+)\s+\(%srmrer?)r@rA)ÚstdinrDrCrEr)ÚstructÚcalcsizer$ÚunameÚmachineÚgetrFrGrHrNrOr^rPr_rCr9rVr`rR)r,rr‚Zmach_mapZabi_typeZregexÚprZrrrÚ_findSoname_ldconfigs4û  üB r…c CsÐdt |¡}ddg}tj d¡}|rD| d¡D]}| d|g¡q0| dtjd|g¡d}zZtj |tj tj d d �}|  ¡\}}t  |t  |¡¡} | D]} t| ƒs¦q˜t  | ¡WSWntyÊYn0|S) Nr=Zldz-tZLD_LIBRARY_PATHrsz-Lr>z-l%sT)rCrDÚuniversal_newlines)rGrHr$r%rƒrÚextendÚdevnullrNrOrPÚ communicaterUrVr<Ú Exception) r,rWÚcmdZlibpathrÚresultr„ÚoutÚ_rZr[rrrÚ _findLib_ld,s,  þ  r�cCs t|ƒptt|ƒƒptt|ƒƒSr|)r…rcr\r�)r,rrrr.Gs  ÿ ÿcCsÈddlm}tjdkr:t|jƒt| d¡ƒttdƒƒtjdk�rÄttdƒƒttdƒƒttdƒƒtj d kr°t|  d ¡ƒt|  d ¡ƒt|  d ¡ƒt|  d ¡ƒ�ntj   d¡�rœddlm }tj dk�rtd|dtjƒ›�ƒtd|  d¡›�ƒttdƒƒt|  d¡ƒn*td|dtjƒ›�ƒtd|  d¡›�ƒtdtdƒ›�ƒtd|  tdƒ¡›�ƒtdtdƒ›�ƒtd|  tdƒ¡›�ƒn(t|  d¡ƒt|  d¡ƒttdƒƒdS)Nr)Úcdllrrr/r"r!Úbz2r0z libm.dylibzlibcrypto.dylibzlibSystem.dylibzSystem.framework/Systemr5)ÚCDLLlz"Using CDLL(name, os.RTLD_MEMBER): z libc.a(shr.o)zUsing cdll.LoadLibrary(): Zrpmz librpm.sozlibc.a(shr_64.o)z crypt :: Zcryptz crypto :: Zcryptozlibm.soz libcrypt.so)Zctypesr�r$r,ÚprintrÚloadr.r ÚplatformZ LoadLibraryrvr’rjZ RTLD_MEMBER)r�r’rrrÚtestOs<            r–Ú__main__)F)r$rIrNr r,rr r.r•Zctypes.macholib.dyldr1r2rvZ ctypes._aixrGrKr<r\rcrlr{r…r�r–Ú__name__rrrrÚs>     2     $ (