f/  dZdZddlZddlZddlZddlZddlZddlZddddddddd d d Zej d Z d Z ej d ej Z d^dZd_dZej dZ d`dZdddddddddddd Zdd!d"d#d$d%d&Zd'Zd(Zdad)Zd*Zdbd,Zd-Zdcd.Zd/Zd0Zd_d1Zd2Zd_d3Zd4d5d6dZ ej!ddfd7Z"d8Z#Gd9d:Z$d;Z%Gd<d=ej&d>d?Z'da(d@Z)dAZ*dBZ+dCZ,dDZ-dEZ.dFZ/ej dGej Z0ej dHej Z1ej dIZ2ej dJZ3iZ4dddKZ5dLZ6dMZ7dNZ8dOZ9dPZ:dQZ;dRZej dTZ?ej dUZ@dVZAdaBdWZCdXZDeEdYkrKdZejFvpd[ejFvZGd\ejFvod]ejFvZHeIe>eHeGejJddSdS)fa Copyright (c) 1999-2000, Marc-Andre Lemburg; mailto:mal@lemburg.com Copyright (c) 2000-2010, eGenix.com Software GmbH; mailto:info@egenix.com Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee or royalty is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation or portions thereof, including modifications, that you make. EGENIX.COM SOFTWARE GMBH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE ! z1.0.8N (2) devalphaabetabcRCrcplpz([0-9]+|[._+-])cg}t|D]\}|dvrV t|d}d}n+#t$rt|d}YnwxYw|||f]|S)Nz._+-rdr) _component_resplitint ValueError _ver_stagesgetextend)versionresultvts //opt/alt/python311/lib64/python3.11/platform.py_comparable_versionr!s F   ) )"" F?? *2JJ * * *OOAq)) * MM1a& ! ! ! Ms7%AAsC(__libc_init)|(GLIBC_([0-9.]+))|(libc(_\w+)?\.so(?:\.(\d[0-9.]*))?)@c |s} tjd}|d}t|dkrt |Sn#t t tf$rYnwxYwtj }|s||fSt}tj |}t|d5}||}d} | t|kr\d|vsd|vrt|| } nd} | r%| t|krH||} | r.|t%| t|d z d| z}d} | snd | D\} } }}}}| r|sd }ns| r&|d krd }|}nf||||kr|}nK|rI|d krCd }|r|r||||kr|}|r!|t| d|kr||z}| } | t|k\dddn #1swxYwY||fS) NCS_GNU_LIBC_VERSION)maxsplitrbrslibcsGLIBCic@g|]}||dn|S)Nlatin1)decode).0ss r zlibc_ver..sCE%E%E%'(m"""E%E%E%libcglibc)osconfstrrlentupleAttributeErrorrOSErrorsys executabler!pathrealpathopenread _libc_searchsearchendmaxgroups)r:libr chunksizeverpartsVfbinaryposmchunklibcinitr2 glibcversionsothreads soversions r libc_verrSs    *233CIIqI))E5zzQU||# G4    D ^  < A!!*--J j$  "1 ""CKK&  H$6$6 ''44 3v;;..y))#CS[[4-?$@$@$A$ABUJFCE%E%E%E%E% AHe\2w  4 4 4'>>!C*GGQ|__qqzz11*G 4'>> C ,',QQy\\AAgJJ5N5N"+47CLL=>>#:g#E#E")G"3%%''C?CKK"""""""""""""""F <s%A AA,+A,7FI  IIc , |d}|r|| ttttt |}n#t $r|}YnwxYwd|dd}|S)N.)rappendlistmapstrrrjoin)rbuildlstringss r _norm_versionr_s  cA  s3C ,,-- hhwrr{##G Ns5A%% A43A4z'(?:([\w ]+) ([\w.]+) .*\[.* ([\d.]+)\])win32win16dosc  tj|vr|||fSddl}dD]G} |||j|jddd}n##t |jf$r }Yd}~@d}~wwxYw|||fS|}t |}|S| \}}}|ddkr |dd}|ddkr |dd}t|}|||fS)Nr)rFzcommand /c verz cmd /c verTlocale)stdinstderrtextencodingshellrU) r9platform subprocess check_outputDEVNULLr8CalledProcessErrorstrip _ver_outputmatchrCr_) systemreleasersupported_platformsrmcmdinfowhyrLs r _syscmd_verrzsP  |...w''6(( **31;1C2<2D044<15 +77D E 67    HHHH  w'' ::<A))B  B 0D %D32D3F H FHFH!G3>G' G3'G++G3.G+/G33 H?H HHcJd}tj|sdS ddl}n#t$rYdSwxYwt |d5}||}dddn #1swxYwY|d}d}tjj}|dvrd}|||fS)Nz0/System/Library/CoreServices/SystemVersion.plistrr)ProductVersionr"r"r")ppczPower MacintoshPowerPC) r3r;existsplistlibrr=loadunamemachine)fnrrIrru versioninfors r _mac_ver_xmlrs ;B 7>>"  t tt b$1 ]]1  !"GKhjj G,,, K ((s* 88 A--A14A1rc2 t}||S|||fSN)r)rurrrxs r mac_verrs, >>D   K ((r0cjddlm} ||}||S|S#t$r|cYSwxYw)Nr)System) java.langr getPropertyr7)namedefaultrvalues r _java_getproprs_      ""4(( =N s## 22ct ddl}n#t$r ||||fcYSwxYwtd|}td|}|\}}}td|}td|}td|}|||f}|\}} } td| } td|}td | } || | f}||||fS) Nrz java.vendorz java.versionz java.vm.namezjava.vm.vendorzjava.vm.versionz java.os.archz java.os.namezjava.os.version)rrr) ruvendorvminfoosinfojavavm_name vm_release vm_vendoros_name os_versionos_archs r java_verrs / ///..../=& 1 1FNG44G%+"GZNG44G. ::I0*==J j) +F#) GZNG44GNG44G0*==J j' )F FFF **s c( |dkr|dkr|||fS|d}|rS t|d}|dz }t||d<d|}n#t$rYnwxYw|dkrd}n d}n|dvrd }|||fS) NSunOS5rUrrV6SolarisrarbWindows)rrrZr[r)rtrurr]rs r system_aliasrs S==7G+ + MM#    & &AaD  5zz!((1++      S==FFFF % % % 7G ##sA-- A:9A:c~ ddtt|D}|dd}|dd}|dd}|dd}|dd}|d d}|d d}|d d}|d d } |dd}||krn|} |ddkr|dd}|ddk|S)N-c3>K|]}|VdSr)rq)r-xs r z_platform..%s*==a ======r0 _/\:;"()unknownr"r&z--rk)r[filterr5replace)argsrlcleaneds r _platformrs\xx==6#t+<+<=====HS))HS))Hc**HS))HS))HS))HS))HS))H 2..H""4-- h     2,#  CRC= 2,#   Or0c ddl}n#t$r|cYSwxYw |S#t$r|cYSwxYwNr)socketr gethostnamer8)rrs r _noder?sv !!### s / >>c tj|}tj|rtjtjtj|tj|}tj||Sr)r3r;abspathislinknormpathr[dirnamereadlink)filepaths r _follow_symlinksrNswx((H '.. " "L7## GLL22BK4I4I J JLL '.. " "L Or0cP tjdvr|S ddl}n#t$r|cYSwxYwt |}t t jd} |dd|g|j |}n#t|j f$r|cYSwxYw|s|S| dS) N)rcrarbrC)LC_ALLfilez-b)rgenvzlatin-1) r9rlrmrrdictr3environrnror8rpr,)targetrrmroutputs r _syscmd_filer Zs |000  f % %F rz# & & &C((&$)?0:0B-0)22 Z2 3  == # ##s '' A66B  B )r" WindowsPE)r"r)r"MSDOSc |s.ddl}|d}t|dzdz}|rt|d}nd}|sI|tjkr9tjtvr"ttj\}}|r|}|r|}||fSd|vrd|vr||fSd|vrd }nd |vrd }d |vrd }nd |vr d|vrd}nd }nd|vrd}nd|vrd}n ||fS)NrPbitr"r:z shared objectz32-bit32bitz64-bit64bitELFPErr COFFzMS-DOSr)structcalcsizerZr r9r:rl_default_architecture)r:bitslinkagersizefileoutr r]s r architecturersd* % s##4!8}}u$z2..  S^## <0 0 0(6DAq  W}7""g'E'EW}7 W       !GGGG 7   W   =r0ctjddptjddS)NPROCESSOR_ARCHITEW6432r"PROCESSOR_ARCHITECTURE)r3r rrr0r _get_machine_win32r#s6 /44 5 /44r0c6eZdZedZdZdZdZdS) _Processorc`t|dtj|j}|pdS)Nget_r")rr9rlfrom_subprocess)clsfuncs r rz_Processor.gets1s13<1133FGGtvv|r0cZtjdtS)NPROCESSOR_IDENTIFIER)r3r rr#rr0r get_win32z_Processor.get_win32s z~~46H6J6JKKKr0ct ddl}|dd\}}|dkrdndS#t$rYdSwxYw)NrzSYI$_CPUAlphaVAX)vms_libgetsyir)r2csid cpu_numbers r get_OpenVMSz_Processor.get_OpenVMSsb ; NNN '~~j!<< D*(C//77U :     DD s ) 77c ddl}n#t$rYdSwxYw |ddg|jddS#t |jf$rYdSwxYw)Nrrz-pTutf8)rgrhri)rmrrnrorqr8rp)rms r r(z_Processor.from_subprocesss          44  **$!) + egg   67    DD s 1A A! A!N)__name__ __module__ __qualname__ classmethodrr-r6r(rr0r r%r%s][LLL;;;r0r%c|dkrdn|S)Nrr"r)vals r _unknown_as_blankr?s !!22s*r0cleZdZ dZejdZfdZedZ dZ dZ dZ xZ S) uname_result)rtnoderurr processorcNttSr)r?r%rselfs r rCzuname_result.processors !1!1222r0cvtjt|jfSr) itertoolschainsuper__iter__rC)rF __class__s r rKzuname_result.__iter__s2 GG     ^    r0ct|jdz }|j|g|R}t||dzkr$d|dt|}t||S)Nr&z Expected z arguments, got )r5_fields__new__ TypeError)r)iterable num_fieldsrmsgs r _makezuname_result._make"sr%%) S,8,,, v;;*q. ( (GjGG#f++GGCC..  r0c,t||Sr)r6)rFrs r __getitem__zuname_result.__getitem__,sT{{3r0cTttt|Sr)r5r6iterrEs r __len__zuname_result.__len__/s5d$$%%%r0chtt|dt|jdz fSNr&)rAr6r5rNrEs r __reduce__zuname_result.__reduce__2s-U4[[)?#dl*;*;a*?)?@@@r0)r9r:r;rN functoolscached_propertyrCrKr<rTrVrYr\ __classcell__)rLs@r rArA s OG333     [   &&&AAAAAAAr0rAuname_result_basez#system node release version machinec ttS tjx\}}}}}}n2#t$r%tj}t }dx}x}}d}YnwxYwt|s|dkr#t\}}}}|p t}|r|s=t|\}}}|dkrd}n!|dkr|dkrd}d|ddkrd }nd}|d vr|s |dkrd }nd }d}n<|dd dkr.t\}}} } d}d | }|s|}|dkr |r|dkr|}d}|dkr |dkrd}d }|||||f} ttt| atS)Nr"rrazMicrosoft Windowsr Microsoftz6.0rVrrr16bitrJava, OpenVMS0) _uname_cacher3rr7r9rlranyrr#rzrr[rArYr?) rtrBrurrinfosrrrrrvalss r rr9s :<(**D/gw%% ww&((('G  u::*! W  +4;; (GWc55!3!5!5G !G !'26':': $FGW,,,";&&7i+?+? #GBQBK''%GG G ' ' ' &W$$%GG%GFF BQBZ6 ! !.6jj +GVVVFii''G !  'S..GGI!5!5 4'7 2D%6!=!=>L s-,AAc* tjSr)rrtrr0r rtrts 77>r0c* tjSr)rrBrr0r rBrBs 77<r0c* tjSr)rrurr0r ruru 77?r0c* tjSr)rrrr0r rrrpr0c* tjSr)rrrr0r rrrpr0c* tjSr)rrCrr0r rCrCs 77 r0zL([\w.+]+)\s*\(#?([^,]+)(?:,\s*([\w ]*)(?:,\s*([\w :]*))?)?\)\s*\[([^\]]+)\]?z;IronPython\s*([\d\.]+)(?: \(([\d\.]+)\))? on (.NET [\d\.]+)zU([\d.]+)\s*\(IronPython\s*[\d.]+\s*\(([\d.]+)\) on ([\w.]+ [\d.]+(?: \(\d+-bit\))?)\)zE([\w.+]+)\s*\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*\[PyPy [^\]]+\]?c~ | tj}t|d}||Sd|vrd}|drt |}nt|}|tdt|z| \}}}d}d}nJtj drhd}t|}|tdt|z| \}}}} } |d}tj }nd|vrYd}t|}|tdt|z| \}}}} d}nft|}|td t|z| \}}}} }d }|d}n | r|d z| z}ttd rtj\} } } n*ttd rtj\} } } nd} d} |d} t%| dkr*| dd| }||| | |||f}|t|<|S)N IronPythonz*failed to parse IronPython sys.version: %sr"rJythonz&failed to parse Jython sys.version: %sPyPyz$failed to parse PyPy sys.version: %sz'failed to parse CPython sys.version: %sCPythonr_git _mercurialrUr(rh)r9r_sys_version_cacher startswith_ironpython_sys_version_parserrs _ironpython26_sys_version_parserrreprrCrl_sys_version_parser_pypy_sys_version_parserhasattrryrzrr5rWr[) sys_versionrrrsr alt_versioncompilerbuildno builddate buildtimerbranchrevisionr]s r _sys_versionrs&k  # #K 6 6F  {""  ! !, / / H288EEEE4::;GGE =<[!!"## #*/&h   ( ($4#))+66 =8[!!"## #5:LLNN1)Y  I< ;  (..{;; =C!+../00 016.)Y$))+66 =9[!!"## #llnn 9)Y  II  4!C)3IsF!h688 l # #!n688  cA 1vv{{  ((1++GVXw 8 LF&,{# Mr0c, tdSrrrr0r python_implementationrR >>! r0c, tdSr[rrr0r python_versionr_s >>! r0cl ttddS)Nr&rU)r6rrrr0r python_version_tupleris. "((-- . ..r0c, tdS)Nr(rrr0r python_branchrts >>! r0c, tdS)NrVrrr0r python_revisionrrr0c0 tddS)Nrdrrrr0r python_buildrs >>!A# r0c, tdS)Nrrrr0r python_compilerrs >>! r0c  t||fd}||St\}}}}}}||krd}|rt|||\}}}|dkrt d} | rd}| }|dkr:t |\} } } } |rt ||}nt |||| }n|dvr)t\}}t ||||d||z}n|dkrCt\}}}\}}}|s|st |||}nYt |||d |||}nC|rt ||}n0ttj \}}t ||||||}|t||f<|S) Nr"DarwinrmacOSr)Linuxwithreon) _platform_cacherrrrrrrSrrr9r:)aliasedterserrtrBrurrrC macos_releaserelversrrrllibcname libcversionrrrrrrrrs r rlrls" '5!14 8 8F  :?6FD'7GY) J#/#I#I   !  $F#G  )' 2 2T3  @ 11HH '3??HH :   ( +VWgy#%k133 6  7?zz41f4w G  ? ? '::HH '!%!(*g??HH  ; 11HH(88MD' '!*D';;H)1OWe$% Or0zA^(?P[a-zA-Z0-9_]+)=(?P["']?)(?P.*)(?P=quote)$z\\([\\\$\"\'`]))z/etc/os-releasez/usr/lib/os-releasecdddd}|D]b}t|}|Dtd|d||d<c|S)Nrlinux)NAMEID PRETTY_NAMEz\1rr)_os_release_liners_os_release_unescapesubgroup)linesrxlinemos r _parse_os_releasers  D   # #D ) ) >%9%=%=rxx((&&D&!! " Kr0cb td}tD]Z} t|d5}t|adddn #1swxYwYnI#t$r}|j}Yd}~Sd}~wwxYwt |ddttS)Nzutf-8)rizUnable to read files rf)_os_release_cache_os_release_candidatesr=rr8errnor[copy)r candidaterIes r freedesktop_os_releasers /  I )g666=!(9!(<(<%===============    K 2H(I(IKK   ! ! # ##s9AA AA A A A A*A%%A*__main__rz--terse nonaliasedz --nonaliased)Nr"r"r#)r")r"r"r"r`)r"r"r"r")r"rr")r"r"rrr)rr)K __copyright__ __version__ collectionsr3rer9r]rHrcompilerr!ASCIIr?rSr_rrrzrrrrrrrrrrrrrr rr:rr#r%r? namedtuplerArirrtrBrurrrCrr}r~rr{rrrrrrrrrrlrrrrrrr9argvrrprintexitrr0r rsr *    b R B C    -..    rzBDF8 MM HHHHT    bj-.. 02#<0$0$0$0$f        (     ![[[$0(0(0(0(f))),))))&   ++++F&$&$&$T@        $ $ $ $N    NRIIIIX   """"""""J+++ )A)A)A)A)AK-//)A)A)AX UUUr   !bjh   ",8 "%"%$.2::$$ &2: ffffP    / / /      HHHH^2:I"rz"455C&$$$2 z  9I$9E38+NNch4NG E((7E " "### CHQKKKKK r0