a0bi"(%SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJrJ r J r J r J r J r SSKJrJrJrJr SrSrSr\R,S\S \ \ \SS44S j5rS \S \4S jrS \S \4S jrS \S\S \4Sjr\R:"S5r\\\4\ S'"SS\ 5r!S \ \4Sjr"S \ \4Sjr#S \ \4Sjr$S\S \ \\44Sjr%\RL"5S \ \\44Sj5r'S\S\S\!S \4Sjr(SSSS .r)S!\S\S \ \4S"jr*g)#N)Dict GeneratorIterator NamedTupleOptionalTuple)EIClassEIDataELFFileEMachinel~iipathreturnc## [US5n[U5v SSS5 g!,(df  g=f![[[4a Sv gf=f7f)Nrb)openr OSError TypeError ValueError)rfs ڠ/builddir/build/BUILDROOT/alt-python313-setuptools-69.0.2-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/setuptools/_vendor/packaging/_manylinux.py _parse_elfrsE $ !*    Y + s>A 8'8A 58A8AAAA executablec[U5nUSL=(a UR[R:H=(a UR[ R :H=(a_ UR[R:H=(a; UR[-[:H=(a UR[-[:HsSSS5 $!,(df  g=fN)rcapacityr C32encodingr Lsbmachiner ArmflagsEF_ARM_ABIMASKEF_ARM_ABI_VER5EF_ARM_ABI_FLOAT_HARDrrs r_is_linux_armhfr's J 1 TM I gkk) I fjj( I X\\) I.(O;  I //3HH    s B3C  Cc0[U5nUSL=(ae UR[R:H=(aA UR[ R :H=(a UR[R:HsSSS5 $!,(df  g=fr) rrr rrr rr r I386r&s r_is_linux_i686r*+se J 1 TM + gkk) + fjj( + X]]*    s A1B BarchcPUS:Xa [U5$US:Xa [U5$US;$)Narmv7li686>ppc64s390xx86_64aarch64ppc64le)r'r*)rr+s r_have_compatible_abir45s3 xz** v~j)) E EEcg)N2r8r5rr9BsBr5_LAST_GLIBC_MINORc*\rSrSr%\\S'\\S'Srg) _GLibCVersionEmajorminorr8N)__name__ __module__ __qualname____firstlineno__int__annotations____static_attributes__r8r5rr<r<Es J Jr5r<c[[S5"S5nUceUR5upU$![[[ [ 4a gf=f)zB Primary implementation of glibc_version_string using os.confstr. confstrCS_GNU_LIBC_VERSIONN)getattrosrsplitAssertionErrorAttributeErrorrr)version_string_versions r_glibc_version_string_confstrrRJsY%b)45JK)))#**,  N NGZ @s-1A Ac*SSKnURS5nURnUR UlU"5n[U[5(dURS5nU$![a gf=f![a gf=f![ a gf=f)z? Fallback implementation of glibc_version_string using ctypes. rNascii) ctypes ImportErrorCDLLrgnu_get_libc_versionrNc_char_prestype isinstancestrdecode)rUprocess_namespacerX version_strs r_glibc_version_string_ctypesr`]s""KK-0EE$*?? +-K k3 ' '!((1 G $  s3A%A5 B% A21A25 BB BBc8[5=(d [5$)z9Returns glibc version string, or None if not using glibc.)rRr`r8r5r_glibc_version_stringrbs ( * L.J.LLr5r_c[R"SU5nU(d[R"SU3[5 g[ UR S55[ UR S554$)aParse glibc version. We use a regexp instead of str.split because we want to discard any random junk that might come after the minor version -- this might happen in patched/forked versions of glibc (e.g. Linaro's version of glibc uses version strings like "2.20-2014.11"). See gh-3588. z$(?P[0-9]+)\.(?P[0-9]+)z;Expected glibc version with 2 components major.minor, got: rer>r?)rematchwarningswarnRuntimeWarningrDgroup)r_ms r_parse_glibc_versionrmsb 8+FA   M #   qwww #aggg&6"7 77r5c4[5nUcg[U5$)Nrd)rbrm)r_s r_get_glibc_versionros')K  ,,r5namerQc[5nX2:agSSKn[US5(a(UR USUSU5nUb [ U5$gU[ SS5:Xa&[US5(a[ UR5$U[ SS 5:Xa&[US 5(a[ UR5$U[ SS 5:Xa&[US 5(a[ UR5$g![a gf=f) NFrTmanylinux_compatibler manylinux1_compatible manylinux2010_compatiblemanylinux2014_compatible) ro _manylinuxrVhasattrrrboolr<rurwry)rpr+rQ sys_glibcrzresults r_is_compatiblers"$Iz12200WQZN  < -1%% :6 7 7 889 9-2&& :9 : : ;;< <-2&& :9 : : ;;< < ! sC22 C?>C? manylinux2014 manylinux2010 manylinux1))rsrx)rsrv)rsrtlinuxc## [[RU5(dg[SS5nUS;a [SS5n[[ 56nU/n[ UR S- SS5H&n[UnUR[XV55 M( UHnUR UR :Xa URnOSn[ URUS5Hn[UR U5n SR"U 6n [XU 5(aURSU 5v U [;dMY[U n [XU 5(dMuURSU 5v M M g7f) Nrs>r.r1r rezmanylinux_{}_{}r)r4sysrr<roranger>r:appendr?formatrreplace_LEGACY_MANYLINUX_MAP) rr+too_old_glibc2 current_glibcglibc_max_list glibc_major glibc_minor glibc_max min_minor glibc_versiontag legacy_tags r platform_tagsrsC  5 5"1b)N !!&q!,!#5#78M#_N]0014a< ' 4 mKEF=$ ??n22 2&,,II )R@K))//;GM#**M:Cc77mmGS11 552=A !*MBB--<<A $sD0E/6E/E/)+ collections contextlib functoolsrKrfrrhtypingrrrrrr_elffiler r r r r#r$r%contextmanagerr\rr|r'r*r4 defaultdictr:rDrEr<rRr`rbrm lru_cacherorrrr8r5rrs II88"  SYx'8$'DE       s t FSFFF%0$;$;J$G4S>GJ x}&)hsm)XMx}M 8c8eCHo8& -E#s(O--C-D8   "="=C"=HSM"=r5