sbuild (Debian sbuild) 0.85.0 (04 January 2023) on debian-ci-siliconvalley +==============================================================================+ | workflow 0.11.10-2 (armel) Wed, 17 Sep 2025 20:26:59 +0000 | +==============================================================================+ Package: workflow Version: 0.11.10-2 Source Version: 0.11.10-2 Distribution: unstable Machine Architecture: amd64 Host Architecture: armel Build Architecture: amd64 Build Profiles: cross nocheck Build Type: any I: NOTICE: Log filtering will replace 'var/run/schroot/mount/sid-amd64-sbuild-5e9361cf-5ea0-469d-be42-62f9e4bccc37' with '<>' I: NOTICE: Log filtering will replace 'build/workflow-uG7xfB/resolver-5sXS6R' with '<>' +------------------------------------------------------------------------------+ | Update chroot | +------------------------------------------------------------------------------+ Get:1 http://localhost:3142/debian unstable InRelease [216 kB] Get:2 http://localhost:3142/debian unstable/main Sources.diff/Index [63.6 kB] Get:3 http://localhost:3142/debian unstable/contrib Sources.diff/Index [63.3 kB] Get:4 http://localhost:3142/debian unstable/non-free Sources.diff/Index [63.3 kB] Get:5 http://localhost:3142/debian unstable/main amd64 Packages.diff/Index [63.6 kB] Get:6 http://localhost:3142/debian unstable/main Sources T-2025-09-17-1407.42-F-2025-09-17-0204.37.pdiff [54.8 kB] Get:7 http://localhost:3142/debian unstable/contrib Sources T-2025-09-17-1407.42-F-2025-09-17-1407.42.pdiff [1090 B] Get:8 http://localhost:3142/debian unstable/non-free Sources T-2025-09-17-0915.42-F-2025-09-17-0204.37.pdiff [1306 B] Get:6 http://localhost:3142/debian unstable/main Sources T-2025-09-17-1407.42-F-2025-09-17-0204.37.pdiff [54.8 kB] Get:9 http://localhost:3142/debian unstable/main amd64 Packages T-2025-09-17-1407.42-F-2025-09-17-0204.37.pdiff [117 kB] Get:8 http://localhost:3142/debian unstable/non-free Sources T-2025-09-17-0915.42-F-2025-09-17-0204.37.pdiff [1306 B] Get:7 http://localhost:3142/debian unstable/contrib Sources T-2025-09-17-1407.42-F-2025-09-17-1407.42.pdiff [1090 B] Get:9 http://localhost:3142/debian unstable/main amd64 Packages T-2025-09-17-1407.42-F-2025-09-17-0204.37.pdiff [117 kB] Get:10 http://localhost:3142/debian unstable/main armel Packages [9612 kB] Fetched 10.3 MB in 3s (3517 kB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... Calculating upgrade... The following packages will be upgraded: libaudit-common libaudit1 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 74.7 kB of archives. After this operation, 0 B of additional disk space will be used. Get:1 http://localhost:3142/debian unstable/main amd64 libaudit-common all 1:4.1.2-1 [14.3 kB] Get:2 http://localhost:3142/debian unstable/main amd64 libaudit1 amd64 1:4.1.2-1 [60.4 kB] Fetched 74.7 kB in 0s (0 B/s) (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12958 files and directories currently installed.) Preparing to unpack .../libaudit-common_1%3a4.1.2-1_all.deb ... Unpacking libaudit-common (1:4.1.2-1) over (1:4.1.1-1) ... Setting up libaudit-common (1:4.1.2-1) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12958 files and directories currently installed.) Preparing to unpack .../libaudit1_1%3a4.1.2-1_amd64.deb ... Unpacking libaudit1:amd64 (1:4.1.2-1) over (1:4.1.1-1) ... Setting up libaudit1:amd64 (1:4.1.2-1) ... Processing triggers for libc-bin (2.41-12) ... +------------------------------------------------------------------------------+ | Fetch source files | +------------------------------------------------------------------------------+ Check APT --------- Checking available source versions... Download source files with APT ------------------------------ Reading package lists... NOTICE: 'workflow' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/debian/workflow.git Please use: git clone https://salsa.debian.org/debian/workflow.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 449 kB of source archives. Get:1 http://localhost:3142/debian unstable/main workflow 0.11.10-2 (dsc) [2030 B] Get:2 http://localhost:3142/debian unstable/main workflow 0.11.10-2 (tar) [441 kB] Get:3 http://localhost:3142/debian unstable/main workflow 0.11.10-2 (diff) [6268 B] Fetched 449 kB in 0s (8552 kB/s) Download complete and in download only mode I: NOTICE: Log filtering will replace 'build/workflow-uG7xfB/workflow-0.11.10' with '<>' I: NOTICE: Log filtering will replace 'build/workflow-uG7xfB' with '<>' +------------------------------------------------------------------------------+ | Install package build dependencies | +------------------------------------------------------------------------------+ Setup apt archive ----------------- Merged Build-Depends: dpkg-dev (>= 1.22.5), debhelper-compat (= 13), cmake, libssl-dev, libc-dev, libstdc++-dev, build-essential:amd64, fakeroot:amd64, crossbuild-essential-armel:amd64, libc-dev:armel, libstdc++-dev:armel Filtered Build-Depends: dpkg-dev (>= 1.22.5), debhelper-compat (= 13), cmake, libssl-dev, libc-dev, libstdc++-dev, build-essential:amd64, fakeroot:amd64, crossbuild-essential-armel:amd64, libc-dev:armel, libstdc++-dev:armel dpkg-deb: warning: root directory /<>/sbuild-build-depends-main-dummy has unusual owner or group 1000:119 dpkg-deb: hint: you might need to pass --root-owner-group, see for further details dpkg-deb: warning: ignoring 1 warning about the control file(s) dpkg-deb: building package 'sbuild-build-depends-main-dummy' in '/<>/apt_archive/sbuild-build-depends-main-dummy.deb'. Ign:1 copy:/<>/apt_archive ./ InRelease Get:2 copy:/<>/apt_archive ./ Release [609 B] Ign:3 copy:/<>/apt_archive ./ Release.gpg Get:4 copy:/<>/apt_archive ./ Sources [780 B] Get:5 copy:/<>/apt_archive ./ Packages [798 B] Fetched 2187 B in 0s (0 B/s) Reading package lists... Reading package lists... Install main build dependencies (apt-based resolver) ---------------------------------------------------- Installing build dependencies Reading package lists... Building dependency tree... Reading state information... Execute external solver... The following additional packages will be installed: autoconf automake autopoint autotools-dev binutils-arm-linux-gnueabi bsdextrautils cmake cmake-data cpp-15-arm-linux-gnueabi cpp-arm-linux-gnueabi crossbuild-essential-armel debhelper dh-autoreconf dh-strip-nondeterminism dwz fakeroot file g++-15-arm-linux-gnueabi g++-arm-linux-gnueabi gcc-15-arm-linux-gnueabi gcc-15-arm-linux-gnueabi-base gcc-15-base:armel gcc-15-cross-base-ports gcc-arm-linux-gnueabi gettext gettext-base groff-base intltool-debian libarchive-zip-perl libarchive13t64 libasan8:armel libasan8-armel-cross libatomic1:armel libatomic1-armel-cross libbrotli1 libc6:armel libc6-armel-cross libc6-dev:armel libc6-dev-armel-cross libcom-err2 libcrypt-dev:armel libcrypt1:armel libcurl4t64 libdebhelper-perl libelf1t64 libexpat1 libfakeroot libffi8 libfile-stripnondeterminism-perl libgcc-15-dev:armel libgcc-15-dev-armel-cross libgcc-s1:armel libgcc-s1-armel-cross libgnutls30t64 libgomp1:armel libgomp1-armel-cross libgssapi-krb5-2 libidn2-0 libjsoncpp26 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap2 libmagic-mgc libmagic1t64 libncursesw6 libnghttp2-14 libnghttp3-9 libp11-kit0 libpipeline1 libproc2-0 libpsl5t64 librhash1 librtmp1 libsasl2-2 libsasl2-modules-db libssh2-1t64 libssl-dev:armel libssl3t64:armel libstdc++-15-dev:armel libstdc++-15-dev-armel-cross libstdc++6:armel libstdc++6-armel-cross libtasn1-6 libtool libubsan1:armel libubsan1-armel-cross libuchardet0 libunistring5 libuv1t64 libxml2-16 libzstd1:armel linux-libc-dev-armel-cross m4 man-db po-debconf procps sensible-utils zlib1g:armel Suggested packages: autoconf-archive gnu-standards autoconf-doc binutils-doc cmake-doc cmake-format elpa-cmake-mode ninja-build gcc-15-locales cpp-15-doc cpp-doc dh-make gcc-15-doc manpages-dev flex bison gdb-arm-linux-gnueabi gcc-doc gettext-doc libasprintf-dev libgettextpo-dev gnulib-l10n groff lrzip glibc-doc:armel libc-l10n:armel locales:armel libnss-nis:armel libnss-nisplus:armel manpages-dev:armel gnutls-bin krb5-doc krb5-user libssl-doc:armel libstdc++-15-doc:armel libtool-doc gfortran | fortran95-compiler m4-doc apparmor less www-browser libmail-box-perl Recommended packages: curl | wget | lynx libidn2-0:armel ca-certificates libarchive-cpio-perl krb5-locales libldap-common libgpm2 publicsuffix libsasl2-modules libltdl-dev libmail-sendmail-perl psmisc linux-sysctl-defaults The following NEW packages will be installed: autoconf automake autopoint autotools-dev binutils-arm-linux-gnueabi bsdextrautils cmake cmake-data cpp-15-arm-linux-gnueabi cpp-arm-linux-gnueabi crossbuild-essential-armel debhelper dh-autoreconf dh-strip-nondeterminism dwz fakeroot file g++-15-arm-linux-gnueabi g++-arm-linux-gnueabi gcc-15-arm-linux-gnueabi gcc-15-arm-linux-gnueabi-base gcc-15-base:armel gcc-15-cross-base-ports gcc-arm-linux-gnueabi gettext gettext-base groff-base intltool-debian libarchive-zip-perl libarchive13t64 libasan8:armel libasan8-armel-cross libatomic1:armel libatomic1-armel-cross libbrotli1 libc6:armel libc6-armel-cross libc6-dev:armel libc6-dev-armel-cross libcom-err2 libcrypt-dev:armel libcrypt1:armel libcurl4t64 libdebhelper-perl libelf1t64 libexpat1 libfakeroot libffi8 libfile-stripnondeterminism-perl libgcc-15-dev:armel libgcc-15-dev-armel-cross libgcc-s1:armel libgcc-s1-armel-cross libgnutls30t64 libgomp1:armel libgomp1-armel-cross libgssapi-krb5-2 libidn2-0 libjsoncpp26 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap2 libmagic-mgc libmagic1t64 libncursesw6 libnghttp2-14 libnghttp3-9 libp11-kit0 libpipeline1 libproc2-0 libpsl5t64 librhash1 librtmp1 libsasl2-2 libsasl2-modules-db libssh2-1t64 libssl-dev:armel libssl3t64:armel libstdc++-15-dev:armel libstdc++-15-dev-armel-cross libstdc++6:armel libstdc++6-armel-cross libtasn1-6 libtool libubsan1:armel libubsan1-armel-cross libuchardet0 libunistring5 libuv1t64 libxml2-16 libzstd1:armel linux-libc-dev-armel-cross m4 man-db po-debconf procps sbuild-build-depends-main-dummy:armel sensible-utils zlib1g:armel 0 upgraded, 101 newly installed, 0 to remove and 0 not upgraded. Need to get 316 MB of archives. After this operation, 1319 MB of additional disk space will be used. Get:1 copy:/<>/apt_archive ./ sbuild-build-depends-main-dummy 0.invalid.0 [940 B] Get:2 http://localhost:3142/debian unstable/main amd64 libexpat1 amd64 2.7.2-1 [111 kB] Get:3 http://localhost:3142/debian unstable/main amd64 libncursesw6 amd64 6.5+20250216-2 [135 kB] Get:4 http://localhost:3142/debian unstable/main amd64 libproc2-0 amd64 2:4.0.4-9 [65.6 kB] Get:5 http://localhost:3142/debian unstable/main amd64 procps amd64 2:4.0.4-9 [882 kB] Get:6 http://localhost:3142/debian unstable/main amd64 sensible-utils all 0.0.26 [27.0 kB] Get:7 http://localhost:3142/debian unstable/main amd64 libmagic-mgc amd64 1:5.46-5 [338 kB] Get:8 http://localhost:3142/debian unstable/main amd64 libmagic1t64 amd64 1:5.46-5 [109 kB] Get:9 http://localhost:3142/debian unstable/main amd64 file amd64 1:5.46-5 [43.6 kB] Get:10 http://localhost:3142/debian unstable/main amd64 gettext-base amd64 0.23.1-2+b1 [244 kB] Get:11 http://localhost:3142/debian unstable/main amd64 libuchardet0 amd64 0.0.8-2 [68.5 kB] Get:12 http://localhost:3142/debian unstable/main amd64 groff-base amd64 1.23.0-9 [1187 kB] Get:13 http://localhost:3142/debian unstable/main amd64 bsdextrautils amd64 2.41.1-3 [100 kB] Get:14 http://localhost:3142/debian unstable/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB] Get:15 http://localhost:3142/debian unstable/main amd64 man-db amd64 2.13.1-1 [1469 kB] Get:16 http://localhost:3142/debian unstable/main amd64 m4 amd64 1.4.20-1 [324 kB] Get:17 http://localhost:3142/debian unstable/main amd64 autoconf all 2.72-3.1 [494 kB] Get:18 http://localhost:3142/debian unstable/main amd64 autotools-dev all 20240727.1 [60.2 kB] Get:19 http://localhost:3142/debian unstable/main amd64 automake all 1:1.17-4 [862 kB] Get:20 http://localhost:3142/debian unstable/main amd64 autopoint all 0.23.1-2 [770 kB] Get:21 http://localhost:3142/debian unstable/main amd64 binutils-arm-linux-gnueabi amd64 2.45-7 [1627 kB] Get:22 http://localhost:3142/debian unstable/main amd64 cmake-data all 4.1.1+really3.31.6-1 [2268 kB] Get:23 http://localhost:3142/debian unstable/main amd64 libxml2-16 amd64 2.14.5+dfsg-0.2 [638 kB] Get:24 http://localhost:3142/debian unstable/main amd64 libarchive13t64 amd64 3.7.4-4+b1 [349 kB] Get:25 http://localhost:3142/debian unstable/main amd64 libbrotli1 amd64 1.1.0-2+b7 [307 kB] Get:26 http://localhost:3142/debian unstable/main amd64 libkrb5support0 amd64 1.21.3-5 [33.0 kB] Get:27 http://localhost:3142/debian unstable/main amd64 libcom-err2 amd64 1.47.2-3+b3 [25.0 kB] Get:28 http://localhost:3142/debian unstable/main amd64 libk5crypto3 amd64 1.21.3-5 [81.5 kB] Get:29 http://localhost:3142/debian unstable/main amd64 libkeyutils1 amd64 1.6.3-6 [9456 B] Get:30 http://localhost:3142/debian unstable/main amd64 libkrb5-3 amd64 1.21.3-5 [326 kB] Get:31 http://localhost:3142/debian unstable/main amd64 libgssapi-krb5-2 amd64 1.21.3-5 [138 kB] Get:32 http://localhost:3142/debian unstable/main amd64 libunistring5 amd64 1.3-2 [477 kB] Get:33 http://localhost:3142/debian unstable/main amd64 libidn2-0 amd64 2.3.8-4 [110 kB] Get:34 http://localhost:3142/debian unstable/main amd64 libsasl2-modules-db amd64 2.1.28+dfsg1-9 [19.8 kB] Get:35 http://localhost:3142/debian unstable/main amd64 libsasl2-2 amd64 2.1.28+dfsg1-9 [57.5 kB] Get:36 http://localhost:3142/debian unstable/main amd64 libldap2 amd64 2.6.10+dfsg-1 [194 kB] Get:37 http://localhost:3142/debian unstable/main amd64 libnghttp2-14 amd64 1.64.0-1.1+b1 [76.2 kB] Get:38 http://localhost:3142/debian unstable/main amd64 libnghttp3-9 amd64 1.11.0-1 [73.7 kB] Get:39 http://localhost:3142/debian unstable/main amd64 libpsl5t64 amd64 0.21.2-1.1+b1 [57.2 kB] Get:40 http://localhost:3142/debian unstable/main amd64 libffi8 amd64 3.5.2-2 [25.5 kB] Get:41 http://localhost:3142/debian unstable/main amd64 libp11-kit0 amd64 0.25.5-3 [425 kB] Get:42 http://localhost:3142/debian unstable/main amd64 libtasn1-6 amd64 4.20.0-2 [49.9 kB] Get:43 http://localhost:3142/debian unstable/main amd64 libgnutls30t64 amd64 3.8.10-2 [1484 kB] Get:44 http://localhost:3142/debian unstable/main amd64 librtmp1 amd64 2.4+20151223.gitfa8646d.1-3 [58.3 kB] Get:45 http://localhost:3142/debian unstable/main amd64 libssh2-1t64 amd64 1.11.1-1 [245 kB] Get:46 http://localhost:3142/debian unstable/main amd64 libcurl4t64 amd64 8.16.0-1 [437 kB] Get:47 http://localhost:3142/debian unstable/main amd64 libjsoncpp26 amd64 1.9.6-4 [89.4 kB] Get:48 http://localhost:3142/debian unstable/main amd64 librhash1 amd64 1.4.6-1 [137 kB] Get:49 http://localhost:3142/debian unstable/main amd64 libuv1t64 amd64 1.51.0-2 [155 kB] Get:50 http://localhost:3142/debian unstable/main amd64 cmake amd64 4.1.1+really3.31.6-1 [12.0 MB] Get:51 http://localhost:3142/debian unstable/main amd64 gcc-15-arm-linux-gnueabi-base amd64 15.2.0-4cross1 [53.0 kB] Get:52 http://localhost:3142/debian unstable/main amd64 cpp-15-arm-linux-gnueabi amd64 15.2.0-4cross1 [80.4 MB] Get:53 http://localhost:3142/debian unstable/main amd64 cpp-arm-linux-gnueabi amd64 4:15.2.0-4 [4448 B] Get:54 http://localhost:3142/debian unstable/main amd64 gcc-15-cross-base-ports all 15.2.0-4cross1 [48.4 kB] Get:55 http://localhost:3142/debian unstable/main amd64 libc6-armel-cross all 2.41-11cross1 [942 kB] Get:56 http://localhost:3142/debian unstable/main amd64 libgcc-s1-armel-cross all 15.2.0-4cross1 [38.9 kB] Get:57 http://localhost:3142/debian unstable/main amd64 libgomp1-armel-cross all 15.2.0-4cross1 [113 kB] Get:58 http://localhost:3142/debian unstable/main amd64 libatomic1-armel-cross all 15.2.0-4cross1 [9472 B] Get:59 http://localhost:3142/debian unstable/main amd64 libasan8-armel-cross all 15.2.0-4cross1 [2590 kB] Get:60 http://localhost:3142/debian unstable/main amd64 libstdc++6-armel-cross all 15.2.0-4cross1 [561 kB] Get:61 http://localhost:3142/debian unstable/main amd64 libubsan1-armel-cross all 15.2.0-4cross1 [1072 kB] Get:62 http://localhost:3142/debian unstable/main amd64 libgcc-15-dev-armel-cross all 15.2.0-4cross1 [755 kB] Get:63 http://localhost:3142/debian unstable/main amd64 gcc-15-arm-linux-gnueabi amd64 15.2.0-4cross1 [88.1 MB] Get:64 http://localhost:3142/debian unstable/main amd64 gcc-arm-linux-gnueabi amd64 4:15.2.0-4 [1456 B] Get:65 http://localhost:3142/debian unstable/main amd64 linux-libc-dev-armel-cross all 6.12.38-1cross1 [2430 kB] Get:66 http://localhost:3142/debian unstable/main amd64 libc6-dev-armel-cross all 2.41-11cross1 [1358 kB] Get:67 http://localhost:3142/debian unstable/main amd64 libstdc++-15-dev-armel-cross all 15.2.0-4cross1 [2409 kB] Get:68 http://localhost:3142/debian unstable/main amd64 g++-15-arm-linux-gnueabi amd64 15.2.0-4cross1 [85.9 MB] Get:69 http://localhost:3142/debian unstable/main amd64 g++-arm-linux-gnueabi amd64 4:15.2.0-4 [1204 B] Get:70 http://localhost:3142/debian unstable/main amd64 crossbuild-essential-armel all 12.12 [3552 B] Get:71 http://localhost:3142/debian unstable/main amd64 libdebhelper-perl all 13.26 [91.8 kB] Get:72 http://localhost:3142/debian unstable/main amd64 libtool all 2.5.4-5 [540 kB] Get:73 http://localhost:3142/debian unstable/main amd64 dh-autoreconf all 21 [12.2 kB] Get:74 http://localhost:3142/debian unstable/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get:75 http://localhost:3142/debian unstable/main amd64 libfile-stripnondeterminism-perl all 1.15.0-1 [19.9 kB] Get:76 http://localhost:3142/debian unstable/main amd64 dh-strip-nondeterminism all 1.15.0-1 [8812 B] Get:77 http://localhost:3142/debian unstable/main amd64 libelf1t64 amd64 0.193-3 [192 kB] Get:78 http://localhost:3142/debian unstable/main amd64 dwz amd64 0.16-2 [108 kB] Get:79 http://localhost:3142/debian unstable/main amd64 gettext amd64 0.23.1-2+b1 [1680 kB] Get:80 http://localhost:3142/debian unstable/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get:81 http://localhost:3142/debian unstable/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get:82 http://localhost:3142/debian unstable/main amd64 debhelper all 13.26 [939 kB] Get:83 http://localhost:3142/debian unstable/main amd64 libfakeroot amd64 1.37.1.2-1 [29.7 kB] Get:84 http://localhost:3142/debian unstable/main amd64 fakeroot amd64 1.37.1.2-1 [76.0 kB] Get:85 http://localhost:3142/debian unstable/main armel gcc-15-base armel 15.2.0-4 [52.8 kB] Get:86 http://localhost:3142/debian unstable/main armel libgcc-s1 armel 15.2.0-4 [38.9 kB] Get:87 http://localhost:3142/debian unstable/main armel libc6 armel 2.41-12 [2262 kB] Get:88 http://localhost:3142/debian unstable/main armel libasan8 armel 15.2.0-4 [2601 kB] Get:89 http://localhost:3142/debian unstable/main armel libatomic1 armel 15.2.0-4 [9708 B] Get:90 http://localhost:3142/debian unstable/main armel libcrypt1 armel 1:4.4.38-1 [97.4 kB] Get:91 http://localhost:3142/debian unstable/main armel libcrypt-dev armel 1:4.4.38-1 [127 kB] Get:92 http://localhost:3142/debian unstable/main armel libc6-dev armel 2.41-12 [1362 kB] Get:93 http://localhost:3142/debian unstable/main armel libgomp1 armel 15.2.0-4 [116 kB] Get:94 http://localhost:3142/debian unstable/main armel libstdc++6 armel 15.2.0-4 [608 kB] Get:95 http://localhost:3142/debian unstable/main armel libubsan1 armel 15.2.0-4 [1072 kB] Get:96 http://localhost:3142/debian unstable/main armel libgcc-15-dev armel 15.2.0-4 [761 kB] Get:97 http://localhost:3142/debian unstable/main armel libzstd1 armel 1.5.7+dfsg-1.1 [270 kB] Get:98 http://localhost:3142/debian unstable/main armel zlib1g armel 1:1.3.dfsg+really1.3.1-1+b1 [75.3 kB] Get:99 http://localhost:3142/debian unstable/main armel libssl3t64 armel 3.5.2-1 [1946 kB] Get:100 http://localhost:3142/debian unstable/main armel libssl-dev armel 3.5.2-1 [2539 kB] Get:101 http://localhost:3142/debian unstable/main armel libstdc++-15-dev armel 15.2.0-4 [2406 kB] Preconfiguring packages ... Fetched 316 MB in 2s (209 MB/s) Selecting previously unselected package libexpat1:amd64. (Reading database ... 12958 files and directories currently installed.) Preparing to unpack .../000-libexpat1_2.7.2-1_amd64.deb ... Unpacking libexpat1:amd64 (2.7.2-1) ... Selecting previously unselected package libncursesw6:amd64. Preparing to unpack .../001-libncursesw6_6.5+20250216-2_amd64.deb ... Unpacking libncursesw6:amd64 (6.5+20250216-2) ... Selecting previously unselected package libproc2-0:amd64. Preparing to unpack .../002-libproc2-0_2%3a4.0.4-9_amd64.deb ... Unpacking libproc2-0:amd64 (2:4.0.4-9) ... Selecting previously unselected package procps. Preparing to unpack .../003-procps_2%3a4.0.4-9_amd64.deb ... Unpacking procps (2:4.0.4-9) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../004-sensible-utils_0.0.26_all.deb ... Unpacking sensible-utils (0.0.26) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../005-libmagic-mgc_1%3a5.46-5_amd64.deb ... Unpacking libmagic-mgc (1:5.46-5) ... Selecting previously unselected package libmagic1t64:amd64. Preparing to unpack .../006-libmagic1t64_1%3a5.46-5_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.46-5) ... Selecting previously unselected package file. Preparing to unpack .../007-file_1%3a5.46-5_amd64.deb ... Unpacking file (1:5.46-5) ... Selecting previously unselected package gettext-base. Preparing to unpack .../008-gettext-base_0.23.1-2+b1_amd64.deb ... Unpacking gettext-base (0.23.1-2+b1) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../009-libuchardet0_0.0.8-2_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.8-2) ... Selecting previously unselected package groff-base. Preparing to unpack .../010-groff-base_1.23.0-9_amd64.deb ... Unpacking groff-base (1.23.0-9) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../011-bsdextrautils_2.41.1-3_amd64.deb ... Unpacking bsdextrautils (2.41.1-3) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../012-libpipeline1_1.5.8-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../013-man-db_2.13.1-1_amd64.deb ... Unpacking man-db (2.13.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../014-m4_1.4.20-1_amd64.deb ... Unpacking m4 (1.4.20-1) ... Selecting previously unselected package autoconf. Preparing to unpack .../015-autoconf_2.72-3.1_all.deb ... Unpacking autoconf (2.72-3.1) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../016-autotools-dev_20240727.1_all.deb ... Unpacking autotools-dev (20240727.1) ... Selecting previously unselected package automake. Preparing to unpack .../017-automake_1%3a1.17-4_all.deb ... Unpacking automake (1:1.17-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../018-autopoint_0.23.1-2_all.deb ... Unpacking autopoint (0.23.1-2) ... Selecting previously unselected package binutils-arm-linux-gnueabi. Preparing to unpack .../019-binutils-arm-linux-gnueabi_2.45-7_amd64.deb ... Unpacking binutils-arm-linux-gnueabi (2.45-7) ... Selecting previously unselected package cmake-data. Preparing to unpack .../020-cmake-data_4.1.1+really3.31.6-1_all.deb ... Unpacking cmake-data (4.1.1+really3.31.6-1) ... Selecting previously unselected package libxml2-16:amd64. Preparing to unpack .../021-libxml2-16_2.14.5+dfsg-0.2_amd64.deb ... Unpacking libxml2-16:amd64 (2.14.5+dfsg-0.2) ... Selecting previously unselected package libarchive13t64:amd64. Preparing to unpack .../022-libarchive13t64_3.7.4-4+b1_amd64.deb ... Unpacking libarchive13t64:amd64 (3.7.4-4+b1) ... Selecting previously unselected package libbrotli1:amd64. Preparing to unpack .../023-libbrotli1_1.1.0-2+b7_amd64.deb ... Unpacking libbrotli1:amd64 (1.1.0-2+b7) ... Selecting previously unselected package libkrb5support0:amd64. Preparing to unpack .../024-libkrb5support0_1.21.3-5_amd64.deb ... Unpacking libkrb5support0:amd64 (1.21.3-5) ... Selecting previously unselected package libcom-err2:amd64. Preparing to unpack .../025-libcom-err2_1.47.2-3+b3_amd64.deb ... Unpacking libcom-err2:amd64 (1.47.2-3+b3) ... Selecting previously unselected package libk5crypto3:amd64. Preparing to unpack .../026-libk5crypto3_1.21.3-5_amd64.deb ... Unpacking libk5crypto3:amd64 (1.21.3-5) ... Selecting previously unselected package libkeyutils1:amd64. Preparing to unpack .../027-libkeyutils1_1.6.3-6_amd64.deb ... Unpacking libkeyutils1:amd64 (1.6.3-6) ... Selecting previously unselected package libkrb5-3:amd64. Preparing to unpack .../028-libkrb5-3_1.21.3-5_amd64.deb ... Unpacking libkrb5-3:amd64 (1.21.3-5) ... Selecting previously unselected package libgssapi-krb5-2:amd64. Preparing to unpack .../029-libgssapi-krb5-2_1.21.3-5_amd64.deb ... Unpacking libgssapi-krb5-2:amd64 (1.21.3-5) ... Selecting previously unselected package libunistring5:amd64. Preparing to unpack .../030-libunistring5_1.3-2_amd64.deb ... Unpacking libunistring5:amd64 (1.3-2) ... Selecting previously unselected package libidn2-0:amd64. Preparing to unpack .../031-libidn2-0_2.3.8-4_amd64.deb ... Unpacking libidn2-0:amd64 (2.3.8-4) ... Selecting previously unselected package libsasl2-modules-db:amd64. Preparing to unpack .../032-libsasl2-modules-db_2.1.28+dfsg1-9_amd64.deb ... Unpacking libsasl2-modules-db:amd64 (2.1.28+dfsg1-9) ... Selecting previously unselected package libsasl2-2:amd64. Preparing to unpack .../033-libsasl2-2_2.1.28+dfsg1-9_amd64.deb ... Unpacking libsasl2-2:amd64 (2.1.28+dfsg1-9) ... Selecting previously unselected package libldap2:amd64. Preparing to unpack .../034-libldap2_2.6.10+dfsg-1_amd64.deb ... Unpacking libldap2:amd64 (2.6.10+dfsg-1) ... Selecting previously unselected package libnghttp2-14:amd64. Preparing to unpack .../035-libnghttp2-14_1.64.0-1.1+b1_amd64.deb ... Unpacking libnghttp2-14:amd64 (1.64.0-1.1+b1) ... Selecting previously unselected package libnghttp3-9:amd64. Preparing to unpack .../036-libnghttp3-9_1.11.0-1_amd64.deb ... Unpacking libnghttp3-9:amd64 (1.11.0-1) ... Selecting previously unselected package libpsl5t64:amd64. Preparing to unpack .../037-libpsl5t64_0.21.2-1.1+b1_amd64.deb ... Unpacking libpsl5t64:amd64 (0.21.2-1.1+b1) ... Selecting previously unselected package libffi8:amd64. Preparing to unpack .../038-libffi8_3.5.2-2_amd64.deb ... Unpacking libffi8:amd64 (3.5.2-2) ... Selecting previously unselected package libp11-kit0:amd64. Preparing to unpack .../039-libp11-kit0_0.25.5-3_amd64.deb ... Unpacking libp11-kit0:amd64 (0.25.5-3) ... Selecting previously unselected package libtasn1-6:amd64. Preparing to unpack .../040-libtasn1-6_4.20.0-2_amd64.deb ... Unpacking libtasn1-6:amd64 (4.20.0-2) ... Selecting previously unselected package libgnutls30t64:amd64. Preparing to unpack .../041-libgnutls30t64_3.8.10-2_amd64.deb ... Unpacking libgnutls30t64:amd64 (3.8.10-2) ... Selecting previously unselected package librtmp1:amd64. Preparing to unpack .../042-librtmp1_2.4+20151223.gitfa8646d.1-3_amd64.deb ... Unpacking librtmp1:amd64 (2.4+20151223.gitfa8646d.1-3) ... Selecting previously unselected package libssh2-1t64:amd64. Preparing to unpack .../043-libssh2-1t64_1.11.1-1_amd64.deb ... Unpacking libssh2-1t64:amd64 (1.11.1-1) ... Selecting previously unselected package libcurl4t64:amd64. Preparing to unpack .../044-libcurl4t64_8.16.0-1_amd64.deb ... Unpacking libcurl4t64:amd64 (8.16.0-1) ... Selecting previously unselected package libjsoncpp26:amd64. Preparing to unpack .../045-libjsoncpp26_1.9.6-4_amd64.deb ... Unpacking libjsoncpp26:amd64 (1.9.6-4) ... Selecting previously unselected package librhash1:amd64. Preparing to unpack .../046-librhash1_1.4.6-1_amd64.deb ... Unpacking librhash1:amd64 (1.4.6-1) ... Selecting previously unselected package libuv1t64:amd64. Preparing to unpack .../047-libuv1t64_1.51.0-2_amd64.deb ... Unpacking libuv1t64:amd64 (1.51.0-2) ... Selecting previously unselected package cmake. Preparing to unpack .../048-cmake_4.1.1+really3.31.6-1_amd64.deb ... Unpacking cmake (4.1.1+really3.31.6-1) ... Selecting previously unselected package gcc-15-arm-linux-gnueabi-base:amd64. Preparing to unpack .../049-gcc-15-arm-linux-gnueabi-base_15.2.0-4cross1_amd64.deb ... Unpacking gcc-15-arm-linux-gnueabi-base:amd64 (15.2.0-4cross1) ... Selecting previously unselected package cpp-15-arm-linux-gnueabi. Preparing to unpack .../050-cpp-15-arm-linux-gnueabi_15.2.0-4cross1_amd64.deb ... Unpacking cpp-15-arm-linux-gnueabi (15.2.0-4cross1) ... Selecting previously unselected package cpp-arm-linux-gnueabi. Preparing to unpack .../051-cpp-arm-linux-gnueabi_4%3a15.2.0-4_amd64.deb ... Unpacking cpp-arm-linux-gnueabi (4:15.2.0-4) ... Selecting previously unselected package gcc-15-cross-base-ports. Preparing to unpack .../052-gcc-15-cross-base-ports_15.2.0-4cross1_all.deb ... Unpacking gcc-15-cross-base-ports (15.2.0-4cross1) ... Selecting previously unselected package libc6-armel-cross. Preparing to unpack .../053-libc6-armel-cross_2.41-11cross1_all.deb ... Unpacking libc6-armel-cross (2.41-11cross1) ... Selecting previously unselected package libgcc-s1-armel-cross. Preparing to unpack .../054-libgcc-s1-armel-cross_15.2.0-4cross1_all.deb ... Unpacking libgcc-s1-armel-cross (15.2.0-4cross1) ... Selecting previously unselected package libgomp1-armel-cross. Preparing to unpack .../055-libgomp1-armel-cross_15.2.0-4cross1_all.deb ... Unpacking libgomp1-armel-cross (15.2.0-4cross1) ... Selecting previously unselected package libatomic1-armel-cross. Preparing to unpack .../056-libatomic1-armel-cross_15.2.0-4cross1_all.deb ... Unpacking libatomic1-armel-cross (15.2.0-4cross1) ... Selecting previously unselected package libasan8-armel-cross. Preparing to unpack .../057-libasan8-armel-cross_15.2.0-4cross1_all.deb ... Unpacking libasan8-armel-cross (15.2.0-4cross1) ... Selecting previously unselected package libstdc++6-armel-cross. Preparing to unpack .../058-libstdc++6-armel-cross_15.2.0-4cross1_all.deb ... Unpacking libstdc++6-armel-cross (15.2.0-4cross1) ... Selecting previously unselected package libubsan1-armel-cross. Preparing to unpack .../059-libubsan1-armel-cross_15.2.0-4cross1_all.deb ... Unpacking libubsan1-armel-cross (15.2.0-4cross1) ... Selecting previously unselected package libgcc-15-dev-armel-cross. Preparing to unpack .../060-libgcc-15-dev-armel-cross_15.2.0-4cross1_all.deb ... Unpacking libgcc-15-dev-armel-cross (15.2.0-4cross1) ... Selecting previously unselected package gcc-15-arm-linux-gnueabi. Preparing to unpack .../061-gcc-15-arm-linux-gnueabi_15.2.0-4cross1_amd64.deb ... Unpacking gcc-15-arm-linux-gnueabi (15.2.0-4cross1) ... Selecting previously unselected package gcc-arm-linux-gnueabi. Preparing to unpack .../062-gcc-arm-linux-gnueabi_4%3a15.2.0-4_amd64.deb ... Unpacking gcc-arm-linux-gnueabi (4:15.2.0-4) ... Selecting previously unselected package linux-libc-dev-armel-cross. Preparing to unpack .../063-linux-libc-dev-armel-cross_6.12.38-1cross1_all.deb ... Unpacking linux-libc-dev-armel-cross (6.12.38-1cross1) ... Selecting previously unselected package libc6-dev-armel-cross. Preparing to unpack .../064-libc6-dev-armel-cross_2.41-11cross1_all.deb ... Unpacking libc6-dev-armel-cross (2.41-11cross1) ... Selecting previously unselected package libstdc++-15-dev-armel-cross. Preparing to unpack .../065-libstdc++-15-dev-armel-cross_15.2.0-4cross1_all.deb ... Unpacking libstdc++-15-dev-armel-cross (15.2.0-4cross1) ... Selecting previously unselected package g++-15-arm-linux-gnueabi. Preparing to unpack .../066-g++-15-arm-linux-gnueabi_15.2.0-4cross1_amd64.deb ... Unpacking g++-15-arm-linux-gnueabi (15.2.0-4cross1) ... Selecting previously unselected package g++-arm-linux-gnueabi. Preparing to unpack .../067-g++-arm-linux-gnueabi_4%3a15.2.0-4_amd64.deb ... Unpacking g++-arm-linux-gnueabi (4:15.2.0-4) ... Selecting previously unselected package crossbuild-essential-armel. Preparing to unpack .../068-crossbuild-essential-armel_12.12_all.deb ... Unpacking crossbuild-essential-armel (12.12) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../069-libdebhelper-perl_13.26_all.deb ... Unpacking libdebhelper-perl (13.26) ... Selecting previously unselected package libtool. Preparing to unpack .../070-libtool_2.5.4-5_all.deb ... Unpacking libtool (2.5.4-5) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../071-dh-autoreconf_21_all.deb ... Unpacking dh-autoreconf (21) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../072-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../073-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../074-dh-strip-nondeterminism_1.15.0-1_all.deb ... Unpacking dh-strip-nondeterminism (1.15.0-1) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../075-libelf1t64_0.193-3_amd64.deb ... Unpacking libelf1t64:amd64 (0.193-3) ... Selecting previously unselected package dwz. Preparing to unpack .../076-dwz_0.16-2_amd64.deb ... Unpacking dwz (0.16-2) ... Selecting previously unselected package gettext. Preparing to unpack .../077-gettext_0.23.1-2+b1_amd64.deb ... Unpacking gettext (0.23.1-2+b1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../078-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../079-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../080-debhelper_13.26_all.deb ... Unpacking debhelper (13.26) ... Selecting previously unselected package libfakeroot:amd64. Preparing to unpack .../081-libfakeroot_1.37.1.2-1_amd64.deb ... Unpacking libfakeroot:amd64 (1.37.1.2-1) ... Selecting previously unselected package fakeroot. Preparing to unpack .../082-fakeroot_1.37.1.2-1_amd64.deb ... Unpacking fakeroot (1.37.1.2-1) ... Selecting previously unselected package gcc-15-base:armel. Preparing to unpack .../083-gcc-15-base_15.2.0-4_armel.deb ... Unpacking gcc-15-base:armel (15.2.0-4) ... Selecting previously unselected package libgcc-s1:armel. Preparing to unpack .../084-libgcc-s1_15.2.0-4_armel.deb ... Unpacking libgcc-s1:armel (15.2.0-4) ... Selecting previously unselected package libc6:armel. Preparing to unpack .../085-libc6_2.41-12_armel.deb ... Unpacking libc6:armel (2.41-12) ... Selecting previously unselected package libasan8:armel. Preparing to unpack .../086-libasan8_15.2.0-4_armel.deb ... Unpacking libasan8:armel (15.2.0-4) ... Selecting previously unselected package libatomic1:armel. Preparing to unpack .../087-libatomic1_15.2.0-4_armel.deb ... Unpacking libatomic1:armel (15.2.0-4) ... Selecting previously unselected package libcrypt1:armel. Preparing to unpack .../088-libcrypt1_1%3a4.4.38-1_armel.deb ... Unpacking libcrypt1:armel (1:4.4.38-1) ... Selecting previously unselected package libcrypt-dev:armel. Preparing to unpack .../089-libcrypt-dev_1%3a4.4.38-1_armel.deb ... Unpacking libcrypt-dev:armel (1:4.4.38-1) ... Selecting previously unselected package libc6-dev:armel. Preparing to unpack .../090-libc6-dev_2.41-12_armel.deb ... Unpacking libc6-dev:armel (2.41-12) ... Selecting previously unselected package libgomp1:armel. Preparing to unpack .../091-libgomp1_15.2.0-4_armel.deb ... Unpacking libgomp1:armel (15.2.0-4) ... Selecting previously unselected package libstdc++6:armel. Preparing to unpack .../092-libstdc++6_15.2.0-4_armel.deb ... Unpacking libstdc++6:armel (15.2.0-4) ... Selecting previously unselected package libubsan1:armel. Preparing to unpack .../093-libubsan1_15.2.0-4_armel.deb ... Unpacking libubsan1:armel (15.2.0-4) ... Selecting previously unselected package libgcc-15-dev:armel. Preparing to unpack .../094-libgcc-15-dev_15.2.0-4_armel.deb ... Unpacking libgcc-15-dev:armel (15.2.0-4) ... Selecting previously unselected package libzstd1:armel. Preparing to unpack .../095-libzstd1_1.5.7+dfsg-1.1_armel.deb ... Unpacking libzstd1:armel (1.5.7+dfsg-1.1) ... Selecting previously unselected package zlib1g:armel. Preparing to unpack .../096-zlib1g_1%3a1.3.dfsg+really1.3.1-1+b1_armel.deb ... Unpacking zlib1g:armel (1:1.3.dfsg+really1.3.1-1+b1) ... Selecting previously unselected package libssl3t64:armel. Preparing to unpack .../097-libssl3t64_3.5.2-1_armel.deb ... Unpacking libssl3t64:armel (3.5.2-1) ... Selecting previously unselected package libssl-dev:armel. Preparing to unpack .../098-libssl-dev_3.5.2-1_armel.deb ... Unpacking libssl-dev:armel (3.5.2-1) ... Selecting previously unselected package libstdc++-15-dev:armel. Preparing to unpack .../099-libstdc++-15-dev_15.2.0-4_armel.deb ... Unpacking libstdc++-15-dev:armel (15.2.0-4) ... Selecting previously unselected package sbuild-build-depends-main-dummy:armel. Preparing to unpack .../100-sbuild-build-depends-main-dummy_0.invalid.0_armel.deb ... Unpacking sbuild-build-depends-main-dummy:armel (0.invalid.0) ... Setting up libexpat1:amd64 (2.7.2-1) ... Setting up libpipeline1:amd64 (1.5.8-1) ... Setting up libkeyutils1:amd64 (1.6.3-6) ... Setting up binutils-arm-linux-gnueabi (2.45-7) ... Setting up bsdextrautils (2.41.1-3) ... Setting up libmagic-mgc (1:5.46-5) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libxml2-16:amd64 (2.14.5+dfsg-0.2) ... Setting up libdebhelper-perl (13.26) ... Setting up libbrotli1:amd64 (1.1.0-2+b7) ... Setting up gcc-15-cross-base-ports (15.2.0-4cross1) ... Setting up libuv1t64:amd64 (1.51.0-2) ... Setting up libmagic1t64:amd64 (1:5.46-5) ... Setting up libnghttp2-14:amd64 (1.64.0-1.1+b1) ... Setting up gettext-base (0.23.1-2+b1) ... Setting up m4 (1.4.20-1) ... Setting up libcom-err2:amd64 (1.47.2-3+b3) ... Setting up file (1:5.46-5) ... Setting up libfakeroot:amd64 (1.37.1.2-1) ... Setting up libelf1t64:amd64 (0.193-3) ... Setting up libkrb5support0:amd64 (1.21.3-5) ... Setting up linux-libc-dev-armel-cross (6.12.38-1cross1) ... Setting up libsasl2-modules-db:amd64 (2.1.28+dfsg1-9) ... Setting up fakeroot (1.37.1.2-1) ... update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode Setting up autotools-dev (20240727.1) ... Setting up libjsoncpp26:amd64 (1.9.6-4) ... Setting up libproc2-0:amd64 (2:4.0.4-9) ... Setting up libunistring5:amd64 (1.3-2) ... Setting up autopoint (0.23.1-2) ... Setting up gcc-15-arm-linux-gnueabi-base:amd64 (15.2.0-4cross1) ... Setting up libncursesw6:amd64 (6.5+20250216-2) ... Setting up libk5crypto3:amd64 (1.21.3-5) ... Setting up libsasl2-2:amd64 (2.1.28+dfsg1-9) ... Setting up autoconf (2.72-3.1) ... Setting up libnghttp3-9:amd64 (1.11.0-1) ... Setting up libc6-armel-cross (2.41-11cross1) ... Setting up libffi8:amd64 (3.5.2-2) ... Setting up dwz (0.16-2) ... Setting up sensible-utils (0.0.26) ... Setting up libuchardet0:amd64 (0.0.8-2) ... Setting up procps (2:4.0.4-9) ... Setting up libtasn1-6:amd64 (4.20.0-2) ... Setting up cmake-data (4.1.1+really3.31.6-1) ... Setting up librhash1:amd64 (1.4.6-1) ... Setting up libkrb5-3:amd64 (1.21.3-5) ... Setting up libssh2-1t64:amd64 (1.11.1-1) ... Setting up libc6-dev-armel-cross (2.41-11cross1) ... Setting up gcc-15-base:armel (15.2.0-4) ... Setting up cpp-15-arm-linux-gnueabi (15.2.0-4cross1) ... Setting up libarchive13t64:amd64 (3.7.4-4+b1) ... Setting up libldap2:amd64 (2.6.10+dfsg-1) ... Setting up automake (1:1.17-4) ... update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... Setting up gettext (0.23.1-2+b1) ... Setting up libgomp1-armel-cross (15.2.0-4cross1) ... Setting up libtool (2.5.4-5) ... Setting up libgcc-s1-armel-cross (15.2.0-4cross1) ... Setting up libidn2-0:amd64 (2.3.8-4) ... Setting up libstdc++6-armel-cross (15.2.0-4cross1) ... Setting up libatomic1-armel-cross (15.2.0-4cross1) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (21) ... Setting up cpp-arm-linux-gnueabi (4:15.2.0-4) ... Setting up libubsan1-armel-cross (15.2.0-4cross1) ... Setting up libp11-kit0:amd64 (0.25.5-3) ... Setting up libgssapi-krb5-2:amd64 (1.21.3-5) ... Setting up dh-strip-nondeterminism (1.15.0-1) ... Setting up groff-base (1.23.0-9) ... Setting up libgnutls30t64:amd64 (3.8.10-2) ... Setting up libasan8-armel-cross (15.2.0-4cross1) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libpsl5t64:amd64 (0.21.2-1.1+b1) ... Setting up man-db (2.13.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up librtmp1:amd64 (2.4+20151223.gitfa8646d.1-3) ... Setting up libgcc-15-dev-armel-cross (15.2.0-4cross1) ... Setting up gcc-15-arm-linux-gnueabi (15.2.0-4cross1) ... Setting up libcurl4t64:amd64 (8.16.0-1) ... Setting up debhelper (13.26) ... Setting up libstdc++-15-dev-armel-cross (15.2.0-4cross1) ... Setting up gcc-arm-linux-gnueabi (4:15.2.0-4) ... Setting up cmake (4.1.1+really3.31.6-1) ... Setting up g++-15-arm-linux-gnueabi (15.2.0-4cross1) ... Setting up g++-arm-linux-gnueabi (4:15.2.0-4) ... Setting up crossbuild-essential-armel (12.12) ... Setting up libgcc-s1:armel (15.2.0-4) ... Setting up libc6:armel (2.41-12) ... Setting up libasan8:armel (15.2.0-4) ... Setting up libstdc++6:armel (15.2.0-4) ... Setting up libzstd1:armel (1.5.7+dfsg-1.1) ... Setting up zlib1g:armel (1:1.3.dfsg+really1.3.1-1+b1) ... Setting up libcrypt1:armel (1:4.4.38-1) ... Setting up libgomp1:armel (15.2.0-4) ... Setting up libatomic1:armel (15.2.0-4) ... Setting up libubsan1:armel (15.2.0-4) ... Setting up libcrypt-dev:armel (1:4.4.38-1) ... Setting up libc6-dev:armel (2.41-12) ... Setting up libgcc-15-dev:armel (15.2.0-4) ... Setting up libssl3t64:armel (3.5.2-1) ... Setting up libstdc++-15-dev:armel (15.2.0-4) ... Setting up libssl-dev:armel (3.5.2-1) ... Setting up sbuild-build-depends-main-dummy:armel (0.invalid.0) ... Processing triggers for libc-bin (2.41-12) ... +------------------------------------------------------------------------------+ | Check architectures | +------------------------------------------------------------------------------+ Arch check ok (armel included in any) +------------------------------------------------------------------------------+ | Build environment | +------------------------------------------------------------------------------+ Kernel: Linux 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) amd64 (x86_64) Toolchain package versions: binutils_2.45-7 dpkg-dev_1.22.21 g++-15_15.2.0-4 gcc-15_15.2.0-4 libc6-dev_2.41-12 libstdc++-15-dev_15.2.0-4 libstdc++-15-dev-armel-cross_15.2.0-4cross1 libstdc++6_15.2.0-4 libstdc++6-armel-cross_15.2.0-4cross1 linux-libc-dev_6.16.7-1 Package versions: apt_3.1.5 apt-utils_3.1.5 autoconf_2.72-3.1 automake_1:1.17-4 autopoint_0.23.1-2 autotools-dev_20240727.1 base-files_14 base-passwd_3.6.7 bash_5.3-1 binutils_2.45-7 binutils-arm-linux-gnueabi_2.45-7 binutils-common_2.45-7 binutils-x86-64-linux-gnu_2.45-7 bsdextrautils_2.41.1-3 bsdutils_1:2.41.1-3 build-essential_12.12 bzip2_1.0.8-6 cmake_4.1.1+really3.31.6-1 cmake-data_4.1.1+really3.31.6-1 coreutils_9.7-3 cpp_4:15.2.0-4 cpp-15_15.2.0-4 cpp-15-arm-linux-gnueabi_15.2.0-4cross1 cpp-15-x86-64-linux-gnu_15.2.0-4 cpp-arm-linux-gnueabi_4:15.2.0-4 cpp-x86-64-linux-gnu_4:15.2.0-4 crossbuild-essential-armel_12.12 dash_0.5.12-12 debconf_1.5.91 debhelper_13.26 debian-archive-keyring_2025.1 debianutils_5.23.2 dh-autoreconf_21 dh-strip-nondeterminism_1.15.0-1 diffutils_1:3.10-4 dpkg_1.22.21 dpkg-dev_1.22.21 dwz_0.16-2 fakeroot_1.37.1.2-1 file_1:5.46-5 findutils_4.10.0-3 g++_4:15.2.0-4 g++-15_15.2.0-4 g++-15-arm-linux-gnueabi_15.2.0-4cross1 g++-15-x86-64-linux-gnu_15.2.0-4 g++-arm-linux-gnueabi_4:15.2.0-4 g++-x86-64-linux-gnu_4:15.2.0-4 gcc_4:15.2.0-4 gcc-15_15.2.0-4 gcc-15-arm-linux-gnueabi_15.2.0-4cross1 gcc-15-arm-linux-gnueabi-base_15.2.0-4cross1 gcc-15-base_15.2.0-4 gcc-15-cross-base-ports_15.2.0-4cross1 gcc-15-x86-64-linux-gnu_15.2.0-4 gcc-arm-linux-gnueabi_4:15.2.0-4 gcc-x86-64-linux-gnu_4:15.2.0-4 gettext_0.23.1-2+b1 gettext-base_0.23.1-2+b1 grep_3.11-4 groff-base_1.23.0-9 gzip_1.13-1 hostname_3.25 init-system-helpers_1.69 intltool-debian_0.35.0+20060710.6 libacl1_2.3.2-2+b1 libapt-pkg7.0_3.1.5 libarchive-zip-perl_1.68-1 libarchive13t64_3.7.4-4+b1 libasan8_15.2.0-4 libasan8-armel-cross_15.2.0-4cross1 libatomic1_15.2.0-4 libatomic1-armel-cross_15.2.0-4cross1 libattr1_1:2.5.2-3 libaudit-common_1:4.1.2-1 libaudit1_1:4.1.2-1 libbinutils_2.45-7 libblkid1_2.41.1-3 libbrotli1_1.1.0-2+b7 libbsd0_0.12.2-2 libbz2-1.0_1.0.8-6 libc-bin_2.41-12 libc-dev-bin_2.41-12 libc6_2.41-12 libc6-armel-cross_2.41-11cross1 libc6-dev_2.41-12 libc6-dev-armel-cross_2.41-11cross1 libcap-ng0_0.8.5-4+b1 libcap2_1:2.75-10+b1 libcc1-0_15.2.0-4 libcom-err2_1.47.2-3+b3 libcrypt-dev_1:4.4.38-1 libcrypt1_1:4.4.38-1 libctf-nobfd0_2.45-7 libctf0_2.45-7 libcurl4t64_8.16.0-1 libdb5.3t64_5.3.28+dfsg2-9 libdebconfclient0_0.280 libdebhelper-perl_13.26 libdpkg-perl_1.22.21 libelf1t64_0.193-3 libexpat1_2.7.2-1 libfakeroot_1.37.1.2-1 libffi8_3.5.2-2 libfile-stripnondeterminism-perl_1.15.0-1 libgcc-15-dev_15.2.0-4 libgcc-15-dev-armel-cross_15.2.0-4cross1 libgcc-s1_15.2.0-4 libgcc-s1-armel-cross_15.2.0-4cross1 libgdbm-compat4t64_1.26-1 libgdbm6t64_1.26-1 libgmp10_2:6.3.0+dfsg-5 libgnutls30t64_3.8.10-2 libgomp1_15.2.0-4 libgomp1-armel-cross_15.2.0-4cross1 libgprofng0_2.45-7 libgssapi-krb5-2_1.21.3-5 libhogweed6t64_3.10.1-1 libhwasan0_15.2.0-4 libidn2-0_2.3.8-4 libisl23_0.27-1 libitm1_15.2.0-4 libjansson4_2.14-2+b3 libjsoncpp26_1.9.6-4 libk5crypto3_1.21.3-5 libkeyutils1_1.6.3-6 libkrb5-3_1.21.3-5 libkrb5support0_1.21.3-5 liblastlog2-2_2.41.1-3 libldap2_2.6.10+dfsg-1 liblsan0_15.2.0-4 liblz4-1_1.10.0-4 liblzma5_5.8.1-1.1 libmagic-mgc_1:5.46-5 libmagic1t64_1:5.46-5 libmd0_1.1.0-2+b1 libmount1_2.41.1-3 libmpc3_1.3.1-2 libmpfr6_4.2.2-2 libncursesw6_6.5+20250216-2 libnettle8t64_3.10.1-1 libnghttp2-14_1.64.0-1.1+b1 libnghttp3-9_1.11.0-1 libp11-kit0_0.25.5-3 libpam-modules_1.7.0-5 libpam-modules-bin_1.7.0-5 libpam-runtime_1.7.0-5 libpam0g_1.7.0-5 libpcre2-8-0_10.46-1 libperl5.40_5.40.1-6 libpipeline1_1.5.8-1 libproc2-0_2:4.0.4-9 libpsl5t64_0.21.2-1.1+b1 libquadmath0_15.2.0-4 librhash1_1.4.6-1 librtmp1_2.4+20151223.gitfa8646d.1-3 libsasl2-2_2.1.28+dfsg1-9 libsasl2-modules-db_2.1.28+dfsg1-9 libseccomp2_2.6.0-2 libselinux1_3.8.1-1 libsemanage-common_3.8.1-1 libsemanage2_3.8.1-1 libsepol2_3.8.1-1 libsframe2_2.45-7 libsmartcols1_2.41.1-3 libsqlite3-0_3.46.1-8 libssh2-1t64_1.11.1-1 libssl-dev_3.5.2-1 libssl3t64_3.5.2-1 libstdc++-15-dev_15.2.0-4 libstdc++-15-dev-armel-cross_15.2.0-4cross1 libstdc++6_15.2.0-4 libstdc++6-armel-cross_15.2.0-4cross1 libsystemd0_258~rc4-1 libtasn1-6_4.20.0-2 libtinfo6_6.5+20250216-2 libtool_2.5.4-5 libtsan2_15.2.0-4 libubsan1_15.2.0-4 libubsan1-armel-cross_15.2.0-4cross1 libuchardet0_0.0.8-2 libudev1_258~rc4-1 libunistring5_1.3-2 libuuid1_2.41.1-3 libuv1t64_1.51.0-2 libxml2-16_2.14.5+dfsg-0.2 libxxhash0_0.8.3-2 libzstd1_1.5.7+dfsg-1.1 linux-libc-dev_6.16.7-1 linux-libc-dev-armel-cross_6.12.38-1cross1 login_1:4.16.0-2+really2.41.1-3 login.defs_1:4.18.0-1 m4_1.4.20-1 make_4.4.1-2 man-db_2.13.1-1 mawk_1.3.4.20250131-1 mount_2.41.1-3 ncurses-base_6.5+20250216-2 ncurses-bin_6.5+20250216-2 openssl-provider-legacy_3.5.2-1 passwd_1:4.18.0-1 patch_2.8-2 perl_5.40.1-6 perl-base_5.40.1-6 perl-modules-5.40_5.40.1-6 po-debconf_1.0.21+nmu1 procps_2:4.0.4-9 rpcsvc-proto_1.4.3-1 sbuild-build-depends-main-dummy_0.invalid.0 sed_4.9-2 sensible-utils_0.0.26 sqv_1.3.0-3 sysvinit-utils_3.14-4 tar_1.35+dfsg-3.1 tzdata_2025b-5 util-linux_2.41.1-3 xz-utils_5.8.1-1.1 zlib1g_1:1.3.dfsg+really1.3.1-1+b1 +------------------------------------------------------------------------------+ | Build | +------------------------------------------------------------------------------+ Unpack source ------------- -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: workflow Binary: libworkflow0t64, libworkflow-dev Architecture: any Version: 0.11.10-2 Maintainer: Lance Lin Homepage: https://github.com/sogou/workflow Standards-Version: 4.7.2 Vcs-Browser: https://salsa.debian.org/debian/workflow Vcs-Git: https://salsa.debian.org/debian/workflow.git Testsuite: autopkgtest Testsuite-Triggers: @builddeps@ Build-Depends: dpkg-dev (>= 1.22.5), debhelper-compat (= 13), cmake, libgtest-dev , libssl-dev Package-List: libworkflow-dev deb libdevel optional arch=any libworkflow0t64 deb libs optional arch=any Checksums-Sha1: 4705f463c8d472820de6e7ab8d51b3fcf5bd8711 440638 workflow_0.11.10.orig.tar.gz 0490df3d093ee984a3096c24ae1538d6390dc294 6268 workflow_0.11.10-2.debian.tar.xz Checksums-Sha256: a881fa00083829597450b579dbeb4d334d935e7f54e63564722771431ad1a615 440638 workflow_0.11.10.orig.tar.gz d2e40bb2e855188d8e3127899c1b7ae8800ae16677af4d37e856cfe6b4e6eb5a 6268 workflow_0.11.10-2.debian.tar.xz Files: ff92a22c704a8452888ec340fa372e95 440638 workflow_0.11.10.orig.tar.gz 0361a7b4e77b3681f40b24998d09c935 6268 workflow_0.11.10-2.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEESjHbWh7kCWyHOZiAkDZJKUwz+bcFAmjIGE0ACgkQkDZJKUwz +bdQ5Q/+PSODmSxiSuy44yJH3wU3p2Y4f6gwdccZ+7GPDduh1ioLU+ORyMVC/Q9U 9GSd4ZDXaQueY6QUj6APCPEZOFGmPYEf9TiUhZOlMNv965jzeKYgYnNsBdGrXusb cWhkE/j/blKaCOIUhiURuJDjU2094LQjPUxfe8/J6zxRMx9PDJzg4xgT57wWtt2p BM95J3FHnG6RzF/gsfd4rz/Lpstql9FmfAew9/JZUGKUCplvx/dJQH+cPqRAEvBb fRRjVB/YlsiBiotpba+7p6bJsSkL7ZVx8FciAmsXISoN4NgV1Ft9Hoz1gbkuA0k8 C6huDzsPIs1+eihAmbsDgra4FeGYwwEZsePgfsObyceBPskgvSutv641Y0/TVz9u 9dDD5nCYOdYm9P0JGehwFpw76cDVwZ0ELycXNEe/XiCSqmy1dEnAyVgbnLp36puQ nWj5pwLH4CSXYW3O+9lFCILFEbK0CyZA9tH400+kUdAPr0yyXycv2HRGOjinapHV cMcC4mUbjYtq/4htxzXgU1zTq5EYnY45d0kLdWCqALxOwauuvZrgOOQfODaqRlZJ 4qogzswWutwMyT4S6uwCBnZwJYzEIBlsqj4gyPzkXO880+x5TnMelMKqp3TLYkRv 10C39fNUZR13HbK/koFVsEtAwEe7S8OFDYrKZ+PngAYMFZ7EJiA= =iENi -----END PGP SIGNATURE----- dpkg-source: warning: cannot verify inline signature for ./workflow_0.11.10-2.dsc: no acceptable signature found dpkg-source: info: extracting workflow in /<> dpkg-source: info: unpacking workflow_0.11.10.orig.tar.gz dpkg-source: info: unpacking workflow_0.11.10-2.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying fix_ftbfs_with_gtest.patch dpkg-source: info: applying remove-online-tests.patch dpkg-source: info: applying adjust-server-name.patch dpkg-source: info: applying add_hardening_flag_for_tests.patch Check disk space ---------------- Sufficient free space for build User Environment ---------------- APT_CONFIG=/var/lib/sbuild/apt.conf CONFIG_SITE=/etc/dpkg-cross/cross-config.armel DEB_BUILD_OPTIONS=nocheck HOME=/sbuild-nonexistent LANG=en_US.UTF-8 LC_ALL=C.UTF-8 LOGNAME=crossqa OLDPWD=/home/crossqa PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games SBUILD_CONFIG=/tmp/tmp.mGPwPxNPke/sbuild.conf SCHROOT_ALIAS_NAME=unstable-amd64-sbuild SCHROOT_CHROOT_NAME=sid-amd64-sbuild SCHROOT_COMMAND=env SCHROOT_GID=1000 SCHROOT_GROUP=crossqa SCHROOT_SESSION_ID=sid-amd64-sbuild-5e9361cf-5ea0-469d-be42-62f9e4bccc37 SCHROOT_UID=1000 SCHROOT_USER=crossqa SHELL=/bin/sh USER=crossqa XDG_SESSION_CLASS=user dpkg-buildpackage ----------------- Command: dpkg-buildpackage --sanitize-env -aarmel -Pcross,nocheck -us -uc -B -rfakeroot --jobs-try=1 dpkg-buildpackage: info: source package workflow dpkg-buildpackage: info: source version 0.11.10-2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Lance Lin dpkg-architecture: warning: specified GNU system type arm-linux-gnueabi does not match CC system type x86_64-linux-gnu, try setting a correct CC environment variable dpkg-source --before-build . dpkg-buildpackage: info: host architecture armel debian/rules clean dh clean --buildsystem=cmake dh_auto_clean -O--buildsystem=cmake dh_autoreconf_clean -O--buildsystem=cmake dh_clean -O--buildsystem=cmake debian/rules binary-arch dh binary-arch --buildsystem=cmake dh_update_autotools_config -a -O--buildsystem=cmake dh_autoreconf -a -O--buildsystem=cmake dh_auto_configure -a -O--buildsystem=cmake cd obj-arm-linux-gnueabi && DEB_PYTHON_INSTALL_LAYOUT=deb PKG_CONFIG=/usr/bin/arm-linux-gnueabi-pkg-config cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DFETCHCONTENT_FULLY_DISCONNECTED=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_PROCESSOR=armv7l -DCMAKE_C_COMPILER=arm-linux-gnueabi-gcc -DCMAKE_CXX_COMPILER=arm-linux-gnueabi-g\+\+ -DPKG_CONFIG_EXECUTABLE=/usr/bin/arm-linux-gnueabi-pkg-config -DPKGCONFIG_EXECUTABLE=/usr/bin/arm-linux-gnueabi-pkg-config -DQMAKE_EXECUTABLE=/usr/bin/arm-linux-gnueabi-qmake -DCMAKE_INSTALL_LIBDIR=lib/arm-linux-gnueabi -DBUILD_TESTING:BOOL=OFF .. CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument value. Or, use the ... syntax to tell CMake that the project requires at least but has been updated to work with policies introduced by or earlier. -- The C compiler identification is GNU 15.2.0 -- The CXX compiler identification is GNU 15.2.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/arm-linux-gnueabi-gcc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/arm-linux-gnueabi-g++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done CMake Deprecation Warning at CMakeLists_Headers.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument value. Or, use the ... syntax to tell CMake that the project requires at least but has been updated to work with policies introduced by or earlier. Call Stack (most recent call first): CMakeLists.txt:35 (INCLUDE) CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at CMakeLists.txt:38 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): CMakeLists.txt:53 (makeLink) This warning is for project developers. Use -Wno-dev to suppress it. CMAKE_C_FLAGS_DEBUG is -g CMAKE_C_FLAGS_RELEASE is -O3 -DNDEBUG CMAKE_C_FLAGS_RELWITHDEBINFO is -O2 -g -DNDEBUG CMAKE_C_FLAGS_MINSIZEREL is -Os -DNDEBUG CMAKE_CXX_FLAGS_DEBUG is -g CMAKE_CXX_FLAGS_RELEASE is -O3 -DNDEBUG CMAKE_CXX_FLAGS_RELWITHDEBINFO is -O2 -g -DNDEBUG CMAKE_CXX_FLAGS_MINSIZEREL is -Os -DNDEBUG CMake Deprecation Warning at src/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument value. Or, use the ... syntax to tell CMake that the project requires at least but has been updated to work with policies introduced by or earlier. -- Found OpenSSL: /usr/lib/arm-linux-gnueabi/libcrypto.so (found version "3.5.2") CMake Deprecation Warning at src/kernel/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument value. Or, use the ... syntax to tell CMake that the project requires at least but has been updated to work with policies introduced by or earlier. CMake Deprecation Warning at src/util/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument value. Or, use the ... syntax to tell CMake that the project requires at least but has been updated to work with policies introduced by or earlier. CMake Deprecation Warning at src/manager/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument value. Or, use the ... syntax to tell CMake that the project requires at least but has been updated to work with policies introduced by or earlier. CMake Deprecation Warning at src/protocol/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument value. Or, use the ... syntax to tell CMake that the project requires at least but has been updated to work with policies introduced by or earlier. CMake Deprecation Warning at src/factory/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument value. Or, use the ... syntax to tell CMake that the project requires at least but has been updated to work with policies introduced by or earlier. CMake Deprecation Warning at src/nameservice/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument value. Or, use the ... syntax to tell CMake that the project requires at least but has been updated to work with policies introduced by or earlier. CMake Deprecation Warning at src/server/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument value. Or, use the ... syntax to tell CMake that the project requires at least but has been updated to work with policies introduced by or earlier. CMake Deprecation Warning at src/client/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument value. Or, use the ... syntax to tell CMake that the project requires at least but has been updated to work with policies introduced by or earlier. -- Configuring done (0.4s) -- Generating done (0.0s) CMake Warning: Manually-specified variables were not used by the project: BUILD_TESTING CMAKE_EXPORT_NO_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY FETCHCONTENT_FULLY_DISCONNECTED PKGCONFIG_EXECUTABLE QMAKE_EXECUTABLE -- Build files have been written to: /<>/obj-arm-linux-gnueabi dh_auto_build -a -O--buildsystem=cmake cd obj-arm-linux-gnueabi && make -j1 "INSTALL=install --strip-program=true" VERBOSE=1 make[1]: Entering directory '/<>/obj-arm-linux-gnueabi' /usr/bin/cmake -S/<> -B/<>/obj-arm-linux-gnueabi --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /<>/obj-arm-linux-gnueabi/CMakeFiles /<>/obj-arm-linux-gnueabi//CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[2]: Entering directory '/<>/obj-arm-linux-gnueabi' make -f CMakeFiles/LINK_HEADERS.dir/build.make CMakeFiles/LINK_HEADERS.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabi' cd /<>/obj-arm-linux-gnueabi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<> /<>/obj-arm-linux-gnueabi /<>/obj-arm-linux-gnueabi /<>/obj-arm-linux-gnueabi/CMakeFiles/LINK_HEADERS.dir/DependInfo.cmake "--color=" make[3]: Leaving directory '/<>/obj-arm-linux-gnueabi' make -f CMakeFiles/LINK_HEADERS.dir/build.make CMakeFiles/LINK_HEADERS.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabi' /usr/bin/cmake -E make_directory /<>/_include/workflow /usr/bin/cmake -E copy_if_different /<>/src/protocol/ProtocolMessage.h /<>/_include/workflow/ProtocolMessage.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/http_parser.h /<>/_include/workflow/http_parser.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/HttpMessage.h /<>/_include/workflow/HttpMessage.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/HttpUtil.h /<>/_include/workflow/HttpUtil.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/redis_parser.h /<>/_include/workflow/redis_parser.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/RedisMessage.h /<>/_include/workflow/RedisMessage.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/mysql_stream.h /<>/_include/workflow/mysql_stream.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/MySQLMessage.h /<>/_include/workflow/MySQLMessage.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/MySQLMessage.inl /<>/_include/workflow/MySQLMessage.inl /usr/bin/cmake -E copy_if_different /<>/src/protocol/MySQLResult.h /<>/_include/workflow/MySQLResult.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/MySQLResult.inl /<>/_include/workflow/MySQLResult.inl /usr/bin/cmake -E copy_if_different /<>/src/protocol/MySQLUtil.h /<>/_include/workflow/MySQLUtil.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/mysql_parser.h /<>/_include/workflow/mysql_parser.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/mysql_types.h /<>/_include/workflow/mysql_types.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/mysql_byteorder.h /<>/_include/workflow/mysql_byteorder.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/PackageWrapper.h /<>/_include/workflow/PackageWrapper.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/SSLWrapper.h /<>/_include/workflow/SSLWrapper.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/dns_types.h /<>/_include/workflow/dns_types.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/dns_parser.h /<>/_include/workflow/dns_parser.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/DnsMessage.h /<>/_include/workflow/DnsMessage.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/DnsUtil.h /<>/_include/workflow/DnsUtil.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/TLVMessage.h /<>/_include/workflow/TLVMessage.h /usr/bin/cmake -E copy_if_different /<>/src/protocol/ConsulDataTypes.h /<>/_include/workflow/ConsulDataTypes.h /usr/bin/cmake -E copy_if_different /<>/src/server/WFServer.h /<>/_include/workflow/WFServer.h /usr/bin/cmake -E copy_if_different /<>/src/server/WFDnsServer.h /<>/_include/workflow/WFDnsServer.h /usr/bin/cmake -E copy_if_different /<>/src/server/WFHttpServer.h /<>/_include/workflow/WFHttpServer.h /usr/bin/cmake -E copy_if_different /<>/src/server/WFRedisServer.h /<>/_include/workflow/WFRedisServer.h /usr/bin/cmake -E copy_if_different /<>/src/server/WFMySQLServer.h /<>/_include/workflow/WFMySQLServer.h /usr/bin/cmake -E copy_if_different /<>/src/client/WFHttpChunkedClient.h /<>/_include/workflow/WFHttpChunkedClient.h /usr/bin/cmake -E copy_if_different /<>/src/client/WFMySQLConnection.h /<>/_include/workflow/WFMySQLConnection.h /usr/bin/cmake -E copy_if_different /<>/src/client/WFRedisSubscriber.h /<>/_include/workflow/WFRedisSubscriber.h /usr/bin/cmake -E copy_if_different /<>/src/client/WFConsulClient.h /<>/_include/workflow/WFConsulClient.h /usr/bin/cmake -E copy_if_different /<>/src/client/WFDnsClient.h /<>/_include/workflow/WFDnsClient.h /usr/bin/cmake -E copy_if_different /<>/src/manager/DnsCache.h /<>/_include/workflow/DnsCache.h /usr/bin/cmake -E copy_if_different /<>/src/manager/WFGlobal.h /<>/_include/workflow/WFGlobal.h /usr/bin/cmake -E copy_if_different /<>/src/manager/UpstreamManager.h /<>/_include/workflow/UpstreamManager.h /usr/bin/cmake -E copy_if_different /<>/src/manager/RouteManager.h /<>/_include/workflow/RouteManager.h /usr/bin/cmake -E copy_if_different /<>/src/manager/EndpointParams.h /<>/_include/workflow/EndpointParams.h /usr/bin/cmake -E copy_if_different /<>/src/manager/WFFuture.h /<>/_include/workflow/WFFuture.h /usr/bin/cmake -E copy_if_different /<>/src/manager/WFFacilities.h /<>/_include/workflow/WFFacilities.h /usr/bin/cmake -E copy_if_different /<>/src/manager/WFFacilities.inl /<>/_include/workflow/WFFacilities.inl /usr/bin/cmake -E copy_if_different /<>/src/util/json_parser.h /<>/_include/workflow/json_parser.h /usr/bin/cmake -E copy_if_different /<>/src/util/EncodeStream.h /<>/_include/workflow/EncodeStream.h /usr/bin/cmake -E copy_if_different /<>/src/util/LRUCache.h /<>/_include/workflow/LRUCache.h /usr/bin/cmake -E copy_if_different /<>/src/util/StringUtil.h /<>/_include/workflow/StringUtil.h /usr/bin/cmake -E copy_if_different /<>/src/util/URIParser.h /<>/_include/workflow/URIParser.h /usr/bin/cmake -E copy_if_different /<>/src/factory/WFConnection.h /<>/_include/workflow/WFConnection.h /usr/bin/cmake -E copy_if_different /<>/src/factory/WFTask.h /<>/_include/workflow/WFTask.h /usr/bin/cmake -E copy_if_different /<>/src/factory/WFTask.inl /<>/_include/workflow/WFTask.inl /usr/bin/cmake -E copy_if_different /<>/src/factory/WFGraphTask.h /<>/_include/workflow/WFGraphTask.h /usr/bin/cmake -E copy_if_different /<>/src/factory/WFTaskError.h /<>/_include/workflow/WFTaskError.h /usr/bin/cmake -E copy_if_different /<>/src/factory/WFTaskFactory.h /<>/_include/workflow/WFTaskFactory.h /usr/bin/cmake -E copy_if_different /<>/src/factory/WFTaskFactory.inl /<>/_include/workflow/WFTaskFactory.inl /usr/bin/cmake -E copy_if_different /<>/src/factory/WFAlgoTaskFactory.h /<>/_include/workflow/WFAlgoTaskFactory.h /usr/bin/cmake -E copy_if_different /<>/src/factory/WFAlgoTaskFactory.inl /<>/_include/workflow/WFAlgoTaskFactory.inl /usr/bin/cmake -E copy_if_different /<>/src/factory/Workflow.h /<>/_include/workflow/Workflow.h /usr/bin/cmake -E copy_if_different /<>/src/factory/WFOperator.h /<>/_include/workflow/WFOperator.h /usr/bin/cmake -E copy_if_different /<>/src/factory/WFResourcePool.h /<>/_include/workflow/WFResourcePool.h /usr/bin/cmake -E copy_if_different /<>/src/factory/WFMessageQueue.h /<>/_include/workflow/WFMessageQueue.h /usr/bin/cmake -E copy_if_different /<>/src/factory/HttpTaskImpl.inl /<>/_include/workflow/HttpTaskImpl.inl /usr/bin/cmake -E copy_if_different /<>/src/factory/RedisTaskImpl.inl /<>/_include/workflow/RedisTaskImpl.inl /usr/bin/cmake -E copy_if_different /<>/src/nameservice/WFNameService.h /<>/_include/workflow/WFNameService.h /usr/bin/cmake -E copy_if_different /<>/src/nameservice/WFDnsResolver.h /<>/_include/workflow/WFDnsResolver.h /usr/bin/cmake -E copy_if_different /<>/src/nameservice/WFServiceGovernance.h /<>/_include/workflow/WFServiceGovernance.h /usr/bin/cmake -E copy_if_different /<>/src/nameservice/UpstreamPolicies.h /<>/_include/workflow/UpstreamPolicies.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/CommRequest.h /<>/_include/workflow/CommRequest.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/CommScheduler.h /<>/_include/workflow/CommScheduler.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/Communicator.h /<>/_include/workflow/Communicator.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/SleepRequest.h /<>/_include/workflow/SleepRequest.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/ExecRequest.h /<>/_include/workflow/ExecRequest.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/IORequest.h /<>/_include/workflow/IORequest.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/Executor.h /<>/_include/workflow/Executor.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/list.h /<>/_include/workflow/list.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/mpoller.h /<>/_include/workflow/mpoller.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/poller.h /<>/_include/workflow/poller.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/msgqueue.h /<>/_include/workflow/msgqueue.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/rbtree.h /<>/_include/workflow/rbtree.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/SubTask.h /<>/_include/workflow/SubTask.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/thrdpool.h /<>/_include/workflow/thrdpool.h /usr/bin/cmake -E copy_if_different /<>/src/kernel/IOService_linux.h /<>/_include/workflow/IOService_linux.h make[3]: Leaving directory '/<>/obj-arm-linux-gnueabi' [ 0%] Built target LINK_HEADERS make -f src/client/CMakeFiles/client.dir/build.make src/client/CMakeFiles/client.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabi' cd /<>/obj-arm-linux-gnueabi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/src/client /<>/obj-arm-linux-gnueabi /<>/obj-arm-linux-gnueabi/src/client /<>/obj-arm-linux-gnueabi/src/client/CMakeFiles/client.dir/DependInfo.cmake "--color=" make[3]: Leaving directory '/<>/obj-arm-linux-gnueabi' make -f src/client/CMakeFiles/client.dir/build.make src/client/CMakeFiles/client.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabi' [ 1%] Building CXX object src/client/CMakeFiles/client.dir/WFDnsClient.cc.o cd /<>/obj-arm-linux-gnueabi/src/client && /usr/bin/arm-linux-gnueabi-g++ -I/<>/_include/workflow -g -O2 -ffile-prefix-map=/<>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -fPIC -pipe -std=c++11 -fno-exceptions -Wno-invalid-offsetof -MD -MT src/client/CMakeFiles/client.dir/WFDnsClient.cc.o -MF CMakeFiles/client.dir/WFDnsClient.cc.o.d -o CMakeFiles/client.dir/WFDnsClient.cc.o -c /<>/src/client/WFDnsClient.cc [ 3%] Building CXX object src/client/CMakeFiles/client.dir/WFHttpChunkedClient.cc.o cd /<>/obj-arm-linux-gnueabi/src/client && /usr/bin/arm-linux-gnueabi-g++ -I/<>/_include/workflow -g -O2 -ffile-prefix-map=/<>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -fPIC -pipe -std=c++11 -fno-exceptions -Wno-invalid-offsetof -MD -MT src/client/CMakeFiles/client.dir/WFHttpChunkedClient.cc.o -MF CMakeFiles/client.dir/WFHttpChunkedClient.cc.o.d -o CMakeFiles/client.dir/WFHttpChunkedClient.cc.o -c /<>/src/client/WFHttpChunkedClient.cc [ 5%] Building CXX object src/client/CMakeFiles/client.dir/WFRedisSubscriber.cc.o cd /<>/obj-arm-linux-gnueabi/src/client && /usr/bin/arm-linux-gnueabi-g++ -I/<>/_include/workflow -g -O2 -ffile-prefix-map=/<>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -fPIC -pipe -std=c++11 -fno-exceptions -Wno-invalid-offsetof -MD -MT src/client/CMakeFiles/client.dir/WFRedisSubscriber.cc.o -MF CMakeFiles/client.dir/WFRedisSubscriber.cc.o.d -o CMakeFiles/client.dir/WFRedisSubscriber.cc.o -c /<>/src/client/WFRedisSubscriber.cc [ 6%] Building CXX object src/client/CMakeFiles/client.dir/WFMySQLConnection.cc.o cd /<>/obj-arm-linux-gnueabi/src/client && /usr/bin/arm-linux-gnueabi-g++ -I/<>/_include/workflow -g -O2 -ffile-prefix-map=/<>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -fPIC -pipe -std=c++11 -fno-exceptions -Wno-invalid-offsetof -MD -MT src/client/CMakeFiles/client.dir/WFMySQLConnection.cc.o -MF CMakeFiles/client.dir/WFMySQLConnection.cc.o.d -o CMakeFiles/client.dir/WFMySQLConnection.cc.o -c /<>/src/client/WFMySQLConnection.cc [ 8%] Building CXX object src/client/CMakeFiles/client.dir/WFConsulClient.cc.o cd /<>/obj-arm-linux-gnueabi/src/client && /usr/bin/arm-linux-gnueabi-g++ -I/<>/_include/workflow -g -O2 -ffile-prefix-map=/<>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -fPIC -pipe -std=c++11 -fno-exceptions -Wno-invalid-offsetof -MD -MT src/client/CMakeFiles/client.dir/WFConsulClient.cc.o -MF CMakeFiles/client.dir/WFConsulClient.cc.o.d -o CMakeFiles/client.dir/WFConsulClient.cc.o -c /<>/src/client/WFConsulClient.cc during RTL pass: late_combine In file included from /<>/_include/workflow/HttpMessage.h:27, from /<>/_include/workflow/HttpUtil.h:27, from /<>/src/client/WFConsulClient.cc:29: /<>/_include/workflow/ProtocolMessage.h: In member function ‘virtual int protocol::ProtocolMessage::feedback(const void*, size_t)’: /<>/_include/workflow/ProtocolMessage.h:83:9: internal compiler error: Segmentation fault 83 | } | ^ 0x1d76aff internal_error(char const*, ...) ../../src/gcc/diagnostic-global-context.cc:517 0xf0dd1f crash_signal ../../src/gcc/toplev.cc:322 0x1c9c4f8 rtl_ssa::clobber_info::recompute_group() ../../src/gcc/rtl-ssa/accesses.cc:67 0x1c55007 rtl_ssa::clobber_info::group() const ../../src/gcc/rtl-ssa/member-fns.inl:200 0x1c55007 rtl_ssa::first_clobber_in_group(rtl_ssa::clobber_info*) ../../src/gcc/rtl-ssa/access-utils.h:244 0x1c55007 rtl_ssa::first_clobber_in_group(rtl_ssa::clobber_info*) ../../src/gcc/rtl-ssa/access-utils.h:241 0x1c55007 last_access<(anonymous namespace)::insn_combination::substitute_nondebug_use(rtl_ssa::use_info*)::local_ignore> ../../src/gcc/rtl-ssa/access-utils.h:460 0x1c56451 prev_access<(anonymous namespace)::insn_combination::substitute_nondebug_use(rtl_ssa::use_info*)::local_ignore> ../../src/gcc/rtl-ssa/access-utils.h:491 0x1c56451 restrict_movement_for_defs<(anonymous namespace)::insn_combination::substitute_nondebug_use(rtl_ssa::use_info*)::local_ignore> ../../src/gcc/rtl-ssa/movement.h:229 0x1c56451 restrict_movement<(anonymous namespace)::insn_combination::substitute_nondebug_use(rtl_ssa::use_info*)::local_ignore> ../../src/gcc/rtl-ssa/change-utils.h:66 0x1c56451 substitute_nondebug_use ../../src/gcc/late-combine.cc:249 0x1c56451 substitute_nondebug_uses ../../src/gcc/late-combine.cc:271 0x1c5612c substitute_nondebug_uses ../../src/gcc/late-combine.cc:275 0x1c57574 run ../../src/gcc/late-combine.cc:440 0x1c57574 combine_into_uses ../../src/gcc/late-combine.cc:690 0x1c57da4 execute ../../src/gcc/late-combine.cc:718 0x1c57da4 execute ../../src/gcc/late-combine.cc:771 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See for instructions. Preprocessed source stored into /tmp/cc0ZHIIX.out file, please attach this to your bugreport. === BEGIN GCC DUMP === 2935449: // Target: arm-linux-gnueabi 2935449: // Configured with: ../src/configure -v --with-pkgversion='Debian 15.2.0-4' --with-bugurl=file:///usr/share/doc/gcc-15/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2,algol68 --prefix=/usr --with-gcc-major-version-only --program-suffix=-15 --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --without-target-system-zlib --enable-multiarch --disable-sjlj-exceptions --with-arch=armv5te --with-float=soft --disable-werror --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-linux-gnueabi --program-prefix=arm-linux-gnueabi- --includedir=/usr/arm-linux-gnueabi/include --with-build-config=bootstrap-lto-lean --enable-link-serialization=3 2935449: // Thread model: posix 2935449: // Supported LTO compression algorithms: zlib zstd 2935449: // gcc version 15.2.0 (Debian 15.2.0-4) 2935449: // 2935449: // during RTL pass: late_combine 2935449: // In file included from /<>/_include/workflow/HttpMessage.h:27, 2935449: // from /<>/_include/workflow/HttpUtil.h:27, 2935449: // from /<>/src/client/WFConsulClient.cc:29: 2935449: // /<>/_include/workflow/ProtocolMessage.h: In member function ‘virtual int protocol::ProtocolMessage::feedback(const void*, size_t)’: 2935449: // /<>/_include/workflow/ProtocolMessage.h:83:9: internal compiler error: Segmentation fault 2935449: // 83 | } 2935449: // | ^ 2935449: // 0x1d76aff internal_error(char const*, ...) 2935449: // ../../src/gcc/diagnostic-global-context.cc:517 2935449: // 0xf0dd1f crash_signal 2935449: // ../../src/gcc/toplev.cc:322 2935449: // 0x1c9c4f8 rtl_ssa::clobber_info::recompute_group() 2935449: // ../../src/gcc/rtl-ssa/accesses.cc:67 2935449: // 0x1c55007 rtl_ssa::clobber_info::group() const 2935449: // ../../src/gcc/rtl-ssa/member-fns.inl:200 2935449: // 0x1c55007 rtl_ssa::first_clobber_in_group(rtl_ssa::clobber_info*) 2935449: // ../../src/gcc/rtl-ssa/access-utils.h:244 2935449: // 0x1c55007 rtl_ssa::first_clobber_in_group(rtl_ssa::clobber_info*) 2935449: // ../../src/gcc/rtl-ssa/access-utils.h:241 2935449: // 0x1c55007 last_access<(anonymous namespace)::insn_combination::substitute_nondebug_use(rtl_ssa::use_info*)::local_ignore> 2935449: // ../../src/gcc/rtl-ssa/access-utils.h:460 2935449: // 0x1c56451 prev_access<(anonymous namespace)::insn_combination::substitute_nondebug_use(rtl_ssa::use_info*)::local_ignore> 2935449: // ../../src/gcc/rtl-ssa/access-utils.h:491 2935449: // 0x1c56451 restrict_movement_for_defs<(anonymous namespace)::insn_combination::substitute_nondebug_use(rtl_ssa::use_info*)::local_ignore> 2935449: // ../../src/gcc/rtl-ssa/movement.h:229 2935449: // 0x1c56451 restrict_movement<(anonymous namespace)::insn_combination::substitute_nondebug_use(rtl_ssa::use_info*)::local_ignore> 2935449: // ../../src/gcc/rtl-ssa/change-utils.h:66 2935449: // 0x1c56451 substitute_nondebug_use 2935449: // ../../src/gcc/late-combine.cc:249 2935449: // 0x1c56451 substitute_nondebug_uses 2935449: // ../../src/gcc/late-combine.cc:271 2935449: // 0x1c5612c substitute_nondebug_uses 2935449: // ../../src/gcc/late-combine.cc:275 2935449: // 0x1c57574 run 2935449: // ../../src/gcc/late-combine.cc:440 2935449: // 0x1c57574 combine_into_uses 2935449: // ../../src/gcc/late-combine.cc:690 2935449: // 0x1c57da4 execute 2935449: // ../../src/gcc/late-combine.cc:718 2935449: // 0x1c57da4 execute 2935449: // ../../src/gcc/late-combine.cc:771 2935449: // Please submit a full bug report, with preprocessed source (by using -freport-bug). 2935449: // Please include the complete backtrace with any bug report. 2935449: // See for instructions. 2935449: 2935449: // /usr/libexec/gcc-cross/arm-linux-gnueabi/15/cc1plus -quiet -I /<>/_include/workflow -imultilib . -imultiarch arm-linux-gnueabi -MD CMakeFiles/client.dir/WFConsulClient.cc.d -MF CMakeFiles/client.dir/WFConsulClient.cc.o.d -MT src/client/CMakeFiles/client.dir/WFConsulClient.cc.o -D_GNU_SOURCE -D _LARGEFILE_SOURCE -D _FILE_OFFSET_BITS=64 -D _TIME_BITS=64 -D _FORTIFY_SOURCE=2 /<>/src/client/WFConsulClient.cc -quiet -dumpdir CMakeFiles/client.dir/ -dumpbase WFConsulClient.cc.cc -dumpbase-ext .cc -mfloat-abi=soft -mtls-dialect=gnu -marm -mlibarch=armv5te -march=armv5te -g -O2 -Wformat=1 -Werror=format-security -Wdate-time -Wall -Wno-invalid-offsetof -std=c++11 -ffile-prefix-map=/<>=. -fstack-protector-strong -fstack-clash-protection -fPIC -fno-exceptions -o - -frandom-seed=0 -fdump-noaddr 2935449: 2935449: # 0 "/<>/src/client/WFConsulClient.cc" 2935449: # 1 "/<>/obj-arm-linux-gnueabi/src/client//" 2935449: # 0 "" 2935449: # 0 "" 2935449: # 1 "/usr/arm-linux-gnueabi/include/stdc-predef.h" 1 3 2935449: # 0 "" 2 2935449: # 1 "/<>/src/client/WFConsulClient.cc" 2935449: # 19 "/<>/src/client/WFConsulClient.cc" 2935449: # 1 "/usr/arm-linux-gnueabi/include/stdio.h" 1 3 2935449: # 28 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/libc-header-start.h" 1 3 2935449: # 33 "/usr/arm-linux-gnueabi/include/bits/libc-header-start.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/features.h" 1 3 2935449: # 415 "/usr/arm-linux-gnueabi/include/features.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/features-time64.h" 1 3 2935449: # 20 "/usr/arm-linux-gnueabi/include/features-time64.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/wordsize.h" 1 3 2935449: # 21 "/usr/arm-linux-gnueabi/include/features-time64.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/timesize.h" 1 3 2935449: # 22 "/usr/arm-linux-gnueabi/include/features-time64.h" 2 3 2935449: # 416 "/usr/arm-linux-gnueabi/include/features.h" 2 3 2935449: # 523 "/usr/arm-linux-gnueabi/include/features.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/sys/cdefs.h" 1 3 2935449: # 730 "/usr/arm-linux-gnueabi/include/sys/cdefs.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/wordsize.h" 1 3 2935449: # 731 "/usr/arm-linux-gnueabi/include/sys/cdefs.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/long-double.h" 1 3 2935449: # 732 "/usr/arm-linux-gnueabi/include/sys/cdefs.h" 2 3 2935449: # 524 "/usr/arm-linux-gnueabi/include/features.h" 2 3 2935449: # 547 "/usr/arm-linux-gnueabi/include/features.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/gnu/stubs.h" 1 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/gnu/stubs-soft.h" 1 3 2935449: # 8 "/usr/arm-linux-gnueabi/include/gnu/stubs.h" 2 3 2935449: # 548 "/usr/arm-linux-gnueabi/include/features.h" 2 3 2935449: # 34 "/usr/arm-linux-gnueabi/include/bits/libc-header-start.h" 2 3 2935449: # 29 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: 2935449: 2935449: # 30 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 229 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 3 4 2935449: typedef unsigned int size_t; 2935449: # 35 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: 2935449: 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stdarg.h" 1 3 4 2935449: # 40 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stdarg.h" 3 4 2935449: typedef __builtin_va_list __gnuc_va_list; 2935449: # 38 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/bits/types.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/wordsize.h" 1 3 2935449: # 28 "/usr/arm-linux-gnueabi/include/bits/types.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/timesize.h" 1 3 2935449: # 29 "/usr/arm-linux-gnueabi/include/bits/types.h" 2 3 2935449: 2935449: 2935449: typedef unsigned char __u_char; 2935449: typedef unsigned short int __u_short; 2935449: typedef unsigned int __u_int; 2935449: typedef unsigned long int __u_long; 2935449: 2935449: 2935449: typedef signed char __int8_t; 2935449: typedef unsigned char __uint8_t; 2935449: typedef signed short int __int16_t; 2935449: typedef unsigned short int __uint16_t; 2935449: typedef signed int __int32_t; 2935449: typedef unsigned int __uint32_t; 2935449: 2935449: 2935449: 2935449: 2935449: __extension__ typedef signed long long int __int64_t; 2935449: __extension__ typedef unsigned long long int __uint64_t; 2935449: 2935449: 2935449: 2935449: typedef __int8_t __int_least8_t; 2935449: typedef __uint8_t __uint_least8_t; 2935449: typedef __int16_t __int_least16_t; 2935449: typedef __uint16_t __uint_least16_t; 2935449: typedef __int32_t __int_least32_t; 2935449: typedef __uint32_t __uint_least32_t; 2935449: typedef __int64_t __int_least64_t; 2935449: typedef __uint64_t __uint_least64_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __extension__ typedef long long int __quad_t; 2935449: __extension__ typedef unsigned long long int __u_quad_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __extension__ typedef long long int __intmax_t; 2935449: __extension__ typedef unsigned long long int __uintmax_t; 2935449: # 141 "/usr/arm-linux-gnueabi/include/bits/types.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/typesizes.h" 1 3 2935449: # 142 "/usr/arm-linux-gnueabi/include/bits/types.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/time64.h" 1 3 2935449: # 143 "/usr/arm-linux-gnueabi/include/bits/types.h" 2 3 2935449: 2935449: 2935449: __extension__ typedef __uint64_t __dev_t; 2935449: __extension__ typedef unsigned int __uid_t; 2935449: __extension__ typedef unsigned int __gid_t; 2935449: __extension__ typedef unsigned long int __ino_t; 2935449: __extension__ typedef __uint64_t __ino64_t; 2935449: __extension__ typedef unsigned int __mode_t; 2935449: __extension__ typedef unsigned int __nlink_t; 2935449: __extension__ typedef long int __off_t; 2935449: __extension__ typedef __int64_t __off64_t; 2935449: __extension__ typedef int __pid_t; 2935449: __extension__ typedef struct { int __val[2]; } __fsid_t; 2935449: __extension__ typedef long int __clock_t; 2935449: __extension__ typedef unsigned long int __rlim_t; 2935449: __extension__ typedef __uint64_t __rlim64_t; 2935449: __extension__ typedef unsigned int __id_t; 2935449: __extension__ typedef long int __time_t; 2935449: __extension__ typedef unsigned int __useconds_t; 2935449: __extension__ typedef long int __suseconds_t; 2935449: __extension__ typedef __int64_t __suseconds64_t; 2935449: 2935449: __extension__ typedef int __daddr_t; 2935449: __extension__ typedef int __key_t; 2935449: 2935449: 2935449: __extension__ typedef int __clockid_t; 2935449: 2935449: 2935449: __extension__ typedef void * __timer_t; 2935449: 2935449: 2935449: __extension__ typedef long int __blksize_t; 2935449: 2935449: 2935449: 2935449: 2935449: __extension__ typedef long int __blkcnt_t; 2935449: __extension__ typedef __int64_t __blkcnt64_t; 2935449: 2935449: 2935449: __extension__ typedef unsigned long int __fsblkcnt_t; 2935449: __extension__ typedef __uint64_t __fsblkcnt64_t; 2935449: 2935449: 2935449: __extension__ typedef unsigned long int __fsfilcnt_t; 2935449: __extension__ typedef __uint64_t __fsfilcnt64_t; 2935449: 2935449: 2935449: __extension__ typedef int __fsword_t; 2935449: 2935449: __extension__ typedef int __ssize_t; 2935449: 2935449: 2935449: __extension__ typedef long int __syscall_slong_t; 2935449: 2935449: __extension__ typedef unsigned long int __syscall_ulong_t; 2935449: 2935449: 2935449: 2935449: typedef __off64_t __loff_t; 2935449: typedef char *__caddr_t; 2935449: 2935449: 2935449: __extension__ typedef int __intptr_t; 2935449: 2935449: 2935449: __extension__ typedef unsigned int __socklen_t; 2935449: 2935449: 2935449: 2935449: 2935449: typedef int __sig_atomic_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __extension__ typedef __int64_t __time64_t; 2935449: # 40 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/__fpos_t.h" 1 3 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/__mbstate_t.h" 1 3 2935449: # 13 "/usr/arm-linux-gnueabi/include/bits/types/__mbstate_t.h" 3 2935449: typedef struct 2935449: { 2935449: int __count; 2935449: union 2935449: { 2935449: unsigned int __wch; 2935449: char __wchb[4]; 2935449: } __value; 2935449: } __mbstate_t; 2935449: # 6 "/usr/arm-linux-gnueabi/include/bits/types/__fpos_t.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: typedef struct _G_fpos_t 2935449: { 2935449: __off_t __pos; 2935449: __mbstate_t __state; 2935449: } __fpos_t; 2935449: # 41 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/__fpos64_t.h" 1 3 2935449: # 10 "/usr/arm-linux-gnueabi/include/bits/types/__fpos64_t.h" 3 2935449: typedef struct _G_fpos64_t 2935449: { 2935449: __off64_t __pos; 2935449: __mbstate_t __state; 2935449: } __fpos64_t; 2935449: # 42 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/__FILE.h" 1 3 2935449: 2935449: 2935449: 2935449: struct _IO_FILE; 2935449: typedef struct _IO_FILE __FILE; 2935449: # 43 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/FILE.h" 1 3 2935449: 2935449: 2935449: 2935449: struct _IO_FILE; 2935449: 2935449: 2935449: typedef struct _IO_FILE FILE; 2935449: # 44 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/struct_FILE.h" 1 3 2935449: # 36 "/usr/arm-linux-gnueabi/include/bits/types/struct_FILE.h" 3 2935449: struct _IO_FILE; 2935449: struct _IO_marker; 2935449: struct _IO_codecvt; 2935449: struct _IO_wide_data; 2935449: 2935449: 2935449: 2935449: 2935449: typedef void _IO_lock_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct _IO_FILE 2935449: { 2935449: int _flags; 2935449: 2935449: 2935449: char *_IO_read_ptr; 2935449: char *_IO_read_end; 2935449: char *_IO_read_base; 2935449: char *_IO_write_base; 2935449: char *_IO_write_ptr; 2935449: char *_IO_write_end; 2935449: char *_IO_buf_base; 2935449: char *_IO_buf_end; 2935449: 2935449: 2935449: char *_IO_save_base; 2935449: char *_IO_backup_base; 2935449: char *_IO_save_end; 2935449: 2935449: struct _IO_marker *_markers; 2935449: 2935449: struct _IO_FILE *_chain; 2935449: 2935449: int _fileno; 2935449: int _flags2:24; 2935449: 2935449: char _short_backupbuf[1]; 2935449: __off_t _old_offset; 2935449: 2935449: 2935449: unsigned short _cur_column; 2935449: signed char _vtable_offset; 2935449: char _shortbuf[1]; 2935449: 2935449: _IO_lock_t *_lock; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __off64_t _offset; 2935449: 2935449: struct _IO_codecvt *_codecvt; 2935449: struct _IO_wide_data *_wide_data; 2935449: struct _IO_FILE *_freeres_list; 2935449: void *_freeres_buf; 2935449: struct _IO_FILE **_prevchain; 2935449: int _mode; 2935449: 2935449: char _unused2[15 * sizeof (int) - 5 * sizeof (void *)]; 2935449: }; 2935449: # 45 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/cookie_io_functions_t.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/bits/types/cookie_io_functions_t.h" 3 2935449: typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, 2935449: size_t __nbytes); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, 2935449: size_t __nbytes); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); 2935449: 2935449: 2935449: typedef int cookie_close_function_t (void *__cookie); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef struct _IO_cookie_io_functions_t 2935449: { 2935449: cookie_read_function_t *read; 2935449: cookie_write_function_t *write; 2935449: cookie_seek_function_t *seek; 2935449: cookie_close_function_t *close; 2935449: } cookie_io_functions_t; 2935449: # 48 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __gnuc_va_list va_list; 2935449: # 66 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: typedef __off64_t off_t; 2935449: 2935449: 2935449: 2935449: 2935449: typedef __off64_t off64_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __ssize_t ssize_t; 2935449: # 87 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: typedef __fpos64_t fpos_t; 2935449: 2935449: 2935449: typedef __fpos64_t fpos64_t; 2935449: # 129 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/stdio_lim.h" 1 3 2935449: # 130 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: # 149 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern FILE *stdin; 2935449: extern FILE *stdout; 2935449: extern FILE *stderr; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int remove (const char *__filename) noexcept (true); 2935449: 2935449: extern int rename (const char *__old, const char *__new) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int renameat (int __oldfd, const char *__old, int __newfd, 2935449: const char *__new) noexcept (true); 2935449: # 176 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern int renameat2 (int __oldfd, const char *__old, int __newfd, 2935449: const char *__new, unsigned int __flags) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int fclose (FILE *__stream) __attribute__ ((__nonnull__ (1))); 2935449: # 198 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern FILE *tmpfile (void) __asm__ ("" "tmpfile64") 2935449: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern FILE *tmpfile64 (void) 2935449: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: extern char *tmpnam (char[20]) noexcept (true) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern char *tmpnam_r (char __s[20]) noexcept (true) __attribute__ ((__warn_unused_result__)); 2935449: # 228 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern char *tempnam (const char *__dir, const char *__pfx) 2935449: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__malloc__ (__builtin_free, 1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int fflush (FILE *__stream); 2935449: # 245 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern int fflush_unlocked (FILE *__stream); 2935449: # 255 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern int fcloseall (void); 2935449: # 276 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern FILE *fopen (const char *__restrict __filename, const char *__restrict __modes) __asm__ ("" "fopen64") 2935449: 2935449: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 2935449: extern FILE *freopen (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64") 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (3))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern FILE *fopen64 (const char *__restrict __filename, 2935449: const char *__restrict __modes) 2935449: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 2935449: extern FILE *freopen64 (const char *__restrict __filename, 2935449: const char *__restrict __modes, 2935449: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (3))); 2935449: 2935449: 2935449: 2935449: 2935449: extern FILE *fdopen (int __fd, const char *__modes) noexcept (true) 2935449: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern FILE *fopencookie (void *__restrict __magic_cookie, 2935449: const char *__restrict __modes, 2935449: cookie_io_functions_t __io_funcs) noexcept (true) 2935449: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) 2935449: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) noexcept (true) 2935449: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 2935449: # 334 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) noexcept (true) 2935449: __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, 2935449: int __modes, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, 2935449: size_t __size) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern void setlinebuf (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int fprintf (FILE *__restrict __stream, 2935449: const char *__restrict __format, ...) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: extern int printf (const char *__restrict __format, ...); 2935449: 2935449: extern int sprintf (char *__restrict __s, 2935449: const char *__restrict __format, ...) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, 2935449: __gnuc_va_list __arg) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); 2935449: 2935449: extern int vsprintf (char *__restrict __s, const char *__restrict __format, 2935449: __gnuc_va_list __arg) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int snprintf (char *__restrict __s, size_t __maxlen, 2935449: const char *__restrict __format, ...) 2935449: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 4))); 2935449: 2935449: extern int vsnprintf (char *__restrict __s, size_t __maxlen, 2935449: const char *__restrict __format, __gnuc_va_list __arg) 2935449: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 0))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, 2935449: __gnuc_va_list __arg) 2935449: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 2935449: extern int __asprintf (char **__restrict __ptr, 2935449: const char *__restrict __fmt, ...) 2935449: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 2935449: extern int asprintf (char **__restrict __ptr, 2935449: const char *__restrict __fmt, ...) 2935449: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern int vdprintf (int __fd, const char *__restrict __fmt, 2935449: __gnuc_va_list __arg) 2935449: __attribute__ ((__format__ (__printf__, 2, 0))); 2935449: extern int dprintf (int __fd, const char *__restrict __fmt, ...) 2935449: __attribute__ ((__format__ (__printf__, 2, 3))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int fscanf (FILE *__restrict __stream, 2935449: const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: extern int scanf (const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: extern int sscanf (const char *__restrict __s, 2935449: const char *__restrict __format, ...) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/floatn.h" 1 3 2935449: # 52 "/usr/arm-linux-gnueabi/include/bits/floatn.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/floatn-common.h" 1 3 2935449: # 24 "/usr/arm-linux-gnueabi/include/bits/floatn-common.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/long-double.h" 1 3 2935449: # 25 "/usr/arm-linux-gnueabi/include/bits/floatn-common.h" 2 3 2935449: # 53 "/usr/arm-linux-gnueabi/include/bits/floatn.h" 2 3 2935449: # 438 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc23_fscanf") 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (1))); 2935449: extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc23_scanf") 2935449: __attribute__ ((__warn_unused_result__)); 2935449: extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) noexcept (true) __asm__ ("" "__isoc23_sscanf") 2935449: 2935449: ; 2935449: # 490 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, 2935449: __gnuc_va_list __arg) 2935449: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) 2935449: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: extern int vsscanf (const char *__restrict __s, 2935449: const char *__restrict __format, __gnuc_va_list __arg) 2935449: noexcept (true) __attribute__ ((__format__ (__scanf__, 2, 0))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc23_vfscanf") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (1))); 2935449: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc23_vscanf") 2935449: 2935449: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 2935449: extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) noexcept (true) __asm__ ("" "__isoc23_vsscanf") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__format__ (__scanf__, 2, 0))); 2935449: # 575 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern int fgetc (FILE *__stream) __attribute__ ((__nonnull__ (1))); 2935449: extern int getc (FILE *__stream) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int getchar (void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int getc_unlocked (FILE *__stream) __attribute__ ((__nonnull__ (1))); 2935449: extern int getchar_unlocked (void); 2935449: # 600 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern int fgetc_unlocked (FILE *__stream) __attribute__ ((__nonnull__ (1))); 2935449: # 611 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern int fputc (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); 2935449: extern int putc (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int putchar (int __c); 2935449: # 627 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern int fputc_unlocked (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int putc_unlocked (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); 2935449: extern int putchar_unlocked (int __c); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int getw (FILE *__stream) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int putw (int __w, FILE *__stream) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 2))) __attribute__ ((__nonnull__ (3))); 2935449: # 667 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern char *gets (char *__s) __attribute__ ((__warn_unused_result__)) __attribute__ ((__deprecated__)); 2935449: # 677 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern char *fgets_unlocked (char *__restrict __s, int __n, 2935449: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)) 2935449: __attribute__ ((__access__ (__write_only__, 1, 2))) __attribute__ ((__nonnull__ (3))); 2935449: # 689 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern __ssize_t __getdelim (char **__restrict __lineptr, 2935449: size_t *__restrict __n, int __delimiter, 2935449: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (4))); 2935449: extern __ssize_t getdelim (char **__restrict __lineptr, 2935449: size_t *__restrict __n, int __delimiter, 2935449: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (4))); 2935449: 2935449: 2935449: extern __ssize_t getline (char **__restrict __lineptr, 2935449: size_t *__restrict __n, 2935449: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (3))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int fputs (const char *__restrict __s, FILE *__restrict __stream) 2935449: __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int puts (const char *__s); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int ungetc (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t fread (void *__restrict __ptr, size_t __size, 2935449: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)) 2935449: __attribute__ ((__nonnull__ (4))); 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t fwrite (const void *__restrict __ptr, size_t __size, 2935449: size_t __n, FILE *__restrict __s) __attribute__ ((__nonnull__ (4))); 2935449: # 745 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern int fputs_unlocked (const char *__restrict __s, 2935449: FILE *__restrict __stream) __attribute__ ((__nonnull__ (2))); 2935449: # 756 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, 2935449: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)) 2935449: __attribute__ ((__nonnull__ (4))); 2935449: extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, 2935449: size_t __n, FILE *__restrict __stream) 2935449: __attribute__ ((__nonnull__ (4))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int fseek (FILE *__stream, long int __off, int __whence) 2935449: __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: extern void rewind (FILE *__stream) __attribute__ ((__nonnull__ (1))); 2935449: # 802 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64") 2935449: 2935449: __attribute__ ((__nonnull__ (1))); 2935449: extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64") 2935449: __attribute__ ((__nonnull__ (1))); 2935449: # 828 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64") 2935449: 2935449: __attribute__ ((__nonnull__ (1))); 2935449: extern int fsetpos (FILE *__stream, const fpos_t *__pos) __asm__ ("" "fsetpos64") 2935449: 2935449: __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence) 2935449: __attribute__ ((__nonnull__ (1))); 2935449: extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (1))); 2935449: extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos) 2935449: __attribute__ ((__nonnull__ (1))); 2935449: extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern void clearerr (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: extern int feof (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: extern int ferror (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern void clearerr_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: extern int feof_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (1))); 2935449: extern int ferror_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void perror (const char *__s) __attribute__ ((__cold__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern int fileno (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: extern int fileno_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (1))); 2935449: # 887 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern int pclose (FILE *__stream) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern FILE *popen (const char *__command, const char *__modes) 2935449: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern char *ctermid (char *__s) noexcept (true) 2935449: __attribute__ ((__access__ (__write_only__, 1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern char *cuserid (char *__s) 2935449: __attribute__ ((__access__ (__write_only__, 1))); 2935449: 2935449: 2935449: 2935449: 2935449: struct obstack; 2935449: 2935449: 2935449: extern int obstack_printf (struct obstack *__restrict __obstack, 2935449: const char *__restrict __format, ...) 2935449: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))); 2935449: extern int obstack_vprintf (struct obstack *__restrict __obstack, 2935449: const char *__restrict __format, 2935449: __gnuc_va_list __args) 2935449: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 0))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void flockfile (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern int ftrylockfile (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern void funlockfile (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: # 949 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: extern int __uflow (FILE *); 2935449: extern int __overflow (FILE *, int); 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/stdio2-decl.h" 1 3 2935449: # 26 "/usr/arm-linux-gnueabi/include/bits/stdio2-decl.h" 3 2935449: extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, 2935449: const char *__restrict __format, ...) noexcept (true) 2935449: __attribute__ ((__access__ (__write_only__, 1, 3))); 2935449: extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, 2935449: const char *__restrict __format, 2935449: __gnuc_va_list __ap) noexcept (true) 2935449: __attribute__ ((__access__ (__write_only__, 1, 3))); 2935449: 2935449: 2935449: 2935449: extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, 2935449: size_t __slen, const char *__restrict __format, 2935449: ...) noexcept (true) 2935449: __attribute__ ((__access__ (__write_only__, 1, 2))); 2935449: extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, 2935449: size_t __slen, const char *__restrict __format, 2935449: __gnuc_va_list __ap) noexcept (true) 2935449: __attribute__ ((__access__ (__write_only__, 1, 2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int __fprintf_chk (FILE *__restrict __stream, int __flag, 2935449: const char *__restrict __format, ...) 2935449: __attribute__ ((__nonnull__ (1))); 2935449: extern int __printf_chk (int __flag, const char *__restrict __format, ...); 2935449: extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, 2935449: const char *__restrict __format, 2935449: __gnuc_va_list __ap) __attribute__ ((__nonnull__ (1))); 2935449: extern int __vprintf_chk (int __flag, const char *__restrict __format, 2935449: __gnuc_va_list __ap); 2935449: 2935449: 2935449: extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, 2935449: ...) __attribute__ ((__format__ (__printf__, 3, 4))); 2935449: extern int __vdprintf_chk (int __fd, int __flag, 2935449: const char *__restrict __fmt, __gnuc_va_list __arg) 2935449: __attribute__ ((__format__ (__printf__, 3, 0))); 2935449: 2935449: 2935449: 2935449: 2935449: extern int __asprintf_chk (char **__restrict __ptr, int __flag, 2935449: const char *__restrict __fmt, ...) 2935449: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__)); 2935449: extern int __vasprintf_chk (char **__restrict __ptr, int __flag, 2935449: const char *__restrict __fmt, __gnuc_va_list __arg) 2935449: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__)); 2935449: extern int __obstack_printf_chk (struct obstack *__restrict __obstack, 2935449: int __flag, const char *__restrict __format, 2935449: ...) 2935449: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 4))); 2935449: extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, 2935449: int __flag, 2935449: const char *__restrict __format, 2935449: __gnuc_va_list __args) 2935449: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 0))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern char *__gets_warn (char *__str) __asm__ ("" "gets") 2935449: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size"))) 2935449: ; 2935449: 2935449: extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 2))); 2935449: extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) 2935449: ; 2935449: 2935449: extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, 2935449: FILE *__restrict __stream) 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 3))) __attribute__ ((__nonnull__ (4))); 2935449: 2935449: extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)); 2935449: extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) 2935449: ; 2935449: 2935449: extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, 2935449: size_t __size, size_t __n, 2935449: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (5))); 2935449: 2935449: 2935449: extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 2))); 2935449: extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))) 2935449: ; 2935449: 2935449: 2935449: extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, 2935449: int __n, FILE *__restrict __stream) 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 3))) __attribute__ ((__nonnull__ (4))); 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)); 2935449: extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk") 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) 2935449: ; 2935449: 2935449: extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, 2935449: size_t __size, size_t __n, 2935449: FILE *__restrict __stream) 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (5))); 2935449: # 955 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: # 966 "/usr/arm-linux-gnueabi/include/stdio.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/stdio.h" 1 3 2935449: # 46 "/usr/arm-linux-gnueabi/include/bits/stdio.h" 3 2935449: extern __inline __attribute__ ((__gnu_inline__)) int 2935449: getchar (void) 2935449: { 2935449: return getc (stdin); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__gnu_inline__)) int 2935449: fgetc_unlocked (FILE *__fp) 2935449: { 2935449: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__gnu_inline__)) int 2935449: getc_unlocked (FILE *__fp) 2935449: { 2935449: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__gnu_inline__)) int 2935449: getchar_unlocked (void) 2935449: { 2935449: return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__gnu_inline__)) int 2935449: putchar (int __c) 2935449: { 2935449: return putc (__c, stdout); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__gnu_inline__)) int 2935449: fputc_unlocked (int __c, FILE *__stream) 2935449: { 2935449: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__gnu_inline__)) int 2935449: putc_unlocked (int __c, FILE *__stream) 2935449: { 2935449: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__gnu_inline__)) int 2935449: putchar_unlocked (int __c) 2935449: { 2935449: return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__gnu_inline__)) __ssize_t 2935449: getline (char **__lineptr, size_t *__n, FILE *__stream) 2935449: { 2935449: return __getdelim (__lineptr, __n, '\n', __stream); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__gnu_inline__)) int 2935449: __attribute__ ((__leaf__)) feof_unlocked (FILE *__stream) noexcept (true) 2935449: { 2935449: return (((__stream)->_flags & 0x0010) != 0); 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__gnu_inline__)) int 2935449: __attribute__ ((__leaf__)) ferror_unlocked (FILE *__stream) noexcept (true) 2935449: { 2935449: return (((__stream)->_flags & 0x0020) != 0); 2935449: } 2935449: # 967 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/stdio2.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/bits/stdio2.h" 3 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: __attribute__ ((__leaf__)) sprintf (char *__restrict __s, const char *__restrict __fmt, ...) noexcept (true) 2935449: { 2935449: return __builtin___sprintf_chk (__s, 2 - 1, 2935449: __builtin_object_size (__s, 2 > 1), __fmt, 2935449: __builtin_va_arg_pack ()); 2935449: } 2935449: # 54 "/usr/arm-linux-gnueabi/include/bits/stdio2.h" 3 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: __attribute__ ((__leaf__)) vsprintf (char * __restrict __s, const char *__restrict __fmt, __gnuc_va_list __ap) noexcept (true) 2935449: 2935449: { 2935449: return __builtin___vsprintf_chk (__s, 2 - 1, 2935449: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 2935449: } 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: __attribute__ ((__leaf__)) snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...) noexcept (true) 2935449: 2935449: { 2935449: return __builtin___snprintf_chk (__s, __n, 2 - 1, 2935449: __builtin_object_size (__s, 2 > 1), __fmt, 2935449: __builtin_va_arg_pack ()); 2935449: } 2935449: # 92 "/usr/arm-linux-gnueabi/include/bits/stdio2.h" 3 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: __attribute__ ((__leaf__)) vsnprintf (char * __restrict __s, size_t __n, const char *__restrict __fmt, __gnuc_va_list __ap) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: return __builtin___vsnprintf_chk (__s, __n, 2 - 1, 2935449: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1))) int 2935449: fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) 2935449: { 2935449: return __fprintf_chk (__stream, 2 - 1, __fmt, 2935449: __builtin_va_arg_pack ()); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: printf (const char *__restrict __fmt, ...) 2935449: { 2935449: return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 2935449: } 2935449: # 151 "/usr/arm-linux-gnueabi/include/bits/stdio2.h" 3 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: vprintf (const char * __restrict __fmt, 2935449: __gnuc_va_list __ap) 2935449: { 2935449: 2935449: return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1))) int 2935449: vfprintf (FILE *__restrict __stream, 2935449: const char *__restrict __fmt, __gnuc_va_list __ap) 2935449: { 2935449: return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); 2935449: } 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: dprintf (int __fd, const char *__restrict __fmt, ...) 2935449: { 2935449: return __dprintf_chk (__fd, 2 - 1, __fmt, 2935449: __builtin_va_arg_pack ()); 2935449: } 2935449: # 194 "/usr/arm-linux-gnueabi/include/bits/stdio2.h" 3 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __ap) 2935449: { 2935449: return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: __attribute__ ((__leaf__)) asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) noexcept (true) 2935449: { 2935449: return __asprintf_chk (__ptr, 2 - 1, __fmt, 2935449: __builtin_va_arg_pack ()); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: __attribute__ ((__leaf__)) __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) noexcept (true) 2935449: 2935449: { 2935449: return __asprintf_chk (__ptr, 2 - 1, __fmt, 2935449: __builtin_va_arg_pack ()); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: __attribute__ ((__leaf__)) obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __fmt, ...) noexcept (true) 2935449: 2935449: { 2935449: return __obstack_printf_chk (__obstack, 2 - 1, __fmt, 2935449: __builtin_va_arg_pack ()); 2935449: } 2935449: # 271 "/usr/arm-linux-gnueabi/include/bits/stdio2.h" 3 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: __attribute__ ((__leaf__)) vasprintf (char **__restrict __ptr, const char *__restrict __fmt, __gnuc_va_list __ap) noexcept (true) 2935449: 2935449: { 2935449: return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: __attribute__ ((__leaf__)) obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __fmt, __gnuc_va_list __ap) noexcept (true) 2935449: 2935449: { 2935449: return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt, 2935449: __ap); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 2935449: gets (char * __str) 2935449: 2935449: 2935449: 2935449: { 2935449: if (__builtin_object_size (__str, 2 > 1) != (size_t) -1) 2935449: return __gets_chk (__str, __builtin_object_size (__str, 2 > 1)); 2935449: return __gets_warn (__str); 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 2))) 2935449: __attribute__ ((__nonnull__ (3))) char * 2935449: fgets (char * __restrict __s, int __n, 2935449: FILE *__restrict __stream) 2935449: 2935449: 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__s, 2 > 1); 2935449: if (((__builtin_constant_p (__sz) && (__sz) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__sz)) / ((sizeof (char))))) && (((unsigned int) (__n)) <= ((__sz)) / ((sizeof (char))))))) 2935449: return __fgets_alias (__s, __n, __stream); 2935449: 2935449: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__sz) / (sizeof (char)))) && !(((unsigned int) (__n)) <= (__sz) / (sizeof (char))))) 2935449: return __fgets_chk_warn (__s, __sz, __n, __stream); 2935449: 2935449: return __fgets_chk (__s, __sz, __n, __stream); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (4))) size_t 2935449: fread (void * __restrict __ptr, 2935449: size_t __size, size_t __n, FILE *__restrict __stream) 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__ptr, 0); 2935449: if (((__builtin_constant_p (__sz) && (__sz) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__sz)) / ((__size)))) && (((unsigned int) (__n)) <= ((__sz)) / ((__size)))))) 2935449: return __fread_alias (__ptr, __size, __n, __stream); 2935449: 2935449: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__sz) / (__size))) && !(((unsigned int) (__n)) <= (__sz) / (__size)))) 2935449: return __fread_chk_warn (__ptr, __sz, __size, __n, __stream); 2935449: 2935449: return __fread_chk (__ptr, __sz, __size, __n, __stream); 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 2))) 2935449: __attribute__ ((__nonnull__ (3))) char * 2935449: fgets_unlocked (char * __restrict __s, 2935449: int __n, FILE *__restrict __stream) 2935449: 2935449: 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__s, 2 > 1); 2935449: if (((__builtin_constant_p (__sz) && (__sz) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__sz)) / ((sizeof (char))))) && (((unsigned int) (__n)) <= ((__sz)) / ((sizeof (char))))))) 2935449: return __fgets_unlocked_alias (__s, __n, __stream); 2935449: 2935449: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__sz) / (sizeof (char)))) && !(((unsigned int) (__n)) <= (__sz) / (sizeof (char))))) 2935449: return __fgets_unlocked_chk_warn (__s, __sz, __n, __stream); 2935449: 2935449: return __fgets_unlocked_chk (__s, __sz, __n, __stream); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__nonnull__ (4))) size_t 2935449: fread_unlocked (void * __restrict __ptr, 2935449: size_t __size, size_t __n, FILE *__restrict __stream) 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__ptr, 0); 2935449: if (((__builtin_constant_p (__sz) && (__sz) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__sz)) / ((__size)))) && (((unsigned int) (__n)) <= ((__sz)) / ((__size)))))) 2935449: { 2935449: 2935449: if (__builtin_constant_p (__size) 2935449: && __builtin_constant_p (__n) 2935449: && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) 2935449: && __size * __n <= 8) 2935449: { 2935449: size_t __cnt = __size * __n; 2935449: char *__cptr = (char *) __ptr; 2935449: if (__cnt == 0) 2935449: return 0; 2935449: 2935449: for (; __cnt > 0; --__cnt) 2935449: { 2935449: int __c = getc_unlocked (__stream); 2935449: if (__c == (-1)) 2935449: break; 2935449: *__cptr++ = __c; 2935449: } 2935449: return (__cptr - (char *) __ptr) / __size; 2935449: } 2935449: 2935449: return __fread_unlocked_alias (__ptr, __size, __n, __stream); 2935449: } 2935449: 2935449: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__sz) / (__size))) && !(((unsigned int) (__n)) <= (__sz) / (__size)))) 2935449: return __fread_unlocked_chk_warn (__ptr, __sz, __size, __n, __stream); 2935449: 2935449: return __fread_unlocked_chk (__ptr, __sz, __size, __n, __stream); 2935449: 2935449: } 2935449: # 971 "/usr/arm-linux-gnueabi/include/stdio.h" 2 3 2935449: 2935449: 2935449: } 2935449: # 20 "/<>/src/client/WFConsulClient.cc" 2 2935449: # 1 "/usr/arm-linux-gnueabi/include/string.h" 1 3 2935449: # 26 "/usr/arm-linux-gnueabi/include/string.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/libc-header-start.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/string.h" 2 3 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 34 "/usr/arm-linux-gnueabi/include/string.h" 2 3 2935449: # 43 "/usr/arm-linux-gnueabi/include/string.h" 3 2935449: extern void *memcpy (void *__restrict __dest, const void *__restrict __src, 2935449: size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern void *memmove (void *__dest, const void *__src, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void *memccpy (void *__restrict __dest, const void *__restrict __src, 2935449: int __c, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4))); 2935449: 2935449: 2935449: 2935449: 2935449: extern void *memset (void *__s, int __c, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int memcmp (const void *__s1, const void *__s2, size_t __n) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: # 80 "/usr/arm-linux-gnueabi/include/string.h" 3 2935449: extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: extern "C++" 2935449: { 2935449: extern void *memchr (void *__s, int __c, size_t __n) 2935449: noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: extern const void *memchr (const void *__s, int __c, size_t __n) 2935449: noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * 2935449: memchr (void *__s, int __c, size_t __n) noexcept (true) 2935449: { 2935449: return __builtin_memchr (__s, __c, __n); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const void * 2935449: memchr (const void *__s, int __c, size_t __n) noexcept (true) 2935449: { 2935449: return __builtin_memchr (__s, __c, __n); 2935449: } 2935449: 2935449: } 2935449: # 115 "/usr/arm-linux-gnueabi/include/string.h" 3 2935449: extern "C++" void *rawmemchr (void *__s, int __c) 2935449: noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: extern "C++" const void *rawmemchr (const void *__s, int __c) 2935449: noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C++" void *memrchr (void *__s, int __c, size_t __n) 2935449: noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) 2935449: __attribute__ ((__access__ (__read_only__, 1, 3))); 2935449: extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) 2935449: noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) 2935449: __attribute__ ((__access__ (__read_only__, 1, 3))); 2935449: # 141 "/usr/arm-linux-gnueabi/include/string.h" 3 2935449: extern char *strcpy (char *__restrict __dest, const char *__restrict __src) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: extern char *strncpy (char *__restrict __dest, 2935449: const char *__restrict __src, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern char *strcat (char *__restrict __dest, const char *__restrict __src) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: extern char *strncat (char *__restrict __dest, const char *__restrict __src, 2935449: size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int strcmp (const char *__s1, const char *__s2) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: extern int strncmp (const char *__s1, const char *__s2, size_t __n) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int strcoll (const char *__s1, const char *__s2) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: extern size_t strxfrm (char *__restrict __dest, 2935449: const char *__restrict __src, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3))); 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/locale_t.h" 1 3 2935449: # 22 "/usr/arm-linux-gnueabi/include/bits/types/locale_t.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/__locale_t.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/bits/types/__locale_t.h" 3 2935449: struct __locale_struct 2935449: { 2935449: 2935449: struct __locale_data *__locales[13]; 2935449: 2935449: 2935449: const unsigned short int *__ctype_b; 2935449: const int *__ctype_tolower; 2935449: const int *__ctype_toupper; 2935449: 2935449: 2935449: const char *__names[13]; 2935449: }; 2935449: 2935449: typedef struct __locale_struct *__locale_t; 2935449: # 23 "/usr/arm-linux-gnueabi/include/bits/types/locale_t.h" 2 3 2935449: 2935449: typedef __locale_t locale_t; 2935449: # 173 "/usr/arm-linux-gnueabi/include/string.h" 2 3 2935449: 2935449: 2935449: extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 2935449: 2935449: 2935449: extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, 2935449: locale_t __l) noexcept (true) __attribute__ ((__nonnull__ (2, 4))) 2935449: __attribute__ ((__access__ (__write_only__, 1, 3))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern char *strdup (const char *__s) 2935449: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern char *strndup (const char *__string, size_t __n) 2935449: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 2935449: # 224 "/usr/arm-linux-gnueabi/include/string.h" 3 2935449: extern "C++" 2935449: { 2935449: extern char *strchr (char *__s, int __c) 2935449: noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: extern const char *strchr (const char *__s, int __c) 2935449: noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 2935449: strchr (char *__s, int __c) noexcept (true) 2935449: { 2935449: return __builtin_strchr (__s, __c); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 2935449: strchr (const char *__s, int __c) noexcept (true) 2935449: { 2935449: return __builtin_strchr (__s, __c); 2935449: } 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C++" 2935449: { 2935449: extern char *strrchr (char *__s, int __c) 2935449: noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: extern const char *strrchr (const char *__s, int __c) 2935449: noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 2935449: strrchr (char *__s, int __c) noexcept (true) 2935449: { 2935449: return __builtin_strrchr (__s, __c); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 2935449: strrchr (const char *__s, int __c) noexcept (true) 2935449: { 2935449: return __builtin_strrchr (__s, __c); 2935449: } 2935449: 2935449: } 2935449: # 281 "/usr/arm-linux-gnueabi/include/string.h" 3 2935449: extern "C++" char *strchrnul (char *__s, int __c) 2935449: noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: extern "C++" const char *strchrnul (const char *__s, int __c) 2935449: noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: # 293 "/usr/arm-linux-gnueabi/include/string.h" 3 2935449: extern size_t strcspn (const char *__s, const char *__reject) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern size_t strspn (const char *__s, const char *__accept) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern "C++" 2935449: { 2935449: extern char *strpbrk (char *__s, const char *__accept) 2935449: noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: extern const char *strpbrk (const char *__s, const char *__accept) 2935449: noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 2935449: strpbrk (char *__s, const char *__accept) noexcept (true) 2935449: { 2935449: return __builtin_strpbrk (__s, __accept); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 2935449: strpbrk (const char *__s, const char *__accept) noexcept (true) 2935449: { 2935449: return __builtin_strpbrk (__s, __accept); 2935449: } 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C++" 2935449: { 2935449: extern char *strstr (char *__haystack, const char *__needle) 2935449: noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: extern const char *strstr (const char *__haystack, const char *__needle) 2935449: noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 2935449: strstr (char *__haystack, const char *__needle) noexcept (true) 2935449: { 2935449: return __builtin_strstr (__haystack, __needle); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 2935449: strstr (const char *__haystack, const char *__needle) noexcept (true) 2935449: { 2935449: return __builtin_strstr (__haystack, __needle); 2935449: } 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern char *strtok (char *__restrict __s, const char *__restrict __delim) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: 2935449: extern char *__strtok_r (char *__restrict __s, 2935449: const char *__restrict __delim, 2935449: char **__restrict __save_ptr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2, 3))); 2935449: 2935449: extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, 2935449: char **__restrict __save_ptr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2, 3))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C++" char *strcasestr (char *__haystack, const char *__needle) 2935449: noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: extern "C++" const char *strcasestr (const char *__haystack, 2935449: const char *__needle) 2935449: noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: # 389 "/usr/arm-linux-gnueabi/include/string.h" 3 2935449: extern void *memmem (const void *__haystack, size_t __haystacklen, 2935449: const void *__needle, size_t __needlelen) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))) 2935449: __attribute__ ((__access__ (__read_only__, 1, 2))) 2935449: __attribute__ ((__access__ (__read_only__, 3, 4))); 2935449: 2935449: 2935449: 2935449: extern void *__mempcpy (void *__restrict __dest, 2935449: const void *__restrict __src, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: extern void *mempcpy (void *__restrict __dest, 2935449: const void *__restrict __src, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t strlen (const char *__s) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t strnlen (const char *__string, size_t __maxlen) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: extern char *strerror (int __errnum) noexcept (true); 2935449: # 444 "/usr/arm-linux-gnueabi/include/string.h" 3 2935449: extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 2, 3))); 2935449: 2935449: 2935449: 2935449: 2935449: extern const char *strerrordesc_np (int __err) noexcept (true); 2935449: 2935449: extern const char *strerrorname_np (int __err) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern char *strerror_l (int __errnum, locale_t __l) noexcept (true); 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/strings.h" 1 3 2935449: # 23 "/usr/arm-linux-gnueabi/include/strings.h" 3 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 24 "/usr/arm-linux-gnueabi/include/strings.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: extern int bcmp (const void *__s1, const void *__s2, size_t __n) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern void bcopy (const void *__src, void *__dest, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern void bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern "C++" 2935449: { 2935449: extern char *index (char *__s, int __c) 2935449: noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: extern const char *index (const char *__s, int __c) 2935449: noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 2935449: index (char *__s, int __c) noexcept (true) 2935449: { 2935449: return __builtin_index (__s, __c); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 2935449: index (const char *__s, int __c) noexcept (true) 2935449: { 2935449: return __builtin_index (__s, __c); 2935449: } 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C++" 2935449: { 2935449: extern char *rindex (char *__s, int __c) 2935449: noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: extern const char *rindex (const char *__s, int __c) 2935449: noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 2935449: rindex (char *__s, int __c) noexcept (true) 2935449: { 2935449: return __builtin_rindex (__s, __c); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 2935449: rindex (const char *__s, int __c) noexcept (true) 2935449: { 2935449: return __builtin_rindex (__s, __c); 2935449: } 2935449: 2935449: } 2935449: # 104 "/usr/arm-linux-gnueabi/include/strings.h" 3 2935449: extern int ffs (int __i) noexcept (true) __attribute__ ((__const__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int ffsl (long int __l) noexcept (true) __attribute__ ((__const__)); 2935449: __extension__ extern int ffsll (long long int __ll) 2935449: noexcept (true) __attribute__ ((__const__)); 2935449: 2935449: 2935449: 2935449: extern int strcasecmp (const char *__s1, const char *__s2) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 2935449: 2935449: 2935449: 2935449: extern int strncasecmp_l (const char *__s1, const char *__s2, 2935449: size_t __n, locale_t __loc) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/strings_fortified.h" 1 3 2935449: # 22 "/usr/arm-linux-gnueabi/include/bits/strings_fortified.h" 3 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 2935449: __attribute__ ((__leaf__)) bcopy (const void *__src, void *__dest, size_t __len) noexcept (true) 2935449: { 2935449: (void) __builtin___memmove_chk (__dest, __src, __len, 2935449: __builtin_object_size (__dest, 0)); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 2935449: __attribute__ ((__leaf__)) bzero (void *__dest, size_t __len) noexcept (true) 2935449: { 2935449: (void) __builtin___memset_chk (__dest, '\0', __len, 2935449: __builtin_object_size (__dest, 0)); 2935449: } 2935449: # 145 "/usr/arm-linux-gnueabi/include/strings.h" 2 3 2935449: # 463 "/usr/arm-linux-gnueabi/include/string.h" 2 3 2935449: 2935449: 2935449: 2935449: extern void explicit_bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) 2935449: __attribute__ ((__access__ (__write_only__, 1, 2))); 2935449: 2935449: 2935449: 2935449: extern char *strsep (char **__restrict __stringp, 2935449: const char *__restrict __delim) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: 2935449: extern char *strsignal (int __sig) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern const char *sigabbrev_np (int __sig) noexcept (true); 2935449: 2935449: 2935449: extern const char *sigdescr_np (int __sig) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: extern char *__stpncpy (char *__restrict __dest, 2935449: const char *__restrict __src, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: extern char *stpncpy (char *__restrict __dest, 2935449: const char *__restrict __src, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t strlcpy (char *__restrict __dest, 2935449: const char *__restrict __src, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 3))); 2935449: 2935449: 2935449: 2935449: extern size_t strlcat (char *__restrict __dest, 2935449: const char *__restrict __src, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__read_write__, 1, 3))); 2935449: 2935449: 2935449: 2935449: 2935449: extern int strverscmp (const char *__s1, const char *__s2) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern char *strfry (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern void *memfrob (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) 2935449: __attribute__ ((__access__ (__read_write__, 1, 2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C++" char *basename (char *__filename) 2935449: noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); 2935449: extern "C++" const char *basename (const char *__filename) 2935449: noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); 2935449: # 548 "/usr/arm-linux-gnueabi/include/string.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/string_fortified.h" 1 3 2935449: # 25 "/usr/arm-linux-gnueabi/include/bits/string_fortified.h" 3 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 2935449: __attribute__ ((__leaf__)) memcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) noexcept (true) 2935449: 2935449: { 2935449: return __builtin___memcpy_chk (__dest, __src, __len, 2935449: __builtin_object_size (__dest, 0)); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 2935449: __attribute__ ((__leaf__)) memmove (void *__dest, const void *__src, size_t __len) noexcept (true) 2935449: { 2935449: return __builtin___memmove_chk (__dest, __src, __len, 2935449: __builtin_object_size (__dest, 0)); 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 2935449: __attribute__ ((__leaf__)) mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) noexcept (true) 2935449: 2935449: { 2935449: return __builtin___mempcpy_chk (__dest, __src, __len, 2935449: __builtin_object_size (__dest, 0)); 2935449: } 2935449: # 56 "/usr/arm-linux-gnueabi/include/bits/string_fortified.h" 3 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 2935449: __attribute__ ((__leaf__)) memset (void *__dest, int __ch, size_t __len) noexcept (true) 2935449: { 2935449: return __builtin___memset_chk (__dest, __ch, __len, 2935449: __builtin_object_size (__dest, 0)); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__write_only__, 1, 2))); 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 2935449: __attribute__ ((__leaf__)) explicit_bzero (void *__dest, size_t __len) noexcept (true) 2935449: { 2935449: __explicit_bzero_chk (__dest, __len, __builtin_object_size (__dest, 0)); 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 2935449: __attribute__ ((__leaf__)) strcpy (char * __restrict __dest, const char *__restrict __src) noexcept (true) 2935449: 2935449: 2935449: { 2935449: return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 2935449: __attribute__ ((__leaf__)) stpcpy (char * __restrict __dest, const char *__restrict __src) noexcept (true) 2935449: 2935449: 2935449: { 2935449: return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 2935449: } 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 2935449: __attribute__ ((__leaf__)) strncpy (char * __restrict __dest, const char *__restrict __src, size_t __len) noexcept (true) 2935449: 2935449: 2935449: { 2935449: return __builtin___strncpy_chk (__dest, __src, __len, 2935449: __builtin_object_size (__dest, 2 > 1)); 2935449: } 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 2935449: __attribute__ ((__leaf__)) stpncpy (char * __dest, const char *__src, size_t __n) noexcept (true) 2935449: 2935449: 2935449: { 2935449: return __builtin___stpncpy_chk (__dest, __src, __n, 2935449: __builtin_object_size (__dest, 2 > 1)); 2935449: } 2935449: # 135 "/usr/arm-linux-gnueabi/include/bits/string_fortified.h" 3 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 2935449: __attribute__ ((__leaf__)) strcat (char * __restrict __dest, const char *__restrict __src) noexcept (true) 2935449: 2935449: 2935449: { 2935449: return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 2935449: __attribute__ ((__leaf__)) strncat (char * __restrict __dest, const char *__restrict __src, size_t __len) noexcept (true) 2935449: 2935449: 2935449: { 2935449: return __builtin___strncat_chk (__dest, __src, __len, 2935449: __builtin_object_size (__dest, 2 > 1)); 2935449: } 2935449: 2935449: 2935449: extern size_t __strlcpy_chk (char *__dest, const char *__src, size_t __n, 2935449: size_t __destlen) noexcept (true); 2935449: extern size_t __strlcpy_alias (char *__dest, const char *__src, size_t __n) noexcept (true) __asm__ ("" "strlcpy") 2935449: 2935449: ; 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 2935449: __attribute__ ((__leaf__)) strlcpy (char * __restrict __dest, const char *__restrict __src, size_t __n) noexcept (true) 2935449: 2935449: 2935449: { 2935449: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 2935449: && (!__builtin_constant_p (__n > __builtin_object_size (__dest, 2 > 1)) 2935449: || __n > __builtin_object_size (__dest, 2 > 1))) 2935449: return __strlcpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); 2935449: return __strlcpy_alias (__dest, __src, __n); 2935449: } 2935449: 2935449: extern size_t __strlcat_chk (char *__dest, const char *__src, size_t __n, 2935449: size_t __destlen) noexcept (true); 2935449: extern size_t __strlcat_alias (char *__dest, const char *__src, size_t __n) noexcept (true) __asm__ ("" "strlcat") 2935449: 2935449: ; 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 2935449: __attribute__ ((__leaf__)) strlcat (char * __restrict __dest, const char *__restrict __src, size_t __n) noexcept (true) 2935449: 2935449: { 2935449: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 2935449: && (!__builtin_constant_p (__n > __builtin_object_size (__dest, 2 > 1)) 2935449: || __n > __builtin_object_size (__dest, 2 > 1))) 2935449: return __strlcat_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); 2935449: return __strlcat_alias (__dest, __src, __n); 2935449: } 2935449: # 549 "/usr/arm-linux-gnueabi/include/string.h" 2 3 2935449: 2935449: 2935449: 2935449: } 2935449: # 21 "/<>/src/client/WFConsulClient.cc" 2 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/string" 1 3 2935449: # 40 "/usr/arm-linux-gnueabi/include/c++/15/string" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/requires_hosted.h" 1 3 2935449: # 31 "/usr/arm-linux-gnueabi/include/c++/15/bits/requires_hosted.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++config.h" 1 3 2935449: # 37 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++config.h" 3 2935449: 2935449: # 37 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++config.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wvariadic-macros" 2935449: 2935449: #pragma GCC diagnostic ignored "-Wc++11-extensions" 2935449: #pragma GCC diagnostic ignored "-Wc++23-extensions" 2935449: # 336 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++config.h" 3 2935449: namespace std 2935449: { 2935449: typedef unsigned int size_t; 2935449: typedef int ptrdiff_t; 2935449: 2935449: 2935449: typedef decltype(nullptr) nullptr_t; 2935449: 2935449: 2935449: #pragma GCC visibility push(default) 2935449: 2935449: 2935449: extern "C++" __attribute__ ((__noreturn__, __always_inline__)) 2935449: inline void __terminate() noexcept 2935449: { 2935449: void terminate() noexcept __attribute__ ((__noreturn__,__cold__)); 2935449: terminate(); 2935449: } 2935449: #pragma GCC visibility pop 2935449: } 2935449: # 369 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++config.h" 3 2935449: namespace std 2935449: { 2935449: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 2935449: } 2935449: namespace __gnu_cxx 2935449: { 2935449: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 2935449: } 2935449: # 573 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++config.h" 3 2935449: namespace std 2935449: { 2935449: #pragma GCC visibility push(default) 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((__always_inline__)) 2935449: constexpr inline bool 2935449: __is_constant_evaluated() noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: return __builtin_is_constant_evaluated(); 2935449: 2935449: 2935449: 2935449: } 2935449: #pragma GCC visibility pop 2935449: } 2935449: # 617 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++config.h" 3 2935449: namespace std 2935449: { 2935449: #pragma GCC visibility push(default) 2935449: 2935449: extern "C++" __attribute__ ((__noreturn__)) __attribute__((__cold__)) 2935449: void 2935449: __glibcxx_assert_fail 2935449: (const char* __file, int __line, const char* __function, 2935449: const char* __condition) 2935449: noexcept; 2935449: #pragma GCC visibility pop 2935449: } 2935449: # 648 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++config.h" 3 2935449: namespace std 2935449: { 2935449: __attribute__((__always_inline__,__visibility__("default"))) 2935449: inline void 2935449: __glibcxx_assert_fail() 2935449: { } 2935449: } 2935449: # 727 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++config.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/os_defines.h" 1 3 2935449: # 728 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++config.h" 2 3 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/cpu_defines.h" 1 3 2935449: # 731 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++config.h" 2 3 2935449: # 953 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++config.h" 3 2935449: #pragma GCC diagnostic pop 2935449: # 32 "/usr/arm-linux-gnueabi/include/c++/15/bits/requires_hosted.h" 2 3 2935449: # 41 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stringfwd.h" 1 3 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/bits/stringfwd.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/memoryfwd.h" 1 3 2935449: # 52 "/usr/arm-linux-gnueabi/include/c++/15/bits/memoryfwd.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 66 "/usr/arm-linux-gnueabi/include/c++/15/bits/memoryfwd.h" 3 2935449: template 2935449: class allocator; 2935449: 2935449: template<> 2935449: class allocator; 2935449: 2935449: 2935449: 2935449: template 2935449: struct uses_allocator; 2935449: 2935449: template 2935449: struct allocator_traits; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 43 "/usr/arm-linux-gnueabi/include/c++/15/bits/stringfwd.h" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct char_traits; 2935449: 2935449: template<> struct char_traits; 2935449: 2935449: template<> struct char_traits; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template<> struct char_traits; 2935449: template<> struct char_traits; 2935449: 2935449: 2935449: namespace __cxx11 { 2935449: 2935449: template, 2935449: typename _Alloc = allocator<_CharT> > 2935449: class basic_string; 2935449: 2935449: } 2935449: 2935449: 2935449: typedef basic_string string; 2935449: 2935449: 2935449: typedef basic_string wstring; 2935449: # 91 "/usr/arm-linux-gnueabi/include/c++/15/bits/stringfwd.h" 3 2935449: typedef basic_string u16string; 2935449: 2935449: 2935449: typedef basic_string u32string; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 44 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 1 3 2935449: # 44 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/postypes.h" 1 3 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/bits/postypes.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/cwchar" 1 3 2935449: # 49 "/usr/arm-linux-gnueabi/include/c++/15/cwchar" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/wchar.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/libc-header-start.h" 1 3 2935449: # 28 "/usr/arm-linux-gnueabi/include/wchar.h" 2 3 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/floatn.h" 1 3 2935449: # 31 "/usr/arm-linux-gnueabi/include/wchar.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 36 "/usr/arm-linux-gnueabi/include/wchar.h" 2 3 2935449: 2935449: 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stdarg.h" 1 3 4 2935449: # 39 "/usr/arm-linux-gnueabi/include/wchar.h" 2 3 2935449: # 51 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/wchar.h" 1 3 2935449: # 52 "/usr/arm-linux-gnueabi/include/wchar.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/wint_t.h" 1 3 2935449: # 20 "/usr/arm-linux-gnueabi/include/bits/types/wint_t.h" 3 2935449: typedef unsigned int wint_t; 2935449: # 53 "/usr/arm-linux-gnueabi/include/wchar.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/mbstate_t.h" 1 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __mbstate_t mbstate_t; 2935449: # 54 "/usr/arm-linux-gnueabi/include/wchar.h" 2 3 2935449: # 90 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: struct tm; 2935449: 2935449: 2935449: 2935449: extern wchar_t *wcscpy (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern wchar_t *wcsncpy (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: extern size_t wcslcpy (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 3))); 2935449: 2935449: 2935449: 2935449: extern size_t wcslcat (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__read_write__, 1, 3))); 2935449: 2935449: 2935449: 2935449: extern wchar_t *wcscat (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: extern wchar_t *wcsncat (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src, size_t __n) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) noexcept (true); 2935449: 2935449: 2935449: extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, 2935449: size_t __n) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 2935449: locale_t __loc) noexcept (true); 2935449: 2935449: extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 2935449: size_t __n, locale_t __loc) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern size_t wcsxfrm (wchar_t *__restrict __s1, 2935449: const wchar_t *__restrict __s2, size_t __n) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, 2935449: locale_t __loc) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, 2935449: size_t __n, locale_t __loc) noexcept (true); 2935449: 2935449: 2935449: extern wchar_t *wcsdup (const wchar_t *__s) noexcept (true) 2935449: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1))); 2935449: 2935449: 2935449: 2935449: 2935449: extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) 2935449: noexcept (true) __asm ("wcschr") __attribute__ ((__pure__)); 2935449: extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) 2935449: noexcept (true) __asm ("wcschr") __attribute__ ((__pure__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) 2935449: noexcept (true) __asm ("wcsrchr") __attribute__ ((__pure__)); 2935449: extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) 2935449: noexcept (true) __asm ("wcsrchr") __attribute__ ((__pure__)); 2935449: # 206 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) 2935449: noexcept (true) __attribute__ ((__pure__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) 2935449: noexcept (true) __attribute__ ((__pure__)); 2935449: 2935449: 2935449: extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) 2935449: noexcept (true) __attribute__ ((__pure__)); 2935449: 2935449: 2935449: extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) 2935449: noexcept (true) __asm ("wcspbrk") __attribute__ ((__pure__)); 2935449: extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, 2935449: const wchar_t *__accept) 2935449: noexcept (true) __asm ("wcspbrk") __attribute__ ((__pure__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) 2935449: noexcept (true) __asm ("wcsstr") __attribute__ ((__pure__)); 2935449: extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, 2935449: const wchar_t *__needle) 2935449: noexcept (true) __asm ("wcsstr") __attribute__ ((__pure__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern wchar_t *wcstok (wchar_t *__restrict __s, 2935449: const wchar_t *__restrict __delim, 2935449: wchar_t **__restrict __ptr) noexcept (true); 2935449: 2935449: 2935449: extern size_t wcslen (const wchar_t *__s) noexcept (true) __attribute__ ((__pure__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) 2935449: noexcept (true) __asm ("wcswcs") __attribute__ ((__pure__)); 2935449: extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, 2935449: const wchar_t *__needle) 2935449: noexcept (true) __asm ("wcswcs") __attribute__ ((__pure__)); 2935449: # 265 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) 2935449: noexcept (true) __attribute__ ((__pure__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) 2935449: noexcept (true) __asm ("wmemchr") __attribute__ ((__pure__)); 2935449: extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, 2935449: size_t __n) 2935449: noexcept (true) __asm ("wmemchr") __attribute__ ((__pure__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 2935449: noexcept (true) __attribute__ ((__pure__)); 2935449: 2935449: 2935449: extern wchar_t *wmemcpy (wchar_t *__restrict __s1, 2935449: const wchar_t *__restrict __s2, size_t __n) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) 2935449: noexcept (true); 2935449: 2935449: 2935449: extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: extern wchar_t *wmempcpy (wchar_t *__restrict __s1, 2935449: const wchar_t *__restrict __s2, size_t __n) 2935449: noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern wint_t btowc (int __c) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int wctob (wint_t __c) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int mbsinit (const mbstate_t *__ps) noexcept (true) __attribute__ ((__pure__)); 2935449: 2935449: 2935449: 2935449: extern size_t mbrtowc (wchar_t *__restrict __pwc, 2935449: const char *__restrict __s, size_t __n, 2935449: mbstate_t *__restrict __p) noexcept (true); 2935449: 2935449: 2935449: extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, 2935449: mbstate_t *__restrict __ps) noexcept (true); 2935449: 2935449: 2935449: extern size_t __mbrlen (const char *__restrict __s, size_t __n, 2935449: mbstate_t *__restrict __ps) noexcept (true); 2935449: extern size_t mbrlen (const char *__restrict __s, size_t __n, 2935449: mbstate_t *__restrict __ps) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern wint_t __btowc_alias (int __c) __asm ("btowc"); 2935449: extern __inline __attribute__ ((__gnu_inline__)) wint_t 2935449: __attribute__ ((__leaf__)) btowc (int __c) noexcept (true) 2935449: { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' 2935449: ? (wint_t) __c : __btowc_alias (__c)); } 2935449: 2935449: extern int __wctob_alias (wint_t __c) __asm ("wctob"); 2935449: extern __inline __attribute__ ((__gnu_inline__)) int 2935449: __attribute__ ((__leaf__)) wctob (wint_t __wc) noexcept (true) 2935449: { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' 2935449: ? (int) __wc : __wctob_alias (__wc)); } 2935449: 2935449: extern __inline __attribute__ ((__gnu_inline__)) size_t 2935449: __attribute__ ((__leaf__)) mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) noexcept (true) 2935449: 2935449: { return (__ps != __null 2935449: ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t mbsrtowcs (wchar_t *__restrict __dst, 2935449: const char **__restrict __src, size_t __len, 2935449: mbstate_t *__restrict __ps) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern size_t wcsrtombs (char *__restrict __dst, 2935449: const wchar_t **__restrict __src, size_t __len, 2935449: mbstate_t *__restrict __ps) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t mbsnrtowcs (wchar_t *__restrict __dst, 2935449: const char **__restrict __src, size_t __nmc, 2935449: size_t __len, mbstate_t *__restrict __ps) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern size_t wcsnrtombs (char *__restrict __dst, 2935449: const wchar_t **__restrict __src, 2935449: size_t __nwc, size_t __len, 2935449: mbstate_t *__restrict __ps) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int wcwidth (wchar_t __c) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int wcswidth (const wchar_t *__s, size_t __n) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern double wcstod (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern float wcstof (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr) noexcept (true); 2935449: extern long double wcstold (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr) noexcept (true); 2935449: # 422 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern _Float32 wcstof32 (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern _Float64 wcstof64 (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr) noexcept (true); 2935449: # 437 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern _Float32x wcstof32x (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr) noexcept (true); 2935449: # 455 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern long int wcstol (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, int __base) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, int __base) 2935449: noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: __extension__ 2935449: extern long long int wcstoll (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, int __base) 2935449: noexcept (true); 2935449: 2935449: 2935449: 2935449: __extension__ 2935449: extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, 2935449: int __base) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __extension__ 2935449: extern long long int wcstoq (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, int __base) 2935449: noexcept (true); 2935449: 2935449: 2935449: 2935449: __extension__ 2935449: extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, 2935449: int __base) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern long int wcstol (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_wcstol") 2935449: 2935449: ; 2935449: extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_wcstoul") 2935449: 2935449: 2935449: ; 2935449: __extension__ 2935449: extern long long int wcstoll (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_wcstoll") 2935449: 2935449: 2935449: ; 2935449: __extension__ 2935449: extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_wcstoull") 2935449: 2935449: 2935449: ; 2935449: 2935449: __extension__ 2935449: extern long long int wcstoq (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_wcstoll") 2935449: 2935449: ; 2935449: __extension__ 2935449: extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_wcstoull") 2935449: 2935449: 2935449: ; 2935449: # 561 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern long int wcstol_l (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, int __base, 2935449: locale_t __loc) noexcept (true); 2935449: 2935449: extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, 2935449: int __base, locale_t __loc) noexcept (true); 2935449: 2935449: __extension__ 2935449: extern long long int wcstoll_l (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, 2935449: int __base, locale_t __loc) noexcept (true); 2935449: 2935449: __extension__ 2935449: extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, 2935449: int __base, locale_t __loc) 2935449: noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern long int wcstol_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_wcstol_l") 2935449: 2935449: 2935449: ; 2935449: extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_wcstoul_l") 2935449: 2935449: 2935449: 2935449: ; 2935449: __extension__ 2935449: extern long long int wcstoll_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_wcstoll_l") 2935449: 2935449: 2935449: 2935449: ; 2935449: __extension__ 2935449: extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_wcstoull_l") 2935449: 2935449: 2935449: 2935449: ; 2935449: # 630 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern double wcstod_l (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, locale_t __loc) 2935449: noexcept (true); 2935449: 2935449: extern float wcstof_l (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, locale_t __loc) 2935449: noexcept (true); 2935449: 2935449: extern long double wcstold_l (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, 2935449: locale_t __loc) noexcept (true); 2935449: # 649 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern _Float32 wcstof32_l (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, 2935449: locale_t __loc) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern _Float64 wcstof64_l (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, 2935449: locale_t __loc) noexcept (true); 2935449: # 667 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern _Float32x wcstof32x_l (const wchar_t *__restrict __nptr, 2935449: wchar_t **__restrict __endptr, 2935449: locale_t __loc) noexcept (true); 2935449: # 689 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern wchar_t *wcpcpy (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern wchar_t *wcpncpy (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src, size_t __n) 2935449: noexcept (true); 2935449: # 718 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) noexcept (true) 2935449: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int fwide (__FILE *__fp, int __mode) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int fwprintf (__FILE *__restrict __stream, 2935449: const wchar_t *__restrict __format, ...) 2935449: ; 2935449: 2935449: 2935449: 2935449: 2935449: extern int wprintf (const wchar_t *__restrict __format, ...) 2935449: ; 2935449: 2935449: extern int swprintf (wchar_t *__restrict __s, size_t __n, 2935449: const wchar_t *__restrict __format, ...) 2935449: noexcept (true) ; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int vfwprintf (__FILE *__restrict __s, 2935449: const wchar_t *__restrict __format, 2935449: __gnuc_va_list __arg) 2935449: ; 2935449: 2935449: 2935449: 2935449: 2935449: extern int vwprintf (const wchar_t *__restrict __format, 2935449: __gnuc_va_list __arg) 2935449: ; 2935449: 2935449: 2935449: extern int vswprintf (wchar_t *__restrict __s, size_t __n, 2935449: const wchar_t *__restrict __format, 2935449: __gnuc_va_list __arg) 2935449: noexcept (true) ; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int fwscanf (__FILE *__restrict __stream, 2935449: const wchar_t *__restrict __format, ...) 2935449: ; 2935449: 2935449: 2935449: 2935449: 2935449: extern int wscanf (const wchar_t *__restrict __format, ...) 2935449: ; 2935449: 2935449: extern int swscanf (const wchar_t *__restrict __s, 2935449: const wchar_t *__restrict __format, ...) 2935449: noexcept (true) ; 2935449: # 795 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern int fwscanf (__FILE *__restrict __stream, const wchar_t *__restrict __format, ...) __asm__ ("" "__isoc23_fwscanf") 2935449: 2935449: 2935449: ; 2935449: extern int wscanf (const wchar_t *__restrict __format, ...) __asm__ ("" "__isoc23_wscanf") 2935449: 2935449: ; 2935449: extern int swscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, ...) noexcept (true) __asm__ ("" "__isoc23_swscanf") 2935449: 2935449: 2935449: ; 2935449: # 851 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern int vfwscanf (__FILE *__restrict __s, 2935449: const wchar_t *__restrict __format, 2935449: __gnuc_va_list __arg) 2935449: ; 2935449: 2935449: 2935449: 2935449: 2935449: extern int vwscanf (const wchar_t *__restrict __format, 2935449: __gnuc_va_list __arg) 2935449: ; 2935449: 2935449: extern int vswscanf (const wchar_t *__restrict __s, 2935449: const wchar_t *__restrict __format, 2935449: __gnuc_va_list __arg) 2935449: noexcept (true) ; 2935449: # 875 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern int vfwscanf (__FILE *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc23_vfwscanf") 2935449: 2935449: 2935449: ; 2935449: extern int vwscanf (const wchar_t *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc23_vwscanf") 2935449: 2935449: ; 2935449: extern int vswscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) noexcept (true) __asm__ ("" "__isoc23_vswscanf") 2935449: 2935449: 2935449: ; 2935449: # 935 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern wint_t fgetwc (__FILE *__stream); 2935449: extern wint_t getwc (__FILE *__stream); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern wint_t getwchar (void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern wint_t fputwc (wchar_t __wc, __FILE *__stream); 2935449: extern wint_t putwc (wchar_t __wc, __FILE *__stream); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern wint_t putwchar (wchar_t __wc); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, 2935449: __FILE *__restrict __stream); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int fputws (const wchar_t *__restrict __ws, 2935449: __FILE *__restrict __stream); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern wint_t ungetwc (wint_t __wc, __FILE *__stream); 2935449: # 990 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern wint_t getwc_unlocked (__FILE *__stream); 2935449: extern wint_t getwchar_unlocked (void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern wint_t fgetwc_unlocked (__FILE *__stream); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); 2935449: # 1016 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); 2935449: extern wint_t putwchar_unlocked (wchar_t __wc); 2935449: # 1026 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, 2935449: __FILE *__restrict __stream); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int fputws_unlocked (const wchar_t *__restrict __ws, 2935449: __FILE *__restrict __stream); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, 2935449: const wchar_t *__restrict __format, 2935449: const struct tm *__restrict __tp) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, 2935449: const wchar_t *__restrict __format, 2935449: const struct tm *__restrict __tp, 2935449: locale_t __loc) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/wchar2-decl.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/bits/wchar2-decl.h" 3 2935449: extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1, 2935449: const wchar_t *__restrict __s2, size_t __n, 2935449: size_t __ns1) noexcept (true); 2935449: extern wchar_t *__wmemcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) noexcept (true) __asm__ ("" "wmemcpy") 2935449: 2935449: 2935449: ; 2935449: extern wchar_t *__wmemcpy_chk_warn (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n, size_t __ns1) noexcept (true) __asm__ ("" "__wmemcpy_chk") 2935449: 2935449: 2935449: 2935449: __attribute__((__warning__ ("wmemcpy called with length bigger than size of destination " "buffer"))) 2935449: ; 2935449: 2935449: extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2, 2935449: size_t __n, size_t __ns1) noexcept (true); 2935449: extern wchar_t *__wmemmove_alias (wchar_t *__s1, const wchar_t *__s2, size_t __n) noexcept (true) __asm__ ("" "wmemmove") 2935449: 2935449: ; 2935449: extern wchar_t *__wmemmove_chk_warn (wchar_t *__s1, const wchar_t *__s2, size_t __n, size_t __ns1) noexcept (true) __asm__ ("" "__wmemmove_chk") 2935449: 2935449: 2935449: __attribute__((__warning__ ("wmemmove called with length bigger than size of destination " "buffer"))) 2935449: ; 2935449: 2935449: 2935449: 2935449: 2935449: extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1, 2935449: const wchar_t *__restrict __s2, size_t __n, 2935449: size_t __ns1) noexcept (true); 2935449: extern wchar_t *__wmempcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) noexcept (true) __asm__ ("" "wmempcpy") 2935449: 2935449: 2935449: ; 2935449: extern wchar_t *__wmempcpy_chk_warn (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n, size_t __ns1) noexcept (true) __asm__ ("" "__wmempcpy_chk") 2935449: 2935449: 2935449: 2935449: __attribute__((__warning__ ("wmempcpy called with length bigger than size of destination " "buffer"))) 2935449: ; 2935449: 2935449: 2935449: 2935449: 2935449: extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n, 2935449: size_t __ns) noexcept (true); 2935449: extern wchar_t *__wmemset_alias (wchar_t *__s, wchar_t __c, size_t __n) noexcept (true) __asm__ ("" "wmemset") 2935449: ; 2935449: extern wchar_t *__wmemset_chk_warn (wchar_t *__s, wchar_t __c, size_t __n, size_t __ns) noexcept (true) __asm__ ("" "__wmemset_chk") 2935449: 2935449: 2935449: __attribute__((__warning__ ("wmemset called with length bigger than size of destination " "buffer"))) 2935449: ; 2935449: 2935449: extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src, 2935449: size_t __n) noexcept (true); 2935449: extern wchar_t *__wcscpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) noexcept (true) __asm__ ("" "wcscpy") 2935449: 2935449: ; 2935449: 2935449: extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src, 2935449: size_t __destlen) noexcept (true); 2935449: extern wchar_t *__wcpcpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) noexcept (true) __asm__ ("" "wcpcpy") 2935449: 2935449: ; 2935449: 2935449: extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src, size_t __n, 2935449: size_t __destlen) noexcept (true); 2935449: extern wchar_t *__wcsncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) __asm__ ("" "wcsncpy") 2935449: 2935449: 2935449: ; 2935449: extern wchar_t *__wcsncpy_chk_warn (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n, size_t __destlen) noexcept (true) __asm__ ("" "__wcsncpy_chk") 2935449: 2935449: 2935449: 2935449: __attribute__((__warning__ ("wcsncpy called with length bigger than size of destination " "buffer"))) 2935449: ; 2935449: 2935449: extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src, size_t __n, 2935449: size_t __destlen) noexcept (true); 2935449: 2935449: extern wchar_t *__wcpncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) __asm__ ("" "wcpncpy") 2935449: 2935449: 2935449: ; 2935449: extern wchar_t *__wcpncpy_chk_warn (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n, size_t __destlen) noexcept (true) __asm__ ("" "__wcpncpy_chk") 2935449: 2935449: 2935449: 2935449: __attribute__((__warning__ ("wcpncpy called with length bigger than size of destination " "buffer"))) 2935449: ; 2935449: 2935449: extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src, 2935449: size_t __destlen) noexcept (true); 2935449: extern wchar_t *__wcscat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) noexcept (true) __asm__ ("" "wcscat") 2935449: 2935449: ; 2935449: 2935449: extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest, 2935449: const wchar_t *__restrict __src, 2935449: size_t __n, size_t __destlen) noexcept (true); 2935449: extern wchar_t *__wcsncat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) __asm__ ("" "wcsncat") 2935449: 2935449: 2935449: ; 2935449: 2935449: extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n, 2935449: int __flag, size_t __s_len, 2935449: const wchar_t *__restrict __format, ...) 2935449: noexcept (true) ; 2935449: extern int __swprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) noexcept (true) __asm__ ("" "swprintf") 2935449: 2935449: 2935449: ; 2935449: 2935449: extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n, 2935449: int __flag, size_t __s_len, 2935449: const wchar_t *__restrict __format, 2935449: __gnuc_va_list __arg) 2935449: noexcept (true) ; 2935449: extern int __vswprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) noexcept (true) __asm__ ("" "vswprintf") 2935449: 2935449: 2935449: ; 2935449: 2935449: 2935449: 2935449: 2935449: extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag, 2935449: const wchar_t *__restrict __format, ...); 2935449: extern int __wprintf_chk (int __flag, const wchar_t *__restrict __format, 2935449: ...); 2935449: extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag, 2935449: const wchar_t *__restrict __format, 2935449: __gnuc_va_list __ap); 2935449: extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format, 2935449: __gnuc_va_list __ap); 2935449: 2935449: 2935449: 2935449: extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n, 2935449: __FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 2935449: extern wchar_t *__fgetws_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws") 2935449: 2935449: __attribute__ ((__warn_unused_result__)); 2935449: extern wchar_t *__fgetws_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_chk") 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws called with bigger size than length " "of destination buffer"))) 2935449: ; 2935449: 2935449: 2935449: 2935449: extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size, 2935449: int __n, __FILE *__restrict __stream) 2935449: __attribute__ ((__warn_unused_result__)); 2935449: extern wchar_t *__fgetws_unlocked_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws_unlocked") 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)); 2935449: extern wchar_t *__fgetws_unlocked_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_unlocked_chk") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws_unlocked called with bigger size than length " "of destination buffer"))) 2935449: ; 2935449: 2935449: 2935449: 2935449: extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar, 2935449: mbstate_t *__restrict __p, 2935449: size_t __buflen) noexcept (true) __attribute__ ((__warn_unused_result__)); 2935449: extern size_t __wcrtomb_alias (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) noexcept (true) __asm__ ("" "wcrtomb") 2935449: 2935449: __attribute__ ((__warn_unused_result__)); 2935449: 2935449: extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst, 2935449: const char **__restrict __src, 2935449: size_t __len, mbstate_t *__restrict __ps, 2935449: size_t __dstlen) noexcept (true); 2935449: extern size_t __mbsrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) noexcept (true) __asm__ ("" "mbsrtowcs") 2935449: 2935449: 2935449: 2935449: ; 2935449: extern size_t __mbsrtowcs_chk_warn (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) noexcept (true) __asm__ ("" "__mbsrtowcs_chk") 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((__warning__ ("mbsrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 2935449: ; 2935449: 2935449: extern size_t __wcsrtombs_chk (char *__restrict __dst, 2935449: const wchar_t **__restrict __src, 2935449: size_t __len, mbstate_t *__restrict __ps, 2935449: size_t __dstlen) noexcept (true); 2935449: extern size_t __wcsrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) noexcept (true) __asm__ ("" "wcsrtombs") 2935449: 2935449: 2935449: 2935449: ; 2935449: extern size_t __wcsrtombs_chk_warn (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) noexcept (true) __asm__ ("" "__wcsrtombs_chk") 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((__warning__ ("wcsrtombs called with dst buffer smaller than len"))); 2935449: 2935449: 2935449: 2935449: extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst, 2935449: const char **__restrict __src, size_t __nmc, 2935449: size_t __len, mbstate_t *__restrict __ps, 2935449: size_t __dstlen) noexcept (true); 2935449: extern size_t __mbsnrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) noexcept (true) __asm__ ("" "mbsnrtowcs") 2935449: 2935449: 2935449: 2935449: ; 2935449: extern size_t __mbsnrtowcs_chk_warn (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) noexcept (true) __asm__ ("" "__mbsnrtowcs_chk") 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((__warning__ ("mbsnrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 2935449: ; 2935449: 2935449: extern size_t __wcsnrtombs_chk (char *__restrict __dst, 2935449: const wchar_t **__restrict __src, 2935449: size_t __nwc, size_t __len, 2935449: mbstate_t *__restrict __ps, size_t __dstlen) 2935449: noexcept (true); 2935449: extern size_t __wcsnrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) noexcept (true) __asm__ ("" "wcsnrtombs") 2935449: 2935449: 2935449: 2935449: ; 2935449: extern size_t __wcsnrtombs_chk_warn (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) noexcept (true) __asm__ ("" "__wcsnrtombs_chk") 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((__warning__ ("wcsnrtombs called with dst buffer smaller than len"))); 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t __wcslcpy_chk (wchar_t *__dest, const wchar_t *__src, size_t __n, 2935449: size_t __destlen) noexcept (true); 2935449: extern size_t __wcslcpy_alias (wchar_t *__dest, const wchar_t *__src, size_t __n) noexcept (true) __asm__ ("" "wcslcpy") 2935449: 2935449: ; 2935449: 2935449: extern size_t __wcslcat_chk (wchar_t *__dest, const wchar_t *__src, size_t __n, 2935449: size_t __destlen) noexcept (true); 2935449: extern size_t __wcslcat_alias (wchar_t *__dest, const wchar_t *__src, size_t __n) noexcept (true) __asm__ ("" "wcslcat") 2935449: 2935449: ; 2935449: # 1060 "/usr/arm-linux-gnueabi/include/wchar.h" 2 3 2935449: # 1070 "/usr/arm-linux-gnueabi/include/wchar.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/wchar2.h" 1 3 2935449: # 23 "/usr/arm-linux-gnueabi/include/bits/wchar2.h" 3 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 2935449: __attribute__ ((__leaf__)) wmemcpy (wchar_t * __restrict __s1, const wchar_t *__restrict __s2, size_t __n) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: return (((__builtin_constant_p (__builtin_object_size (__s1, 0)) && (__builtin_object_size (__s1, 0)) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__builtin_object_size (__s1, 0))) / ((sizeof (wchar_t))))) && (((unsigned int) (__n)) <= ((__builtin_object_size (__s1, 0))) / ((sizeof (wchar_t)))))) ? __wmemcpy_alias (__s1, __s2, __n) : ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t)))) && !(((unsigned int) (__n)) <= (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t)))) ? __wmemcpy_chk_warn (__s1, __s2, __n, (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t))) : __wmemcpy_chk (__s1, __s2, __n, (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t))))) 2935449: 2935449: ; 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 2935449: __attribute__ ((__leaf__)) wmemmove (wchar_t * __s1, const wchar_t *__s2, size_t __n) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: return (((__builtin_constant_p (__builtin_object_size (__s1, 0)) && (__builtin_object_size (__s1, 0)) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__builtin_object_size (__s1, 0))) / ((sizeof (wchar_t))))) && (((unsigned int) (__n)) <= ((__builtin_object_size (__s1, 0))) / ((sizeof (wchar_t)))))) ? __wmemmove_alias (__s1, __s2, __n) : ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t)))) && !(((unsigned int) (__n)) <= (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t)))) ? __wmemmove_chk_warn (__s1, __s2, __n, (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t))) : __wmemmove_chk (__s1, __s2, __n, (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t))))) 2935449: 2935449: ; 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 2935449: __attribute__ ((__leaf__)) wmempcpy (wchar_t * __restrict __s1, const wchar_t *__restrict __s2, size_t __n) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: return (((__builtin_constant_p (__builtin_object_size (__s1, 0)) && (__builtin_object_size (__s1, 0)) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__builtin_object_size (__s1, 0))) / ((sizeof (wchar_t))))) && (((unsigned int) (__n)) <= ((__builtin_object_size (__s1, 0))) / ((sizeof (wchar_t)))))) ? __wmempcpy_alias (__s1, __s2, __n) : ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t)))) && !(((unsigned int) (__n)) <= (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t)))) ? __wmempcpy_chk_warn (__s1, __s2, __n, (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t))) : __wmempcpy_chk (__s1, __s2, __n, (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t))))) 2935449: 2935449: ; 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 2935449: __attribute__ ((__leaf__)) wmemset (wchar_t * __s, wchar_t __c, size_t __n) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: return (((__builtin_constant_p (__builtin_object_size (__s, 0)) && (__builtin_object_size (__s, 0)) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__builtin_object_size (__s, 0))) / ((sizeof (wchar_t))))) && (((unsigned int) (__n)) <= ((__builtin_object_size (__s, 0))) / ((sizeof (wchar_t)))))) ? __wmemset_alias (__s, __c, __n) : ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__builtin_object_size (__s, 0)) / (sizeof (wchar_t)))) && !(((unsigned int) (__n)) <= (__builtin_object_size (__s, 0)) / (sizeof (wchar_t)))) ? __wmemset_chk_warn (__s, __c, __n, (__builtin_object_size (__s, 0)) / (sizeof (wchar_t))) : __wmemset_chk (__s, __c, __n, (__builtin_object_size (__s, 0)) / (sizeof (wchar_t))))) 2935449: 2935449: ; 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 2935449: __attribute__ ((__leaf__)) wcscpy (wchar_t * __restrict __dest, const wchar_t *__restrict __src) noexcept (true) 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__dest, 2 > 1); 2935449: if (__sz != (size_t) -1) 2935449: return __wcscpy_chk (__dest, __src, __sz / sizeof (wchar_t)); 2935449: return __wcscpy_alias (__dest, __src); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 2935449: __attribute__ ((__leaf__)) wcpcpy (wchar_t * __restrict __dest, const wchar_t *__restrict __src) noexcept (true) 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__dest, 2 > 1); 2935449: if (__sz != (size_t) -1) 2935449: return __wcpcpy_chk (__dest, __src, __sz / sizeof (wchar_t)); 2935449: return __wcpcpy_alias (__dest, __src); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 2935449: __attribute__ ((__leaf__)) wcsncpy (wchar_t * __restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: return (((__builtin_constant_p (__builtin_object_size (__dest, 2 > 1)) && (__builtin_object_size (__dest, 2 > 1)) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__builtin_object_size (__dest, 2 > 1))) / ((sizeof (wchar_t))))) && (((unsigned int) (__n)) <= ((__builtin_object_size (__dest, 2 > 1))) / ((sizeof (wchar_t)))))) ? __wcsncpy_alias (__dest, __src, __n) : ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t)))) && !(((unsigned int) (__n)) <= (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t)))) ? __wcsncpy_chk_warn (__dest, __src, __n, (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t))) : __wcsncpy_chk (__dest, __src, __n, (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t))))) 2935449: 2935449: ; 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 2935449: __attribute__ ((__leaf__)) wcpncpy (wchar_t * __restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: return (((__builtin_constant_p (__builtin_object_size (__dest, 2 > 1)) && (__builtin_object_size (__dest, 2 > 1)) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__builtin_object_size (__dest, 2 > 1))) / ((sizeof (wchar_t))))) && (((unsigned int) (__n)) <= ((__builtin_object_size (__dest, 2 > 1))) / ((sizeof (wchar_t)))))) ? __wcpncpy_alias (__dest, __src, __n) : ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t)))) && !(((unsigned int) (__n)) <= (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t)))) ? __wcpncpy_chk_warn (__dest, __src, __n, (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t))) : __wcpncpy_chk (__dest, __src, __n, (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t))))) 2935449: 2935449: ; 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 2935449: __attribute__ ((__leaf__)) wcscat (wchar_t * __restrict __dest, const wchar_t *__restrict __src) noexcept (true) 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__dest, 2 > 1); 2935449: if (__sz != (size_t) -1) 2935449: return __wcscat_chk (__dest, __src, __sz / sizeof (wchar_t)); 2935449: return __wcscat_alias (__dest, __src); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 2935449: __attribute__ ((__leaf__)) wcsncat (wchar_t * __restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__dest, 2 > 1); 2935449: if (__sz != (size_t) -1) 2935449: return __wcsncat_chk (__dest, __src, __n, __sz / sizeof (wchar_t)); 2935449: return __wcsncat_alias (__dest, __src, __n); 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 2935449: __attribute__ ((__leaf__)) wcslcpy (wchar_t * __restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 2935449: && (!__builtin_constant_p (__n 2935449: > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 2935449: || __n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t))) 2935449: return __wcslcpy_chk (__dest, __src, __n, 2935449: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 2935449: return __wcslcpy_alias (__dest, __src, __n); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 2935449: __attribute__ ((__leaf__)) wcslcat (wchar_t * __restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) 2935449: 2935449: { 2935449: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 2935449: && (!__builtin_constant_p (__n > __builtin_object_size (__dest, 2 > 1) 2935449: / sizeof (wchar_t)) 2935449: || __n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t))) 2935449: return __wcslcat_chk (__dest, __src, __n, 2935449: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 2935449: return __wcslcat_alias (__dest, __src, __n); 2935449: } 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: __attribute__ ((__leaf__)) swprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) noexcept (true) 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__s, 2 > 1); 2935449: if (__sz != (size_t) -1 || 2 > 1) 2935449: return __swprintf_chk (__s, __n, 2 - 1, 2935449: __sz / sizeof (wchar_t), __fmt, __builtin_va_arg_pack ()); 2935449: return __swprintf_alias (__s, __n, __fmt, __builtin_va_arg_pack ()); 2935449: } 2935449: # 205 "/usr/arm-linux-gnueabi/include/bits/wchar2.h" 3 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: __attribute__ ((__leaf__)) vswprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) noexcept (true) 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__s, 2 > 1); 2935449: if (__sz != (size_t) -1 || 2 > 1) 2935449: return __vswprintf_chk (__s, __n, 2 - 1, 2935449: __sz / sizeof (wchar_t), __fmt, __ap); 2935449: return __vswprintf_alias (__s, __n, __fmt, __ap); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: wprintf (const wchar_t *__restrict __fmt, ...) 2935449: { 2935449: return __wprintf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: fwprintf (__FILE *__restrict __stream, const wchar_t *__restrict __fmt, ...) 2935449: { 2935449: return __fwprintf_chk (__stream, 2 - 1, __fmt, 2935449: __builtin_va_arg_pack ()); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: vwprintf (const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 2935449: { 2935449: return __vwprintf_chk (2 - 1, __fmt, __ap); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: vfwprintf (__FILE *__restrict __stream, 2935449: const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 2935449: { 2935449: return __vfwprintf_chk (__stream, 2 - 1, __fmt, __ap); 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 2935449: fgetws (wchar_t * __restrict __s, int __n, 2935449: __FILE *__restrict __stream) 2935449: 2935449: 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__s, 2 > 1); 2935449: if (((__builtin_constant_p (__sz) && (__sz) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__sz)) / ((sizeof (wchar_t))))) && (((unsigned int) (__n)) <= ((__sz)) / ((sizeof (wchar_t))))))) 2935449: return __fgetws_alias (__s, __n, __stream); 2935449: 2935449: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__sz) / (sizeof (wchar_t)))) && !(((unsigned int) (__n)) <= (__sz) / (sizeof (wchar_t))))) 2935449: return __fgetws_chk_warn (__s, __sz / sizeof (wchar_t), __n, __stream); 2935449: 2935449: return __fgetws_chk (__s, __sz / sizeof (wchar_t), __n, __stream); 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 2935449: fgetws_unlocked (wchar_t * __restrict __s, 2935449: int __n, __FILE *__restrict __stream) 2935449: 2935449: 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__s, 2 > 1); 2935449: if (((__builtin_constant_p (__sz) && (__sz) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__sz)) / ((sizeof (wchar_t))))) && (((unsigned int) (__n)) <= ((__sz)) / ((sizeof (wchar_t))))))) 2935449: return __fgetws_unlocked_alias (__s, __n, __stream); 2935449: 2935449: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__sz) / (sizeof (wchar_t)))) && !(((unsigned int) (__n)) <= (__sz) / (sizeof (wchar_t))))) 2935449: return __fgetws_unlocked_chk_warn (__s, __sz / sizeof (wchar_t), __n, 2935449: __stream); 2935449: 2935449: return __fgetws_unlocked_chk (__s, __sz / sizeof (wchar_t), __n, __stream); 2935449: } 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 2935449: __attribute__ ((__leaf__)) wcrtomb (char * __restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) noexcept (true) 2935449: 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 2935449: && 16 > __builtin_object_size (__s, 2 > 1)) 2935449: return __wcrtomb_chk (__s, __wchar, __ps, __builtin_object_size (__s, 2 > 1)); 2935449: return __wcrtomb_alias (__s, __wchar, __ps); 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 2935449: __attribute__ ((__leaf__)) mbsrtowcs (wchar_t * __restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: return (((__builtin_constant_p (__builtin_object_size (__dst, 2 > 1)) && (__builtin_object_size (__dst, 2 > 1)) == (unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (wchar_t))))) && (((unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (wchar_t)))))) ? __mbsrtowcs_alias (__dst, __src, __len, __ps) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t)))) && !(((unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t)))) ? __mbsrtowcs_chk_warn (__dst, __src, __len, __ps, (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t))) : __mbsrtowcs_chk (__dst, __src, __len, __ps, (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t))))) 2935449: 2935449: ; 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 2935449: __attribute__ ((__leaf__)) wcsrtombs (char * __restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: return (((__builtin_constant_p (__builtin_object_size (__dst, 2 > 1)) && (__builtin_object_size (__dst, 2 > 1)) == (unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (char))))) && (((unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (char)))))) ? __wcsrtombs_alias (__dst, __src, __len, __ps) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (char)))) && !(((unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (char)))) ? __wcsrtombs_chk_warn (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)) : __wcsrtombs_chk (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)))) 2935449: 2935449: ; 2935449: } 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 2935449: __attribute__ ((__leaf__)) mbsnrtowcs (wchar_t * __restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: return (((__builtin_constant_p (__builtin_object_size (__dst, 2 > 1)) && (__builtin_object_size (__dst, 2 > 1)) == (unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (wchar_t))))) && (((unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (wchar_t)))))) ? __mbsnrtowcs_alias (__dst, __src, __nmc, __len, __ps) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t)))) && !(((unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t)))) ? __mbsnrtowcs_chk_warn (__dst, __src, __nmc, __len, __ps, (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t))) : __mbsnrtowcs_chk (__dst, __src, __nmc, __len, __ps, (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t))))) 2935449: 2935449: ; 2935449: } 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 2935449: __attribute__ ((__leaf__)) wcsnrtombs (char * __restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: return (((__builtin_constant_p (__builtin_object_size (__dst, 2 > 1)) && (__builtin_object_size (__dst, 2 > 1)) == (unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (char))))) && (((unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (char)))))) ? __wcsnrtombs_alias (__dst, __src, __nwc, __len, __ps) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (char)))) && !(((unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (char)))) ? __wcsnrtombs_chk_warn (__dst, __src, __nwc, __len, __ps, __builtin_object_size (__dst, 2 > 1)) : __wcsnrtombs_chk (__dst, __src, __nwc, __len, __ps, __builtin_object_size (__dst, 2 > 1)))) 2935449: 2935449: ; 2935449: } 2935449: # 1071 "/usr/arm-linux-gnueabi/include/wchar.h" 2 3 2935449: 2935449: 2935449: } 2935449: # 50 "/usr/arm-linux-gnueabi/include/c++/15/cwchar" 2 3 2935449: # 64 "/usr/arm-linux-gnueabi/include/c++/15/cwchar" 3 2935449: namespace std 2935449: { 2935449: using ::mbstate_t; 2935449: } 2935449: # 137 "/usr/arm-linux-gnueabi/include/c++/15/cwchar" 3 2935449: extern "C++" 2935449: { 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: using ::wint_t; 2935449: 2935449: using ::btowc; 2935449: using ::fgetwc; 2935449: using ::fgetws; 2935449: using ::fputwc; 2935449: using ::fputws; 2935449: using ::fwide; 2935449: using ::fwprintf; 2935449: using ::fwscanf; 2935449: using ::getwc; 2935449: using ::getwchar; 2935449: using ::mbrlen; 2935449: using ::mbrtowc; 2935449: using ::mbsinit; 2935449: using ::mbsrtowcs; 2935449: using ::putwc; 2935449: using ::putwchar; 2935449: 2935449: using ::swprintf; 2935449: 2935449: using ::swscanf; 2935449: using ::ungetwc; 2935449: using ::vfwprintf; 2935449: 2935449: using ::vfwscanf; 2935449: 2935449: 2935449: using ::vswprintf; 2935449: 2935449: 2935449: using ::vswscanf; 2935449: 2935449: using ::vwprintf; 2935449: 2935449: using ::vwscanf; 2935449: 2935449: using ::wcrtomb; 2935449: using ::wcscat; 2935449: using ::wcscmp; 2935449: using ::wcscoll; 2935449: using ::wcscpy; 2935449: using ::wcscspn; 2935449: using ::wcsftime; 2935449: using ::wcslen; 2935449: using ::wcsncat; 2935449: using ::wcsncmp; 2935449: using ::wcsncpy; 2935449: using ::wcsrtombs; 2935449: using ::wcsspn; 2935449: using ::wcstod; 2935449: 2935449: using ::wcstof; 2935449: 2935449: using ::wcstok; 2935449: using ::wcstol; 2935449: using ::wcstoul; 2935449: using ::wcsxfrm; 2935449: using ::wctob; 2935449: using ::wmemcmp; 2935449: using ::wmemcpy; 2935449: using ::wmemmove; 2935449: using ::wmemset; 2935449: using ::wprintf; 2935449: using ::wscanf; 2935449: using ::wcschr; 2935449: using ::wcspbrk; 2935449: using ::wcsrchr; 2935449: using ::wcsstr; 2935449: using ::wmemchr; 2935449: # 236 "/usr/arm-linux-gnueabi/include/c++/15/cwchar" 3 2935449: 2935449: } 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: namespace __gnu_cxx 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using ::wcstold; 2935449: # 262 "/usr/arm-linux-gnueabi/include/c++/15/cwchar" 3 2935449: using ::wcstoll; 2935449: using ::wcstoull; 2935449: 2935449: } 2935449: 2935449: namespace std 2935449: { 2935449: using ::__gnu_cxx::wcstold; 2935449: using ::__gnu_cxx::wcstoll; 2935449: using ::__gnu_cxx::wcstoull; 2935449: } 2935449: # 282 "/usr/arm-linux-gnueabi/include/c++/15/cwchar" 3 2935449: namespace std 2935449: { 2935449: 2935449: using std::wcstof; 2935449: 2935449: 2935449: using std::vfwscanf; 2935449: 2935449: 2935449: using std::vswscanf; 2935449: 2935449: 2935449: using std::vwscanf; 2935449: 2935449: 2935449: 2935449: using std::wcstold; 2935449: using std::wcstoll; 2935449: using std::wcstoull; 2935449: 2935449: } 2935449: # 43 "/usr/arm-linux-gnueabi/include/c++/15/bits/postypes.h" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 55 "/usr/arm-linux-gnueabi/include/c++/15/bits/postypes.h" 3 2935449: 2935449: # 55 "/usr/arm-linux-gnueabi/include/c++/15/bits/postypes.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wlong-long" 2935449: # 66 "/usr/arm-linux-gnueabi/include/c++/15/bits/postypes.h" 3 2935449: typedef long long int streamoff; 2935449: 2935449: 2935449: 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: typedef ptrdiff_t streamsize; 2935449: # 86 "/usr/arm-linux-gnueabi/include/c++/15/bits/postypes.h" 3 2935449: template 2935449: class fpos 2935449: { 2935449: private: 2935449: streamoff _M_off; 2935449: _StateT _M_state; 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: 2935449: fpos() 2935449: : _M_off(0), _M_state() { } 2935449: # 108 "/usr/arm-linux-gnueabi/include/c++/15/bits/postypes.h" 3 2935449: fpos(streamoff __off) 2935449: : _M_off(__off), _M_state() { } 2935449: 2935449: 2935449: fpos(const fpos&) = default; 2935449: fpos& operator=(const fpos&) = default; 2935449: ~fpos() = default; 2935449: 2935449: 2935449: 2935449: operator streamoff() const { return _M_off; } 2935449: 2935449: 2935449: void 2935449: state(_StateT __st) 2935449: { _M_state = __st; } 2935449: 2935449: 2935449: _StateT 2935449: state() const 2935449: { return _M_state; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: fpos& 2935449: operator+=(streamoff __off) 2935449: { 2935449: _M_off += __off; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: fpos& 2935449: operator-=(streamoff __off) 2935449: { 2935449: _M_off -= __off; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: fpos 2935449: operator+(streamoff __off) const 2935449: { 2935449: fpos __pos(*this); 2935449: __pos += __off; 2935449: return __pos; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: fpos 2935449: operator-(streamoff __off) const 2935449: { 2935449: fpos __pos(*this); 2935449: __pos -= __off; 2935449: return __pos; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: streamoff 2935449: operator-(const fpos& __other) const 2935449: { return _M_off - __other._M_off; } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 2935449: { return streamoff(__lhs) == streamoff(__rhs); } 2935449: 2935449: template 2935449: inline bool 2935449: operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 2935449: { return streamoff(__lhs) != streamoff(__rhs); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef fpos streampos; 2935449: 2935449: typedef fpos wstreampos; 2935449: # 220 "/usr/arm-linux-gnueabi/include/c++/15/bits/postypes.h" 3 2935449: typedef fpos u16streampos; 2935449: 2935449: typedef fpos u32streampos; 2935449: 2935449: 2935449: 2935449: } 2935449: # 45 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 1 3 2935449: # 66 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 67 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 2 3 2935449: 2935449: extern "C++" 2935449: { 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: template 2935449: class reference_wrapper; 2935449: # 91 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct integral_constant 2935449: { 2935449: static constexpr _Tp value = __v; 2935449: using value_type = _Tp; 2935449: using type = integral_constant<_Tp, __v>; 2935449: constexpr operator value_type() const noexcept { return value; } 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: template 2935449: constexpr _Tp integral_constant<_Tp, __v>::value; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: using __bool_constant = integral_constant; 2935449: 2935449: 2935449: 2935449: using true_type = __bool_constant; 2935449: 2935449: 2935449: using false_type = __bool_constant; 2935449: # 132 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct enable_if 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct enable_if 2935449: { using type = _Tp; }; 2935449: 2935449: 2935449: template 2935449: using __enable_if_t = typename enable_if<_Cond, _Tp>::type; 2935449: 2935449: template 2935449: struct __conditional 2935449: { 2935449: template 2935449: using type = _Tp; 2935449: }; 2935449: 2935449: template<> 2935449: struct __conditional 2935449: { 2935449: template 2935449: using type = _Up; 2935449: }; 2935449: 2935449: 2935449: template 2935449: using __conditional_t 2935449: = typename __conditional<_Cond>::template type<_If, _Else>; 2935449: 2935449: 2935449: template 2935449: struct __type_identity 2935449: { using type = _Type; }; 2935449: 2935449: template 2935449: using __type_identity_t = typename __type_identity<_Tp>::type; 2935449: 2935449: namespace __detail 2935449: { 2935449: 2935449: template 2935449: using __first_t = _Tp; 2935449: 2935449: 2935449: template 2935449: auto __or_fn(int) -> __first_t...>; 2935449: 2935449: template 2935449: auto __or_fn(...) -> true_type; 2935449: 2935449: template 2935449: auto __and_fn(int) -> __first_t...>; 2935449: 2935449: template 2935449: auto __and_fn(...) -> false_type; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __or_ 2935449: : decltype(__detail::__or_fn<_Bn...>(0)) 2935449: { }; 2935449: 2935449: template 2935449: struct __and_ 2935449: : decltype(__detail::__and_fn<_Bn...>(0)) 2935449: { }; 2935449: 2935449: template 2935449: struct __not_ 2935449: : __bool_constant 2935449: { }; 2935449: # 282 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_reference; 2935449: template 2935449: struct is_function; 2935449: template 2935449: struct is_void; 2935449: template 2935449: struct remove_cv; 2935449: template 2935449: struct is_const; 2935449: 2935449: 2935449: template 2935449: struct __is_array_unknown_bounds; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: constexpr true_type __is_complete_or_unbounded(__type_identity<_Tp>) 2935449: { return {}; } 2935449: 2935449: template 2935449: constexpr typename __or_< 2935449: is_reference<_NestedType>, 2935449: is_function<_NestedType>, 2935449: is_void<_NestedType>, 2935449: __is_array_unknown_bounds<_NestedType> 2935449: >::type __is_complete_or_unbounded(_TypeIdentity) 2935449: { return {}; } 2935449: 2935449: 2935449: template 2935449: using __remove_cv_t = typename remove_cv<_Tp>::type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_void 2935449: : public false_type { }; 2935449: 2935449: template<> 2935449: struct is_void 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct is_void 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct is_void 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct is_void 2935449: : public true_type { }; 2935449: 2935449: 2935449: template 2935449: struct __is_integral_helper 2935449: : public false_type { }; 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: 2935449: 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_integral_helper 2935449: : public true_type { }; 2935449: # 465 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_integral 2935449: : public __is_integral_helper<__remove_cv_t<_Tp>>::type 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct __is_floating_point_helper 2935449: : public false_type { }; 2935449: 2935449: template<> 2935449: struct __is_floating_point_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_floating_point_helper 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct __is_floating_point_helper 2935449: : public true_type { }; 2935449: # 525 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_floating_point 2935449: : public __is_floating_point_helper<__remove_cv_t<_Tp>>::type 2935449: { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_array 2935449: : public __bool_constant<__is_array(_Tp)> 2935449: { }; 2935449: # 552 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_pointer 2935449: : public __bool_constant<__is_pointer(_Tp)> 2935449: { }; 2935449: # 579 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_lvalue_reference 2935449: : public false_type { }; 2935449: 2935449: template 2935449: struct is_lvalue_reference<_Tp&> 2935449: : public true_type { }; 2935449: 2935449: 2935449: template 2935449: struct is_rvalue_reference 2935449: : public false_type { }; 2935449: 2935449: template 2935449: struct is_rvalue_reference<_Tp&&> 2935449: : public true_type { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_member_object_pointer 2935449: : public __bool_constant<__is_member_object_pointer(_Tp)> 2935449: { }; 2935449: # 620 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_member_function_pointer 2935449: : public __bool_constant<__is_member_function_pointer(_Tp)> 2935449: { }; 2935449: # 641 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_enum 2935449: : public __bool_constant<__is_enum(_Tp)> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct is_union 2935449: : public __bool_constant<__is_union(_Tp)> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct is_class 2935449: : public __bool_constant<__is_class(_Tp)> 2935449: { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_function 2935449: : public __bool_constant<__is_function(_Tp)> 2935449: { }; 2935449: # 680 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_null_pointer 2935449: : public false_type { }; 2935449: 2935449: template<> 2935449: struct is_null_pointer 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct is_null_pointer 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct is_null_pointer 2935449: : public true_type { }; 2935449: 2935449: template<> 2935449: struct is_null_pointer 2935449: : public true_type { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __is_nullptr_t 2935449: : public is_null_pointer<_Tp> 2935449: { } __attribute__ ((__deprecated__ ("use '" "std::is_null_pointer" "' instead"))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_reference 2935449: : public __bool_constant<__is_reference(_Tp)> 2935449: { }; 2935449: # 734 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_arithmetic 2935449: : public __or_, is_floating_point<_Tp>>::type 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct is_fundamental 2935449: : public __or_, is_void<_Tp>, 2935449: is_null_pointer<_Tp>>::type 2935449: { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_object 2935449: : public __bool_constant<__is_object(_Tp)> 2935449: { }; 2935449: # 760 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_member_pointer; 2935449: 2935449: 2935449: template 2935449: struct is_scalar 2935449: : public __or_, is_enum<_Tp>, is_pointer<_Tp>, 2935449: is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct is_compound 2935449: : public __bool_constant::value> { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_member_pointer 2935449: : public __bool_constant<__is_member_pointer(_Tp)> 2935449: { }; 2935449: # 798 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_same; 2935449: 2935449: 2935449: template 2935449: using __is_one_of = __or_...>; 2935449: 2935449: 2935449: __extension__ 2935449: template 2935449: using __is_signed_integer = __is_one_of<__remove_cv_t<_Tp>, 2935449: signed char, signed short, signed int, signed long, 2935449: signed long long 2935449: # 823 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: >; 2935449: 2935449: 2935449: __extension__ 2935449: template 2935449: using __is_unsigned_integer = __is_one_of<__remove_cv_t<_Tp>, 2935449: unsigned char, unsigned short, unsigned int, unsigned long, 2935449: unsigned long long 2935449: # 843 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: >; 2935449: 2935449: 2935449: template 2935449: using __is_standard_integer 2935449: = __or_<__is_signed_integer<_Tp>, __is_unsigned_integer<_Tp>>; 2935449: 2935449: 2935449: template using __void_t = void; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_const 2935449: : public __bool_constant<__is_const(_Tp)> 2935449: { }; 2935449: # 874 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_volatile 2935449: : public __bool_constant<__is_volatile(_Tp)> 2935449: { }; 2935449: # 895 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct 2935449: 2935449: is_trivial 2935449: : public __bool_constant<__is_trivial(_Tp)> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_trivially_copyable 2935449: : public __bool_constant<__is_trivially_copyable(_Tp)> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_standard_layout 2935449: : public __bool_constant<__is_standard_layout(_Tp)> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct 2935449: 2935449: is_pod 2935449: : public __bool_constant<__is_pod(_Tp)> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct 2935449: 2935449: is_literal_type 2935449: : public __bool_constant<__is_literal_type(_Tp)> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_empty 2935449: : public __bool_constant<__is_empty(_Tp)> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct is_polymorphic 2935449: : public __bool_constant<__is_polymorphic(_Tp)> 2935449: { }; 2935449: # 974 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_abstract 2935449: : public __bool_constant<__is_abstract(_Tp)> 2935449: { }; 2935449: 2935449: 2935449: template::value> 2935449: struct __is_signed_helper 2935449: : public false_type { }; 2935449: 2935449: template 2935449: struct __is_signed_helper<_Tp, true> 2935449: : public __bool_constant<_Tp(-1) < _Tp(0)> 2935449: { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_signed 2935449: : public __is_signed_helper<_Tp>::type 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct is_unsigned 2935449: : public __and_, __not_>>::type 2935449: { }; 2935449: 2935449: 2935449: template 2935449: _Up 2935449: __declval(int); 2935449: 2935449: template 2935449: _Tp 2935449: __declval(long); 2935449: 2935449: 2935449: template 2935449: auto declval() noexcept -> decltype(__declval<_Tp>(0)); 2935449: 2935449: template 2935449: struct remove_all_extents; 2935449: 2935449: 2935449: template 2935449: struct __is_array_known_bounds 2935449: : public false_type 2935449: { }; 2935449: 2935449: template 2935449: struct __is_array_known_bounds<_Tp[_Size]> 2935449: : public true_type 2935449: { }; 2935449: 2935449: template 2935449: struct __is_array_unknown_bounds 2935449: : public false_type 2935449: { }; 2935449: 2935449: template 2935449: struct __is_array_unknown_bounds<_Tp[]> 2935449: : public true_type 2935449: { }; 2935449: # 1047 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: struct __do_is_destructible_impl 2935449: { 2935449: template().~_Tp())> 2935449: static true_type __test(int); 2935449: 2935449: template 2935449: static false_type __test(...); 2935449: }; 2935449: 2935449: template 2935449: struct __is_destructible_impl 2935449: : public __do_is_destructible_impl 2935449: { 2935449: using type = decltype(__test<_Tp>(0)); 2935449: }; 2935449: 2935449: template, 2935449: __is_array_unknown_bounds<_Tp>, 2935449: is_function<_Tp>>::value, 2935449: bool = __or_, is_scalar<_Tp>>::value> 2935449: struct __is_destructible_safe; 2935449: 2935449: template 2935449: struct __is_destructible_safe<_Tp, false, false> 2935449: : public __is_destructible_impl::type>::type 2935449: { }; 2935449: 2935449: template 2935449: struct __is_destructible_safe<_Tp, true, false> 2935449: : public false_type { }; 2935449: 2935449: template 2935449: struct __is_destructible_safe<_Tp, false, true> 2935449: : public true_type { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_destructible 2935449: : public __is_destructible_safe<_Tp>::type 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct __do_is_nt_destructible_impl 2935449: { 2935449: template 2935449: static __bool_constant().~_Tp())> 2935449: __test(int); 2935449: 2935449: template 2935449: static false_type __test(...); 2935449: }; 2935449: 2935449: template 2935449: struct __is_nt_destructible_impl 2935449: : public __do_is_nt_destructible_impl 2935449: { 2935449: using type = decltype(__test<_Tp>(0)); 2935449: }; 2935449: 2935449: template, 2935449: __is_array_unknown_bounds<_Tp>, 2935449: is_function<_Tp>>::value, 2935449: bool = __or_, is_scalar<_Tp>>::value> 2935449: struct __is_nt_destructible_safe; 2935449: 2935449: template 2935449: struct __is_nt_destructible_safe<_Tp, false, false> 2935449: : public __is_nt_destructible_impl::type>::type 2935449: { }; 2935449: 2935449: template 2935449: struct __is_nt_destructible_safe<_Tp, true, false> 2935449: : public false_type { }; 2935449: 2935449: template 2935449: struct __is_nt_destructible_safe<_Tp, false, true> 2935449: : public true_type { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_nothrow_destructible 2935449: : public __is_nt_destructible_safe<_Tp>::type 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: using __is_constructible_impl 2935449: = __bool_constant<__is_constructible(_Tp, _Args...)>; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_constructible 2935449: : public __is_constructible_impl<_Tp, _Args...> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_default_constructible 2935449: : public __is_constructible_impl<_Tp> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: using __add_lval_ref_t = __add_lvalue_reference(_Tp); 2935449: # 1191 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_copy_constructible 2935449: : public __is_constructible_impl<_Tp, __add_lval_ref_t> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: using __add_rval_ref_t = __add_rvalue_reference(_Tp); 2935449: # 1218 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_move_constructible 2935449: : public __is_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: using __is_nothrow_constructible_impl 2935449: = __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_nothrow_constructible 2935449: : public __is_nothrow_constructible_impl<_Tp, _Args...> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_nothrow_default_constructible 2935449: : public __is_nothrow_constructible_impl<_Tp> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_nothrow_copy_constructible 2935449: : public __is_nothrow_constructible_impl<_Tp, __add_lval_ref_t> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_nothrow_move_constructible 2935449: : public __is_nothrow_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: using __is_assignable_impl = __bool_constant<__is_assignable(_Tp, _Up)>; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_assignable 2935449: : public __is_assignable_impl<_Tp, _Up> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_copy_assignable 2935449: : public __is_assignable_impl<__add_lval_ref_t<_Tp>, 2935449: __add_lval_ref_t> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_move_assignable 2935449: : public __is_assignable_impl<__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: using __is_nothrow_assignable_impl 2935449: = __bool_constant<__is_nothrow_assignable(_Tp, _Up)>; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_nothrow_assignable 2935449: : public __is_nothrow_assignable_impl<_Tp, _Up> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_nothrow_copy_assignable 2935449: : public __is_nothrow_assignable_impl<__add_lval_ref_t<_Tp>, 2935449: __add_lval_ref_t> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_nothrow_move_assignable 2935449: : public __is_nothrow_assignable_impl<__add_lval_ref_t<_Tp>, 2935449: __add_rval_ref_t<_Tp>> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: using __is_trivially_constructible_impl 2935449: = __bool_constant<__is_trivially_constructible(_Tp, _Args...)>; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_trivially_constructible 2935449: : public __is_trivially_constructible_impl<_Tp, _Args...> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_trivially_default_constructible 2935449: : public __is_trivially_constructible_impl<_Tp> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: # 1370 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: struct __do_is_implicitly_default_constructible_impl 2935449: { 2935449: template 2935449: static void __helper(const _Tp&); 2935449: 2935449: template 2935449: static true_type __test(const _Tp&, 2935449: decltype(__helper({}))* = 0); 2935449: 2935449: static false_type __test(...); 2935449: }; 2935449: 2935449: template 2935449: struct __is_implicitly_default_constructible_impl 2935449: : public __do_is_implicitly_default_constructible_impl 2935449: { 2935449: using type = decltype(__test(declval<_Tp>())); 2935449: }; 2935449: 2935449: template 2935449: struct __is_implicitly_default_constructible_safe 2935449: : public __is_implicitly_default_constructible_impl<_Tp>::type 2935449: { }; 2935449: 2935449: template 2935449: struct __is_implicitly_default_constructible 2935449: : public __and_<__is_constructible_impl<_Tp>, 2935449: __is_implicitly_default_constructible_safe<_Tp>>::type 2935449: { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_trivially_copy_constructible 2935449: : public __is_trivially_constructible_impl<_Tp, __add_lval_ref_t> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_trivially_move_constructible 2935449: : public __is_trivially_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: using __is_trivially_assignable_impl 2935449: = __bool_constant<__is_trivially_assignable(_Tp, _Up)>; 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_trivially_assignable 2935449: : public __is_trivially_assignable_impl<_Tp, _Up> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_trivially_copy_assignable 2935449: : public __is_trivially_assignable_impl<__add_lval_ref_t<_Tp>, 2935449: __add_lval_ref_t> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_trivially_move_assignable 2935449: : public __is_trivially_assignable_impl<__add_lval_ref_t<_Tp>, 2935449: __add_rval_ref_t<_Tp>> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct is_trivially_destructible 2935449: : public __and_<__is_destructible_safe<_Tp>, 2935449: __bool_constant<__has_trivial_destructor(_Tp)>>::type 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct has_virtual_destructor 2935449: : public __bool_constant<__has_virtual_destructor(_Tp)> 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct alignment_of 2935449: : public integral_constant 2935449: { 2935449: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 2935449: "template argument must be a complete class or an unbounded array"); 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct rank 2935449: : public integral_constant { }; 2935449: # 1507 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct extent 2935449: : public integral_constant { }; 2935449: 2935449: template 2935449: struct extent<_Tp[_Size], 0> 2935449: : public integral_constant { }; 2935449: 2935449: template 2935449: struct extent<_Tp[_Size], _Uint> 2935449: : public extent<_Tp, _Uint - 1>::type { }; 2935449: 2935449: template 2935449: struct extent<_Tp[], 0> 2935449: : public integral_constant { }; 2935449: 2935449: template 2935449: struct extent<_Tp[], _Uint> 2935449: : public extent<_Tp, _Uint - 1>::type { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_same 2935449: : public __bool_constant<__is_same(_Tp, _Up)> 2935449: { }; 2935449: # 1549 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_base_of 2935449: : public __bool_constant<__is_base_of(_Base, _Derived)> 2935449: { }; 2935449: # 1564 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct is_convertible 2935449: : public __bool_constant<__is_convertible(_From, _To)> 2935449: { }; 2935449: # 1607 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: using __is_array_convertible 2935449: = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>; 2935449: # 1667 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++14-extensions" 2935449: template 2935449: struct __is_nothrow_new_constructible_impl 2935449: : __bool_constant< 2935449: noexcept(::new(std::declval()) _Tp(std::declval<_Args>()...)) 2935449: > 2935449: { }; 2935449: 2935449: template 2935449: constexpr bool __is_nothrow_new_constructible 2935449: = __and_, 2935449: __is_nothrow_new_constructible_impl<_Tp, _Args...>>::value; 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct remove_const 2935449: { using type = _Tp; }; 2935449: 2935449: template 2935449: struct remove_const<_Tp const> 2935449: { using type = _Tp; }; 2935449: 2935449: 2935449: template 2935449: struct remove_volatile 2935449: { using type = _Tp; }; 2935449: 2935449: template 2935449: struct remove_volatile<_Tp volatile> 2935449: { using type = _Tp; }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct remove_cv 2935449: { using type = __remove_cv(_Tp); }; 2935449: # 1726 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct add_const 2935449: { using type = _Tp const; }; 2935449: 2935449: 2935449: template 2935449: struct add_volatile 2935449: { using type = _Tp volatile; }; 2935449: 2935449: 2935449: template 2935449: struct add_cv 2935449: { using type = _Tp const volatile; }; 2935449: # 1770 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct remove_reference 2935449: { using type = __remove_reference(_Tp); }; 2935449: # 1788 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct add_lvalue_reference 2935449: { using type = __add_lval_ref_t<_Tp>; }; 2935449: 2935449: 2935449: template 2935449: struct add_rvalue_reference 2935449: { using type = __add_rval_ref_t<_Tp>; }; 2935449: # 1816 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct __cv_selector; 2935449: 2935449: template 2935449: struct __cv_selector<_Unqualified, false, false> 2935449: { using __type = _Unqualified; }; 2935449: 2935449: template 2935449: struct __cv_selector<_Unqualified, false, true> 2935449: { using __type = volatile _Unqualified; }; 2935449: 2935449: template 2935449: struct __cv_selector<_Unqualified, true, false> 2935449: { using __type = const _Unqualified; }; 2935449: 2935449: template 2935449: struct __cv_selector<_Unqualified, true, true> 2935449: { using __type = const volatile _Unqualified; }; 2935449: 2935449: template::value, 2935449: bool _IsVol = is_volatile<_Qualified>::value> 2935449: class __match_cv_qualifiers 2935449: { 2935449: using __match = __cv_selector<_Unqualified, _IsConst, _IsVol>; 2935449: 2935449: public: 2935449: using __type = typename __match::__type; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __make_unsigned 2935449: { using __type = _Tp; }; 2935449: 2935449: template<> 2935449: struct __make_unsigned 2935449: { using __type = unsigned char; }; 2935449: 2935449: template<> 2935449: struct __make_unsigned 2935449: { using __type = unsigned char; }; 2935449: 2935449: template<> 2935449: struct __make_unsigned 2935449: { using __type = unsigned short; }; 2935449: 2935449: template<> 2935449: struct __make_unsigned 2935449: { using __type = unsigned int; }; 2935449: 2935449: template<> 2935449: struct __make_unsigned 2935449: { using __type = unsigned long; }; 2935449: 2935449: template<> 2935449: struct __make_unsigned 2935449: { using __type = unsigned long long; }; 2935449: # 1901 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template::value, 2935449: bool _IsEnum = __is_enum(_Tp)> 2935449: class __make_unsigned_selector; 2935449: 2935449: template 2935449: class __make_unsigned_selector<_Tp, true, false> 2935449: { 2935449: using __unsigned_type 2935449: = typename __make_unsigned<__remove_cv_t<_Tp>>::__type; 2935449: 2935449: public: 2935449: using __type 2935449: = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; 2935449: }; 2935449: 2935449: class __make_unsigned_selector_base 2935449: { 2935449: protected: 2935449: template struct _List { }; 2935449: 2935449: template 2935449: struct _List<_Tp, _Up...> : _List<_Up...> 2935449: { static constexpr size_t __size = sizeof(_Tp); }; 2935449: 2935449: template 2935449: struct __select; 2935449: 2935449: template 2935449: struct __select<_Sz, _List<_Uint, _UInts...>, true> 2935449: { using __type = _Uint; }; 2935449: 2935449: template 2935449: struct __select<_Sz, _List<_Uint, _UInts...>, false> 2935449: : __select<_Sz, _List<_UInts...>> 2935449: { }; 2935449: }; 2935449: 2935449: 2935449: template 2935449: class __make_unsigned_selector<_Tp, false, true> 2935449: : __make_unsigned_selector_base 2935449: { 2935449: 2935449: using _UInts = _List; 2935449: 2935449: using __unsigned_type = typename __select::__type; 2935449: 2935449: public: 2935449: using __type 2935449: = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template<> 2935449: struct __make_unsigned 2935449: { 2935449: using __type 2935449: = typename __make_unsigned_selector::__type; 2935449: }; 2935449: # 1975 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template<> 2935449: struct __make_unsigned 2935449: { 2935449: using __type 2935449: = typename __make_unsigned_selector::__type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __make_unsigned 2935449: { 2935449: using __type 2935449: = typename __make_unsigned_selector::__type; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct make_unsigned 2935449: { using type = typename __make_unsigned_selector<_Tp>::__type; }; 2935449: 2935449: 2935449: template<> struct make_unsigned; 2935449: template<> struct make_unsigned; 2935449: template<> struct make_unsigned; 2935449: template<> struct make_unsigned; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __make_signed 2935449: { using __type = _Tp; }; 2935449: 2935449: template<> 2935449: struct __make_signed 2935449: { using __type = signed char; }; 2935449: 2935449: template<> 2935449: struct __make_signed 2935449: { using __type = signed char; }; 2935449: 2935449: template<> 2935449: struct __make_signed 2935449: { using __type = signed short; }; 2935449: 2935449: template<> 2935449: struct __make_signed 2935449: { using __type = signed int; }; 2935449: 2935449: template<> 2935449: struct __make_signed 2935449: { using __type = signed long; }; 2935449: 2935449: template<> 2935449: struct __make_signed 2935449: { using __type = signed long long; }; 2935449: # 2061 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template::value, 2935449: bool _IsEnum = __is_enum(_Tp)> 2935449: class __make_signed_selector; 2935449: 2935449: template 2935449: class __make_signed_selector<_Tp, true, false> 2935449: { 2935449: using __signed_type 2935449: = typename __make_signed<__remove_cv_t<_Tp>>::__type; 2935449: 2935449: public: 2935449: using __type 2935449: = typename __match_cv_qualifiers<_Tp, __signed_type>::__type; 2935449: }; 2935449: 2935449: 2935449: template 2935449: class __make_signed_selector<_Tp, false, true> 2935449: { 2935449: using __unsigned_type = typename __make_unsigned_selector<_Tp>::__type; 2935449: 2935449: public: 2935449: using __type = typename __make_signed_selector<__unsigned_type>::__type; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template<> 2935449: struct __make_signed 2935449: { 2935449: using __type 2935449: = typename __make_signed_selector::__type; 2935449: }; 2935449: # 2107 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template<> 2935449: struct __make_signed 2935449: { 2935449: using __type 2935449: = typename __make_signed_selector::__type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __make_signed 2935449: { 2935449: using __type 2935449: = typename __make_signed_selector::__type; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct make_signed 2935449: { using type = typename __make_signed_selector<_Tp>::__type; }; 2935449: 2935449: 2935449: template<> struct make_signed; 2935449: template<> struct make_signed; 2935449: template<> struct make_signed; 2935449: template<> struct make_signed; 2935449: # 2150 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct remove_extent 2935449: { using type = __remove_extent(_Tp); }; 2935449: # 2169 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct remove_all_extents 2935449: { using type = __remove_all_extents(_Tp); }; 2935449: # 2200 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct remove_pointer 2935449: { using type = __remove_pointer(_Tp); }; 2935449: # 2220 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct add_pointer 2935449: { using type = __add_pointer(_Tp); }; 2935449: # 2259 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: struct __attribute__((__aligned__)) __aligned_storage_max_align_t 2935449: { }; 2935449: 2935449: constexpr size_t 2935449: __aligned_storage_default_alignment([[__maybe_unused__]] size_t __len) 2935449: { 2935449: # 2279 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: return alignof(__aligned_storage_max_align_t); 2935449: 2935449: } 2935449: # 2315 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct 2935449: 2935449: aligned_storage 2935449: { 2935449: struct type 2935449: { 2935449: alignas(_Align) unsigned char __data[_Len]; 2935449: }; 2935449: }; 2935449: 2935449: template 2935449: struct __strictest_alignment 2935449: { 2935449: static const size_t _S_alignment = 0; 2935449: static const size_t _S_size = 0; 2935449: }; 2935449: 2935449: template 2935449: struct __strictest_alignment<_Tp, _Types...> 2935449: { 2935449: static const size_t _S_alignment = 2935449: alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment 2935449: ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; 2935449: static const size_t _S_size = 2935449: sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size 2935449: ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; 2935449: }; 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: # 2360 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct 2935449: 2935449: aligned_union 2935449: { 2935449: private: 2935449: static_assert(sizeof...(_Types) != 0, "At least one type is required"); 2935449: 2935449: using __strictest = __strictest_alignment<_Types...>; 2935449: static const size_t _S_len = _Len > __strictest::_S_size 2935449: ? _Len : __strictest::_S_size; 2935449: public: 2935449: 2935449: static const size_t alignment_value = __strictest::_S_alignment; 2935449: 2935449: using type = typename aligned_storage<_S_len, alignment_value>::type; 2935449: }; 2935449: 2935449: template 2935449: const size_t aligned_union<_Len, _Types...>::alignment_value; 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct decay 2935449: { using type = __decay(_Tp); }; 2935449: # 2425 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct __strip_reference_wrapper 2935449: { 2935449: using __type = _Tp; 2935449: }; 2935449: 2935449: template 2935449: struct __strip_reference_wrapper > 2935449: { 2935449: using __type = _Tp&; 2935449: }; 2935449: 2935449: 2935449: template 2935449: using __decay_t = typename decay<_Tp>::type; 2935449: 2935449: template 2935449: using __decay_and_strip = __strip_reference_wrapper<__decay_t<_Tp>>; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: using _Require = __enable_if_t<__and_<_Cond...>::value>; 2935449: 2935449: 2935449: template 2935449: using __remove_cvref_t 2935449: = typename remove_cv::type>::type; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct conditional 2935449: { using type = _Iftrue; }; 2935449: 2935449: 2935449: template 2935449: struct conditional 2935449: { using type = _Iffalse; }; 2935449: 2935449: 2935449: template 2935449: struct common_type; 2935449: # 2481 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct __success_type 2935449: { using type = _Tp; }; 2935449: 2935449: struct __failure_type 2935449: { }; 2935449: 2935449: struct __do_common_type_impl 2935449: { 2935449: template 2935449: using __cond_t 2935449: = decltype(true ? std::declval<_Tp>() : std::declval<_Up>()); 2935449: 2935449: 2935449: 2935449: template 2935449: static __success_type<__decay_t<__cond_t<_Tp, _Up>>> 2935449: _S_test(int); 2935449: # 2508 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: static __failure_type 2935449: _S_test_2(...); 2935449: 2935449: template 2935449: static decltype(_S_test_2<_Tp, _Up>(0)) 2935449: _S_test(...); 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct common_type<> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct common_type<_Tp0> 2935449: : public common_type<_Tp0, _Tp0> 2935449: { }; 2935449: 2935449: 2935449: template, typename _Dp2 = __decay_t<_Tp2>> 2935449: struct __common_type_impl 2935449: { 2935449: 2935449: 2935449: using type = common_type<_Dp1, _Dp2>; 2935449: }; 2935449: 2935449: template 2935449: struct __common_type_impl<_Tp1, _Tp2, _Tp1, _Tp2> 2935449: : private __do_common_type_impl 2935449: { 2935449: 2935449: 2935449: using type = decltype(_S_test<_Tp1, _Tp2>(0)); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct common_type<_Tp1, _Tp2> 2935449: : public __common_type_impl<_Tp1, _Tp2>::type 2935449: { }; 2935449: 2935449: template 2935449: struct __common_type_pack 2935449: { }; 2935449: 2935449: template 2935449: struct __common_type_fold; 2935449: 2935449: 2935449: template 2935449: struct common_type<_Tp1, _Tp2, _Rp...> 2935449: : public __common_type_fold, 2935449: __common_type_pack<_Rp...>> 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __common_type_fold<_CTp, __common_type_pack<_Rp...>, 2935449: __void_t> 2935449: : public common_type 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct __common_type_fold<_CTp, _Rp, void> 2935449: { }; 2935449: 2935449: template 2935449: struct __underlying_type_impl 2935449: { 2935449: using type = __underlying_type(_Tp); 2935449: }; 2935449: 2935449: template 2935449: struct __underlying_type_impl<_Tp, false> 2935449: { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct underlying_type 2935449: : public __underlying_type_impl<_Tp> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct __declval_protector 2935449: { 2935449: static const bool __stop = false; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: auto declval() noexcept -> decltype(__declval<_Tp>(0)) 2935449: { 2935449: static_assert(__declval_protector<_Tp>::__stop, 2935449: "declval() must not be used!"); 2935449: return __declval<_Tp>(0); 2935449: } 2935449: 2935449: 2935449: template 2935449: struct result_of; 2935449: 2935449: 2935449: 2935449: 2935449: struct __invoke_memfun_ref { }; 2935449: struct __invoke_memfun_deref { }; 2935449: struct __invoke_memobj_ref { }; 2935449: struct __invoke_memobj_deref { }; 2935449: struct __invoke_other { }; 2935449: 2935449: 2935449: template 2935449: struct __result_of_success : __success_type<_Tp> 2935449: { using __invoke_type = _Tag; }; 2935449: 2935449: 2935449: struct __result_of_memfun_ref_impl 2935449: { 2935449: template 2935449: static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) 2935449: ), __invoke_memfun_ref> _S_test(int); 2935449: 2935449: template 2935449: static __failure_type _S_test(...); 2935449: }; 2935449: 2935449: template 2935449: struct __result_of_memfun_ref 2935449: : private __result_of_memfun_ref_impl 2935449: { 2935449: using type = decltype(_S_test<_MemPtr, _Arg, _Args...>(0)); 2935449: }; 2935449: 2935449: 2935449: struct __result_of_memfun_deref_impl 2935449: { 2935449: template 2935449: static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) 2935449: ), __invoke_memfun_deref> _S_test(int); 2935449: 2935449: template 2935449: static __failure_type _S_test(...); 2935449: }; 2935449: 2935449: template 2935449: struct __result_of_memfun_deref 2935449: : private __result_of_memfun_deref_impl 2935449: { 2935449: using type = decltype(_S_test<_MemPtr, _Arg, _Args...>(0)); 2935449: }; 2935449: 2935449: 2935449: struct __result_of_memobj_ref_impl 2935449: { 2935449: template 2935449: static __result_of_success().*std::declval<_Fp>() 2935449: ), __invoke_memobj_ref> _S_test(int); 2935449: 2935449: template 2935449: static __failure_type _S_test(...); 2935449: }; 2935449: 2935449: template 2935449: struct __result_of_memobj_ref 2935449: : private __result_of_memobj_ref_impl 2935449: { 2935449: using type = decltype(_S_test<_MemPtr, _Arg>(0)); 2935449: }; 2935449: 2935449: 2935449: struct __result_of_memobj_deref_impl 2935449: { 2935449: template 2935449: static __result_of_success()).*std::declval<_Fp>() 2935449: ), __invoke_memobj_deref> _S_test(int); 2935449: 2935449: template 2935449: static __failure_type _S_test(...); 2935449: }; 2935449: 2935449: template 2935449: struct __result_of_memobj_deref 2935449: : private __result_of_memobj_deref_impl 2935449: { 2935449: using type = decltype(_S_test<_MemPtr, _Arg>(0)); 2935449: }; 2935449: 2935449: template 2935449: struct __result_of_memobj; 2935449: 2935449: template 2935449: struct __result_of_memobj<_Res _Class::*, _Arg> 2935449: { 2935449: using _Argval = __remove_cvref_t<_Arg>; 2935449: using _MemPtr = _Res _Class::*; 2935449: using type = typename __conditional_t<__or_, 2935449: is_base_of<_Class, _Argval>>::value, 2935449: __result_of_memobj_ref<_MemPtr, _Arg>, 2935449: __result_of_memobj_deref<_MemPtr, _Arg> 2935449: >::type; 2935449: }; 2935449: 2935449: template 2935449: struct __result_of_memfun; 2935449: 2935449: template 2935449: struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> 2935449: { 2935449: using _Argval = typename remove_reference<_Arg>::type; 2935449: using _MemPtr = _Res _Class::*; 2935449: using type = typename __conditional_t::value, 2935449: __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, 2935449: __result_of_memfun_deref<_MemPtr, _Arg, _Args...> 2935449: >::type; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template> 2935449: struct __inv_unwrap 2935449: { 2935449: using type = _Tp; 2935449: }; 2935449: 2935449: template 2935449: struct __inv_unwrap<_Tp, reference_wrapper<_Up>> 2935449: { 2935449: using type = _Up&; 2935449: }; 2935449: 2935449: template 2935449: struct __result_of_impl 2935449: { 2935449: using type = __failure_type; 2935449: }; 2935449: 2935449: template 2935449: struct __result_of_impl 2935449: : public __result_of_memobj<__decay_t<_MemPtr>, 2935449: typename __inv_unwrap<_Arg>::type> 2935449: { }; 2935449: 2935449: template 2935449: struct __result_of_impl 2935449: : public __result_of_memfun<__decay_t<_MemPtr>, 2935449: typename __inv_unwrap<_Arg>::type, _Args...> 2935449: { }; 2935449: 2935449: 2935449: struct __result_of_other_impl 2935449: { 2935449: template 2935449: static __result_of_success()(std::declval<_Args>()...) 2935449: ), __invoke_other> _S_test(int); 2935449: 2935449: template 2935449: static __failure_type _S_test(...); 2935449: }; 2935449: 2935449: template 2935449: struct __result_of_impl 2935449: : private __result_of_other_impl 2935449: { 2935449: using type = decltype(_S_test<_Functor, _ArgTypes...>(0)); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __invoke_result 2935449: : public __result_of_impl< 2935449: is_member_object_pointer< 2935449: typename remove_reference<_Functor>::type 2935449: >::value, 2935449: is_member_function_pointer< 2935449: typename remove_reference<_Functor>::type 2935449: >::value, 2935449: _Functor, _ArgTypes... 2935449: >::type 2935449: { }; 2935449: 2935449: 2935449: template 2935449: using __invoke_result_t = typename __invoke_result<_Fn, _Args...>::type; 2935449: 2935449: 2935449: template 2935449: struct result_of<_Functor(_ArgTypes...)> 2935449: : public __invoke_result<_Functor, _ArgTypes...> 2935449: { } ; 2935449: # 2885 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template class _Op, typename... _Args> 2935449: struct __detector 2935449: { 2935449: using type = _Default; 2935449: using __is_detected = false_type; 2935449: }; 2935449: 2935449: 2935449: template class _Op, 2935449: typename... _Args> 2935449: struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> 2935449: { 2935449: using type = _Op<_Args...>; 2935449: using __is_detected = true_type; 2935449: }; 2935449: 2935449: template class _Op, 2935449: typename... _Args> 2935449: using __detected_or = __detector<_Default, void, _Op, _Args...>; 2935449: 2935449: 2935449: 2935449: template class _Op, 2935449: typename... _Args> 2935449: using __detected_or_t 2935449: = typename __detected_or<_Default, _Op, _Args...>::type; 2935449: # 2927 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template 2935449: struct __is_swappable; 2935449: 2935449: template 2935449: struct __is_nothrow_swappable; 2935449: 2935449: template 2935449: struct __is_tuple_like_impl : false_type 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct __is_tuple_like 2935449: : public __is_tuple_like_impl<__remove_cvref_t<_Tp>>::type 2935449: { }; 2935449: 2935449: 2935449: template 2935449: 2935449: inline 2935449: _Require<__not_<__is_tuple_like<_Tp>>, 2935449: is_move_constructible<_Tp>, 2935449: is_move_assignable<_Tp>> 2935449: swap(_Tp&, _Tp&) 2935449: noexcept(__and_, 2935449: is_nothrow_move_assignable<_Tp>>::value); 2935449: 2935449: template 2935449: 2935449: inline 2935449: __enable_if_t<__is_swappable<_Tp>::value> 2935449: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 2935449: noexcept(__is_nothrow_swappable<_Tp>::value); 2935449: 2935449: 2935449: namespace __swappable_details { 2935449: using std::swap; 2935449: 2935449: struct __do_is_swappable_impl 2935449: { 2935449: template(), std::declval<_Tp&>()))> 2935449: static true_type __test(int); 2935449: 2935449: template 2935449: static false_type __test(...); 2935449: }; 2935449: 2935449: struct __do_is_nothrow_swappable_impl 2935449: { 2935449: template 2935449: static __bool_constant< 2935449: noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) 2935449: > __test(int); 2935449: 2935449: template 2935449: static false_type __test(...); 2935449: }; 2935449: 2935449: } 2935449: 2935449: template 2935449: struct __is_swappable_impl 2935449: : public __swappable_details::__do_is_swappable_impl 2935449: { 2935449: using type = decltype(__test<_Tp>(0)); 2935449: }; 2935449: 2935449: template 2935449: struct __is_nothrow_swappable_impl 2935449: : public __swappable_details::__do_is_nothrow_swappable_impl 2935449: { 2935449: using type = decltype(__test<_Tp>(0)); 2935449: }; 2935449: 2935449: template 2935449: struct __is_swappable 2935449: : public __is_swappable_impl<_Tp>::type 2935449: { }; 2935449: 2935449: template 2935449: struct __is_nothrow_swappable 2935449: : public __is_nothrow_swappable_impl<_Tp>::type 2935449: { }; 2935449: # 3149 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: template::value, typename = void> 2935449: struct __is_invocable_impl 2935449: : false_type 2935449: { 2935449: using __nothrow_conv = false_type; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __is_invocable_impl<_Result, _Ret, 2935449: true, 2935449: __void_t> 2935449: : true_type 2935449: { 2935449: using __nothrow_conv = true_type; 2935449: }; 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wctor-dtor-privacy" 2935449: 2935449: template 2935449: struct __is_invocable_impl<_Result, _Ret, 2935449: false, 2935449: __void_t> 2935449: { 2935449: private: 2935449: 2935449: using _Res_t = typename _Result::type; 2935449: 2935449: 2935449: 2935449: static _Res_t _S_get() noexcept; 2935449: 2935449: 2935449: template 2935449: static void _S_conv(__type_identity_t<_Tp>) noexcept; 2935449: 2935449: 2935449: template(_S_get())), 2935449: typename = decltype(_S_conv<_Tp>(_S_get())), 2935449: 2935449: bool _Dangle = __reference_converts_from_temporary(_Tp, _Res_t) 2935449: 2935449: 2935449: 2935449: > 2935449: static __bool_constant<_Nothrow && !_Dangle> 2935449: _S_test(int); 2935449: 2935449: template 2935449: static false_type 2935449: _S_test(...); 2935449: 2935449: public: 2935449: 2935449: using type = decltype(_S_test<_Ret, true>(1)); 2935449: 2935449: 2935449: using __nothrow_conv = decltype(_S_test<_Ret>(1)); 2935449: }; 2935449: #pragma GCC diagnostic pop 2935449: 2935449: template 2935449: struct __is_invocable 2935449: : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type 2935449: { }; 2935449: 2935449: template 2935449: constexpr bool __call_is_nt(__invoke_memfun_ref) 2935449: { 2935449: using _Up = typename __inv_unwrap<_Tp>::type; 2935449: return noexcept((std::declval<_Up>().*std::declval<_Fn>())( 2935449: std::declval<_Args>()...)); 2935449: } 2935449: 2935449: template 2935449: constexpr bool __call_is_nt(__invoke_memfun_deref) 2935449: { 2935449: return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( 2935449: std::declval<_Args>()...)); 2935449: } 2935449: 2935449: template 2935449: constexpr bool __call_is_nt(__invoke_memobj_ref) 2935449: { 2935449: using _Up = typename __inv_unwrap<_Tp>::type; 2935449: return noexcept(std::declval<_Up>().*std::declval<_Fn>()); 2935449: } 2935449: 2935449: template 2935449: constexpr bool __call_is_nt(__invoke_memobj_deref) 2935449: { 2935449: return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); 2935449: } 2935449: 2935449: template 2935449: constexpr bool __call_is_nt(__invoke_other) 2935449: { 2935449: return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); 2935449: } 2935449: 2935449: template 2935449: struct __call_is_nothrow 2935449: : __bool_constant< 2935449: std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) 2935449: > 2935449: { }; 2935449: 2935449: template 2935449: using __call_is_nothrow_ 2935449: = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; 2935449: 2935449: 2935449: template 2935449: struct __is_nothrow_invocable 2935449: : __and_<__is_invocable<_Fn, _Args...>, 2935449: __call_is_nothrow_<_Fn, _Args...>>::type 2935449: { }; 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wctor-dtor-privacy" 2935449: struct __nonesuchbase {}; 2935449: struct __nonesuch : private __nonesuchbase { 2935449: ~__nonesuch() = delete; 2935449: __nonesuch(__nonesuch const&) = delete; 2935449: void operator=(__nonesuch const&) = delete; 2935449: }; 2935449: #pragma GCC diagnostic pop 2935449: # 4191 "/usr/arm-linux-gnueabi/include/c++/15/type_traits" 3 2935449: 2935449: } 2935449: } 2935449: # 53 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 2 3 2935449: # 66 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 3 2935449: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: # 70 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wstringop-overflow" 2935449: #pragma GCC diagnostic ignored "-Wstringop-overread" 2935449: #pragma GCC diagnostic ignored "-Warray-bounds" 2935449: # 85 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 3 2935449: template 2935449: struct _Char_types 2935449: { 2935449: typedef unsigned long int_type; 2935449: 2935449: typedef std::streampos pos_type; 2935449: typedef std::streamoff off_type; 2935449: typedef std::mbstate_t state_type; 2935449: 2935449: }; 2935449: # 112 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 3 2935449: template 2935449: struct char_traits 2935449: { 2935449: typedef _CharT char_type; 2935449: typedef typename _Char_types<_CharT>::int_type int_type; 2935449: 2935449: typedef typename _Char_types<_CharT>::pos_type pos_type; 2935449: typedef typename _Char_types<_CharT>::off_type off_type; 2935449: typedef typename _Char_types<_CharT>::state_type state_type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static void 2935449: assign(char_type& __c1, const char_type& __c2) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __c1 = __c2; 2935449: } 2935449: 2935449: static constexpr bool 2935449: eq(const char_type& __c1, const char_type& __c2) 2935449: { return __c1 == __c2; } 2935449: 2935449: static constexpr bool 2935449: lt(const char_type& __c1, const char_type& __c2) 2935449: { return __c1 < __c2; } 2935449: 2935449: static int 2935449: compare(const char_type* __s1, const char_type* __s2, std::size_t __n); 2935449: 2935449: static std::size_t 2935449: length(const char_type* __s); 2935449: 2935449: static const char_type* 2935449: find(const char_type* __s, std::size_t __n, const char_type& __a); 2935449: 2935449: static char_type* 2935449: move(char_type* __s1, const char_type* __s2, std::size_t __n); 2935449: 2935449: static char_type* 2935449: copy(char_type* __s1, const char_type* __s2, std::size_t __n); 2935449: 2935449: static char_type* 2935449: assign(char_type* __s, std::size_t __n, char_type __a); 2935449: 2935449: static constexpr char_type 2935449: to_char_type(const int_type& __c) 2935449: { return static_cast(__c); } 2935449: 2935449: static constexpr int_type 2935449: to_int_type(const char_type& __c) 2935449: { return static_cast(__c); } 2935449: 2935449: static constexpr bool 2935449: eq_int_type(const int_type& __c1, const int_type& __c2) 2935449: { return __c1 == __c2; } 2935449: 2935449: 2935449: static constexpr int_type 2935449: eof() 2935449: { return static_cast(-1); } 2935449: 2935449: static constexpr int_type 2935449: not_eof(const int_type& __c) 2935449: { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } 2935449: 2935449: }; 2935449: 2935449: template 2935449: int 2935449: char_traits<_CharT>:: 2935449: compare(const char_type* __s1, const char_type* __s2, std::size_t __n) 2935449: { 2935449: for (std::size_t __i = 0; __i < __n; ++__i) 2935449: if (lt(__s1[__i], __s2[__i])) 2935449: return -1; 2935449: else if (lt(__s2[__i], __s1[__i])) 2935449: return 1; 2935449: return 0; 2935449: } 2935449: 2935449: template 2935449: std::size_t 2935449: char_traits<_CharT>:: 2935449: length(const char_type* __p) 2935449: { 2935449: std::size_t __i = 0; 2935449: while (!eq(__p[__i], char_type())) 2935449: ++__i; 2935449: return __i; 2935449: } 2935449: 2935449: template 2935449: const typename char_traits<_CharT>::char_type* 2935449: char_traits<_CharT>:: 2935449: find(const char_type* __s, std::size_t __n, const char_type& __a) 2935449: { 2935449: for (std::size_t __i = 0; __i < __n; ++__i) 2935449: if (eq(__s[__i], __a)) 2935449: return __s + __i; 2935449: return 0; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename char_traits<_CharT>::char_type* 2935449: char_traits<_CharT>:: 2935449: move(char_type* __s1, const char_type* __s2, std::size_t __n) 2935449: { 2935449: if (__n == 0) 2935449: return __s1; 2935449: # 248 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 3 2935449: __builtin_memmove(__s1, __s2, __n * sizeof(char_type)); 2935449: return __s1; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename char_traits<_CharT>::char_type* 2935449: char_traits<_CharT>:: 2935449: copy(char_type* __s1, const char_type* __s2, std::size_t __n) 2935449: { 2935449: if (__n == 0) 2935449: return __s1; 2935449: # 268 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 3 2935449: __builtin_memcpy(__s1, __s2, __n * sizeof(char_type)); 2935449: return __s1; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename char_traits<_CharT>::char_type* 2935449: char_traits<_CharT>:: 2935449: assign(char_type* __s, std::size_t __n, char_type __a) 2935449: { 2935449: # 287 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 3 2935449: if (sizeof(_CharT) == 1 && __is_trivial(_CharT)) 2935449: { 2935449: if (__n) 2935449: { 2935449: unsigned char __c; 2935449: __builtin_memcpy(&__c, __builtin_addressof(__a), 1); 2935449: __builtin_memset(__s, __c, __n); 2935449: } 2935449: } 2935449: else 2935449: { 2935449: for (std::size_t __i = 0; __i < __n; ++__i) 2935449: __s[__i] = __a; 2935449: } 2935449: return __s; 2935449: } 2935449: 2935449: 2935449: } 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 324 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 3 2935449: template 2935449: struct char_traits : public __gnu_cxx::char_traits<_CharT> 2935449: { }; 2935449: 2935449: 2935449: 2935449: template<> 2935449: struct char_traits 2935449: { 2935449: typedef char char_type; 2935449: typedef int int_type; 2935449: 2935449: typedef streampos pos_type; 2935449: typedef streamoff off_type; 2935449: typedef mbstate_t state_type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static void 2935449: assign(char_type& __c1, const char_type& __c2) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __c1 = __c2; 2935449: } 2935449: 2935449: static constexpr bool 2935449: eq(const char_type& __c1, const char_type& __c2) noexcept 2935449: { return __c1 == __c2; } 2935449: 2935449: static constexpr bool 2935449: lt(const char_type& __c1, const char_type& __c2) noexcept 2935449: { 2935449: 2935449: return (static_cast(__c1) 2935449: < static_cast(__c2)); 2935449: } 2935449: 2935449: static int 2935449: compare(const char_type* __s1, const char_type* __s2, size_t __n) 2935449: { 2935449: if (__n == 0) 2935449: return 0; 2935449: # 383 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 3 2935449: return __builtin_memcmp(__s1, __s2, __n); 2935449: } 2935449: 2935449: static size_t 2935449: length(const char_type* __s) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: return __builtin_strlen(__s); 2935449: } 2935449: 2935449: static const char_type* 2935449: find(const char_type* __s, size_t __n, const char_type& __a) 2935449: { 2935449: if (__n == 0) 2935449: return 0; 2935449: 2935449: 2935449: 2935449: 2935449: return static_cast(__builtin_memchr(__s, __a, __n)); 2935449: } 2935449: 2935449: static char_type* 2935449: move(char_type* __s1, const char_type* __s2, size_t __n) 2935449: { 2935449: if (__n == 0) 2935449: return __s1; 2935449: 2935449: 2935449: 2935449: 2935449: return static_cast(__builtin_memmove(__s1, __s2, __n)); 2935449: } 2935449: 2935449: static char_type* 2935449: copy(char_type* __s1, const char_type* __s2, size_t __n) 2935449: { 2935449: if (__n == 0) 2935449: return __s1; 2935449: 2935449: 2935449: 2935449: 2935449: return static_cast(__builtin_memcpy(__s1, __s2, __n)); 2935449: } 2935449: 2935449: static char_type* 2935449: assign(char_type* __s, size_t __n, char_type __a) 2935449: { 2935449: if (__n == 0) 2935449: return __s; 2935449: 2935449: 2935449: 2935449: 2935449: return static_cast(__builtin_memset(__s, __a, __n)); 2935449: } 2935449: 2935449: static constexpr char_type 2935449: to_char_type(const int_type& __c) noexcept 2935449: { return static_cast(__c); } 2935449: 2935449: 2935449: 2935449: static constexpr int_type 2935449: to_int_type(const char_type& __c) noexcept 2935449: { return static_cast(static_cast(__c)); } 2935449: 2935449: static constexpr bool 2935449: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 2935449: { return __c1 == __c2; } 2935449: 2935449: 2935449: static constexpr int_type 2935449: eof() noexcept 2935449: { return static_cast(-1); } 2935449: 2935449: static constexpr int_type 2935449: not_eof(const int_type& __c) noexcept 2935449: { return (__c == eof()) ? 0 : __c; } 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template<> 2935449: struct char_traits 2935449: { 2935449: typedef wchar_t char_type; 2935449: typedef wint_t int_type; 2935449: 2935449: typedef streamoff off_type; 2935449: typedef wstreampos pos_type; 2935449: typedef mbstate_t state_type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static void 2935449: assign(char_type& __c1, const char_type& __c2) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __c1 = __c2; 2935449: } 2935449: 2935449: static constexpr bool 2935449: eq(const char_type& __c1, const char_type& __c2) noexcept 2935449: { return __c1 == __c2; } 2935449: 2935449: static constexpr bool 2935449: lt(const char_type& __c1, const char_type& __c2) noexcept 2935449: { return __c1 < __c2; } 2935449: 2935449: static int 2935449: compare(const char_type* __s1, const char_type* __s2, size_t __n) 2935449: { 2935449: if (__n == 0) 2935449: return 0; 2935449: 2935449: 2935449: 2935449: 2935449: return wmemcmp(__s1, __s2, __n); 2935449: } 2935449: 2935449: static size_t 2935449: length(const char_type* __s) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: return wcslen(__s); 2935449: } 2935449: 2935449: static const char_type* 2935449: find(const char_type* __s, size_t __n, const char_type& __a) 2935449: { 2935449: if (__n == 0) 2935449: return 0; 2935449: 2935449: 2935449: 2935449: 2935449: return wmemchr(__s, __a, __n); 2935449: } 2935449: 2935449: static char_type* 2935449: move(char_type* __s1, const char_type* __s2, size_t __n) 2935449: { 2935449: if (__n == 0) 2935449: return __s1; 2935449: 2935449: 2935449: 2935449: 2935449: return wmemmove(__s1, __s2, __n); 2935449: } 2935449: 2935449: static char_type* 2935449: copy(char_type* __s1, const char_type* __s2, size_t __n) 2935449: { 2935449: if (__n == 0) 2935449: return __s1; 2935449: 2935449: 2935449: 2935449: 2935449: return wmemcpy(__s1, __s2, __n); 2935449: } 2935449: 2935449: static char_type* 2935449: assign(char_type* __s, size_t __n, char_type __a) 2935449: { 2935449: if (__n == 0) 2935449: return __s; 2935449: 2935449: 2935449: 2935449: 2935449: return wmemset(__s, __a, __n); 2935449: } 2935449: 2935449: static constexpr char_type 2935449: to_char_type(const int_type& __c) noexcept 2935449: { return char_type(__c); } 2935449: 2935449: static constexpr int_type 2935449: to_int_type(const char_type& __c) noexcept 2935449: { return int_type(__c); } 2935449: 2935449: static constexpr bool 2935449: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 2935449: { return __c1 == __c2; } 2935449: 2935449: 2935449: static constexpr int_type 2935449: eof() noexcept 2935449: { return static_cast((0xffffffffu)); } 2935449: 2935449: static constexpr int_type 2935449: not_eof(const int_type& __c) noexcept 2935449: { return eq_int_type(__c, eof()) ? 0 : __c; } 2935449: 2935449: }; 2935449: # 731 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 3 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: template<> 2935449: struct char_traits 2935449: { 2935449: typedef char16_t char_type; 2935449: 2935449: typedef short unsigned int int_type; 2935449: 2935449: 2935449: 2935449: 2935449: typedef streamoff off_type; 2935449: typedef u16streampos pos_type; 2935449: typedef mbstate_t state_type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static void 2935449: assign(char_type& __c1, const char_type& __c2) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __c1 = __c2; 2935449: } 2935449: 2935449: static constexpr bool 2935449: eq(const char_type& __c1, const char_type& __c2) noexcept 2935449: { return __c1 == __c2; } 2935449: 2935449: static constexpr bool 2935449: lt(const char_type& __c1, const char_type& __c2) noexcept 2935449: { return __c1 < __c2; } 2935449: 2935449: static int 2935449: compare(const char_type* __s1, const char_type* __s2, size_t __n) 2935449: { 2935449: for (size_t __i = 0; __i < __n; ++__i) 2935449: if (lt(__s1[__i], __s2[__i])) 2935449: return -1; 2935449: else if (lt(__s2[__i], __s1[__i])) 2935449: return 1; 2935449: return 0; 2935449: } 2935449: 2935449: static size_t 2935449: length(const char_type* __s) 2935449: { 2935449: size_t __i = 0; 2935449: while (!eq(__s[__i], char_type())) 2935449: ++__i; 2935449: return __i; 2935449: } 2935449: 2935449: static const char_type* 2935449: find(const char_type* __s, size_t __n, const char_type& __a) 2935449: { 2935449: for (size_t __i = 0; __i < __n; ++__i) 2935449: if (eq(__s[__i], __a)) 2935449: return __s + __i; 2935449: return 0; 2935449: } 2935449: 2935449: static char_type* 2935449: move(char_type* __s1, const char_type* __s2, size_t __n) 2935449: { 2935449: if (__n == 0) 2935449: return __s1; 2935449: 2935449: 2935449: 2935449: 2935449: return (static_cast 2935449: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 2935449: } 2935449: 2935449: static char_type* 2935449: copy(char_type* __s1, const char_type* __s2, size_t __n) 2935449: { 2935449: if (__n == 0) 2935449: return __s1; 2935449: 2935449: 2935449: 2935449: 2935449: return (static_cast 2935449: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 2935449: } 2935449: 2935449: static char_type* 2935449: assign(char_type* __s, size_t __n, char_type __a) 2935449: { 2935449: for (size_t __i = 0; __i < __n; ++__i) 2935449: assign(__s[__i], __a); 2935449: return __s; 2935449: } 2935449: 2935449: static constexpr char_type 2935449: to_char_type(const int_type& __c) noexcept 2935449: { return char_type(__c); } 2935449: 2935449: static constexpr bool 2935449: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 2935449: { return __c1 == __c2; } 2935449: 2935449: 2935449: static constexpr int_type 2935449: to_int_type(const char_type& __c) noexcept 2935449: { return __c == eof() ? int_type(0xfffd) : int_type(__c); } 2935449: 2935449: static constexpr int_type 2935449: eof() noexcept 2935449: { return static_cast(-1); } 2935449: 2935449: static constexpr int_type 2935449: not_eof(const int_type& __c) noexcept 2935449: { return eq_int_type(__c, eof()) ? 0 : __c; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: template<> 2935449: struct char_traits 2935449: { 2935449: typedef char32_t char_type; 2935449: 2935449: typedef unsigned int int_type; 2935449: 2935449: 2935449: 2935449: 2935449: typedef streamoff off_type; 2935449: typedef u32streampos pos_type; 2935449: typedef mbstate_t state_type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static void 2935449: assign(char_type& __c1, const char_type& __c2) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __c1 = __c2; 2935449: } 2935449: 2935449: static constexpr bool 2935449: eq(const char_type& __c1, const char_type& __c2) noexcept 2935449: { return __c1 == __c2; } 2935449: 2935449: static constexpr bool 2935449: lt(const char_type& __c1, const char_type& __c2) noexcept 2935449: { return __c1 < __c2; } 2935449: 2935449: static int 2935449: compare(const char_type* __s1, const char_type* __s2, size_t __n) 2935449: { 2935449: for (size_t __i = 0; __i < __n; ++__i) 2935449: if (lt(__s1[__i], __s2[__i])) 2935449: return -1; 2935449: else if (lt(__s2[__i], __s1[__i])) 2935449: return 1; 2935449: return 0; 2935449: } 2935449: 2935449: static size_t 2935449: length(const char_type* __s) 2935449: { 2935449: size_t __i = 0; 2935449: while (!eq(__s[__i], char_type())) 2935449: ++__i; 2935449: return __i; 2935449: } 2935449: 2935449: static const char_type* 2935449: find(const char_type* __s, size_t __n, const char_type& __a) 2935449: { 2935449: for (size_t __i = 0; __i < __n; ++__i) 2935449: if (eq(__s[__i], __a)) 2935449: return __s + __i; 2935449: return 0; 2935449: } 2935449: 2935449: static char_type* 2935449: move(char_type* __s1, const char_type* __s2, size_t __n) 2935449: { 2935449: if (__n == 0) 2935449: return __s1; 2935449: 2935449: 2935449: 2935449: 2935449: return (static_cast 2935449: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 2935449: } 2935449: 2935449: static char_type* 2935449: copy(char_type* __s1, const char_type* __s2, size_t __n) 2935449: { 2935449: if (__n == 0) 2935449: return __s1; 2935449: 2935449: 2935449: 2935449: 2935449: return (static_cast 2935449: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 2935449: } 2935449: 2935449: static char_type* 2935449: assign(char_type* __s, size_t __n, char_type __a) 2935449: { 2935449: for (size_t __i = 0; __i < __n; ++__i) 2935449: assign(__s[__i], __a); 2935449: return __s; 2935449: } 2935449: 2935449: static constexpr char_type 2935449: to_char_type(const int_type& __c) noexcept 2935449: { return char_type(__c); } 2935449: 2935449: static constexpr int_type 2935449: to_int_type(const char_type& __c) noexcept 2935449: { return int_type(__c); } 2935449: 2935449: static constexpr bool 2935449: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 2935449: { return __c1 == __c2; } 2935449: 2935449: 2935449: static constexpr int_type 2935449: eof() noexcept 2935449: { return static_cast(-1); } 2935449: 2935449: static constexpr int_type 2935449: not_eof(const int_type& __c) noexcept 2935449: { return eq_int_type(__c, eof()) ? 0 : __c; } 2935449: 2935449: }; 2935449: # 1009 "/usr/arm-linux-gnueabi/include/c++/15/bits/char_traits.h" 3 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: } 2935449: # 45 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/allocator.h" 1 3 2935449: # 46 "/usr/arm-linux-gnueabi/include/c++/15/bits/allocator.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++allocator.h" 1 3 2935449: # 33 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++allocator.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/new_allocator.h" 1 3 2935449: # 34 "/usr/arm-linux-gnueabi/include/c++/15/bits/new_allocator.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/new" 1 3 2935449: # 43 "/usr/arm-linux-gnueabi/include/c++/15/new" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/exception.h" 1 3 2935449: # 40 "/usr/arm-linux-gnueabi/include/c++/15/bits/exception.h" 3 2935449: extern "C++" { 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: # 61 "/usr/arm-linux-gnueabi/include/c++/15/bits/exception.h" 3 2935449: class exception 2935449: { 2935449: public: 2935449: exception() noexcept { } 2935449: virtual ~exception() noexcept; 2935449: 2935449: exception(const exception&) = default; 2935449: exception& operator=(const exception&) = default; 2935449: exception(exception&&) = default; 2935449: exception& operator=(exception&&) = default; 2935449: 2935449: 2935449: 2935449: 2935449: virtual const char* 2935449: what() const noexcept; 2935449: }; 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: } 2935449: # 44 "/usr/arm-linux-gnueabi/include/c++/15/new" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 50 "/usr/arm-linux-gnueabi/include/c++/15/new" 2 3 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++11-extensions" 2935449: 2935449: #pragma GCC visibility push(default) 2935449: 2935449: extern "C++" { 2935449: 2935449: namespace std 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: class bad_alloc : public exception 2935449: { 2935449: public: 2935449: bad_alloc() throw() { } 2935449: 2935449: 2935449: bad_alloc(const bad_alloc&) = default; 2935449: bad_alloc& operator=(const bad_alloc&) = default; 2935449: 2935449: 2935449: 2935449: 2935449: virtual ~bad_alloc() throw(); 2935449: 2935449: 2935449: virtual const char* what() const throw(); 2935449: }; 2935449: 2935449: 2935449: class bad_array_new_length : public bad_alloc 2935449: { 2935449: public: 2935449: bad_array_new_length() throw() { } 2935449: 2935449: 2935449: 2935449: virtual ~bad_array_new_length() throw(); 2935449: 2935449: 2935449: virtual const char* what() const throw(); 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct nothrow_t 2935449: { 2935449: 2935449: explicit nothrow_t() = default; 2935449: 2935449: }; 2935449: 2935449: extern const nothrow_t nothrow; 2935449: 2935449: 2935449: 2935449: typedef void (*new_handler)(); 2935449: 2935449: 2935449: 2935449: new_handler set_new_handler(new_handler) throw(); 2935449: 2935449: 2935449: 2935449: new_handler get_new_handler() noexcept; 2935449: 2935449: } 2935449: # 137 "/usr/arm-linux-gnueabi/include/c++/15/new" 3 2935449: [[__nodiscard__]] void* operator new(std::size_t) 2935449: 2935449: __attribute__((__externally_visible__, __malloc__)); 2935449: [[__nodiscard__]] void* operator new[](std::size_t) 2935449: 2935449: __attribute__((__externally_visible__, __malloc__)); 2935449: void operator delete(void*) noexcept 2935449: __attribute__((__externally_visible__)); 2935449: void operator delete[](void*) noexcept 2935449: __attribute__((__externally_visible__)); 2935449: # 155 "/usr/arm-linux-gnueabi/include/c++/15/new" 3 2935449: [[__nodiscard__]] void* operator new(std::size_t, const std::nothrow_t&) 2935449: noexcept 2935449: __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); 2935449: [[__nodiscard__]] void* operator new[](std::size_t, const std::nothrow_t&) 2935449: noexcept 2935449: __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); 2935449: void operator delete(void*, const std::nothrow_t&) 2935449: noexcept 2935449: __attribute__((__externally_visible__)); 2935449: void operator delete[](void*, const std::nothrow_t&) 2935449: noexcept 2935449: __attribute__((__externally_visible__)); 2935449: # 205 "/usr/arm-linux-gnueabi/include/c++/15/new" 3 2935449: [[__nodiscard__]] inline 2935449: void* operator new(std::size_t, void* __p) 2935449: noexcept 2935449: { return __p; } 2935449: [[__nodiscard__]] inline 2935449: void* operator new[](std::size_t, void* __p) 2935449: noexcept 2935449: { return __p; } 2935449: 2935449: 2935449: 2935449: 2935449: inline void operator delete (void*, void*) 2935449: noexcept 2935449: { } 2935449: inline void operator delete[](void*, void*) 2935449: noexcept 2935449: { } 2935449: 2935449: } 2935449: 2935449: namespace std 2935449: { 2935449: # 264 "/usr/arm-linux-gnueabi/include/c++/15/new" 3 2935449: } 2935449: 2935449: #pragma GCC visibility pop 2935449: #pragma GCC diagnostic pop 2935449: # 35 "/usr/arm-linux-gnueabi/include/c++/15/bits/new_allocator.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/functexcept.h" 1 3 2935449: # 40 "/usr/arm-linux-gnueabi/include/c++/15/bits/functexcept.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/exception_defines.h" 1 3 2935449: # 41 "/usr/arm-linux-gnueabi/include/c++/15/bits/functexcept.h" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: __throw_bad_exception(void) __attribute__((__noreturn__)); 2935449: 2935449: 2935449: void 2935449: __throw_bad_alloc(void) __attribute__((__noreturn__)); 2935449: 2935449: void 2935449: __throw_bad_array_new_length(void) __attribute__((__noreturn__)); 2935449: 2935449: 2935449: void 2935449: __throw_bad_cast(void) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: void 2935449: __throw_bad_typeid(void) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: 2935449: void 2935449: __throw_logic_error(const char*) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: void 2935449: __throw_domain_error(const char*) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: void 2935449: __throw_invalid_argument(const char*) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: void 2935449: __throw_length_error(const char*) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: void 2935449: __throw_out_of_range(const char*) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: void 2935449: __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__,__cold__)) 2935449: __attribute__((__format__(__gnu_printf__, 1, 2))); 2935449: 2935449: void 2935449: __throw_runtime_error(const char*) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: void 2935449: __throw_range_error(const char*) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: void 2935449: __throw_overflow_error(const char*) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: void 2935449: __throw_underflow_error(const char*) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: 2935449: void 2935449: __throw_ios_failure(const char*) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: void 2935449: __throw_ios_failure(const char*, int) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: 2935449: void 2935449: __throw_system_error(int) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: 2935449: void 2935449: __throw_future_error(int) __attribute__((__noreturn__,__cold__)); 2935449: 2935449: 2935449: void 2935449: __throw_bad_function_call() __attribute__((__noreturn__,__cold__)); 2935449: # 140 "/usr/arm-linux-gnueabi/include/c++/15/bits/functexcept.h" 3 2935449: 2935449: } 2935449: # 36 "/usr/arm-linux-gnueabi/include/c++/15/bits/new_allocator.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/move.h" 1 3 2935449: # 40 "/usr/arm-linux-gnueabi/include/c++/15/bits/move.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: inline constexpr _Tp* 2935449: __addressof(_Tp& __r) noexcept 2935449: { return __builtin_addressof(__r); } 2935449: # 69 "/usr/arm-linux-gnueabi/include/c++/15/bits/move.h" 3 2935449: template 2935449: [[__nodiscard__,__gnu__::__always_inline__]] 2935449: constexpr _Tp&& 2935449: forward(typename std::remove_reference<_Tp>::type& __t) noexcept 2935449: { return static_cast<_Tp&&>(__t); } 2935449: # 82 "/usr/arm-linux-gnueabi/include/c++/15/bits/move.h" 3 2935449: template 2935449: [[__nodiscard__,__gnu__::__always_inline__]] 2935449: constexpr _Tp&& 2935449: forward(typename std::remove_reference<_Tp>::type&& __t) noexcept 2935449: { 2935449: static_assert(!std::is_lvalue_reference<_Tp>::value, 2935449: "std::forward must not be used to convert an rvalue to an lvalue"); 2935449: return static_cast<_Tp&&>(__t); 2935449: } 2935449: # 135 "/usr/arm-linux-gnueabi/include/c++/15/bits/move.h" 3 2935449: template 2935449: [[__nodiscard__,__gnu__::__always_inline__]] 2935449: constexpr typename std::remove_reference<_Tp>::type&& 2935449: move(_Tp&& __t) noexcept 2935449: { return static_cast::type&&>(__t); } 2935449: 2935449: 2935449: template 2935449: struct __move_if_noexcept_cond 2935449: : public __and_<__not_>, 2935449: is_copy_constructible<_Tp>>::type { }; 2935449: # 156 "/usr/arm-linux-gnueabi/include/c++/15/bits/move.h" 3 2935449: template 2935449: [[__nodiscard__,__gnu__::__always_inline__]] 2935449: constexpr 2935449: __conditional_t<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&> 2935449: move_if_noexcept(_Tp& __x) noexcept 2935449: { return std::move(__x); } 2935449: # 173 "/usr/arm-linux-gnueabi/include/c++/15/bits/move.h" 3 2935449: template 2935449: [[__nodiscard__,__gnu__::__always_inline__]] 2935449: inline _Tp* 2935449: addressof(_Tp& __r) noexcept 2935449: { return std::__addressof(__r); } 2935449: 2935449: 2935449: 2935449: template 2935449: const _Tp* addressof(const _Tp&&) = delete; 2935449: 2935449: 2935449: template 2935449: 2935449: inline _Tp 2935449: __exchange(_Tp& __obj, _Up&& __new_val) 2935449: { 2935449: _Tp __old_val = std::move(__obj); 2935449: __obj = std::forward<_Up>(__new_val); 2935449: return __old_val; 2935449: } 2935449: # 217 "/usr/arm-linux-gnueabi/include/c++/15/bits/move.h" 3 2935449: template 2935449: 2935449: inline 2935449: 2935449: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 2935449: is_move_constructible<_Tp>, 2935449: is_move_assignable<_Tp>>::value>::type 2935449: 2935449: 2935449: 2935449: swap(_Tp& __a, _Tp& __b) 2935449: noexcept(__and_, is_nothrow_move_assignable<_Tp>>::value) 2935449: 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: _Tp __tmp = std::move(__a); 2935449: __a = std::move(__b); 2935449: __b = std::move(__tmp); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: inline 2935449: 2935449: typename enable_if<__is_swappable<_Tp>::value>::type 2935449: 2935449: 2935449: 2935449: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 2935449: noexcept(__is_nothrow_swappable<_Tp>::value) 2935449: { 2935449: for (size_t __n = 0; __n < _Nm; ++__n) 2935449: swap(__a[__n], __b[__n]); 2935449: } 2935449: 2935449: 2935449: 2935449: } 2935449: # 37 "/usr/arm-linux-gnueabi/include/c++/15/bits/new_allocator.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 62 "/usr/arm-linux-gnueabi/include/c++/15/bits/new_allocator.h" 3 2935449: template 2935449: class __new_allocator 2935449: { 2935449: public: 2935449: typedef _Tp value_type; 2935449: typedef std::size_t size_type; 2935449: typedef std::ptrdiff_t difference_type; 2935449: 2935449: typedef _Tp* pointer; 2935449: typedef const _Tp* const_pointer; 2935449: typedef _Tp& reference; 2935449: typedef const _Tp& const_reference; 2935449: 2935449: template 2935449: struct rebind 2935449: { typedef __new_allocator<_Tp1> other; }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef std::true_type propagate_on_container_move_assignment; 2935449: 2935449: 2935449: __attribute__((__always_inline__)) 2935449: 2935449: __new_allocator() noexcept { } 2935449: 2935449: __attribute__((__always_inline__)) 2935449: 2935449: __new_allocator(const __new_allocator&) noexcept { } 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: __new_allocator(const __new_allocator<_Tp1>&) noexcept { } 2935449: 2935449: 2935449: __new_allocator& operator=(const __new_allocator&) = default; 2935449: 2935449: 2935449: 2935449: ~__new_allocator() noexcept { } 2935449: 2935449: pointer 2935449: address(reference __x) const noexcept 2935449: { return std::__addressof(__x); } 2935449: 2935449: const_pointer 2935449: address(const_reference __x) const noexcept 2935449: { return std::__addressof(__x); } 2935449: # 125 "/usr/arm-linux-gnueabi/include/c++/15/bits/new_allocator.h" 3 2935449: [[__nodiscard__]] _Tp* 2935449: allocate(size_type __n, const void* = static_cast(0)) 2935449: { 2935449: 2935449: 2935449: 2935449: static_assert(sizeof(_Tp) != 0, "cannot allocate incomplete types"); 2935449: 2935449: 2935449: if (__builtin_expect(__n > this->_M_max_size(), false)) 2935449: { 2935449: 2935449: 2935449: if (__n > (std::size_t(-1) / sizeof(_Tp))) 2935449: std::__throw_bad_array_new_length(); 2935449: std::__throw_bad_alloc(); 2935449: } 2935449: # 151 "/usr/arm-linux-gnueabi/include/c++/15/bits/new_allocator.h" 3 2935449: return static_cast<_Tp*>(__builtin_operator_new(__n * sizeof(_Tp))); 2935449: } 2935449: 2935449: 2935449: void 2935449: deallocate(_Tp* __p, size_type __n __attribute__ ((__unused__))) 2935449: { 2935449: # 172 "/usr/arm-linux-gnueabi/include/c++/15/bits/new_allocator.h" 3 2935449: __builtin_operator_delete((__p)); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((__always_inline__)) 2935449: size_type 2935449: max_size() const noexcept 2935449: { return _M_max_size(); } 2935449: 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: void 2935449: construct(_Up* __p, _Args&&... __args) 2935449: noexcept(__is_nothrow_new_constructible<_Up, _Args...>) 2935449: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: void 2935449: destroy(_Up* __p) 2935449: noexcept(std::is_nothrow_destructible<_Up>::value) 2935449: { __p->~_Up(); } 2935449: # 213 "/usr/arm-linux-gnueabi/include/c++/15/bits/new_allocator.h" 3 2935449: template 2935449: friend __attribute__((__always_inline__)) bool 2935449: operator==(const __new_allocator&, const __new_allocator<_Up>&) 2935449: noexcept 2935449: { return true; } 2935449: 2935449: 2935449: template 2935449: friend __attribute__((__always_inline__)) bool 2935449: operator!=(const __new_allocator&, const __new_allocator<_Up>&) 2935449: noexcept 2935449: { return false; } 2935449: 2935449: 2935449: private: 2935449: __attribute__((__always_inline__)) 2935449: constexpr size_type 2935449: _M_max_size() const noexcept 2935449: { 2935449: 2935449: return std::size_t(0x7fffffff) / sizeof(_Tp); 2935449: 2935449: 2935449: 2935449: } 2935449: }; 2935449: 2935449: 2935449: } 2935449: # 34 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++allocator.h" 2 3 2935449: 2935449: 2935449: namespace std 2935449: { 2935449: # 46 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++allocator.h" 3 2935449: template 2935449: using __allocator_base = __new_allocator<_Tp>; 2935449: } 2935449: # 47 "/usr/arm-linux-gnueabi/include/c++/15/bits/allocator.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++11-extensions" 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 75 "/usr/arm-linux-gnueabi/include/c++/15/bits/allocator.h" 3 2935449: template<> 2935449: class allocator 2935449: { 2935449: public: 2935449: typedef void value_type; 2935449: typedef size_t size_type; 2935449: typedef ptrdiff_t difference_type; 2935449: 2935449: 2935449: 2935449: typedef void* pointer; 2935449: typedef const void* const_pointer; 2935449: 2935449: template 2935449: struct rebind 2935449: { typedef allocator<_Tp1> other; }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using propagate_on_container_move_assignment = true_type; 2935449: 2935449: 2935449: using is_always_equal 2935449: 2935449: = true_type; 2935449: # 120 "/usr/arm-linux-gnueabi/include/c++/15/bits/allocator.h" 3 2935449: }; 2935449: # 132 "/usr/arm-linux-gnueabi/include/c++/15/bits/allocator.h" 3 2935449: template 2935449: class allocator : public __allocator_base<_Tp> 2935449: { 2935449: public: 2935449: typedef _Tp value_type; 2935449: typedef size_t size_type; 2935449: typedef ptrdiff_t difference_type; 2935449: 2935449: 2935449: 2935449: typedef _Tp* pointer; 2935449: typedef const _Tp* const_pointer; 2935449: typedef _Tp& reference; 2935449: typedef const _Tp& const_reference; 2935449: 2935449: template 2935449: struct rebind 2935449: { typedef allocator<_Tp1> other; }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using propagate_on_container_move_assignment = true_type; 2935449: 2935449: 2935449: using is_always_equal 2935449: 2935449: = true_type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((__always_inline__)) 2935449: 2935449: allocator() noexcept { } 2935449: 2935449: __attribute__((__always_inline__)) 2935449: 2935449: allocator(const allocator& __a) noexcept 2935449: : __allocator_base<_Tp>(__a) { } 2935449: 2935449: 2935449: 2935449: allocator& operator=(const allocator&) = default; 2935449: 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: allocator(const allocator<_Tp1>&) noexcept { } 2935449: 2935449: __attribute__((__always_inline__)) 2935449: 2935449: 2935449: 2935449: ~allocator() noexcept { } 2935449: # 219 "/usr/arm-linux-gnueabi/include/c++/15/bits/allocator.h" 3 2935449: friend __attribute__((__always_inline__)) 2935449: bool 2935449: operator==(const allocator&, const allocator&) noexcept 2935449: { return true; } 2935449: 2935449: 2935449: friend __attribute__((__always_inline__)) 2935449: bool 2935449: operator!=(const allocator&, const allocator&) noexcept 2935449: { return false; } 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: inline bool 2935449: operator==(const allocator<_T1>&, const allocator<_T2>&) 2935449: noexcept 2935449: { return true; } 2935449: 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: inline bool 2935449: operator!=(const allocator<_T1>&, const allocator<_T2>&) 2935449: noexcept 2935449: { return false; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: class allocator 2935449: { 2935449: public: 2935449: typedef _Tp value_type; 2935449: allocator() { } 2935449: template allocator(const allocator<_Up>&) { } 2935449: }; 2935449: 2935449: template 2935449: class allocator 2935449: { 2935449: public: 2935449: typedef _Tp value_type; 2935449: allocator() { } 2935449: template allocator(const allocator<_Up>&) { } 2935449: }; 2935449: 2935449: template 2935449: class allocator 2935449: { 2935449: public: 2935449: typedef _Tp value_type; 2935449: allocator() { } 2935449: template allocator(const allocator<_Up>&) { } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern template class allocator; 2935449: extern template class allocator; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: #pragma GCC diagnostic pop 2935449: # 46 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/cpp_type_traits.h" 1 3 2935449: # 40 "/usr/arm-linux-gnueabi/include/c++/15/bits/cpp_type_traits.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 41 "/usr/arm-linux-gnueabi/include/c++/15/bits/cpp_type_traits.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wlong-long" 2935449: # 76 "/usr/arm-linux-gnueabi/include/c++/15/bits/cpp_type_traits.h" 3 2935449: extern "C++" { 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: struct __true_type { }; 2935449: struct __false_type { }; 2935449: 2935449: template 2935449: struct __truth_type 2935449: { typedef __false_type __type; }; 2935449: 2935449: template<> 2935449: struct __truth_type 2935449: { typedef __true_type __type; }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __traitor 2935449: { 2935449: enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; 2935449: typedef typename __truth_type<__value>::__type __type; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __are_same 2935449: { 2935449: enum { __value = 0 }; 2935449: typedef __false_type __type; 2935449: }; 2935449: 2935449: template 2935449: struct __are_same<_Tp, _Tp> 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 0 }; 2935449: typedef __false_type __type; 2935449: }; 2935449: 2935449: 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: # 176 "/usr/arm-linux-gnueabi/include/c++/15/bits/cpp_type_traits.h" 3 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_integer 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: # 281 "/usr/arm-linux-gnueabi/include/c++/15/bits/cpp_type_traits.h" 3 2935449: template 2935449: struct __is_floating 2935449: { 2935449: enum { __value = 0 }; 2935449: typedef __false_type __type; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct __is_floating 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_floating 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_floating 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: # 358 "/usr/arm-linux-gnueabi/include/c++/15/bits/cpp_type_traits.h" 3 2935449: template 2935449: struct __is_arithmetic 2935449: : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __is_char 2935449: { 2935449: enum { __value = 0 }; 2935449: typedef __false_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_char 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct __is_char 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __is_byte 2935449: { 2935449: enum { __value = 0 }; 2935449: typedef __false_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_byte 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_byte 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __is_byte 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: # 438 "/usr/arm-linux-gnueabi/include/c++/15/bits/cpp_type_traits.h" 3 2935449: template 2935449: struct __is_nonvolatile_trivially_copyable 2935449: { 2935449: enum { __value = __is_trivially_copyable(_Tp) }; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __is_nonvolatile_trivially_copyable 2935449: { 2935449: enum { __value = 0 }; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __memcpyable 2935449: { 2935449: enum { __value = 0 }; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __memcpyable<_Tp*, _Tp*> 2935449: : __is_nonvolatile_trivially_copyable<_Tp> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct __memcpyable<_Tp*, const _Tp*> 2935449: : __is_nonvolatile_trivially_copyable<_Tp> 2935449: { }; 2935449: 2935449: template struct __memcpyable_integer; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __memcpyable<_Tp*, _Up*> 2935449: { 2935449: enum { 2935449: __value = __memcpyable_integer<_Tp>::__width != 0 2935449: && ((int)__memcpyable_integer<_Tp>::__width 2935449: == (int)__memcpyable_integer<_Up>::__width) 2935449: }; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __memcpyable<_Tp*, const _Up*> 2935449: : __memcpyable<_Tp*, _Up*> 2935449: { }; 2935449: 2935449: template 2935449: struct __memcpyable_integer 2935449: { 2935449: enum { 2935449: __width = __is_integer<_Tp>::__value ? (sizeof(_Tp) * 8) : 0 2935449: }; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __memcpyable_integer 2935449: { enum { __width = 0 }; }; 2935449: # 560 "/usr/arm-linux-gnueabi/include/c++/15/bits/cpp_type_traits.h" 3 2935449: template<> 2935449: struct __memcpyable { enum { __value = true }; }; 2935449: template<> 2935449: struct __memcpyable { enum { __value = true }; }; 2935449: # 592 "/usr/arm-linux-gnueabi/include/c++/15/bits/cpp_type_traits.h" 3 2935449: template 2935449: struct __memcmpable 2935449: { 2935449: enum { __value = 0 }; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __memcmpable<_Tp*, _Tp*> 2935449: : __is_nonvolatile_trivially_copyable<_Tp> 2935449: { }; 2935449: 2935449: template 2935449: struct __memcmpable 2935449: : __is_nonvolatile_trivially_copyable<_Tp> 2935449: { }; 2935449: 2935449: template 2935449: struct __memcmpable<_Tp*, const _Tp*> 2935449: : __is_nonvolatile_trivially_copyable<_Tp> 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template::__value 2935449: 2935449: > 2935449: struct __is_memcmp_ordered 2935449: { 2935449: static const bool __value = _Tp(-1) > _Tp(1); 2935449: }; 2935449: 2935449: template 2935449: struct __is_memcmp_ordered<_Tp, false> 2935449: { 2935449: static const bool __value = false; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __is_memcmp_ordered_with 2935449: { 2935449: static const bool __value = __is_memcmp_ordered<_Tp>::__value 2935449: && __is_memcmp_ordered<_Up>::__value; 2935449: }; 2935449: 2935449: template 2935449: struct __is_memcmp_ordered_with<_Tp, _Up, false> 2935449: { 2935449: static const bool __value = false; 2935449: }; 2935449: # 686 "/usr/arm-linux-gnueabi/include/c++/15/bits/cpp_type_traits.h" 3 2935449: template 2935449: struct __is_move_iterator 2935449: { 2935449: enum { __value = 0 }; 2935449: typedef __false_type __type; 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: inline _Iterator 2935449: __miter_base(_Iterator __it) 2935449: { return __it; } 2935449: 2935449: 2935449: } 2935449: } 2935449: 2935449: #pragma GCC diagnostic pop 2935449: # 47 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/localefwd.h" 1 3 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/bits/localefwd.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++locale.h" 1 3 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++locale.h" 3 2935449: 2935449: # 40 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++locale.h" 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/clocale" 1 3 2935449: # 47 "/usr/arm-linux-gnueabi/include/c++/15/clocale" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/locale.h" 1 3 2935449: # 28 "/usr/arm-linux-gnueabi/include/locale.h" 3 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 29 "/usr/arm-linux-gnueabi/include/locale.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/locale.h" 1 3 2935449: # 30 "/usr/arm-linux-gnueabi/include/locale.h" 2 3 2935449: 2935449: extern "C" { 2935449: # 51 "/usr/arm-linux-gnueabi/include/locale.h" 3 2935449: struct lconv 2935449: { 2935449: 2935449: 2935449: char *decimal_point; 2935449: char *thousands_sep; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: char *grouping; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: char *int_curr_symbol; 2935449: char *currency_symbol; 2935449: char *mon_decimal_point; 2935449: char *mon_thousands_sep; 2935449: char *mon_grouping; 2935449: char *positive_sign; 2935449: char *negative_sign; 2935449: char int_frac_digits; 2935449: char frac_digits; 2935449: 2935449: char p_cs_precedes; 2935449: 2935449: char p_sep_by_space; 2935449: 2935449: char n_cs_precedes; 2935449: 2935449: char n_sep_by_space; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: char p_sign_posn; 2935449: char n_sign_posn; 2935449: 2935449: 2935449: char int_p_cs_precedes; 2935449: 2935449: char int_p_sep_by_space; 2935449: 2935449: char int_n_cs_precedes; 2935449: 2935449: char int_n_sep_by_space; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: char int_p_sign_posn; 2935449: char int_n_sign_posn; 2935449: # 118 "/usr/arm-linux-gnueabi/include/locale.h" 3 2935449: }; 2935449: 2935449: 2935449: 2935449: extern char *setlocale (int __category, const char *__locale) noexcept (true); 2935449: 2935449: 2935449: extern struct lconv *localeconv (void) noexcept (true); 2935449: # 141 "/usr/arm-linux-gnueabi/include/locale.h" 3 2935449: extern locale_t newlocale (int __category_mask, const char *__locale, 2935449: locale_t __base) noexcept (true); 2935449: # 176 "/usr/arm-linux-gnueabi/include/locale.h" 3 2935449: extern locale_t duplocale (locale_t __dataset) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern void freelocale (locale_t __dataset) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern locale_t uselocale (locale_t __dataset) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 48 "/usr/arm-linux-gnueabi/include/c++/15/clocale" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: namespace std 2935449: { 2935449: using ::lconv; 2935449: using ::setlocale; 2935449: using ::localeconv; 2935449: } 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++locale.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: extern "C" __typeof(uselocale) __uselocale; 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: typedef __locale_t __c_locale; 2935449: # 73 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++locale.h" 3 2935449: inline int 2935449: __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), 2935449: char* __out, 2935449: const int __size __attribute__ ((__unused__)), 2935449: const char* __fmt, ...) 2935449: { 2935449: 2935449: __c_locale __old = __gnu_cxx::__uselocale(__cloc); 2935449: # 93 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/c++locale.h" 3 2935449: __builtin_va_list __args; 2935449: __builtin_va_start(__args, __fmt); 2935449: 2935449: 2935449: const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); 2935449: 2935449: 2935449: 2935449: 2935449: __builtin_va_end(__args); 2935449: 2935449: 2935449: __gnu_cxx::__uselocale(__old); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: return __ret; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 43 "/usr/arm-linux-gnueabi/include/c++/15/bits/localefwd.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/iosfwd" 1 3 2935449: # 46 "/usr/arm-linux-gnueabi/include/c++/15/iosfwd" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 78 "/usr/arm-linux-gnueabi/include/c++/15/iosfwd" 3 2935449: class ios_base; 2935449: 2935449: template > 2935449: class basic_ios; 2935449: 2935449: template > 2935449: class basic_streambuf; 2935449: 2935449: template > 2935449: class basic_istream; 2935449: 2935449: template > 2935449: class basic_ostream; 2935449: 2935449: template > 2935449: class basic_iostream; 2935449: 2935449: 2935449: namespace __cxx11 { 2935449: 2935449: template, 2935449: typename _Alloc = allocator<_CharT> > 2935449: class basic_stringbuf; 2935449: 2935449: template, 2935449: typename _Alloc = allocator<_CharT> > 2935449: class basic_istringstream; 2935449: 2935449: template, 2935449: typename _Alloc = allocator<_CharT> > 2935449: class basic_ostringstream; 2935449: 2935449: template, 2935449: typename _Alloc = allocator<_CharT> > 2935449: class basic_stringstream; 2935449: 2935449: } 2935449: 2935449: template > 2935449: class basic_filebuf; 2935449: 2935449: template > 2935449: class basic_ifstream; 2935449: 2935449: template > 2935449: class basic_ofstream; 2935449: 2935449: template > 2935449: class basic_fstream; 2935449: 2935449: template > 2935449: class istreambuf_iterator; 2935449: 2935449: template > 2935449: class ostreambuf_iterator; 2935449: 2935449: 2935449: 2935449: typedef basic_ios ios; 2935449: 2935449: 2935449: typedef basic_streambuf streambuf; 2935449: 2935449: 2935449: typedef basic_istream istream; 2935449: 2935449: 2935449: typedef basic_ostream ostream; 2935449: 2935449: 2935449: typedef basic_iostream iostream; 2935449: 2935449: 2935449: typedef basic_stringbuf stringbuf; 2935449: 2935449: 2935449: typedef basic_istringstream istringstream; 2935449: 2935449: 2935449: typedef basic_ostringstream ostringstream; 2935449: 2935449: 2935449: typedef basic_stringstream stringstream; 2935449: 2935449: 2935449: typedef basic_filebuf filebuf; 2935449: 2935449: 2935449: typedef basic_ifstream ifstream; 2935449: 2935449: 2935449: typedef basic_ofstream ofstream; 2935449: 2935449: 2935449: typedef basic_fstream fstream; 2935449: 2935449: 2935449: 2935449: typedef basic_ios wios; 2935449: 2935449: 2935449: typedef basic_streambuf wstreambuf; 2935449: 2935449: 2935449: typedef basic_istream wistream; 2935449: 2935449: 2935449: typedef basic_ostream wostream; 2935449: 2935449: 2935449: typedef basic_iostream wiostream; 2935449: 2935449: 2935449: typedef basic_stringbuf wstringbuf; 2935449: 2935449: 2935449: typedef basic_istringstream wistringstream; 2935449: 2935449: 2935449: typedef basic_ostringstream wostringstream; 2935449: 2935449: 2935449: typedef basic_stringstream wstringstream; 2935449: 2935449: 2935449: typedef basic_filebuf wfilebuf; 2935449: 2935449: 2935449: typedef basic_ifstream wifstream; 2935449: 2935449: 2935449: typedef basic_ofstream wofstream; 2935449: 2935449: 2935449: typedef basic_fstream wfstream; 2935449: # 257 "/usr/arm-linux-gnueabi/include/c++/15/iosfwd" 3 2935449: 2935449: } 2935449: # 44 "/usr/arm-linux-gnueabi/include/c++/15/bits/localefwd.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/cctype" 1 3 2935449: # 47 "/usr/arm-linux-gnueabi/include/c++/15/cctype" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/ctype.h" 1 3 2935449: # 28 "/usr/arm-linux-gnueabi/include/ctype.h" 3 2935449: extern "C" { 2935449: # 39 "/usr/arm-linux-gnueabi/include/ctype.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/endian.h" 1 3 2935449: # 35 "/usr/arm-linux-gnueabi/include/bits/endian.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/endianness.h" 1 3 2935449: # 36 "/usr/arm-linux-gnueabi/include/bits/endian.h" 2 3 2935449: # 40 "/usr/arm-linux-gnueabi/include/ctype.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: enum 2935449: { 2935449: _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 2935449: _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 2935449: _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 2935449: _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 2935449: _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 2935449: _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 2935449: _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 2935449: _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 2935449: _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 2935449: _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 2935449: _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 2935449: _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) 2935449: }; 2935449: # 79 "/usr/arm-linux-gnueabi/include/ctype.h" 3 2935449: extern const unsigned short int **__ctype_b_loc (void) 2935449: noexcept (true) __attribute__ ((__const__)); 2935449: extern const __int32_t **__ctype_tolower_loc (void) 2935449: noexcept (true) __attribute__ ((__const__)); 2935449: extern const __int32_t **__ctype_toupper_loc (void) 2935449: noexcept (true) __attribute__ ((__const__)); 2935449: # 108 "/usr/arm-linux-gnueabi/include/ctype.h" 3 2935449: extern int isalnum (int) noexcept (true); 2935449: extern int isalpha (int) noexcept (true); 2935449: extern int iscntrl (int) noexcept (true); 2935449: extern int isdigit (int) noexcept (true); 2935449: extern int islower (int) noexcept (true); 2935449: extern int isgraph (int) noexcept (true); 2935449: extern int isprint (int) noexcept (true); 2935449: extern int ispunct (int) noexcept (true); 2935449: extern int isspace (int) noexcept (true); 2935449: extern int isupper (int) noexcept (true); 2935449: extern int isxdigit (int) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int tolower (int __c) noexcept (true); 2935449: 2935449: 2935449: extern int toupper (int __c) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: extern int isblank (int) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: extern int isctype (int __c, int __mask) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int isascii (int __c) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int toascii (int __c) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int _toupper (int) noexcept (true); 2935449: extern int _tolower (int) noexcept (true); 2935449: # 251 "/usr/arm-linux-gnueabi/include/ctype.h" 3 2935449: extern int isalnum_l (int, locale_t) noexcept (true); 2935449: extern int isalpha_l (int, locale_t) noexcept (true); 2935449: extern int iscntrl_l (int, locale_t) noexcept (true); 2935449: extern int isdigit_l (int, locale_t) noexcept (true); 2935449: extern int islower_l (int, locale_t) noexcept (true); 2935449: extern int isgraph_l (int, locale_t) noexcept (true); 2935449: extern int isprint_l (int, locale_t) noexcept (true); 2935449: extern int ispunct_l (int, locale_t) noexcept (true); 2935449: extern int isspace_l (int, locale_t) noexcept (true); 2935449: extern int isupper_l (int, locale_t) noexcept (true); 2935449: extern int isxdigit_l (int, locale_t) noexcept (true); 2935449: 2935449: extern int isblank_l (int, locale_t) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int __tolower_l (int __c, locale_t __l) noexcept (true); 2935449: extern int tolower_l (int __c, locale_t __l) noexcept (true); 2935449: 2935449: 2935449: extern int __toupper_l (int __c, locale_t __l) noexcept (true); 2935449: extern int toupper_l (int __c, locale_t __l) noexcept (true); 2935449: # 327 "/usr/arm-linux-gnueabi/include/ctype.h" 3 2935449: } 2935449: # 48 "/usr/arm-linux-gnueabi/include/c++/15/cctype" 2 3 2935449: # 64 "/usr/arm-linux-gnueabi/include/c++/15/cctype" 3 2935449: namespace std 2935449: { 2935449: using ::isalnum; 2935449: using ::isalpha; 2935449: using ::iscntrl; 2935449: using ::isdigit; 2935449: using ::isgraph; 2935449: using ::islower; 2935449: using ::isprint; 2935449: using ::ispunct; 2935449: using ::isspace; 2935449: using ::isupper; 2935449: using ::isxdigit; 2935449: using ::tolower; 2935449: using ::toupper; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: namespace std 2935449: { 2935449: using ::isblank; 2935449: } 2935449: # 45 "/usr/arm-linux-gnueabi/include/c++/15/bits/localefwd.h" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 57 "/usr/arm-linux-gnueabi/include/c++/15/bits/localefwd.h" 3 2935449: class locale; 2935449: 2935449: template 2935449: bool 2935449: has_facet(const locale&) throw(); 2935449: 2935449: template 2935449: const _Facet& 2935449: use_facet(const locale&); 2935449: 2935449: 2935449: template 2935449: bool 2935449: isspace(_CharT, const locale&); 2935449: 2935449: template 2935449: bool 2935449: isprint(_CharT, const locale&); 2935449: 2935449: template 2935449: bool 2935449: iscntrl(_CharT, const locale&); 2935449: 2935449: template 2935449: bool 2935449: isupper(_CharT, const locale&); 2935449: 2935449: template 2935449: bool 2935449: islower(_CharT, const locale&); 2935449: 2935449: template 2935449: bool 2935449: isalpha(_CharT, const locale&); 2935449: 2935449: template 2935449: bool 2935449: isdigit(_CharT, const locale&); 2935449: 2935449: template 2935449: bool 2935449: ispunct(_CharT, const locale&); 2935449: 2935449: template 2935449: bool 2935449: isxdigit(_CharT, const locale&); 2935449: 2935449: template 2935449: bool 2935449: isalnum(_CharT, const locale&); 2935449: 2935449: template 2935449: bool 2935449: isgraph(_CharT, const locale&); 2935449: 2935449: 2935449: template 2935449: bool 2935449: isblank(_CharT, const locale&); 2935449: 2935449: 2935449: template 2935449: _CharT 2935449: toupper(_CharT, const locale&); 2935449: 2935449: template 2935449: _CharT 2935449: tolower(_CharT, const locale&); 2935449: 2935449: 2935449: struct ctype_base; 2935449: template 2935449: class ctype; 2935449: template<> class ctype; 2935449: 2935449: template<> class ctype; 2935449: 2935449: template 2935449: class ctype_byname; 2935449: 2935449: 2935449: class codecvt_base; 2935449: template 2935449: class codecvt; 2935449: template<> class codecvt; 2935449: 2935449: template<> class codecvt; 2935449: 2935449: 2935449: template<> class codecvt; 2935449: template<> class codecvt; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: class codecvt_byname; 2935449: 2935449: 2935449: 2935449: template > 2935449: class num_get; 2935449: template > 2935449: class num_put; 2935449: 2935449: namespace __cxx11 { 2935449: template class numpunct; 2935449: template class numpunct_byname; 2935449: } 2935449: 2935449: namespace __cxx11 { 2935449: 2935449: template 2935449: class collate; 2935449: template 2935449: class collate_byname; 2935449: } 2935449: 2935449: 2935449: class time_base; 2935449: namespace __cxx11 { 2935449: template > 2935449: class time_get; 2935449: template > 2935449: class time_get_byname; 2935449: } 2935449: template > 2935449: class time_put; 2935449: template > 2935449: class time_put_byname; 2935449: 2935449: 2935449: class money_base; 2935449: namespace __cxx11 { 2935449: template > 2935449: class money_get; 2935449: template > 2935449: class money_put; 2935449: } 2935449: namespace __cxx11 { 2935449: template 2935449: class moneypunct; 2935449: template 2935449: class moneypunct_byname; 2935449: } 2935449: 2935449: 2935449: struct messages_base; 2935449: namespace __cxx11 { 2935449: template 2935449: class messages; 2935449: template 2935449: class messages_byname; 2935449: } 2935449: 2935449: 2935449: } 2935449: # 48 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/ostream_insert.h" 1 3 2935449: # 38 "/usr/arm-linux-gnueabi/include/c++/15/bits/ostream_insert.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/cxxabi_forced.h" 1 3 2935449: # 38 "/usr/arm-linux-gnueabi/include/c++/15/bits/cxxabi_forced.h" 3 2935449: #pragma GCC visibility push(default) 2935449: 2935449: 2935449: namespace __cxxabiv1 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: class __forced_unwind 2935449: { 2935449: virtual ~__forced_unwind() throw(); 2935449: 2935449: 2935449: virtual void __pure_dummy() = 0; 2935449: }; 2935449: } 2935449: 2935449: 2935449: #pragma GCC visibility pop 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/bits/ostream_insert.h" 2 3 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++11-extensions" 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: inline void 2935449: __ostream_write(basic_ostream<_CharT, _Traits>& __out, 2935449: const _CharT* __s, streamsize __n) 2935449: { 2935449: typedef basic_ostream<_CharT, _Traits> __ostream_type; 2935449: typedef typename __ostream_type::ios_base __ios_base; 2935449: 2935449: const streamsize __put = __out.rdbuf()->sputn(__s, __n); 2935449: if (__put != __n) 2935449: __out.setstate(__ios_base::badbit); 2935449: } 2935449: 2935449: template 2935449: inline void 2935449: __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) 2935449: { 2935449: typedef basic_ostream<_CharT, _Traits> __ostream_type; 2935449: typedef typename __ostream_type::ios_base __ios_base; 2935449: 2935449: const _CharT __c = __out.fill(); 2935449: for (; __n > 0; --__n) 2935449: { 2935449: const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); 2935449: if (_Traits::eq_int_type(__put, _Traits::eof())) 2935449: { 2935449: __out.setstate(__ios_base::badbit); 2935449: break; 2935449: } 2935449: } 2935449: } 2935449: 2935449: template 2935449: basic_ostream<_CharT, _Traits>& 2935449: __ostream_insert(basic_ostream<_CharT, _Traits>& __out, 2935449: const _CharT* __s, streamsize __n) 2935449: { 2935449: typedef basic_ostream<_CharT, _Traits> __ostream_type; 2935449: typedef typename __ostream_type::ios_base __ios_base; 2935449: 2935449: typename __ostream_type::sentry __cerb(__out); 2935449: if (__cerb) 2935449: { 2935449: if (true) 2935449: { 2935449: const streamsize __w = __out.width(); 2935449: if (__w > __n) 2935449: { 2935449: const bool __left = ((__out.flags() 2935449: & __ios_base::adjustfield) 2935449: == __ios_base::left); 2935449: if (!__left) 2935449: __ostream_fill(__out, __w - __n); 2935449: if (__out.good()) 2935449: __ostream_write(__out, __s, __n); 2935449: if (__left && __out.good()) 2935449: __ostream_fill(__out, __w - __n); 2935449: } 2935449: else 2935449: __ostream_write(__out, __s, __n); 2935449: __out.width(0); 2935449: } 2935449: if (false) 2935449: { 2935449: __out._M_setstate(__ios_base::badbit); 2935449: ; 2935449: } 2935449: if (false) 2935449: { __out._M_setstate(__ios_base::badbit); } 2935449: } 2935449: return __out; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: extern template ostream& __ostream_insert(ostream&, const char*, streamsize); 2935449: 2935449: 2935449: extern template wostream& __ostream_insert(wostream&, const wchar_t*, 2935449: streamsize); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: #pragma GCC diagnostic pop 2935449: # 49 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator_base_funcs.h" 1 3 2935449: # 66 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator_base_funcs.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/concept_check.h" 1 3 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/bits/concept_check.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wvariadic-macros" 2935449: # 86 "/usr/arm-linux-gnueabi/include/c++/15/bits/concept_check.h" 3 2935449: #pragma GCC diagnostic pop 2935449: # 67 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator_base_funcs.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/debug/assertions.h" 1 3 2935449: # 68 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator_base_funcs.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator_base_types.h" 1 3 2935449: # 76 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator_base_types.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 95 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator_base_types.h" 3 2935449: struct input_iterator_tag { }; 2935449: 2935449: 2935449: struct output_iterator_tag { }; 2935449: 2935449: 2935449: struct forward_iterator_tag : public input_iterator_tag { }; 2935449: 2935449: 2935449: 2935449: struct bidirectional_iterator_tag : public forward_iterator_tag { }; 2935449: 2935449: 2935449: 2935449: struct random_access_iterator_tag : public bidirectional_iterator_tag { }; 2935449: # 127 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator_base_types.h" 3 2935449: template 2935449: struct iterator 2935449: { 2935449: 2935449: typedef _Category iterator_category; 2935449: 2935449: typedef _Tp value_type; 2935449: 2935449: typedef _Distance difference_type; 2935449: 2935449: typedef _Pointer pointer; 2935449: 2935449: typedef _Reference reference; 2935449: }; 2935449: # 151 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator_base_types.h" 3 2935449: template 2935449: struct iterator_traits; 2935449: 2935449: 2935449: 2935449: 2935449: template> 2935449: struct __iterator_traits { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __iterator_traits<_Iterator, 2935449: __void_t> 2935449: { 2935449: typedef typename _Iterator::iterator_category iterator_category; 2935449: typedef typename _Iterator::value_type value_type; 2935449: typedef typename _Iterator::difference_type difference_type; 2935449: typedef typename _Iterator::pointer pointer; 2935449: typedef typename _Iterator::reference reference; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct iterator_traits 2935449: : public __iterator_traits<_Iterator> { }; 2935449: # 211 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator_base_types.h" 3 2935449: template 2935449: struct iterator_traits<_Tp*> 2935449: { 2935449: typedef random_access_iterator_tag iterator_category; 2935449: typedef _Tp value_type; 2935449: typedef ptrdiff_t difference_type; 2935449: typedef _Tp* pointer; 2935449: typedef _Tp& reference; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct iterator_traits 2935449: { 2935449: typedef random_access_iterator_tag iterator_category; 2935449: typedef _Tp value_type; 2935449: typedef ptrdiff_t difference_type; 2935449: typedef const _Tp* pointer; 2935449: typedef const _Tp& reference; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: inline constexpr 2935449: typename iterator_traits<_Iter>::iterator_category 2935449: __iterator_category(const _Iter&) 2935449: { return typename iterator_traits<_Iter>::iterator_category(); } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: using __iter_category_t 2935449: = typename iterator_traits<_Iter>::iterator_category; 2935449: 2935449: template 2935449: using _RequireInputIter = 2935449: __enable_if_t, 2935449: input_iterator_tag>::value>; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template> 2935449: struct __is_random_access_iter 2935449: : is_base_of 2935449: { 2935449: typedef is_base_of _Base; 2935449: enum { __value = _Base::value }; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 69 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator_base_funcs.h" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: template struct _List_iterator; 2935449: template struct _List_const_iterator; 2935449: 2935449: 2935449: template 2935449: inline 2935449: typename iterator_traits<_InputIterator>::difference_type 2935449: __distance(_InputIterator __first, _InputIterator __last, 2935449: input_iterator_tag) 2935449: { 2935449: 2935449: 2935449: 2935449: typename iterator_traits<_InputIterator>::difference_type __n = 0; 2935449: while (__first != __last) 2935449: { 2935449: ++__first; 2935449: ++__n; 2935449: } 2935449: return __n; 2935449: } 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: inline 2935449: typename iterator_traits<_RandomAccessIterator>::difference_type 2935449: __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, 2935449: random_access_iterator_tag) 2935449: { 2935449: 2935449: 2935449: 2935449: return __last - __first; 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: ptrdiff_t 2935449: __distance(std::_List_iterator<_Tp>, 2935449: std::_List_iterator<_Tp>, 2935449: input_iterator_tag); 2935449: 2935449: template 2935449: ptrdiff_t 2935449: __distance(std::_List_const_iterator<_Tp>, 2935449: std::_List_const_iterator<_Tp>, 2935449: input_iterator_tag); 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: void 2935449: __distance(_OutputIterator, _OutputIterator, output_iterator_tag) = delete; 2935449: # 146 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator_base_funcs.h" 3 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) 2935449: inline 2935449: typename iterator_traits<_InputIterator>::difference_type 2935449: distance(_InputIterator __first, _InputIterator __last) 2935449: { 2935449: 2935449: return std::__distance(__first, __last, 2935449: std::__iterator_category(__first)); 2935449: } 2935449: 2935449: template 2935449: inline void 2935449: __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) 2935449: { 2935449: 2935449: 2935449: do { if (std::__is_constant_evaluated() && !bool(__n >= 0)) std::__glibcxx_assert_fail(); } while (false); 2935449: while (__n--) 2935449: ++__i; 2935449: } 2935449: 2935449: template 2935449: inline void 2935449: __advance(_BidirectionalIterator& __i, _Distance __n, 2935449: bidirectional_iterator_tag) 2935449: { 2935449: 2935449: 2935449: 2935449: if (__n > 0) 2935449: while (__n--) 2935449: ++__i; 2935449: else 2935449: while (__n++) 2935449: --__i; 2935449: } 2935449: 2935449: template 2935449: inline void 2935449: __advance(_RandomAccessIterator& __i, _Distance __n, 2935449: random_access_iterator_tag) 2935449: { 2935449: 2935449: 2935449: 2935449: if (__builtin_constant_p(__n) && __n == 1) 2935449: ++__i; 2935449: else if (__builtin_constant_p(__n) && __n == -1) 2935449: --__i; 2935449: else 2935449: __i += __n; 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: void 2935449: __advance(_OutputIterator&, _Distance, output_iterator_tag) = delete; 2935449: # 219 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator_base_funcs.h" 3 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: inline void 2935449: advance(_InputIterator& __i, _Distance __n) 2935449: { 2935449: 2935449: typename iterator_traits<_InputIterator>::difference_type __d = __n; 2935449: std::__advance(__i, __d, std::__iterator_category(__i)); 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] [[__gnu__::__always_inline__]] 2935449: inline _InputIterator 2935449: next(_InputIterator __x, typename 2935449: iterator_traits<_InputIterator>::difference_type __n = 1) 2935449: { 2935449: 2935449: 2935449: std::advance(__x, __n); 2935449: return __x; 2935449: } 2935449: 2935449: template 2935449: [[__nodiscard__]] [[__gnu__::__always_inline__]] 2935449: inline _BidirectionalIterator 2935449: prev(_BidirectionalIterator __x, typename 2935449: iterator_traits<_BidirectionalIterator>::difference_type __n = 1) 2935449: { 2935449: 2935449: 2935449: 2935449: std::advance(__x, -__n); 2935449: return __x; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 50 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 1 3 2935449: # 65 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/ext/type_traits.h" 1 3 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/ext/type_traits.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wlong-long" 2935449: 2935449: extern "C++" { 2935449: 2935449: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: template 2935449: struct __enable_if 2935449: { }; 2935449: 2935449: template 2935449: struct __enable_if 2935449: { typedef _Tp __type; }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __conditional_type 2935449: { typedef _Iftrue __type; }; 2935449: 2935449: template 2935449: struct __conditional_type 2935449: { typedef _Iffalse __type; }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __add_unsigned 2935449: { 2935449: private: 2935449: typedef __enable_if::__value, _Tp> __if_type; 2935449: 2935449: public: 2935449: typedef typename __if_type::__type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __add_unsigned 2935449: { typedef unsigned char __type; }; 2935449: 2935449: template<> 2935449: struct __add_unsigned 2935449: { typedef unsigned char __type; }; 2935449: 2935449: template<> 2935449: struct __add_unsigned 2935449: { typedef unsigned short __type; }; 2935449: 2935449: template<> 2935449: struct __add_unsigned 2935449: { typedef unsigned int __type; }; 2935449: 2935449: template<> 2935449: struct __add_unsigned 2935449: { typedef unsigned long __type; }; 2935449: 2935449: template<> 2935449: struct __add_unsigned 2935449: { typedef unsigned long long __type; }; 2935449: 2935449: 2935449: template<> 2935449: struct __add_unsigned; 2935449: 2935449: template<> 2935449: struct __add_unsigned; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __remove_unsigned 2935449: { 2935449: private: 2935449: typedef __enable_if::__value, _Tp> __if_type; 2935449: 2935449: public: 2935449: typedef typename __if_type::__type __type; 2935449: }; 2935449: 2935449: template<> 2935449: struct __remove_unsigned 2935449: { typedef signed char __type; }; 2935449: 2935449: template<> 2935449: struct __remove_unsigned 2935449: { typedef signed char __type; }; 2935449: 2935449: template<> 2935449: struct __remove_unsigned 2935449: { typedef short __type; }; 2935449: 2935449: template<> 2935449: struct __remove_unsigned 2935449: { typedef int __type; }; 2935449: 2935449: template<> 2935449: struct __remove_unsigned 2935449: { typedef long __type; }; 2935449: 2935449: template<> 2935449: struct __remove_unsigned 2935449: { typedef long long __type; }; 2935449: 2935449: 2935449: template<> 2935449: struct __remove_unsigned; 2935449: 2935449: template<> 2935449: struct __remove_unsigned; 2935449: 2935449: 2935449: 2935449: template 2935449: constexpr 2935449: inline bool 2935449: __is_null_pointer(_Type* __ptr) 2935449: { return __ptr == 0; } 2935449: 2935449: template 2935449: constexpr 2935449: inline bool 2935449: __is_null_pointer(_Type) 2935449: { return false; } 2935449: 2935449: 2935449: constexpr bool 2935449: __is_null_pointer(std::nullptr_t) 2935449: { return true; } 2935449: 2935449: 2935449: 2935449: 2935449: template::__value> 2935449: struct __promote 2935449: { typedef double __type; }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __promote<_Tp, false> 2935449: { }; 2935449: 2935449: template<> 2935449: struct __promote 2935449: { typedef long double __type; }; 2935449: 2935449: template<> 2935449: struct __promote 2935449: { typedef double __type; }; 2935449: 2935449: template<> 2935449: struct __promote 2935449: { typedef float __type; }; 2935449: # 246 "/usr/arm-linux-gnueabi/include/c++/15/ext/type_traits.h" 3 2935449: template::__type, 2935449: typename _Up2 = typename __promote<_Up>::__type> 2935449: struct __promote_2 2935449: { 2935449: typedef __typeof__(_Tp2() + _Up2()) __type; 2935449: }; 2935449: 2935449: template::__type, 2935449: typename _Up2 = typename __promote<_Up>::__type, 2935449: typename _Vp2 = typename __promote<_Vp>::__type> 2935449: struct __promote_3 2935449: { 2935449: typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; 2935449: }; 2935449: 2935449: template::__type, 2935449: typename _Up2 = typename __promote<_Up>::__type, 2935449: typename _Vp2 = typename __promote<_Vp>::__type, 2935449: typename _Wp2 = typename __promote<_Wp>::__type> 2935449: struct __promote_4 2935449: { 2935449: typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; 2935449: }; 2935449: 2935449: 2935449: 2935449: } 2935449: } 2935449: 2935449: #pragma GCC diagnostic pop 2935449: # 66 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/ptr_traits.h" 1 3 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/bits/ptr_traits.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: class __undefined; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __get_first_arg 2935449: { using type = __undefined; }; 2935449: 2935449: template class _SomeTemplate, typename _Tp, 2935449: typename... _Types> 2935449: struct __get_first_arg<_SomeTemplate<_Tp, _Types...>> 2935449: { using type = _Tp; }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __replace_first_arg 2935449: { }; 2935449: 2935449: template class _SomeTemplate, typename _Up, 2935449: typename _Tp, typename... _Types> 2935449: struct __replace_first_arg<_SomeTemplate<_Tp, _Types...>, _Up> 2935449: { using type = _SomeTemplate<_Up, _Types...>; }; 2935449: 2935449: 2935449: template 2935449: struct __ptr_traits_elem : __get_first_arg<_Ptr> 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __ptr_traits_elem<_Ptr, __void_t> 2935449: { using type = typename _Ptr::element_type; }; 2935449: 2935449: 2935449: template 2935449: using __ptr_traits_elem_t = typename __ptr_traits_elem<_Ptr>::type; 2935449: 2935449: 2935449: 2935449: 2935449: template::value> 2935449: struct __ptr_traits_ptr_to 2935449: { 2935449: using pointer = _Ptr; 2935449: using element_type = _Elt; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static pointer 2935449: pointer_to(element_type& __r) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: { return pointer::pointer_to(__r); } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __ptr_traits_ptr_to<_Ptr, _Elt, true> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct __ptr_traits_ptr_to<_Tp*, _Tp, false> 2935449: { 2935449: using pointer = _Tp*; 2935449: using element_type = _Tp; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static pointer 2935449: pointer_to(element_type& __r) noexcept 2935449: { return std::addressof(__r); } 2935449: }; 2935449: 2935449: template 2935449: struct __ptr_traits_impl : __ptr_traits_ptr_to<_Ptr, _Elt> 2935449: { 2935449: private: 2935449: template 2935449: using __diff_t = typename _Tp::difference_type; 2935449: 2935449: template 2935449: using __rebind = __type_identity>; 2935449: 2935449: public: 2935449: 2935449: using pointer = _Ptr; 2935449: 2935449: 2935449: using element_type = _Elt; 2935449: 2935449: 2935449: using difference_type = __detected_or_t; 2935449: 2935449: 2935449: template 2935449: using rebind = typename __detected_or_t<__replace_first_arg<_Ptr, _Up>, 2935449: __rebind, _Ptr, _Up>::type; 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __ptr_traits_impl<_Ptr, __undefined> 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct pointer_traits : __ptr_traits_impl<_Ptr, __ptr_traits_elem_t<_Ptr>> 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct pointer_traits<_Tp*> : __ptr_traits_ptr_to<_Tp*, _Tp> 2935449: { 2935449: 2935449: typedef _Tp* pointer; 2935449: 2935449: typedef _Tp element_type; 2935449: 2935449: typedef ptrdiff_t difference_type; 2935449: 2935449: template using rebind = _Up*; 2935449: }; 2935449: 2935449: 2935449: template 2935449: using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; 2935449: 2935449: 2935449: template 2935449: [[__gnu__::__always_inline__]] 2935449: constexpr _Tp* 2935449: __to_address(_Tp* __ptr) noexcept 2935449: { 2935449: static_assert(!std::is_function<_Tp>::value, "std::to_address argument " 2935449: "must not be a function pointer"); 2935449: return __ptr; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: constexpr typename std::pointer_traits<_Ptr>::element_type* 2935449: __to_address(const _Ptr& __ptr) 2935449: { return std::__to_address(__ptr.operator->()); } 2935449: # 268 "/usr/arm-linux-gnueabi/include/c++/15/bits/ptr_traits.h" 3 2935449: 2935449: } 2935449: # 68 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 2 3 2935449: # 85 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 108 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: 2935449: # 108 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: # 130 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: class reverse_iterator 2935449: : public iterator::iterator_category, 2935449: typename iterator_traits<_Iterator>::value_type, 2935449: typename iterator_traits<_Iterator>::difference_type, 2935449: typename iterator_traits<_Iterator>::pointer, 2935449: typename iterator_traits<_Iterator>::reference> 2935449: { 2935449: template 2935449: friend class reverse_iterator; 2935449: # 149 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: protected: 2935449: _Iterator current; 2935449: 2935449: typedef iterator_traits<_Iterator> __traits_type; 2935449: 2935449: public: 2935449: typedef _Iterator iterator_type; 2935449: typedef typename __traits_type::pointer pointer; 2935449: 2935449: typedef typename __traits_type::difference_type difference_type; 2935449: typedef typename __traits_type::reference reference; 2935449: # 180 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: 2935449: reverse_iterator() 2935449: noexcept(noexcept(_Iterator())) 2935449: : current() 2935449: { } 2935449: 2935449: 2935449: 2935449: 2935449: explicit 2935449: reverse_iterator(iterator_type __x) 2935449: noexcept(noexcept(_Iterator(__x))) 2935449: : current(__x) 2935449: { } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: reverse_iterator(const reverse_iterator& __x) 2935449: noexcept(noexcept(_Iterator(__x.current))) 2935449: : current(__x.current) 2935449: { } 2935449: 2935449: 2935449: reverse_iterator& operator=(const reverse_iterator&) = default; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: 2935449: 2935449: 2935449: reverse_iterator(const reverse_iterator<_Iter>& __x) 2935449: noexcept(noexcept(_Iterator(__x.current))) 2935449: : current(__x.current) 2935449: { } 2935449: 2935449: 2935449: template 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: reverse_iterator& 2935449: operator=(const reverse_iterator<_Iter>& __x) 2935449: noexcept(noexcept(current = __x.current)) 2935449: { 2935449: current = __x.current; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: iterator_type 2935449: base() const 2935449: noexcept(noexcept(_Iterator(current))) 2935449: { return current; } 2935449: # 257 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: [[__nodiscard__]] 2935449: reference 2935449: operator*() const 2935449: { 2935449: _Iterator __tmp = current; 2935449: return *--__tmp; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: pointer 2935449: operator->() const 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: 2935449: 2935449: _Iterator __tmp = current; 2935449: --__tmp; 2935449: return _S_to_pointer(__tmp); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: reverse_iterator& 2935449: operator++() 2935449: { 2935449: --current; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: reverse_iterator 2935449: operator++(int) 2935449: { 2935449: reverse_iterator __tmp = *this; 2935449: --current; 2935449: return __tmp; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: reverse_iterator& 2935449: operator--() 2935449: { 2935449: ++current; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: reverse_iterator 2935449: operator--(int) 2935449: { 2935449: reverse_iterator __tmp = *this; 2935449: ++current; 2935449: return __tmp; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: reverse_iterator 2935449: operator+(difference_type __n) const 2935449: { return reverse_iterator(current - __n); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: reverse_iterator& 2935449: operator+=(difference_type __n) 2935449: { 2935449: current -= __n; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: reverse_iterator 2935449: operator-(difference_type __n) const 2935449: { return reverse_iterator(current + __n); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: reverse_iterator& 2935449: operator-=(difference_type __n) 2935449: { 2935449: current += __n; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: reference 2935449: operator[](difference_type __n) const 2935449: { return *(*this + __n); } 2935449: # 417 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: private: 2935449: template 2935449: static _Tp* 2935449: _S_to_pointer(_Tp* __p) 2935449: { return __p; } 2935449: 2935449: template 2935449: static pointer 2935449: _S_to_pointer(_Tp __t) 2935449: { return __t.operator->(); } 2935449: }; 2935449: # 440 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator==(const reverse_iterator<_Iterator>& __x, 2935449: const reverse_iterator<_Iterator>& __y) 2935449: { return __x.base() == __y.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator<(const reverse_iterator<_Iterator>& __x, 2935449: const reverse_iterator<_Iterator>& __y) 2935449: { return __y.base() < __x.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator!=(const reverse_iterator<_Iterator>& __x, 2935449: const reverse_iterator<_Iterator>& __y) 2935449: { return !(__x == __y); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>(const reverse_iterator<_Iterator>& __x, 2935449: const reverse_iterator<_Iterator>& __y) 2935449: { return __y < __x; } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator<=(const reverse_iterator<_Iterator>& __x, 2935449: const reverse_iterator<_Iterator>& __y) 2935449: { return !(__y < __x); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>=(const reverse_iterator<_Iterator>& __x, 2935449: const reverse_iterator<_Iterator>& __y) 2935449: { return !(__x < __y); } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator==(const reverse_iterator<_IteratorL>& __x, 2935449: const reverse_iterator<_IteratorR>& __y) 2935449: { return __x.base() == __y.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator<(const reverse_iterator<_IteratorL>& __x, 2935449: const reverse_iterator<_IteratorR>& __y) 2935449: { return __x.base() > __y.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator!=(const reverse_iterator<_IteratorL>& __x, 2935449: const reverse_iterator<_IteratorR>& __y) 2935449: { return __x.base() != __y.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>(const reverse_iterator<_IteratorL>& __x, 2935449: const reverse_iterator<_IteratorR>& __y) 2935449: { return __x.base() < __y.base(); } 2935449: 2935449: template 2935449: inline bool 2935449: operator<=(const reverse_iterator<_IteratorL>& __x, 2935449: const reverse_iterator<_IteratorR>& __y) 2935449: { return __x.base() >= __y.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>=(const reverse_iterator<_IteratorL>& __x, 2935449: const reverse_iterator<_IteratorR>& __y) 2935449: { return __x.base() <= __y.base(); } 2935449: # 617 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline auto 2935449: operator-(const reverse_iterator<_IteratorL>& __x, 2935449: const reverse_iterator<_IteratorR>& __y) 2935449: -> decltype(__y.base() - __x.base()) 2935449: { return __y.base() - __x.base(); } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline reverse_iterator<_Iterator> 2935449: operator+(typename reverse_iterator<_Iterator>::difference_type __n, 2935449: const reverse_iterator<_Iterator>& __x) 2935449: { return reverse_iterator<_Iterator>(__x.base() - __n); } 2935449: 2935449: 2935449: 2935449: template 2935449: inline reverse_iterator<_Iterator> 2935449: __make_reverse_iterator(_Iterator __i) 2935449: { return reverse_iterator<_Iterator>(__i); } 2935449: # 659 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: struct __is_move_iterator > 2935449: : __is_move_iterator<_Iterator> 2935449: { }; 2935449: # 676 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: class back_insert_iterator 2935449: : public iterator 2935449: { 2935449: protected: 2935449: _Container* container; 2935449: 2935449: public: 2935449: 2935449: typedef _Container container_type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: explicit 2935449: back_insert_iterator(_Container& __x) 2935449: : container(std::__addressof(__x)) { } 2935449: # 714 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: 2935449: back_insert_iterator& 2935449: operator=(const typename _Container::value_type& __value) 2935449: { 2935449: container->push_back(__value); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: back_insert_iterator& 2935449: operator=(typename _Container::value_type&& __value) 2935449: { 2935449: container->push_back(std::move(__value)); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: back_insert_iterator& 2935449: operator*() 2935449: { return *this; } 2935449: 2935449: 2935449: 2935449: back_insert_iterator& 2935449: operator++() 2935449: { return *this; } 2935449: 2935449: 2935449: 2935449: back_insert_iterator 2935449: operator++(int) 2935449: { return *this; } 2935449: }; 2935449: # 761 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline back_insert_iterator<_Container> 2935449: back_inserter(_Container& __x) 2935449: { return back_insert_iterator<_Container>(__x); } 2935449: # 777 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: class front_insert_iterator 2935449: : public iterator 2935449: { 2935449: protected: 2935449: _Container* container; 2935449: 2935449: public: 2935449: 2935449: typedef _Container container_type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: explicit 2935449: front_insert_iterator(_Container& __x) 2935449: : container(std::__addressof(__x)) { } 2935449: # 815 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: 2935449: front_insert_iterator& 2935449: operator=(const typename _Container::value_type& __value) 2935449: { 2935449: container->push_front(__value); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: front_insert_iterator& 2935449: operator=(typename _Container::value_type&& __value) 2935449: { 2935449: container->push_front(std::move(__value)); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: front_insert_iterator& 2935449: operator*() 2935449: { return *this; } 2935449: 2935449: 2935449: 2935449: front_insert_iterator& 2935449: operator++() 2935449: { return *this; } 2935449: 2935449: 2935449: 2935449: front_insert_iterator 2935449: operator++(int) 2935449: { return *this; } 2935449: }; 2935449: # 862 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline front_insert_iterator<_Container> 2935449: front_inserter(_Container& __x) 2935449: { return front_insert_iterator<_Container>(__x); } 2935449: # 882 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: class insert_iterator 2935449: : public iterator 2935449: { 2935449: 2935449: 2935449: 2935449: typedef typename _Container::iterator _Iter; 2935449: 2935449: protected: 2935449: _Container* container; 2935449: _Iter iter; 2935449: 2935449: public: 2935449: 2935449: typedef _Container container_type; 2935449: # 907 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: 2935449: insert_iterator(_Container& __x, _Iter __i) 2935449: : container(std::__addressof(__x)), iter(__i) {} 2935449: # 943 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: 2935449: insert_iterator& 2935449: operator=(const typename _Container::value_type& __value) 2935449: { 2935449: iter = container->insert(iter, __value); 2935449: ++iter; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: insert_iterator& 2935449: operator=(typename _Container::value_type&& __value) 2935449: { 2935449: iter = container->insert(iter, std::move(__value)); 2935449: ++iter; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: insert_iterator& 2935449: operator*() 2935449: { return *this; } 2935449: 2935449: 2935449: 2935449: insert_iterator& 2935449: operator++() 2935449: { return *this; } 2935449: 2935449: 2935449: 2935449: insert_iterator& 2935449: operator++(int) 2935449: { return *this; } 2935449: }; 2935449: 2935449: #pragma GCC diagnostic pop 2935449: # 1002 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline insert_iterator<_Container> 2935449: inserter(_Container& __x, typename _Container::iterator __i) 2935449: { return insert_iterator<_Container>(__x, __i); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 1025 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: class __normal_iterator 2935449: { 2935449: protected: 2935449: _Iterator _M_current; 2935449: 2935449: typedef std::iterator_traits<_Iterator> __traits_type; 2935449: 2935449: 2935449: template 2935449: using __convertible_from 2935449: = std::__enable_if_t::value>; 2935449: 2935449: 2935449: public: 2935449: typedef _Iterator iterator_type; 2935449: typedef typename __traits_type::iterator_category iterator_category; 2935449: typedef typename __traits_type::value_type value_type; 2935449: typedef typename __traits_type::difference_type difference_type; 2935449: typedef typename __traits_type::reference reference; 2935449: typedef typename __traits_type::pointer pointer; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((__always_inline__)) 2935449: constexpr 2935449: __normal_iterator() noexcept 2935449: : _M_current() { } 2935449: 2935449: __attribute__((__always_inline__)) 2935449: explicit constexpr 2935449: __normal_iterator(const _Iterator& __i) noexcept 2935449: : _M_current(__i) { } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template> 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: constexpr 2935449: __normal_iterator(const __normal_iterator<_Iter, _Container>& __i) 2935449: noexcept 2935449: # 1082 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: : _M_current(__i.base()) { } 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) 2935449: constexpr 2935449: reference 2935449: operator*() const noexcept 2935449: { return *_M_current; } 2935449: 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) 2935449: constexpr 2935449: pointer 2935449: operator->() const noexcept 2935449: { return _M_current; } 2935449: 2935449: __attribute__((__always_inline__)) 2935449: 2935449: __normal_iterator& 2935449: operator++() noexcept 2935449: { 2935449: ++_M_current; 2935449: return *this; 2935449: } 2935449: 2935449: __attribute__((__always_inline__)) 2935449: 2935449: __normal_iterator 2935449: operator++(int) noexcept 2935449: { return __normal_iterator(_M_current++); } 2935449: 2935449: 2935449: 2935449: __attribute__((__always_inline__)) 2935449: 2935449: __normal_iterator& 2935449: operator--() noexcept 2935449: { 2935449: --_M_current; 2935449: return *this; 2935449: } 2935449: 2935449: __attribute__((__always_inline__)) 2935449: 2935449: __normal_iterator 2935449: operator--(int) noexcept 2935449: { return __normal_iterator(_M_current--); } 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) 2935449: constexpr 2935449: reference 2935449: operator[](difference_type __n) const noexcept 2935449: { return _M_current[__n]; } 2935449: 2935449: __attribute__((__always_inline__)) 2935449: 2935449: __normal_iterator& 2935449: operator+=(difference_type __n) noexcept 2935449: { _M_current += __n; return *this; } 2935449: 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) 2935449: constexpr 2935449: __normal_iterator 2935449: operator+(difference_type __n) const noexcept 2935449: { return __normal_iterator(_M_current + __n); } 2935449: 2935449: __attribute__((__always_inline__)) 2935449: 2935449: __normal_iterator& 2935449: operator-=(difference_type __n) noexcept 2935449: { _M_current -= __n; return *this; } 2935449: 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) 2935449: constexpr 2935449: __normal_iterator 2935449: operator-(difference_type __n) const noexcept 2935449: { return __normal_iterator(_M_current - __n); } 2935449: 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) 2935449: constexpr 2935449: const _Iterator& 2935449: base() const noexcept 2935449: { return _M_current; } 2935449: }; 2935449: # 1217 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) constexpr 2935449: inline bool 2935449: operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, 2935449: const __normal_iterator<_IteratorR, _Container>& __rhs) 2935449: noexcept 2935449: { return __lhs.base() == __rhs.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) constexpr 2935449: inline bool 2935449: operator==(const __normal_iterator<_Iterator, _Container>& __lhs, 2935449: const __normal_iterator<_Iterator, _Container>& __rhs) 2935449: noexcept 2935449: { return __lhs.base() == __rhs.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) constexpr 2935449: inline bool 2935449: operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, 2935449: const __normal_iterator<_IteratorR, _Container>& __rhs) 2935449: noexcept 2935449: { return __lhs.base() != __rhs.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) constexpr 2935449: inline bool 2935449: operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, 2935449: const __normal_iterator<_Iterator, _Container>& __rhs) 2935449: noexcept 2935449: { return __lhs.base() != __rhs.base(); } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) constexpr 2935449: inline bool 2935449: operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, 2935449: const __normal_iterator<_IteratorR, _Container>& __rhs) 2935449: noexcept 2935449: { return __lhs.base() < __rhs.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) 2935449: inline bool 2935449: operator<(const __normal_iterator<_Iterator, _Container>& __lhs, 2935449: const __normal_iterator<_Iterator, _Container>& __rhs) 2935449: noexcept 2935449: { return __lhs.base() < __rhs.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) constexpr 2935449: inline bool 2935449: operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, 2935449: const __normal_iterator<_IteratorR, _Container>& __rhs) 2935449: noexcept 2935449: { return __lhs.base() > __rhs.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) constexpr 2935449: inline bool 2935449: operator>(const __normal_iterator<_Iterator, _Container>& __lhs, 2935449: const __normal_iterator<_Iterator, _Container>& __rhs) 2935449: noexcept 2935449: { return __lhs.base() > __rhs.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) constexpr 2935449: inline bool 2935449: operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, 2935449: const __normal_iterator<_IteratorR, _Container>& __rhs) 2935449: noexcept 2935449: { return __lhs.base() <= __rhs.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) constexpr 2935449: inline bool 2935449: operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, 2935449: const __normal_iterator<_Iterator, _Container>& __rhs) 2935449: noexcept 2935449: { return __lhs.base() <= __rhs.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) constexpr 2935449: inline bool 2935449: operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, 2935449: const __normal_iterator<_IteratorR, _Container>& __rhs) 2935449: noexcept 2935449: { return __lhs.base() >= __rhs.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) constexpr 2935449: inline bool 2935449: operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, 2935449: const __normal_iterator<_Iterator, _Container>& __rhs) 2935449: noexcept 2935449: { return __lhs.base() >= __rhs.base(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: 2935449: [[__nodiscard__, __gnu__::__always_inline__]] 2935449: constexpr auto 2935449: operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, 2935449: const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept 2935449: -> decltype(__lhs.base() - __rhs.base()) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: { return __lhs.base() - __rhs.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) constexpr 2935449: inline typename __normal_iterator<_Iterator, _Container>::difference_type 2935449: operator-(const __normal_iterator<_Iterator, _Container>& __lhs, 2935449: const __normal_iterator<_Iterator, _Container>& __rhs) 2935449: noexcept 2935449: { return __lhs.base() - __rhs.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) constexpr 2935449: inline __normal_iterator<_Iterator, _Container> 2935449: operator+(typename __normal_iterator<_Iterator, _Container>::difference_type 2935449: __n, const __normal_iterator<_Iterator, _Container>& __i) 2935449: noexcept 2935449: { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } 2935449: 2935449: 2935449: } 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 1434 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: class move_iterator 2935449: 2935449: 2935449: 2935449: { 2935449: _Iterator _M_current; 2935449: 2935449: using __traits_type = iterator_traits<_Iterator>; 2935449: 2935449: using __base_ref = typename __traits_type::reference; 2935449: 2935449: 2935449: template 2935449: friend class move_iterator; 2935449: # 1473 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: public: 2935449: using iterator_type = _Iterator; 2935449: # 1485 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: typedef typename __traits_type::iterator_category iterator_category; 2935449: typedef typename __traits_type::value_type value_type; 2935449: typedef typename __traits_type::difference_type difference_type; 2935449: 2935449: typedef _Iterator pointer; 2935449: 2935449: 2935449: using reference 2935449: = __conditional_t::value, 2935449: typename remove_reference<__base_ref>::type&&, 2935449: __base_ref>; 2935449: 2935449: 2935449: 2935449: move_iterator() 2935449: : _M_current() { } 2935449: 2935449: explicit 2935449: move_iterator(iterator_type __i) 2935449: : _M_current(std::move(__i)) { } 2935449: 2935449: template 2935449: 2935449: 2935449: 2935449: 2935449: move_iterator(const move_iterator<_Iter>& __i) 2935449: : _M_current(__i._M_current) { } 2935449: 2935449: template 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: move_iterator& operator=(const move_iterator<_Iter>& __i) 2935449: { 2935449: _M_current = __i._M_current; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: iterator_type 2935449: base() const 2935449: { return _M_current; } 2935449: # 1543 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: [[__nodiscard__]] 2935449: reference 2935449: operator*() const 2935449: 2935449: 2935449: 2935449: { return static_cast(*_M_current); } 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: pointer 2935449: operator->() const 2935449: { return _M_current; } 2935449: 2935449: move_iterator& 2935449: operator++() 2935449: { 2935449: ++_M_current; 2935449: return *this; 2935449: } 2935449: 2935449: move_iterator 2935449: operator++(int) 2935449: { 2935449: move_iterator __tmp = *this; 2935449: ++_M_current; 2935449: return __tmp; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: move_iterator& 2935449: operator--() 2935449: { 2935449: --_M_current; 2935449: return *this; 2935449: } 2935449: 2935449: move_iterator 2935449: operator--(int) 2935449: { 2935449: move_iterator __tmp = *this; 2935449: --_M_current; 2935449: return __tmp; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: move_iterator 2935449: operator+(difference_type __n) const 2935449: { return move_iterator(_M_current + __n); } 2935449: 2935449: move_iterator& 2935449: operator+=(difference_type __n) 2935449: { 2935449: _M_current += __n; 2935449: return *this; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: move_iterator 2935449: operator-(difference_type __n) const 2935449: { return move_iterator(_M_current - __n); } 2935449: 2935449: move_iterator& 2935449: operator-=(difference_type __n) 2935449: { 2935449: _M_current -= __n; 2935449: return *this; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: reference 2935449: operator[](difference_type __n) const 2935449: 2935449: 2935449: 2935449: { return std::move(_M_current[__n]); } 2935449: # 1657 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: }; 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator==(const move_iterator<_IteratorL>& __x, 2935449: const move_iterator<_IteratorR>& __y) 2935449: 2935449: 2935449: 2935449: { return __x.base() == __y.base(); } 2935449: # 1678 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator!=(const move_iterator<_IteratorL>& __x, 2935449: const move_iterator<_IteratorR>& __y) 2935449: { return !(__x == __y); } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator<(const move_iterator<_IteratorL>& __x, 2935449: const move_iterator<_IteratorR>& __y) 2935449: 2935449: 2935449: 2935449: { return __x.base() < __y.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator<=(const move_iterator<_IteratorL>& __x, 2935449: const move_iterator<_IteratorR>& __y) 2935449: 2935449: 2935449: 2935449: { return !(__y < __x); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>(const move_iterator<_IteratorL>& __x, 2935449: const move_iterator<_IteratorR>& __y) 2935449: 2935449: 2935449: 2935449: { return __y < __x; } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>=(const move_iterator<_IteratorL>& __x, 2935449: const move_iterator<_IteratorR>& __y) 2935449: 2935449: 2935449: 2935449: { return !(__x < __y); } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator==(const move_iterator<_Iterator>& __x, 2935449: const move_iterator<_Iterator>& __y) 2935449: 2935449: { return __x.base() == __y.base(); } 2935449: # 1745 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator!=(const move_iterator<_Iterator>& __x, 2935449: const move_iterator<_Iterator>& __y) 2935449: { return !(__x == __y); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator<(const move_iterator<_Iterator>& __x, 2935449: const move_iterator<_Iterator>& __y) 2935449: { return __x.base() < __y.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator<=(const move_iterator<_Iterator>& __x, 2935449: const move_iterator<_Iterator>& __y) 2935449: { return !(__y < __x); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>(const move_iterator<_Iterator>& __x, 2935449: const move_iterator<_Iterator>& __y) 2935449: { return __y < __x; } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>=(const move_iterator<_Iterator>& __x, 2935449: const move_iterator<_Iterator>& __y) 2935449: { return !(__x < __y); } 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline auto 2935449: operator-(const move_iterator<_IteratorL>& __x, 2935449: const move_iterator<_IteratorR>& __y) 2935449: -> decltype(__x.base() - __y.base()) 2935449: { return __x.base() - __y.base(); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline move_iterator<_Iterator> 2935449: operator+(typename move_iterator<_Iterator>::difference_type __n, 2935449: const move_iterator<_Iterator>& __x) 2935449: 2935449: 2935449: 2935449: { return __x + __n; } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline move_iterator<_Iterator> 2935449: make_move_iterator(_Iterator __i) 2935449: { return move_iterator<_Iterator>(std::move(__i)); } 2935449: 2935449: template::value_type>::value, 2935449: _Iterator, move_iterator<_Iterator>>> 2935449: [[__nodiscard__]] 2935449: constexpr _ReturnType 2935449: __make_move_if_noexcept_iterator(_Iterator __i) 2935449: { return _ReturnType(__i); } 2935449: 2935449: 2935449: 2935449: template::value, 2935449: const _Tp*, move_iterator<_Tp*>>> 2935449: [[__nodiscard__]] 2935449: constexpr _ReturnType 2935449: __make_move_if_noexcept_iterator(_Tp* __i) 2935449: { return _ReturnType(__i); } 2935449: 2935449: template 2935449: struct __is_move_iterator > 2935449: { 2935449: enum { __value = 1 }; 2935449: typedef __true_type __type; 2935449: }; 2935449: # 2980 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: 2935449: } 2935449: 2935449: namespace __gnu_debug 2935449: { 2935449: template 2935449: class _Safe_iterator; 2935449: } 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) 2935449: 2935449: inline _Iterator 2935449: __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) 2935449: noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) 2935449: { return __it.base(); } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) 2935449: 2935449: inline _Iterator 2935449: __niter_base(_Iterator __it) 2935449: noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) 2935449: { return __it; } 2935449: # 3027 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: template 2935449: 2935449: decltype(std::__niter_base(std::declval<_Ite>())) 2935449: __niter_base(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, 2935449: std::random_access_iterator_tag>&) 2935449: noexcept(std::is_nothrow_copy_constructible<_Ite>::value); 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: inline auto 2935449: __niter_base(reverse_iterator<_Iterator> __it) 2935449: -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) 2935449: { return __make_reverse_iterator(__niter_base(__it.base())); } 2935449: 2935449: template 2935449: 2935449: inline auto 2935449: __niter_base(move_iterator<_Iterator> __it) 2935449: -> decltype(make_move_iterator(__niter_base(__it.base()))) 2935449: { return make_move_iterator(__niter_base(__it.base())); } 2935449: 2935449: template 2935449: 2935449: inline auto 2935449: __miter_base(reverse_iterator<_Iterator> __it) 2935449: -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) 2935449: { return __make_reverse_iterator(__miter_base(__it.base())); } 2935449: 2935449: template 2935449: 2935449: inline auto 2935449: __miter_base(move_iterator<_Iterator> __it) 2935449: -> decltype(__miter_base(__it.base())) 2935449: { return __miter_base(__it.base()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: 2935449: inline _From 2935449: __niter_wrap(_From __from, _To __res) 2935449: { return __from + (std::__niter_base(__res) - std::__niter_base(__from)); } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] __attribute__((__always_inline__)) 2935449: 2935449: inline _Iterator 2935449: __niter_wrap(const _Iterator&, _Iterator __res) 2935449: { return __res; } 2935449: # 3113 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_iterator.h" 3 2935449: 2935449: } 2935449: # 51 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_function.h" 1 3 2935449: # 63 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_function.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 116 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_function.h" 3 2935449: template 2935449: struct unary_function 2935449: { 2935449: 2935449: typedef _Arg argument_type; 2935449: 2935449: 2935449: typedef _Result result_type; 2935449: } __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct binary_function 2935449: { 2935449: 2935449: typedef _Arg1 first_argument_type; 2935449: 2935449: 2935449: typedef _Arg2 second_argument_type; 2935449: 2935449: 2935449: typedef _Result result_type; 2935449: } __attribute__ ((__deprecated__)); 2935449: # 179 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_function.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: 2935449: 2935449: template 2935449: struct plus : public binary_function<_Tp, _Tp, _Tp> 2935449: { 2935449: 2935449: 2935449: _Tp 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x + __y; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct minus : public binary_function<_Tp, _Tp, _Tp> 2935449: { 2935449: 2935449: _Tp 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x - __y; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct multiplies : public binary_function<_Tp, _Tp, _Tp> 2935449: { 2935449: 2935449: _Tp 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x * __y; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct divides : public binary_function<_Tp, _Tp, _Tp> 2935449: { 2935449: 2935449: _Tp 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x / __y; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct modulus : public binary_function<_Tp, _Tp, _Tp> 2935449: { 2935449: 2935449: _Tp 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x % __y; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct negate : public unary_function<_Tp, _Tp> 2935449: { 2935449: 2935449: _Tp 2935449: operator()(const _Tp& __x) const 2935449: { return -__x; } 2935449: }; 2935449: #pragma GCC diagnostic pop 2935449: # 365 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_function.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: 2935449: 2935449: template 2935449: struct equal_to : public binary_function<_Tp, _Tp, bool> 2935449: { 2935449: 2935449: bool 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x == __y; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct not_equal_to : public binary_function<_Tp, _Tp, bool> 2935449: { 2935449: 2935449: bool 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x != __y; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct greater : public binary_function<_Tp, _Tp, bool> 2935449: { 2935449: 2935449: bool 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x > __y; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct less : public binary_function<_Tp, _Tp, bool> 2935449: { 2935449: 2935449: bool 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x < __y; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct greater_equal : public binary_function<_Tp, _Tp, bool> 2935449: { 2935449: 2935449: bool 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x >= __y; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct less_equal : public binary_function<_Tp, _Tp, bool> 2935449: { 2935449: 2935449: bool 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x <= __y; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct greater<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 2935449: { 2935449: bool 2935449: operator()(_Tp* __x, _Tp* __y) const noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: return (unsigned int)__x > (unsigned int)__y; 2935449: } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct less<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 2935449: { 2935449: bool 2935449: operator()(_Tp* __x, _Tp* __y) const noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: return (unsigned int)__x < (unsigned int)__y; 2935449: } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct greater_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 2935449: { 2935449: bool 2935449: operator()(_Tp* __x, _Tp* __y) const noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: return (unsigned int)__x >= (unsigned int)__y; 2935449: } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct less_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 2935449: { 2935449: bool 2935449: operator()(_Tp* __x, _Tp* __y) const noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: return (unsigned int)__x <= (unsigned int)__y; 2935449: } 2935449: }; 2935449: #pragma GCC diagnostic pop 2935449: # 788 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_function.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: 2935449: 2935449: template 2935449: struct logical_and : public binary_function<_Tp, _Tp, bool> 2935449: { 2935449: 2935449: bool 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x && __y; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct logical_or : public binary_function<_Tp, _Tp, bool> 2935449: { 2935449: 2935449: bool 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x || __y; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct logical_not : public unary_function<_Tp, bool> 2935449: { 2935449: 2935449: bool 2935449: operator()(const _Tp& __x) const 2935449: { return !__x; } 2935449: }; 2935449: #pragma GCC diagnostic pop 2935449: # 884 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_function.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: 2935449: 2935449: 2935449: template 2935449: struct bit_and : public binary_function<_Tp, _Tp, _Tp> 2935449: { 2935449: 2935449: _Tp 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x & __y; } 2935449: }; 2935449: 2935449: template 2935449: struct bit_or : public binary_function<_Tp, _Tp, _Tp> 2935449: { 2935449: 2935449: _Tp 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x | __y; } 2935449: }; 2935449: 2935449: template 2935449: struct bit_xor : public binary_function<_Tp, _Tp, _Tp> 2935449: { 2935449: 2935449: _Tp 2935449: operator()(const _Tp& __x, const _Tp& __y) const 2935449: { return __x ^ __y; } 2935449: }; 2935449: 2935449: template 2935449: struct bit_not : public unary_function<_Tp, _Tp> 2935449: { 2935449: 2935449: _Tp 2935449: operator()(const _Tp& __x) const 2935449: { return ~__x; } 2935449: }; 2935449: #pragma GCC diagnostic pop 2935449: # 984 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_function.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: # 1020 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_function.h" 3 2935449: template 2935449: class unary_negate 2935449: : public unary_function 2935449: { 2935449: protected: 2935449: _Predicate _M_pred; 2935449: 2935449: public: 2935449: 2935449: explicit 2935449: unary_negate(const _Predicate& __x) : _M_pred(__x) { } 2935449: 2935449: 2935449: bool 2935449: operator()(const typename _Predicate::argument_type& __x) const 2935449: { return !_M_pred(__x); } 2935449: }; 2935449: 2935449: 2935449: template 2935449: 2935449: 2935449: inline unary_negate<_Predicate> 2935449: not1(const _Predicate& __pred) 2935449: { return unary_negate<_Predicate>(__pred); } 2935449: 2935449: 2935449: template 2935449: class binary_negate 2935449: : public binary_function 2935449: { 2935449: protected: 2935449: _Predicate _M_pred; 2935449: 2935449: public: 2935449: 2935449: explicit 2935449: binary_negate(const _Predicate& __x) : _M_pred(__x) { } 2935449: 2935449: 2935449: bool 2935449: operator()(const typename _Predicate::first_argument_type& __x, 2935449: const typename _Predicate::second_argument_type& __y) const 2935449: { return !_M_pred(__x, __y); } 2935449: }; 2935449: 2935449: 2935449: template 2935449: 2935449: 2935449: inline binary_negate<_Predicate> 2935449: not2(const _Predicate& __pred) 2935449: { return binary_negate<_Predicate>(__pred); } 2935449: # 1101 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_function.h" 3 2935449: template 2935449: class pointer_to_unary_function : public unary_function<_Arg, _Result> 2935449: { 2935449: protected: 2935449: _Result (*_M_ptr)(_Arg); 2935449: 2935449: public: 2935449: pointer_to_unary_function() { } 2935449: 2935449: explicit 2935449: pointer_to_unary_function(_Result (*__x)(_Arg)) 2935449: : _M_ptr(__x) { } 2935449: 2935449: _Result 2935449: operator()(_Arg __x) const 2935449: { return _M_ptr(__x); } 2935449: } __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: template 2935449: __attribute__ ((__deprecated__ ("use '" "std::function" "' instead"))) 2935449: inline pointer_to_unary_function<_Arg, _Result> 2935449: ptr_fun(_Result (*__x)(_Arg)) 2935449: { return pointer_to_unary_function<_Arg, _Result>(__x); } 2935449: 2935449: 2935449: template 2935449: class pointer_to_binary_function 2935449: : public binary_function<_Arg1, _Arg2, _Result> 2935449: { 2935449: protected: 2935449: _Result (*_M_ptr)(_Arg1, _Arg2); 2935449: 2935449: public: 2935449: pointer_to_binary_function() { } 2935449: 2935449: explicit 2935449: pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) 2935449: : _M_ptr(__x) { } 2935449: 2935449: _Result 2935449: operator()(_Arg1 __x, _Arg2 __y) const 2935449: { return _M_ptr(__x, __y); } 2935449: } __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: template 2935449: __attribute__ ((__deprecated__ ("use '" "std::function" "' instead"))) 2935449: inline pointer_to_binary_function<_Arg1, _Arg2, _Result> 2935449: ptr_fun(_Result (*__x)(_Arg1, _Arg2)) 2935449: { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } 2935449: 2935449: 2935449: template 2935449: struct _Identity 2935449: : public unary_function<_Tp, _Tp> 2935449: { 2935449: _Tp& 2935449: operator()(_Tp& __x) const 2935449: { return __x; } 2935449: 2935449: const _Tp& 2935449: operator()(const _Tp& __x) const 2935449: { return __x; } 2935449: }; 2935449: 2935449: 2935449: template struct _Identity : _Identity<_Tp> { }; 2935449: 2935449: template 2935449: struct _Select1st 2935449: : public unary_function<_Pair, typename _Pair::first_type> 2935449: { 2935449: typename _Pair::first_type& 2935449: operator()(_Pair& __x) const 2935449: { return __x.first; } 2935449: 2935449: const typename _Pair::first_type& 2935449: operator()(const _Pair& __x) const 2935449: { return __x.first; } 2935449: 2935449: 2935449: template 2935449: typename _Pair2::first_type& 2935449: operator()(_Pair2& __x) const 2935449: { return __x.first; } 2935449: 2935449: template 2935449: const typename _Pair2::first_type& 2935449: operator()(const _Pair2& __x) const 2935449: { return __x.first; } 2935449: 2935449: }; 2935449: 2935449: template 2935449: struct _Select2nd 2935449: : public unary_function<_Pair, typename _Pair::second_type> 2935449: { 2935449: typename _Pair::second_type& 2935449: operator()(_Pair& __x) const 2935449: { return __x.second; } 2935449: 2935449: const typename _Pair::second_type& 2935449: operator()(const _Pair& __x) const 2935449: { return __x.second; } 2935449: }; 2935449: # 1228 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_function.h" 3 2935449: template 2935449: class mem_fun_t : public unary_function<_Tp*, _Ret> 2935449: { 2935449: public: 2935449: explicit 2935449: mem_fun_t(_Ret (_Tp::*__pf)()) 2935449: : _M_f(__pf) { } 2935449: 2935449: _Ret 2935449: operator()(_Tp* __p) const 2935449: { return (__p->*_M_f)(); } 2935449: 2935449: private: 2935449: _Ret (_Tp::*_M_f)(); 2935449: } __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: template 2935449: class const_mem_fun_t : public unary_function 2935449: { 2935449: public: 2935449: explicit 2935449: const_mem_fun_t(_Ret (_Tp::*__pf)() const) 2935449: : _M_f(__pf) { } 2935449: 2935449: _Ret 2935449: operator()(const _Tp* __p) const 2935449: { return (__p->*_M_f)(); } 2935449: 2935449: private: 2935449: _Ret (_Tp::*_M_f)() const; 2935449: } __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: template 2935449: class mem_fun_ref_t : public unary_function<_Tp, _Ret> 2935449: { 2935449: public: 2935449: explicit 2935449: mem_fun_ref_t(_Ret (_Tp::*__pf)()) 2935449: : _M_f(__pf) { } 2935449: 2935449: _Ret 2935449: operator()(_Tp& __r) const 2935449: { return (__r.*_M_f)(); } 2935449: 2935449: private: 2935449: _Ret (_Tp::*_M_f)(); 2935449: } __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: template 2935449: class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> 2935449: { 2935449: public: 2935449: explicit 2935449: const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) 2935449: : _M_f(__pf) { } 2935449: 2935449: _Ret 2935449: operator()(const _Tp& __r) const 2935449: { return (__r.*_M_f)(); } 2935449: 2935449: private: 2935449: _Ret (_Tp::*_M_f)() const; 2935449: } __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: template 2935449: class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> 2935449: { 2935449: public: 2935449: explicit 2935449: mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) 2935449: : _M_f(__pf) { } 2935449: 2935449: _Ret 2935449: operator()(_Tp* __p, _Arg __x) const 2935449: { return (__p->*_M_f)(__x); } 2935449: 2935449: private: 2935449: _Ret (_Tp::*_M_f)(_Arg); 2935449: } __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: template 2935449: class const_mem_fun1_t : public binary_function 2935449: { 2935449: public: 2935449: explicit 2935449: const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) 2935449: : _M_f(__pf) { } 2935449: 2935449: _Ret 2935449: operator()(const _Tp* __p, _Arg __x) const 2935449: { return (__p->*_M_f)(__x); } 2935449: 2935449: private: 2935449: _Ret (_Tp::*_M_f)(_Arg) const; 2935449: } __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: template 2935449: class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 2935449: { 2935449: public: 2935449: explicit 2935449: mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) 2935449: : _M_f(__pf) { } 2935449: 2935449: _Ret 2935449: operator()(_Tp& __r, _Arg __x) const 2935449: { return (__r.*_M_f)(__x); } 2935449: 2935449: private: 2935449: _Ret (_Tp::*_M_f)(_Arg); 2935449: } __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: template 2935449: class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 2935449: { 2935449: public: 2935449: explicit 2935449: const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) 2935449: : _M_f(__pf) { } 2935449: 2935449: _Ret 2935449: operator()(const _Tp& __r, _Arg __x) const 2935449: { return (__r.*_M_f)(__x); } 2935449: 2935449: private: 2935449: _Ret (_Tp::*_M_f)(_Arg) const; 2935449: } __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: 2935449: template 2935449: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 2935449: inline mem_fun_t<_Ret, _Tp> 2935449: mem_fun(_Ret (_Tp::*__f)()) 2935449: { return mem_fun_t<_Ret, _Tp>(__f); } 2935449: 2935449: template 2935449: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 2935449: inline const_mem_fun_t<_Ret, _Tp> 2935449: mem_fun(_Ret (_Tp::*__f)() const) 2935449: { return const_mem_fun_t<_Ret, _Tp>(__f); } 2935449: 2935449: template 2935449: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 2935449: inline mem_fun_ref_t<_Ret, _Tp> 2935449: mem_fun_ref(_Ret (_Tp::*__f)()) 2935449: { return mem_fun_ref_t<_Ret, _Tp>(__f); } 2935449: 2935449: template 2935449: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 2935449: inline const_mem_fun_ref_t<_Ret, _Tp> 2935449: mem_fun_ref(_Ret (_Tp::*__f)() const) 2935449: { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } 2935449: 2935449: template 2935449: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 2935449: inline mem_fun1_t<_Ret, _Tp, _Arg> 2935449: mem_fun(_Ret (_Tp::*__f)(_Arg)) 2935449: { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 2935449: 2935449: template 2935449: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 2935449: inline const_mem_fun1_t<_Ret, _Tp, _Arg> 2935449: mem_fun(_Ret (_Tp::*__f)(_Arg) const) 2935449: { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 2935449: 2935449: template 2935449: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 2935449: inline mem_fun1_ref_t<_Ret, _Tp, _Arg> 2935449: mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) 2935449: { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 2935449: 2935449: template 2935449: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 2935449: inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> 2935449: mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) 2935449: { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 2935449: #pragma GCC diagnostic pop 2935449: # 1437 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_function.h" 3 2935449: 2935449: } 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/backward/binders.h" 1 3 2935449: # 60 "/usr/arm-linux-gnueabi/include/c++/15/backward/binders.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 107 "/usr/arm-linux-gnueabi/include/c++/15/backward/binders.h" 3 2935449: template 2935449: class binder1st 2935449: : public unary_function 2935449: { 2935449: protected: 2935449: _Operation op; 2935449: typename _Operation::first_argument_type value; 2935449: 2935449: public: 2935449: binder1st(const _Operation& __x, 2935449: const typename _Operation::first_argument_type& __y) 2935449: : op(__x), value(__y) { } 2935449: 2935449: typename _Operation::result_type 2935449: operator()(const typename _Operation::second_argument_type& __x) const 2935449: { return op(value, __x); } 2935449: 2935449: 2935449: 2935449: typename _Operation::result_type 2935449: operator()(typename _Operation::second_argument_type& __x) const 2935449: { return op(value, __x); } 2935449: } __attribute__ ((__deprecated__ ("use '" "std::bind" "' instead"))); 2935449: 2935449: 2935449: template 2935449: __attribute__ ((__deprecated__ ("use '" "std::bind" "' instead"))) 2935449: inline binder1st<_Operation> 2935449: bind1st(const _Operation& __fn, const _Tp& __x) 2935449: { 2935449: typedef typename _Operation::first_argument_type _Arg1_type; 2935449: return binder1st<_Operation>(__fn, _Arg1_type(__x)); 2935449: } 2935449: 2935449: 2935449: template 2935449: class binder2nd 2935449: : public unary_function 2935449: { 2935449: protected: 2935449: _Operation op; 2935449: typename _Operation::second_argument_type value; 2935449: 2935449: public: 2935449: binder2nd(const _Operation& __x, 2935449: const typename _Operation::second_argument_type& __y) 2935449: : op(__x), value(__y) { } 2935449: 2935449: typename _Operation::result_type 2935449: operator()(const typename _Operation::first_argument_type& __x) const 2935449: { return op(__x, value); } 2935449: 2935449: 2935449: 2935449: typename _Operation::result_type 2935449: operator()(typename _Operation::first_argument_type& __x) const 2935449: { return op(__x, value); } 2935449: } __attribute__ ((__deprecated__ ("use '" "std::bind" "' instead"))); 2935449: 2935449: 2935449: template 2935449: __attribute__ ((__deprecated__ ("use '" "std::bind" "' instead"))) 2935449: inline binder2nd<_Operation> 2935449: bind2nd(const _Operation& __fn, const _Tp& __x) 2935449: { 2935449: typedef typename _Operation::second_argument_type _Arg2_type; 2935449: return binder2nd<_Operation>(__fn, _Arg2_type(__x)); 2935449: } 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: #pragma GCC diagnostic pop 2935449: # 1442 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_function.h" 2 3 2935449: # 52 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/ext/numeric_traits.h" 1 3 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/ext/numeric_traits.h" 3 2935449: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 52 "/usr/arm-linux-gnueabi/include/c++/15/ext/numeric_traits.h" 3 2935449: template 2935449: struct __is_integer_nonstrict 2935449: : public std::__is_integer<_Tp> 2935449: { 2935449: using std::__is_integer<_Tp>::__value; 2935449: 2935449: 2935449: enum { __width = __value ? sizeof(_Tp) * 8 : 0 }; 2935449: }; 2935449: 2935449: template 2935449: struct __numeric_traits_integer 2935449: { 2935449: 2935449: static_assert(__is_integer_nonstrict<_Value>::__value, 2935449: "invalid specialization"); 2935449: 2935449: 2935449: 2935449: 2935449: static const bool __is_signed = (_Value)(-1) < 0; 2935449: static const int __digits 2935449: = __is_integer_nonstrict<_Value>::__width - __is_signed; 2935449: 2935449: 2935449: static const _Value __max = __is_signed 2935449: ? (((((_Value)1 << (__digits - 1)) - 1) << 1) + 1) 2935449: : ~(_Value)0; 2935449: static const _Value __min = __is_signed ? -__max - 1 : (_Value)0; 2935449: }; 2935449: 2935449: template 2935449: const _Value __numeric_traits_integer<_Value>::__min; 2935449: 2935449: template 2935449: const _Value __numeric_traits_integer<_Value>::__max; 2935449: 2935449: template 2935449: const bool __numeric_traits_integer<_Value>::__is_signed; 2935449: 2935449: template 2935449: const int __numeric_traits_integer<_Value>::__digits; 2935449: # 139 "/usr/arm-linux-gnueabi/include/c++/15/ext/numeric_traits.h" 3 2935449: template 2935449: using __int_traits = __numeric_traits_integer<_Tp>; 2935449: # 159 "/usr/arm-linux-gnueabi/include/c++/15/ext/numeric_traits.h" 3 2935449: template 2935449: struct __numeric_traits_floating 2935449: { 2935449: 2935449: static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 53) * 643L / 2136); 2935449: 2935449: 2935449: static const bool __is_signed = true; 2935449: static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 15); 2935449: static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 308); 2935449: }; 2935449: 2935449: template 2935449: const int __numeric_traits_floating<_Value>::__max_digits10; 2935449: 2935449: template 2935449: const bool __numeric_traits_floating<_Value>::__is_signed; 2935449: 2935449: template 2935449: const int __numeric_traits_floating<_Value>::__digits10; 2935449: 2935449: template 2935449: const int __numeric_traits_floating<_Value>::__max_exponent10; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __numeric_traits 2935449: : public __numeric_traits_integer<_Value> 2935449: { }; 2935449: 2935449: template<> 2935449: struct __numeric_traits 2935449: : public __numeric_traits_floating 2935449: { }; 2935449: 2935449: template<> 2935449: struct __numeric_traits 2935449: : public __numeric_traits_floating 2935449: { }; 2935449: 2935449: template<> 2935449: struct __numeric_traits 2935449: : public __numeric_traits_floating 2935449: { }; 2935449: # 240 "/usr/arm-linux-gnueabi/include/c++/15/ext/numeric_traits.h" 3 2935449: 2935449: } 2935449: # 53 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 1 3 2935449: # 64 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 1 3 2935449: # 62 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/utility.h" 1 3 2935449: # 45 "/usr/arm-linux-gnueabi/include/c++/15/bits/utility.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: template 2935449: struct tuple_size; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template::type, 2935449: typename = typename enable_if::value>::type, 2935449: size_t = tuple_size<_Tp>::value> 2935449: using __enable_if_has_tuple_size = _Tp; 2935449: 2935449: template 2935449: struct tuple_size> 2935449: : public tuple_size<_Tp> { }; 2935449: 2935449: template 2935449: struct tuple_size> 2935449: : public tuple_size<_Tp> { }; 2935449: 2935449: template 2935449: struct tuple_size> 2935449: : public tuple_size<_Tp> { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct tuple_element; 2935449: 2935449: 2935449: template 2935449: using __tuple_element_t = typename tuple_element<__i, _Tp>::type; 2935449: 2935449: template 2935449: struct tuple_element<__i, const _Tp> 2935449: { 2935449: using type = const __tuple_element_t<__i, _Tp>; 2935449: }; 2935449: 2935449: template 2935449: struct tuple_element<__i, volatile _Tp> 2935449: { 2935449: using type = volatile __tuple_element_t<__i, _Tp>; 2935449: }; 2935449: 2935449: template 2935449: struct tuple_element<__i, const volatile _Tp> 2935449: { 2935449: using type = const volatile __tuple_element_t<__i, _Tp>; 2935449: }; 2935449: # 142 "/usr/arm-linux-gnueabi/include/c++/15/bits/utility.h" 3 2935449: template struct _Index_tuple { }; 2935449: 2935449: 2935449: template 2935449: struct _Build_index_tuple 2935449: { 2935449: # 156 "/usr/arm-linux-gnueabi/include/c++/15/bits/utility.h" 3 2935449: using __type = _Index_tuple<__integer_pack(_Num)...>; 2935449: 2935449: }; 2935449: # 234 "/usr/arm-linux-gnueabi/include/c++/15/bits/utility.h" 3 2935449: template 2935449: struct _Nth_type 2935449: { using type = __type_pack_element<_Np, _Types...>; }; 2935449: # 284 "/usr/arm-linux-gnueabi/include/c++/15/bits/utility.h" 3 2935449: struct _Swallow_assign 2935449: { 2935449: template 2935449: constexpr const _Swallow_assign& 2935449: operator=(const _Tp&) const noexcept 2935449: { return *this; } 2935449: }; 2935449: # 309 "/usr/arm-linux-gnueabi/include/c++/15/bits/utility.h" 3 2935449: constexpr _Swallow_assign ignore{}; 2935449: # 319 "/usr/arm-linux-gnueabi/include/c++/15/bits/utility.h" 3 2935449: 2935449: } 2935449: # 63 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 79 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; 2935449: 2935449: 2935449: constexpr piecewise_construct_t piecewise_construct = 2935449: piecewise_construct_t(); 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct pair; 2935449: 2935449: template 2935449: class tuple; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct array; 2935449: 2935449: template 2935449: struct _Index_tuple; 2935449: 2935449: template 2935449: class complex; 2935449: 2935449: template 2935449: constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& 2935449: get(pair<_Tp1, _Tp2>& __in) noexcept; 2935449: 2935449: template 2935449: constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& 2935449: get(pair<_Tp1, _Tp2>&& __in) noexcept; 2935449: 2935449: template 2935449: constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& 2935449: get(const pair<_Tp1, _Tp2>& __in) noexcept; 2935449: 2935449: template 2935449: constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& 2935449: get(const pair<_Tp1, _Tp2>&& __in) noexcept; 2935449: 2935449: template 2935449: constexpr __tuple_element_t<__i, tuple<_Elements...>>& 2935449: get(tuple<_Elements...>& __t) noexcept; 2935449: 2935449: template 2935449: constexpr const __tuple_element_t<__i, tuple<_Elements...>>& 2935449: get(const tuple<_Elements...>& __t) noexcept; 2935449: 2935449: template 2935449: constexpr __tuple_element_t<__i, tuple<_Elements...>>&& 2935449: get(tuple<_Elements...>&& __t) noexcept; 2935449: 2935449: template 2935449: constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& 2935449: get(const tuple<_Elements...>&& __t) noexcept; 2935449: 2935449: template 2935449: constexpr _Tp& 2935449: get(array<_Tp, _Nm>&) noexcept; 2935449: 2935449: template 2935449: constexpr _Tp&& 2935449: get(array<_Tp, _Nm>&&) noexcept; 2935449: 2935449: template 2935449: constexpr const _Tp& 2935449: get(const array<_Tp, _Nm>&) noexcept; 2935449: 2935449: template 2935449: constexpr const _Tp&& 2935449: get(const array<_Tp, _Nm>&&) noexcept; 2935449: # 176 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: template 2935449: struct _PCC 2935449: { 2935449: template 2935449: static constexpr bool _ConstructiblePair() 2935449: { 2935449: return __and_, 2935449: is_constructible<_T2, const _U2&>>::value; 2935449: } 2935449: 2935449: template 2935449: static constexpr bool _ImplicitlyConvertiblePair() 2935449: { 2935449: return __and_, 2935449: is_convertible>::value; 2935449: } 2935449: 2935449: template 2935449: static constexpr bool _MoveConstructiblePair() 2935449: { 2935449: return __and_, 2935449: is_constructible<_T2, _U2&&>>::value; 2935449: } 2935449: 2935449: template 2935449: static constexpr bool _ImplicitlyMoveConvertiblePair() 2935449: { 2935449: return __and_, 2935449: is_convertible<_U2&&, _T2>>::value; 2935449: } 2935449: }; 2935449: 2935449: template 2935449: struct _PCC 2935449: { 2935449: template 2935449: static constexpr bool _ConstructiblePair() 2935449: { 2935449: return false; 2935449: } 2935449: 2935449: template 2935449: static constexpr bool _ImplicitlyConvertiblePair() 2935449: { 2935449: return false; 2935449: } 2935449: 2935449: template 2935449: static constexpr bool _MoveConstructiblePair() 2935449: { 2935449: return false; 2935449: } 2935449: 2935449: template 2935449: static constexpr bool _ImplicitlyMoveConvertiblePair() 2935449: { 2935449: return false; 2935449: } 2935449: }; 2935449: # 278 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: template class __pair_base 2935449: { 2935449: 2935449: template friend struct pair; 2935449: __pair_base() = default; 2935449: ~__pair_base() = default; 2935449: __pair_base(const __pair_base&) = default; 2935449: __pair_base& operator=(const __pair_base&) = delete; 2935449: 2935449: }; 2935449: # 301 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: template 2935449: struct pair 2935449: : public __pair_base<_T1, _T2> 2935449: { 2935449: typedef _T1 first_type; 2935449: typedef _T2 second_type; 2935449: 2935449: _T1 first; 2935449: _T2 second; 2935449: 2935449: 2935449: constexpr pair(const pair&) = default; 2935449: constexpr pair(pair&&) = default; 2935449: 2935449: template 2935449: 2935449: pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); 2935449: 2935449: 2935449: void 2935449: swap(pair& __p) 2935449: noexcept(__and_<__is_nothrow_swappable<_T1>, 2935449: __is_nothrow_swappable<_T2>>::value) 2935449: { 2935449: using std::swap; 2935449: swap(first, __p.first); 2935449: swap(second, __p.second); 2935449: } 2935449: # 349 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: private: 2935449: template 2935449: 2935449: pair(tuple<_Args1...>&, tuple<_Args2...>&, 2935449: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); 2935449: public: 2935449: # 739 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: template , 2935449: __is_implicitly_default_constructible<_U2>> 2935449: ::value, bool>::type = true> 2935449: constexpr pair() 2935449: : first(), second() { } 2935449: 2935449: template , 2935449: is_default_constructible<_U2>, 2935449: __not_< 2935449: __and_<__is_implicitly_default_constructible<_U1>, 2935449: __is_implicitly_default_constructible<_U2>>>> 2935449: ::value, bool>::type = false> 2935449: explicit constexpr pair() 2935449: : first(), second() { } 2935449: 2935449: 2935449: 2935449: using _PCCP = _PCC; 2935449: 2935449: 2935449: 2935449: template() 2935449: && _PCCP::template 2935449: _ImplicitlyConvertiblePair<_U1, _U2>(), 2935449: bool>::type=true> 2935449: constexpr pair(const _T1& __a, const _T2& __b) 2935449: : first(__a), second(__b) { } 2935449: 2935449: 2935449: template() 2935449: && !_PCCP::template 2935449: _ImplicitlyConvertiblePair<_U1, _U2>(), 2935449: bool>::type=false> 2935449: explicit constexpr pair(const _T1& __a, const _T2& __b) 2935449: : first(__a), second(__b) { } 2935449: 2935449: 2935449: 2935449: template 2935449: using _PCCFP = _PCC::value 2935449: || !is_same<_T2, _U2>::value, 2935449: _T1, _T2>; 2935449: 2935449: 2935449: template::template 2935449: _ConstructiblePair<_U1, _U2>() 2935449: && _PCCFP<_U1, _U2>::template 2935449: _ImplicitlyConvertiblePair<_U1, _U2>(), 2935449: bool>::type=true> 2935449: constexpr pair(const pair<_U1, _U2>& __p) 2935449: : first(__p.first), second(__p.second) 2935449: { ; } 2935449: 2935449: template::template 2935449: _ConstructiblePair<_U1, _U2>() 2935449: && !_PCCFP<_U1, _U2>::template 2935449: _ImplicitlyConvertiblePair<_U1, _U2>(), 2935449: bool>::type=false> 2935449: explicit constexpr pair(const pair<_U1, _U2>& __p) 2935449: : first(__p.first), second(__p.second) 2935449: { ; } 2935449: # 823 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: private: 2935449: 2935449: 2935449: 2935449: struct __zero_as_null_pointer_constant 2935449: { 2935449: __zero_as_null_pointer_constant(int __zero_as_null_pointer_constant::*) 2935449: { } 2935449: template::value>> 2935449: __zero_as_null_pointer_constant(_Tp) = delete; 2935449: }; 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: 2935449: template>, 2935449: is_pointer<_T2>, 2935449: is_constructible<_T1, _U1>, 2935449: __not_>, 2935449: is_convertible<_U1, _T1>>::value, 2935449: bool> = true> 2935449: __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) 2935449: constexpr 2935449: pair(_U1&& __x, __zero_as_null_pointer_constant, ...) 2935449: : first(std::forward<_U1>(__x)), second(nullptr) 2935449: { ; } 2935449: 2935449: template>, 2935449: is_pointer<_T2>, 2935449: is_constructible<_T1, _U1>, 2935449: __not_>, 2935449: __not_>>::value, 2935449: bool> = false> 2935449: __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) 2935449: explicit constexpr 2935449: pair(_U1&& __x, __zero_as_null_pointer_constant, ...) 2935449: : first(std::forward<_U1>(__x)), second(nullptr) 2935449: { ; } 2935449: 2935449: template, 2935449: __not_>, 2935449: is_constructible<_T2, _U2>, 2935449: __not_>, 2935449: is_convertible<_U2, _T2>>::value, 2935449: bool> = true> 2935449: __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) 2935449: constexpr 2935449: pair(__zero_as_null_pointer_constant, _U2&& __y, ...) 2935449: : first(nullptr), second(std::forward<_U2>(__y)) 2935449: { ; } 2935449: 2935449: template, 2935449: __not_>, 2935449: is_constructible<_T2, _U2>, 2935449: __not_>, 2935449: __not_>>::value, 2935449: bool> = false> 2935449: __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) 2935449: explicit constexpr 2935449: pair(__zero_as_null_pointer_constant, _U2&& __y, ...) 2935449: : first(nullptr), second(std::forward<_U2>(__y)) 2935449: { ; } 2935449: 2935449: 2935449: 2935449: template() 2935449: && _PCCP::template 2935449: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 2935449: bool>::type=true> 2935449: constexpr pair(_U1&& __x, _U2&& __y) 2935449: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) 2935449: { ; } 2935449: 2935449: template() 2935449: && !_PCCP::template 2935449: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 2935449: bool>::type=false> 2935449: explicit constexpr pair(_U1&& __x, _U2&& __y) 2935449: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) 2935449: { ; } 2935449: 2935449: 2935449: template::template 2935449: _MoveConstructiblePair<_U1, _U2>() 2935449: && _PCCFP<_U1, _U2>::template 2935449: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 2935449: bool>::type=true> 2935449: constexpr pair(pair<_U1, _U2>&& __p) 2935449: : first(std::forward<_U1>(__p.first)), 2935449: second(std::forward<_U2>(__p.second)) 2935449: { ; } 2935449: 2935449: template::template 2935449: _MoveConstructiblePair<_U1, _U2>() 2935449: && !_PCCFP<_U1, _U2>::template 2935449: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 2935449: bool>::type=false> 2935449: explicit constexpr pair(pair<_U1, _U2>&& __p) 2935449: : first(std::forward<_U1>(__p.first)), 2935449: second(std::forward<_U2>(__p.second)) 2935449: { ; } 2935449: 2935449: 2935449: 2935449: pair& 2935449: operator=(__conditional_t<__and_, 2935449: is_copy_assignable<_T2>>::value, 2935449: const pair&, const __nonesuch&> __p) 2935449: { 2935449: first = __p.first; 2935449: second = __p.second; 2935449: return *this; 2935449: } 2935449: 2935449: pair& 2935449: operator=(__conditional_t<__and_, 2935449: is_move_assignable<_T2>>::value, 2935449: pair&&, __nonesuch&&> __p) 2935449: noexcept(__and_, 2935449: is_nothrow_move_assignable<_T2>>::value) 2935449: { 2935449: first = std::forward(__p.first); 2935449: second = std::forward(__p.second); 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: typename enable_if<__and_, 2935449: is_assignable<_T2&, const _U2&>>::value, 2935449: pair&>::type 2935449: operator=(const pair<_U1, _U2>& __p) 2935449: { 2935449: first = __p.first; 2935449: second = __p.second; 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: typename enable_if<__and_, 2935449: is_assignable<_T2&, _U2&&>>::value, 2935449: pair&>::type 2935449: operator=(pair<_U1, _U2>&& __p) 2935449: { 2935449: first = std::forward<_U1>(__p.first); 2935449: second = std::forward<_U2>(__p.second); 2935449: return *this; 2935449: } 2935449: # 1015 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: }; 2935449: # 1057 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline constexpr bool 2935449: operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 2935449: { return __x.first == __y.first && __x.second == __y.second; } 2935449: # 1070 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline constexpr bool 2935449: operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 2935449: { return __x.first < __y.first 2935449: || (!(__y.first < __x.first) && __x.second < __y.second); } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline constexpr bool 2935449: operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 2935449: { return !(__x == __y); } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline constexpr bool 2935449: operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 2935449: { return __y < __x; } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline constexpr bool 2935449: operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 2935449: { return !(__y < __x); } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline constexpr bool 2935449: operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 2935449: { return !(__x < __y); } 2935449: # 1112 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: template 2935449: inline 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: 2935449: swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) 2935449: noexcept(noexcept(__x.swap(__y))) 2935449: { __x.swap(__y); } 2935449: # 1161 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: template 2935449: constexpr pair::__type, 2935449: typename __decay_and_strip<_T2>::__type> 2935449: make_pair(_T1&& __x, _T2&& __y) 2935449: { 2935449: typedef typename __decay_and_strip<_T1>::__type __ds_type1; 2935449: typedef typename __decay_and_strip<_T2>::__type __ds_type2; 2935449: typedef pair<__ds_type1, __ds_type2> __pair_type; 2935449: return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); 2935449: } 2935449: # 1184 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: template 2935449: struct __is_tuple_like_impl> : true_type 2935449: { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct tuple_size> 2935449: : public integral_constant { }; 2935449: 2935449: 2935449: template 2935449: struct tuple_element<0, pair<_Tp1, _Tp2>> 2935449: { typedef _Tp1 type; }; 2935449: 2935449: 2935449: template 2935449: struct tuple_element<1, pair<_Tp1, _Tp2>> 2935449: { typedef _Tp2 type; }; 2935449: # 1213 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++14-extensions" 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: template 2935449: inline constexpr bool __is_pair = false; 2935449: 2935449: template 2935449: inline constexpr bool __is_pair> = true; 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: 2935449: template 2935449: struct __pair_get; 2935449: 2935449: template<> 2935449: struct __pair_get<0> 2935449: { 2935449: template 2935449: static constexpr _Tp1& 2935449: __get(pair<_Tp1, _Tp2>& __pair) noexcept 2935449: { return __pair.first; } 2935449: 2935449: template 2935449: static constexpr _Tp1&& 2935449: __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept 2935449: { return std::forward<_Tp1>(__pair.first); } 2935449: 2935449: template 2935449: static constexpr const _Tp1& 2935449: __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept 2935449: { return __pair.first; } 2935449: 2935449: template 2935449: static constexpr const _Tp1&& 2935449: __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept 2935449: { return std::forward(__pair.first); } 2935449: }; 2935449: 2935449: template<> 2935449: struct __pair_get<1> 2935449: { 2935449: template 2935449: static constexpr _Tp2& 2935449: __get(pair<_Tp1, _Tp2>& __pair) noexcept 2935449: { return __pair.second; } 2935449: 2935449: template 2935449: static constexpr _Tp2&& 2935449: __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept 2935449: { return std::forward<_Tp2>(__pair.second); } 2935449: 2935449: template 2935449: static constexpr const _Tp2& 2935449: __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept 2935449: { return __pair.second; } 2935449: 2935449: template 2935449: static constexpr const _Tp2&& 2935449: __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept 2935449: { return std::forward(__pair.second); } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& 2935449: get(pair<_Tp1, _Tp2>& __in) noexcept 2935449: { return __pair_get<_Int>::__get(__in); } 2935449: 2935449: template 2935449: constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& 2935449: get(pair<_Tp1, _Tp2>&& __in) noexcept 2935449: { return __pair_get<_Int>::__move_get(std::move(__in)); } 2935449: 2935449: template 2935449: constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& 2935449: get(const pair<_Tp1, _Tp2>& __in) noexcept 2935449: { return __pair_get<_Int>::__const_get(__in); } 2935449: 2935449: template 2935449: constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& 2935449: get(const pair<_Tp1, _Tp2>&& __in) noexcept 2935449: { return __pair_get<_Int>::__const_move_get(std::move(__in)); } 2935449: # 1365 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_pair.h" 3 2935449: 2935449: } 2935449: # 65 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/debug/debug.h" 1 3 2935449: # 48 "/usr/arm-linux-gnueabi/include/c++/15/debug/debug.h" 3 2935449: namespace std 2935449: { 2935449: namespace __debug { } 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: namespace __gnu_debug 2935449: { 2935449: using namespace std::__debug; 2935449: 2935449: template 2935449: struct _Safe_iterator; 2935449: } 2935449: # 70 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/predefined_ops.h" 1 3 2935449: # 35 "/usr/arm-linux-gnueabi/include/c++/15/bits/predefined_ops.h" 3 2935449: namespace __gnu_cxx 2935449: { 2935449: namespace __ops 2935449: { 2935449: struct _Iter_less_iter 2935449: { 2935449: template 2935449: 2935449: bool 2935449: operator()(_Iterator1 __it1, _Iterator2 __it2) const 2935449: { return *__it1 < *__it2; } 2935449: }; 2935449: 2935449: 2935449: inline _Iter_less_iter 2935449: __iter_less_iter() 2935449: { return _Iter_less_iter(); } 2935449: 2935449: struct _Iter_less_val 2935449: { 2935449: 2935449: constexpr _Iter_less_val() = default; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: explicit 2935449: _Iter_less_val(_Iter_less_iter) { } 2935449: 2935449: template 2935449: 2935449: bool 2935449: operator()(_Iterator __it, _Value& __val) const 2935449: { return *__it < __val; } 2935449: }; 2935449: 2935449: 2935449: inline _Iter_less_val 2935449: __iter_less_val() 2935449: { return _Iter_less_val(); } 2935449: 2935449: 2935449: inline _Iter_less_val 2935449: __iter_comp_val(_Iter_less_iter) 2935449: { return _Iter_less_val(); } 2935449: 2935449: struct _Val_less_iter 2935449: { 2935449: 2935449: constexpr _Val_less_iter() = default; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: explicit 2935449: _Val_less_iter(_Iter_less_iter) { } 2935449: 2935449: template 2935449: 2935449: bool 2935449: operator()(_Value& __val, _Iterator __it) const 2935449: { return __val < *__it; } 2935449: }; 2935449: 2935449: 2935449: inline _Val_less_iter 2935449: __val_less_iter() 2935449: { return _Val_less_iter(); } 2935449: 2935449: 2935449: inline _Val_less_iter 2935449: __val_comp_iter(_Iter_less_iter) 2935449: { return _Val_less_iter(); } 2935449: 2935449: struct _Iter_equal_to_iter 2935449: { 2935449: template 2935449: 2935449: bool 2935449: operator()(_Iterator1 __it1, _Iterator2 __it2) const 2935449: { return *__it1 == *__it2; } 2935449: }; 2935449: 2935449: 2935449: inline _Iter_equal_to_iter 2935449: __iter_equal_to_iter() 2935449: { return _Iter_equal_to_iter(); } 2935449: 2935449: struct _Iter_equal_to_val 2935449: { 2935449: template 2935449: 2935449: bool 2935449: operator()(_Iterator __it, _Value& __val) const 2935449: { return *__it == __val; } 2935449: }; 2935449: 2935449: 2935449: inline _Iter_equal_to_val 2935449: __iter_equal_to_val() 2935449: { return _Iter_equal_to_val(); } 2935449: 2935449: 2935449: inline _Iter_equal_to_val 2935449: __iter_comp_val(_Iter_equal_to_iter) 2935449: { return _Iter_equal_to_val(); } 2935449: 2935449: template 2935449: struct _Iter_comp_iter 2935449: { 2935449: _Compare _M_comp; 2935449: 2935449: explicit 2935449: _Iter_comp_iter(_Compare __comp) 2935449: : _M_comp(std::move(__comp)) 2935449: { } 2935449: 2935449: template 2935449: 2935449: bool 2935449: operator()(_Iterator1 __it1, _Iterator2 __it2) 2935449: { return bool(_M_comp(*__it1, *__it2)); } 2935449: }; 2935449: 2935449: template 2935449: 2935449: inline _Iter_comp_iter<_Compare> 2935449: __iter_comp_iter(_Compare __comp) 2935449: { return _Iter_comp_iter<_Compare>(std::move(__comp)); } 2935449: 2935449: template 2935449: struct _Iter_comp_val 2935449: { 2935449: _Compare _M_comp; 2935449: 2935449: 2935449: explicit 2935449: _Iter_comp_val(_Compare __comp) 2935449: : _M_comp(std::move(__comp)) 2935449: { } 2935449: 2935449: 2935449: explicit 2935449: _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) 2935449: : _M_comp(__comp._M_comp) 2935449: { } 2935449: 2935449: 2935449: 2935449: explicit 2935449: _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) 2935449: : _M_comp(std::move(__comp._M_comp)) 2935449: { } 2935449: 2935449: 2935449: template 2935449: 2935449: bool 2935449: operator()(_Iterator __it, _Value& __val) 2935449: { return bool(_M_comp(*__it, __val)); } 2935449: }; 2935449: 2935449: template 2935449: 2935449: inline _Iter_comp_val<_Compare> 2935449: __iter_comp_val(_Compare __comp) 2935449: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 2935449: 2935449: template 2935449: 2935449: inline _Iter_comp_val<_Compare> 2935449: __iter_comp_val(_Iter_comp_iter<_Compare> __comp) 2935449: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 2935449: 2935449: template 2935449: struct _Val_comp_iter 2935449: { 2935449: _Compare _M_comp; 2935449: 2935449: 2935449: explicit 2935449: _Val_comp_iter(_Compare __comp) 2935449: : _M_comp(std::move(__comp)) 2935449: { } 2935449: 2935449: 2935449: explicit 2935449: _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) 2935449: : _M_comp(__comp._M_comp) 2935449: { } 2935449: 2935449: 2935449: 2935449: explicit 2935449: _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) 2935449: : _M_comp(std::move(__comp._M_comp)) 2935449: { } 2935449: 2935449: 2935449: template 2935449: 2935449: bool 2935449: operator()(_Value& __val, _Iterator __it) 2935449: { return bool(_M_comp(__val, *__it)); } 2935449: }; 2935449: 2935449: template 2935449: 2935449: inline _Val_comp_iter<_Compare> 2935449: __val_comp_iter(_Compare __comp) 2935449: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 2935449: 2935449: template 2935449: 2935449: inline _Val_comp_iter<_Compare> 2935449: __val_comp_iter(_Iter_comp_iter<_Compare> __comp) 2935449: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 2935449: 2935449: template 2935449: struct _Iter_equals_val 2935449: { 2935449: _Value& _M_value; 2935449: 2935449: 2935449: explicit 2935449: _Iter_equals_val(_Value& __value) 2935449: : _M_value(__value) 2935449: { } 2935449: 2935449: template 2935449: 2935449: bool 2935449: operator()(_Iterator __it) 2935449: { return *__it == _M_value; } 2935449: }; 2935449: 2935449: template 2935449: 2935449: inline _Iter_equals_val<_Value> 2935449: __iter_equals_val(_Value& __val) 2935449: { return _Iter_equals_val<_Value>(__val); } 2935449: 2935449: template 2935449: struct _Iter_equals_iter 2935449: { 2935449: _Iterator1 _M_it1; 2935449: 2935449: 2935449: explicit 2935449: _Iter_equals_iter(_Iterator1 __it1) 2935449: : _M_it1(__it1) 2935449: { } 2935449: 2935449: template 2935449: 2935449: bool 2935449: operator()(_Iterator2 __it2) 2935449: { return *__it2 == *_M_it1; } 2935449: }; 2935449: 2935449: template 2935449: 2935449: inline _Iter_equals_iter<_Iterator> 2935449: __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) 2935449: { return _Iter_equals_iter<_Iterator>(__it); } 2935449: 2935449: template 2935449: struct _Iter_pred 2935449: { 2935449: _Predicate _M_pred; 2935449: 2935449: 2935449: explicit 2935449: _Iter_pred(_Predicate __pred) 2935449: : _M_pred(std::move(__pred)) 2935449: { } 2935449: 2935449: template 2935449: 2935449: bool 2935449: operator()(_Iterator __it) 2935449: { return bool(_M_pred(*__it)); } 2935449: }; 2935449: 2935449: template 2935449: 2935449: inline _Iter_pred<_Predicate> 2935449: __pred_iter(_Predicate __pred) 2935449: { return _Iter_pred<_Predicate>(std::move(__pred)); } 2935449: 2935449: template 2935449: struct _Iter_comp_to_val 2935449: { 2935449: _Compare _M_comp; 2935449: _Value& _M_value; 2935449: 2935449: 2935449: _Iter_comp_to_val(_Compare __comp, _Value& __value) 2935449: : _M_comp(std::move(__comp)), _M_value(__value) 2935449: { } 2935449: 2935449: template 2935449: 2935449: bool 2935449: operator()(_Iterator __it) 2935449: { return bool(_M_comp(*__it, _M_value)); } 2935449: }; 2935449: 2935449: template 2935449: _Iter_comp_to_val<_Compare, _Value> 2935449: 2935449: __iter_comp_val(_Compare __comp, _Value &__val) 2935449: { 2935449: return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); 2935449: } 2935449: 2935449: template 2935449: struct _Iter_comp_to_iter 2935449: { 2935449: _Compare _M_comp; 2935449: _Iterator1 _M_it1; 2935449: 2935449: 2935449: _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) 2935449: : _M_comp(std::move(__comp)), _M_it1(__it1) 2935449: { } 2935449: 2935449: template 2935449: 2935449: bool 2935449: operator()(_Iterator2 __it2) 2935449: { return bool(_M_comp(*__it2, *_M_it1)); } 2935449: }; 2935449: 2935449: template 2935449: 2935449: inline _Iter_comp_to_iter<_Compare, _Iterator> 2935449: __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) 2935449: { 2935449: return _Iter_comp_to_iter<_Compare, _Iterator>( 2935449: std::move(__comp._M_comp), __it); 2935449: } 2935449: 2935449: template 2935449: struct _Iter_negate 2935449: { 2935449: _Predicate _M_pred; 2935449: 2935449: 2935449: explicit 2935449: _Iter_negate(_Predicate __pred) 2935449: : _M_pred(std::move(__pred)) 2935449: { } 2935449: 2935449: template 2935449: 2935449: bool 2935449: operator()(_Iterator __it) 2935449: { return !bool(_M_pred(*__it)); } 2935449: }; 2935449: 2935449: template 2935449: 2935449: inline _Iter_negate<_Predicate> 2935449: __negate(_Iter_pred<_Predicate> __pred) 2935449: { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } 2935449: 2935449: } 2935449: } 2935449: # 72 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 2 3 2935449: # 83 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: inline int 2935449: __memcmp(const _Tp* __first1, const _Up* __first2, size_t __num) 2935449: { 2935449: 2935449: static_assert(sizeof(_Tp) == sizeof(_Up), "can be compared with memcmp"); 2935449: # 109 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); 2935449: } 2935449: # 153 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: 2935449: inline void 2935449: iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: # 186 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: swap(*__a, *__b); 2935449: 2935449: } 2935449: # 202 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: 2935449: _ForwardIterator2 2935449: swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 2935449: _ForwardIterator2 __first2) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: ; 2935449: 2935449: for (; __first1 != __last1; ++__first1, (void)++__first2) 2935449: std::iter_swap(__first1, __first2); 2935449: return __first2; 2935449: } 2935449: # 231 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline const _Tp& 2935449: min(const _Tp& __a, const _Tp& __b) 2935449: { 2935449: 2935449: 2935449: 2935449: if (__b < __a) 2935449: return __b; 2935449: return __a; 2935449: } 2935449: # 255 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline const _Tp& 2935449: max(const _Tp& __a, const _Tp& __b) 2935449: { 2935449: 2935449: 2935449: 2935449: if (__a < __b) 2935449: return __b; 2935449: return __a; 2935449: } 2935449: # 279 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline const _Tp& 2935449: min(const _Tp& __a, const _Tp& __b, _Compare __comp) 2935449: { 2935449: 2935449: if (__comp(__b, __a)) 2935449: return __b; 2935449: return __a; 2935449: } 2935449: # 301 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline const _Tp& 2935449: max(const _Tp& __a, const _Tp& __b, _Compare __comp) 2935449: { 2935449: 2935449: if (__comp(__a, __b)) 2935449: return __b; 2935449: return __a; 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Deque_iterator; 2935449: 2935449: struct _Bit_iterator; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct char_traits; 2935449: 2935449: template 2935449: class istreambuf_iterator; 2935449: 2935449: template 2935449: class ostreambuf_iterator; 2935449: 2935449: template 2935449: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 2935449: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 2935449: __copy_move_a2(_CharT*, _CharT*, 2935449: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 2935449: 2935449: template 2935449: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 2935449: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 2935449: __copy_move_a2(const _CharT*, const _CharT*, 2935449: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 2935449: 2935449: template 2935449: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 2935449: _CharT*>::__type 2935449: __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, 2935449: istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); 2935449: 2935449: template 2935449: typename __gnu_cxx::__enable_if< 2935449: __is_char<_CharT>::__value, 2935449: std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type 2935449: __copy_move_a2( 2935449: istreambuf_iterator<_CharT, char_traits<_CharT> >, 2935449: istreambuf_iterator<_CharT, char_traits<_CharT> >, 2935449: std::_Deque_iterator<_CharT, _CharT&, _CharT*>); 2935449: # 395 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: inline void 2935449: __assign_one(_OutIter& __out, _InIter& __in) 2935449: { 2935449: 2935449: if constexpr (_IsMove) 2935449: *__out = std::move(*__in); 2935449: else 2935449: 2935449: *__out = *__in; 2935449: } 2935449: 2935449: template 2935449: 2935449: inline _OutIter 2935449: __copy_move_a2(_InIter __first, _Sent __last, _OutIter __result) 2935449: { 2935449: typedef __decltype(*__first) _InRef; 2935449: typedef __decltype(*__result) _OutRef; 2935449: if constexpr (!__is_trivially_assignable(_OutRef, _InRef)) 2935449: { } 2935449: else if (std::__is_constant_evaluated()) 2935449: { } 2935449: else if constexpr (__memcpyable<_OutIter, _InIter>::__value) 2935449: { 2935449: ptrdiff_t __n = std::distance(__first, __last); 2935449: if (__builtin_expect(__n > 1, true)) 2935449: { 2935449: __builtin_memmove(__result, 2935449: __first, 2935449: __n * sizeof(*__first)); 2935449: __result += __n; 2935449: } 2935449: else if (__n == 1) 2935449: { 2935449: std::__assign_one<_IsMove>(__result, __first); 2935449: ++__result; 2935449: } 2935449: return __result; 2935449: } 2935449: # 461 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: for (; __first != __last; ++__result, (void)++__first) 2935449: std::__assign_one<_IsMove>(__result, __first); 2935449: return __result; 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: template 2935449: _OI 2935449: __copy_move_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, 2935449: std::_Deque_iterator<_Tp, _Ref, _Ptr>, 2935449: _OI); 2935449: 2935449: template 2935449: std::_Deque_iterator<_OTp, _OTp&, _OTp*> 2935449: __copy_move_a1(std::_Deque_iterator<_ITp, _IRef, _IPtr>, 2935449: std::_Deque_iterator<_ITp, _IRef, _IPtr>, 2935449: std::_Deque_iterator<_OTp, _OTp&, _OTp*>); 2935449: 2935449: template 2935449: typename __gnu_cxx::__enable_if< 2935449: __is_random_access_iter<_II>::__value, 2935449: std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type 2935449: __copy_move_a1(_II, _II, std::_Deque_iterator<_Tp, _Tp&, _Tp*>); 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline _OI 2935449: __copy_move_a1(_II __first, _II __last, _OI __result) 2935449: { return std::__copy_move_a2<_IsMove>(__first, __last, __result); } 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline _OI 2935449: __copy_move_a(_II __first, _II __last, _OI __result) 2935449: { 2935449: return std::__niter_wrap(__result, 2935449: std::__copy_move_a1<_IsMove>(std::__niter_base(__first), 2935449: std::__niter_base(__last), 2935449: std::__niter_base(__result))); 2935449: } 2935449: 2935449: template 2935449: 2935449: _OI 2935449: __copy_move_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 2935449: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 2935449: _OI); 2935449: 2935449: template 2935449: 2935449: __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> 2935449: __copy_move_a(_II, _II, 2935449: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); 2935449: 2935449: template 2935449: 2935449: ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> 2935449: __copy_move_a(const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 2935449: const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 2935449: const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: template 2935449: 2935449: _OutputIterator 2935449: __copy_n_a(_InputIterator __first, _Size __n, _OutputIterator __result, 2935449: bool) 2935449: { 2935449: typedef __decltype(*__first) _InRef; 2935449: typedef __decltype(*__result) _OutRef; 2935449: if constexpr (!__is_trivially_assignable(_OutRef, _InRef)) 2935449: { } 2935449: 2935449: 2935449: 2935449: 2935449: else if constexpr (__memcpyable<_OutputIterator, 2935449: _InputIterator>::__value) 2935449: { 2935449: if (__builtin_expect(__n > 1, true)) 2935449: { 2935449: __builtin_memmove(__result, 2935449: __first, 2935449: __n * sizeof(*__first)); 2935449: __result += __n; 2935449: } 2935449: else if (__n == 1) 2935449: *__result++ = *__first; 2935449: return __result; 2935449: } 2935449: # 581 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: if (__n > 0) 2935449: { 2935449: while (true) 2935449: { 2935449: *__result = *__first; 2935449: ++__result; 2935449: if (--__n > 0) 2935449: ++__first; 2935449: else 2935449: break; 2935449: } 2935449: } 2935449: return __result; 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: template 2935449: typename __gnu_cxx::__enable_if< 2935449: __is_char<_CharT>::__value, _CharT*>::__type 2935449: __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, 2935449: _Size, _CharT*, bool); 2935449: 2935449: template 2935449: typename __gnu_cxx::__enable_if< 2935449: __is_char<_CharT>::__value, 2935449: std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type 2935449: __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, _Size, 2935449: std::_Deque_iterator<_CharT, _CharT&, _CharT*>, 2935449: bool); 2935449: # 630 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: 2935449: inline _OI 2935449: copy(_II __first, _II __last, _OI __result) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: ; 2935449: 2935449: return std::__copy_move_a<__is_move_iterator<_II>::__value> 2935449: (std::__miter_base(__first), std::__miter_base(__last), __result); 2935449: } 2935449: # 663 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: 2935449: inline _OI 2935449: move(_II __first, _II __last, _OI __result) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: ; 2935449: 2935449: return std::__copy_move_a(std::__miter_base(__first), 2935449: std::__miter_base(__last), __result); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: template 2935449: 2935449: inline _BI2 2935449: __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) 2935449: { 2935449: typedef __decltype(*__first) _InRef; 2935449: typedef __decltype(*__result) _OutRef; 2935449: if constexpr (!__is_trivially_assignable(_OutRef, _InRef)) 2935449: { } 2935449: 2935449: 2935449: 2935449: 2935449: else if constexpr (__memcpyable<_BI2, _BI1>::__value) 2935449: { 2935449: ptrdiff_t __n = std::distance(__first, __last); 2935449: std::advance(__result, -__n); 2935449: if (__builtin_expect(__n > 1, true)) 2935449: { 2935449: __builtin_memmove(__result, 2935449: __first, 2935449: __n * sizeof(*__first)); 2935449: } 2935449: else if (__n == 1) 2935449: std::__assign_one<_IsMove>(__result, __first); 2935449: return __result; 2935449: } 2935449: # 735 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: while (__first != __last) 2935449: { 2935449: --__last; 2935449: --__result; 2935449: std::__assign_one<_IsMove>(__result, __last); 2935449: } 2935449: return __result; 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline _BI2 2935449: __copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result) 2935449: { return std::__copy_move_backward_a2<_IsMove>(__first, __last, __result); } 2935449: 2935449: template 2935449: _OI 2935449: __copy_move_backward_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, 2935449: std::_Deque_iterator<_Tp, _Ref, _Ptr>, 2935449: _OI); 2935449: 2935449: template 2935449: std::_Deque_iterator<_OTp, _OTp&, _OTp*> 2935449: __copy_move_backward_a1( 2935449: std::_Deque_iterator<_ITp, _IRef, _IPtr>, 2935449: std::_Deque_iterator<_ITp, _IRef, _IPtr>, 2935449: std::_Deque_iterator<_OTp, _OTp&, _OTp*>); 2935449: 2935449: template 2935449: typename __gnu_cxx::__enable_if< 2935449: __is_random_access_iter<_II>::__value, 2935449: std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type 2935449: __copy_move_backward_a1(_II, _II, 2935449: std::_Deque_iterator<_Tp, _Tp&, _Tp*>); 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline _OI 2935449: __copy_move_backward_a(_II __first, _II __last, _OI __result) 2935449: { 2935449: return std::__niter_wrap(__result, 2935449: std::__copy_move_backward_a1<_IsMove> 2935449: (std::__niter_base(__first), std::__niter_base(__last), 2935449: std::__niter_base(__result))); 2935449: } 2935449: 2935449: template 2935449: 2935449: _OI 2935449: __copy_move_backward_a( 2935449: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 2935449: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 2935449: _OI); 2935449: 2935449: template 2935449: 2935449: __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> 2935449: __copy_move_backward_a(_II, _II, 2935449: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); 2935449: 2935449: template 2935449: 2935449: ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> 2935449: __copy_move_backward_a( 2935449: const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 2935449: const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 2935449: const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); 2935449: # 833 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline _BI2 2935449: copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: ; 2935449: 2935449: return std::__copy_move_backward_a<__is_move_iterator<_BI1>::__value> 2935449: (std::__miter_base(__first), std::__miter_base(__last), __result); 2935449: } 2935449: # 869 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline _BI2 2935449: move_backward(_BI1 __first, _BI1 __last, _BI2 __result) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: ; 2935449: 2935449: return std::__copy_move_backward_a(std::__miter_base(__first), 2935449: std::__miter_base(__last), 2935449: __result); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: template 2935449: 2935449: inline void 2935449: __fill_a1(_ForwardIterator __first, _ForwardIterator __last, 2935449: const _Tp& __value) 2935449: { 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wlong-long" 2935449: 2935449: 2935449: 2935449: 2935449: const bool __load_outside_loop = 2935449: 2935449: 2935449: __is_trivially_constructible(_Tp, const _Tp&) 2935449: && __is_trivially_assignable(__decltype(*__first), const _Tp&) 2935449: 2935449: 2935449: 2935449: 2935449: && sizeof(_Tp) <= sizeof(long long); 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: 2935449: typedef typename __gnu_cxx::__conditional_type<__load_outside_loop, 2935449: const _Tp, 2935449: const _Tp&>::__type _Up; 2935449: _Up __val(__value); 2935449: for (; __first != __last; ++__first) 2935449: *__first = __val; 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: template 2935449: 2935449: inline typename 2935449: __gnu_cxx::__enable_if<__is_byte<_Up>::__value 2935449: && (__are_same<_Up, _Tp>::__value 2935449: || __memcpyable_integer<_Tp>::__width), 2935449: void>::__type 2935449: __fill_a1(_Up* __first, _Up* __last, const _Tp& __x) 2935449: { 2935449: 2935449: 2935449: const _Up __val = __x; 2935449: # 950 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: if (const size_t __len = __last - __first) 2935449: __builtin_memset(__first, static_cast(__val), __len); 2935449: } 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline void 2935449: __fill_a1(::__gnu_cxx::__normal_iterator<_Ite, _Cont> __first, 2935449: ::__gnu_cxx::__normal_iterator<_Ite, _Cont> __last, 2935449: const _Tp& __value) 2935449: { std::__fill_a1(__first.base(), __last.base(), __value); } 2935449: 2935449: template 2935449: void 2935449: __fill_a1(const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, 2935449: const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, 2935449: const _VTp&); 2935449: 2935449: 2935449: void 2935449: __fill_a1(std::_Bit_iterator, std::_Bit_iterator, 2935449: const bool&); 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline void 2935449: __fill_a(_FIte __first, _FIte __last, const _Tp& __value) 2935449: { std::__fill_a1(__first, __last, __value); } 2935449: 2935449: template 2935449: 2935449: void 2935449: __fill_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 2935449: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 2935449: const _Tp&); 2935449: # 1000 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline void 2935449: fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) 2935449: { 2935449: 2935449: 2935449: 2935449: ; 2935449: 2935449: std::__fill_a(__first, __last, __value); 2935449: } 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wlong-long" 2935449: 2935449: inline constexpr int 2935449: __size_to_integer(int __n) { return __n; } 2935449: inline constexpr unsigned 2935449: __size_to_integer(unsigned __n) { return __n; } 2935449: inline constexpr long 2935449: __size_to_integer(long __n) { return __n; } 2935449: inline constexpr unsigned long 2935449: __size_to_integer(unsigned long __n) { return __n; } 2935449: inline constexpr long long 2935449: __size_to_integer(long long __n) { return __n; } 2935449: inline constexpr unsigned long long 2935449: __size_to_integer(unsigned long long __n) { return __n; } 2935449: # 1055 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: inline constexpr long long 2935449: __size_to_integer(float __n) { return (long long)__n; } 2935449: inline constexpr long long 2935449: __size_to_integer(double __n) { return (long long)__n; } 2935449: inline constexpr long long 2935449: __size_to_integer(long double __n) { return (long long)__n; } 2935449: 2935449: 2935449: 2935449: 2935449: #pragma GCC diagnostic pop 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: #pragma GCC diagnostic ignored "-Wlong-long" 2935449: template 2935449: 2935449: inline _OutputIterator 2935449: __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) 2935449: { 2935449: 2935449: const bool __load_outside_loop = 2935449: 2935449: 2935449: __is_trivially_constructible(_Tp, const _Tp&) 2935449: && __is_trivially_assignable(__decltype(*__first), const _Tp&) 2935449: 2935449: 2935449: 2935449: 2935449: && sizeof(_Tp) <= sizeof(long long); 2935449: 2935449: 2935449: 2935449: typedef typename __gnu_cxx::__conditional_type<__load_outside_loop, 2935449: const _Tp, 2935449: const _Tp&>::__type _Up; 2935449: _Up __val(__value); 2935449: for (; __n > 0; --__n, (void) ++__first) 2935449: *__first = __val; 2935449: return __first; 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: template 2935449: 2935449: ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> 2935449: __fill_n_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>& __first, 2935449: _Size __n, const _Tp& __value, 2935449: std::input_iterator_tag); 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline _OutputIterator 2935449: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, 2935449: std::output_iterator_tag) 2935449: { 2935449: 2935449: static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); 2935449: 2935449: return __fill_n_a1(__first, __n, __value); 2935449: } 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline _OutputIterator 2935449: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, 2935449: std::input_iterator_tag) 2935449: { 2935449: 2935449: static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); 2935449: 2935449: return __fill_n_a1(__first, __n, __value); 2935449: } 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline _OutputIterator 2935449: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, 2935449: std::random_access_iterator_tag) 2935449: { 2935449: 2935449: static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); 2935449: 2935449: if (__n <= 0) 2935449: return __first; 2935449: 2935449: ; 2935449: 2935449: std::__fill_a(__first, __first + __n, __value); 2935449: return __first + __n; 2935449: } 2935449: # 1169 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline _OI 2935449: fill_n(_OI __first, _Size __n, const _Tp& __value) 2935449: { 2935449: 2935449: 2935449: 2935449: return std::__fill_n_a(__first, std::__size_to_integer(__n), __value, 2935449: std::__iterator_category(__first)); 2935449: } 2935449: 2935449: template 2935449: struct __equal 2935449: { 2935449: template 2935449: 2935449: static bool 2935449: equal(_II1 __first1, _II1 __last1, _II2 __first2) 2935449: { 2935449: for (; __first1 != __last1; ++__first1, (void) ++__first2) 2935449: if (!(*__first1 == *__first2)) 2935449: return false; 2935449: return true; 2935449: } 2935449: }; 2935449: 2935449: template<> 2935449: struct __equal 2935449: { 2935449: template 2935449: 2935449: static bool 2935449: equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) 2935449: { 2935449: if (const size_t __len = (__last1 - __first1)) 2935449: return !std::__memcmp(__first1, __first2, __len); 2935449: return true; 2935449: } 2935449: }; 2935449: 2935449: template 2935449: typename __gnu_cxx::__enable_if< 2935449: __is_random_access_iter<_II>::__value, bool>::__type 2935449: __equal_aux1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, 2935449: std::_Deque_iterator<_Tp, _Ref, _Ptr>, 2935449: _II); 2935449: 2935449: template 2935449: bool 2935449: __equal_aux1(std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 2935449: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 2935449: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); 2935449: 2935449: template 2935449: typename __gnu_cxx::__enable_if< 2935449: __is_random_access_iter<_II>::__value, bool>::__type 2935449: __equal_aux1(_II, _II, 2935449: std::_Deque_iterator<_Tp, _Ref, _Ptr>); 2935449: 2935449: template 2935449: 2935449: inline bool 2935449: __equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2) 2935449: { 2935449: typedef typename iterator_traits<_II1>::value_type _ValueType1; 2935449: const bool __simple = ((__is_integer<_ValueType1>::__value 2935449: 2935449: || __is_pointer(_ValueType1) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: ) && __memcmpable<_II1, _II2>::__value); 2935449: return std::__equal<__simple>::equal(__first1, __last1, __first2); 2935449: } 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: 2935449: inline bool 2935449: __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) 2935449: { 2935449: return std::__equal_aux1(std::__niter_base(__first1), 2935449: std::__niter_base(__last1), 2935449: std::__niter_base(__first2)); 2935449: } 2935449: 2935449: template 2935449: 2935449: bool 2935449: __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 2935449: const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 2935449: _II2); 2935449: 2935449: template 2935449: 2935449: bool 2935449: __equal_aux(_II1, _II1, 2935449: const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); 2935449: 2935449: template 2935449: 2935449: bool 2935449: __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 2935449: const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 2935449: const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); 2935449: 2935449: template 2935449: struct __lc_rai 2935449: { 2935449: template 2935449: 2935449: static _II1 2935449: __newlast1(_II1, _II1 __last1, _II2, _II2) 2935449: { return __last1; } 2935449: 2935449: template 2935449: 2935449: static bool 2935449: __cnd2(_II __first, _II __last) 2935449: { return __first != __last; } 2935449: }; 2935449: 2935449: template<> 2935449: struct __lc_rai 2935449: { 2935449: template 2935449: 2935449: static _RAI1 2935449: __newlast1(_RAI1 __first1, _RAI1 __last1, 2935449: _RAI2 __first2, _RAI2 __last2) 2935449: { 2935449: const typename iterator_traits<_RAI1>::difference_type 2935449: __diff1 = __last1 - __first1; 2935449: const typename iterator_traits<_RAI2>::difference_type 2935449: __diff2 = __last2 - __first2; 2935449: return __diff2 < __diff1 ? __first1 + __diff2 : __last1; 2935449: } 2935449: 2935449: template 2935449: static bool 2935449: __cnd2(_RAI, _RAI) 2935449: { return true; } 2935449: }; 2935449: 2935449: template 2935449: 2935449: bool 2935449: __lexicographical_compare_impl(_II1 __first1, _II1 __last1, 2935449: _II2 __first2, _II2 __last2, 2935449: _Compare __comp) 2935449: { 2935449: typedef typename iterator_traits<_II1>::iterator_category _Category1; 2935449: typedef typename iterator_traits<_II2>::iterator_category _Category2; 2935449: typedef std::__lc_rai<_Category1, _Category2> __rai_type; 2935449: 2935449: __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); 2935449: for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); 2935449: ++__first1, (void)++__first2) 2935449: { 2935449: if (__comp(__first1, __first2)) 2935449: return true; 2935449: if (__comp(__first2, __first1)) 2935449: return false; 2935449: } 2935449: return __first1 == __last1 && __first2 != __last2; 2935449: } 2935449: 2935449: template 2935449: struct __lexicographical_compare 2935449: { 2935449: template 2935449: 2935449: static bool 2935449: __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 2935449: { 2935449: using __gnu_cxx::__ops::__iter_less_iter; 2935449: return std::__lexicographical_compare_impl(__first1, __last1, 2935449: __first2, __last2, 2935449: __iter_less_iter()); 2935449: } 2935449: 2935449: template 2935449: 2935449: static int 2935449: __3way(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 2935449: { 2935449: while (__first1 != __last1) 2935449: { 2935449: if (__first2 == __last2) 2935449: return +1; 2935449: if (*__first1 < *__first2) 2935449: return -1; 2935449: if (*__first2 < *__first1) 2935449: return +1; 2935449: ++__first1; 2935449: ++__first2; 2935449: } 2935449: return int(__first2 == __last2) - 1; 2935449: } 2935449: }; 2935449: 2935449: template<> 2935449: struct __lexicographical_compare 2935449: { 2935449: template 2935449: 2935449: static bool 2935449: __lc(const _Tp* __first1, const _Tp* __last1, 2935449: const _Up* __first2, const _Up* __last2) 2935449: { return __3way(__first1, __last1, __first2, __last2) < 0; } 2935449: 2935449: template 2935449: 2935449: static ptrdiff_t 2935449: __3way(const _Tp* __first1, const _Tp* __last1, 2935449: const _Up* __first2, const _Up* __last2) 2935449: { 2935449: const size_t __len1 = __last1 - __first1; 2935449: const size_t __len2 = __last2 - __first2; 2935449: if (const size_t __len = std::min(__len1, __len2)) 2935449: if (int __result = std::__memcmp(__first1, __first2, __len)) 2935449: return __result; 2935449: return ptrdiff_t(__len1 - __len2); 2935449: } 2935449: }; 2935449: 2935449: template 2935449: 2935449: inline bool 2935449: __lexicographical_compare_aux1(_II1 __first1, _II1 __last1, 2935449: _II2 __first2, _II2 __last2) 2935449: { 2935449: typedef typename iterator_traits<_II1>::value_type _ValueType1; 2935449: typedef typename iterator_traits<_II2>::value_type _ValueType2; 2935449: 2935449: const bool __simple = 2935449: (__is_memcmp_ordered_with<_ValueType1, _ValueType2>::__value 2935449: && __is_pointer(_II1) && __is_pointer(_II2) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: ); 2935449: 2935449: 2935449: 2935449: 2935449: return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, 2935449: __first2, __last2); 2935449: } 2935449: 2935449: template 2935449: bool 2935449: __lexicographical_compare_aux1( 2935449: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 2935449: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 2935449: _Tp2*, _Tp2*); 2935449: 2935449: template 2935449: bool 2935449: __lexicographical_compare_aux1(_Tp1*, _Tp1*, 2935449: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, 2935449: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); 2935449: 2935449: template 2935449: bool 2935449: __lexicographical_compare_aux1( 2935449: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 2935449: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 2935449: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, 2935449: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); 2935449: 2935449: template 2935449: 2935449: inline bool 2935449: __lexicographical_compare_aux(_II1 __first1, _II1 __last1, 2935449: _II2 __first2, _II2 __last2) 2935449: { 2935449: return std::__lexicographical_compare_aux1(std::__niter_base(__first1), 2935449: std::__niter_base(__last1), 2935449: std::__niter_base(__first2), 2935449: std::__niter_base(__last2)); 2935449: } 2935449: 2935449: template 2935449: 2935449: bool 2935449: __lexicographical_compare_aux( 2935449: const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, 2935449: const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, 2935449: _II2, _II2); 2935449: 2935449: template 2935449: 2935449: bool 2935449: __lexicographical_compare_aux( 2935449: _II1, _II1, 2935449: const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, 2935449: const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); 2935449: 2935449: template 2935449: 2935449: bool 2935449: __lexicographical_compare_aux( 2935449: const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, 2935449: const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, 2935449: const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, 2935449: const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); 2935449: 2935449: template 2935449: 2935449: _ForwardIterator 2935449: __lower_bound(_ForwardIterator __first, _ForwardIterator __last, 2935449: const _Tp& __val, _Compare __comp) 2935449: { 2935449: typedef typename iterator_traits<_ForwardIterator>::difference_type 2935449: _DistanceType; 2935449: 2935449: _DistanceType __len = std::distance(__first, __last); 2935449: 2935449: while (__len > 0) 2935449: { 2935449: _DistanceType __half = __len >> 1; 2935449: _ForwardIterator __middle = __first; 2935449: std::advance(__middle, __half); 2935449: if (__comp(__middle, __val)) 2935449: { 2935449: __first = __middle; 2935449: ++__first; 2935449: __len = __len - __half - 1; 2935449: } 2935449: else 2935449: __len = __half; 2935449: } 2935449: return __first; 2935449: } 2935449: # 1532 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline _ForwardIterator 2935449: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 2935449: const _Tp& __val) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: ; 2935449: 2935449: return std::__lower_bound(__first, __last, __val, 2935449: __gnu_cxx::__ops::__iter_less_val()); 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: inline constexpr _Tp 2935449: __lg(_Tp __n) 2935449: { 2935449: 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wlong-long" 2935449: 2935449: return (sizeof(+__n) * 8 - 1) 2935449: - (sizeof(+__n) == sizeof(long long) 2935449: ? __builtin_clzll(+__n) 2935449: : (sizeof(+__n) == sizeof(long) 2935449: ? __builtin_clzl(+__n) 2935449: : __builtin_clz(+__n))); 2935449: #pragma GCC diagnostic pop 2935449: 2935449: } 2935449: 2935449: 2935449: # 1584 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: equal(_II1 __first1, _II1 __last1, _II2 __first2) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: ; 2935449: 2935449: return std::__equal_aux(__first1, __last1, __first2); 2935449: } 2935449: # 1615 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: equal(_IIter1 __first1, _IIter1 __last1, 2935449: _IIter2 __first2, _BinaryPredicate __binary_pred) 2935449: { 2935449: 2935449: 2935449: 2935449: ; 2935449: 2935449: for (; __first1 != __last1; ++__first1, (void)++__first2) 2935449: if (!bool(__binary_pred(*__first1, *__first2))) 2935449: return false; 2935449: return true; 2935449: } 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: 2935449: 2935449: template 2935449: 2935449: inline bool 2935449: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 2935449: { 2935449: using _RATag = random_access_iterator_tag; 2935449: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 2935449: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 2935449: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 2935449: if constexpr (_RAIters::value) 2935449: { 2935449: if ((__last1 - __first1) != (__last2 - __first2)) 2935449: return false; 2935449: return std::equal(__first1, __last1, __first2); 2935449: } 2935449: else 2935449: { 2935449: for (; __first1 != __last1 && __first2 != __last2; 2935449: ++__first1, (void)++__first2) 2935449: if (!(*__first1 == *__first2)) 2935449: return false; 2935449: return __first1 == __last1 && __first2 == __last2; 2935449: } 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: inline bool 2935449: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, 2935449: _BinaryPredicate __binary_pred) 2935449: { 2935449: using _RATag = random_access_iterator_tag; 2935449: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 2935449: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 2935449: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 2935449: if constexpr (_RAIters::value) 2935449: { 2935449: if ((__last1 - __first1) != (__last2 - __first2)) 2935449: return false; 2935449: return std::equal(__first1, __last1, __first2, 2935449: __binary_pred); 2935449: } 2935449: else 2935449: { 2935449: for (; __first1 != __last1 && __first2 != __last2; 2935449: ++__first1, (void)++__first2) 2935449: if (!bool(__binary_pred(*__first1, *__first2))) 2935449: return false; 2935449: return __first1 == __last1 && __first2 == __last2; 2935449: } 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: # 1771 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: lexicographical_compare(_II1 __first1, _II1 __last1, 2935449: _II2 __first2, _II2 __last2) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: ; 2935449: ; 2935449: 2935449: return std::__lexicographical_compare_aux(__first1, __last1, 2935449: __first2, __last2); 2935449: } 2935449: # 1806 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: lexicographical_compare(_II1 __first1, _II1 __last1, 2935449: _II2 __first2, _II2 __last2, _Compare __comp) 2935449: { 2935449: 2935449: 2935449: 2935449: ; 2935449: ; 2935449: 2935449: return std::__lexicographical_compare_impl 2935449: (__first1, __last1, __first2, __last2, 2935449: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 2935449: } 2935449: # 1921 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: 2935449: pair<_InputIterator1, _InputIterator2> 2935449: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 2935449: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 2935449: { 2935449: while (__first1 != __last1 && __binary_pred(__first1, __first2)) 2935449: { 2935449: ++__first1; 2935449: ++__first2; 2935449: } 2935449: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 2935449: } 2935449: # 1949 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline pair<_InputIterator1, _InputIterator2> 2935449: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 2935449: _InputIterator2 __first2) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: ; 2935449: 2935449: return std::__mismatch(__first1, __last1, __first2, 2935449: __gnu_cxx::__ops::__iter_equal_to_iter()); 2935449: } 2935449: # 1983 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline pair<_InputIterator1, _InputIterator2> 2935449: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 2935449: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 2935449: { 2935449: 2935449: 2935449: 2935449: ; 2935449: 2935449: return std::__mismatch(__first1, __last1, __first2, 2935449: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 2935449: } 2935449: # 2086 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: inline _Iterator 2935449: __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) 2935449: { 2935449: #pragma GCC unroll 4 2935449: while (__first != __last && !__pred(__first)) 2935449: ++__first; 2935449: return __first; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename iterator_traits<_InputIterator>::difference_type 2935449: __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 2935449: { 2935449: typename iterator_traits<_InputIterator>::difference_type __n = 0; 2935449: for (; __first != __last; ++__first) 2935449: if (__pred(__first)) 2935449: ++__n; 2935449: return __n; 2935449: } 2935449: 2935449: template 2935449: 2935449: _ForwardIterator 2935449: __remove_if(_ForwardIterator __first, _ForwardIterator __last, 2935449: _Predicate __pred) 2935449: { 2935449: __first = std::__find_if(__first, __last, __pred); 2935449: if (__first == __last) 2935449: return __first; 2935449: _ForwardIterator __result = __first; 2935449: ++__first; 2935449: for (; __first != __last; ++__first) 2935449: if (!__pred(__first)) 2935449: { 2935449: *__result = std::move(*__first); 2935449: ++__result; 2935449: } 2935449: return __result; 2935449: } 2935449: 2935449: template 2935449: 2935449: _ForwardIterator1 2935449: __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 2935449: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 2935449: _BinaryPredicate __predicate) 2935449: { 2935449: 2935449: if (__first1 == __last1 || __first2 == __last2) 2935449: return __first1; 2935449: 2935449: 2935449: _ForwardIterator2 __p1(__first2); 2935449: if (++__p1 == __last2) 2935449: return std::__find_if(__first1, __last1, 2935449: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 2935449: 2935449: 2935449: _ForwardIterator1 __current = __first1; 2935449: 2935449: for (;;) 2935449: { 2935449: __first1 = 2935449: std::__find_if(__first1, __last1, 2935449: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 2935449: 2935449: if (__first1 == __last1) 2935449: return __last1; 2935449: 2935449: _ForwardIterator2 __p = __p1; 2935449: __current = __first1; 2935449: if (++__current == __last1) 2935449: return __last1; 2935449: 2935449: while (__predicate(__current, __p)) 2935449: { 2935449: if (++__p == __last2) 2935449: return __first1; 2935449: if (++__current == __last1) 2935449: return __last1; 2935449: } 2935449: ++__first1; 2935449: } 2935449: return __first1; 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: bool 2935449: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 2935449: _ForwardIterator2 __first2, _BinaryPredicate __pred) 2935449: { 2935449: 2935449: 2935449: for (; __first1 != __last1; ++__first1, (void)++__first2) 2935449: if (!__pred(__first1, __first2)) 2935449: break; 2935449: 2935449: if (__first1 == __last1) 2935449: return true; 2935449: 2935449: 2935449: 2935449: _ForwardIterator2 __last2 = __first2; 2935449: std::advance(__last2, std::distance(__first1, __last1)); 2935449: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 2935449: { 2935449: if (__scan != std::__find_if(__first1, __scan, 2935449: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) 2935449: continue; 2935449: 2935449: auto __matches 2935449: = std::__count_if(__first2, __last2, 2935449: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); 2935449: if (0 == __matches || 2935449: std::__count_if(__scan, __last1, 2935449: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) 2935449: != __matches) 2935449: return false; 2935449: } 2935449: return true; 2935449: } 2935449: # 2230 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: 2935449: inline bool 2935449: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 2935449: _ForwardIterator2 __first2) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: ; 2935449: 2935449: return std::__is_permutation(__first1, __last1, __first2, 2935449: __gnu_cxx::__ops::__iter_equal_to_iter()); 2935449: } 2935449: 2935449: 2935449: 2935449: # 2272 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_algobase.h" 3 2935449: template 2935449: 2935449: inline _ForwardIterator1 2935449: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 2935449: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 2935449: _BinaryPredicate __predicate) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: ; 2935449: ; 2935449: 2935449: return std::__search(__first1, __last1, __first2, __last2, 2935449: __gnu_cxx::__ops::__iter_comp_iter(__predicate)); 2935449: } 2935449: 2935449: 2935449: 2935449: } 2935449: # 54 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/refwrap.h" 1 3 2935449: # 40 "/usr/arm-linux-gnueabi/include/c++/15/bits/refwrap.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/invoke.h" 1 3 2935449: # 44 "/usr/arm-linux-gnueabi/include/c++/15/bits/invoke.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 55 "/usr/arm-linux-gnueabi/include/c++/15/bits/invoke.h" 3 2935449: template::type> 2935449: constexpr _Up&& 2935449: __invfwd(typename remove_reference<_Tp>::type& __t) noexcept 2935449: { return static_cast<_Up&&>(__t); } 2935449: 2935449: template 2935449: constexpr _Res 2935449: __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args) 2935449: { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); } 2935449: 2935449: template 2935449: constexpr _Res 2935449: __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t, 2935449: _Args&&... __args) 2935449: { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); } 2935449: 2935449: template 2935449: constexpr _Res 2935449: __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t, 2935449: _Args&&... __args) 2935449: { 2935449: return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...); 2935449: } 2935449: 2935449: template 2935449: constexpr _Res 2935449: __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t) 2935449: { return __invfwd<_Tp>(__t).*__f; } 2935449: 2935449: template 2935449: constexpr _Res 2935449: __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t) 2935449: { return (*std::forward<_Tp>(__t)).*__f; } 2935449: 2935449: 2935449: template 2935449: constexpr typename __invoke_result<_Callable, _Args...>::type 2935449: __invoke(_Callable&& __fn, _Args&&... __args) 2935449: noexcept(__is_nothrow_invocable<_Callable, _Args...>::value) 2935449: { 2935449: using __result = __invoke_result<_Callable, _Args...>; 2935449: using __type = typename __result::type; 2935449: using __tag = typename __result::__invoke_type; 2935449: return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 2935449: std::forward<_Args>(__args)...); 2935449: } 2935449: # 129 "/usr/arm-linux-gnueabi/include/c++/15/bits/invoke.h" 3 2935449: template 2935449: constexpr __enable_if_t::value, _Res> 2935449: __invoke_r(_Callable&& __fn, _Args&&... __args) 2935449: { 2935449: using __result = __invoke_result<_Callable, _Args...>; 2935449: using __type = typename __result::type; 2935449: 2935449: static_assert(!__reference_converts_from_temporary(_Res, __type), 2935449: "INVOKE must not create a dangling reference"); 2935449: 2935449: using __tag = typename __result::__invoke_type; 2935449: return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 2935449: std::forward<_Args>(__args)...); 2935449: } 2935449: 2935449: 2935449: template 2935449: __enable_if_t::value, _Res> 2935449: __invoke_r(_Callable&& __fn, _Args&&... __args) 2935449: { 2935449: using __result = __invoke_result<_Callable, _Args...>; 2935449: using __type = typename __result::type; 2935449: using __tag = typename __result::__invoke_type; 2935449: std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 2935449: std::forward<_Args>(__args)...); 2935449: } 2935449: 2935449: 2935449: 2935449: } 2935449: # 41 "/usr/arm-linux-gnueabi/include/c++/15/bits/refwrap.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 58 "/usr/arm-linux-gnueabi/include/c++/15/bits/refwrap.h" 3 2935449: template 2935449: struct _Maybe_unary_or_binary_function { }; 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: 2935449: 2935449: template 2935449: struct _Maybe_unary_or_binary_function<_Res, _T1> 2935449: : std::unary_function<_T1, _Res> { }; 2935449: 2935449: 2935449: template 2935449: struct _Maybe_unary_or_binary_function<_Res, _T1, _T2> 2935449: : std::binary_function<_T1, _T2, _Res> { }; 2935449: 2935449: #pragma GCC diagnostic pop 2935449: 2935449: template 2935449: struct _Mem_fn_traits; 2935449: 2935449: template 2935449: struct _Mem_fn_traits_base 2935449: { 2935449: using __result_type = _Res; 2935449: using __maybe_type 2935449: = _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>; 2935449: using __arity = integral_constant; 2935449: }; 2935449: # 109 "/usr/arm-linux-gnueabi/include/c++/15/bits/refwrap.h" 3 2935449: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) > : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) > : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const > : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const > : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile > : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) volatile > : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile > : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const volatile > : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 2935449: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) &> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) &> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const &> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const &> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile &> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) volatile &> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile &> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const volatile &> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 2935449: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) &&> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) &&> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const &&> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const &&> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile &&> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) volatile &&> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile &&> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const volatile &&> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 2935449: # 123 "/usr/arm-linux-gnueabi/include/c++/15/bits/refwrap.h" 3 2935449: template> 2935449: struct _Maybe_get_result_type 2935449: { }; 2935449: 2935449: template 2935449: struct _Maybe_get_result_type<_Functor, 2935449: __void_t> 2935449: { typedef typename _Functor::result_type result_type; }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Weak_result_type_impl 2935449: : _Maybe_get_result_type<_Functor> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct _Weak_result_type_impl<_Res(_ArgTypes...) > 2935449: { typedef _Res result_type; }; 2935449: 2935449: 2935449: template 2935449: struct _Weak_result_type_impl<_Res(_ArgTypes..., 2935449: ...) > 2935449: { typedef _Res result_type; }; 2935449: 2935449: 2935449: template 2935449: struct _Weak_result_type_impl<_Res(*)(_ArgTypes...) > 2935449: { typedef _Res result_type; }; 2935449: 2935449: 2935449: template 2935449: struct 2935449: _Weak_result_type_impl<_Res(*)(_ArgTypes..., ...) > 2935449: { typedef _Res result_type; }; 2935449: 2935449: 2935449: template::value> 2935449: struct _Weak_result_type_memfun 2935449: : _Weak_result_type_impl<_Functor> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct _Weak_result_type_memfun<_MemFunPtr, true> 2935449: { 2935449: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Weak_result_type_memfun<_Func _Class::*, false> 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Weak_result_type 2935449: : _Weak_result_type_memfun::type> 2935449: { }; 2935449: 2935449: 2935449: 2935449: template> 2935449: struct _Refwrap_base_arg1 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct _Refwrap_base_arg1<_Tp, 2935449: __void_t> 2935449: { 2935449: typedef typename _Tp::argument_type argument_type; 2935449: }; 2935449: 2935449: 2935449: template> 2935449: struct _Refwrap_base_arg2 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct _Refwrap_base_arg2<_Tp, 2935449: __void_t> 2935449: { 2935449: typedef typename _Tp::first_argument_type first_argument_type; 2935449: typedef typename _Tp::second_argument_type second_argument_type; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Reference_wrapper_base 2935449: : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp> 2935449: { }; 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: 2935449: 2935449: template 2935449: struct _Reference_wrapper_base<_Res(_T1) > 2935449: : unary_function<_T1, _Res> 2935449: { }; 2935449: 2935449: template 2935449: struct _Reference_wrapper_base<_Res(_T1) const> 2935449: : unary_function<_T1, _Res> 2935449: { }; 2935449: 2935449: template 2935449: struct _Reference_wrapper_base<_Res(_T1) volatile> 2935449: : unary_function<_T1, _Res> 2935449: { }; 2935449: 2935449: template 2935449: struct _Reference_wrapper_base<_Res(_T1) const volatile> 2935449: : unary_function<_T1, _Res> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct _Reference_wrapper_base<_Res(_T1, _T2) > 2935449: : binary_function<_T1, _T2, _Res> 2935449: { }; 2935449: 2935449: template 2935449: struct _Reference_wrapper_base<_Res(_T1, _T2) const> 2935449: : binary_function<_T1, _T2, _Res> 2935449: { }; 2935449: 2935449: template 2935449: struct _Reference_wrapper_base<_Res(_T1, _T2) volatile> 2935449: : binary_function<_T1, _T2, _Res> 2935449: { }; 2935449: 2935449: template 2935449: struct _Reference_wrapper_base<_Res(_T1, _T2) const volatile> 2935449: : binary_function<_T1, _T2, _Res> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct _Reference_wrapper_base<_Res(*)(_T1) > 2935449: : unary_function<_T1, _Res> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct _Reference_wrapper_base<_Res(*)(_T1, _T2) > 2935449: : binary_function<_T1, _T2, _Res> 2935449: { }; 2935449: 2935449: template::value> 2935449: struct _Reference_wrapper_base_memfun 2935449: : _Reference_wrapper_base<_Tp> 2935449: { }; 2935449: 2935449: template 2935449: struct _Reference_wrapper_base_memfun<_MemFunPtr, true> 2935449: : _Mem_fn_traits<_MemFunPtr>::__maybe_type 2935449: { 2935449: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 2935449: }; 2935449: #pragma GCC diagnostic pop 2935449: # 309 "/usr/arm-linux-gnueabi/include/c++/15/bits/refwrap.h" 3 2935449: template 2935449: class reference_wrapper 2935449: 2935449: 2935449: 2935449: : public _Reference_wrapper_base_memfun::type> 2935449: 2935449: { 2935449: _Tp* _M_data; 2935449: 2935449: 2935449: static _Tp* _S_fun(_Tp& __r) noexcept { return std::__addressof(__r); } 2935449: 2935449: static void _S_fun(_Tp&&) = delete; 2935449: 2935449: template> 2935449: using __not_same 2935449: = typename enable_if::value>::type; 2935449: 2935449: public: 2935449: typedef _Tp type; 2935449: 2935449: 2935449: 2935449: 2935449: template, typename 2935449: = decltype(reference_wrapper::_S_fun(std::declval<_Up>()))> 2935449: 2935449: reference_wrapper(_Up&& __uref) 2935449: noexcept(noexcept(reference_wrapper::_S_fun(std::declval<_Up>()))) 2935449: : _M_data(reference_wrapper::_S_fun(std::forward<_Up>(__uref))) 2935449: { } 2935449: 2935449: reference_wrapper(const reference_wrapper&) = default; 2935449: 2935449: reference_wrapper& 2935449: operator=(const reference_wrapper&) = default; 2935449: 2935449: 2935449: operator _Tp&() const noexcept 2935449: { return this->get(); } 2935449: 2935449: 2935449: _Tp& 2935449: get() const noexcept 2935449: { return *_M_data; } 2935449: 2935449: template 2935449: 2935449: typename __invoke_result<_Tp&, _Args...>::type 2935449: operator()(_Args&&... __args) const 2935449: noexcept(__is_nothrow_invocable<_Tp&, _Args...>::value) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: return std::__invoke(get(), std::forward<_Args>(__args)...); 2935449: } 2935449: # 415 "/usr/arm-linux-gnueabi/include/c++/15/bits/refwrap.h" 3 2935449: }; 2935449: # 425 "/usr/arm-linux-gnueabi/include/c++/15/bits/refwrap.h" 3 2935449: template 2935449: 2935449: inline reference_wrapper<_Tp> 2935449: ref(_Tp& __t) noexcept 2935449: { return reference_wrapper<_Tp>(__t); } 2935449: 2935449: 2935449: template 2935449: 2935449: inline reference_wrapper 2935449: cref(const _Tp& __t) noexcept 2935449: { return reference_wrapper(__t); } 2935449: 2935449: template 2935449: void ref(const _Tp&&) = delete; 2935449: 2935449: template 2935449: void cref(const _Tp&&) = delete; 2935449: 2935449: 2935449: template 2935449: 2935449: inline reference_wrapper<_Tp> 2935449: ref(reference_wrapper<_Tp> __t) noexcept 2935449: { return __t; } 2935449: 2935449: 2935449: template 2935449: 2935449: inline reference_wrapper 2935449: cref(reference_wrapper<_Tp> __t) noexcept 2935449: { return { __t.get() }; } 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 55 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/range_access.h" 1 3 2935449: # 38 "/usr/arm-linux-gnueabi/include/c++/15/bits/range_access.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/initializer_list" 1 3 2935449: # 43 "/usr/arm-linux-gnueabi/include/c++/15/initializer_list" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: template 2935449: class initializer_list 2935449: { 2935449: public: 2935449: typedef _E value_type; 2935449: typedef const _E& reference; 2935449: typedef const _E& const_reference; 2935449: typedef size_t size_type; 2935449: typedef const _E* iterator; 2935449: typedef const _E* const_iterator; 2935449: 2935449: private: 2935449: iterator _M_array; 2935449: size_type _M_len; 2935449: 2935449: 2935449: constexpr initializer_list(const_iterator __a, size_type __l) 2935449: : _M_array(__a), _M_len(__l) { } 2935449: 2935449: public: 2935449: constexpr initializer_list() noexcept 2935449: : _M_array(0), _M_len(0) { } 2935449: 2935449: 2935449: constexpr size_type 2935449: size() const noexcept { return _M_len; } 2935449: 2935449: 2935449: constexpr const_iterator 2935449: begin() const noexcept { return _M_array; } 2935449: 2935449: 2935449: constexpr const_iterator 2935449: end() const noexcept { return begin() + size(); } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: constexpr const _Tp* 2935449: begin(initializer_list<_Tp> __ils) noexcept 2935449: { return __ils.begin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: constexpr const _Tp* 2935449: end(initializer_list<_Tp> __ils) noexcept 2935449: { return __ils.end(); } 2935449: } 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/bits/range_access.h" 2 3 2935449: 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__, __gnu__::__always_inline__]] 2935449: inline auto 2935449: begin(_Container& __cont) noexcept(noexcept(__cont.begin())) 2935449: -> decltype(__cont.begin()) 2935449: { return __cont.begin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__, __gnu__::__always_inline__]] 2935449: inline auto 2935449: begin(const _Container& __cont) noexcept(noexcept(__cont.begin())) 2935449: -> decltype(__cont.begin()) 2935449: { return __cont.begin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__, __gnu__::__always_inline__]] 2935449: inline auto 2935449: end(_Container& __cont) noexcept(noexcept(__cont.end())) 2935449: -> decltype(__cont.end()) 2935449: { return __cont.end(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__, __gnu__::__always_inline__]] 2935449: inline auto 2935449: end(const _Container& __cont) noexcept(noexcept(__cont.end())) 2935449: -> decltype(__cont.end()) 2935449: { return __cont.end(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__, __gnu__::__always_inline__]] 2935449: inline _Tp* 2935449: begin(_Tp (&__arr)[_Nm]) noexcept 2935449: { return __arr; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__, __gnu__::__always_inline__]] 2935449: inline _Tp* 2935449: end(_Tp (&__arr)[_Nm]) noexcept 2935449: { return __arr + _Nm; } 2935449: # 377 "/usr/arm-linux-gnueabi/include/c++/15/bits/range_access.h" 3 2935449: 2935449: } 2935449: # 56 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 1 3 2935449: # 41 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/ext/alloc_traits.h" 1 3 2935449: # 36 "/usr/arm-linux-gnueabi/include/c++/15/ext/alloc_traits.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 1 3 2935449: # 33 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_construct.h" 1 3 2935449: # 73 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_construct.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 120 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_construct.h" 3 2935449: template 2935449: 2935449: inline void 2935449: _Construct(_Tp* __p, _Args&&... __args) 2935449: { 2935449: # 133 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_construct.h" 3 2935449: ::new(static_cast(__p)) _Tp(std::forward<_Args>(__args)...); 2935449: } 2935449: # 146 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_construct.h" 3 2935449: template 2935449: 2935449: inline void 2935449: _Construct_novalue(_T1* __p) 2935449: { ::new(static_cast(__p)) _T1; } 2935449: 2935449: template 2935449: void 2935449: _Destroy(_ForwardIterator __first, _ForwardIterator __last); 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: inline void 2935449: _Destroy(_Tp* __pointer) 2935449: { 2935449: 2935449: 2935449: 2935449: __pointer->~_Tp(); 2935449: 2935449: } 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: # 217 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_construct.h" 3 2935449: template 2935449: inline void 2935449: _Destroy(_ForwardIterator __first, _ForwardIterator __last) 2935449: { 2935449: typedef typename iterator_traits<_ForwardIterator>::value_type 2935449: _Value_type; 2935449: 2935449: if constexpr (!is_trivially_destructible<_Value_type>::value) 2935449: for (; __first != __last; ++__first) 2935449: std::_Destroy(std::__addressof(*__first)); 2935449: # 236 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_construct.h" 3 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: inline _ForwardIterator 2935449: _Destroy_n(_ForwardIterator __first, _Size __count) 2935449: { 2935449: typedef typename iterator_traits<_ForwardIterator>::value_type 2935449: _Value_type; 2935449: 2935449: if constexpr (!is_trivially_destructible<_Value_type>::value) 2935449: for (; __count > 0; (void)++__first, --__count) 2935449: std::_Destroy(std::__addressof(*__first)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: else 2935449: std::advance(__first, __count); 2935449: return __first; 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: # 284 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_construct.h" 3 2935449: 2935449: } 2935449: # 34 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 2 3 2935449: # 46 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 52 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++14-extensions" 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: 2935449: 2935449: struct __allocator_traits_base 2935449: { 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: struct __rebind : __replace_first_arg<_Tp, _Up> 2935449: { 2935449: static_assert(is_same< 2935449: typename __replace_first_arg<_Tp, typename _Tp::value_type>::type, 2935449: _Tp>::value, 2935449: "allocator_traits::rebind_alloc must be A"); 2935449: }; 2935449: 2935449: template 2935449: 2935449: 2935449: 2935449: 2935449: struct __rebind<_Tp, _Up, 2935449: __void_t::other>> 2935449: 2935449: { 2935449: using type = typename _Tp::template rebind<_Up>::other; 2935449: 2935449: static_assert(is_same< 2935449: typename _Tp::template rebind::other, 2935449: _Tp>::value, 2935449: "allocator_traits::rebind_alloc must be A"); 2935449: }; 2935449: 2935449: protected: 2935449: template 2935449: using __pointer = typename _Tp::pointer; 2935449: template 2935449: using __c_pointer = typename _Tp::const_pointer; 2935449: template 2935449: using __v_pointer = typename _Tp::void_pointer; 2935449: template 2935449: using __cv_pointer = typename _Tp::const_void_pointer; 2935449: template 2935449: using __pocca = typename _Tp::propagate_on_container_copy_assignment; 2935449: template 2935449: using __pocma = typename _Tp::propagate_on_container_move_assignment; 2935449: template 2935449: using __pocs = typename _Tp::propagate_on_container_swap; 2935449: template 2935449: using __equal = __type_identity; 2935449: # 115 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: using __allocate_hint_t 2935449: = decltype(std::declval<_Alloc&>() 2935449: .allocate(std::declval<_Sz>(), std::declval<_Vp>())); 2935449: template 2935449: static constexpr bool __has_allocate_hint = false; 2935449: template 2935449: static constexpr bool 2935449: __has_allocate_hint<_Alloc, _Sz, _Vp, 2935449: __void_t<__allocate_hint_t<_Alloc, _Sz, _Vp>>> 2935449: = true; 2935449: # 152 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: using __construct_t 2935449: = decltype(std::declval<_Alloc&>().construct(std::declval<_Tp*>(), 2935449: std::declval<_Args>()...)); 2935449: template 2935449: static constexpr bool __has_construct_impl = false; 2935449: template 2935449: static constexpr bool 2935449: __has_construct_impl<_Alloc, _Tp, 2935449: __void_t<__construct_t<_Alloc, _Tp, _Args...>>, 2935449: _Args...> 2935449: = true; 2935449: template 2935449: static constexpr bool __has_construct 2935449: = __has_construct_impl<_Alloc, _Tp, void, _Args...>; 2935449: template 2935449: using __new_expr_t 2935449: = decltype(::new((void*)0) _Tp(std::declval<_Args>()...)); 2935449: template 2935449: static constexpr bool __has_new_expr = false; 2935449: template 2935449: static constexpr bool 2935449: __has_new_expr<_Tp, __void_t<__new_expr_t<_Tp, _Args...>>, _Args...> 2935449: = true; 2935449: template 2935449: static constexpr bool __can_construct 2935449: = __has_construct<_Alloc, _Tp, _Args...> 2935449: || __has_new_expr<_Tp, void, _Args...>; 2935449: # 189 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: using __destroy_t 2935449: = decltype(std::declval<_Alloc&>().destroy(std::declval<_Tp*>())); 2935449: template 2935449: static constexpr bool __has_destroy = false; 2935449: template 2935449: static constexpr bool __has_destroy<_Alloc, _Tp, 2935449: __void_t<__destroy_t<_Alloc, _Tp>>> 2935449: = true; 2935449: # 207 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: using __max_size_t = decltype(std::declval().max_size()); 2935449: template 2935449: static constexpr bool __has_max_size = false; 2935449: template 2935449: static constexpr bool __has_max_size<_Alloc, 2935449: __void_t<__max_size_t<_Alloc>>> 2935449: = true; 2935449: # 225 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: using __soccc_t 2935449: = decltype(std::declval() 2935449: .select_on_container_copy_construction()); 2935449: template 2935449: static constexpr bool __has_soccc = false; 2935449: template 2935449: static constexpr bool __has_soccc<_Alloc, __void_t<__soccc_t<_Alloc>>> 2935449: = true; 2935449: 2935449: }; 2935449: 2935449: template 2935449: using __alloc_rebind 2935449: = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; 2935449: # 248 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: struct allocator_traits : __allocator_traits_base 2935449: { 2935449: 2935449: typedef _Alloc allocator_type; 2935449: 2935449: typedef typename _Alloc::value_type value_type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using pointer = __detected_or_t; 2935449: 2935449: private: 2935449: 2935449: template class _Func, typename _Tp, typename = void> 2935449: struct _Ptr 2935449: { 2935449: using type = typename pointer_traits::template rebind<_Tp>; 2935449: }; 2935449: 2935449: template class _Func, typename _Tp> 2935449: struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>> 2935449: { 2935449: using type = _Func<_Alloc>; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Diff 2935449: { using type = typename pointer_traits<_PtrT>::difference_type; }; 2935449: 2935449: template 2935449: struct _Diff<_A2, _PtrT, __void_t> 2935449: { using type = typename _A2::difference_type; }; 2935449: 2935449: 2935449: template 2935449: struct _Size : make_unsigned<_DiffT> { }; 2935449: 2935449: template 2935449: struct _Size<_A2, _DiffT, __void_t> 2935449: { using type = typename _A2::size_type; }; 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using void_pointer = typename _Ptr<__v_pointer, void>::type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using difference_type = typename _Diff<_Alloc, pointer>::type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using size_type = typename _Size<_Alloc, difference_type>::type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using propagate_on_container_copy_assignment 2935449: = __detected_or_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using propagate_on_container_move_assignment 2935449: = __detected_or_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using propagate_on_container_swap 2935449: = __detected_or_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using is_always_equal 2935449: = typename __detected_or_t, __equal, _Alloc>::type; 2935449: 2935449: template 2935449: using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; 2935449: template 2935449: using rebind_traits = allocator_traits>; 2935449: # 383 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: [[__nodiscard__]] static pointer 2935449: allocate(_Alloc& __a, size_type __n) 2935449: { return __a.allocate(__n); } 2935449: # 398 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: [[__nodiscard__]] static pointer 2935449: allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) 2935449: { 2935449: if constexpr (__has_allocate_hint<_Alloc, size_type, const_void_pointer>) 2935449: return __a.allocate(__n, __hint); 2935449: else 2935449: return __a.allocate(__n); 2935449: } 2935449: # 415 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: static void 2935449: deallocate(_Alloc& __a, pointer __p, size_type __n) 2935449: { __a.deallocate(__p, __n); } 2935449: # 430 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: 2935449: 2935449: 2935449: 2935449: static __enable_if_t<__can_construct<_Alloc, _Tp, _Args...>> 2935449: 2935449: construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 2935449: noexcept(_S_nothrow_construct<_Tp, _Args...>()) 2935449: { 2935449: if constexpr (__has_construct<_Alloc, _Tp, _Args...>) 2935449: __a.construct(__p, std::forward<_Args>(__args)...); 2935449: else 2935449: std::_Construct(__p, std::forward<_Args>(__args)...); 2935449: } 2935449: # 454 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: static void 2935449: destroy(_Alloc& __a, _Tp* __p) 2935449: noexcept(_S_nothrow_destroy<_Tp>()) 2935449: { 2935449: if constexpr (__has_destroy<_Alloc, _Tp>) 2935449: __a.destroy(__p); 2935449: else 2935449: std::_Destroy(__p); 2935449: } 2935449: # 473 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: static size_type 2935449: max_size(const _Alloc& __a) noexcept 2935449: { 2935449: if constexpr (__has_max_size<_Alloc>) 2935449: return __a.max_size(); 2935449: else 2935449: 2935449: 2935449: return __gnu_cxx::__numeric_traits::__max 2935449: / sizeof(value_type); 2935449: } 2935449: # 493 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: static _Alloc 2935449: select_on_container_copy_construction(const _Alloc& __rhs) 2935449: { 2935449: if constexpr (__has_soccc<_Alloc>) 2935449: return __rhs.select_on_container_copy_construction(); 2935449: else 2935449: return __rhs; 2935449: } 2935449: 2935449: private: 2935449: # 524 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: static constexpr 2935449: __enable_if_t<__has_construct<_Alloc, _Tp, _Args...>, bool> 2935449: _S_nothrow_construct(_Alloc* __a = nullptr, _Tp* __p = nullptr) 2935449: { return noexcept(__a->construct(__p, std::declval<_Args>()...)); } 2935449: 2935449: template 2935449: static constexpr 2935449: __enable_if_t, bool> 2935449: _S_nothrow_construct(_Alloc* = nullptr, _Tp* __p = nullptr) 2935449: { return __is_nothrow_new_constructible<_Tp, _Args...>; } 2935449: 2935449: template 2935449: static constexpr 2935449: __enable_if_t<__has_destroy<_Alloc, _Tp>, bool> 2935449: _S_nothrow_destroy(_Alloc* __a = nullptr, _Tp* __p = nullptr) 2935449: { return noexcept(__a->destroy(__p)); } 2935449: 2935449: template 2935449: static constexpr 2935449: __enable_if_t, bool> 2935449: _S_nothrow_destroy(_Alloc* = nullptr, _Tp* __p = nullptr) 2935449: { return is_nothrow_destructible<_Tp>::value; } 2935449: 2935449: }; 2935449: #pragma GCC diagnostic pop 2935449: # 559 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: struct allocator_traits> 2935449: { 2935449: 2935449: using allocator_type = allocator<_Tp>; 2935449: 2935449: 2935449: using value_type = _Tp; 2935449: 2935449: 2935449: using pointer = _Tp*; 2935449: 2935449: 2935449: using const_pointer = const _Tp*; 2935449: 2935449: 2935449: using void_pointer = void*; 2935449: 2935449: 2935449: using const_void_pointer = const void*; 2935449: 2935449: 2935449: using difference_type = std::ptrdiff_t; 2935449: 2935449: 2935449: using size_type = std::size_t; 2935449: 2935449: 2935449: using propagate_on_container_copy_assignment = false_type; 2935449: 2935449: 2935449: using propagate_on_container_move_assignment = true_type; 2935449: 2935449: 2935449: using propagate_on_container_swap = false_type; 2935449: 2935449: 2935449: using is_always_equal = true_type; 2935449: 2935449: template 2935449: using rebind_alloc = allocator<_Up>; 2935449: 2935449: template 2935449: using rebind_traits = allocator_traits>; 2935449: # 611 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: [[__nodiscard__,__gnu__::__always_inline__]] 2935449: static pointer 2935449: allocate(allocator_type& __a, size_type __n) 2935449: { return __a.allocate(__n); } 2935449: # 626 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: [[__nodiscard__,__gnu__::__always_inline__]] 2935449: static pointer 2935449: allocate(allocator_type& __a, size_type __n, 2935449: [[maybe_unused]] const_void_pointer __hint) 2935449: { 2935449: 2935449: return __a.allocate(__n, __hint); 2935449: 2935449: 2935449: 2935449: } 2935449: # 646 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: [[__gnu__::__always_inline__]] 2935449: static void 2935449: deallocate(allocator_type& __a, pointer __p, size_type __n) 2935449: { __a.deallocate(__p, __n); } 2935449: # 662 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: [[__gnu__::__always_inline__]] 2935449: static void 2935449: construct(allocator_type& __a __attribute__((__unused__)), 2935449: _Up* __p, _Args&&... __args) 2935449: 2935449: noexcept(noexcept(__a.construct(__p, std::forward<_Args>(__args)...))) 2935449: 2935449: 2935449: 2935449: { 2935449: 2935449: __a.construct(__p, std::forward<_Args>(__args)...); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 689 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: [[__gnu__::__always_inline__]] 2935449: static void 2935449: destroy(allocator_type& __a __attribute__((__unused__)), _Up* __p) 2935449: noexcept(is_nothrow_destructible<_Up>::value) 2935449: { 2935449: 2935449: __a.destroy(__p); 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: static size_type 2935449: max_size(const allocator_type& __a __attribute__((__unused__))) noexcept 2935449: { 2935449: 2935449: return __a.max_size(); 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: static allocator_type 2935449: select_on_container_copy_construction(const allocator_type& __rhs) 2935449: { return __rhs; } 2935449: }; 2935449: # 736 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template<> 2935449: struct allocator_traits> 2935449: { 2935449: 2935449: using allocator_type = allocator; 2935449: 2935449: 2935449: using value_type = void; 2935449: 2935449: 2935449: using pointer = void*; 2935449: 2935449: 2935449: using const_pointer = const void*; 2935449: 2935449: 2935449: using void_pointer = void*; 2935449: 2935449: 2935449: using const_void_pointer = const void*; 2935449: 2935449: 2935449: using difference_type = std::ptrdiff_t; 2935449: 2935449: 2935449: using size_type = std::size_t; 2935449: 2935449: 2935449: using propagate_on_container_copy_assignment = false_type; 2935449: 2935449: 2935449: using propagate_on_container_move_assignment = true_type; 2935449: 2935449: 2935449: using propagate_on_container_swap = false_type; 2935449: 2935449: 2935449: using is_always_equal = true_type; 2935449: 2935449: template 2935449: using rebind_alloc = allocator<_Up>; 2935449: 2935449: template 2935449: using rebind_traits = allocator_traits>; 2935449: 2935449: 2935449: static void* 2935449: allocate(allocator_type&, size_type, const void* = nullptr) = delete; 2935449: 2935449: 2935449: static void 2935449: deallocate(allocator_type&, void*, size_type) = delete; 2935449: # 800 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: [[__gnu__::__always_inline__]] 2935449: static void 2935449: construct(allocator_type&, _Up* __p, _Args&&... __args) 2935449: noexcept(__is_nothrow_new_constructible<_Up, _Args...>) 2935449: { std::_Construct(__p, std::forward<_Args>(__args)...); } 2935449: # 814 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: [[__gnu__::__always_inline__]] 2935449: static void 2935449: destroy(allocator_type&, _Up* __p) 2935449: noexcept(is_nothrow_destructible<_Up>::value) 2935449: { std::_Destroy(__p); } 2935449: 2935449: 2935449: static size_type 2935449: max_size(const allocator_type&) = delete; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: static allocator_type 2935449: select_on_container_copy_construction(const allocator_type& __rhs) 2935449: { return __rhs; } 2935449: }; 2935449: 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: template 2935449: [[__gnu__::__always_inline__]] 2935449: inline void 2935449: __alloc_on_copy(_Alloc& __one, const _Alloc& __two) 2935449: { 2935449: using __traits = allocator_traits<_Alloc>; 2935449: using __pocca = 2935449: typename __traits::propagate_on_container_copy_assignment::type; 2935449: if constexpr (__pocca::value) 2935449: __one = __two; 2935449: } 2935449: 2935449: template 2935449: [[__gnu__::__always_inline__]] 2935449: constexpr _Alloc 2935449: __alloc_on_copy(const _Alloc& __a) 2935449: { 2935449: typedef allocator_traits<_Alloc> __traits; 2935449: return __traits::select_on_container_copy_construction(__a); 2935449: } 2935449: 2935449: template 2935449: [[__gnu__::__always_inline__]] 2935449: inline void 2935449: __alloc_on_move(_Alloc& __one, _Alloc& __two) 2935449: { 2935449: using __traits = allocator_traits<_Alloc>; 2935449: using __pocma 2935449: = typename __traits::propagate_on_container_move_assignment::type; 2935449: if constexpr (__pocma::value) 2935449: __one = std::move(__two); 2935449: } 2935449: 2935449: template 2935449: [[__gnu__::__always_inline__]] 2935449: inline void 2935449: __alloc_on_swap(_Alloc& __one, _Alloc& __two) 2935449: { 2935449: using __traits = allocator_traits<_Alloc>; 2935449: using __pocs = typename __traits::propagate_on_container_swap::type; 2935449: if constexpr (__pocs::value) 2935449: { 2935449: using std::swap; 2935449: swap(__one, __two); 2935449: } 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: template, 2935449: typename = void> 2935449: struct __is_alloc_insertable_impl 2935449: : false_type 2935449: { }; 2935449: 2935449: template 2935449: struct __is_alloc_insertable_impl<_Alloc, _Tp, _ValueT, 2935449: __void_t::construct( 2935449: std::declval<_Alloc&>(), std::declval<_ValueT*>(), 2935449: std::declval<_Tp>()))>> 2935449: : true_type 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __is_copy_insertable 2935449: : __is_alloc_insertable_impl<_Alloc, 2935449: typename _Alloc::value_type const&>::type 2935449: { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __is_copy_insertable> 2935449: : is_copy_constructible<_Tp> 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __is_move_insertable 2935449: : __is_alloc_insertable_impl<_Alloc, typename _Alloc::value_type>::type 2935449: { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __is_move_insertable> 2935449: : is_move_constructible<_Tp> 2935449: { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __is_allocator : false_type { }; 2935449: 2935449: template 2935449: struct __is_allocator<_Alloc, 2935449: __void_t().allocate(size_t{}))>> 2935449: : true_type { }; 2935449: 2935449: template 2935449: using _RequireAllocator 2935449: = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type; 2935449: 2935449: template 2935449: using _RequireNotAllocator 2935449: = typename enable_if::value, _Alloc>::type; 2935449: # 970 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: struct __alloc_swap 2935449: { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } }; 2935449: 2935449: template 2935449: struct __alloc_swap<_Alloc, false> 2935449: { 2935449: static void 2935449: _S_do_it(_Alloc& __one, _Alloc& __two) noexcept 2935449: { 2935449: 2935449: if (__one != __two) 2935449: swap(__one, __two); 2935449: } 2935449: }; 2935449: 2935449: 2935449: template, 2935449: is_nothrow_move_constructible>::value> 2935449: struct __shrink_to_fit_aux 2935449: { static bool _S_do_it(_Tp&) noexcept { return false; } }; 2935449: 2935449: template 2935449: struct __shrink_to_fit_aux<_Tp, true> 2935449: { 2935449: 2935449: static bool 2935449: _S_do_it(_Tp& __c) noexcept 2935449: { 2935449: # 1011 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: return false; 2935449: 2935449: } 2935449: }; 2935449: # 1023 "/usr/arm-linux-gnueabi/include/c++/15/bits/alloc_traits.h" 3 2935449: template 2935449: 2935449: void 2935449: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 2935449: _Allocator& __alloc) 2935449: { 2935449: for (; __first != __last; ++__first) 2935449: 2935449: 2935449: 2935449: allocator_traits<_Allocator>::destroy(__alloc, 2935449: std::__addressof(*__first)); 2935449: 2935449: } 2935449: 2935449: 2935449: template 2935449: __attribute__((__always_inline__)) 2935449: inline void 2935449: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 2935449: allocator<_Tp>&) 2935449: { 2935449: std::_Destroy(__first, __last); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 37 "/usr/arm-linux-gnueabi/include/c++/15/ext/alloc_traits.h" 2 3 2935449: 2935449: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __alloc_traits 2935449: 2935449: : std::allocator_traits<_Alloc> 2935449: 2935449: { 2935449: typedef _Alloc allocator_type; 2935449: 2935449: typedef std::allocator_traits<_Alloc> _Base_type; 2935449: typedef typename _Base_type::value_type value_type; 2935449: typedef typename _Base_type::pointer pointer; 2935449: typedef typename _Base_type::const_pointer const_pointer; 2935449: typedef typename _Base_type::size_type size_type; 2935449: typedef typename _Base_type::difference_type difference_type; 2935449: 2935449: typedef value_type& reference; 2935449: typedef const value_type& const_reference; 2935449: using _Base_type::allocate; 2935449: using _Base_type::deallocate; 2935449: using _Base_type::construct; 2935449: using _Base_type::destroy; 2935449: using _Base_type::max_size; 2935449: 2935449: private: 2935449: template 2935449: using __is_custom_pointer 2935449: = std::__and_, 2935449: std::__not_>>; 2935449: 2935449: public: 2935449: 2935449: template 2935449: [[__gnu__::__always_inline__]] 2935449: static 2935449: std::__enable_if_t<__is_custom_pointer<_Ptr>::value> 2935449: construct(_Alloc& __a, _Ptr __p, _Args&&... __args) 2935449: noexcept(noexcept(_Base_type::construct(__a, std::__to_address(__p), 2935449: std::forward<_Args>(__args)...))) 2935449: { 2935449: _Base_type::construct(__a, std::__to_address(__p), 2935449: std::forward<_Args>(__args)...); 2935449: } 2935449: 2935449: 2935449: template 2935449: [[__gnu__::__always_inline__]] 2935449: static 2935449: std::__enable_if_t<__is_custom_pointer<_Ptr>::value> 2935449: destroy(_Alloc& __a, _Ptr __p) 2935449: noexcept(noexcept(_Base_type::destroy(__a, std::__to_address(__p)))) 2935449: { _Base_type::destroy(__a, std::__to_address(__p)); } 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: static constexpr _Alloc _S_select_on_copy(const _Alloc& __a) 2935449: { return _Base_type::select_on_container_copy_construction(__a); } 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: static void _S_on_swap(_Alloc& __a, _Alloc& __b) 2935449: { std::__alloc_on_swap(__a, __b); } 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: static constexpr bool _S_propagate_on_copy_assign() 2935449: { return _Base_type::propagate_on_container_copy_assignment::value; } 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: static constexpr bool _S_propagate_on_move_assign() 2935449: { return _Base_type::propagate_on_container_move_assignment::value; } 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: static constexpr bool _S_propagate_on_swap() 2935449: { return _Base_type::propagate_on_container_swap::value; } 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: static constexpr bool _S_always_equal() 2935449: { return _Base_type::is_always_equal::value; } 2935449: 2935449: __attribute__((__always_inline__)) 2935449: static constexpr bool _S_nothrow_move() 2935449: { return _S_propagate_on_move_assign() || _S_always_equal(); } 2935449: 2935449: template 2935449: struct rebind 2935449: { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; 2935449: # 182 "/usr/arm-linux-gnueabi/include/c++/15/ext/alloc_traits.h" 3 2935449: }; 2935449: 2935449: 2935449: } 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 49 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 2 3 2935449: # 68 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: namespace __cxx11 { 2935449: # 93 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: class basic_string 2935449: { 2935449: # 104 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 2935449: rebind<_CharT>::other _Char_alloc_type; 2935449: 2935449: 2935449: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 2935449: 2935449: 2935449: public: 2935449: typedef _Traits traits_type; 2935449: typedef typename _Traits::char_type value_type; 2935449: typedef _Char_alloc_type allocator_type; 2935449: typedef typename _Alloc_traits::size_type size_type; 2935449: typedef typename _Alloc_traits::difference_type difference_type; 2935449: typedef typename _Alloc_traits::reference reference; 2935449: typedef typename _Alloc_traits::const_reference const_reference; 2935449: typedef typename _Alloc_traits::pointer pointer; 2935449: typedef typename _Alloc_traits::const_pointer const_pointer; 2935449: typedef __gnu_cxx::__normal_iterator iterator; 2935449: typedef __gnu_cxx::__normal_iterator 2935449: const_iterator; 2935449: typedef std::reverse_iterator const_reverse_iterator; 2935449: typedef std::reverse_iterator reverse_iterator; 2935449: 2935449: 2935449: static const size_type npos = static_cast(-1); 2935449: 2935449: protected: 2935449: 2935449: 2935449: 2935449: 2935449: typedef const_iterator __const_iterator; 2935449: 2935449: 2935449: private: 2935449: static pointer 2935449: _S_allocate(_Char_alloc_type& __a, size_type __n) 2935449: { 2935449: pointer __p = _Alloc_traits::allocate(__a, __n); 2935449: # 152 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: return __p; 2935449: } 2935449: # 197 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: struct _Alloc_hider : allocator_type 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: _Alloc_hider(pointer __dat, const _Alloc& __a) 2935449: : allocator_type(__a), _M_p(__dat) { } 2935449: 2935449: 2935449: _Alloc_hider(pointer __dat, _Alloc&& __a = _Alloc()) 2935449: : allocator_type(std::move(__a)), _M_p(__dat) { } 2935449: 2935449: 2935449: pointer _M_p; 2935449: }; 2935449: 2935449: _Alloc_hider _M_dataplus; 2935449: size_type _M_string_length; 2935449: 2935449: enum { _S_local_capacity = 15 / sizeof(_CharT) }; 2935449: 2935449: union 2935449: { 2935449: _CharT _M_local_buf[_S_local_capacity + 1]; 2935449: size_type _M_allocated_capacity; 2935449: }; 2935449: 2935449: 2935449: void 2935449: _M_data(pointer __p) 2935449: { _M_dataplus._M_p = __p; } 2935449: 2935449: 2935449: void 2935449: _M_length(size_type __length) 2935449: { _M_string_length = __length; } 2935449: 2935449: 2935449: pointer 2935449: _M_data() const 2935449: { return _M_dataplus._M_p; } 2935449: 2935449: 2935449: pointer 2935449: _M_local_data() 2935449: { 2935449: 2935449: return std::pointer_traits::pointer_to(*_M_local_buf); 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: const_pointer 2935449: _M_local_data() const 2935449: { 2935449: 2935449: return std::pointer_traits::pointer_to(*_M_local_buf); 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_capacity(size_type __capacity) 2935449: { _M_allocated_capacity = __capacity; } 2935449: 2935449: 2935449: void 2935449: _M_set_length(size_type __n) 2935449: { 2935449: _M_length(__n); 2935449: traits_type::assign(_M_data()[__n], _CharT()); 2935449: } 2935449: 2935449: 2935449: bool 2935449: _M_is_local() const 2935449: { 2935449: if (_M_data() == _M_local_data()) 2935449: { 2935449: if (_M_string_length > _S_local_capacity) 2935449: __builtin_unreachable(); 2935449: return true; 2935449: } 2935449: return false; 2935449: } 2935449: 2935449: 2935449: 2935449: pointer 2935449: _M_create(size_type&, size_type); 2935449: 2935449: 2935449: void 2935449: _M_dispose() 2935449: { 2935449: if (!_M_is_local()) 2935449: _M_destroy(_M_allocated_capacity); 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_destroy(size_type __size) throw() 2935449: { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } 2935449: # 332 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: 2935449: void 2935449: _M_construct(_InIterator __beg, _InIterator __end, 2935449: std::input_iterator_tag); 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_construct(_FwdIterator __beg, _FwdIterator __end, 2935449: std::forward_iterator_tag); 2935449: 2935449: 2935449: void 2935449: _M_construct(size_type __req, _CharT __c); 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_construct(const _CharT *__c, size_type __n); 2935449: 2935449: 2935449: allocator_type& 2935449: _M_get_allocator() 2935449: { return _M_dataplus; } 2935449: 2935449: 2935449: const allocator_type& 2935449: _M_get_allocator() const 2935449: { return _M_dataplus; } 2935449: 2935449: 2935449: __attribute__((__always_inline__)) 2935449: 2935449: void 2935449: _M_init_local_buf() noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: __attribute__((__always_inline__)) 2935449: 2935449: pointer 2935449: _M_use_local_data() noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return _M_local_data(); 2935449: } 2935449: 2935449: private: 2935449: # 407 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: size_type 2935449: _M_check(size_type __pos, const char* __s) const 2935449: { 2935449: if (__pos > this->size()) 2935449: __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)") 2935449: , 2935449: __s, __pos, this->size()); 2935449: return __pos; 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_check_length(size_type __n1, size_type __n2, const char* __s) const 2935449: { 2935449: if (this->max_size() - (this->size() - __n1) < __n2) 2935449: __throw_length_error((__s)); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: size_type 2935449: _M_limit(size_type __pos, size_type __off) const noexcept 2935449: { 2935449: const bool __testoff = __off < this->size() - __pos; 2935449: return __testoff ? __off : this->size() - __pos; 2935449: } 2935449: 2935449: 2935449: bool 2935449: _M_disjunct(const _CharT* __s) const noexcept 2935449: { 2935449: return (less()(__s, _M_data()) 2935449: || less()(_M_data() + this->size(), __s)); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: static void 2935449: _S_copy(_CharT* __d, const _CharT* __s, size_type __n) 2935449: { 2935449: if (__n == 1) 2935449: traits_type::assign(*__d, *__s); 2935449: else 2935449: traits_type::copy(__d, __s, __n); 2935449: } 2935449: 2935449: 2935449: static void 2935449: _S_move(_CharT* __d, const _CharT* __s, size_type __n) 2935449: { 2935449: if (__n == 1) 2935449: traits_type::assign(*__d, *__s); 2935449: else 2935449: traits_type::move(__d, __s, __n); 2935449: } 2935449: 2935449: 2935449: static void 2935449: _S_assign(_CharT* __d, size_type __n, _CharT __c) 2935449: { 2935449: if (__n == 1) 2935449: traits_type::assign(*__d, __c); 2935449: else 2935449: traits_type::assign(__d, __n, __c); 2935449: } 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: 2935449: 2935449: template 2935449: 2935449: static void 2935449: _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) 2935449: { 2935449: 2935449: using _IterBase = decltype(std::__niter_base(__k1)); 2935449: if constexpr (__or_, 2935449: is_same<_IterBase, const _CharT*>>::value) 2935449: _S_copy(__p, std::__niter_base(__k1), __k2 - __k1); 2935449: # 502 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: else 2935449: 2935449: for (; __k1 != __k2; ++__k1, (void)++__p) 2935449: traits_type::assign(*__p, static_cast<_CharT>(*__k1)); 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: # 549 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: static int 2935449: _S_compare(size_type __n1, size_type __n2) noexcept 2935449: { 2935449: const difference_type __d = difference_type(__n1 - __n2); 2935449: 2935449: if (__d > __gnu_cxx::__numeric_traits::__max) 2935449: return __gnu_cxx::__numeric_traits::__max; 2935449: else if (__d < __gnu_cxx::__numeric_traits::__min) 2935449: return __gnu_cxx::__numeric_traits::__min; 2935449: else 2935449: return int(__d); 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_assign(const basic_string&); 2935449: 2935449: 2935449: void 2935449: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 2935449: size_type __len2); 2935449: 2935449: 2935449: void 2935449: _M_erase(size_type __pos, size_type __n); 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: basic_string() 2935449: noexcept(is_nothrow_default_constructible<_Alloc>::value) 2935449: 2935449: 2935449: 2935449: : _M_dataplus(_M_local_data()) 2935449: { 2935449: _M_init_local_buf(); 2935449: _M_set_length(0); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: explicit 2935449: basic_string(const _Alloc& __a) noexcept 2935449: : _M_dataplus(_M_local_data(), __a) 2935449: { 2935449: _M_init_local_buf(); 2935449: _M_set_length(0); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: basic_string(const basic_string& __str) 2935449: : _M_dataplus(_M_local_data(), 2935449: _Alloc_traits::_S_select_on_copy(__str._M_get_allocator())) 2935449: { 2935449: _M_construct(__str._M_data(), __str.length()); 2935449: } 2935449: # 628 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string(const basic_string& __str, size_type __pos, 2935449: const _Alloc& __a = _Alloc()) 2935449: : _M_dataplus(_M_local_data(), __a) 2935449: { 2935449: const _CharT* __start = __str._M_data() 2935449: + __str._M_check(__pos, "basic_string::basic_string"); 2935449: _M_construct(__start, __start + __str._M_limit(__pos, npos), 2935449: std::forward_iterator_tag()); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: basic_string(const basic_string& __str, size_type __pos, 2935449: size_type __n) 2935449: : _M_dataplus(_M_local_data()) 2935449: { 2935449: const _CharT* __start = __str._M_data() 2935449: + __str._M_check(__pos, "basic_string::basic_string"); 2935449: _M_construct(__start, __start + __str._M_limit(__pos, __n), 2935449: std::forward_iterator_tag()); 2935449: } 2935449: # 663 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string(const basic_string& __str, size_type __pos, 2935449: size_type __n, const _Alloc& __a) 2935449: : _M_dataplus(_M_local_data(), __a) 2935449: { 2935449: const _CharT* __start 2935449: = __str._M_data() + __str._M_check(__pos, "string::string"); 2935449: _M_construct(__start, __start + __str._M_limit(__pos, __n), 2935449: std::forward_iterator_tag()); 2935449: } 2935449: # 683 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string(const _CharT* __s, size_type __n, 2935449: const _Alloc& __a = _Alloc()) 2935449: : _M_dataplus(_M_local_data(), __a) 2935449: { 2935449: 2935449: if (__s == 0 && __n > 0) 2935449: std::__throw_logic_error(("basic_string: " "construction from null is not valid") 2935449: ); 2935449: _M_construct(__s, __s + __n, std::forward_iterator_tag()); 2935449: } 2935449: # 705 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) 2935449: : _M_dataplus(_M_local_data(), __a) 2935449: { 2935449: 2935449: if (__s == 0) 2935449: std::__throw_logic_error(("basic_string: " "construction from null is not valid") 2935449: ); 2935449: const _CharT* __end = __s + traits_type::length(__s); 2935449: _M_construct(__s, __end, forward_iterator_tag()); 2935449: } 2935449: # 728 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) 2935449: : _M_dataplus(_M_local_data(), __a) 2935449: { _M_construct(__n, __c); } 2935449: # 741 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string(basic_string&& __str) noexcept 2935449: : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) 2935449: { 2935449: if (__str._M_is_local()) 2935449: { 2935449: _M_init_local_buf(); 2935449: traits_type::copy(_M_local_buf, __str._M_local_buf, 2935449: __str.length() + 1); 2935449: } 2935449: else 2935449: { 2935449: _M_data(__str._M_data()); 2935449: _M_capacity(__str._M_allocated_capacity); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: _M_length(__str.length()); 2935449: __str._M_data(__str._M_use_local_data()); 2935449: __str._M_set_length(0); 2935449: } 2935449: # 797 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) 2935449: : _M_dataplus(_M_local_data(), __a) 2935449: { _M_construct(__l.begin(), __l.end(), std::forward_iterator_tag()); } 2935449: 2935449: 2935449: basic_string(const basic_string& __str, const _Alloc& __a) 2935449: : _M_dataplus(_M_local_data(), __a) 2935449: { _M_construct(__str.begin(), __str.end(), std::forward_iterator_tag()); } 2935449: 2935449: 2935449: basic_string(basic_string&& __str, const _Alloc& __a) 2935449: noexcept(_Alloc_traits::_S_always_equal()) 2935449: : _M_dataplus(_M_local_data(), __a) 2935449: { 2935449: if (__str._M_is_local()) 2935449: { 2935449: _M_init_local_buf(); 2935449: traits_type::copy(_M_local_buf, __str._M_local_buf, 2935449: __str.length() + 1); 2935449: _M_length(__str.length()); 2935449: __str._M_set_length(0); 2935449: } 2935449: else if (_Alloc_traits::_S_always_equal() 2935449: || __str.get_allocator() == __a) 2935449: { 2935449: _M_data(__str._M_data()); 2935449: _M_length(__str.length()); 2935449: _M_capacity(__str._M_allocated_capacity); 2935449: __str._M_data(__str._M_use_local_data()); 2935449: __str._M_set_length(0); 2935449: } 2935449: else 2935449: _M_construct(__str.begin(), __str.end(), std::forward_iterator_tag()); 2935449: } 2935449: # 846 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template> 2935449: 2935449: 2935449: 2935449: 2935449: basic_string(_InputIterator __beg, _InputIterator __end, 2935449: const _Alloc& __a = _Alloc()) 2935449: : _M_dataplus(_M_local_data(), __a), _M_string_length(0) 2935449: { 2935449: 2935449: _M_construct(__beg, __end, std::__iterator_category(__beg)); 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 894 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: ~basic_string() 2935449: { _M_dispose(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: basic_string& 2935449: operator=(const basic_string& __str) 2935449: { 2935449: return this->assign(__str); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: basic_string& 2935449: operator=(const _CharT* __s) 2935449: { return this->assign(__s); } 2935449: # 925 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: operator=(_CharT __c) 2935449: { 2935449: this->assign(1, __c); 2935449: return *this; 2935449: } 2935449: # 943 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: operator=(basic_string&& __str) 2935449: noexcept(_Alloc_traits::_S_nothrow_move()) 2935449: { 2935449: const bool __equal_allocs = _Alloc_traits::_S_always_equal() 2935449: || _M_get_allocator() == __str._M_get_allocator(); 2935449: if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign() 2935449: && !__equal_allocs) 2935449: { 2935449: 2935449: _M_destroy(_M_allocated_capacity); 2935449: _M_data(_M_local_data()); 2935449: _M_set_length(0); 2935449: } 2935449: 2935449: std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator()); 2935449: 2935449: if (__str._M_is_local()) 2935449: { 2935449: 2935449: 2935449: 2935449: if (__builtin_expect(std::__addressof(__str) != this, true)) 2935449: { 2935449: if (__str.size()) 2935449: this->_S_copy(_M_data(), __str._M_data(), __str.size()); 2935449: _M_set_length(__str.size()); 2935449: } 2935449: } 2935449: else if (_Alloc_traits::_S_propagate_on_move_assign() || __equal_allocs) 2935449: { 2935449: 2935449: pointer __data = nullptr; 2935449: size_type __capacity; 2935449: if (!_M_is_local()) 2935449: { 2935449: if (__equal_allocs) 2935449: { 2935449: 2935449: __data = _M_data(); 2935449: __capacity = _M_allocated_capacity; 2935449: } 2935449: else 2935449: _M_destroy(_M_allocated_capacity); 2935449: } 2935449: 2935449: _M_data(__str._M_data()); 2935449: _M_length(__str.length()); 2935449: _M_capacity(__str._M_allocated_capacity); 2935449: if (__data) 2935449: { 2935449: __str._M_data(__data); 2935449: __str._M_capacity(__capacity); 2935449: } 2935449: else 2935449: __str._M_data(__str._M_use_local_data()); 2935449: } 2935449: else 2935449: _M_assign(__str); 2935449: __str.clear(); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: basic_string& 2935449: operator=(initializer_list<_CharT> __l) 2935449: { 2935449: this->assign(__l.begin(), __l.size()); 2935449: return *this; 2935449: } 2935449: # 1045 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: iterator 2935449: begin() noexcept 2935449: { return iterator(_M_data()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_iterator 2935449: begin() const noexcept 2935449: { return const_iterator(_M_data()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: iterator 2935449: end() noexcept 2935449: { return iterator(_M_data() + this->size()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_iterator 2935449: end() const noexcept 2935449: { return const_iterator(_M_data() + this->size()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: reverse_iterator 2935449: rbegin() noexcept 2935449: { return reverse_iterator(this->end()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_reverse_iterator 2935449: rbegin() const noexcept 2935449: { return const_reverse_iterator(this->end()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: reverse_iterator 2935449: rend() noexcept 2935449: { return reverse_iterator(this->begin()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_reverse_iterator 2935449: rend() const noexcept 2935449: { return const_reverse_iterator(this->begin()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_iterator 2935449: cbegin() const noexcept 2935449: { return const_iterator(this->_M_data()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_iterator 2935449: cend() const noexcept 2935449: { return const_iterator(this->_M_data() + this->size()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_reverse_iterator 2935449: crbegin() const noexcept 2935449: { return const_reverse_iterator(this->end()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_reverse_iterator 2935449: crend() const noexcept 2935449: { return const_reverse_iterator(this->begin()); } 2935449: 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: size_type 2935449: size() const noexcept 2935449: { 2935449: size_type __sz = _M_string_length; 2935449: if (__sz > max_size ()) 2935449: __builtin_unreachable (); 2935449: return __sz; 2935449: } 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: size_type 2935449: length() const noexcept 2935449: { return size(); } 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: size_type 2935449: max_size() const noexcept 2935449: { 2935449: const size_t __diffmax 2935449: = __gnu_cxx::__numeric_traits::__max / sizeof(_CharT); 2935449: const size_t __allocmax = _Alloc_traits::max_size(_M_get_allocator()); 2935449: return (std::min)(__diffmax, __allocmax) - 1; 2935449: } 2935449: # 1199 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: void 2935449: resize(size_type __n, _CharT __c); 2935449: # 1213 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: void 2935449: resize(size_type __n) 2935449: { this->resize(__n, _CharT()); } 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: 2935449: 2935449: void 2935449: shrink_to_fit() noexcept 2935449: { reserve(); } 2935449: #pragma GCC diagnostic pop 2935449: # 1266 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: void 2935449: __resize_and_overwrite(size_type __n, _Operation __op); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: size_type 2935449: capacity() const noexcept 2935449: { 2935449: size_t __sz = _M_is_local() ? size_type(_S_local_capacity) 2935449: : _M_allocated_capacity; 2935449: if (__sz < _S_local_capacity || __sz > max_size ()) 2935449: __builtin_unreachable (); 2935449: return __sz; 2935449: } 2935449: # 1303 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: void 2935449: reserve(size_type __res_arg); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: reserve(); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: clear() noexcept 2935449: { _M_set_length(0); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: bool 2935449: empty() const noexcept 2935449: { return _M_string_length == 0; } 2935449: # 1345 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: operator[] (size_type __pos) const noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__pos <= size())) std::__glibcxx_assert_fail(); } while (false); 2935449: return _M_data()[__pos]; 2935449: } 2935449: # 1363 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: reference 2935449: operator[](size_type __pos) 2935449: { 2935449: 2935449: 2935449: do { if (std::__is_constant_evaluated() && !bool(__pos <= size())) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: ; 2935449: return _M_data()[__pos]; 2935449: } 2935449: # 1385 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: at(size_type __n) const 2935449: { 2935449: if (__n >= this->size()) 2935449: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 2935449: 2935449: , 2935449: __n, this->size()); 2935449: return _M_data()[__n]; 2935449: } 2935449: # 1407 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: reference 2935449: at(size_type __n) 2935449: { 2935449: if (__n >= size()) 2935449: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 2935449: 2935449: , 2935449: __n, this->size()); 2935449: return _M_data()[__n]; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: reference 2935449: front() noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: return operator[](0); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: front() const noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: return operator[](0); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: reference 2935449: back() noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: return operator[](this->size() - 1); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: back() const noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: return operator[](this->size() - 1); 2935449: } 2935449: # 1475 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: operator+=(const basic_string& __str) 2935449: { return this->append(__str); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: basic_string& 2935449: operator+=(const _CharT* __s) 2935449: { return this->append(__s); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: basic_string& 2935449: operator+=(_CharT __c) 2935449: { 2935449: this->push_back(__c); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: basic_string& 2935449: operator+=(initializer_list<_CharT> __l) 2935449: { return this->append(__l.begin(), __l.size()); } 2935449: # 1533 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: append(const basic_string& __str) 2935449: { return this->append(__str._M_data(), __str.size()); } 2935449: # 1551 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: append(const basic_string& __str, size_type __pos, size_type __n = npos) 2935449: { return this->append(__str._M_data() 2935449: + __str._M_check(__pos, "basic_string::append"), 2935449: __str._M_limit(__pos, __n)); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: basic_string& 2935449: append(const _CharT* __s, size_type __n) 2935449: { 2935449: ; 2935449: _M_check_length(size_type(0), __n, "basic_string::append"); 2935449: return _M_append(__s, __n); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: basic_string& 2935449: append(const _CharT* __s) 2935449: { 2935449: ; 2935449: const size_type __n = traits_type::length(__s); 2935449: _M_check_length(size_type(0), __n, "basic_string::append"); 2935449: return _M_append(__s, __n); 2935449: } 2935449: # 1596 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: append(size_type __n, _CharT __c) 2935449: { return _M_replace_aux(this->size(), size_type(0), __n, __c); } 2935449: # 1659 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: append(initializer_list<_CharT> __l) 2935449: { return this->append(__l.begin(), __l.size()); } 2935449: # 1674 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template> 2935449: 2935449: 2935449: 2935449: 2935449: basic_string& 2935449: append(_InputIterator __first, _InputIterator __last) 2935449: { return this->replace(end(), end(), __first, __last); } 2935449: # 1722 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: void 2935449: push_back(_CharT __c) 2935449: { 2935449: const size_type __size = this->size(); 2935449: if (__size + 1 > this->capacity()) 2935449: this->_M_mutate(__size, size_type(0), 0, size_type(1)); 2935449: traits_type::assign(this->_M_data()[__size], __c); 2935449: this->_M_set_length(__size + 1); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: basic_string& 2935449: assign(const basic_string& __str) 2935449: { 2935449: 2935449: if (_Alloc_traits::_S_propagate_on_copy_assign()) 2935449: { 2935449: if (!_Alloc_traits::_S_always_equal() && !_M_is_local() 2935449: && _M_get_allocator() != __str._M_get_allocator()) 2935449: { 2935449: 2935449: 2935449: if (__str.size() <= _S_local_capacity) 2935449: { 2935449: _M_destroy(_M_allocated_capacity); 2935449: _M_data(_M_use_local_data()); 2935449: _M_set_length(0); 2935449: } 2935449: else 2935449: { 2935449: const auto __len = __str.size(); 2935449: auto __alloc = __str._M_get_allocator(); 2935449: 2935449: auto __ptr = _S_allocate(__alloc, __len + 1); 2935449: _M_destroy(_M_allocated_capacity); 2935449: _M_data(__ptr); 2935449: _M_capacity(__len); 2935449: _M_set_length(__len); 2935449: } 2935449: } 2935449: std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator()); 2935449: } 2935449: 2935449: this->_M_assign(__str); 2935449: return *this; 2935449: } 2935449: # 1784 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: assign(basic_string&& __str) 2935449: noexcept(_Alloc_traits::_S_nothrow_move()) 2935449: { 2935449: 2935449: 2935449: return *this = std::move(__str); 2935449: } 2935449: # 1808 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: assign(const basic_string& __str, size_type __pos, size_type __n = npos) 2935449: { return _M_replace(size_type(0), this->size(), __str._M_data() 2935449: + __str._M_check(__pos, "basic_string::assign"), 2935449: __str._M_limit(__pos, __n)); } 2935449: # 1825 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: assign(const _CharT* __s, size_type __n) 2935449: { 2935449: ; 2935449: return _M_replace(size_type(0), this->size(), __s, __n); 2935449: } 2935449: # 1842 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: assign(const _CharT* __s) 2935449: { 2935449: ; 2935449: return _M_replace(size_type(0), this->size(), __s, 2935449: traits_type::length(__s)); 2935449: } 2935449: # 1860 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: assign(size_type __n, _CharT __c) 2935449: { return _M_replace_aux(size_type(0), this->size(), __n, __c); } 2935449: # 1874 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: template> 2935449: 2935449: basic_string& 2935449: assign(_InputIterator __first, _InputIterator __last) 2935449: { 2935449: using _IterTraits = iterator_traits<_InputIterator>; 2935449: if constexpr (is_pointer::value 2935449: && is_same::value) 2935449: { 2935449: ; 2935449: return _M_replace(size_type(0), size(), 2935449: std::__niter_base(__first), __last - __first); 2935449: } 2935449: # 1901 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: else 2935449: return *this = basic_string(__first, __last, get_allocator()); 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: # 1937 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: assign(initializer_list<_CharT> __l) 2935449: { 2935449: 2935449: 2935449: const size_type __n = __l.size(); 2935449: if (__n > capacity()) 2935449: *this = basic_string(__l.begin(), __l.end(), get_allocator()); 2935449: else 2935449: { 2935449: if (__n) 2935449: _S_copy(_M_data(), __l.begin(), __n); 2935449: _M_set_length(__n); 2935449: } 2935449: return *this; 2935449: } 2935449: # 2007 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: iterator 2935449: insert(const_iterator __p, size_type __n, _CharT __c) 2935449: { 2935449: ; 2935449: const size_type __pos = __p - begin(); 2935449: this->replace(__p, __p, __n, __c); 2935449: return iterator(this->_M_data() + __pos); 2935449: } 2935449: # 2050 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template> 2935449: 2935449: iterator 2935449: insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) 2935449: { 2935449: ; 2935449: const size_type __pos = __p - begin(); 2935449: this->replace(__p, __p, __beg, __end); 2935449: return iterator(this->_M_data() + __pos); 2935449: } 2935449: # 2118 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: iterator 2935449: insert(const_iterator __p, initializer_list<_CharT> __l) 2935449: { return this->insert(__p, __l.begin(), __l.end()); } 2935449: # 2146 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: insert(size_type __pos1, const basic_string& __str) 2935449: { return this->replace(__pos1, size_type(0), 2935449: __str._M_data(), __str.size()); } 2935449: # 2170 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: insert(size_type __pos1, const basic_string& __str, 2935449: size_type __pos2, size_type __n = npos) 2935449: { return this->replace(__pos1, size_type(0), __str._M_data() 2935449: + __str._M_check(__pos2, "basic_string::insert"), 2935449: __str._M_limit(__pos2, __n)); } 2935449: # 2194 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: insert(size_type __pos, const _CharT* __s, size_type __n) 2935449: { return this->replace(__pos, size_type(0), __s, __n); } 2935449: # 2214 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: insert(size_type __pos, const _CharT* __s) 2935449: { 2935449: ; 2935449: return this->replace(__pos, size_type(0), __s, 2935449: traits_type::length(__s)); 2935449: } 2935449: # 2239 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: insert(size_type __pos, size_type __n, _CharT __c) 2935449: { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), 2935449: size_type(0), __n, __c); } 2935449: # 2258 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: iterator 2935449: insert(__const_iterator __p, _CharT __c) 2935449: { 2935449: ; 2935449: const size_type __pos = __p - begin(); 2935449: _M_replace_aux(__pos, size_type(0), size_type(1), __c); 2935449: return iterator(_M_data() + __pos); 2935449: } 2935449: # 2321 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: erase(size_type __pos = 0, size_type __n = npos) 2935449: { 2935449: _M_check(__pos, "basic_string::erase"); 2935449: if (__n == npos) 2935449: this->_M_set_length(__pos); 2935449: else if (__n != 0) 2935449: this->_M_erase(__pos, _M_limit(__pos, __n)); 2935449: return *this; 2935449: } 2935449: # 2341 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: iterator 2935449: erase(__const_iterator __position) 2935449: { 2935449: 2935449: ; 2935449: const size_type __pos = __position - begin(); 2935449: this->_M_erase(__pos, size_type(1)); 2935449: return iterator(_M_data() + __pos); 2935449: } 2935449: # 2361 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: iterator 2935449: erase(__const_iterator __first, __const_iterator __last) 2935449: { 2935449: 2935449: ; 2935449: const size_type __pos = __first - begin(); 2935449: if (__last == end()) 2935449: this->_M_set_length(__pos); 2935449: else 2935449: this->_M_erase(__pos, __last - __first); 2935449: return iterator(this->_M_data() + __pos); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: pop_back() noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: _M_erase(size() - 1, 1); 2935449: } 2935449: # 2407 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: replace(size_type __pos, size_type __n, const basic_string& __str) 2935449: { return this->replace(__pos, __n, __str._M_data(), __str.size()); } 2935449: # 2430 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: replace(size_type __pos1, size_type __n1, const basic_string& __str, 2935449: size_type __pos2, size_type __n2 = npos) 2935449: { return this->replace(__pos1, __n1, __str._M_data() 2935449: + __str._M_check(__pos2, "basic_string::replace"), 2935449: __str._M_limit(__pos2, __n2)); } 2935449: # 2456 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: replace(size_type __pos, size_type __n1, const _CharT* __s, 2935449: size_type __n2) 2935449: { 2935449: ; 2935449: return _M_replace(_M_check(__pos, "basic_string::replace"), 2935449: _M_limit(__pos, __n1), __s, __n2); 2935449: } 2935449: # 2482 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: replace(size_type __pos, size_type __n1, const _CharT* __s) 2935449: { 2935449: ; 2935449: return this->replace(__pos, __n1, __s, traits_type::length(__s)); 2935449: } 2935449: # 2507 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) 2935449: { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), 2935449: _M_limit(__pos, __n1), __n2, __c); } 2935449: # 2526 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: replace(__const_iterator __i1, __const_iterator __i2, 2935449: const basic_string& __str) 2935449: { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } 2935449: # 2547 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: replace(__const_iterator __i1, __const_iterator __i2, 2935449: const _CharT* __s, size_type __n) 2935449: { 2935449: 2935449: ; 2935449: return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); 2935449: } 2935449: # 2570 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) 2935449: { 2935449: ; 2935449: return this->replace(__i1, __i2, __s, traits_type::length(__s)); 2935449: } 2935449: # 2592 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: replace(__const_iterator __i1, __const_iterator __i2, size_type __n, 2935449: _CharT __c) 2935449: { 2935449: 2935449: ; 2935449: return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); 2935449: } 2935449: # 2618 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template> 2935449: 2935449: basic_string& 2935449: replace(const_iterator __i1, const_iterator __i2, 2935449: _InputIterator __k1, _InputIterator __k2) 2935449: { 2935449: 2935449: ; 2935449: ; 2935449: return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, 2935449: std::__false_type()); 2935449: } 2935449: # 2651 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& 2935449: replace(__const_iterator __i1, __const_iterator __i2, 2935449: _CharT* __k1, _CharT* __k2) 2935449: { 2935449: 2935449: ; 2935449: ; 2935449: return this->replace(__i1 - begin(), __i2 - __i1, 2935449: __k1, __k2 - __k1); 2935449: } 2935449: 2935449: 2935449: basic_string& 2935449: replace(__const_iterator __i1, __const_iterator __i2, 2935449: const _CharT* __k1, const _CharT* __k2) 2935449: { 2935449: 2935449: ; 2935449: ; 2935449: return this->replace(__i1 - begin(), __i2 - __i1, 2935449: __k1, __k2 - __k1); 2935449: } 2935449: 2935449: 2935449: basic_string& 2935449: replace(__const_iterator __i1, __const_iterator __i2, 2935449: iterator __k1, iterator __k2) 2935449: { 2935449: 2935449: ; 2935449: ; 2935449: return this->replace(__i1 - begin(), __i2 - __i1, 2935449: __k1.base(), __k2 - __k1); 2935449: } 2935449: 2935449: 2935449: basic_string& 2935449: replace(__const_iterator __i1, __const_iterator __i2, 2935449: const_iterator __k1, const_iterator __k2) 2935449: { 2935449: 2935449: ; 2935449: ; 2935449: return this->replace(__i1 - begin(), __i2 - __i1, 2935449: __k1.base(), __k2 - __k1); 2935449: } 2935449: # 2738 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: basic_string& replace(const_iterator __i1, const_iterator __i2, 2935449: initializer_list<_CharT> __l) 2935449: { return this->replace(__i1, __i2, __l.begin(), __l.size()); } 2935449: # 2802 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: private: 2935449: template 2935449: 2935449: basic_string& 2935449: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 2935449: _Integer __n, _Integer __val, __true_type) 2935449: { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } 2935449: 2935449: template 2935449: 2935449: basic_string& 2935449: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 2935449: _InputIterator __k1, _InputIterator __k2, 2935449: __false_type); 2935449: 2935449: 2935449: basic_string& 2935449: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 2935449: _CharT __c); 2935449: 2935449: __attribute__((__noinline__, __noclone__, __cold__)) void 2935449: _M_replace_cold(pointer __p, size_type __len1, const _CharT* __s, 2935449: const size_type __len2, const size_type __how_much); 2935449: 2935449: 2935449: basic_string& 2935449: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 2935449: const size_type __len2); 2935449: 2935449: 2935449: basic_string& 2935449: _M_append(const _CharT* __s, size_type __n); 2935449: 2935449: public: 2935449: # 2849 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: size_type 2935449: copy(_CharT* __s, size_type __n, size_type __pos = 0) const; 2935449: # 2860 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: void 2935449: swap(basic_string& __s) noexcept; 2935449: # 2871 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: const _CharT* 2935449: c_str() const noexcept 2935449: { return _M_data(); } 2935449: # 2884 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: const _CharT* 2935449: data() const noexcept 2935449: { return _M_data(); } 2935449: # 2905 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: allocator_type 2935449: get_allocator() const noexcept 2935449: { return _M_get_allocator(); } 2935449: # 2922 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find(const _CharT* __s, size_type __pos, size_type __n) const 2935449: noexcept; 2935449: # 2937 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find(const basic_string& __str, size_type __pos = 0) const 2935449: noexcept 2935449: { return this->find(__str.data(), __pos, __str.size()); } 2935449: # 2971 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find(const _CharT* __s, size_type __pos = 0) const noexcept 2935449: { 2935449: ; 2935449: return this->find(__s, __pos, traits_type::length(__s)); 2935449: } 2935449: # 2989 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find(_CharT __c, size_type __pos = 0) const noexcept; 2935449: # 3003 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: rfind(const basic_string& __str, size_type __pos = npos) const 2935449: noexcept 2935449: { return this->rfind(__str.data(), __pos, __str.size()); } 2935449: # 3039 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: rfind(const _CharT* __s, size_type __pos, size_type __n) const 2935449: noexcept; 2935449: # 3054 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: rfind(const _CharT* __s, size_type __pos = npos) const 2935449: { 2935449: ; 2935449: return this->rfind(__s, __pos, traits_type::length(__s)); 2935449: } 2935449: # 3072 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: rfind(_CharT __c, size_type __pos = npos) const noexcept; 2935449: # 3087 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_first_of(const basic_string& __str, size_type __pos = 0) const 2935449: noexcept 2935449: { return this->find_first_of(__str.data(), __pos, __str.size()); } 2935449: # 3124 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 2935449: noexcept; 2935449: # 3139 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_first_of(const _CharT* __s, size_type __pos = 0) const 2935449: noexcept 2935449: { 2935449: ; 2935449: return this->find_first_of(__s, __pos, traits_type::length(__s)); 2935449: } 2935449: # 3160 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_first_of(_CharT __c, size_type __pos = 0) const noexcept 2935449: { return this->find(__c, __pos); } 2935449: # 3176 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_last_of(const basic_string& __str, size_type __pos = npos) const 2935449: noexcept 2935449: { return this->find_last_of(__str.data(), __pos, __str.size()); } 2935449: # 3213 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 2935449: noexcept; 2935449: # 3228 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_last_of(const _CharT* __s, size_type __pos = npos) const 2935449: noexcept 2935449: { 2935449: ; 2935449: return this->find_last_of(__s, __pos, traits_type::length(__s)); 2935449: } 2935449: # 3249 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_last_of(_CharT __c, size_type __pos = npos) const noexcept 2935449: { return this->rfind(__c, __pos); } 2935449: # 3264 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_first_not_of(const basic_string& __str, size_type __pos = 0) const 2935449: noexcept 2935449: { return this->find_first_not_of(__str.data(), __pos, __str.size()); } 2935449: # 3301 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_first_not_of(const _CharT* __s, size_type __pos, 2935449: size_type __n) const noexcept; 2935449: # 3316 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_first_not_of(const _CharT* __s, size_type __pos = 0) const 2935449: noexcept 2935449: { 2935449: ; 2935449: return this->find_first_not_of(__s, __pos, traits_type::length(__s)); 2935449: } 2935449: # 3335 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_first_not_of(_CharT __c, size_type __pos = 0) const 2935449: noexcept; 2935449: # 3351 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_last_not_of(const basic_string& __str, size_type __pos = npos) const 2935449: noexcept 2935449: { return this->find_last_not_of(__str.data(), __pos, __str.size()); } 2935449: # 3388 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_last_not_of(const _CharT* __s, size_type __pos, 2935449: size_type __n) const noexcept; 2935449: # 3403 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_last_not_of(const _CharT* __s, size_type __pos = npos) const 2935449: noexcept 2935449: { 2935449: ; 2935449: return this->find_last_not_of(__s, __pos, traits_type::length(__s)); 2935449: } 2935449: # 3422 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: size_type 2935449: find_last_not_of(_CharT __c, size_type __pos = npos) const 2935449: noexcept; 2935449: # 3439 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: basic_string 2935449: substr(size_type __pos = 0, size_type __n = npos) const 2935449: { return basic_string(*this, 2935449: _M_check(__pos, "basic_string::substr"), __n); } 2935449: # 3459 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: int 2935449: compare(const basic_string& __str) const 2935449: { 2935449: const size_type __size = this->size(); 2935449: const size_type __osize = __str.size(); 2935449: const size_type __len = std::min(__size, __osize); 2935449: 2935449: int __r = traits_type::compare(_M_data(), __str.data(), __len); 2935449: if (!__r) 2935449: __r = _S_compare(__size, __osize); 2935449: return __r; 2935449: } 2935449: # 3556 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: int 2935449: compare(size_type __pos, size_type __n, const basic_string& __str) const 2935449: { 2935449: _M_check(__pos, "basic_string::compare"); 2935449: __n = _M_limit(__pos, __n); 2935449: const size_type __osize = __str.size(); 2935449: const size_type __len = std::min(__n, __osize); 2935449: int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); 2935449: if (!__r) 2935449: __r = _S_compare(__n, __osize); 2935449: return __r; 2935449: } 2935449: # 3593 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: int 2935449: compare(size_type __pos1, size_type __n1, const basic_string& __str, 2935449: size_type __pos2, size_type __n2 = npos) const 2935449: { 2935449: _M_check(__pos1, "basic_string::compare"); 2935449: __str._M_check(__pos2, "basic_string::compare"); 2935449: __n1 = _M_limit(__pos1, __n1); 2935449: __n2 = __str._M_limit(__pos2, __n2); 2935449: const size_type __len = std::min(__n1, __n2); 2935449: int __r = traits_type::compare(_M_data() + __pos1, 2935449: __str.data() + __pos2, __len); 2935449: if (!__r) 2935449: __r = _S_compare(__n1, __n2); 2935449: return __r; 2935449: } 2935449: # 3624 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: int 2935449: compare(const _CharT* __s) const noexcept 2935449: { 2935449: ; 2935449: const size_type __size = this->size(); 2935449: const size_type __osize = traits_type::length(__s); 2935449: const size_type __len = std::min(__size, __osize); 2935449: int __r = traits_type::compare(_M_data(), __s, __len); 2935449: if (!__r) 2935449: __r = _S_compare(__size, __osize); 2935449: return __r; 2935449: } 2935449: # 3659 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: int 2935449: compare(size_type __pos, size_type __n1, const _CharT* __s) const 2935449: { 2935449: ; 2935449: _M_check(__pos, "basic_string::compare"); 2935449: __n1 = _M_limit(__pos, __n1); 2935449: const size_type __osize = traits_type::length(__s); 2935449: const size_type __len = std::min(__n1, __osize); 2935449: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 2935449: if (!__r) 2935449: __r = _S_compare(__n1, __osize); 2935449: return __r; 2935449: } 2935449: # 3698 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: int 2935449: compare(size_type __pos, size_type __n1, const _CharT* __s, 2935449: size_type __n2) const 2935449: { 2935449: ; 2935449: _M_check(__pos, "basic_string::compare"); 2935449: __n1 = _M_limit(__pos, __n1); 2935449: const size_type __len = std::min(__n1, __n2); 2935449: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 2935449: if (!__r) 2935449: __r = _S_compare(__n1, __n2); 2935449: return __r; 2935449: } 2935449: # 3763 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template friend class basic_stringbuf; 2935449: }; 2935449: } 2935449: 2935449: } 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 3812 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: 2935449: inline _Str 2935449: __str_concat(typename _Str::value_type const* __lhs, 2935449: typename _Str::size_type __lhs_len, 2935449: typename _Str::value_type const* __rhs, 2935449: typename _Str::size_type __rhs_len, 2935449: typename _Str::allocator_type const& __a) 2935449: { 2935449: typedef typename _Str::allocator_type allocator_type; 2935449: typedef __gnu_cxx::__alloc_traits _Alloc_traits; 2935449: _Str __str(_Alloc_traits::_S_select_on_copy(__a)); 2935449: __str.reserve(__lhs_len + __rhs_len); 2935449: __str.append(__lhs, __lhs_len); 2935449: __str.append(__rhs, __rhs_len); 2935449: return __str; 2935449: } 2935449: # 3837 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline basic_string<_CharT, _Traits, _Alloc> 2935449: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: { 2935449: typedef basic_string<_CharT, _Traits, _Alloc> _Str; 2935449: return std::__str_concat<_Str>(__lhs.c_str(), __lhs.size(), 2935449: __rhs.c_str(), __rhs.size(), 2935449: __lhs.get_allocator()); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline basic_string<_CharT,_Traits,_Alloc> 2935449: operator+(const _CharT* __lhs, 2935449: const basic_string<_CharT,_Traits,_Alloc>& __rhs) 2935449: { 2935449: ; 2935449: typedef basic_string<_CharT, _Traits, _Alloc> _Str; 2935449: return std::__str_concat<_Str>(__lhs, _Traits::length(__lhs), 2935449: __rhs.c_str(), __rhs.size(), 2935449: __rhs.get_allocator()); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline basic_string<_CharT,_Traits,_Alloc> 2935449: operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs) 2935449: { 2935449: typedef basic_string<_CharT, _Traits, _Alloc> _Str; 2935449: return std::__str_concat<_Str>(__builtin_addressof(__lhs), 1, 2935449: __rhs.c_str(), __rhs.size(), 2935449: __rhs.get_allocator()); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline basic_string<_CharT, _Traits, _Alloc> 2935449: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const _CharT* __rhs) 2935449: { 2935449: ; 2935449: typedef basic_string<_CharT, _Traits, _Alloc> _Str; 2935449: return std::__str_concat<_Str>(__lhs.c_str(), __lhs.size(), 2935449: __rhs, _Traits::length(__rhs), 2935449: __lhs.get_allocator()); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline basic_string<_CharT, _Traits, _Alloc> 2935449: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) 2935449: { 2935449: typedef basic_string<_CharT, _Traits, _Alloc> _Str; 2935449: return std::__str_concat<_Str>(__lhs.c_str(), __lhs.size(), 2935449: __builtin_addressof(__rhs), 1, 2935449: __lhs.get_allocator()); 2935449: } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline basic_string<_CharT, _Traits, _Alloc> 2935449: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: { return std::move(__lhs.append(__rhs)); } 2935449: 2935449: template 2935449: 2935449: inline basic_string<_CharT, _Traits, _Alloc> 2935449: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 2935449: { return std::move(__rhs.insert(0, __lhs)); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline basic_string<_CharT, _Traits, _Alloc> 2935449: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 2935449: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 2935449: { 2935449: 2935449: using _Alloc_traits = allocator_traits<_Alloc>; 2935449: bool __use_rhs = false; 2935449: if (typename _Alloc_traits::is_always_equal{}) 2935449: __use_rhs = true; 2935449: else if (__lhs.get_allocator() == __rhs.get_allocator()) 2935449: __use_rhs = true; 2935449: if (__use_rhs) 2935449: 2935449: { 2935449: const auto __size = __lhs.size() + __rhs.size(); 2935449: if (__size > __lhs.capacity() && __size <= __rhs.capacity()) 2935449: return std::move(__rhs.insert(0, __lhs)); 2935449: } 2935449: return std::move(__lhs.append(__rhs)); 2935449: } 2935449: 2935449: template 2935449: [[__nodiscard__]] [[__nodiscard__]] 2935449: inline basic_string<_CharT, _Traits, _Alloc> 2935449: operator+(const _CharT* __lhs, 2935449: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 2935449: { return std::move(__rhs.insert(0, __lhs)); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline basic_string<_CharT, _Traits, _Alloc> 2935449: operator+(_CharT __lhs, 2935449: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 2935449: { return std::move(__rhs.insert(0, 1, __lhs)); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline basic_string<_CharT, _Traits, _Alloc> 2935449: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 2935449: const _CharT* __rhs) 2935449: { return std::move(__lhs.append(__rhs)); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline basic_string<_CharT, _Traits, _Alloc> 2935449: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 2935449: _CharT __rhs) 2935449: { return std::move(__lhs.append(1, __rhs)); } 2935449: # 4042 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: noexcept 2935449: { 2935449: return __lhs.size() == __rhs.size() 2935449: && !_Traits::compare(__lhs.data(), __rhs.data(), __lhs.size()); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const _CharT* __rhs) 2935449: { 2935449: return __lhs.size() == _Traits::length(__rhs) 2935449: && !_Traits::compare(__lhs.data(), __rhs, __lhs.size()); 2935449: } 2935449: # 4106 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator==(const _CharT* __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: { return __rhs == __lhs; } 2935449: # 4120 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: noexcept 2935449: { return !(__lhs == __rhs); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator!=(const _CharT* __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: { return !(__rhs == __lhs); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const _CharT* __rhs) 2935449: { return !(__lhs == __rhs); } 2935449: # 4161 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: noexcept 2935449: { return __lhs.compare(__rhs) < 0; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const _CharT* __rhs) 2935449: { return __lhs.compare(__rhs) < 0; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator<(const _CharT* __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: { return __rhs.compare(__lhs) > 0; } 2935449: # 4202 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: noexcept 2935449: { return __lhs.compare(__rhs) > 0; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const _CharT* __rhs) 2935449: { return __lhs.compare(__rhs) > 0; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>(const _CharT* __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: { return __rhs.compare(__lhs) < 0; } 2935449: # 4243 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: noexcept 2935449: { return __lhs.compare(__rhs) <= 0; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const _CharT* __rhs) 2935449: { return __lhs.compare(__rhs) <= 0; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator<=(const _CharT* __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: { return __rhs.compare(__lhs) >= 0; } 2935449: # 4284 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: noexcept 2935449: { return __lhs.compare(__rhs) >= 0; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: const _CharT* __rhs) 2935449: { return __lhs.compare(__rhs) >= 0; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator>=(const _CharT* __lhs, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: { return __rhs.compare(__lhs) <= 0; } 2935449: # 4326 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: 2935449: inline void 2935449: swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, 2935449: basic_string<_CharT, _Traits, _Alloc>& __rhs) 2935449: noexcept(noexcept(__lhs.swap(__rhs))) 2935449: { __lhs.swap(__rhs); } 2935449: # 4347 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: basic_istream<_CharT, _Traits>& 2935449: operator>>(basic_istream<_CharT, _Traits>& __is, 2935449: basic_string<_CharT, _Traits, _Alloc>& __str); 2935449: 2935449: template<> 2935449: basic_istream& 2935449: operator>>(basic_istream& __is, basic_string& __str); 2935449: # 4365 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: inline basic_ostream<_CharT, _Traits>& 2935449: operator<<(basic_ostream<_CharT, _Traits>& __os, 2935449: const basic_string<_CharT, _Traits, _Alloc>& __str) 2935449: { 2935449: 2935449: 2935449: return __ostream_insert(__os, __str.data(), __str.size()); 2935449: } 2935449: # 4388 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: basic_istream<_CharT, _Traits>& 2935449: getline(basic_istream<_CharT, _Traits>& __is, 2935449: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); 2935449: # 4405 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: inline basic_istream<_CharT, _Traits>& 2935449: getline(basic_istream<_CharT, _Traits>& __is, 2935449: basic_string<_CharT, _Traits, _Alloc>& __str) 2935449: { return std::getline(__is, __str, __is.widen('\n')); } 2935449: 2935449: 2935449: 2935449: template 2935449: inline basic_istream<_CharT, _Traits>& 2935449: getline(basic_istream<_CharT, _Traits>&& __is, 2935449: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 2935449: { return std::getline(__is, __str, __delim); } 2935449: 2935449: 2935449: template 2935449: inline basic_istream<_CharT, _Traits>& 2935449: getline(basic_istream<_CharT, _Traits>&& __is, 2935449: basic_string<_CharT, _Traits, _Alloc>& __str) 2935449: { return std::getline(__is, __str); } 2935449: 2935449: 2935449: template<> 2935449: basic_istream& 2935449: getline(basic_istream& __in, basic_string& __str, 2935449: char __delim); 2935449: 2935449: 2935449: template<> 2935449: basic_istream& 2935449: getline(basic_istream& __in, basic_string& __str, 2935449: wchar_t __delim); 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/ext/string_conversions.h" 1 3 2935449: # 45 "/usr/arm-linux-gnueabi/include/c++/15/ext/string_conversions.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/cstdlib" 1 3 2935449: # 80 "/usr/arm-linux-gnueabi/include/c++/15/cstdlib" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wpedantic" 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/stdlib.h" 1 3 2935449: # 26 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/libc-header-start.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/stdlib.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 33 "/usr/arm-linux-gnueabi/include/stdlib.h" 2 3 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/waitflags.h" 1 3 2935449: # 41 "/usr/arm-linux-gnueabi/include/stdlib.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/waitstatus.h" 1 3 2935449: # 42 "/usr/arm-linux-gnueabi/include/stdlib.h" 2 3 2935449: # 56 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/floatn.h" 1 3 2935449: # 57 "/usr/arm-linux-gnueabi/include/stdlib.h" 2 3 2935449: 2935449: 2935449: typedef struct 2935449: { 2935449: int quot; 2935449: int rem; 2935449: } div_t; 2935449: 2935449: 2935449: 2935449: typedef struct 2935449: { 2935449: long int quot; 2935449: long int rem; 2935449: } ldiv_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __extension__ typedef struct 2935449: { 2935449: long long int quot; 2935449: long long int rem; 2935449: } lldiv_t; 2935449: # 98 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern size_t __ctype_get_mb_cur_max (void) noexcept (true) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: extern double atof (const char *__nptr) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: extern int atoi (const char *__nptr) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: extern long int atol (const char *__nptr) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: __extension__ extern long long int atoll (const char *__nptr) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: extern double strtod (const char *__restrict __nptr, 2935449: char **__restrict __endptr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern float strtof (const char *__restrict __nptr, 2935449: char **__restrict __endptr) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: extern long double strtold (const char *__restrict __nptr, 2935449: char **__restrict __endptr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: # 141 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern _Float32 strtof32 (const char *__restrict __nptr, 2935449: char **__restrict __endptr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern _Float64 strtof64 (const char *__restrict __nptr, 2935449: char **__restrict __endptr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: # 159 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern _Float32x strtof32x (const char *__restrict __nptr, 2935449: char **__restrict __endptr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: # 177 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern long int strtol (const char *__restrict __nptr, 2935449: char **__restrict __endptr, int __base) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: extern unsigned long int strtoul (const char *__restrict __nptr, 2935449: char **__restrict __endptr, int __base) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: __extension__ 2935449: extern long long int strtoq (const char *__restrict __nptr, 2935449: char **__restrict __endptr, int __base) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: __extension__ 2935449: extern unsigned long long int strtouq (const char *__restrict __nptr, 2935449: char **__restrict __endptr, int __base) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: __extension__ 2935449: extern long long int strtoll (const char *__restrict __nptr, 2935449: char **__restrict __endptr, int __base) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: __extension__ 2935449: extern unsigned long long int strtoull (const char *__restrict __nptr, 2935449: char **__restrict __endptr, int __base) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern long int strtol (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtol") 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1))); 2935449: extern unsigned long int strtoul (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoul") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1))); 2935449: 2935449: __extension__ 2935449: extern long long int strtoq (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoll") 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1))); 2935449: __extension__ 2935449: extern unsigned long long int strtouq (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoull") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1))); 2935449: 2935449: __extension__ 2935449: extern long long int strtoll (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoll") 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1))); 2935449: __extension__ 2935449: extern unsigned long long int strtoull (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoull") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1))); 2935449: # 278 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern int strfromd (char *__dest, size_t __size, const char *__format, 2935449: double __f) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3))); 2935449: 2935449: extern int strfromf (char *__dest, size_t __size, const char *__format, 2935449: float __f) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3))); 2935449: 2935449: extern int strfroml (char *__dest, size_t __size, const char *__format, 2935449: long double __f) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3))); 2935449: # 298 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern int strfromf32 (char *__dest, size_t __size, const char * __format, 2935449: _Float32 __f) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3))); 2935449: 2935449: 2935449: 2935449: extern int strfromf64 (char *__dest, size_t __size, const char * __format, 2935449: _Float64 __f) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3))); 2935449: # 316 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern int strfromf32x (char *__dest, size_t __size, const char * __format, 2935449: _Float32x __f) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3))); 2935449: # 340 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern long int strtol_l (const char *__restrict __nptr, 2935449: char **__restrict __endptr, int __base, 2935449: locale_t __loc) noexcept (true) __attribute__ ((__nonnull__ (1, 4))); 2935449: 2935449: extern unsigned long int strtoul_l (const char *__restrict __nptr, 2935449: char **__restrict __endptr, 2935449: int __base, locale_t __loc) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 4))); 2935449: 2935449: __extension__ 2935449: extern long long int strtoll_l (const char *__restrict __nptr, 2935449: char **__restrict __endptr, int __base, 2935449: locale_t __loc) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 4))); 2935449: 2935449: __extension__ 2935449: extern unsigned long long int strtoull_l (const char *__restrict __nptr, 2935449: char **__restrict __endptr, 2935449: int __base, locale_t __loc) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 4))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern long int strtol_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtol_l") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1, 4))); 2935449: extern unsigned long int strtoul_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoul_l") 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1, 4))); 2935449: __extension__ 2935449: extern long long int strtoll_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoll_l") 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1, 4))); 2935449: __extension__ 2935449: extern unsigned long long int strtoull_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoull_l") 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1, 4))); 2935449: # 415 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern double strtod_l (const char *__restrict __nptr, 2935449: char **__restrict __endptr, locale_t __loc) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 2935449: 2935449: extern float strtof_l (const char *__restrict __nptr, 2935449: char **__restrict __endptr, locale_t __loc) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 2935449: 2935449: extern long double strtold_l (const char *__restrict __nptr, 2935449: char **__restrict __endptr, 2935449: locale_t __loc) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 2935449: # 436 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern _Float32 strtof32_l (const char *__restrict __nptr, 2935449: char **__restrict __endptr, 2935449: locale_t __loc) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 2935449: 2935449: 2935449: 2935449: extern _Float64 strtof64_l (const char *__restrict __nptr, 2935449: char **__restrict __endptr, 2935449: locale_t __loc) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 2935449: # 457 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern _Float32x strtof32x_l (const char *__restrict __nptr, 2935449: char **__restrict __endptr, 2935449: locale_t __loc) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 2935449: # 480 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern __inline __attribute__ ((__gnu_inline__)) int 2935449: __attribute__ ((__leaf__)) atoi (const char *__nptr) noexcept (true) 2935449: { 2935449: return (int) strtol (__nptr, (char **) __null, 10); 2935449: } 2935449: extern __inline __attribute__ ((__gnu_inline__)) long int 2935449: __attribute__ ((__leaf__)) atol (const char *__nptr) noexcept (true) 2935449: { 2935449: return strtol (__nptr, (char **) __null, 10); 2935449: } 2935449: 2935449: 2935449: __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int 2935449: __attribute__ ((__leaf__)) atoll (const char *__nptr) noexcept (true) 2935449: { 2935449: return strtoll (__nptr, (char **) __null, 10); 2935449: } 2935449: # 505 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern char *l64a (long int __n) noexcept (true) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: extern long int a64l (const char *__s) 2935449: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/sys/types.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/sys/types.h" 3 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __u_char u_char; 2935449: typedef __u_short u_short; 2935449: typedef __u_int u_int; 2935449: typedef __u_long u_long; 2935449: typedef __quad_t quad_t; 2935449: typedef __u_quad_t u_quad_t; 2935449: typedef __fsid_t fsid_t; 2935449: 2935449: 2935449: typedef __loff_t loff_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __ino64_t ino_t; 2935449: 2935449: 2935449: 2935449: 2935449: typedef __ino64_t ino64_t; 2935449: 2935449: 2935449: 2935449: 2935449: typedef __dev_t dev_t; 2935449: 2935449: 2935449: 2935449: 2935449: typedef __gid_t gid_t; 2935449: 2935449: 2935449: 2935449: 2935449: typedef __mode_t mode_t; 2935449: 2935449: 2935449: 2935449: 2935449: typedef __nlink_t nlink_t; 2935449: 2935449: 2935449: 2935449: 2935449: typedef __uid_t uid_t; 2935449: # 97 "/usr/arm-linux-gnueabi/include/sys/types.h" 3 2935449: typedef __pid_t pid_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __id_t id_t; 2935449: # 114 "/usr/arm-linux-gnueabi/include/sys/types.h" 3 2935449: typedef __daddr_t daddr_t; 2935449: typedef __caddr_t caddr_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __key_t key_t; 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/clock_t.h" 1 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __clock_t clock_t; 2935449: # 127 "/usr/arm-linux-gnueabi/include/sys/types.h" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/clockid_t.h" 1 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __clockid_t clockid_t; 2935449: # 129 "/usr/arm-linux-gnueabi/include/sys/types.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/time_t.h" 1 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __time64_t time_t; 2935449: # 130 "/usr/arm-linux-gnueabi/include/sys/types.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/timer_t.h" 1 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __timer_t timer_t; 2935449: # 131 "/usr/arm-linux-gnueabi/include/sys/types.h" 2 3 2935449: 2935449: 2935449: 2935449: typedef __useconds_t useconds_t; 2935449: 2935449: 2935449: 2935449: typedef __suseconds_t suseconds_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 145 "/usr/arm-linux-gnueabi/include/sys/types.h" 2 3 2935449: 2935449: 2935449: 2935449: typedef unsigned long int ulong; 2935449: typedef unsigned short int ushort; 2935449: typedef unsigned int uint; 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/stdint-intn.h" 1 3 2935449: # 24 "/usr/arm-linux-gnueabi/include/bits/stdint-intn.h" 3 2935449: typedef __int8_t int8_t; 2935449: typedef __int16_t int16_t; 2935449: typedef __int32_t int32_t; 2935449: typedef __int64_t int64_t; 2935449: # 156 "/usr/arm-linux-gnueabi/include/sys/types.h" 2 3 2935449: 2935449: 2935449: typedef __uint8_t u_int8_t; 2935449: typedef __uint16_t u_int16_t; 2935449: typedef __uint32_t u_int32_t; 2935449: typedef __uint64_t u_int64_t; 2935449: 2935449: 2935449: typedef int register_t __attribute__ ((__mode__ (__word__))); 2935449: # 176 "/usr/arm-linux-gnueabi/include/sys/types.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/endian.h" 1 3 2935449: # 35 "/usr/arm-linux-gnueabi/include/endian.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/byteswap.h" 1 3 2935449: # 33 "/usr/arm-linux-gnueabi/include/bits/byteswap.h" 3 2935449: static __inline __uint16_t 2935449: __bswap_16 (__uint16_t __bsx) 2935449: { 2935449: 2935449: return __builtin_bswap16 (__bsx); 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static __inline __uint32_t 2935449: __bswap_32 (__uint32_t __bsx) 2935449: { 2935449: 2935449: return __builtin_bswap32 (__bsx); 2935449: 2935449: 2935449: 2935449: } 2935449: # 69 "/usr/arm-linux-gnueabi/include/bits/byteswap.h" 3 2935449: __extension__ static __inline __uint64_t 2935449: __bswap_64 (__uint64_t __bsx) 2935449: { 2935449: 2935449: return __builtin_bswap64 (__bsx); 2935449: 2935449: 2935449: 2935449: } 2935449: # 36 "/usr/arm-linux-gnueabi/include/endian.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/uintn-identity.h" 1 3 2935449: # 32 "/usr/arm-linux-gnueabi/include/bits/uintn-identity.h" 3 2935449: static __inline __uint16_t 2935449: __uint16_identity (__uint16_t __x) 2935449: { 2935449: return __x; 2935449: } 2935449: 2935449: static __inline __uint32_t 2935449: __uint32_identity (__uint32_t __x) 2935449: { 2935449: return __x; 2935449: } 2935449: 2935449: static __inline __uint64_t 2935449: __uint64_identity (__uint64_t __x) 2935449: { 2935449: return __x; 2935449: } 2935449: # 37 "/usr/arm-linux-gnueabi/include/endian.h" 2 3 2935449: # 177 "/usr/arm-linux-gnueabi/include/sys/types.h" 2 3 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/sys/select.h" 1 3 2935449: # 30 "/usr/arm-linux-gnueabi/include/sys/select.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/select.h" 1 3 2935449: # 31 "/usr/arm-linux-gnueabi/include/sys/select.h" 2 3 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/sigset_t.h" 1 3 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/__sigset_t.h" 1 3 2935449: 2935449: 2935449: 2935449: 2935449: typedef struct 2935449: { 2935449: unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; 2935449: } __sigset_t; 2935449: # 5 "/usr/arm-linux-gnueabi/include/bits/types/sigset_t.h" 2 3 2935449: 2935449: 2935449: typedef __sigset_t sigset_t; 2935449: # 34 "/usr/arm-linux-gnueabi/include/sys/select.h" 2 3 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/struct_timeval.h" 1 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct timeval 2935449: { 2935449: 2935449: __time64_t tv_sec; 2935449: __suseconds64_t tv_usec; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: # 38 "/usr/arm-linux-gnueabi/include/sys/select.h" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/struct_timespec.h" 1 3 2935449: # 11 "/usr/arm-linux-gnueabi/include/bits/types/struct_timespec.h" 3 2935449: struct timespec 2935449: { 2935449: 2935449: __time64_t tv_sec; 2935449: # 27 "/usr/arm-linux-gnueabi/include/bits/types/struct_timespec.h" 3 2935449: long int tv_nsec; 2935449: int: 32; 2935449: 2935449: 2935449: }; 2935449: # 40 "/usr/arm-linux-gnueabi/include/sys/select.h" 2 3 2935449: # 49 "/usr/arm-linux-gnueabi/include/sys/select.h" 3 2935449: typedef long int __fd_mask; 2935449: # 59 "/usr/arm-linux-gnueabi/include/sys/select.h" 3 2935449: typedef struct 2935449: { 2935449: 2935449: 2935449: 2935449: __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } fd_set; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __fd_mask fd_mask; 2935449: # 91 "/usr/arm-linux-gnueabi/include/sys/select.h" 3 2935449: extern "C" { 2935449: # 108 "/usr/arm-linux-gnueabi/include/sys/select.h" 3 2935449: extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout) __asm__ ("" "__select64") 2935449: 2935449: 2935449: 2935449: 2935449: ; 2935449: # 134 "/usr/arm-linux-gnueabi/include/sys/select.h" 3 2935449: extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask) __asm__ ("" "__pselect64") 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: ; 2935449: # 150 "/usr/arm-linux-gnueabi/include/sys/select.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/select2.h" 1 3 2935449: # 23 "/usr/arm-linux-gnueabi/include/bits/select2.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/select-decl.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/bits/select-decl.h" 3 2935449: extern long int __fdelt_chk (long int __d); 2935449: extern long int __fdelt_warn (long int __d) 2935449: __attribute__((__warning__ ("bit outside of fd_set selected"))); 2935449: # 24 "/usr/arm-linux-gnueabi/include/bits/select2.h" 2 3 2935449: # 151 "/usr/arm-linux-gnueabi/include/sys/select.h" 2 3 2935449: 2935449: 2935449: } 2935449: # 180 "/usr/arm-linux-gnueabi/include/sys/types.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __blksize_t blksize_t; 2935449: # 205 "/usr/arm-linux-gnueabi/include/sys/types.h" 3 2935449: typedef __blkcnt64_t blkcnt_t; 2935449: 2935449: 2935449: 2935449: typedef __fsblkcnt64_t fsblkcnt_t; 2935449: 2935449: 2935449: 2935449: typedef __fsfilcnt64_t fsfilcnt_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __blkcnt64_t blkcnt64_t; 2935449: typedef __fsblkcnt64_t fsblkcnt64_t; 2935449: typedef __fsfilcnt64_t fsfilcnt64_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/pthreadtypes.h" 1 3 2935449: # 23 "/usr/arm-linux-gnueabi/include/bits/pthreadtypes.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/thread-shared-types.h" 1 3 2935449: # 44 "/usr/arm-linux-gnueabi/include/bits/thread-shared-types.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/pthreadtypes-arch.h" 1 3 2935449: # 23 "/usr/arm-linux-gnueabi/include/bits/pthreadtypes-arch.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/wordsize.h" 1 3 2935449: # 24 "/usr/arm-linux-gnueabi/include/bits/pthreadtypes-arch.h" 2 3 2935449: # 45 "/usr/arm-linux-gnueabi/include/bits/thread-shared-types.h" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/atomic_wide_counter.h" 1 3 2935449: # 25 "/usr/arm-linux-gnueabi/include/bits/atomic_wide_counter.h" 3 2935449: typedef union 2935449: { 2935449: __extension__ unsigned long long int __value64; 2935449: struct 2935449: { 2935449: unsigned int __low; 2935449: unsigned int __high; 2935449: } __value32; 2935449: } __atomic_wide_counter; 2935449: # 47 "/usr/arm-linux-gnueabi/include/bits/thread-shared-types.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: typedef struct __pthread_internal_list 2935449: { 2935449: struct __pthread_internal_list *__prev; 2935449: struct __pthread_internal_list *__next; 2935449: } __pthread_list_t; 2935449: 2935449: typedef struct __pthread_internal_slist 2935449: { 2935449: struct __pthread_internal_slist *__next; 2935449: } __pthread_slist_t; 2935449: # 76 "/usr/arm-linux-gnueabi/include/bits/thread-shared-types.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/struct_mutex.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/bits/struct_mutex.h" 3 2935449: struct __pthread_mutex_s 2935449: { 2935449: int __lock ; 2935449: unsigned int __count; 2935449: int __owner; 2935449: # 58 "/usr/arm-linux-gnueabi/include/bits/struct_mutex.h" 3 2935449: int __kind; 2935449: 2935449: unsigned int __nusers; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __extension__ union 2935449: { 2935449: int __spins; 2935449: __pthread_slist_t __list; 2935449: }; 2935449: 2935449: 2935449: }; 2935449: # 77 "/usr/arm-linux-gnueabi/include/bits/thread-shared-types.h" 2 3 2935449: # 89 "/usr/arm-linux-gnueabi/include/bits/thread-shared-types.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/struct_rwlock.h" 1 3 2935449: # 29 "/usr/arm-linux-gnueabi/include/bits/struct_rwlock.h" 3 2935449: struct __pthread_rwlock_arch_t 2935449: { 2935449: unsigned int __readers; 2935449: unsigned int __writers; 2935449: unsigned int __wrphase_futex; 2935449: unsigned int __writers_futex; 2935449: unsigned int __pad3; 2935449: unsigned int __pad4; 2935449: # 45 "/usr/arm-linux-gnueabi/include/bits/struct_rwlock.h" 3 2935449: unsigned char __flags; 2935449: unsigned char __shared; 2935449: unsigned char __pad1; 2935449: unsigned char __pad2; 2935449: 2935449: int __cur_writer; 2935449: }; 2935449: # 90 "/usr/arm-linux-gnueabi/include/bits/thread-shared-types.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: struct __pthread_cond_s 2935449: { 2935449: __atomic_wide_counter __wseq; 2935449: __atomic_wide_counter __g1_start; 2935449: unsigned int __g_size[2] ; 2935449: unsigned int __g1_orig_size; 2935449: unsigned int __wrefs; 2935449: unsigned int __g_signals[2]; 2935449: unsigned int __unused_initialized_1; 2935449: unsigned int __unused_initialized_2; 2935449: }; 2935449: 2935449: typedef unsigned int __tss_t; 2935449: typedef unsigned long int __thrd_t; 2935449: 2935449: typedef struct 2935449: { 2935449: int __data ; 2935449: } __once_flag; 2935449: # 24 "/usr/arm-linux-gnueabi/include/bits/pthreadtypes.h" 2 3 2935449: 2935449: 2935449: 2935449: typedef unsigned long int pthread_t; 2935449: 2935449: 2935449: 2935449: 2935449: typedef union 2935449: { 2935449: char __size[4]; 2935449: int __align; 2935449: } pthread_mutexattr_t; 2935449: 2935449: 2935449: 2935449: 2935449: typedef union 2935449: { 2935449: char __size[4]; 2935449: int __align; 2935449: } pthread_condattr_t; 2935449: 2935449: 2935449: 2935449: typedef unsigned int pthread_key_t; 2935449: 2935449: 2935449: 2935449: typedef int pthread_once_t; 2935449: 2935449: 2935449: union pthread_attr_t 2935449: { 2935449: char __size[36]; 2935449: long int __align; 2935449: }; 2935449: 2935449: typedef union pthread_attr_t pthread_attr_t; 2935449: 2935449: 2935449: 2935449: 2935449: typedef union 2935449: { 2935449: struct __pthread_mutex_s __data; 2935449: char __size[24]; 2935449: long int __align; 2935449: } pthread_mutex_t; 2935449: 2935449: 2935449: typedef union 2935449: { 2935449: struct __pthread_cond_s __data; 2935449: char __size[48]; 2935449: __extension__ long long int __align; 2935449: } pthread_cond_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef union 2935449: { 2935449: struct __pthread_rwlock_arch_t __data; 2935449: char __size[32]; 2935449: long int __align; 2935449: } pthread_rwlock_t; 2935449: 2935449: typedef union 2935449: { 2935449: char __size[8]; 2935449: long int __align; 2935449: } pthread_rwlockattr_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef volatile int pthread_spinlock_t; 2935449: 2935449: 2935449: 2935449: 2935449: typedef union 2935449: { 2935449: char __size[20]; 2935449: long int __align; 2935449: } pthread_barrier_t; 2935449: 2935449: typedef union 2935449: { 2935449: char __size[4]; 2935449: int __align; 2935449: } pthread_barrierattr_t; 2935449: # 228 "/usr/arm-linux-gnueabi/include/sys/types.h" 2 3 2935449: 2935449: 2935449: } 2935449: # 515 "/usr/arm-linux-gnueabi/include/stdlib.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern long int random (void) noexcept (true); 2935449: 2935449: 2935449: extern void srandom (unsigned int __seed) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern char *initstate (unsigned int __seed, char *__statebuf, 2935449: size_t __statelen) noexcept (true) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: 2935449: extern char *setstate (char *__statebuf) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct random_data 2935449: { 2935449: int32_t *fptr; 2935449: int32_t *rptr; 2935449: int32_t *state; 2935449: int rand_type; 2935449: int rand_deg; 2935449: int rand_sep; 2935449: int32_t *end_ptr; 2935449: }; 2935449: 2935449: extern int random_r (struct random_data *__restrict __buf, 2935449: int32_t *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: extern int srandom_r (unsigned int __seed, struct random_data *__buf) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, 2935449: size_t __statelen, 2935449: struct random_data *__restrict __buf) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2, 4))); 2935449: 2935449: extern int setstate_r (char *__restrict __statebuf, 2935449: struct random_data *__restrict __buf) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int rand (void) noexcept (true); 2935449: 2935449: extern void srand (unsigned int __seed) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int rand_r (unsigned int *__seed) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern double drand48 (void) noexcept (true); 2935449: extern double erand48 (unsigned short int __xsubi[3]) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern long int lrand48 (void) noexcept (true); 2935449: extern long int nrand48 (unsigned short int __xsubi[3]) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern long int mrand48 (void) noexcept (true); 2935449: extern long int jrand48 (unsigned short int __xsubi[3]) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern void srand48 (long int __seedval) noexcept (true); 2935449: extern unsigned short int *seed48 (unsigned short int __seed16v[3]) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: extern void lcong48 (unsigned short int __param[7]) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct drand48_data 2935449: { 2935449: unsigned short int __x[3]; 2935449: unsigned short int __old_x[3]; 2935449: unsigned short int __c; 2935449: unsigned short int __init; 2935449: __extension__ unsigned long long int __a; 2935449: 2935449: }; 2935449: 2935449: 2935449: extern int drand48_r (struct drand48_data *__restrict __buffer, 2935449: double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: extern int erand48_r (unsigned short int __xsubi[3], 2935449: struct drand48_data *__restrict __buffer, 2935449: double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int lrand48_r (struct drand48_data *__restrict __buffer, 2935449: long int *__restrict __result) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: extern int nrand48_r (unsigned short int __xsubi[3], 2935449: struct drand48_data *__restrict __buffer, 2935449: long int *__restrict __result) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int mrand48_r (struct drand48_data *__restrict __buffer, 2935449: long int *__restrict __result) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: extern int jrand48_r (unsigned short int __xsubi[3], 2935449: struct drand48_data *__restrict __buffer, 2935449: long int *__restrict __result) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int srand48_r (long int __seedval, struct drand48_data *__buffer) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: extern int seed48_r (unsigned short int __seed16v[3], 2935449: struct drand48_data *__buffer) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: extern int lcong48_r (unsigned short int __param[7], 2935449: struct drand48_data *__buffer) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern __uint32_t arc4random (void) 2935449: noexcept (true) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: extern void arc4random_buf (void *__buf, size_t __size) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern __uint32_t arc4random_uniform (__uint32_t __upper_bound) 2935449: noexcept (true) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern void *malloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) 2935449: __attribute__ ((__alloc_size__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: extern void *calloc (size_t __nmemb, size_t __size) 2935449: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void *realloc (void *__ptr, size_t __size) 2935449: noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2))); 2935449: 2935449: 2935449: extern void free (void *__ptr) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 2935449: noexcept (true) __attribute__ ((__warn_unused_result__)) 2935449: __attribute__ ((__alloc_size__ (2, 3))) 2935449: __attribute__ ((__malloc__ (__builtin_free, 1))); 2935449: 2935449: 2935449: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 2935449: noexcept (true) __attribute__ ((__malloc__ (reallocarray, 1))); 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/alloca.h" 1 3 2935449: # 24 "/usr/arm-linux-gnueabi/include/alloca.h" 3 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 25 "/usr/arm-linux-gnueabi/include/alloca.h" 2 3 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void *alloca (size_t __size) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 707 "/usr/arm-linux-gnueabi/include/stdlib.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void *valloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) 2935449: __attribute__ ((__alloc_size__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern void *aligned_alloc (size_t __alignment, size_t __size) 2935449: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1))) 2935449: __attribute__ ((__alloc_size__ (2))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: extern void abort (void) noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); 2935449: 2935449: 2935449: 2935449: extern int atexit (void (*__func) (void)) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: extern "C++" int at_quick_exit (void (*__func) (void)) 2935449: noexcept (true) __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); 2935449: # 749 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void quick_exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void _Exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern char *getenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern char *secure_getenv (const char *__name) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int putenv (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int setenv (const char *__name, const char *__value, int __replace) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: extern int unsetenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int clearenv (void) noexcept (true); 2935449: # 814 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern char *mktemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: # 830 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern int mkstemp (char *__template) __asm__ ("" "mkstemp64") 2935449: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: # 852 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern int mkstemps (char *__template, int __suffixlen) __asm__ ("" "mkstemps64") 2935449: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int mkstemps64 (char *__template, int __suffixlen) 2935449: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: # 870 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern char *mkdtemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: # 884 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern int mkostemp (char *__template, int __flags) __asm__ ("" "mkostemp64") 2935449: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: # 905 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern int mkostemps (char *__template, int __suffixlen, int __flags) __asm__ ("" "mkostemps64") 2935449: 2935449: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int mkostemps64 (char *__template, int __suffixlen, int __flags) 2935449: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: # 923 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern char *canonicalize_file_name (const char *__name) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__malloc__)) 2935449: __attribute__ ((__malloc__ (__builtin_free, 1))) __attribute__ ((__warn_unused_result__)); 2935449: # 940 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern char *realpath (const char *__restrict __name, 2935449: char *__restrict __resolved) noexcept (true) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (*__compar_fn_t) (const void *, const void *); 2935449: 2935449: 2935449: typedef __compar_fn_t comparison_fn_t; 2935449: 2935449: 2935449: 2935449: typedef int (*__compar_d_fn_t) (const void *, const void *, void *); 2935449: 2935449: 2935449: 2935449: 2935449: extern void *bsearch (const void *__key, const void *__base, 2935449: size_t __nmemb, size_t __size, __compar_fn_t __compar) 2935449: __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/stdlib-bsearch.h" 1 3 2935449: # 19 "/usr/arm-linux-gnueabi/include/bits/stdlib-bsearch.h" 3 2935449: extern __inline __attribute__ ((__gnu_inline__)) void * 2935449: bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, 2935449: __compar_fn_t __compar) 2935449: { 2935449: const void *__p; 2935449: int __comparison; 2935449: 2935449: while (__nmemb) 2935449: { 2935449: __p = (const void *) (((const char *) __base) + ((__nmemb >> 1) * __size)); 2935449: __comparison = (*__compar) (__key, __p); 2935449: if (__comparison == 0) 2935449: { 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wcast-qual" 2935449: 2935449: return (void *) __p; 2935449: 2935449: #pragma GCC diagnostic pop 2935449: 2935449: } 2935449: if (__comparison > 0) 2935449: { 2935449: __base = ((const char *) __p) + __size; 2935449: --__nmemb; 2935449: } 2935449: __nmemb >>= 1; 2935449: } 2935449: 2935449: return __null; 2935449: } 2935449: # 966 "/usr/arm-linux-gnueabi/include/stdlib.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: extern void qsort (void *__base, size_t __nmemb, size_t __size, 2935449: __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); 2935449: 2935449: extern void qsort_r (void *__base, size_t __nmemb, size_t __size, 2935449: __compar_d_fn_t __compar, void *__arg) 2935449: __attribute__ ((__nonnull__ (1, 4))); 2935449: 2935449: 2935449: 2935449: 2935449: extern int abs (int __x) noexcept (true) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 2935449: extern long int labs (long int __x) noexcept (true) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: __extension__ extern long long int llabs (long long int __x) 2935449: noexcept (true) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern div_t div (int __numer, int __denom) 2935449: noexcept (true) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 2935449: extern ldiv_t ldiv (long int __numer, long int __denom) 2935449: noexcept (true) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: __extension__ extern lldiv_t lldiv (long long int __numer, 2935449: long long int __denom) 2935449: noexcept (true) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 2935449: # 1012 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, 2935449: int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, 2935449: int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern char *gcvt (double __value, int __ndigit, char *__buf) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern char *qecvt (long double __value, int __ndigit, 2935449: int *__restrict __decpt, int *__restrict __sign) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 2935449: extern char *qfcvt (long double __value, int __ndigit, 2935449: int *__restrict __decpt, int *__restrict __sign) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 2935449: extern char *qgcvt (long double __value, int __ndigit, char *__buf) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, 2935449: int *__restrict __sign, char *__restrict __buf, 2935449: size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); 2935449: extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, 2935449: int *__restrict __sign, char *__restrict __buf, 2935449: size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); 2935449: 2935449: extern int qecvt_r (long double __value, int __ndigit, 2935449: int *__restrict __decpt, int *__restrict __sign, 2935449: char *__restrict __buf, size_t __len) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); 2935449: extern int qfcvt_r (long double __value, int __ndigit, 2935449: int *__restrict __decpt, int *__restrict __sign, 2935449: char *__restrict __buf, size_t __len) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int mblen (const char *__s, size_t __n) noexcept (true); 2935449: 2935449: 2935449: extern int mbtowc (wchar_t *__restrict __pwc, 2935449: const char *__restrict __s, size_t __n) noexcept (true); 2935449: 2935449: 2935449: extern int wctomb (char *__s, wchar_t __wchar) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern size_t mbstowcs (wchar_t *__restrict __pwcs, 2935449: const char *__restrict __s, size_t __n) noexcept (true) 2935449: __attribute__ ((__access__ (__read_only__, 2))); 2935449: 2935449: extern size_t wcstombs (char *__restrict __s, 2935449: const wchar_t *__restrict __pwcs, size_t __n) 2935449: noexcept (true) 2935449: __attribute__ ((__access__ (__write_only__, 1, 3))) 2935449: __attribute__ ((__access__ (__read_only__, 2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int rpmatch (const char *__response) noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 2935449: # 1099 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: extern int getsubopt (char **__restrict __optionp, 2935449: char *const *__restrict __tokens, 2935449: char **__restrict __valuep) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int grantpt (int __fd) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int unlockpt (int __fd) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: extern char *ptsname (int __fd) noexcept (true) __attribute__ ((__warn_unused_result__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int ptsname_r (int __fd, char *__buf, size_t __buflen) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); 2935449: 2935449: 2935449: extern int getpt (void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int getloadavg (double __loadavg[], int __nelem) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: # 1155 "/usr/arm-linux-gnueabi/include/stdlib.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/stdlib-float.h" 1 3 2935449: # 24 "/usr/arm-linux-gnueabi/include/bits/stdlib-float.h" 3 2935449: extern __inline __attribute__ ((__gnu_inline__)) double 2935449: __attribute__ ((__leaf__)) atof (const char *__nptr) noexcept (true) 2935449: { 2935449: return strtod (__nptr, (char **) __null); 2935449: } 2935449: # 1156 "/usr/arm-linux-gnueabi/include/stdlib.h" 2 3 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/stdlib.h" 1 3 2935449: # 23 "/usr/arm-linux-gnueabi/include/bits/stdlib.h" 3 2935449: extern char *__realpath_chk (const char *__restrict __name, 2935449: char *__restrict __resolved, 2935449: size_t __resolvedlen) noexcept (true) __attribute__ ((__warn_unused_result__)); 2935449: extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) noexcept (true) __asm__ ("" "realpath") 2935449: 2935449: __attribute__ ((__warn_unused_result__)); 2935449: extern char *__realpath_chk_warn (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) noexcept (true) __asm__ ("" "__realpath_chk") 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) 2935449: __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) 2935449: ; 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 2935449: __attribute__ ((__leaf__)) realpath (const char *__restrict __name, char * __restrict __resolved) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__resolved, 2 > 1); 2935449: 2935449: if (__sz == (size_t) -1) 2935449: return __realpath_alias (__name, __resolved); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: return __realpath_chk (__name, __resolved, __sz); 2935449: } 2935449: 2935449: 2935449: extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, 2935449: size_t __nreal) noexcept (true) __attribute__ ((__nonnull__ (2))) 2935449: __attribute__ ((__access__ (__write_only__, 2, 3))); 2935449: extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) noexcept (true) __asm__ ("" "ptsname_r") 2935449: 2935449: __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); 2935449: extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) noexcept (true) __asm__ ("" "__ptsname_r_chk") 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) 2935449: ; 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 2935449: __attribute__ ((__leaf__)) ptsname_r (int __fd, char * __buf, size_t __buflen) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: return (((__builtin_constant_p (__builtin_object_size (__buf, 2 > 1)) && (__builtin_object_size (__buf, 2 > 1)) == (unsigned int) -1) || (((__typeof (__buflen)) 0 < (__typeof (__buflen)) -1 || (__builtin_constant_p (__buflen) && (__buflen) > 0)) && __builtin_constant_p ((((unsigned int) (__buflen)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char))))) && (((unsigned int) (__buflen)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char)))))) ? __ptsname_r_alias (__fd, __buf, __buflen) : ((((__typeof (__buflen)) 0 < (__typeof (__buflen)) -1 || (__builtin_constant_p (__buflen) && (__buflen) > 0)) && __builtin_constant_p ((((unsigned int) (__buflen)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) && !(((unsigned int) (__buflen)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) ? __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)) : __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)))) 2935449: 2935449: ; 2935449: } 2935449: 2935449: 2935449: extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) 2935449: noexcept (true) __attribute__ ((__warn_unused_result__)); 2935449: extern int __wctomb_alias (char *__s, wchar_t __wchar) noexcept (true) __asm__ ("" "wctomb") 2935449: __attribute__ ((__warn_unused_result__)); 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int 2935449: __attribute__ ((__leaf__)) wctomb (char * __s, wchar_t __wchar) noexcept (true) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 2935449: && 16 > __builtin_object_size (__s, 2 > 1)) 2935449: return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); 2935449: return __wctomb_alias (__s, __wchar); 2935449: } 2935449: 2935449: 2935449: extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, 2935449: const char *__restrict __src, 2935449: size_t __len, size_t __dstlen) noexcept (true) 2935449: __attribute__ ((__access__ (__write_only__, 1, 3))) __attribute__ ((__access__ (__read_only__, 2))); 2935449: extern size_t __mbstowcs_nulldst (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) noexcept (true) __asm__ ("" "mbstowcs") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__access__ (__read_only__, 2))); 2935449: extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) noexcept (true) __asm__ ("" "mbstowcs") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__access__ (__write_only__, 1, 3))) __attribute__ ((__access__ (__read_only__, 2))); 2935449: extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) noexcept (true) __asm__ ("" "__mbstowcs_chk") 2935449: 2935449: 2935449: 2935449: __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 2935449: ; 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 2935449: __attribute__ ((__leaf__)) mbstowcs (wchar_t * __restrict __dst, const char *__restrict __src, size_t __len) noexcept (true) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: if (__builtin_constant_p (__dst == __null) && __dst == __null) 2935449: return __mbstowcs_nulldst (__dst, __src, __len); 2935449: else 2935449: return (((__builtin_constant_p (__builtin_object_size (__dst, 2 > 1)) && (__builtin_object_size (__dst, 2 > 1)) == (unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (wchar_t))))) && (((unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (wchar_t)))))) ? __mbstowcs_alias (__dst, __src, __len) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t)))) && !(((unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t)))) ? __mbstowcs_chk_warn (__dst, __src, __len, (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t))) : __mbstowcs_chk (__dst, __src, __len, (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t))))) 2935449: ; 2935449: } 2935449: 2935449: extern size_t __wcstombs_chk (char *__restrict __dst, 2935449: const wchar_t *__restrict __src, 2935449: size_t __len, size_t __dstlen) noexcept (true) 2935449: __attribute__ ((__access__ (__write_only__, 1, 3))) __attribute__ ((__access__ (__read_only__, 2))); 2935449: extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) noexcept (true) __asm__ ("" "wcstombs") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__access__ (__write_only__, 1, 3))) __attribute__ ((__access__ (__read_only__, 2))); 2935449: extern size_t __wcstombs_chk_warn (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) noexcept (true) __asm__ ("" "__wcstombs_chk") 2935449: 2935449: 2935449: 2935449: __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 2935449: __attribute__ ((__leaf__)) wcstombs (char * __restrict __dst, const wchar_t *__restrict __src, size_t __len) noexcept (true) 2935449: 2935449: 2935449: { 2935449: return (((__builtin_constant_p (__builtin_object_size (__dst, 2 > 1)) && (__builtin_object_size (__dst, 2 > 1)) == (unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (char))))) && (((unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (char)))))) ? __wcstombs_alias (__dst, __src, __len) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (char)))) && !(((unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (char)))) ? __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)) : __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)))) 2935449: 2935449: ; 2935449: } 2935449: # 1160 "/usr/arm-linux-gnueabi/include/stdlib.h" 2 3 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/floatn.h" 1 3 2935449: # 1163 "/usr/arm-linux-gnueabi/include/stdlib.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 84 "/usr/arm-linux-gnueabi/include/c++/15/cstdlib" 2 3 2935449: 2935449: 2935449: # 85 "/usr/arm-linux-gnueabi/include/c++/15/cstdlib" 3 2935449: #pragma GCC diagnostic pop 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_abs.h" 1 3 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_abs.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wpedantic" 2935449: #pragma GCC diagnostic ignored "-Wlong-long" 2935449: # 52 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_abs.h" 3 2935449: extern "C++" 2935449: { 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: using ::abs; 2935449: 2935449: 2935449: inline long 2935449: abs(long __i) { return __builtin_labs(__i); } 2935449: 2935449: 2935449: 2935449: inline long long 2935449: abs(long long __x) { return __builtin_llabs (__x); } 2935449: # 76 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_abs.h" 3 2935449: inline constexpr double 2935449: abs(double __x) 2935449: { return __builtin_fabs(__x); } 2935449: 2935449: inline constexpr float 2935449: abs(float __x) 2935449: { return __builtin_fabsf(__x); } 2935449: 2935449: inline constexpr long double 2935449: abs(long double __x) 2935449: { return __builtin_fabsl(__x); } 2935449: # 156 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_abs.h" 3 2935449: 2935449: } 2935449: } 2935449: 2935449: #pragma GCC diagnostic pop 2935449: # 88 "/usr/arm-linux-gnueabi/include/c++/15/cstdlib" 2 3 2935449: # 131 "/usr/arm-linux-gnueabi/include/c++/15/cstdlib" 3 2935449: extern "C++" 2935449: { 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: using ::div_t; 2935449: using ::ldiv_t; 2935449: 2935449: using ::abort; 2935449: 2935449: 2935449: 2935449: using ::atexit; 2935449: 2935449: 2935449: using ::at_quick_exit; 2935449: 2935449: 2935449: using ::atof; 2935449: using ::atoi; 2935449: using ::atol; 2935449: using ::bsearch; 2935449: using ::calloc; 2935449: using ::div; 2935449: using ::exit; 2935449: using ::free; 2935449: using ::getenv; 2935449: using ::labs; 2935449: using ::ldiv; 2935449: using ::malloc; 2935449: 2935449: using ::mblen; 2935449: using ::mbstowcs; 2935449: using ::mbtowc; 2935449: 2935449: using ::qsort; 2935449: 2935449: 2935449: using ::quick_exit; 2935449: 2935449: 2935449: using ::rand; 2935449: using ::realloc; 2935449: using ::srand; 2935449: using ::strtod; 2935449: using ::strtol; 2935449: using ::strtoul; 2935449: using ::system; 2935449: 2935449: using ::wcstombs; 2935449: using ::wctomb; 2935449: 2935449: 2935449: 2935449: inline ldiv_t 2935449: div(long __i, long __j) noexcept { return ldiv(__i, __j); } 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 205 "/usr/arm-linux-gnueabi/include/c++/15/cstdlib" 3 2935449: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: using ::lldiv_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using ::_Exit; 2935449: 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wlong-long" 2935449: using ::llabs; 2935449: 2935449: inline lldiv_t 2935449: div(long long __n, long long __d) 2935449: { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } 2935449: 2935449: using ::lldiv; 2935449: #pragma GCC diagnostic pop 2935449: # 240 "/usr/arm-linux-gnueabi/include/c++/15/cstdlib" 3 2935449: using ::atoll; 2935449: using ::strtoll; 2935449: using ::strtoull; 2935449: 2935449: using ::strtof; 2935449: using ::strtold; 2935449: 2935449: 2935449: } 2935449: 2935449: namespace std 2935449: { 2935449: 2935449: using ::__gnu_cxx::lldiv_t; 2935449: 2935449: using ::__gnu_cxx::_Exit; 2935449: 2935449: using ::__gnu_cxx::llabs; 2935449: using ::__gnu_cxx::div; 2935449: using ::__gnu_cxx::lldiv; 2935449: 2935449: using ::__gnu_cxx::atoll; 2935449: using ::__gnu_cxx::strtof; 2935449: using ::__gnu_cxx::strtoll; 2935449: using ::__gnu_cxx::strtoull; 2935449: using ::__gnu_cxx::strtold; 2935449: } 2935449: # 284 "/usr/arm-linux-gnueabi/include/c++/15/cstdlib" 3 2935449: } 2935449: # 46 "/usr/arm-linux-gnueabi/include/c++/15/ext/string_conversions.h" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/cstdio" 1 3 2935449: # 98 "/usr/arm-linux-gnueabi/include/c++/15/cstdio" 3 2935449: namespace std 2935449: { 2935449: using ::FILE; 2935449: using ::fpos_t; 2935449: 2935449: using ::clearerr; 2935449: using ::fclose; 2935449: using ::feof; 2935449: using ::ferror; 2935449: using ::fflush; 2935449: using ::fgetc; 2935449: using ::fgetpos; 2935449: using ::fgets; 2935449: using ::fopen; 2935449: using ::fprintf; 2935449: using ::fputc; 2935449: using ::fputs; 2935449: using ::fread; 2935449: using ::freopen; 2935449: using ::fscanf; 2935449: using ::fseek; 2935449: using ::fsetpos; 2935449: using ::ftell; 2935449: using ::fwrite; 2935449: using ::getc; 2935449: using ::getchar; 2935449: 2935449: 2935449: using ::gets; 2935449: 2935449: using ::perror; 2935449: using ::printf; 2935449: using ::putc; 2935449: using ::putchar; 2935449: using ::puts; 2935449: using ::remove; 2935449: using ::rename; 2935449: using ::rewind; 2935449: using ::scanf; 2935449: using ::setbuf; 2935449: using ::setvbuf; 2935449: using ::sprintf; 2935449: using ::sscanf; 2935449: using ::tmpfile; 2935449: 2935449: using ::tmpnam; 2935449: 2935449: using ::ungetc; 2935449: using ::vfprintf; 2935449: using ::vprintf; 2935449: using ::vsprintf; 2935449: } 2935449: # 159 "/usr/arm-linux-gnueabi/include/c++/15/cstdio" 3 2935449: namespace __gnu_cxx 2935449: { 2935449: # 177 "/usr/arm-linux-gnueabi/include/c++/15/cstdio" 3 2935449: using ::snprintf; 2935449: using ::vfscanf; 2935449: using ::vscanf; 2935449: using ::vsnprintf; 2935449: using ::vsscanf; 2935449: 2935449: } 2935449: 2935449: namespace std 2935449: { 2935449: using ::__gnu_cxx::snprintf; 2935449: using ::__gnu_cxx::vfscanf; 2935449: using ::__gnu_cxx::vscanf; 2935449: using ::__gnu_cxx::vsnprintf; 2935449: using ::__gnu_cxx::vsscanf; 2935449: } 2935449: # 48 "/usr/arm-linux-gnueabi/include/c++/15/ext/string_conversions.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/cerrno" 1 3 2935449: # 47 "/usr/arm-linux-gnueabi/include/c++/15/cerrno" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/errno.h" 1 3 2935449: # 28 "/usr/arm-linux-gnueabi/include/errno.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/errno.h" 1 3 2935449: # 26 "/usr/arm-linux-gnueabi/include/bits/errno.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/linux/errno.h" 1 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm/errno.h" 1 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm-generic/errno.h" 1 3 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm-generic/errno-base.h" 1 3 2935449: # 6 "/usr/arm-linux-gnueabi/include/asm-generic/errno.h" 2 3 2935449: # 2 "/usr/arm-linux-gnueabi/include/asm/errno.h" 2 3 2935449: # 2 "/usr/arm-linux-gnueabi/include/linux/errno.h" 2 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/bits/errno.h" 2 3 2935449: # 29 "/usr/arm-linux-gnueabi/include/errno.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: extern int *__errno_location (void) noexcept (true) __attribute__ ((__const__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern char *program_invocation_name; 2935449: extern char *program_invocation_short_name; 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/error_t.h" 1 3 2935449: # 22 "/usr/arm-linux-gnueabi/include/bits/types/error_t.h" 3 2935449: typedef int error_t; 2935449: # 49 "/usr/arm-linux-gnueabi/include/errno.h" 2 3 2935449: 2935449: 2935449: 2935449: } 2935449: # 48 "/usr/arm-linux-gnueabi/include/c++/15/cerrno" 2 3 2935449: # 49 "/usr/arm-linux-gnueabi/include/c++/15/ext/string_conversions.h" 2 3 2935449: 2935449: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: template 2935449: _Ret 2935449: __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), 2935449: const char* __name, const _CharT* __str, std::size_t* __idx, 2935449: _Base... __base) 2935449: { 2935449: _Ret __ret; 2935449: 2935449: _CharT* __endptr; 2935449: 2935449: struct _Save_errno { 2935449: _Save_errno() : _M_errno((*__errno_location ())) { (*__errno_location ()) = 0; } 2935449: ~_Save_errno() { if ((*__errno_location ()) == 0) (*__errno_location ()) = _M_errno; } 2935449: int _M_errno; 2935449: } const __save_errno; 2935449: 2935449: struct _Range_chk { 2935449: static bool 2935449: _S_chk(_TRet, std::false_type) { return false; } 2935449: 2935449: static bool 2935449: _S_chk(_TRet __val, std::true_type) 2935449: { 2935449: return __val < _TRet(__numeric_traits::__min) 2935449: || __val > _TRet(__numeric_traits::__max); 2935449: } 2935449: }; 2935449: 2935449: const _TRet __tmp = __convf(__str, &__endptr, __base...); 2935449: 2935449: if (__endptr == __str) 2935449: std::__throw_invalid_argument(__name); 2935449: else if ((*__errno_location ()) == 34 2935449: || _Range_chk::_S_chk(__tmp, std::is_same<_Ret, int>{})) 2935449: std::__throw_out_of_range(__name); 2935449: else 2935449: __ret = __tmp; 2935449: 2935449: if (__idx) 2935449: *__idx = __endptr - __str; 2935449: 2935449: return __ret; 2935449: } 2935449: 2935449: 2935449: template 2935449: _String 2935449: __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, 2935449: __builtin_va_list), std::size_t __n, 2935449: const _CharT* __fmt, ...) 2935449: { 2935449: 2935449: 2935449: _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 2935449: * __n)); 2935449: 2935449: __builtin_va_list __args; 2935449: __builtin_va_start(__args, __fmt); 2935449: 2935449: const int __len = __convf(__s, __n, __fmt, __args); 2935449: 2935449: __builtin_va_end(__args); 2935449: 2935449: return _String(__s, __s + __len); 2935449: } 2935449: 2935449: 2935449: } 2935449: # 4445 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/charconv.h" 1 3 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/bits/charconv.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: namespace __detail 2935449: { 2935449: # 55 "/usr/arm-linux-gnueabi/include/c++/15/bits/charconv.h" 3 2935449: template 2935449: unsigned 2935449: __to_chars_len(_Tp __value, int __base = 10) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: unsigned __n = 1; 2935449: const unsigned __b2 = __base * __base; 2935449: const unsigned __b3 = __b2 * __base; 2935449: const unsigned long __b4 = __b3 * __base; 2935449: for (;;) 2935449: { 2935449: if (__value < (unsigned)__base) return __n; 2935449: if (__value < __b2) return __n + 1; 2935449: if (__value < __b3) return __n + 2; 2935449: if (__value < __b4) return __n + 3; 2935449: __value /= __b4; 2935449: __n += 4; 2935449: } 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: void 2935449: __to_chars_10_impl(char* __first, unsigned __len, _Tp __val) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: constexpr char __digits[201] = 2935449: "0001020304050607080910111213141516171819" 2935449: "2021222324252627282930313233343536373839" 2935449: "4041424344454647484950515253545556575859" 2935449: "6061626364656667686970717273747576777879" 2935449: "8081828384858687888990919293949596979899"; 2935449: unsigned __pos = __len - 1; 2935449: while (__val >= 100) 2935449: { 2935449: auto const __num = (__val % 100) * 2; 2935449: __val /= 100; 2935449: __first[__pos] = __digits[__num + 1]; 2935449: __first[__pos - 1] = __digits[__num]; 2935449: __pos -= 2; 2935449: } 2935449: if (__val >= 10) 2935449: { 2935449: auto const __num = __val * 2; 2935449: __first[1] = __digits[__num + 1]; 2935449: __first[0] = __digits[__num]; 2935449: } 2935449: else 2935449: __first[0] = '0' + __val; 2935449: } 2935449: 2935449: } 2935449: 2935449: } 2935449: # 4446 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: namespace __cxx11 { 2935449: 2935449: 2935449: inline int 2935449: stoi(const string& __str, size_t* __idx = 0, int __base = 10) 2935449: { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), 2935449: __idx, __base); } 2935449: 2935449: inline long 2935449: stol(const string& __str, size_t* __idx = 0, int __base = 10) 2935449: { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), 2935449: __idx, __base); } 2935449: 2935449: inline unsigned long 2935449: stoul(const string& __str, size_t* __idx = 0, int __base = 10) 2935449: { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), 2935449: __idx, __base); } 2935449: 2935449: 2935449: inline long long 2935449: stoll(const string& __str, size_t* __idx = 0, int __base = 10) 2935449: { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), 2935449: __idx, __base); } 2935449: 2935449: inline unsigned long long 2935449: stoull(const string& __str, size_t* __idx = 0, int __base = 10) 2935449: { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), 2935449: __idx, __base); } 2935449: # 4488 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: inline double 2935449: stod(const string& __str, size_t* __idx = 0) 2935449: { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } 2935449: 2935449: 2935449: 2935449: inline float 2935449: stof(const string& __str, size_t* __idx = 0) 2935449: { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } 2935449: # 4516 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: inline long double 2935449: stold(const string& __str, size_t* __idx = 0) 2935449: { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } 2935449: # 4528 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: [[__nodiscard__]] 2935449: inline string 2935449: to_string(int __val) 2935449: 2935449: noexcept 2935449: 2935449: { 2935449: const bool __neg = __val < 0; 2935449: const unsigned __uval = __neg ? (unsigned)~__val + 1u : __val; 2935449: const auto __len = __detail::__to_chars_len(__uval); 2935449: string __str; 2935449: __str.__resize_and_overwrite(__neg + __len, [=](char* __p, size_t __n) { 2935449: __p[0] = '-'; 2935449: __detail::__to_chars_10_impl(__p + (int)__neg, __len, __uval); 2935449: return __n; 2935449: }); 2935449: return __str; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: inline string 2935449: to_string(unsigned __val) 2935449: 2935449: noexcept 2935449: 2935449: { 2935449: const auto __len = __detail::__to_chars_len(__val); 2935449: string __str; 2935449: __str.__resize_and_overwrite(__len, [__val](char* __p, size_t __n) { 2935449: __detail::__to_chars_10_impl(__p, __n, __val); 2935449: return __n; 2935449: }); 2935449: return __str; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: inline string 2935449: to_string(long __val) 2935449: 2935449: noexcept 2935449: 2935449: { 2935449: const bool __neg = __val < 0; 2935449: const unsigned long __uval = __neg ? (unsigned long)~__val + 1ul : __val; 2935449: const auto __len = __detail::__to_chars_len(__uval); 2935449: string __str; 2935449: __str.__resize_and_overwrite(__neg + __len, [=](char* __p, size_t __n) { 2935449: __p[0] = '-'; 2935449: __detail::__to_chars_10_impl(__p + (int)__neg, __len, __uval); 2935449: return __n; 2935449: }); 2935449: return __str; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: inline string 2935449: to_string(unsigned long __val) 2935449: 2935449: noexcept 2935449: 2935449: { 2935449: const auto __len = __detail::__to_chars_len(__val); 2935449: string __str; 2935449: __str.__resize_and_overwrite(__len, [__val](char* __p, size_t __n) { 2935449: __detail::__to_chars_10_impl(__p, __n, __val); 2935449: return __n; 2935449: }); 2935449: return __str; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: inline string 2935449: to_string(long long __val) 2935449: { 2935449: const bool __neg = __val < 0; 2935449: const unsigned long long __uval 2935449: = __neg ? (unsigned long long)~__val + 1ull : __val; 2935449: const auto __len = __detail::__to_chars_len(__uval); 2935449: string __str; 2935449: __str.__resize_and_overwrite(__neg + __len, [=](char* __p, size_t __n) { 2935449: __p[0] = '-'; 2935449: __detail::__to_chars_10_impl(__p + (int)__neg, __len, __uval); 2935449: return __n; 2935449: }); 2935449: return __str; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: inline string 2935449: to_string(unsigned long long __val) 2935449: { 2935449: const auto __len = __detail::__to_chars_len(__val); 2935449: string __str; 2935449: __str.__resize_and_overwrite(__len, [__val](char* __p, size_t __n) { 2935449: __detail::__to_chars_10_impl(__p, __n, __val); 2935449: return __n; 2935449: }); 2935449: return __str; 2935449: } 2935449: # 4687 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wsuggest-attribute=format" 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: inline string 2935449: to_string(float __val) 2935449: { 2935449: const int __n = 2935449: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 2935449: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 2935449: "%f", __val); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: inline string 2935449: to_string(double __val) 2935449: { 2935449: const int __n = 2935449: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 2935449: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 2935449: "%f", __val); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: inline string 2935449: to_string(long double __val) 2935449: { 2935449: const int __n = 2935449: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 2935449: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 2935449: "%Lf", __val); 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: 2935449: inline int 2935449: stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) 2935449: { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), 2935449: __idx, __base); } 2935449: 2935449: inline long 2935449: stol(const wstring& __str, size_t* __idx = 0, int __base = 10) 2935449: { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), 2935449: __idx, __base); } 2935449: 2935449: inline unsigned long 2935449: stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) 2935449: { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), 2935449: __idx, __base); } 2935449: 2935449: inline long long 2935449: stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) 2935449: { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), 2935449: __idx, __base); } 2935449: 2935449: inline unsigned long long 2935449: stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) 2935449: { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), 2935449: __idx, __base); } 2935449: 2935449: 2935449: inline float 2935449: stof(const wstring& __str, size_t* __idx = 0) 2935449: { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } 2935449: 2935449: inline double 2935449: stod(const wstring& __str, size_t* __idx = 0) 2935449: { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } 2935449: 2935449: inline long double 2935449: stold(const wstring& __str, size_t* __idx = 0) 2935449: { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } 2935449: 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: 2935449: inline void 2935449: __to_wstring_numeric(const char* __s, int __len, wchar_t* __wout) 2935449: { 2935449: 2935449: 2935449: if constexpr (wchar_t('0') == L'0' && wchar_t('-') == L'-' 2935449: && wchar_t('.') == L'.' && wchar_t('e') == L'e') 2935449: { 2935449: for (int __i = 0; __i < __len; ++__i) 2935449: __wout[__i] = (wchar_t) __s[__i]; 2935449: } 2935449: else 2935449: { 2935449: wchar_t __wc[256]; 2935449: for (int __i = '0'; __i <= '9'; ++__i) 2935449: __wc[__i] = L'0' + __i; 2935449: __wc['.'] = L'.'; 2935449: __wc['+'] = L'+'; 2935449: __wc['-'] = L'-'; 2935449: __wc['a'] = L'a'; 2935449: __wc['b'] = L'b'; 2935449: __wc['c'] = L'c'; 2935449: __wc['d'] = L'd'; 2935449: __wc['e'] = L'e'; 2935449: __wc['f'] = L'f'; 2935449: __wc['i'] = L'i'; 2935449: __wc['n'] = L'n'; 2935449: __wc['p'] = L'p'; 2935449: __wc['x'] = L'x'; 2935449: __wc['A'] = L'A'; 2935449: __wc['B'] = L'B'; 2935449: __wc['C'] = L'C'; 2935449: __wc['D'] = L'D'; 2935449: __wc['E'] = L'E'; 2935449: __wc['F'] = L'F'; 2935449: __wc['I'] = L'I'; 2935449: __wc['N'] = L'N'; 2935449: __wc['P'] = L'P'; 2935449: __wc['X'] = L'X'; 2935449: 2935449: for (int __i = 0; __i < __len; ++__i) 2935449: __wout[__i] = __wc[(int)__s[__i]]; 2935449: } 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: inline wstring 2935449: 2935449: 2935449: 2935449: __to_wstring_numeric(const string& __s) 2935449: 2935449: { 2935449: if constexpr (wchar_t('0') == L'0' && wchar_t('-') == L'-' 2935449: && wchar_t('.') == L'.' && wchar_t('e') == L'e') 2935449: return wstring(__s.data(), __s.data() + __s.size()); 2935449: else 2935449: { 2935449: wstring __ws; 2935449: auto __f = __s.data(); 2935449: __ws.__resize_and_overwrite(__s.size(), 2935449: [__f] (wchar_t* __to, int __n) { 2935449: std::__to_wstring_numeric(__f, __n, __to); 2935449: return __n; 2935449: }); 2935449: return __ws; 2935449: } 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: [[__nodiscard__]] 2935449: inline wstring 2935449: to_wstring(int __val) 2935449: { return std::__to_wstring_numeric(std::to_string(__val)); } 2935449: 2935449: [[__nodiscard__]] 2935449: inline wstring 2935449: to_wstring(unsigned __val) 2935449: { return std::__to_wstring_numeric(std::to_string(__val)); } 2935449: 2935449: [[__nodiscard__]] 2935449: inline wstring 2935449: to_wstring(long __val) 2935449: { return std::__to_wstring_numeric(std::to_string(__val)); } 2935449: 2935449: [[__nodiscard__]] 2935449: inline wstring 2935449: to_wstring(unsigned long __val) 2935449: { return std::__to_wstring_numeric(std::to_string(__val)); } 2935449: 2935449: [[__nodiscard__]] 2935449: inline wstring 2935449: to_wstring(long long __val) 2935449: { return std::__to_wstring_numeric(std::to_string(__val)); } 2935449: 2935449: [[__nodiscard__]] 2935449: inline wstring 2935449: to_wstring(unsigned long long __val) 2935449: { return std::__to_wstring_numeric(std::to_string(__val)); } 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: inline wstring 2935449: to_wstring(float __val) 2935449: { return std::__to_wstring_numeric(std::to_string(__val)); } 2935449: 2935449: [[__nodiscard__]] 2935449: inline wstring 2935449: to_wstring(double __val) 2935449: { return std::__to_wstring_numeric(std::to_string(__val)); } 2935449: 2935449: [[__nodiscard__]] 2935449: inline wstring 2935449: to_wstring(long double __val) 2935449: { return std::__to_wstring_numeric(std::to_string(__val)); } 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/functional_hash.h" 1 3 2935449: # 38 "/usr/arm-linux-gnueabi/include/c++/15/bits/functional_hash.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/hash_bytes.h" 1 3 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/bits/hash_bytes.h" 3 2935449: namespace std 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: size_t 2935449: _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: size_t 2935449: _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); 2935449: 2935449: 2935449: } 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/bits/functional_hash.h" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 52 "/usr/arm-linux-gnueabi/include/c++/15/bits/functional_hash.h" 3 2935449: template 2935449: struct __hash_base 2935449: { 2935449: 2935449: typedef _Result result_type ; 2935449: typedef _Arg argument_type ; 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: template struct __hash_empty_base { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct hash; 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++14-extensions" 2935449: template 2935449: constexpr bool __is_hash_enabled_for = false; 2935449: 2935449: template 2935449: constexpr bool 2935449: __is_hash_enabled_for<_Tp, 2935449: __void_t()(declval<_Tp>()))>> 2935449: = true; 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: template 2935449: struct __hash_not_enabled 2935449: { 2935449: __hash_not_enabled(__hash_not_enabled&&) = delete; 2935449: ~__hash_not_enabled() = delete; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __hash_enum : public __hash_base 2935449: { 2935449: size_t 2935449: operator()(_Tp __val) const noexcept 2935449: { 2935449: using __type = typename underlying_type<_Tp>::type; 2935449: return hash<__type>{}(static_cast<__type>(__val)); 2935449: } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct hash 2935449: : __conditional_t<__is_enum(_Tp), __hash_enum<_Tp>, __hash_not_enabled<_Tp>> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct hash<_Tp*> : public __hash_base 2935449: { 2935449: size_t 2935449: operator()(_Tp* __p) const noexcept 2935449: { return reinterpret_cast(__p); } 2935449: }; 2935449: # 128 "/usr/arm-linux-gnueabi/include/c++/15/bits/functional_hash.h" 3 2935449: template<> struct hash : public __hash_base { size_t operator()(bool __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(char __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(signed char __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(unsigned char __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(wchar_t __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(char16_t __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(char32_t __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(short __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(int __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(long __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(long long __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(unsigned short __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(unsigned int __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(unsigned long __val) const noexcept { return static_cast(__val); } }; 2935449: 2935449: 2935449: template<> struct hash : public __hash_base { size_t operator()(unsigned long long __val) const noexcept { return static_cast(__val); } }; 2935449: # 204 "/usr/arm-linux-gnueabi/include/c++/15/bits/functional_hash.h" 3 2935449: struct _Hash_impl 2935449: { 2935449: static size_t 2935449: hash(const void* __ptr, size_t __clength, 2935449: size_t __seed = static_cast(0xc70f6907UL)) 2935449: { return _Hash_bytes(__ptr, __clength, __seed); } 2935449: 2935449: template 2935449: static size_t 2935449: hash(const _Tp& __val) 2935449: { return hash(&__val, sizeof(__val)); } 2935449: 2935449: template 2935449: static size_t 2935449: __hash_combine(const _Tp& __val, size_t __hash) 2935449: { return hash(&__val, sizeof(__val), __hash); } 2935449: }; 2935449: 2935449: 2935449: struct _Fnv_hash_impl 2935449: { 2935449: static size_t 2935449: hash(const void* __ptr, size_t __clength, 2935449: size_t __seed = static_cast(2166136261UL)) 2935449: { return _Fnv_hash_bytes(__ptr, __clength, __seed); } 2935449: 2935449: template 2935449: static size_t 2935449: hash(const _Tp& __val) 2935449: { return hash(&__val, sizeof(__val)); } 2935449: 2935449: template 2935449: static size_t 2935449: __hash_combine(const _Tp& __val, size_t __hash) 2935449: { return hash(&__val, sizeof(__val), __hash); } 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct hash : public __hash_base 2935449: { 2935449: size_t 2935449: operator()(float __val) const noexcept 2935449: { 2935449: 2935449: return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; 2935449: } 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct hash : public __hash_base 2935449: { 2935449: size_t 2935449: operator()(double __val) const noexcept 2935449: { 2935449: 2935449: return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; 2935449: } 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct hash 2935449: : public __hash_base 2935449: { 2935449: __attribute__ ((__pure__)) size_t 2935449: operator()(long double __val) const noexcept; 2935449: }; 2935449: # 297 "/usr/arm-linux-gnueabi/include/c++/15/bits/functional_hash.h" 3 2935449: template 2935449: struct __is_fast_hash : public std::true_type 2935449: { }; 2935449: 2935449: template<> 2935449: struct __is_fast_hash> : public std::false_type 2935449: { }; 2935449: 2935449: 2935449: } 2935449: # 4896 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template, _Alloc>> 2935449: struct __str_hash_base 2935449: : public __hash_base 2935449: { 2935449: [[__nodiscard__]] 2935449: size_t 2935449: operator()(const _StrT& __s) const noexcept 2935449: { return _Hash_impl::hash(__s.data(), __s.length() * sizeof(_CharT)); } 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct hash, _Alloc>> 2935449: : public __str_hash_base 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct hash, _Alloc>> 2935449: : public __str_hash_base 2935449: { }; 2935449: 2935449: template 2935449: struct __is_fast_hash, 2935449: _Alloc>>> 2935449: : std::false_type 2935449: { }; 2935449: # 4944 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: template 2935449: struct hash, _Alloc>> 2935449: : public __str_hash_base 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct hash, _Alloc>> 2935449: : public __str_hash_base 2935449: { }; 2935449: 2935449: 2935449: 2935449: template<> struct __is_fast_hash> : std::false_type { }; 2935449: template<> struct __is_fast_hash> : std::false_type { }; 2935449: template<> struct __is_fast_hash> : std::false_type { }; 2935449: template<> struct __is_fast_hash> : std::false_type { }; 2935449: # 5036 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.h" 3 2935449: 2935449: } 2935449: # 57 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.tcc" 1 3 2935449: # 46 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.tcc" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++11-extensions" 2935449: 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: const typename basic_string<_CharT, _Traits, _Alloc>::size_type 2935449: basic_string<_CharT, _Traits, _Alloc>::npos; 2935449: 2935449: template 2935449: 2935449: void 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: swap(basic_string& __s) noexcept 2935449: { 2935449: if (this == std::__addressof(__s)) 2935449: return; 2935449: 2935449: _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator()); 2935449: 2935449: if (_M_is_local()) 2935449: if (__s._M_is_local()) 2935449: { 2935449: if (length() && __s.length()) 2935449: { 2935449: _CharT __tmp_data[_S_local_capacity + 1]; 2935449: traits_type::copy(__tmp_data, __s._M_local_buf, 2935449: __s.length() + 1); 2935449: traits_type::copy(__s._M_local_buf, _M_local_buf, 2935449: length() + 1); 2935449: traits_type::copy(_M_local_buf, __tmp_data, 2935449: __s.length() + 1); 2935449: } 2935449: else if (__s.length()) 2935449: { 2935449: _M_init_local_buf(); 2935449: traits_type::copy(_M_local_buf, __s._M_local_buf, 2935449: __s.length() + 1); 2935449: _M_length(__s.length()); 2935449: __s._M_set_length(0); 2935449: return; 2935449: } 2935449: else if (length()) 2935449: { 2935449: __s._M_init_local_buf(); 2935449: traits_type::copy(__s._M_local_buf, _M_local_buf, 2935449: length() + 1); 2935449: __s._M_length(length()); 2935449: _M_set_length(0); 2935449: return; 2935449: } 2935449: } 2935449: else 2935449: { 2935449: const size_type __tmp_capacity = __s._M_allocated_capacity; 2935449: __s._M_init_local_buf(); 2935449: traits_type::copy(__s._M_local_buf, _M_local_buf, 2935449: length() + 1); 2935449: _M_data(__s._M_data()); 2935449: __s._M_data(__s._M_local_buf); 2935449: _M_capacity(__tmp_capacity); 2935449: } 2935449: else 2935449: { 2935449: const size_type __tmp_capacity = _M_allocated_capacity; 2935449: if (__s._M_is_local()) 2935449: { 2935449: _M_init_local_buf(); 2935449: traits_type::copy(_M_local_buf, __s._M_local_buf, 2935449: __s.length() + 1); 2935449: __s._M_data(_M_data()); 2935449: _M_data(_M_local_buf); 2935449: } 2935449: else 2935449: { 2935449: pointer __tmp_ptr = _M_data(); 2935449: _M_data(__s._M_data()); 2935449: __s._M_data(__tmp_ptr); 2935449: _M_capacity(__s._M_allocated_capacity); 2935449: } 2935449: __s._M_capacity(__tmp_capacity); 2935449: } 2935449: 2935449: const size_type __tmp_length = length(); 2935449: _M_length(__s.length()); 2935449: __s._M_length(__tmp_length); 2935449: } 2935449: 2935449: template 2935449: 2935449: typename basic_string<_CharT, _Traits, _Alloc>::pointer 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: _M_create(size_type& __capacity, size_type __old_capacity) 2935449: { 2935449: 2935449: 2935449: if (__capacity > max_size()) 2935449: std::__throw_length_error(("basic_string::_M_create")); 2935449: 2935449: 2935449: 2935449: 2935449: if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) 2935449: { 2935449: __capacity = 2 * __old_capacity; 2935449: 2935449: if (__capacity > max_size()) 2935449: __capacity = max_size(); 2935449: } 2935449: 2935449: 2935449: 2935449: return _S_allocate(_M_get_allocator(), __capacity + 1); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: template 2935449: 2935449: void 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: _M_construct(_InIterator __beg, _InIterator __end, 2935449: std::input_iterator_tag) 2935449: { 2935449: size_type __len = 0; 2935449: size_type __capacity = size_type(_S_local_capacity); 2935449: 2935449: _M_init_local_buf(); 2935449: 2935449: while (__beg != __end && __len < __capacity) 2935449: { 2935449: _M_local_buf[__len++] = *__beg; 2935449: ++__beg; 2935449: } 2935449: 2935449: struct _Guard 2935449: { 2935449: 2935449: explicit _Guard(basic_string* __s) : _M_guarded(__s) { } 2935449: 2935449: 2935449: ~_Guard() { if (_M_guarded) _M_guarded->_M_dispose(); } 2935449: 2935449: basic_string* _M_guarded; 2935449: } __guard(this); 2935449: 2935449: while (__beg != __end) 2935449: { 2935449: if (__len == __capacity) 2935449: { 2935449: 2935449: __capacity = __len + 1; 2935449: pointer __another = _M_create(__capacity, __len); 2935449: this->_S_copy(__another, _M_data(), __len); 2935449: _M_dispose(); 2935449: _M_data(__another); 2935449: _M_capacity(__capacity); 2935449: } 2935449: traits_type::assign(_M_data()[__len++], 2935449: static_cast<_CharT>(*__beg)); 2935449: ++__beg; 2935449: } 2935449: 2935449: __guard._M_guarded = 0; 2935449: 2935449: _M_set_length(__len); 2935449: } 2935449: 2935449: template 2935449: template 2935449: 2935449: void 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: _M_construct(_InIterator __beg, _InIterator __end, 2935449: std::forward_iterator_tag) 2935449: { 2935449: size_type __dnew = static_cast(std::distance(__beg, __end)); 2935449: 2935449: if (__dnew > size_type(_S_local_capacity)) 2935449: { 2935449: _M_data(_M_create(__dnew, size_type(0))); 2935449: _M_capacity(__dnew); 2935449: } 2935449: else 2935449: _M_init_local_buf(); 2935449: 2935449: 2935449: struct _Guard 2935449: { 2935449: 2935449: explicit _Guard(basic_string* __s) : _M_guarded(__s) { } 2935449: 2935449: 2935449: ~_Guard() { if (_M_guarded) _M_guarded->_M_dispose(); } 2935449: 2935449: basic_string* _M_guarded; 2935449: } __guard(this); 2935449: 2935449: this->_S_copy_chars(_M_data(), __beg, __end); 2935449: 2935449: __guard._M_guarded = 0; 2935449: 2935449: _M_set_length(__dnew); 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: _M_construct(size_type __n, _CharT __c) 2935449: { 2935449: if (__n > size_type(_S_local_capacity)) 2935449: { 2935449: _M_data(_M_create(__n, size_type(0))); 2935449: _M_capacity(__n); 2935449: } 2935449: else 2935449: _M_init_local_buf(); 2935449: 2935449: if (__n) 2935449: this->_S_assign(_M_data(), __n, __c); 2935449: 2935449: _M_set_length(__n); 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: template 2935449: 2935449: void 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: _M_construct(const _CharT* __str, size_type __n) 2935449: { 2935449: if (__n > size_type(_S_local_capacity)) 2935449: { 2935449: _M_data(_M_create(__n, size_type(0))); 2935449: _M_capacity(__n); 2935449: } 2935449: else 2935449: _M_init_local_buf(); 2935449: 2935449: if (__n || _Terminated) 2935449: this->_S_copy(_M_data(), __str, __n + _Terminated); 2935449: 2935449: _M_length(__n); 2935449: if (!_Terminated) 2935449: traits_type::assign(_M_data()[__n], _CharT()); 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: _M_assign(const basic_string& __str) 2935449: { 2935449: if (this != std::__addressof(__str)) 2935449: { 2935449: const size_type __rsize = __str.length(); 2935449: const size_type __capacity = capacity(); 2935449: 2935449: if (__rsize > __capacity) 2935449: { 2935449: size_type __new_capacity = __rsize; 2935449: pointer __tmp = _M_create(__new_capacity, __capacity); 2935449: _M_dispose(); 2935449: _M_data(__tmp); 2935449: _M_capacity(__new_capacity); 2935449: } 2935449: 2935449: if (__rsize) 2935449: this->_S_copy(_M_data(), __str._M_data(), __rsize); 2935449: 2935449: _M_set_length(__rsize); 2935449: } 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: reserve(size_type __res) 2935449: { 2935449: const size_type __capacity = capacity(); 2935449: 2935449: 2935449: 2935449: 2935449: if (__res <= __capacity) 2935449: return; 2935449: 2935449: pointer __tmp = _M_create(__res, __capacity); 2935449: this->_S_copy(__tmp, _M_data(), length() + 1); 2935449: _M_dispose(); 2935449: _M_data(__tmp); 2935449: _M_capacity(__res); 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 2935449: size_type __len2) 2935449: { 2935449: const size_type __how_much = length() - __pos - __len1; 2935449: 2935449: size_type __new_capacity = length() + __len2 - __len1; 2935449: pointer __r = _M_create(__new_capacity, capacity()); 2935449: 2935449: if (__pos) 2935449: this->_S_copy(__r, _M_data(), __pos); 2935449: if (__s && __len2) 2935449: this->_S_copy(__r + __pos, __s, __len2); 2935449: if (__how_much) 2935449: this->_S_copy(__r + __pos + __len2, 2935449: _M_data() + __pos + __len1, __how_much); 2935449: 2935449: _M_dispose(); 2935449: _M_data(__r); 2935449: _M_capacity(__new_capacity); 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: _M_erase(size_type __pos, size_type __n) 2935449: { 2935449: const size_type __how_much = length() - __pos - __n; 2935449: 2935449: if (__how_much && __n) 2935449: this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); 2935449: 2935449: _M_set_length(length() - __n); 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: reserve() 2935449: { 2935449: if (_M_is_local()) 2935449: return; 2935449: 2935449: const size_type __length = length(); 2935449: const size_type __capacity = _M_allocated_capacity; 2935449: 2935449: if (__length <= size_type(_S_local_capacity)) 2935449: { 2935449: _M_init_local_buf(); 2935449: this->_S_copy(_M_local_buf, _M_data(), __length + 1); 2935449: _M_destroy(__capacity); 2935449: _M_data(_M_local_data()); 2935449: } 2935449: # 426 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.tcc" 3 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: resize(size_type __n, _CharT __c) 2935449: { 2935449: const size_type __size = this->size(); 2935449: if (__size < __n) 2935449: this->append(__n - __size, __c); 2935449: else if (__n < __size) 2935449: this->_M_set_length(__n); 2935449: } 2935449: 2935449: template 2935449: 2935449: basic_string<_CharT, _Traits, _Alloc>& 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: _M_append(const _CharT* __s, size_type __n) 2935449: { 2935449: const size_type __len = __n + this->size(); 2935449: 2935449: if (__len <= this->capacity()) 2935449: { 2935449: if (__n) 2935449: this->_S_copy(this->_M_data() + this->size(), __s, __n); 2935449: } 2935449: else 2935449: this->_M_mutate(this->size(), size_type(0), __s, __n); 2935449: 2935449: this->_M_set_length(__len); 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: template 2935449: 2935449: basic_string<_CharT, _Traits, _Alloc>& 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 2935449: _InputIterator __k1, _InputIterator __k2, 2935449: std::__false_type) 2935449: { 2935449: 2935449: 2935449: const basic_string __s(__k1, __k2, this->get_allocator()); 2935449: const size_type __n1 = __i2 - __i1; 2935449: return _M_replace(__i1 - begin(), __n1, __s._M_data(), 2935449: __s.size()); 2935449: } 2935449: 2935449: template 2935449: 2935449: basic_string<_CharT, _Traits, _Alloc>& 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 2935449: _CharT __c) 2935449: { 2935449: _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); 2935449: 2935449: const size_type __old_size = this->size(); 2935449: const size_type __new_size = __old_size + __n2 - __n1; 2935449: 2935449: if (__new_size <= this->capacity()) 2935449: { 2935449: pointer __p = this->_M_data() + __pos1; 2935449: 2935449: const size_type __how_much = __old_size - __pos1 - __n1; 2935449: if (__how_much && __n1 != __n2) 2935449: this->_S_move(__p + __n2, __p + __n1, __how_much); 2935449: } 2935449: else 2935449: this->_M_mutate(__pos1, __n1, 0, __n2); 2935449: 2935449: if (__n2) 2935449: this->_S_assign(this->_M_data() + __pos1, __n2, __c); 2935449: 2935449: this->_M_set_length(__new_size); 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: __attribute__((__noinline__, __noclone__, __cold__)) void 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: _M_replace_cold(pointer __p, size_type __len1, const _CharT* __s, 2935449: const size_type __len2, const size_type __how_much) 2935449: { 2935449: 2935449: if (__len2 && __len2 <= __len1) 2935449: this->_S_move(__p, __s, __len2); 2935449: if (__how_much && __len1 != __len2) 2935449: this->_S_move(__p + __len2, __p + __len1, __how_much); 2935449: if (__len2 > __len1) 2935449: { 2935449: if (__s + __len2 <= __p + __len1) 2935449: this->_S_move(__p, __s, __len2); 2935449: else if (__s >= __p + __len1) 2935449: { 2935449: 2935449: 2935449: const size_type __poff = (__s - __p) + (__len2 - __len1); 2935449: this->_S_copy(__p, __p + __poff, __len2); 2935449: } 2935449: else 2935449: { 2935449: const size_type __nleft = (__p + __len1) - __s; 2935449: this->_S_move(__p, __s, __nleft); 2935449: this->_S_copy(__p + __nleft, __p + __len2, __len2 - __nleft); 2935449: } 2935449: } 2935449: } 2935449: 2935449: template 2935449: 2935449: basic_string<_CharT, _Traits, _Alloc>& 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 2935449: const size_type __len2) 2935449: { 2935449: _M_check_length(__len1, __len2, "basic_string::_M_replace"); 2935449: 2935449: const size_type __old_size = this->size(); 2935449: const size_type __new_size = __old_size + __len2 - __len1; 2935449: 2935449: if (__new_size <= this->capacity()) 2935449: { 2935449: pointer __p = this->_M_data() + __pos; 2935449: 2935449: const size_type __how_much = __old_size - __pos - __len1; 2935449: # 568 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.tcc" 3 2935449: if (__builtin_expect(_M_disjunct(__s), true)) 2935449: { 2935449: if (__how_much && __len1 != __len2) 2935449: this->_S_move(__p + __len2, __p + __len1, __how_much); 2935449: if (__len2) 2935449: this->_S_copy(__p, __s, __len2); 2935449: } 2935449: else 2935449: _M_replace_cold(__p, __len1, __s, __len2, __how_much); 2935449: } 2935449: else 2935449: this->_M_mutate(__pos, __len1, __s, __len2); 2935449: 2935449: this->_M_set_length(__new_size); 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename basic_string<_CharT, _Traits, _Alloc>::size_type 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: copy(_CharT* __s, size_type __n, size_type __pos) const 2935449: { 2935449: _M_check(__pos, "basic_string::copy"); 2935449: __n = _M_limit(__pos, __n); 2935449: ; 2935449: if (__n) 2935449: _S_copy(__s, _M_data() + __pos, __n); 2935449: 2935449: return __n; 2935449: } 2935449: # 611 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.tcc" 3 2935449: template 2935449: template 2935449: void 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: 2935449: 2935449: 2935449: __resize_and_overwrite(const size_type __n, _Operation __op) 2935449: 2935449: { 2935449: reserve(__n); 2935449: _CharT* const __p = _M_data(); 2935449: 2935449: 2935449: 2935449: 2935449: struct _Terminator { 2935449: ~_Terminator() { _M_this->_M_set_length(_M_r); } 2935449: basic_string* _M_this; 2935449: size_type _M_r; 2935449: }; 2935449: _Terminator __term{this, 0}; 2935449: auto __r = std::move(__op)(__p + 0, __n + 0); 2935449: 2935449: 2935449: 2935449: static_assert(__gnu_cxx::__is_integer_nonstrict::__value, 2935449: "resize_and_overwrite operation must return an integer"); 2935449: 2935449: ; 2935449: __term._M_r = size_type(__r); 2935449: if (__term._M_r > __n) 2935449: __builtin_unreachable(); 2935449: } 2935449: # 654 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.tcc" 3 2935449: template 2935449: 2935449: typename basic_string<_CharT, _Traits, _Alloc>::size_type 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: find(const _CharT* __s, size_type __pos, size_type __n) const 2935449: noexcept 2935449: { 2935449: ; 2935449: const size_type __size = this->size(); 2935449: 2935449: if (__n == 0) 2935449: return __pos <= __size ? __pos : npos; 2935449: if (__pos >= __size) 2935449: return npos; 2935449: 2935449: const _CharT __elem0 = __s[0]; 2935449: const _CharT* const __data = data(); 2935449: const _CharT* __first = __data + __pos; 2935449: const _CharT* const __last = __data + __size; 2935449: size_type __len = __size - __pos; 2935449: 2935449: while (__len >= __n) 2935449: { 2935449: 2935449: __first = traits_type::find(__first, __len - __n + 1, __elem0); 2935449: if (!__first) 2935449: return npos; 2935449: 2935449: 2935449: 2935449: if (traits_type::compare(__first, __s, __n) == 0) 2935449: return __first - __data; 2935449: __len = __last - ++__first; 2935449: } 2935449: return npos; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename basic_string<_CharT, _Traits, _Alloc>::size_type 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: find(_CharT __c, size_type __pos) const noexcept 2935449: { 2935449: size_type __ret = npos; 2935449: const size_type __size = this->size(); 2935449: if (__pos < __size) 2935449: { 2935449: const _CharT* __data = _M_data(); 2935449: const size_type __n = __size - __pos; 2935449: const _CharT* __p = traits_type::find(__data + __pos, __n, __c); 2935449: if (__p) 2935449: __ret = __p - __data; 2935449: } 2935449: return __ret; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename basic_string<_CharT, _Traits, _Alloc>::size_type 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: rfind(const _CharT* __s, size_type __pos, size_type __n) const 2935449: noexcept 2935449: { 2935449: ; 2935449: const size_type __size = this->size(); 2935449: if (__n <= __size) 2935449: { 2935449: __pos = std::min(size_type(__size - __n), __pos); 2935449: const _CharT* __data = _M_data(); 2935449: do 2935449: { 2935449: if (traits_type::compare(__data + __pos, __s, __n) == 0) 2935449: return __pos; 2935449: } 2935449: while (__pos-- > 0); 2935449: } 2935449: return npos; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename basic_string<_CharT, _Traits, _Alloc>::size_type 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: rfind(_CharT __c, size_type __pos) const noexcept 2935449: { 2935449: size_type __size = this->size(); 2935449: if (__size) 2935449: { 2935449: if (--__size > __pos) 2935449: __size = __pos; 2935449: for (++__size; __size-- > 0; ) 2935449: if (traits_type::eq(_M_data()[__size], __c)) 2935449: return __size; 2935449: } 2935449: return npos; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename basic_string<_CharT, _Traits, _Alloc>::size_type 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 2935449: noexcept 2935449: { 2935449: ; 2935449: for (; __n && __pos < this->size(); ++__pos) 2935449: { 2935449: const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); 2935449: if (__p) 2935449: return __pos; 2935449: } 2935449: return npos; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename basic_string<_CharT, _Traits, _Alloc>::size_type 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 2935449: noexcept 2935449: { 2935449: ; 2935449: size_type __size = this->size(); 2935449: if (__size && __n) 2935449: { 2935449: if (--__size > __pos) 2935449: __size = __pos; 2935449: do 2935449: { 2935449: if (traits_type::find(__s, __n, _M_data()[__size])) 2935449: return __size; 2935449: } 2935449: while (__size-- != 0); 2935449: } 2935449: return npos; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename basic_string<_CharT, _Traits, _Alloc>::size_type 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const 2935449: noexcept 2935449: { 2935449: ; 2935449: for (; __pos < this->size(); ++__pos) 2935449: if (!traits_type::find(__s, __n, _M_data()[__pos])) 2935449: return __pos; 2935449: return npos; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename basic_string<_CharT, _Traits, _Alloc>::size_type 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: find_first_not_of(_CharT __c, size_type __pos) const noexcept 2935449: { 2935449: for (; __pos < this->size(); ++__pos) 2935449: if (!traits_type::eq(_M_data()[__pos], __c)) 2935449: return __pos; 2935449: return npos; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename basic_string<_CharT, _Traits, _Alloc>::size_type 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const 2935449: noexcept 2935449: { 2935449: ; 2935449: size_type __size = this->size(); 2935449: if (__size) 2935449: { 2935449: if (--__size > __pos) 2935449: __size = __pos; 2935449: do 2935449: { 2935449: if (!traits_type::find(__s, __n, _M_data()[__size])) 2935449: return __size; 2935449: } 2935449: while (__size--); 2935449: } 2935449: return npos; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename basic_string<_CharT, _Traits, _Alloc>::size_type 2935449: basic_string<_CharT, _Traits, _Alloc>:: 2935449: find_last_not_of(_CharT __c, size_type __pos) const noexcept 2935449: { 2935449: size_type __size = this->size(); 2935449: if (__size) 2935449: { 2935449: if (--__size > __pos) 2935449: __size = __pos; 2935449: do 2935449: { 2935449: if (!traits_type::eq(_M_data()[__size], __c)) 2935449: return __size; 2935449: } 2935449: while (__size--); 2935449: } 2935449: return npos; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: basic_istream<_CharT, _Traits>& 2935449: operator>>(basic_istream<_CharT, _Traits>& __in, 2935449: basic_string<_CharT, _Traits, _Alloc>& __str) 2935449: { 2935449: typedef basic_istream<_CharT, _Traits> __istream_type; 2935449: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 2935449: typedef typename __istream_type::ios_base __ios_base; 2935449: typedef typename __istream_type::int_type __int_type; 2935449: typedef typename __string_type::size_type __size_type; 2935449: typedef ctype<_CharT> __ctype_type; 2935449: typedef typename __ctype_type::ctype_base __ctype_base; 2935449: 2935449: __size_type __extracted = 0; 2935449: typename __ios_base::iostate __err = __ios_base::goodbit; 2935449: typename __istream_type::sentry __cerb(__in, false); 2935449: if (__cerb) 2935449: { 2935449: if (true) 2935449: { 2935449: 2935449: __str.erase(); 2935449: _CharT __buf[128]; 2935449: __size_type __len = 0; 2935449: const streamsize __w = __in.width(); 2935449: const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) 2935449: : __str.max_size(); 2935449: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 2935449: const __int_type __eof = _Traits::eof(); 2935449: __int_type __c = __in.rdbuf()->sgetc(); 2935449: 2935449: while (__extracted < __n 2935449: && !_Traits::eq_int_type(__c, __eof) 2935449: && !__ct.is(__ctype_base::space, 2935449: _Traits::to_char_type(__c))) 2935449: { 2935449: if (__len == sizeof(__buf) / sizeof(_CharT)) 2935449: { 2935449: __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); 2935449: __len = 0; 2935449: } 2935449: __buf[__len++] = _Traits::to_char_type(__c); 2935449: ++__extracted; 2935449: __c = __in.rdbuf()->snextc(); 2935449: } 2935449: __str.append(__buf, __len); 2935449: 2935449: if (__extracted < __n && _Traits::eq_int_type(__c, __eof)) 2935449: __err |= __ios_base::eofbit; 2935449: __in.width(0); 2935449: } 2935449: if (false) 2935449: { 2935449: __in._M_setstate(__ios_base::badbit); 2935449: ; 2935449: } 2935449: if (false) 2935449: { 2935449: 2935449: 2935449: 2935449: __in._M_setstate(__ios_base::badbit); 2935449: } 2935449: } 2935449: 2935449: if (!__extracted) 2935449: __err |= __ios_base::failbit; 2935449: if (__err) 2935449: __in.setstate(__err); 2935449: return __in; 2935449: } 2935449: 2935449: template 2935449: basic_istream<_CharT, _Traits>& 2935449: getline(basic_istream<_CharT, _Traits>& __in, 2935449: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 2935449: { 2935449: typedef basic_istream<_CharT, _Traits> __istream_type; 2935449: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 2935449: typedef typename __istream_type::ios_base __ios_base; 2935449: typedef typename __istream_type::int_type __int_type; 2935449: typedef typename __string_type::size_type __size_type; 2935449: 2935449: __size_type __extracted = 0; 2935449: const __size_type __n = __str.max_size(); 2935449: typename __ios_base::iostate __err = __ios_base::goodbit; 2935449: typename __istream_type::sentry __cerb(__in, true); 2935449: if (__cerb) 2935449: { 2935449: if (true) 2935449: { 2935449: __str.erase(); 2935449: const __int_type __idelim = _Traits::to_int_type(__delim); 2935449: const __int_type __eof = _Traits::eof(); 2935449: __int_type __c = __in.rdbuf()->sgetc(); 2935449: 2935449: while (__extracted < __n 2935449: && !_Traits::eq_int_type(__c, __eof) 2935449: && !_Traits::eq_int_type(__c, __idelim)) 2935449: { 2935449: __str += _Traits::to_char_type(__c); 2935449: ++__extracted; 2935449: __c = __in.rdbuf()->snextc(); 2935449: } 2935449: 2935449: if (_Traits::eq_int_type(__c, __eof)) 2935449: __err |= __ios_base::eofbit; 2935449: else if (_Traits::eq_int_type(__c, __idelim)) 2935449: { 2935449: ++__extracted; 2935449: __in.rdbuf()->sbumpc(); 2935449: } 2935449: else 2935449: __err |= __ios_base::failbit; 2935449: } 2935449: if (false) 2935449: { 2935449: __in._M_setstate(__ios_base::badbit); 2935449: ; 2935449: } 2935449: if (false) 2935449: { 2935449: 2935449: 2935449: 2935449: __in._M_setstate(__ios_base::badbit); 2935449: } 2935449: } 2935449: if (!__extracted) 2935449: __err |= __ios_base::failbit; 2935449: if (__err) 2935449: __in.setstate(__err); 2935449: return __in; 2935449: } 2935449: # 1008 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.tcc" 3 2935449: extern template class basic_string; 2935449: # 1021 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.tcc" 3 2935449: extern template 2935449: basic_istream& 2935449: operator>>(basic_istream&, string&); 2935449: extern template 2935449: basic_ostream& 2935449: operator<<(basic_ostream&, const string&); 2935449: extern template 2935449: basic_istream& 2935449: getline(basic_istream&, string&, char); 2935449: extern template 2935449: basic_istream& 2935449: getline(basic_istream&, string&); 2935449: 2935449: 2935449: 2935449: extern template class basic_string; 2935449: # 1047 "/usr/arm-linux-gnueabi/include/c++/15/bits/basic_string.tcc" 3 2935449: extern template 2935449: basic_istream& 2935449: operator>>(basic_istream&, wstring&); 2935449: extern template 2935449: basic_ostream& 2935449: operator<<(basic_ostream&, const wstring&); 2935449: extern template 2935449: basic_istream& 2935449: getline(basic_istream&, wstring&, wchar_t); 2935449: extern template 2935449: basic_istream& 2935449: getline(basic_istream&, wstring&); 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: #pragma GCC diagnostic pop 2935449: # 58 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 69 "/usr/arm-linux-gnueabi/include/c++/15/string" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 70 "/usr/arm-linux-gnueabi/include/c++/15/string" 2 3 2935449: # 22 "/<>/src/client/WFConsulClient.cc" 2 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/vector" 1 3 2935449: # 67 "/usr/arm-linux-gnueabi/include/c++/15/vector" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 1 3 2935449: # 71 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _UninitDestroyGuard 2935449: { 2935449: 2935449: explicit 2935449: _UninitDestroyGuard(_ForwardIterator& __first, _Alloc& __a) 2935449: : _M_first(__first), _M_cur(__builtin_addressof(__first)), _M_alloc(__a) 2935449: { } 2935449: 2935449: 2935449: ~_UninitDestroyGuard() 2935449: { 2935449: if (__builtin_expect(_M_cur != 0, 0)) 2935449: std::_Destroy(_M_first, *_M_cur, _M_alloc); 2935449: } 2935449: 2935449: 2935449: void release() { _M_cur = 0; } 2935449: 2935449: private: 2935449: _ForwardIterator const _M_first; 2935449: _ForwardIterator* _M_cur; 2935449: _Alloc& _M_alloc; 2935449: 2935449: _UninitDestroyGuard(const _UninitDestroyGuard&); 2935449: }; 2935449: 2935449: template 2935449: struct _UninitDestroyGuard<_ForwardIterator, void> 2935449: { 2935449: 2935449: explicit 2935449: _UninitDestroyGuard(_ForwardIterator& __first) 2935449: : _M_first(__first), _M_cur(__builtin_addressof(__first)) 2935449: { } 2935449: 2935449: 2935449: ~_UninitDestroyGuard() 2935449: { 2935449: if (__builtin_expect(_M_cur != 0, 0)) 2935449: std::_Destroy(_M_first, *_M_cur); 2935449: } 2935449: 2935449: 2935449: void release() { _M_cur = 0; } 2935449: 2935449: _ForwardIterator const _M_first; 2935449: _ForwardIterator* _M_cur; 2935449: 2935449: private: 2935449: _UninitDestroyGuard(const _UninitDestroyGuard&); 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: _ForwardIterator 2935449: __do_uninit_copy(_InputIterator __first, _Sentinel __last, 2935449: _ForwardIterator __result) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator> __guard(__result); 2935449: for (; __first != __last; ++__first, (void)++__result) 2935449: std::_Construct(std::__addressof(*__result), *__first); 2935449: __guard.release(); 2935449: return __result; 2935449: } 2935449: # 217 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: # 228 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: template 2935449: 2935449: inline _ForwardIterator 2935449: uninitialized_copy(_InputIterator __first, _InputIterator __last, 2935449: _ForwardIterator __result) 2935449: { 2935449: # 256 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: using _Dest = decltype(std::__niter_base(__result)); 2935449: using _Src = decltype(std::__niter_base(__first)); 2935449: using _ValT = typename iterator_traits<_ForwardIterator>::value_type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: if constexpr (!__is_trivially_constructible(_ValT, decltype(*__first))) 2935449: return std::__do_uninit_copy(__first, __last, __result); 2935449: else if constexpr (__memcpyable<_Dest, _Src>::__value) 2935449: { 2935449: ptrdiff_t __n = __last - __first; 2935449: if (__n > 0) [[__likely__]] 2935449: { 2935449: using _ValT = typename remove_pointer<_Src>::type; 2935449: __builtin_memcpy(std::__niter_base(__result), 2935449: std::__niter_base(__first), 2935449: __n * sizeof(_ValT)); 2935449: __result += __n; 2935449: } 2935449: return __result; 2935449: } 2935449: # 302 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: else 2935449: return std::__do_uninit_copy(__first, __last, __result); 2935449: # 317 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: void 2935449: __do_uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 2935449: const _Tp& __x) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator> __guard(__first); 2935449: for (; __first != __last; ++__first) 2935449: std::_Construct(std::__addressof(*__first), __x); 2935449: __guard.release(); 2935449: } 2935449: # 389 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: template 2935449: 2935449: inline void 2935449: uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, 2935449: const _Tp& __x) 2935449: { 2935449: # 404 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: typedef typename iterator_traits<_ForwardIterator>::value_type 2935449: _ValueType; 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: if constexpr (__is_byte<_ValueType>::__value) 2935449: if constexpr (is_same<_ValueType, _Tp>::value 2935449: || is_integral<_Tp>::value) 2935449: { 2935449: using _BasePtr = decltype(std::__niter_base(__first)); 2935449: if constexpr (is_pointer<_BasePtr>::value) 2935449: { 2935449: void* __dest = std::__niter_base(__first); 2935449: ptrdiff_t __n = __last - __first; 2935449: if (__n > 0) [[__likely__]] 2935449: __builtin_memset(__dest, (unsigned char)__x, __n); 2935449: return; 2935449: } 2935449: # 438 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: } 2935449: std::__do_uninit_fill(__first, __last, __x); 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: _ForwardIterator 2935449: __do_uninit_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator> __guard(__first); 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: if constexpr (is_integral<_Size>::value) 2935449: 2935449: do { if (std::__is_constant_evaluated() && !bool(__n >= 0)) std::__glibcxx_assert_fail(); } while (false); 2935449: else if constexpr (is_floating_point<_Size>::value) 2935449: 2935449: do { if (std::__is_constant_evaluated() && !bool(__n >= 0 && static_cast(__n) == __n)) std::__glibcxx_assert_fail(); } while (false); 2935449: #pragma GCC diagnostic pop 2935449: 2935449: for (; __n--; ++__first) 2935449: std::_Construct(std::__addressof(*__first), __x); 2935449: __guard.release(); 2935449: return __first; 2935449: } 2935449: # 510 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: # 523 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: template 2935449: 2935449: inline _ForwardIterator 2935449: uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef typename iterator_traits<_ForwardIterator>::value_type 2935449: _ValueType; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: if constexpr (__is_byte<_ValueType>::__value) 2935449: if constexpr (is_integral<_Tp>::value) 2935449: if constexpr (is_integral<_Size>::value) 2935449: { 2935449: using _BasePtr = decltype(std::__niter_base(__first)); 2935449: if constexpr (is_pointer<_BasePtr>::value) 2935449: { 2935449: void* __dest = std::__niter_base(__first); 2935449: if (__n > 0) [[__likely__]] 2935449: { 2935449: __builtin_memset(__dest, (unsigned char)__x, __n); 2935449: __first += __n; 2935449: } 2935449: return __first; 2935449: } 2935449: # 570 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: } 2935449: return std::__do_uninit_fill_n(__first, __n, __x); 2935449: # 580 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: # 591 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: template 2935449: 2935449: _ForwardIterator 2935449: __uninitialized_copy_a(_InputIterator __first, _Sentinel __last, 2935449: _ForwardIterator __result, _Allocator& __alloc) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator, _Allocator> 2935449: __guard(__result, __alloc); 2935449: 2935449: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 2935449: for (; __first != __last; ++__first, (void)++__result) 2935449: __traits::construct(__alloc, std::__addressof(*__result), *__first); 2935449: __guard.release(); 2935449: return __result; 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: inline _ForwardIterator 2935449: __uninitialized_copy_a(_InputIterator __first, _Sentinel __last, 2935449: _ForwardIterator __result, allocator<_Tp>&) 2935449: { 2935449: # 637 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: return std::uninitialized_copy(__first, __last, __result); 2935449: 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: inline _ForwardIterator 2935449: __uninitialized_move_a(_InputIterator __first, _InputIterator __last, 2935449: _ForwardIterator __result, _Allocator& __alloc) 2935449: { 2935449: return std::__uninitialized_copy_a(std::make_move_iterator(__first), 2935449: std::make_move_iterator(__last), 2935449: __result, __alloc); 2935449: } 2935449: 2935449: template 2935449: 2935449: inline _ForwardIterator 2935449: __uninitialized_move_if_noexcept_a(_InputIterator __first, 2935449: _InputIterator __last, 2935449: _ForwardIterator __result, 2935449: _Allocator& __alloc) 2935449: { 2935449: return std::__uninitialized_copy_a 2935449: (std::__make_move_if_noexcept_iterator(__first), 2935449: std::__make_move_if_noexcept_iterator(__last), __result, __alloc); 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 2935449: const _Tp& __x, _Allocator& __alloc) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator, _Allocator> 2935449: __guard(__first, __alloc); 2935449: 2935449: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 2935449: for (; __first != __last; ++__first) 2935449: __traits::construct(__alloc, std::__addressof(*__first), __x); 2935449: 2935449: __guard.release(); 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: inline void 2935449: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 2935449: const _Tp& __x, allocator<_Tp2>&) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: std::uninitialized_fill(__first, __last, __x); 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: _ForwardIterator 2935449: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 2935449: const _Tp& __x, _Allocator& __alloc) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator, _Allocator> 2935449: __guard(__first, __alloc); 2935449: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 2935449: for (; __n > 0; --__n, (void) ++__first) 2935449: __traits::construct(__alloc, std::__addressof(*__first), __x); 2935449: __guard.release(); 2935449: return __first; 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: inline _ForwardIterator 2935449: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 2935449: const _Tp& __x, allocator<_Tp2>&) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: return std::uninitialized_fill_n(__first, __n, __x); 2935449: } 2935449: # 740 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: template 2935449: inline _ForwardIterator 2935449: __uninitialized_copy_move(_InputIterator1 __first1, 2935449: _InputIterator1 __last1, 2935449: _InputIterator2 __first2, 2935449: _InputIterator2 __last2, 2935449: _ForwardIterator __result, 2935449: _Allocator& __alloc) 2935449: { 2935449: _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, 2935449: __result, __alloc); 2935449: _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__result, 2935449: __alloc); 2935449: __result = __mid; 2935449: __result = std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); 2935449: __guard.release(); 2935449: return __result; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: inline _ForwardIterator 2935449: __uninitialized_move_copy(_InputIterator1 __first1, 2935449: _InputIterator1 __last1, 2935449: _InputIterator2 __first2, 2935449: _InputIterator2 __last2, 2935449: _ForwardIterator __result, 2935449: _Allocator& __alloc) 2935449: { 2935449: _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, 2935449: __result, __alloc); 2935449: _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__result, 2935449: __alloc); 2935449: __result = __mid; 2935449: __result = std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); 2935449: __guard.release(); 2935449: return __result; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: inline _ForwardIterator 2935449: __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, 2935449: const _Tp& __x, _InputIterator __first, 2935449: _InputIterator __last, _Allocator& __alloc) 2935449: { 2935449: std::__uninitialized_fill_a(__result, __mid, __x, __alloc); 2935449: _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__result, 2935449: __alloc); 2935449: __result = __mid; 2935449: __result = std::__uninitialized_move_a(__first, __last, __mid, __alloc); 2935449: __guard.release(); 2935449: return __result; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: inline void 2935449: __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, 2935449: _ForwardIterator __first2, 2935449: _ForwardIterator __last2, const _Tp& __x, 2935449: _Allocator& __alloc) 2935449: { 2935449: _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, 2935449: __first2, 2935449: __alloc); 2935449: _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__first2, 2935449: __alloc); 2935449: __first2 = __mid2; 2935449: std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); 2935449: __guard.release(); 2935449: } 2935449: # 832 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: template 2935449: struct __uninitialized_default_1 2935449: { 2935449: template 2935449: 2935449: static void 2935449: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator> __guard(__first); 2935449: for (; __first != __last; ++__first) 2935449: std::_Construct(std::__addressof(*__first)); 2935449: __guard.release(); 2935449: } 2935449: }; 2935449: 2935449: template<> 2935449: struct __uninitialized_default_1 2935449: { 2935449: template 2935449: 2935449: static void 2935449: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 2935449: { 2935449: if (__first == __last) 2935449: return; 2935449: 2935449: typename iterator_traits<_ForwardIterator>::value_type* __val 2935449: = std::__addressof(*__first); 2935449: std::_Construct(__val); 2935449: if (++__first != __last) 2935449: std::fill(__first, __last, *__val); 2935449: } 2935449: }; 2935449: 2935449: template 2935449: struct __uninitialized_default_n_1 2935449: { 2935449: template 2935449: 2935449: static _ForwardIterator 2935449: __uninit_default_n(_ForwardIterator __first, _Size __n) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator> __guard(__first); 2935449: for (; __n > 0; --__n, (void) ++__first) 2935449: std::_Construct(std::__addressof(*__first)); 2935449: __guard.release(); 2935449: return __first; 2935449: } 2935449: }; 2935449: 2935449: template<> 2935449: struct __uninitialized_default_n_1 2935449: { 2935449: template 2935449: 2935449: static _ForwardIterator 2935449: __uninit_default_n(_ForwardIterator __first, _Size __n) 2935449: { 2935449: if (__n > 0) 2935449: { 2935449: typename iterator_traits<_ForwardIterator>::value_type* __val 2935449: = std::__addressof(*__first); 2935449: std::_Construct(__val); 2935449: ++__first; 2935449: __first = std::fill_n(__first, __n - 1, *__val); 2935449: } 2935449: return __first; 2935449: } 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: inline void 2935449: __uninitialized_default(_ForwardIterator __first, 2935449: _ForwardIterator __last) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef typename iterator_traits<_ForwardIterator>::value_type 2935449: _ValueType; 2935449: 2935449: const bool __assignable = is_copy_assignable<_ValueType>::value; 2935449: 2935449: std::__uninitialized_default_1<__is_trivial(_ValueType) 2935449: && __assignable>:: 2935449: __uninit_default(__first, __last); 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: inline _ForwardIterator 2935449: __uninitialized_default_n(_ForwardIterator __first, _Size __n) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef typename iterator_traits<_ForwardIterator>::value_type 2935449: _ValueType; 2935449: 2935449: constexpr bool __can_fill 2935449: = __and_, is_copy_assignable<_ValueType>>::value; 2935449: 2935449: return __uninitialized_default_n_1<__is_trivial(_ValueType) 2935449: && __can_fill>:: 2935449: __uninit_default_n(__first, __n); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: void 2935449: __uninitialized_default_a(_ForwardIterator __first, 2935449: _ForwardIterator __last, 2935449: _Allocator& __alloc) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__first, 2935449: __alloc); 2935449: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 2935449: for (; __first != __last; ++__first) 2935449: __traits::construct(__alloc, std::__addressof(*__first)); 2935449: __guard.release(); 2935449: } 2935449: 2935449: 2935449: template 2935449: inline void 2935449: __uninitialized_default_a(_ForwardIterator __first, 2935449: _ForwardIterator __last, 2935449: allocator<_Tp>&) 2935449: { std::__uninitialized_default(__first, __last); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: _ForwardIterator 2935449: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 2935449: _Allocator& __alloc) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__first, 2935449: __alloc); 2935449: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 2935449: for (; __n > 0; --__n, (void) ++__first) 2935449: __traits::construct(__alloc, std::__addressof(*__first)); 2935449: __guard.release(); 2935449: return __first; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: inline _ForwardIterator 2935449: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 2935449: allocator<_Tp>&) 2935449: { return std::__uninitialized_default_n(__first, __n); } 2935449: 2935449: 2935449: template 2935449: struct __uninitialized_default_novalue_1 2935449: { 2935449: template 2935449: 2935449: static void 2935449: __uninit_default_novalue(_ForwardIterator __first, 2935449: _ForwardIterator __last) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator> __guard(__first); 2935449: for (; __first != __last; ++__first) 2935449: std::_Construct_novalue(std::__addressof(*__first)); 2935449: __guard.release(); 2935449: } 2935449: }; 2935449: 2935449: template<> 2935449: struct __uninitialized_default_novalue_1 2935449: { 2935449: template 2935449: 2935449: static void 2935449: __uninit_default_novalue(_ForwardIterator, _ForwardIterator) 2935449: { 2935449: } 2935449: }; 2935449: 2935449: template 2935449: struct __uninitialized_default_novalue_n_1 2935449: { 2935449: template 2935449: 2935449: static _ForwardIterator 2935449: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator> __guard(__first); 2935449: for (; __n > 0; --__n, (void) ++__first) 2935449: std::_Construct_novalue(std::__addressof(*__first)); 2935449: __guard.release(); 2935449: return __first; 2935449: } 2935449: }; 2935449: 2935449: template<> 2935449: struct __uninitialized_default_novalue_n_1 2935449: { 2935449: template 2935449: 2935449: static _ForwardIterator 2935449: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 2935449: { return std::next(__first, __n); } 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: inline void 2935449: __uninitialized_default_novalue(_ForwardIterator __first, 2935449: _ForwardIterator __last) 2935449: { 2935449: typedef typename iterator_traits<_ForwardIterator>::value_type 2935449: _ValueType; 2935449: 2935449: std::__uninitialized_default_novalue_1< 2935449: is_trivially_default_constructible<_ValueType>::value>:: 2935449: __uninit_default_novalue(__first, __last); 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: inline _ForwardIterator 2935449: __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n) 2935449: { 2935449: typedef typename iterator_traits<_ForwardIterator>::value_type 2935449: _ValueType; 2935449: 2935449: return __uninitialized_default_novalue_n_1< 2935449: is_trivially_default_constructible<_ValueType>::value>:: 2935449: __uninit_default_novalue_n(__first, __n); 2935449: } 2935449: 2935449: template 2935449: 2935449: _ForwardIterator 2935449: __uninitialized_copy_n(_InputIterator __first, _Size __n, 2935449: _ForwardIterator __result, input_iterator_tag) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator> __guard(__result); 2935449: for (; __n > 0; --__n, (void) ++__first, ++__result) 2935449: std::_Construct(std::__addressof(*__result), *__first); 2935449: __guard.release(); 2935449: return __result; 2935449: } 2935449: 2935449: template 2935449: 2935449: inline _ForwardIterator 2935449: __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, 2935449: _ForwardIterator __result, 2935449: random_access_iterator_tag) 2935449: { return std::uninitialized_copy(__first, __first + __n, __result); } 2935449: 2935449: template 2935449: 2935449: pair<_InputIterator, _ForwardIterator> 2935449: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 2935449: _ForwardIterator __result, input_iterator_tag) 2935449: { 2935449: _UninitDestroyGuard<_ForwardIterator> __guard(__result); 2935449: for (; __n > 0; --__n, (void) ++__first, ++__result) 2935449: std::_Construct(std::__addressof(*__result), *__first); 2935449: __guard.release(); 2935449: return {__first, __result}; 2935449: } 2935449: 2935449: template 2935449: 2935449: inline pair<_RandomAccessIterator, _ForwardIterator> 2935449: __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n, 2935449: _ForwardIterator __result, 2935449: random_access_iterator_tag) 2935449: { 2935449: auto __second_res = uninitialized_copy(__first, __first + __n, __result); 2935449: auto __first_res = std::next(__first, __n); 2935449: return {__first_res, __second_res}; 2935449: } 2935449: # 1151 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: template 2935449: 2935449: inline _ForwardIterator 2935449: uninitialized_copy_n(_InputIterator __first, _Size __n, 2935449: _ForwardIterator __result) 2935449: { return std::__uninitialized_copy_n(__first, __n, __result, 2935449: std::__iterator_category(__first)); } 2935449: 2935449: 2935449: template 2935449: 2935449: inline pair<_InputIterator, _ForwardIterator> 2935449: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 2935449: _ForwardIterator __result) 2935449: { 2935449: return 2935449: std::__uninitialized_copy_n_pair(__first, __n, __result, 2935449: std::__iterator_category(__first)); 2935449: } 2935449: # 1277 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: template 2935449: 2935449: inline void 2935449: __relocate_object_a(_Tp* __restrict __dest, _Up* __restrict __orig, 2935449: _Allocator& __alloc) 2935449: noexcept(noexcept(std::allocator_traits<_Allocator>::construct(__alloc, 2935449: __dest, std::move(*__orig))) 2935449: && noexcept(std::allocator_traits<_Allocator>::destroy( 2935449: __alloc, std::__addressof(*__orig)))) 2935449: { 2935449: typedef std::allocator_traits<_Allocator> __traits; 2935449: __traits::construct(__alloc, __dest, std::move(*__orig)); 2935449: __traits::destroy(__alloc, std::__addressof(*__orig)); 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: struct __is_bitwise_relocatable 2935449: : __bool_constant<__is_trivial(_Tp)> 2935449: { }; 2935449: 2935449: template 2935449: 2935449: inline _ForwardIterator 2935449: __relocate_a_1(_InputIterator __first, _InputIterator __last, 2935449: _ForwardIterator __result, _Allocator& __alloc) 2935449: noexcept(noexcept(std::__relocate_object_a(std::addressof(*__result), 2935449: std::addressof(*__first), 2935449: __alloc))) 2935449: { 2935449: typedef typename iterator_traits<_InputIterator>::value_type 2935449: _ValueType; 2935449: typedef typename iterator_traits<_ForwardIterator>::value_type 2935449: _ValueType2; 2935449: static_assert(std::is_same<_ValueType, _ValueType2>::value, 2935449: "relocation is only possible for values of the same type"); 2935449: _ForwardIterator __cur = __result; 2935449: for (; __first != __last; ++__first, (void)++__cur) 2935449: std::__relocate_object_a(std::__addressof(*__cur), 2935449: std::__addressof(*__first), __alloc); 2935449: return __cur; 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: inline __enable_if_t::value, _Tp*> 2935449: __relocate_a_1(_Tp* __first, _Tp* __last, 2935449: _Tp* __result, 2935449: [[__maybe_unused__]] allocator<_Up>& __alloc) noexcept 2935449: { 2935449: ptrdiff_t __count = __last - __first; 2935449: if (__count > 0) 2935449: { 2935449: # 1343 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_uninitialized.h" 3 2935449: __builtin_memcpy(__result, __first, __count * sizeof(_Tp)); 2935449: } 2935449: return __result + __count; 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: inline _ForwardIterator 2935449: __relocate_a(_InputIterator __first, _InputIterator __last, 2935449: _ForwardIterator __result, _Allocator& __alloc) 2935449: noexcept(noexcept(__relocate_a_1(std::__niter_base(__first), 2935449: std::__niter_base(__last), 2935449: std::__niter_base(__result), __alloc))) 2935449: { 2935449: return std::__relocate_a_1(std::__niter_base(__first), 2935449: std::__niter_base(__last), 2935449: std::__niter_base(__result), __alloc); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 68 "/usr/arm-linux-gnueabi/include/c++/15/vector" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 1 3 2935449: # 84 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Vector_base 2935449: { 2935449: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 2935449: rebind<_Tp>::other _Tp_alloc_type; 2935449: typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer 2935449: pointer; 2935449: 2935449: struct _Vector_impl_data 2935449: { 2935449: pointer _M_start; 2935449: pointer _M_finish; 2935449: pointer _M_end_of_storage; 2935449: 2935449: 2935449: _Vector_impl_data() noexcept 2935449: : _M_start(), _M_finish(), _M_end_of_storage() 2935449: { } 2935449: 2935449: 2935449: 2935449: _Vector_impl_data(_Vector_impl_data&& __x) noexcept 2935449: : _M_start(__x._M_start), _M_finish(__x._M_finish), 2935449: _M_end_of_storage(__x._M_end_of_storage) 2935449: { __x._M_start = __x._M_finish = __x._M_end_of_storage = pointer(); } 2935449: 2935449: 2935449: 2935449: void 2935449: _M_copy_data(_Vector_impl_data const& __x) noexcept 2935449: { 2935449: _M_start = __x._M_start; 2935449: _M_finish = __x._M_finish; 2935449: _M_end_of_storage = __x._M_end_of_storage; 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_swap_data(_Vector_impl_data& __x) noexcept 2935449: { 2935449: 2935449: 2935449: _Vector_impl_data __tmp; 2935449: __tmp._M_copy_data(*this); 2935449: _M_copy_data(__x); 2935449: __x._M_copy_data(__tmp); 2935449: } 2935449: }; 2935449: 2935449: struct _Vector_impl 2935449: : public _Tp_alloc_type, public _Vector_impl_data 2935449: { 2935449: 2935449: _Vector_impl() noexcept(is_nothrow_default_constructible<_Tp_alloc_type>::value) 2935449: 2935449: 2935449: 2935449: 2935449: : _Tp_alloc_type() 2935449: { } 2935449: 2935449: 2935449: _Vector_impl(_Tp_alloc_type const& __a) noexcept 2935449: : _Tp_alloc_type(__a) 2935449: { } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: _Vector_impl(_Vector_impl&& __x) noexcept 2935449: : _Tp_alloc_type(std::move(__x)), _Vector_impl_data(std::move(__x)) 2935449: { } 2935449: 2935449: 2935449: _Vector_impl(_Tp_alloc_type&& __a) noexcept 2935449: : _Tp_alloc_type(std::move(__a)) 2935449: { } 2935449: 2935449: 2935449: _Vector_impl(_Tp_alloc_type&& __a, _Vector_impl&& __rv) noexcept 2935449: : _Tp_alloc_type(std::move(__a)), _Vector_impl_data(std::move(__rv)) 2935449: { } 2935449: # 300 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: }; 2935449: 2935449: public: 2935449: typedef _Alloc allocator_type; 2935449: 2935449: 2935449: _Tp_alloc_type& 2935449: _M_get_Tp_allocator() noexcept 2935449: { return this->_M_impl; } 2935449: 2935449: 2935449: const _Tp_alloc_type& 2935449: _M_get_Tp_allocator() const noexcept 2935449: { return this->_M_impl; } 2935449: 2935449: 2935449: allocator_type 2935449: get_allocator() const noexcept 2935449: { return allocator_type(_M_get_Tp_allocator()); } 2935449: 2935449: 2935449: _Vector_base() = default; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: _Vector_base(const allocator_type& __a) noexcept 2935449: : _M_impl(__a) { } 2935449: 2935449: 2935449: 2935449: 2935449: _Vector_base(size_t __n) 2935449: : _M_impl() 2935449: { _M_create_storage(__n); } 2935449: 2935449: 2935449: 2935449: _Vector_base(size_t __n, const allocator_type& __a) 2935449: : _M_impl(__a) 2935449: { _M_create_storage(__n); } 2935449: 2935449: 2935449: _Vector_base(_Vector_base&&) = default; 2935449: 2935449: 2935449: 2935449: 2935449: _Vector_base(_Tp_alloc_type&& __a) noexcept 2935449: : _M_impl(std::move(__a)) { } 2935449: 2935449: 2935449: _Vector_base(_Vector_base&& __x, const allocator_type& __a) 2935449: : _M_impl(__a) 2935449: { 2935449: if (__x.get_allocator() == __a) 2935449: this->_M_impl._M_swap_data(__x._M_impl); 2935449: else 2935449: { 2935449: size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; 2935449: _M_create_storage(__n); 2935449: } 2935449: } 2935449: 2935449: 2935449: 2935449: _Vector_base(const allocator_type& __a, _Vector_base&& __x) 2935449: : _M_impl(_Tp_alloc_type(__a), std::move(__x._M_impl)) 2935449: { } 2935449: 2935449: 2935449: 2935449: ~_Vector_base() noexcept 2935449: { 2935449: _M_deallocate(_M_impl._M_start, 2935449: _M_impl._M_end_of_storage - _M_impl._M_start); 2935449: } 2935449: 2935449: public: 2935449: _Vector_impl _M_impl; 2935449: 2935449: 2935449: pointer 2935449: _M_allocate(size_t __n) 2935449: { 2935449: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 2935449: return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_deallocate(pointer __p, size_t __n) 2935449: { 2935449: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 2935449: if (__p) 2935449: _Tr::deallocate(_M_impl, __p, __n); 2935449: } 2935449: 2935449: protected: 2935449: 2935449: 2935449: void 2935449: _M_create_storage(size_t __n) 2935449: { 2935449: this->_M_impl._M_start = this->_M_allocate(__n); 2935449: this->_M_impl._M_finish = this->_M_impl._M_start; 2935449: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 2935449: } 2935449: # 432 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: }; 2935449: # 457 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: template > 2935449: class vector : protected _Vector_base<_Tp, _Alloc> 2935449: { 2935449: # 470 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: static_assert(is_same::type, _Tp>::value, 2935449: "std::vector must have a non-const, non-volatile value_type"); 2935449: 2935449: static_assert(is_same::value, 2935449: "std::vector must have the same value_type as its allocator"); 2935449: 2935449: 2935449: 2935449: typedef _Vector_base<_Tp, _Alloc> _Base; 2935449: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 2935449: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 2935449: 2935449: public: 2935449: typedef _Tp value_type; 2935449: typedef typename _Base::pointer pointer; 2935449: typedef typename _Alloc_traits::const_pointer const_pointer; 2935449: typedef typename _Alloc_traits::reference reference; 2935449: typedef typename _Alloc_traits::const_reference const_reference; 2935449: typedef __gnu_cxx::__normal_iterator iterator; 2935449: typedef __gnu_cxx::__normal_iterator 2935449: const_iterator; 2935449: typedef std::reverse_iterator const_reverse_iterator; 2935449: typedef std::reverse_iterator reverse_iterator; 2935449: typedef size_t size_type; 2935449: typedef ptrdiff_t difference_type; 2935449: typedef _Alloc allocator_type; 2935449: 2935449: private: 2935449: 2935449: static constexpr bool 2935449: _S_nothrow_relocate(true_type) 2935449: { 2935449: return noexcept(std::__relocate_a(std::declval(), 2935449: std::declval(), 2935449: std::declval(), 2935449: std::declval<_Tp_alloc_type&>())); 2935449: } 2935449: 2935449: static constexpr bool 2935449: _S_nothrow_relocate(false_type) 2935449: { return false; } 2935449: 2935449: static constexpr bool 2935449: _S_use_relocate() 2935449: { 2935449: 2935449: 2935449: 2935449: return _S_nothrow_relocate(__is_move_insertable<_Tp_alloc_type>{}); 2935449: } 2935449: 2935449: static pointer 2935449: _S_do_relocate(pointer __first, pointer __last, pointer __result, 2935449: _Tp_alloc_type& __alloc, true_type) noexcept 2935449: { 2935449: return std::__relocate_a(__first, __last, __result, __alloc); 2935449: } 2935449: 2935449: static pointer 2935449: _S_do_relocate(pointer, pointer, pointer __result, 2935449: _Tp_alloc_type&, false_type) noexcept 2935449: { return __result; } 2935449: 2935449: static pointer 2935449: _S_relocate(pointer __first, pointer __last, pointer __result, 2935449: _Tp_alloc_type& __alloc) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: using __do_it = __bool_constant<_S_use_relocate()>; 2935449: return _S_do_relocate(__first, __last, __result, __alloc, __do_it{}); 2935449: 2935449: } 2935449: 2935449: 2935449: protected: 2935449: using _Base::_M_allocate; 2935449: using _Base::_M_deallocate; 2935449: using _Base::_M_impl; 2935449: using _Base::_M_get_Tp_allocator; 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: vector() = default; 2935449: # 570 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: explicit 2935449: 2935449: vector(const allocator_type& __a) noexcept 2935449: : _Base(__a) { } 2935449: # 584 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: explicit 2935449: 2935449: vector(size_type __n, const allocator_type& __a = allocator_type()) 2935449: : _Base(_S_check_init_len(__n, __a), __a) 2935449: { _M_default_initialize(__n); } 2935449: # 598 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: vector(size_type __n, const value_type& __value, 2935449: const allocator_type& __a = allocator_type()) 2935449: : _Base(_S_check_init_len(__n, __a), __a) 2935449: { _M_fill_initialize(__n, __value); } 2935449: # 630 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: vector(const vector& __x) 2935449: : _Base(__x.size(), 2935449: _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) 2935449: { 2935449: this->_M_impl._M_finish = 2935449: std::__uninitialized_copy_a(__x.begin(), __x.end(), 2935449: this->_M_impl._M_start, 2935449: _M_get_Tp_allocator()); 2935449: } 2935449: # 650 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: vector(vector&&) noexcept = default; 2935449: 2935449: 2935449: 2935449: vector(const vector& __x, const __type_identity_t& __a) 2935449: : _Base(__x.size(), __a) 2935449: { 2935449: this->_M_impl._M_finish = 2935449: std::__uninitialized_copy_a(__x.begin(), __x.end(), 2935449: this->_M_impl._M_start, 2935449: _M_get_Tp_allocator()); 2935449: } 2935449: 2935449: private: 2935449: 2935449: vector(vector&& __rv, const allocator_type& __m, true_type) noexcept 2935449: : _Base(__m, std::move(__rv)) 2935449: { } 2935449: 2935449: 2935449: vector(vector&& __rv, const allocator_type& __m, false_type) 2935449: : _Base(__m) 2935449: { 2935449: if (__rv.get_allocator() == __m) 2935449: this->_M_impl._M_swap_data(__rv._M_impl); 2935449: else if (!__rv.empty()) 2935449: { 2935449: this->_M_create_storage(__rv.size()); 2935449: this->_M_impl._M_finish = 2935449: std::__uninitialized_move_a(__rv.begin(), __rv.end(), 2935449: this->_M_impl._M_start, 2935449: _M_get_Tp_allocator()); 2935449: __rv.clear(); 2935449: } 2935449: } 2935449: 2935449: public: 2935449: 2935449: 2935449: vector(vector&& __rv, const __type_identity_t& __m) 2935449: noexcept( noexcept( 2935449: vector(std::declval(), std::declval(), 2935449: std::declval())) ) 2935449: : vector(std::move(__rv), __m, typename _Alloc_traits::is_always_equal{}) 2935449: { } 2935449: # 707 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: vector(initializer_list __l, 2935449: const allocator_type& __a = allocator_type()) 2935449: : _Base(__a) 2935449: { 2935449: _M_range_initialize_n(__l.begin(), __l.end(), __l.size()); 2935449: } 2935449: # 733 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: template> 2935449: 2935449: vector(_InputIterator __first, _InputIterator __last, 2935449: const allocator_type& __a = allocator_type()) 2935449: : _Base(__a) 2935449: { 2935449: # 751 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: _M_range_initialize(__first, __last, 2935449: std::__iterator_category(__first)); 2935449: } 2935449: # 799 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: ~vector() noexcept 2935449: { 2935449: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 2935449: _M_get_Tp_allocator()); 2935449: ; 2935449: } 2935449: # 816 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: vector& 2935449: operator=(const vector& __x); 2935449: # 831 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: vector& 2935449: operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) 2935449: { 2935449: constexpr bool __move_storage = 2935449: _Alloc_traits::_S_propagate_on_move_assign() 2935449: || _Alloc_traits::_S_always_equal(); 2935449: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 2935449: return *this; 2935449: } 2935449: # 853 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: vector& 2935449: operator=(initializer_list __l) 2935449: { 2935449: this->_M_assign_aux(__l.begin(), __l.end(), 2935449: random_access_iterator_tag()); 2935449: return *this; 2935449: } 2935449: # 873 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: void 2935449: assign(size_type __n, const value_type& __val) 2935449: { _M_fill_assign(__n, __val); } 2935449: # 891 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: template> 2935449: 2935449: void 2935449: assign(_InputIterator __first, _InputIterator __last) 2935449: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 2935449: # 920 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: void 2935449: assign(initializer_list __l) 2935449: { 2935449: this->_M_assign_aux(__l.begin(), __l.end(), 2935449: random_access_iterator_tag()); 2935449: } 2935449: # 988 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: using _Base::get_allocator; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: iterator 2935449: begin() noexcept 2935449: { return iterator(this->_M_impl._M_start); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_iterator 2935449: begin() const noexcept 2935449: { return const_iterator(this->_M_impl._M_start); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: iterator 2935449: end() noexcept 2935449: { return iterator(this->_M_impl._M_finish); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_iterator 2935449: end() const noexcept 2935449: { return const_iterator(this->_M_impl._M_finish); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: reverse_iterator 2935449: rbegin() noexcept 2935449: { return reverse_iterator(end()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_reverse_iterator 2935449: rbegin() const noexcept 2935449: { return const_reverse_iterator(end()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: reverse_iterator 2935449: rend() noexcept 2935449: { return reverse_iterator(begin()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_reverse_iterator 2935449: rend() const noexcept 2935449: { return const_reverse_iterator(begin()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_iterator 2935449: cbegin() const noexcept 2935449: { return const_iterator(this->_M_impl._M_start); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_iterator 2935449: cend() const noexcept 2935449: { return const_iterator(this->_M_impl._M_finish); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_reverse_iterator 2935449: crbegin() const noexcept 2935449: { return const_reverse_iterator(end()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_reverse_iterator 2935449: crend() const noexcept 2935449: { return const_reverse_iterator(begin()); } 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: size_type 2935449: size() const noexcept 2935449: { 2935449: ptrdiff_t __dif = this->_M_impl._M_finish - this->_M_impl._M_start; 2935449: if (__dif < 0) 2935449: __builtin_unreachable (); 2935449: return size_type(__dif); 2935449: } 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: size_type 2935449: max_size() const noexcept 2935449: { return _S_max_size(_M_get_Tp_allocator()); } 2935449: # 1141 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: void 2935449: resize(size_type __new_size) 2935449: { 2935449: if (__new_size > size()) 2935449: _M_default_append(__new_size - size()); 2935449: else if (__new_size < size()) 2935449: _M_erase_at_end(this->_M_impl._M_start + __new_size); 2935449: } 2935449: # 1162 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: void 2935449: resize(size_type __new_size, const value_type& __x) 2935449: { 2935449: if (__new_size > size()) 2935449: _M_fill_insert(end(), __new_size - size(), __x); 2935449: else if (__new_size < size()) 2935449: _M_erase_at_end(this->_M_impl._M_start + __new_size); 2935449: } 2935449: # 1196 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: void 2935449: shrink_to_fit() 2935449: { _M_shrink_to_fit(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: size_type 2935449: capacity() const noexcept 2935449: { 2935449: ptrdiff_t __dif = this->_M_impl._M_end_of_storage 2935449: - this->_M_impl._M_start; 2935449: if (__dif < 0) 2935449: __builtin_unreachable (); 2935449: return size_type(__dif); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: bool 2935449: empty() const noexcept 2935449: { return begin() == end(); } 2935449: # 1243 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: void 2935449: reserve(size_type __n); 2935449: # 1259 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: [[__nodiscard__]] 2935449: reference 2935449: operator[](size_type __n) noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__n < this->size())) std::__glibcxx_assert_fail(); } while (false); 2935449: return *(this->_M_impl._M_start + __n); 2935449: } 2935449: # 1278 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: operator[](size_type __n) const noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__n < this->size())) std::__glibcxx_assert_fail(); } while (false); 2935449: return *(this->_M_impl._M_start + __n); 2935449: } 2935449: 2935449: protected: 2935449: 2935449: 2935449: void 2935449: _M_range_check(size_type __n) const 2935449: { 2935449: if (__n >= this->size()) 2935449: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 2935449: 2935449: , 2935449: __n, this->size()); 2935449: } 2935449: 2935449: public: 2935449: # 1311 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: [[__nodiscard__]] 2935449: reference 2935449: at(size_type __n) 2935449: { 2935449: _M_range_check(__n); 2935449: return (*this)[__n]; 2935449: } 2935449: # 1330 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: at(size_type __n) const 2935449: { 2935449: _M_range_check(__n); 2935449: return (*this)[__n]; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: reference 2935449: front() noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: return *begin(); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: front() const noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: return *begin(); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: reference 2935449: back() noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: return *(end() - 1); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: back() const noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: return *(end() - 1); 2935449: } 2935449: # 1393 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: [[__nodiscard__]] 2935449: _Tp* 2935449: data() noexcept 2935449: { return _M_data_ptr(this->_M_impl._M_start); } 2935449: 2935449: [[__nodiscard__]] 2935449: const _Tp* 2935449: data() const noexcept 2935449: { return _M_data_ptr(this->_M_impl._M_start); } 2935449: # 1414 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: void 2935449: push_back(const value_type& __x) 2935449: { 2935449: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 2935449: { 2935449: ; 2935449: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 2935449: __x); 2935449: ++this->_M_impl._M_finish; 2935449: ; 2935449: } 2935449: else 2935449: _M_realloc_append(__x); 2935449: } 2935449: 2935449: 2935449: 2935449: void 2935449: push_back(value_type&& __x) 2935449: { emplace_back(std::move(__x)); } 2935449: 2935449: template 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: 2935449: emplace_back(_Args&&... __args); 2935449: # 1455 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: void 2935449: pop_back() noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: --this->_M_impl._M_finish; 2935449: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 2935449: ; 2935449: } 2935449: # 1478 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: template 2935449: 2935449: iterator 2935449: emplace(const_iterator __position, _Args&&... __args) 2935449: { return _M_emplace_aux(__position, std::forward<_Args>(__args)...); } 2935449: # 1495 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: iterator 2935449: insert(const_iterator __position, const value_type& __x); 2935449: # 1526 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: iterator 2935449: insert(const_iterator __position, value_type&& __x) 2935449: { return _M_insert_rval(__position, std::move(__x)); } 2935449: # 1544 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: iterator 2935449: insert(const_iterator __position, initializer_list __l) 2935449: { 2935449: auto __offset = __position - cbegin(); 2935449: _M_range_insert(begin() + __offset, __l.begin(), __l.end(), 2935449: std::random_access_iterator_tag()); 2935449: return begin() + __offset; 2935449: } 2935449: # 1570 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: iterator 2935449: insert(const_iterator __position, size_type __n, const value_type& __x) 2935449: { 2935449: difference_type __offset = __position - cbegin(); 2935449: _M_fill_insert(begin() + __offset, __n, __x); 2935449: return begin() + __offset; 2935449: } 2935449: # 1613 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: template> 2935449: 2935449: iterator 2935449: insert(const_iterator __position, _InputIterator __first, 2935449: _InputIterator __last) 2935449: { 2935449: difference_type __offset = __position - cbegin(); 2935449: _M_range_insert(begin() + __offset, __first, __last, 2935449: std::__iterator_category(__first)); 2935449: return begin() + __offset; 2935449: } 2935449: # 1789 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: iterator 2935449: 2935449: erase(const_iterator __position) 2935449: { return _M_erase(begin() + (__position - cbegin())); } 2935449: # 1817 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: iterator 2935449: 2935449: erase(const_iterator __first, const_iterator __last) 2935449: { 2935449: const auto __beg = begin(); 2935449: const auto __cbeg = cbegin(); 2935449: return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg)); 2935449: } 2935449: # 1842 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: void 2935449: swap(vector& __x) noexcept 2935449: { 2935449: 2935449: do { if (std::__is_constant_evaluated() && !bool(_Alloc_traits::propagate_on_container_swap::value || _M_get_Tp_allocator() == __x._M_get_Tp_allocator())) std::__glibcxx_assert_fail(); } while (false) 2935449: ; 2935449: 2935449: this->_M_impl._M_swap_data(__x._M_impl); 2935449: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 2935449: __x._M_get_Tp_allocator()); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: clear() noexcept 2935449: { _M_erase_at_end(this->_M_impl._M_start); } 2935449: 2935449: private: 2935449: 2935449: struct _Guard_alloc 2935449: { 2935449: pointer _M_storage; 2935449: size_type _M_len; 2935449: _Base& _M_vect; 2935449: 2935449: 2935449: _Guard_alloc(pointer __s, size_type __l, _Base& __vect) 2935449: : _M_storage(__s), _M_len(__l), _M_vect(__vect) 2935449: { } 2935449: 2935449: 2935449: ~_Guard_alloc() 2935449: { 2935449: if (_M_storage) 2935449: _M_vect._M_deallocate(_M_storage, _M_len); 2935449: } 2935449: 2935449: 2935449: pointer 2935449: _M_release() 2935449: { 2935449: pointer __res = _M_storage; 2935449: _M_storage = pointer(); 2935449: return __res; 2935449: } 2935449: 2935449: private: 2935449: _Guard_alloc(const _Guard_alloc&); 2935449: }; 2935449: 2935449: protected: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: pointer 2935449: _M_allocate_and_copy(size_type __n, 2935449: _ForwardIterator __first, _ForwardIterator __last) 2935449: { 2935449: _Guard_alloc __guard(this->_M_allocate(__n), __n, *this); 2935449: std::__uninitialized_copy_a 2935449: (__first, __last, __guard._M_storage, _M_get_Tp_allocator()); 2935449: return __guard._M_release(); 2935449: } 2935449: # 1948 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: template 2935449: 2935449: void 2935449: _M_range_initialize(_InputIterator __first, _InputIterator __last, 2935449: std::input_iterator_tag) 2935449: { 2935449: if (true) { 2935449: for (; __first != __last; ++__first) 2935449: 2935449: emplace_back(*__first); 2935449: 2935449: 2935449: 2935449: } if (false) { 2935449: clear(); 2935449: ; 2935449: } 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, 2935449: std::forward_iterator_tag) 2935449: { 2935449: _M_range_initialize_n(__first, __last, 2935449: std::distance(__first, __last)); 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_range_initialize_n(_Iterator __first, _Sentinel __last, 2935449: size_type __n) 2935449: { 2935449: pointer __start = 2935449: this->_M_allocate(_S_check_init_len(__n, _M_get_Tp_allocator())); 2935449: this->_M_impl._M_start = this->_M_impl._M_finish = __start; 2935449: this->_M_impl._M_end_of_storage = __start + __n; 2935449: this->_M_impl._M_finish 2935449: = std::__uninitialized_copy_a(std::move(__first), __last, 2935449: __start, _M_get_Tp_allocator()); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: _M_fill_initialize(size_type __n, const value_type& __value) 2935449: { 2935449: this->_M_impl._M_finish = 2935449: std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, 2935449: _M_get_Tp_allocator()); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: _M_default_initialize(size_type __n) 2935449: { 2935449: this->_M_impl._M_finish = 2935449: std::__uninitialized_default_n_a(this->_M_impl._M_start, __n, 2935449: _M_get_Tp_allocator()); 2935449: } 2935449: # 2023 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: template 2935449: 2935449: void 2935449: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 2935449: { _M_fill_assign(__n, __val); } 2935449: 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 2935449: __false_type) 2935449: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 2935449: 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_assign_aux(_InputIterator __first, _InputIterator __last, 2935449: std::input_iterator_tag); 2935449: 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 2935449: std::forward_iterator_tag); 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: _M_fill_assign(size_type __n, const value_type& __val); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, 2935449: __true_type) 2935449: { _M_fill_insert(__pos, __n, __val); } 2935449: 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_insert_dispatch(iterator __pos, _InputIterator __first, 2935449: _InputIterator __last, __false_type) 2935449: { 2935449: _M_range_insert(__pos, __first, __last, 2935449: std::__iterator_category(__first)); 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_range_insert(iterator __pos, _InputIterator __first, 2935449: _InputIterator __last, std::input_iterator_tag); 2935449: 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_range_insert(iterator __pos, _ForwardIterator __first, 2935449: _ForwardIterator __last, std::forward_iterator_tag); 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: _M_default_append(size_type __n); 2935449: 2935449: 2935449: bool 2935449: _M_shrink_to_fit(); 2935449: # 2125 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: struct _Temporary_value 2935449: { 2935449: template 2935449: explicit 2935449: _Temporary_value(vector* __vec, _Args&&... __args) : _M_this(__vec) 2935449: { 2935449: _Alloc_traits::construct(_M_this->_M_impl, _M_ptr(), 2935449: std::forward<_Args>(__args)...); 2935449: } 2935449: 2935449: 2935449: ~_Temporary_value() 2935449: { _Alloc_traits::destroy(_M_this->_M_impl, _M_ptr()); } 2935449: 2935449: value_type& 2935449: _M_val() noexcept { return _M_storage._M_val; } 2935449: 2935449: private: 2935449: _Tp* 2935449: _M_ptr() noexcept { return std::__addressof(_M_storage._M_val); } 2935449: 2935449: union _Storage 2935449: { 2935449: constexpr _Storage() : _M_byte() { } 2935449: ~_Storage() { } 2935449: _Storage& operator=(const _Storage&) = delete; 2935449: unsigned char _M_byte; 2935449: _Tp _M_val; 2935449: }; 2935449: 2935449: vector* _M_this; 2935449: _Storage _M_storage; 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_insert_aux(iterator __position, _Arg&& __arg); 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_realloc_insert(iterator __position, _Args&&... __args); 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_realloc_append(_Args&&... __args); 2935449: 2935449: 2935449: 2935449: iterator 2935449: _M_insert_rval(const_iterator __position, value_type&& __v); 2935449: 2935449: 2935449: template 2935449: 2935449: iterator 2935449: _M_emplace_aux(const_iterator __position, _Args&&... __args); 2935449: 2935449: 2935449: 2935449: iterator 2935449: _M_emplace_aux(const_iterator __position, value_type&& __v) 2935449: { return _M_insert_rval(__position, std::move(__v)); } 2935449: 2935449: 2935449: 2935449: 2935449: size_type 2935449: _M_check_len(size_type __n, const char* __s) const 2935449: { 2935449: if (max_size() - size() < __n) 2935449: __throw_length_error((__s)); 2935449: 2935449: const size_type __len = size() + (std::max)(size(), __n); 2935449: return (__len < size() || __len > max_size()) ? max_size() : __len; 2935449: } 2935449: 2935449: 2935449: static size_type 2935449: _S_check_init_len(size_type __n, const allocator_type& __a) 2935449: { 2935449: if (__n > _S_max_size(_Tp_alloc_type(__a))) 2935449: __throw_length_error( 2935449: ("cannot create std::vector larger than max_size()")); 2935449: return __n; 2935449: } 2935449: 2935449: static size_type 2935449: _S_max_size(const _Tp_alloc_type& __a) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: const size_t __diffmax 2935449: = __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 2935449: const size_t __allocmax = _Alloc_traits::max_size(__a); 2935449: return (std::min)(__diffmax, __allocmax); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: _M_erase_at_end(pointer __pos) noexcept 2935449: { 2935449: if (size_type __n = this->_M_impl._M_finish - __pos) 2935449: { 2935449: std::_Destroy(__pos, this->_M_impl._M_finish, 2935449: _M_get_Tp_allocator()); 2935449: this->_M_impl._M_finish = __pos; 2935449: ; 2935449: } 2935449: } 2935449: 2935449: 2935449: iterator 2935449: _M_erase(iterator __position); 2935449: 2935449: 2935449: iterator 2935449: _M_erase(iterator __first, iterator __last); 2935449: 2935449: 2935449: private: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: _M_move_assign(vector&& __x, true_type) noexcept 2935449: { 2935449: vector __tmp(get_allocator()); 2935449: this->_M_impl._M_swap_data(__x._M_impl); 2935449: __tmp._M_impl._M_swap_data(__x._M_impl); 2935449: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: _M_move_assign(vector&& __x, false_type) 2935449: { 2935449: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 2935449: _M_move_assign(std::move(__x), true_type()); 2935449: else 2935449: { 2935449: 2935449: 2935449: this->_M_assign_aux(std::make_move_iterator(__x.begin()), 2935449: std::make_move_iterator(__x.end()), 2935449: std::random_access_iterator_tag()); 2935449: __x.clear(); 2935449: } 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: _Up* 2935449: _M_data_ptr(_Up* __ptr) const noexcept 2935449: { return __ptr; } 2935449: 2935449: 2935449: template 2935449: 2935449: typename std::pointer_traits<_Ptr>::element_type* 2935449: _M_data_ptr(_Ptr __ptr) const 2935449: { return empty() ? nullptr : std::__to_address(__ptr); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: # 2335 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline bool 2935449: operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 2935449: { return (__x.size() == __y.size() 2935449: && std::equal(__x.begin(), __x.end(), __y.begin())); } 2935449: # 2375 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: template 2935449: [[__nodiscard__]] inline bool 2935449: operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 2935449: { return std::lexicographical_compare(__x.begin(), __x.end(), 2935449: __y.begin(), __y.end()); } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] inline bool 2935449: operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 2935449: { return !(__x == __y); } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] inline bool 2935449: operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 2935449: { return __y < __x; } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] inline bool 2935449: operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 2935449: { return !(__y < __x); } 2935449: 2935449: 2935449: template 2935449: [[__nodiscard__]] inline bool 2935449: operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 2935449: { return !(__x < __y); } 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: inline void 2935449: swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) 2935449: noexcept(noexcept(__x.swap(__y))) 2935449: { __x.swap(__y); } 2935449: 2935449: 2935449: # 2430 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_vector.h" 3 2935449: 2935449: } 2935449: # 69 "/usr/arm-linux-gnueabi/include/c++/15/vector" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 1 3 2935449: # 68 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: typedef unsigned long _Bit_type; 2935449: enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; 2935449: 2935449: __attribute__((__nonnull__)) 2935449: 2935449: void 2935449: __fill_bvector_n(_Bit_type*, size_t, bool) noexcept; 2935449: 2935449: 2935449: 2935449: struct _Bit_reference 2935449: { 2935449: private: 2935449: template friend class vector; 2935449: friend struct _Bit_iterator; 2935449: friend struct _Bit_const_iterator; 2935449: 2935449: 2935449: _Bit_reference() noexcept : _M_p(0), _M_mask(0) { } 2935449: 2935449: _Bit_type * _M_p; 2935449: _Bit_type _M_mask; 2935449: 2935449: 2935449: _Bit_reference(_Bit_type * __x, _Bit_type __y) 2935449: : _M_p(__x), _M_mask(__y) { } 2935449: 2935449: public: 2935449: 2935449: _Bit_reference(const _Bit_reference&) = default; 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: operator bool() const noexcept 2935449: { return !!(*_M_p & _M_mask); } 2935449: 2935449: 2935449: _Bit_reference& 2935449: operator=(bool __x) noexcept 2935449: { 2935449: if (__x) 2935449: *_M_p |= _M_mask; 2935449: else 2935449: *_M_p &= ~_M_mask; 2935449: return *this; 2935449: } 2935449: # 131 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: 2935449: _Bit_reference& 2935449: operator=(const _Bit_reference& __x) noexcept 2935449: { return *this = bool(__x); } 2935449: 2935449: [[__nodiscard__]] 2935449: bool 2935449: operator==(const _Bit_reference& __x) const 2935449: { return bool(*this) == bool(__x); } 2935449: 2935449: [[__nodiscard__]] 2935449: bool 2935449: operator<(const _Bit_reference& __x) const 2935449: { return !bool(*this) && bool(__x); } 2935449: 2935449: 2935449: void 2935449: flip() noexcept 2935449: { *_M_p ^= _M_mask; } 2935449: 2935449: 2935449: 2935449: friend void 2935449: swap(_Bit_reference __x, _Bit_reference __y) noexcept 2935449: { 2935449: bool __tmp = __x; 2935449: __x = __y; 2935449: __y = __tmp; 2935449: } 2935449: 2935449: 2935449: friend void 2935449: swap(_Bit_reference __x, bool& __y) noexcept 2935449: { 2935449: bool __tmp = __x; 2935449: __x = __y; 2935449: __y = __tmp; 2935449: } 2935449: 2935449: 2935449: friend void 2935449: swap(bool& __x, _Bit_reference __y) noexcept 2935449: { 2935449: bool __tmp = __x; 2935449: __x = __y; 2935449: __y = __tmp; 2935449: } 2935449: 2935449: }; 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: struct _Bit_iterator_base 2935449: : public std::iterator 2935449: { 2935449: _Bit_type * _M_p; 2935449: unsigned int _M_offset; 2935449: 2935449: inline __attribute__((__always_inline__)) 2935449: void 2935449: _M_assume_normalized() const 2935449: { 2935449: 2935449: unsigned int __ofst = _M_offset; 2935449: __attribute__ ((__assume__ (__ofst < unsigned(_S_word_bit)))); 2935449: 2935449: } 2935449: 2935449: 2935449: _Bit_iterator_base(_Bit_type * __x, unsigned int __y) 2935449: : _M_p(__x), _M_offset(__y) { } 2935449: 2935449: 2935449: void 2935449: _M_bump_up() 2935449: { 2935449: _M_assume_normalized(); 2935449: if (_M_offset++ == int(_S_word_bit) - 1) 2935449: { 2935449: _M_offset = 0; 2935449: ++_M_p; 2935449: } 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_bump_down() 2935449: { 2935449: _M_assume_normalized(); 2935449: if (_M_offset-- == 0) 2935449: { 2935449: _M_offset = int(_S_word_bit) - 1; 2935449: --_M_p; 2935449: } 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_incr(ptrdiff_t __i) 2935449: { 2935449: _M_assume_normalized(); 2935449: difference_type __n = __i + _M_offset; 2935449: _M_p += __n / int(_S_word_bit); 2935449: __n = __n % int(_S_word_bit); 2935449: if (__n < 0) 2935449: { 2935449: __n += int(_S_word_bit); 2935449: --_M_p; 2935449: } 2935449: _M_offset = static_cast(__n); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: friend bool 2935449: operator==(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 2935449: { 2935449: __x._M_assume_normalized(); 2935449: __y._M_assume_normalized(); 2935449: return __x._M_p == __y._M_p && __x._M_offset == __y._M_offset; 2935449: } 2935449: # 266 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: [[__nodiscard__]] 2935449: friend bool 2935449: operator<(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 2935449: { 2935449: __x._M_assume_normalized(); 2935449: __y._M_assume_normalized(); 2935449: return __x._M_p < __y._M_p 2935449: || (__x._M_p == __y._M_p && __x._M_offset < __y._M_offset); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: friend bool 2935449: operator!=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 2935449: { return !(__x == __y); } 2935449: 2935449: [[__nodiscard__]] 2935449: friend bool 2935449: operator>(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 2935449: { return __y < __x; } 2935449: 2935449: [[__nodiscard__]] 2935449: friend bool 2935449: operator<=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 2935449: { return !(__y < __x); } 2935449: 2935449: [[__nodiscard__]] 2935449: friend bool 2935449: operator>=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 2935449: { return !(__x < __y); } 2935449: 2935449: 2935449: friend ptrdiff_t 2935449: operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 2935449: { 2935449: __x._M_assume_normalized(); 2935449: __y._M_assume_normalized(); 2935449: return (int(_S_word_bit) * (__x._M_p - __y._M_p) 2935449: + __x._M_offset - __y._M_offset); 2935449: } 2935449: }; 2935449: #pragma GCC diagnostic pop 2935449: 2935449: struct _Bit_iterator : public _Bit_iterator_base 2935449: { 2935449: typedef _Bit_reference reference; 2935449: 2935449: 2935449: 2935449: typedef _Bit_reference* pointer; 2935449: 2935449: typedef _Bit_iterator iterator; 2935449: 2935449: 2935449: _Bit_iterator() : _Bit_iterator_base(0, 0) { } 2935449: 2935449: 2935449: _Bit_iterator(_Bit_type * __x, unsigned int __y) 2935449: : _Bit_iterator_base(__x, __y) { } 2935449: 2935449: 2935449: iterator 2935449: _M_const_cast() const 2935449: { return *this; } 2935449: 2935449: [[__nodiscard__]] 2935449: reference 2935449: operator*() const 2935449: { 2935449: _M_assume_normalized(); 2935449: return reference(_M_p, 1UL << _M_offset); 2935449: } 2935449: 2935449: 2935449: iterator& 2935449: operator++() 2935449: { 2935449: _M_bump_up(); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: iterator 2935449: operator++(int) 2935449: { 2935449: iterator __tmp = *this; 2935449: _M_bump_up(); 2935449: return __tmp; 2935449: } 2935449: 2935449: 2935449: iterator& 2935449: operator--() 2935449: { 2935449: _M_bump_down(); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: iterator 2935449: operator--(int) 2935449: { 2935449: iterator __tmp = *this; 2935449: _M_bump_down(); 2935449: return __tmp; 2935449: } 2935449: 2935449: 2935449: iterator& 2935449: operator+=(difference_type __i) 2935449: { 2935449: _M_incr(__i); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: iterator& 2935449: operator-=(difference_type __i) 2935449: { 2935449: *this += -__i; 2935449: return *this; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: reference 2935449: operator[](difference_type __i) const 2935449: { return *(*this + __i); } 2935449: 2935449: [[__nodiscard__]] 2935449: friend iterator 2935449: operator+(const iterator& __x, difference_type __n) 2935449: { 2935449: iterator __tmp = __x; 2935449: __tmp += __n; 2935449: return __tmp; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: friend iterator 2935449: operator+(difference_type __n, const iterator& __x) 2935449: { return __x + __n; } 2935449: 2935449: [[__nodiscard__]] 2935449: friend iterator 2935449: operator-(const iterator& __x, difference_type __n) 2935449: { 2935449: iterator __tmp = __x; 2935449: __tmp -= __n; 2935449: return __tmp; 2935449: } 2935449: }; 2935449: 2935449: struct _Bit_const_iterator : public _Bit_iterator_base 2935449: { 2935449: typedef bool reference; 2935449: typedef bool const_reference; 2935449: 2935449: 2935449: 2935449: typedef const bool* pointer; 2935449: 2935449: typedef _Bit_const_iterator const_iterator; 2935449: 2935449: 2935449: _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } 2935449: 2935449: 2935449: _Bit_const_iterator(_Bit_type * __x, unsigned int __y) 2935449: : _Bit_iterator_base(__x, __y) { } 2935449: 2935449: 2935449: _Bit_const_iterator(const _Bit_iterator& __x) 2935449: : _Bit_iterator_base(__x._M_p, __x._M_offset) { } 2935449: 2935449: 2935449: _Bit_iterator 2935449: _M_const_cast() const 2935449: { return _Bit_iterator(_M_p, _M_offset); } 2935449: 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: operator*() const 2935449: { 2935449: _M_assume_normalized(); 2935449: return _Bit_reference(_M_p, 1UL << _M_offset); 2935449: } 2935449: 2935449: 2935449: const_iterator& 2935449: operator++() 2935449: { 2935449: _M_bump_up(); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: const_iterator 2935449: operator++(int) 2935449: { 2935449: const_iterator __tmp = *this; 2935449: _M_bump_up(); 2935449: return __tmp; 2935449: } 2935449: 2935449: 2935449: const_iterator& 2935449: operator--() 2935449: { 2935449: _M_bump_down(); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: const_iterator 2935449: operator--(int) 2935449: { 2935449: const_iterator __tmp = *this; 2935449: _M_bump_down(); 2935449: return __tmp; 2935449: } 2935449: 2935449: 2935449: const_iterator& 2935449: operator+=(difference_type __i) 2935449: { 2935449: _M_incr(__i); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: const_iterator& 2935449: operator-=(difference_type __i) 2935449: { 2935449: *this += -__i; 2935449: return *this; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: operator[](difference_type __i) const 2935449: { return *(*this + __i); } 2935449: 2935449: [[__nodiscard__]] 2935449: friend const_iterator 2935449: operator+(const const_iterator& __x, difference_type __n) 2935449: { 2935449: const_iterator __tmp = __x; 2935449: __tmp += __n; 2935449: return __tmp; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: friend const_iterator 2935449: operator-(const const_iterator& __x, difference_type __n) 2935449: { 2935449: const_iterator __tmp = __x; 2935449: __tmp -= __n; 2935449: return __tmp; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: friend const_iterator 2935449: operator+(difference_type __n, const const_iterator& __x) 2935449: { return __x + __n; } 2935449: }; 2935449: 2935449: template 2935449: struct _Bvector_base 2935449: { 2935449: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 2935449: rebind<_Bit_type>::other _Bit_alloc_type; 2935449: typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> 2935449: _Bit_alloc_traits; 2935449: typedef typename _Bit_alloc_traits::pointer _Bit_pointer; 2935449: 2935449: struct _Bvector_impl_data 2935449: { 2935449: 2935449: _Bit_iterator _M_start; 2935449: # 553 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: _Bit_iterator _M_finish; 2935449: _Bit_pointer _M_end_of_storage; 2935449: 2935449: 2935449: _Bvector_impl_data() noexcept 2935449: : _M_start(), _M_finish(), _M_end_of_storage() 2935449: { } 2935449: 2935449: 2935449: _Bvector_impl_data(const _Bvector_impl_data&) = default; 2935449: 2935449: _Bvector_impl_data& 2935449: operator=(const _Bvector_impl_data&) = default; 2935449: 2935449: 2935449: _Bvector_impl_data(_Bvector_impl_data&& __x) noexcept 2935449: : _Bvector_impl_data(__x) 2935449: { __x._M_reset(); } 2935449: 2935449: 2935449: void 2935449: _M_move_data(_Bvector_impl_data&& __x) noexcept 2935449: { 2935449: *this = __x; 2935449: __x._M_reset(); 2935449: } 2935449: 2935449: 2935449: 2935449: void 2935449: _M_reset() noexcept 2935449: { *this = _Bvector_impl_data(); } 2935449: 2935449: 2935449: void 2935449: _M_swap_data(_Bvector_impl_data& __x) noexcept 2935449: { 2935449: 2935449: 2935449: std::swap(*this, __x); 2935449: } 2935449: }; 2935449: 2935449: struct _Bvector_impl 2935449: : public _Bit_alloc_type, public _Bvector_impl_data 2935449: { 2935449: 2935449: _Bvector_impl() noexcept(is_nothrow_default_constructible<_Bit_alloc_type>::value) 2935449: 2935449: 2935449: 2935449: 2935449: : _Bit_alloc_type() 2935449: { } 2935449: 2935449: 2935449: _Bvector_impl(const _Bit_alloc_type& __a) noexcept 2935449: : _Bit_alloc_type(__a) 2935449: { } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: _Bvector_impl(_Bvector_impl&& __x) noexcept 2935449: : _Bit_alloc_type(std::move(__x)), _Bvector_impl_data(std::move(__x)) 2935449: { } 2935449: 2935449: 2935449: _Bvector_impl(_Bit_alloc_type&& __a, _Bvector_impl&& __x) noexcept 2935449: : _Bit_alloc_type(std::move(__a)), _Bvector_impl_data(std::move(__x)) 2935449: { } 2935449: 2935449: 2935449: 2935449: _Bit_type* 2935449: _M_end_addr() const noexcept 2935449: { 2935449: if (this->_M_end_of_storage) 2935449: return std::__addressof(this->_M_end_of_storage[-1]) + 1; 2935449: return 0; 2935449: } 2935449: }; 2935449: 2935449: public: 2935449: typedef _Alloc allocator_type; 2935449: 2935449: 2935449: _Bit_alloc_type& 2935449: _M_get_Bit_allocator() noexcept 2935449: { return this->_M_impl; } 2935449: 2935449: 2935449: const _Bit_alloc_type& 2935449: _M_get_Bit_allocator() const noexcept 2935449: { return this->_M_impl; } 2935449: 2935449: 2935449: allocator_type 2935449: get_allocator() const noexcept 2935449: { return allocator_type(_M_get_Bit_allocator()); } 2935449: 2935449: 2935449: _Bvector_base() = default; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: _Bvector_base(const allocator_type& __a) 2935449: : _M_impl(_Bit_alloc_type(__a)) { } 2935449: 2935449: 2935449: _Bvector_base(_Bvector_base&&) = default; 2935449: 2935449: 2935449: _Bvector_base(_Bvector_base&& __x, const allocator_type& __a) noexcept 2935449: : _M_impl(_Bit_alloc_type(__a), std::move(__x._M_impl)) 2935449: { } 2935449: 2935449: 2935449: 2935449: ~_Bvector_base() 2935449: { this->_M_deallocate(); } 2935449: 2935449: protected: 2935449: _Bvector_impl _M_impl; 2935449: 2935449: 2935449: _Bit_pointer 2935449: _M_allocate(size_t __n) 2935449: { 2935449: _Bit_pointer __p = _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); 2935449: # 694 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: return __p; 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_deallocate() 2935449: { 2935449: if (_M_impl._M_start._M_p) 2935449: { 2935449: const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p; 2935449: _Bit_alloc_traits::deallocate(_M_impl, 2935449: _M_impl._M_end_of_storage - __n, 2935449: __n); 2935449: _M_impl._M_reset(); 2935449: } 2935449: } 2935449: 2935449: 2935449: 2935449: void 2935449: _M_move_data(_Bvector_base&& __x) noexcept 2935449: { _M_impl._M_move_data(std::move(__x._M_impl)); } 2935449: 2935449: 2935449: constexpr 2935449: static size_t 2935449: _S_nword(size_t __n) 2935449: { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); } 2935449: }; 2935449: # 745 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: template 2935449: class vector : protected _Bvector_base<_Alloc> 2935449: { 2935449: typedef _Bvector_base<_Alloc> _Base; 2935449: typedef typename _Base::_Bit_pointer _Bit_pointer; 2935449: typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits; 2935449: 2935449: 2935449: friend struct std::hash; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: public: 2935449: typedef bool value_type; 2935449: typedef size_t size_type; 2935449: typedef ptrdiff_t difference_type; 2935449: typedef _Bit_reference reference; 2935449: typedef bool const_reference; 2935449: typedef _Bit_reference* pointer; 2935449: typedef const bool* const_pointer; 2935449: typedef _Bit_iterator iterator; 2935449: typedef _Bit_const_iterator const_iterator; 2935449: typedef std::reverse_iterator const_reverse_iterator; 2935449: typedef std::reverse_iterator reverse_iterator; 2935449: typedef _Alloc allocator_type; 2935449: 2935449: 2935449: allocator_type 2935449: get_allocator() const 2935449: { return _Base::get_allocator(); } 2935449: 2935449: protected: 2935449: using _Base::_M_allocate; 2935449: using _Base::_M_deallocate; 2935449: using _Base::_S_nword; 2935449: using _Base::_M_get_Bit_allocator; 2935449: 2935449: public: 2935449: 2935449: vector() = default; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: explicit 2935449: vector(const allocator_type& __a) noexcept 2935449: : _Base(__a) { } 2935449: 2935449: 2935449: 2935449: explicit 2935449: vector(size_type __n, const allocator_type& __a = allocator_type()) 2935449: : vector(__n, false, __a) 2935449: { } 2935449: 2935449: 2935449: vector(size_type __n, const bool& __value, 2935449: const allocator_type& __a = allocator_type()) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: : _Base(__a) 2935449: { 2935449: _M_initialize(__n); 2935449: _M_initialize_value(__value); 2935449: } 2935449: 2935449: 2935449: vector(const vector& __x) 2935449: : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator())) 2935449: { 2935449: const_iterator __xbegin = __x.begin(), __xend = __x.end(); 2935449: _M_initialize(__x.size()); 2935449: _M_copy_aligned(__xbegin, __xend, begin()); 2935449: } 2935449: 2935449: 2935449: vector(vector&&) = default; 2935449: 2935449: private: 2935449: 2935449: vector(vector&& __x, const allocator_type& __a, true_type) noexcept 2935449: : _Base(std::move(__x), __a) 2935449: { } 2935449: 2935449: 2935449: vector(vector&& __x, const allocator_type& __a, false_type) 2935449: : _Base(__a) 2935449: { 2935449: if (__x.get_allocator() == __a) 2935449: this->_M_move_data(std::move(__x)); 2935449: else 2935449: { 2935449: _M_initialize(__x.size()); 2935449: _M_copy_aligned(__x.begin(), __x.end(), begin()); 2935449: __x.clear(); 2935449: } 2935449: } 2935449: 2935449: public: 2935449: 2935449: vector(vector&& __x, const __type_identity_t& __a) 2935449: noexcept(_Bit_alloc_traits::_S_always_equal()) 2935449: : vector(std::move(__x), __a, 2935449: typename _Bit_alloc_traits::is_always_equal{}) 2935449: { } 2935449: 2935449: 2935449: vector(const vector& __x, const __type_identity_t& __a) 2935449: : _Base(__a) 2935449: { 2935449: _M_initialize(__x.size()); 2935449: _M_copy_aligned(__x.begin(), __x.end(), begin()); 2935449: } 2935449: 2935449: 2935449: vector(initializer_list __l, 2935449: const allocator_type& __a = allocator_type()) 2935449: : _Base(__a) 2935449: { 2935449: _M_initialize_range(__l.begin(), __l.end(), 2935449: random_access_iterator_tag()); 2935449: } 2935449: 2935449: 2935449: 2935449: template> 2935449: 2935449: vector(_InputIterator __first, _InputIterator __last, 2935449: const allocator_type& __a = allocator_type()) 2935449: : _Base(__a) 2935449: { 2935449: _M_initialize_range(__first, __last, 2935449: std::__iterator_category(__first)); 2935449: } 2935449: # 925 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: 2935449: ~vector() noexcept { } 2935449: 2935449: 2935449: vector& 2935449: operator=(const vector& __x) 2935449: { 2935449: if (&__x == this) 2935449: return *this; 2935449: 2935449: if (_Bit_alloc_traits::_S_propagate_on_copy_assign()) 2935449: { 2935449: if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator()) 2935449: { 2935449: this->_M_deallocate(); 2935449: std::__alloc_on_copy(_M_get_Bit_allocator(), 2935449: __x._M_get_Bit_allocator()); 2935449: _M_initialize(__x.size()); 2935449: } 2935449: else 2935449: std::__alloc_on_copy(_M_get_Bit_allocator(), 2935449: __x._M_get_Bit_allocator()); 2935449: } 2935449: 2935449: if (__x.size() > capacity()) 2935449: { 2935449: this->_M_deallocate(); 2935449: _M_initialize(__x.size()); 2935449: } 2935449: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 2935449: begin()); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: vector& 2935449: operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move()) 2935449: { 2935449: if (_Bit_alloc_traits::_S_propagate_on_move_assign() 2935449: || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator()) 2935449: { 2935449: this->_M_deallocate(); 2935449: this->_M_move_data(std::move(__x)); 2935449: std::__alloc_on_move(_M_get_Bit_allocator(), 2935449: __x._M_get_Bit_allocator()); 2935449: } 2935449: else 2935449: { 2935449: if (__x.size() > capacity()) 2935449: { 2935449: this->_M_deallocate(); 2935449: _M_initialize(__x.size()); 2935449: } 2935449: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 2935449: begin()); 2935449: __x.clear(); 2935449: } 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: vector& 2935449: operator=(initializer_list __l) 2935449: { 2935449: this->assign(__l.begin(), __l.end()); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: assign(size_type __n, const bool& __x) 2935449: { _M_fill_assign(__n, __x); } 2935449: 2935449: 2935449: template> 2935449: 2935449: void 2935449: assign(_InputIterator __first, _InputIterator __last) 2935449: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 2935449: # 1023 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: 2935449: void 2935449: assign(initializer_list __l) 2935449: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 2935449: # 1063 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: [[__nodiscard__]] 2935449: iterator 2935449: begin() noexcept 2935449: { return iterator(this->_M_impl._M_start._M_p, 0); } 2935449: 2935449: [[__nodiscard__]] 2935449: const_iterator 2935449: begin() const noexcept 2935449: { return const_iterator(this->_M_impl._M_start._M_p, 0); } 2935449: 2935449: [[__nodiscard__]] 2935449: iterator 2935449: end() noexcept 2935449: { return this->_M_impl._M_finish; } 2935449: 2935449: [[__nodiscard__]] 2935449: const_iterator 2935449: end() const noexcept 2935449: { return this->_M_impl._M_finish; } 2935449: 2935449: [[__nodiscard__]] 2935449: reverse_iterator 2935449: rbegin() noexcept 2935449: { return reverse_iterator(end()); } 2935449: 2935449: [[__nodiscard__]] 2935449: const_reverse_iterator 2935449: rbegin() const noexcept 2935449: { return const_reverse_iterator(end()); } 2935449: 2935449: [[__nodiscard__]] 2935449: reverse_iterator 2935449: rend() noexcept 2935449: { return reverse_iterator(begin()); } 2935449: 2935449: [[__nodiscard__]] 2935449: const_reverse_iterator 2935449: rend() const noexcept 2935449: { return const_reverse_iterator(begin()); } 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: const_iterator 2935449: cbegin() const noexcept 2935449: { return const_iterator(this->_M_impl._M_start._M_p, 0); } 2935449: 2935449: [[__nodiscard__]] 2935449: const_iterator 2935449: cend() const noexcept 2935449: { return this->_M_impl._M_finish; } 2935449: 2935449: [[__nodiscard__]] 2935449: const_reverse_iterator 2935449: crbegin() const noexcept 2935449: { return const_reverse_iterator(end()); } 2935449: 2935449: [[__nodiscard__]] 2935449: const_reverse_iterator 2935449: crend() const noexcept 2935449: { return const_reverse_iterator(begin()); } 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: size_type 2935449: size() const noexcept 2935449: { return size_type(end() - begin()); } 2935449: 2935449: [[__nodiscard__]] 2935449: size_type 2935449: max_size() const noexcept 2935449: { 2935449: const size_type __isize = 2935449: __gnu_cxx::__numeric_traits::__max 2935449: - int(_S_word_bit) + 1; 2935449: const size_type __asize 2935449: = _Bit_alloc_traits::max_size(_M_get_Bit_allocator()); 2935449: return (__asize <= __isize / int(_S_word_bit) 2935449: ? __asize * int(_S_word_bit) : __isize); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: size_type 2935449: capacity() const noexcept 2935449: { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0) 2935449: - begin()); } 2935449: 2935449: [[__nodiscard__]] 2935449: bool 2935449: empty() const noexcept 2935449: { return begin() == end(); } 2935449: 2935449: [[__nodiscard__]] 2935449: reference 2935449: operator[](size_type __n) 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__n < this->size())) std::__glibcxx_assert_fail(); } while (false); 2935449: return _Bit_reference (this->_M_impl._M_start._M_p 2935449: + __n / int(_S_word_bit), 2935449: 1UL << __n % int(_S_word_bit)); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: operator[](size_type __n) const 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__n < this->size())) std::__glibcxx_assert_fail(); } while (false); 2935449: return _Bit_reference (this->_M_impl._M_start._M_p 2935449: + __n / int(_S_word_bit), 2935449: 1UL << __n % int(_S_word_bit)); 2935449: } 2935449: 2935449: protected: 2935449: 2935449: void 2935449: _M_range_check(size_type __n) const 2935449: { 2935449: if (__n >= this->size()) 2935449: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 2935449: 2935449: , 2935449: __n, this->size()); 2935449: } 2935449: 2935449: public: 2935449: [[__nodiscard__]] 2935449: reference 2935449: at(size_type __n) 2935449: { 2935449: _M_range_check(__n); 2935449: return (*this)[__n]; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: at(size_type __n) const 2935449: { 2935449: _M_range_check(__n); 2935449: return (*this)[__n]; 2935449: } 2935449: 2935449: 2935449: void 2935449: reserve(size_type __n) 2935449: { 2935449: if (__n > max_size()) 2935449: __throw_length_error(("vector::reserve")); 2935449: if (capacity() < __n) 2935449: _M_reallocate(__n); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: reference 2935449: front() 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: return *begin(); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: front() const 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: return *begin(); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: reference 2935449: back() 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: return *(end() - 1); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: const_reference 2935449: back() const 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 2935449: return *(end() - 1); 2935449: } 2935449: 2935449: 2935449: void 2935449: push_back(bool __x) 2935449: { 2935449: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 2935449: *this->_M_impl._M_finish++ = __x; 2935449: else 2935449: _M_insert_aux(end(), __x); 2935449: } 2935449: 2935449: 2935449: void 2935449: swap(vector& __x) noexcept 2935449: { 2935449: 2935449: do { if (std::__is_constant_evaluated() && !bool(_Bit_alloc_traits::propagate_on_container_swap::value || _M_get_Bit_allocator() == __x._M_get_Bit_allocator())) std::__glibcxx_assert_fail(); } while (false) 2935449: ; 2935449: 2935449: this->_M_impl._M_swap_data(__x._M_impl); 2935449: _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(), 2935449: __x._M_get_Bit_allocator()); 2935449: } 2935449: 2935449: 2935449: 2935449: static void 2935449: swap(reference __x, reference __y) noexcept 2935449: { 2935449: bool __tmp = __x; 2935449: __x = __y; 2935449: __y = __tmp; 2935449: } 2935449: 2935449: 2935449: iterator 2935449: 2935449: insert(const_iterator __position, const bool& __x) 2935449: 2935449: 2935449: 2935449: { 2935449: const difference_type __n = __position - begin(); 2935449: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr() 2935449: && __position == end()) 2935449: *this->_M_impl._M_finish++ = __x; 2935449: else 2935449: _M_insert_aux(__position._M_const_cast(), __x); 2935449: return begin() + __n; 2935449: } 2935449: 2935449: 2935449: __attribute__ ((__deprecated__ ("use '" "insert(position, false)" "' instead"))) 2935449: iterator 2935449: insert(const_iterator __position) 2935449: { return this->insert(__position._M_const_cast(), false); } 2935449: 2935449: 2935449: 2935449: template> 2935449: 2935449: iterator 2935449: insert(const_iterator __position, 2935449: _InputIterator __first, _InputIterator __last) 2935449: { 2935449: difference_type __offset = __position - cbegin(); 2935449: _M_insert_range(__position._M_const_cast(), 2935449: __first, __last, 2935449: std::__iterator_category(__first)); 2935449: return begin() + __offset; 2935449: } 2935449: # 1329 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: 2935449: iterator 2935449: insert(const_iterator __position, size_type __n, const bool& __x) 2935449: { 2935449: difference_type __offset = __position - cbegin(); 2935449: _M_fill_insert(__position._M_const_cast(), __n, __x); 2935449: return begin() + __offset; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: iterator 2935449: insert(const_iterator __p, initializer_list __l) 2935449: { return this->insert(__p, __l.begin(), __l.end()); } 2935449: # 1463 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: 2935449: void 2935449: pop_back() 2935449: { --this->_M_impl._M_finish; } 2935449: 2935449: 2935449: iterator 2935449: 2935449: erase(const_iterator __position) 2935449: 2935449: 2935449: 2935449: { return _M_erase(__position._M_const_cast()); } 2935449: 2935449: 2935449: iterator 2935449: 2935449: erase(const_iterator __first, const_iterator __last) 2935449: 2935449: 2935449: 2935449: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 2935449: 2935449: 2935449: void 2935449: resize(size_type __new_size, bool __x = bool()) 2935449: { 2935449: if (__new_size < size()) 2935449: _M_erase_at_end(begin() + difference_type(__new_size)); 2935449: else 2935449: insert(end(), __new_size - size(), __x); 2935449: } 2935449: 2935449: 2935449: 2935449: void 2935449: shrink_to_fit() 2935449: { _M_shrink_to_fit(); } 2935449: 2935449: 2935449: 2935449: void 2935449: flip() noexcept 2935449: { 2935449: _Bit_type * const __end = this->_M_impl._M_end_addr(); 2935449: for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p) 2935449: *__p = ~*__p; 2935449: } 2935449: 2935449: 2935449: void 2935449: clear() noexcept 2935449: { _M_erase_at_end(begin()); } 2935449: 2935449: 2935449: template 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: 2935449: emplace_back(_Args&&... __args) 2935449: { 2935449: push_back(bool(std::forward<_Args>(__args)...)); 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: template 2935449: 2935449: iterator 2935449: emplace(const_iterator __pos, _Args&&... __args) 2935449: { return insert(__pos, bool(std::forward<_Args>(__args)...)); } 2935449: 2935449: 2935449: protected: 2935449: 2935449: 2935449: iterator 2935449: _M_copy_aligned(const_iterator __first, const_iterator __last, 2935449: iterator __result) 2935449: { 2935449: _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); 2935449: return std::copy(const_iterator(__last._M_p, 0), __last, 2935449: iterator(__q, 0)); 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_initialize(size_type __n) 2935449: { 2935449: if (__n) 2935449: { 2935449: _Bit_pointer __q = this->_M_allocate(__n); 2935449: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 2935449: iterator __start = iterator(std::__addressof(*__q), 0); 2935449: this->_M_impl._M_start = __start; 2935449: this->_M_impl._M_finish = __start + difference_type(__n); 2935449: } 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_initialize_value(bool __x) noexcept 2935449: { 2935449: if (_Bit_type* __p = this->_M_impl._M_start._M_p) 2935449: __fill_bvector_n(__p, this->_M_impl._M_end_addr() - __p, __x); 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_reallocate(size_type __n); 2935449: 2935449: 2935449: 2935449: bool 2935449: _M_shrink_to_fit(); 2935449: # 1603 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: template 2935449: 2935449: void 2935449: _M_initialize_range(_InputIterator __first, _InputIterator __last, 2935449: std::input_iterator_tag) 2935449: { 2935449: for (; __first != __last; ++__first) 2935449: push_back(*__first); 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, 2935449: std::forward_iterator_tag) 2935449: { 2935449: const size_type __n = std::distance(__first, __last); 2935449: _M_initialize(__n); 2935449: std::copy(__first, __last, begin()); 2935449: } 2935449: # 1639 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: 2935449: void 2935449: _M_fill_assign(size_t __n, bool __x) 2935449: { 2935449: if (__n > size()) 2935449: { 2935449: _M_initialize_value(__x); 2935449: insert(end(), __n - size(), __x); 2935449: } 2935449: else 2935449: { 2935449: _M_erase_at_end(begin() + __n); 2935449: _M_initialize_value(__x); 2935449: } 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_assign_aux(_InputIterator __first, _InputIterator __last, 2935449: std::input_iterator_tag) 2935449: { 2935449: iterator __cur = begin(); 2935449: for (; __first != __last && __cur != end(); ++__cur, (void)++__first) 2935449: *__cur = *__first; 2935449: if (__first == __last) 2935449: _M_erase_at_end(__cur); 2935449: else 2935449: insert(end(), __first, __last); 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 2935449: std::forward_iterator_tag) 2935449: { 2935449: const size_type __len = std::distance(__first, __last); 2935449: if (__len < size()) 2935449: _M_erase_at_end(std::copy(__first, __last, begin())); 2935449: else 2935449: { 2935449: _ForwardIterator __mid = __first; 2935449: std::advance(__mid, size()); 2935449: std::copy(__first, __mid, begin()); 2935449: insert(end(), __mid, __last); 2935449: } 2935449: } 2935449: # 1706 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: 2935449: void 2935449: _M_fill_insert(iterator __position, size_type __n, bool __x); 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_insert_range(iterator __pos, _InputIterator __first, 2935449: _InputIterator __last, std::input_iterator_tag) 2935449: { 2935449: for (; __first != __last; ++__first) 2935449: { 2935449: __pos = insert(__pos, *__first); 2935449: ++__pos; 2935449: } 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_insert_range(iterator __position, _ForwardIterator __first, 2935449: _ForwardIterator __last, std::forward_iterator_tag); 2935449: 2935449: 2935449: void 2935449: _M_insert_aux(iterator __position, bool __x); 2935449: 2935449: 2935449: size_type 2935449: _M_check_len(size_type __n, const char* __s) const 2935449: { 2935449: if (max_size() - size() < __n) 2935449: __throw_length_error((__s)); 2935449: 2935449: const size_type __len = size() + std::max(size(), __n); 2935449: return (__len < size() || __len > max_size()) ? max_size() : __len; 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_erase_at_end(iterator __pos) 2935449: { this->_M_impl._M_finish = __pos; } 2935449: 2935449: 2935449: iterator 2935449: _M_erase(iterator __pos); 2935449: 2935449: 2935449: iterator 2935449: _M_erase(iterator __first, iterator __last); 2935449: 2935449: protected: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void data() = delete; 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: inline void 2935449: __fill_bvector(_Bit_type* __v, unsigned int __first, unsigned int __last, 2935449: bool __x) noexcept 2935449: { 2935449: const _Bit_type __fmask = ~0ul << __first; 2935449: const _Bit_type __lmask = ~0ul >> (_S_word_bit - __last); 2935449: const _Bit_type __mask = __fmask & __lmask; 2935449: 2935449: if (__x) 2935449: *__v |= __mask; 2935449: else 2935449: *__v &= ~__mask; 2935449: } 2935449: 2935449: 2935449: __attribute__((__nonnull__)) 2935449: 2935449: inline void 2935449: __fill_bvector_n(_Bit_type* __p, size_t __n, bool __x) noexcept 2935449: { 2935449: # 1802 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_bvector.h" 3 2935449: __builtin_memset(__p, __x ? ~0 : 0, __n * sizeof(_Bit_type)); 2935449: } 2935449: 2935449: 2935449: 2935449: inline void 2935449: __fill_a1(std::_Bit_iterator __first, 2935449: std::_Bit_iterator __last, const bool& __x) 2935449: { 2935449: if (__first._M_p != __last._M_p) 2935449: { 2935449: _Bit_type* __first_p = __first._M_p; 2935449: if (__first._M_offset != 0) 2935449: __fill_bvector(__first_p++, __first._M_offset, _S_word_bit, __x); 2935449: 2935449: __fill_bvector_n(__first_p, __last._M_p - __first_p, __x); 2935449: 2935449: if (__last._M_offset != 0) 2935449: __fill_bvector(__last._M_p, 0, __last._M_offset, __x); 2935449: } 2935449: else if (__first._M_offset != __last._M_offset) 2935449: __fill_bvector(__first._M_p, __first._M_offset, __last._M_offset, __x); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct hash> 2935449: : public __hash_base> 2935449: { 2935449: size_t 2935449: operator()(const std::vector&) const noexcept; 2935449: }; 2935449: 2935449: 2935449: 2935449: } 2935449: # 70 "/usr/arm-linux-gnueabi/include/c++/15/vector" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/vector.tcc" 1 3 2935449: # 59 "/usr/arm-linux-gnueabi/include/c++/15/bits/vector.tcc" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: void 2935449: vector<_Tp, _Alloc>:: 2935449: reserve(size_type __n) 2935449: { 2935449: if (__n > this->max_size()) 2935449: __throw_length_error(("vector::reserve")); 2935449: if (this->capacity() < __n) 2935449: { 2935449: const size_type __old_size = size(); 2935449: pointer __tmp; 2935449: 2935449: if (_S_use_relocate()) 2935449: { 2935449: __tmp = this->_M_allocate(__n); 2935449: _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish, 2935449: __tmp, _M_get_Tp_allocator()); 2935449: } 2935449: else 2935449: 2935449: { 2935449: __tmp = _M_allocate_and_copy(__n, 2935449: std::__make_move_if_noexcept_iterator(this->_M_impl._M_start), 2935449: std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish)); 2935449: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 2935449: _M_get_Tp_allocator()); 2935449: } 2935449: ; 2935449: _M_deallocate(this->_M_impl._M_start, 2935449: this->_M_impl._M_end_of_storage 2935449: - this->_M_impl._M_start); 2935449: this->_M_impl._M_start = __tmp; 2935449: this->_M_impl._M_finish = __tmp + __old_size; 2935449: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 2935449: } 2935449: } 2935449: 2935449: 2935449: template 2935449: template 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: 2935449: vector<_Tp, _Alloc>:: 2935449: emplace_back(_Args&&... __args) 2935449: { 2935449: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 2935449: { 2935449: ; 2935449: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 2935449: std::forward<_Args>(__args)...); 2935449: ++this->_M_impl._M_finish; 2935449: ; 2935449: } 2935449: else 2935449: _M_realloc_append(std::forward<_Args>(__args)...); 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: typename vector<_Tp, _Alloc>::iterator 2935449: vector<_Tp, _Alloc>:: 2935449: 2935449: insert(const_iterator __position, const value_type& __x) 2935449: 2935449: 2935449: 2935449: { 2935449: const size_type __n = __position - begin(); 2935449: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__position != const_iterator())) std::__glibcxx_assert_fail(); } while (false); 2935449: if (!(__position != const_iterator())) 2935449: __builtin_unreachable(); 2935449: 2935449: if (__position == end()) 2935449: { 2935449: ; 2935449: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 2935449: __x); 2935449: ++this->_M_impl._M_finish; 2935449: ; 2935449: } 2935449: else 2935449: { 2935449: 2935449: const auto __pos = begin() + (__position - cbegin()); 2935449: 2935449: 2935449: _Temporary_value __x_copy(this, __x); 2935449: _M_insert_aux(__pos, std::move(__x_copy._M_val())); 2935449: 2935449: 2935449: 2935449: } 2935449: } 2935449: else 2935449: 2935449: _M_realloc_insert(begin() + (__position - cbegin()), __x); 2935449: 2935449: 2935449: 2935449: 2935449: return iterator(this->_M_impl._M_start + __n); 2935449: } 2935449: 2935449: template 2935449: 2935449: typename vector<_Tp, _Alloc>::iterator 2935449: vector<_Tp, _Alloc>:: 2935449: _M_erase(iterator __position) 2935449: { 2935449: if (__position + 1 != end()) 2935449: std::move(__position + 1, end(), __position); 2935449: --this->_M_impl._M_finish; 2935449: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 2935449: ; 2935449: return __position; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename vector<_Tp, _Alloc>::iterator 2935449: vector<_Tp, _Alloc>:: 2935449: _M_erase(iterator __first, iterator __last) 2935449: { 2935449: if (__first != __last) 2935449: { 2935449: if (__last != end()) 2935449: std::move(__last, end(), __first); 2935449: _M_erase_at_end(__first.base() + (end() - __last)); 2935449: } 2935449: return __first; 2935449: } 2935449: 2935449: template 2935449: 2935449: vector<_Tp, _Alloc>& 2935449: vector<_Tp, _Alloc>:: 2935449: operator=(const vector<_Tp, _Alloc>& __x) 2935449: { 2935449: if (std::__addressof(__x) != this) 2935449: { 2935449: ; 2935449: 2935449: if (_Alloc_traits::_S_propagate_on_copy_assign()) 2935449: { 2935449: if (!_Alloc_traits::_S_always_equal() 2935449: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 2935449: { 2935449: 2935449: this->clear(); 2935449: _M_deallocate(this->_M_impl._M_start, 2935449: this->_M_impl._M_end_of_storage 2935449: - this->_M_impl._M_start); 2935449: this->_M_impl._M_start = nullptr; 2935449: this->_M_impl._M_finish = nullptr; 2935449: this->_M_impl._M_end_of_storage = nullptr; 2935449: } 2935449: std::__alloc_on_copy(_M_get_Tp_allocator(), 2935449: __x._M_get_Tp_allocator()); 2935449: } 2935449: 2935449: const size_type __xlen = __x.size(); 2935449: if (__xlen > capacity()) 2935449: { 2935449: pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), 2935449: __x.end()); 2935449: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 2935449: _M_get_Tp_allocator()); 2935449: _M_deallocate(this->_M_impl._M_start, 2935449: this->_M_impl._M_end_of_storage 2935449: - this->_M_impl._M_start); 2935449: this->_M_impl._M_start = __tmp; 2935449: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; 2935449: } 2935449: else if (size() >= __xlen) 2935449: { 2935449: std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), 2935449: end(), _M_get_Tp_allocator()); 2935449: } 2935449: else 2935449: { 2935449: std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), 2935449: this->_M_impl._M_start); 2935449: std::__uninitialized_copy_a(__x._M_impl._M_start + size(), 2935449: __x._M_impl._M_finish, 2935449: this->_M_impl._M_finish, 2935449: _M_get_Tp_allocator()); 2935449: } 2935449: this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; 2935449: } 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: vector<_Tp, _Alloc>:: 2935449: _M_fill_assign(size_t __n, const value_type& __val) 2935449: { 2935449: const size_type __sz = size(); 2935449: if (__n > capacity()) 2935449: { 2935449: if (__n <= __sz) 2935449: __builtin_unreachable(); 2935449: vector __tmp(__n, __val, _M_get_Tp_allocator()); 2935449: __tmp._M_impl._M_swap_data(this->_M_impl); 2935449: } 2935449: else if (__n > __sz) 2935449: { 2935449: std::fill(begin(), end(), __val); 2935449: const size_type __add = __n - __sz; 2935449: ; 2935449: this->_M_impl._M_finish = 2935449: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 2935449: __add, __val, _M_get_Tp_allocator()); 2935449: ; 2935449: } 2935449: else 2935449: _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); 2935449: } 2935449: 2935449: template 2935449: template 2935449: 2935449: void 2935449: vector<_Tp, _Alloc>:: 2935449: _M_assign_aux(_InputIterator __first, _InputIterator __last, 2935449: std::input_iterator_tag) 2935449: { 2935449: pointer __cur(this->_M_impl._M_start); 2935449: for (; __first != __last && __cur != this->_M_impl._M_finish; 2935449: ++__cur, (void)++__first) 2935449: *__cur = *__first; 2935449: if (__first == __last) 2935449: _M_erase_at_end(__cur); 2935449: else 2935449: _M_range_insert(end(), __first, __last, 2935449: std::__iterator_category(__first)); 2935449: } 2935449: 2935449: template 2935449: template 2935449: 2935449: void 2935449: vector<_Tp, _Alloc>:: 2935449: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 2935449: std::forward_iterator_tag) 2935449: { 2935449: const size_type __sz = size(); 2935449: const size_type __len = std::distance(__first, __last); 2935449: 2935449: if (__len > capacity()) 2935449: { 2935449: if (__len <= __sz) 2935449: __builtin_unreachable(); 2935449: 2935449: _S_check_init_len(__len, _M_get_Tp_allocator()); 2935449: pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); 2935449: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 2935449: _M_get_Tp_allocator()); 2935449: ; 2935449: _M_deallocate(this->_M_impl._M_start, 2935449: this->_M_impl._M_end_of_storage 2935449: - this->_M_impl._M_start); 2935449: this->_M_impl._M_start = __tmp; 2935449: this->_M_impl._M_finish = this->_M_impl._M_start + __len; 2935449: this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; 2935449: } 2935449: else if (__sz >= __len) 2935449: _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); 2935449: else 2935449: { 2935449: _ForwardIterator __mid = __first; 2935449: std::advance(__mid, __sz); 2935449: std::copy(__first, __mid, this->_M_impl._M_start); 2935449: const size_type __attribute__((__unused__)) __n = __len - __sz; 2935449: ; 2935449: this->_M_impl._M_finish = 2935449: std::__uninitialized_copy_a(__mid, __last, 2935449: this->_M_impl._M_finish, 2935449: _M_get_Tp_allocator()); 2935449: ; 2935449: } 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: auto 2935449: vector<_Tp, _Alloc>:: 2935449: _M_insert_rval(const_iterator __position, value_type&& __v) -> iterator 2935449: { 2935449: const auto __n = __position - cbegin(); 2935449: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 2935449: if (__position == cend()) 2935449: { 2935449: ; 2935449: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 2935449: std::move(__v)); 2935449: ++this->_M_impl._M_finish; 2935449: ; 2935449: } 2935449: else 2935449: _M_insert_aux(begin() + __n, std::move(__v)); 2935449: else 2935449: _M_realloc_insert(begin() + __n, std::move(__v)); 2935449: 2935449: return iterator(this->_M_impl._M_start + __n); 2935449: } 2935449: 2935449: template 2935449: template 2935449: 2935449: auto 2935449: vector<_Tp, _Alloc>:: 2935449: _M_emplace_aux(const_iterator __position, _Args&&... __args) 2935449: -> iterator 2935449: { 2935449: const auto __n = __position - cbegin(); 2935449: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 2935449: if (__position == cend()) 2935449: { 2935449: ; 2935449: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 2935449: std::forward<_Args>(__args)...); 2935449: ++this->_M_impl._M_finish; 2935449: ; 2935449: } 2935449: else 2935449: { 2935449: 2935449: 2935449: 2935449: _Temporary_value __tmp(this, std::forward<_Args>(__args)...); 2935449: _M_insert_aux(begin() + __n, std::move(__tmp._M_val())); 2935449: } 2935449: else 2935449: _M_realloc_insert(begin() + __n, std::forward<_Args>(__args)...); 2935449: 2935449: return iterator(this->_M_impl._M_start + __n); 2935449: } 2935449: 2935449: template 2935449: template 2935449: 2935449: void 2935449: vector<_Tp, _Alloc>:: 2935449: _M_insert_aux(iterator __position, _Arg&& __arg) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: ; 2935449: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 2935449: std::move(*(this->_M_impl._M_finish - 1))); 2935449: ++this->_M_impl._M_finish; 2935449: ; 2935449: 2935449: 2935449: 2935449: std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) 2935449: 2935449: ; 2935449: 2935449: 2935449: 2935449: *__position = std::forward<_Arg>(__arg); 2935449: 2935449: } 2935449: 2935449: 2935449: template 2935449: template 2935449: 2935449: void 2935449: vector<_Tp, _Alloc>:: 2935449: _M_realloc_insert(iterator __position, _Args&&... __args) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: const size_type __len = _M_check_len(1u, "vector::_M_realloc_insert"); 2935449: if (__len <= 0) 2935449: __builtin_unreachable (); 2935449: pointer __old_start = this->_M_impl._M_start; 2935449: pointer __old_finish = this->_M_impl._M_finish; 2935449: const size_type __elems_before = __position - begin(); 2935449: pointer __new_start(this->_M_allocate(__len)); 2935449: pointer __new_finish(__new_start); 2935449: 2935449: { 2935449: _Guard_alloc __guard(__new_start, __len, *this); 2935449: # 481 "/usr/arm-linux-gnueabi/include/c++/15/bits/vector.tcc" 3 2935449: _Alloc_traits::construct(this->_M_impl, 2935449: std::__to_address(__new_start + __elems_before), 2935449: std::forward<_Args>(__args)...); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: if (_S_use_relocate()) 2935449: { 2935449: 2935449: __new_finish = _S_relocate(__old_start, __position.base(), 2935449: __new_start, _M_get_Tp_allocator()); 2935449: ++__new_finish; 2935449: __new_finish = _S_relocate(__position.base(), __old_finish, 2935449: __new_finish, _M_get_Tp_allocator()); 2935449: } 2935449: else 2935449: 2935449: { 2935449: 2935449: struct _Guard_elts 2935449: { 2935449: pointer _M_first, _M_last; 2935449: _Tp_alloc_type& _M_alloc; 2935449: 2935449: 2935449: _Guard_elts(pointer __elt, _Tp_alloc_type& __a) 2935449: : _M_first(__elt), _M_last(__elt + 1), _M_alloc(__a) 2935449: { } 2935449: 2935449: 2935449: ~_Guard_elts() 2935449: { std::_Destroy(_M_first, _M_last, _M_alloc); } 2935449: 2935449: private: 2935449: _Guard_elts(const _Guard_elts&); 2935449: }; 2935449: 2935449: 2935449: _Guard_elts __guard_elts(__new_start + __elems_before, _M_impl); 2935449: 2935449: __new_finish = std::__uninitialized_move_if_noexcept_a( 2935449: __old_start, __position.base(), 2935449: __new_start, _M_get_Tp_allocator()); 2935449: 2935449: ++__new_finish; 2935449: 2935449: __guard_elts._M_first = __new_start; 2935449: 2935449: __new_finish = std::__uninitialized_move_if_noexcept_a( 2935449: __position.base(), __old_finish, 2935449: __new_finish, _M_get_Tp_allocator()); 2935449: 2935449: 2935449: __guard_elts._M_first = __old_start; 2935449: __guard_elts._M_last = __old_finish; 2935449: } 2935449: __guard._M_storage = __old_start; 2935449: __guard._M_len = this->_M_impl._M_end_of_storage - __old_start; 2935449: } 2935449: 2935449: 2935449: 2935449: this->_M_impl._M_start = __new_start; 2935449: this->_M_impl._M_finish = __new_finish; 2935449: this->_M_impl._M_end_of_storage = __new_start + __len; 2935449: } 2935449: 2935449: 2935449: template 2935449: template 2935449: 2935449: void 2935449: vector<_Tp, _Alloc>:: 2935449: _M_realloc_append(_Args&&... __args) 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: { 2935449: const size_type __len = _M_check_len(1u, "vector::_M_realloc_append"); 2935449: if (__len <= 0) 2935449: __builtin_unreachable (); 2935449: pointer __old_start = this->_M_impl._M_start; 2935449: pointer __old_finish = this->_M_impl._M_finish; 2935449: const size_type __elems = end() - begin(); 2935449: pointer __new_start(this->_M_allocate(__len)); 2935449: pointer __new_finish(__new_start); 2935449: 2935449: { 2935449: _Guard_alloc __guard(__new_start, __len, *this); 2935449: # 586 "/usr/arm-linux-gnueabi/include/c++/15/bits/vector.tcc" 3 2935449: _Alloc_traits::construct(this->_M_impl, 2935449: std::__to_address(__new_start + __elems), 2935449: std::forward<_Args>(__args)...); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: if (_S_use_relocate()) 2935449: { 2935449: 2935449: __new_finish = _S_relocate(__old_start, __old_finish, 2935449: __new_start, _M_get_Tp_allocator()); 2935449: ++__new_finish; 2935449: } 2935449: else 2935449: 2935449: { 2935449: 2935449: struct _Guard_elts 2935449: { 2935449: pointer _M_first, _M_last; 2935449: _Tp_alloc_type& _M_alloc; 2935449: 2935449: 2935449: _Guard_elts(pointer __elt, _Tp_alloc_type& __a) 2935449: : _M_first(__elt), _M_last(__elt + 1), _M_alloc(__a) 2935449: { } 2935449: 2935449: 2935449: ~_Guard_elts() 2935449: { std::_Destroy(_M_first, _M_last, _M_alloc); } 2935449: 2935449: private: 2935449: _Guard_elts(const _Guard_elts&); 2935449: }; 2935449: 2935449: 2935449: _Guard_elts __guard_elts(__new_start + __elems, _M_impl); 2935449: 2935449: __new_finish = std::__uninitialized_move_if_noexcept_a( 2935449: __old_start, __old_finish, 2935449: __new_start, _M_get_Tp_allocator()); 2935449: 2935449: ++__new_finish; 2935449: 2935449: 2935449: __guard_elts._M_first = __old_start; 2935449: __guard_elts._M_last = __old_finish; 2935449: } 2935449: __guard._M_storage = __old_start; 2935449: __guard._M_len = this->_M_impl._M_end_of_storage - __old_start; 2935449: } 2935449: 2935449: 2935449: 2935449: this->_M_impl._M_start = __new_start; 2935449: this->_M_impl._M_finish = __new_finish; 2935449: this->_M_impl._M_end_of_storage = __new_start + __len; 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: vector<_Tp, _Alloc>:: 2935449: _M_fill_insert(iterator __position, size_type __n, const value_type& __x) 2935449: { 2935449: if (__n != 0) 2935449: { 2935449: if (size_type(this->_M_impl._M_end_of_storage 2935449: - this->_M_impl._M_finish) >= __n) 2935449: { 2935449: 2935449: 2935449: 2935449: _Temporary_value __tmp(this, __x); 2935449: value_type& __x_copy = __tmp._M_val(); 2935449: 2935449: const size_type __elems_after = end() - __position; 2935449: pointer __old_finish(this->_M_impl._M_finish); 2935449: if (__elems_after > __n) 2935449: { 2935449: ; 2935449: std::__uninitialized_move_a(__old_finish - __n, 2935449: __old_finish, 2935449: __old_finish, 2935449: _M_get_Tp_allocator()); 2935449: this->_M_impl._M_finish += __n; 2935449: ; 2935449: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 2935449: ; 2935449: std::fill(__position.base(), __position.base() + __n, 2935449: __x_copy); 2935449: } 2935449: else 2935449: { 2935449: ; 2935449: this->_M_impl._M_finish = 2935449: std::__uninitialized_fill_n_a(__old_finish, 2935449: __n - __elems_after, 2935449: __x_copy, 2935449: _M_get_Tp_allocator()); 2935449: ; 2935449: std::__uninitialized_move_a(__position.base(), __old_finish, 2935449: this->_M_impl._M_finish, 2935449: _M_get_Tp_allocator()); 2935449: this->_M_impl._M_finish += __elems_after; 2935449: ; 2935449: std::fill(__position.base(), __old_finish, __x_copy); 2935449: } 2935449: } 2935449: else 2935449: { 2935449: 2935449: 2935449: pointer __old_start = this->_M_impl._M_start; 2935449: pointer __old_finish = this->_M_impl._M_finish; 2935449: const pointer __pos = __position.base(); 2935449: 2935449: const size_type __len = 2935449: _M_check_len(__n, "vector::_M_fill_insert"); 2935449: const size_type __elems_before = __pos - __old_start; 2935449: pointer __new_start(this->_M_allocate(__len)); 2935449: pointer __new_finish(__new_start); 2935449: if (true) 2935449: { 2935449: 2935449: std::__uninitialized_fill_n_a(__new_start + __elems_before, 2935449: __n, __x, 2935449: _M_get_Tp_allocator()); 2935449: __new_finish = pointer(); 2935449: 2935449: __new_finish 2935449: = std::__uninitialized_move_if_noexcept_a 2935449: (__old_start, __pos, __new_start, _M_get_Tp_allocator()); 2935449: 2935449: __new_finish += __n; 2935449: 2935449: __new_finish 2935449: = std::__uninitialized_move_if_noexcept_a 2935449: (__pos, __old_finish, __new_finish, _M_get_Tp_allocator()); 2935449: } 2935449: if (false) 2935449: { 2935449: if (!__new_finish) 2935449: std::_Destroy(__new_start + __elems_before, 2935449: __new_start + __elems_before + __n, 2935449: _M_get_Tp_allocator()); 2935449: else 2935449: std::_Destroy(__new_start, __new_finish, 2935449: _M_get_Tp_allocator()); 2935449: _M_deallocate(__new_start, __len); 2935449: ; 2935449: } 2935449: std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator()); 2935449: ; 2935449: _M_deallocate(__old_start, 2935449: this->_M_impl._M_end_of_storage - __old_start); 2935449: this->_M_impl._M_start = __new_start; 2935449: this->_M_impl._M_finish = __new_finish; 2935449: this->_M_impl._M_end_of_storage = __new_start + __len; 2935449: } 2935449: } 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: void 2935449: vector<_Tp, _Alloc>:: 2935449: _M_default_append(size_type __n) 2935449: { 2935449: if (__n != 0) 2935449: { 2935449: const size_type __size = size(); 2935449: size_type __navail = size_type(this->_M_impl._M_end_of_storage 2935449: - this->_M_impl._M_finish); 2935449: 2935449: if (__size > max_size() || __navail > max_size() - __size) 2935449: __builtin_unreachable(); 2935449: 2935449: if (__navail >= __n) 2935449: { 2935449: if (!this->_M_impl._M_finish) 2935449: __builtin_unreachable(); 2935449: 2935449: ; 2935449: this->_M_impl._M_finish = 2935449: std::__uninitialized_default_n_a(this->_M_impl._M_finish, 2935449: __n, _M_get_Tp_allocator()); 2935449: ; 2935449: } 2935449: else 2935449: { 2935449: 2935449: 2935449: pointer __old_start = this->_M_impl._M_start; 2935449: pointer __old_finish = this->_M_impl._M_finish; 2935449: 2935449: const size_type __len = 2935449: _M_check_len(__n, "vector::_M_default_append"); 2935449: pointer __new_start(this->_M_allocate(__len)); 2935449: 2935449: { 2935449: _Guard_alloc __guard(__new_start, __len, *this); 2935449: 2935449: std::__uninitialized_default_n_a(__new_start + __size, __n, 2935449: _M_get_Tp_allocator()); 2935449: 2935449: if (_S_use_relocate()) 2935449: { 2935449: _S_relocate(__old_start, __old_finish, 2935449: __new_start, _M_get_Tp_allocator()); 2935449: } 2935449: else 2935449: { 2935449: 2935449: struct _Guard_elts 2935449: { 2935449: pointer _M_first, _M_last; 2935449: _Tp_alloc_type& _M_alloc; 2935449: 2935449: 2935449: _Guard_elts(pointer __first, size_type __n, 2935449: _Tp_alloc_type& __a) 2935449: : _M_first(__first), _M_last(__first + __n), _M_alloc(__a) 2935449: { } 2935449: 2935449: 2935449: ~_Guard_elts() 2935449: { std::_Destroy(_M_first, _M_last, _M_alloc); } 2935449: 2935449: private: 2935449: _Guard_elts(const _Guard_elts&); 2935449: }; 2935449: _Guard_elts __guard_elts(__new_start + __size, __n, _M_impl); 2935449: 2935449: std::__uninitialized_move_if_noexcept_a( 2935449: __old_start, __old_finish, __new_start, 2935449: _M_get_Tp_allocator()); 2935449: 2935449: __guard_elts._M_first = __old_start; 2935449: __guard_elts._M_last = __old_finish; 2935449: } 2935449: ; 2935449: __guard._M_storage = __old_start; 2935449: __guard._M_len = this->_M_impl._M_end_of_storage - __old_start; 2935449: } 2935449: 2935449: 2935449: 2935449: this->_M_impl._M_start = __new_start; 2935449: this->_M_impl._M_finish = __new_start + __size + __n; 2935449: this->_M_impl._M_end_of_storage = __new_start + __len; 2935449: } 2935449: } 2935449: } 2935449: 2935449: template 2935449: 2935449: bool 2935449: vector<_Tp, _Alloc>:: 2935449: _M_shrink_to_fit() 2935449: { 2935449: if (capacity() == size()) 2935449: return false; 2935449: ; 2935449: return std::__shrink_to_fit_aux::_S_do_it(*this); 2935449: } 2935449: 2935449: 2935449: template 2935449: template 2935449: 2935449: void 2935449: vector<_Tp, _Alloc>:: 2935449: _M_range_insert(iterator __pos, _InputIterator __first, 2935449: _InputIterator __last, std::input_iterator_tag) 2935449: { 2935449: if (__pos == end()) 2935449: { 2935449: for (; __first != __last; ++__first) 2935449: insert(end(), *__first); 2935449: } 2935449: else if (__first != __last) 2935449: { 2935449: vector __tmp(__first, __last, _M_get_Tp_allocator()); 2935449: insert(__pos, 2935449: std::make_move_iterator(__tmp.begin()), 2935449: std::make_move_iterator(__tmp.end())); 2935449: } 2935449: } 2935449: 2935449: template 2935449: template 2935449: 2935449: void 2935449: vector<_Tp, _Alloc>:: 2935449: _M_range_insert(iterator __position, _ForwardIterator __first, 2935449: _ForwardIterator __last, std::forward_iterator_tag) 2935449: { 2935449: if (__first != __last) 2935449: { 2935449: const size_type __n = std::distance(__first, __last); 2935449: if (size_type(this->_M_impl._M_end_of_storage 2935449: - this->_M_impl._M_finish) >= __n) 2935449: { 2935449: const size_type __elems_after = end() - __position; 2935449: pointer __old_finish(this->_M_impl._M_finish); 2935449: if (__elems_after > __n) 2935449: { 2935449: ; 2935449: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 2935449: this->_M_impl._M_finish, 2935449: this->_M_impl._M_finish, 2935449: _M_get_Tp_allocator()); 2935449: this->_M_impl._M_finish += __n; 2935449: ; 2935449: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 2935449: ; 2935449: std::copy(__first, __last, __position); 2935449: } 2935449: else 2935449: { 2935449: _ForwardIterator __mid = __first; 2935449: std::advance(__mid, __elems_after); 2935449: ; 2935449: std::__uninitialized_copy_a(__mid, __last, 2935449: this->_M_impl._M_finish, 2935449: _M_get_Tp_allocator()); 2935449: this->_M_impl._M_finish += __n - __elems_after; 2935449: ; 2935449: std::__uninitialized_move_a(__position.base(), 2935449: __old_finish, 2935449: this->_M_impl._M_finish, 2935449: _M_get_Tp_allocator()); 2935449: this->_M_impl._M_finish += __elems_after; 2935449: ; 2935449: std::copy(__first, __mid, __position); 2935449: } 2935449: } 2935449: else 2935449: { 2935449: 2935449: 2935449: 2935449: pointer __old_start = this->_M_impl._M_start; 2935449: pointer __old_finish = this->_M_impl._M_finish; 2935449: 2935449: const size_type __len = 2935449: _M_check_len(__n, "vector::_M_range_insert"); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: pointer __new_start(this->_M_allocate(__len)); 2935449: pointer __new_finish(__new_start); 2935449: if (true) 2935449: { 2935449: __new_finish 2935449: = std::__uninitialized_move_if_noexcept_a 2935449: (__old_start, __position.base(), 2935449: __new_start, _M_get_Tp_allocator()); 2935449: __new_finish 2935449: = std::__uninitialized_copy_a(__first, __last, 2935449: __new_finish, 2935449: _M_get_Tp_allocator()); 2935449: __new_finish 2935449: = std::__uninitialized_move_if_noexcept_a 2935449: (__position.base(), __old_finish, 2935449: __new_finish, _M_get_Tp_allocator()); 2935449: } 2935449: if (false) 2935449: { 2935449: std::_Destroy(__new_start, __new_finish, 2935449: _M_get_Tp_allocator()); 2935449: _M_deallocate(__new_start, __len); 2935449: ; 2935449: } 2935449: std::_Destroy(__old_start, __old_finish, 2935449: _M_get_Tp_allocator()); 2935449: ; 2935449: _M_deallocate(__old_start, 2935449: this->_M_impl._M_end_of_storage - __old_start); 2935449: this->_M_impl._M_start = __new_start; 2935449: this->_M_impl._M_finish = __new_finish; 2935449: this->_M_impl._M_end_of_storage = __new_start + __len; 2935449: } 2935449: } 2935449: } 2935449: # 1109 "/usr/arm-linux-gnueabi/include/c++/15/bits/vector.tcc" 3 2935449: template 2935449: 2935449: void 2935449: vector:: 2935449: _M_reallocate(size_type __n) 2935449: { 2935449: const iterator __begin = begin(), __end = end(); 2935449: if (size_type(__end - __begin) > __n) 2935449: __builtin_unreachable(); 2935449: _Bit_pointer __q = this->_M_allocate(__n); 2935449: iterator __start(std::__addressof(*__q), 0); 2935449: iterator __finish(_M_copy_aligned(__begin, __end, __start)); 2935449: this->_M_deallocate(); 2935449: this->_M_impl._M_start = __start; 2935449: this->_M_impl._M_finish = __finish; 2935449: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: vector:: 2935449: _M_fill_insert(iterator __position, size_type __n, bool __x) 2935449: { 2935449: if (__n == 0) 2935449: return; 2935449: if (capacity() - size() >= __n) 2935449: { 2935449: std::copy_backward(__position, end(), 2935449: this->_M_impl._M_finish + difference_type(__n)); 2935449: std::fill(__position, __position + difference_type(__n), __x); 2935449: this->_M_impl._M_finish += difference_type(__n); 2935449: } 2935449: else 2935449: { 2935449: const size_type __len = 2935449: _M_check_len(__n, "vector::_M_fill_insert"); 2935449: iterator __begin = begin(), __end = end(); 2935449: _Bit_pointer __q = this->_M_allocate(__len); 2935449: iterator __start(std::__addressof(*__q), 0); 2935449: iterator __i = _M_copy_aligned(__begin, __position, __start); 2935449: std::fill(__i, __i + difference_type(__n), __x); 2935449: iterator __finish = std::copy(__position, __end, 2935449: __i + difference_type(__n)); 2935449: this->_M_deallocate(); 2935449: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 2935449: this->_M_impl._M_start = __start; 2935449: this->_M_impl._M_finish = __finish; 2935449: } 2935449: } 2935449: 2935449: template 2935449: template 2935449: 2935449: void 2935449: vector:: 2935449: _M_insert_range(iterator __position, _ForwardIterator __first, 2935449: _ForwardIterator __last, std::forward_iterator_tag) 2935449: { 2935449: if (__first != __last) 2935449: { 2935449: size_type __n = std::distance(__first, __last); 2935449: if (capacity() - size() >= __n) 2935449: { 2935449: std::copy_backward(__position, end(), 2935449: this->_M_impl._M_finish 2935449: + difference_type(__n)); 2935449: std::copy(__first, __last, __position); 2935449: this->_M_impl._M_finish += difference_type(__n); 2935449: } 2935449: else 2935449: { 2935449: const size_type __len = 2935449: _M_check_len(__n, "vector::_M_insert_range"); 2935449: const iterator __begin = begin(), __end = end(); 2935449: _Bit_pointer __q = this->_M_allocate(__len); 2935449: iterator __start(std::__addressof(*__q), 0); 2935449: iterator __i = _M_copy_aligned(__begin, __position, __start); 2935449: __i = std::copy(__first, __last, __i); 2935449: iterator __finish = std::copy(__position, __end, __i); 2935449: this->_M_deallocate(); 2935449: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 2935449: this->_M_impl._M_start = __start; 2935449: this->_M_impl._M_finish = __finish; 2935449: } 2935449: } 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: vector:: 2935449: _M_insert_aux(iterator __position, bool __x) 2935449: { 2935449: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 2935449: { 2935449: std::copy_backward(__position, this->_M_impl._M_finish, 2935449: this->_M_impl._M_finish + 1); 2935449: *__position = __x; 2935449: ++this->_M_impl._M_finish; 2935449: } 2935449: else 2935449: { 2935449: const size_type __len = 2935449: _M_check_len(size_type(1), "vector::_M_insert_aux"); 2935449: _Bit_pointer __q = this->_M_allocate(__len); 2935449: iterator __start(std::__addressof(*__q), 0); 2935449: iterator __i = _M_copy_aligned(begin(), __position, __start); 2935449: *__i++ = __x; 2935449: iterator __finish = std::copy(__position, end(), __i); 2935449: this->_M_deallocate(); 2935449: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 2935449: this->_M_impl._M_start = __start; 2935449: this->_M_impl._M_finish = __finish; 2935449: } 2935449: } 2935449: 2935449: template 2935449: 2935449: typename vector::iterator 2935449: vector:: 2935449: _M_erase(iterator __position) 2935449: { 2935449: if (__position + 1 != end()) 2935449: std::copy(__position + 1, end(), __position); 2935449: --this->_M_impl._M_finish; 2935449: return __position; 2935449: } 2935449: 2935449: template 2935449: 2935449: typename vector::iterator 2935449: vector:: 2935449: _M_erase(iterator __first, iterator __last) 2935449: { 2935449: if (__first != __last) 2935449: _M_erase_at_end(std::copy(__last, end(), __first)); 2935449: return __first; 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: bool 2935449: vector:: 2935449: _M_shrink_to_fit() 2935449: { 2935449: if (capacity() - size() < int(_S_word_bit)) 2935449: return false; 2935449: if (true) 2935449: { 2935449: if (size_type __n = size()) 2935449: _M_reallocate(__n); 2935449: else 2935449: { 2935449: this->_M_deallocate(); 2935449: this->_M_impl._M_reset(); 2935449: } 2935449: return true; 2935449: } 2935449: if (false) 2935449: { return false; } 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: template 2935449: size_t 2935449: hash>:: 2935449: operator()(const std::vector& __b) const noexcept 2935449: { 2935449: size_t __hash = 0; 2935449: const size_t __words = __b.size() / _S_word_bit; 2935449: if (__words) 2935449: { 2935449: const size_t __clength = __words * sizeof(_Bit_type); 2935449: __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength); 2935449: } 2935449: 2935449: const size_t __extrabits = __b.size() % _S_word_bit; 2935449: if (__extrabits) 2935449: { 2935449: _Bit_type __hiword = *__b._M_impl._M_finish._M_p; 2935449: __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); 2935449: 2935449: const size_t __clength 2935449: = (__extrabits + 8 - 1) / 8; 2935449: if (__words) 2935449: __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash); 2935449: else 2935449: __hash = std::_Hash_impl::hash(&__hiword, __clength); 2935449: } 2935449: 2935449: return __hash; 2935449: } 2935449: 2935449: 2935449: } 2935449: # 75 "/usr/arm-linux-gnueabi/include/c++/15/vector" 2 3 2935449: # 88 "/usr/arm-linux-gnueabi/include/c++/15/vector" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 89 "/usr/arm-linux-gnueabi/include/c++/15/vector" 2 3 2935449: # 23 "/<>/src/client/WFConsulClient.cc" 2 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/utility" 1 3 2935449: # 70 "/usr/arm-linux-gnueabi/include/c++/15/utility" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_relops.h" 1 3 2935449: # 62 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_relops.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: namespace rel_ops 2935449: { 2935449: # 86 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_relops.h" 3 2935449: template 2935449: inline bool 2935449: operator!=(const _Tp& __x, const _Tp& __y) 2935449: { return !(__x == __y); } 2935449: # 99 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_relops.h" 3 2935449: template 2935449: inline bool 2935449: operator>(const _Tp& __x, const _Tp& __y) 2935449: { return __y < __x; } 2935449: # 112 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_relops.h" 3 2935449: template 2935449: inline bool 2935449: operator<=(const _Tp& __x, const _Tp& __y) 2935449: { return !(__y < __x); } 2935449: # 125 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_relops.h" 3 2935449: template 2935449: inline bool 2935449: operator>=(const _Tp& __x, const _Tp& __y) 2935449: { return !(__x < __y); } 2935449: } 2935449: 2935449: 2935449: } 2935449: # 71 "/usr/arm-linux-gnueabi/include/c++/15/utility" 2 3 2935449: # 103 "/usr/arm-linux-gnueabi/include/c++/15/utility" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 104 "/usr/arm-linux-gnueabi/include/c++/15/utility" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 237 "/usr/arm-linux-gnueabi/include/c++/15/utility" 3 2935449: 2935449: } 2935449: # 24 "/<>/src/client/WFConsulClient.cc" 2 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/functional" 1 3 2935449: # 55 "/usr/arm-linux-gnueabi/include/c++/15/functional" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 1 3 2935449: # 41 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/uses_allocator.h" 1 3 2935449: # 40 "/usr/arm-linux-gnueabi/include/c++/15/bits/uses_allocator.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: struct __erased_type { }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: using __is_erased_or_convertible 2935449: = __or_, is_same<_Tp, __erased_type>>; 2935449: 2935449: 2935449: struct allocator_arg_t { explicit allocator_arg_t() = default; }; 2935449: 2935449: constexpr allocator_arg_t allocator_arg = 2935449: allocator_arg_t(); 2935449: 2935449: template> 2935449: struct __uses_allocator_helper 2935449: : false_type { }; 2935449: 2935449: template 2935449: struct __uses_allocator_helper<_Tp, _Alloc, 2935449: __void_t> 2935449: : __is_erased_or_convertible<_Alloc, typename _Tp::allocator_type>::type 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct uses_allocator 2935449: : __uses_allocator_helper<_Tp, _Alloc>::type 2935449: { }; 2935449: 2935449: struct __uses_alloc_base { }; 2935449: 2935449: struct __uses_alloc0 : __uses_alloc_base 2935449: { 2935449: struct _Sink { void operator=(const void*) { } } _M_a; 2935449: }; 2935449: 2935449: template 2935449: struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; }; 2935449: 2935449: template 2935449: struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; }; 2935449: 2935449: template 2935449: struct __uses_alloc; 2935449: 2935449: template 2935449: struct __uses_alloc 2935449: : __conditional_t< 2935449: is_constructible<_Tp, allocator_arg_t, const _Alloc&, _Args...>::value, 2935449: __uses_alloc1<_Alloc>, 2935449: __uses_alloc2<_Alloc>> 2935449: { 2935449: 2935449: 2935449: static_assert(__or_< 2935449: is_constructible<_Tp, allocator_arg_t, const _Alloc&, _Args...>, 2935449: is_constructible<_Tp, _Args..., const _Alloc&>>::value, 2935449: "construction with an allocator must be possible" 2935449: " if uses_allocator is true"); 2935449: }; 2935449: 2935449: template 2935449: struct __uses_alloc 2935449: : __uses_alloc0 { }; 2935449: 2935449: template 2935449: using __uses_alloc_t = 2935449: __uses_alloc::value, _Tp, _Alloc, _Args...>; 2935449: 2935449: template 2935449: 2935449: inline __uses_alloc_t<_Tp, _Alloc, _Args...> 2935449: __use_alloc(const _Alloc& __a) 2935449: { 2935449: __uses_alloc_t<_Tp, _Alloc, _Args...> __ret; 2935449: __ret._M_a = std::__addressof(__a); 2935449: return __ret; 2935449: } 2935449: 2935449: template 2935449: void 2935449: __use_alloc(const _Alloc&&) = delete; 2935449: # 142 "/usr/arm-linux-gnueabi/include/c++/15/bits/uses_allocator.h" 3 2935449: template class _Predicate, 2935449: typename _Tp, typename _Alloc, typename... _Args> 2935449: struct __is_uses_allocator_predicate 2935449: : __conditional_t::value, 2935449: __or_<_Predicate<_Tp, allocator_arg_t, _Alloc, _Args...>, 2935449: _Predicate<_Tp, _Args..., _Alloc>>, 2935449: _Predicate<_Tp, _Args...>> { }; 2935449: 2935449: template 2935449: struct __is_uses_allocator_constructible 2935449: : __is_uses_allocator_predicate 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __is_nothrow_uses_allocator_constructible 2935449: : __is_uses_allocator_predicate 2935449: { }; 2935449: # 175 "/usr/arm-linux-gnueabi/include/c++/15/bits/uses_allocator.h" 3 2935449: template 2935449: void __uses_allocator_construct_impl(__uses_alloc0, _Tp* __ptr, 2935449: _Args&&... __args) 2935449: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)...); } 2935449: 2935449: template 2935449: void __uses_allocator_construct_impl(__uses_alloc1<_Alloc> __a, _Tp* __ptr, 2935449: _Args&&... __args) 2935449: { 2935449: ::new ((void*)__ptr) _Tp(allocator_arg, *__a._M_a, 2935449: std::forward<_Args>(__args)...); 2935449: } 2935449: 2935449: template 2935449: void __uses_allocator_construct_impl(__uses_alloc2<_Alloc> __a, _Tp* __ptr, 2935449: _Args&&... __args) 2935449: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)..., *__a._M_a); } 2935449: 2935449: template 2935449: void __uses_allocator_construct(const _Alloc& __a, _Tp* __ptr, 2935449: _Args&&... __args) 2935449: { 2935449: std::__uses_allocator_construct_impl( 2935449: std::__use_alloc<_Tp, _Alloc, _Args...>(__a), __ptr, 2935449: std::forward<_Args>(__args)...); 2935449: } 2935449: 2935449: 2935449: 2935449: } 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 2 3 2935449: # 57 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 58 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: class tuple; 2935449: 2935449: 2935449: template 2935449: struct __is_empty_non_tuple : is_empty<_Tp> { }; 2935449: 2935449: 2935449: template 2935449: struct __is_empty_non_tuple> : false_type { }; 2935449: 2935449: 2935449: template 2935449: using __empty_not_final 2935449: = __conditional_t<__is_final(_Tp), false_type, 2935449: __is_empty_non_tuple<_Tp>>; 2935449: 2935449: template::value> 2935449: struct _Head_base; 2935449: 2935449: 2935449: template 2935449: struct _Head_base<_Idx, _Head, true> 2935449: { 2935449: constexpr _Head_base() 2935449: : _M_head_impl() { } 2935449: 2935449: constexpr _Head_base(const _Head& __h) 2935449: : _M_head_impl(__h) { } 2935449: 2935449: constexpr _Head_base(const _Head_base&) = default; 2935449: constexpr _Head_base(_Head_base&&) = default; 2935449: 2935449: template 2935449: constexpr _Head_base(_UHead&& __h) 2935449: : _M_head_impl(std::forward<_UHead>(__h)) { } 2935449: 2935449: 2935449: _Head_base(allocator_arg_t, __uses_alloc0) 2935449: : _M_head_impl() { } 2935449: 2935449: template 2935449: 2935449: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 2935449: : _M_head_impl(allocator_arg, *__a._M_a) { } 2935449: 2935449: template 2935449: 2935449: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 2935449: : _M_head_impl(*__a._M_a) { } 2935449: 2935449: template 2935449: 2935449: _Head_base(__uses_alloc0, _UHead&& __uhead) 2935449: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 2935449: 2935449: template 2935449: 2935449: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 2935449: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 2935449: { } 2935449: 2935449: template 2935449: 2935449: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 2935449: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 2935449: 2935449: static constexpr _Head& 2935449: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 2935449: 2935449: static constexpr const _Head& 2935449: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 2935449: 2935449: [[__no_unique_address__]] _Head _M_head_impl; 2935449: }; 2935449: # 199 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: template 2935449: struct _Head_base<_Idx, _Head, false> 2935449: { 2935449: constexpr _Head_base() 2935449: : _M_head_impl() { } 2935449: 2935449: constexpr _Head_base(const _Head& __h) 2935449: : _M_head_impl(__h) { } 2935449: 2935449: constexpr _Head_base(const _Head_base&) = default; 2935449: constexpr _Head_base(_Head_base&&) = default; 2935449: 2935449: template 2935449: constexpr _Head_base(_UHead&& __h) 2935449: : _M_head_impl(std::forward<_UHead>(__h)) { } 2935449: 2935449: 2935449: _Head_base(allocator_arg_t, __uses_alloc0) 2935449: : _M_head_impl() { } 2935449: 2935449: template 2935449: 2935449: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 2935449: : _M_head_impl(allocator_arg, *__a._M_a) { } 2935449: 2935449: template 2935449: 2935449: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 2935449: : _M_head_impl(*__a._M_a) { } 2935449: 2935449: template 2935449: 2935449: _Head_base(__uses_alloc0, _UHead&& __uhead) 2935449: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 2935449: 2935449: template 2935449: 2935449: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 2935449: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 2935449: { } 2935449: 2935449: template 2935449: 2935449: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 2935449: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 2935449: 2935449: static constexpr _Head& 2935449: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 2935449: 2935449: static constexpr const _Head& 2935449: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 2935449: 2935449: _Head _M_head_impl; 2935449: }; 2935449: # 272 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: template 2935449: struct _Tuple_impl; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Tuple_impl<_Idx, _Head, _Tail...> 2935449: : public _Tuple_impl<_Idx + 1, _Tail...>, 2935449: private _Head_base<_Idx, _Head> 2935449: { 2935449: template friend struct _Tuple_impl; 2935449: 2935449: typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; 2935449: typedef _Head_base<_Idx, _Head> _Base; 2935449: 2935449: static constexpr _Head& 2935449: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 2935449: 2935449: static constexpr const _Head& 2935449: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 2935449: 2935449: static constexpr _Inherited& 2935449: _M_tail(_Tuple_impl& __t) noexcept { return __t; } 2935449: 2935449: static constexpr const _Inherited& 2935449: _M_tail(const _Tuple_impl& __t) noexcept { return __t; } 2935449: 2935449: constexpr _Tuple_impl() 2935449: : _Inherited(), _Base() { } 2935449: 2935449: explicit constexpr 2935449: _Tuple_impl(const _Head& __head, const _Tail&... __tail) 2935449: : _Inherited(__tail...), _Base(__head) 2935449: { } 2935449: 2935449: template> 2935449: explicit constexpr 2935449: _Tuple_impl(_UHead&& __head, _UTail&&... __tail) 2935449: : _Inherited(std::forward<_UTail>(__tail)...), 2935449: _Base(std::forward<_UHead>(__head)) 2935449: { } 2935449: 2935449: constexpr _Tuple_impl(const _Tuple_impl&) = default; 2935449: 2935449: 2935449: 2935449: _Tuple_impl& operator=(const _Tuple_impl&) = delete; 2935449: 2935449: _Tuple_impl(_Tuple_impl&&) = default; 2935449: 2935449: template 2935449: constexpr 2935449: _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) 2935449: : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 2935449: _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) 2935449: { } 2935449: 2935449: template 2935449: constexpr 2935449: _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 2935449: : _Inherited(std::move 2935449: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 2935449: _Base(std::forward<_UHead> 2935449: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) 2935449: { } 2935449: # 368 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: template 2935449: 2935449: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 2935449: : _Inherited(__tag, __a), 2935449: _Base(__tag, __use_alloc<_Head>(__a)) 2935449: { } 2935449: 2935449: template 2935449: 2935449: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 2935449: const _Head& __head, const _Tail&... __tail) 2935449: : _Inherited(__tag, __a, __tail...), 2935449: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) 2935449: { } 2935449: 2935449: template> 2935449: 2935449: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 2935449: _UHead&& __head, _UTail&&... __tail) 2935449: : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...), 2935449: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 2935449: std::forward<_UHead>(__head)) 2935449: { } 2935449: 2935449: template 2935449: 2935449: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 2935449: const _Tuple_impl& __in) 2935449: : _Inherited(__tag, __a, _M_tail(__in)), 2935449: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) 2935449: { } 2935449: 2935449: template 2935449: 2935449: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 2935449: _Tuple_impl&& __in) 2935449: : _Inherited(__tag, __a, std::move(_M_tail(__in))), 2935449: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 2935449: std::forward<_Head>(_M_head(__in))) 2935449: { } 2935449: 2935449: template 2935449: 2935449: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 2935449: const _Tuple_impl<_Idx, _UHead, _UTails...>& __in) 2935449: : _Inherited(__tag, __a, 2935449: _Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in)), 2935449: _Base(__use_alloc<_Head, _Alloc, const _UHead&>(__a), 2935449: _Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)) 2935449: { } 2935449: 2935449: template 2935449: 2935449: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 2935449: _Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 2935449: : _Inherited(__tag, __a, std::move 2935449: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 2935449: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 2935449: std::forward<_UHead> 2935449: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) 2935449: { } 2935449: # 463 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: template 2935449: 2935449: void 2935449: _M_assign(const _Tuple_impl<_Idx, _UElements...>& __in) 2935449: { 2935449: _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in); 2935449: _M_tail(*this)._M_assign( 2935449: _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)); 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_assign(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 2935449: { 2935449: _M_head(*this) = std::forward<_UHead> 2935449: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)); 2935449: _M_tail(*this)._M_assign( 2935449: std::move(_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))); 2935449: } 2935449: # 523 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: protected: 2935449: 2935449: void 2935449: _M_swap(_Tuple_impl& __in) 2935449: { 2935449: using std::swap; 2935449: swap(_M_head(*this), _M_head(__in)); 2935449: _Inherited::_M_swap(_M_tail(__in)); 2935449: } 2935449: # 542 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Tuple_impl<_Idx, _Head> 2935449: : private _Head_base<_Idx, _Head> 2935449: { 2935449: template friend struct _Tuple_impl; 2935449: 2935449: typedef _Head_base<_Idx, _Head> _Base; 2935449: 2935449: static constexpr _Head& 2935449: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 2935449: 2935449: static constexpr const _Head& 2935449: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 2935449: 2935449: constexpr 2935449: _Tuple_impl() 2935449: : _Base() { } 2935449: 2935449: explicit constexpr 2935449: _Tuple_impl(const _Head& __head) 2935449: : _Base(__head) 2935449: { } 2935449: 2935449: template 2935449: explicit constexpr 2935449: _Tuple_impl(_UHead&& __head) 2935449: : _Base(std::forward<_UHead>(__head)) 2935449: { } 2935449: 2935449: constexpr _Tuple_impl(const _Tuple_impl&) = default; 2935449: 2935449: 2935449: 2935449: _Tuple_impl& operator=(const _Tuple_impl&) = delete; 2935449: 2935449: 2935449: 2935449: 2935449: constexpr 2935449: _Tuple_impl(_Tuple_impl&& __in) 2935449: noexcept(is_nothrow_move_constructible<_Head>::value) 2935449: : _Base(static_cast<_Base&&>(__in)) 2935449: { } 2935449: 2935449: 2935449: template 2935449: constexpr 2935449: _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in) 2935449: : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) 2935449: { } 2935449: 2935449: template 2935449: constexpr 2935449: _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in) 2935449: : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 2935449: { } 2935449: # 624 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: template 2935449: 2935449: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 2935449: : _Base(__tag, __use_alloc<_Head>(__a)) 2935449: { } 2935449: 2935449: template 2935449: 2935449: _Tuple_impl(allocator_arg_t, const _Alloc& __a, 2935449: const _Head& __head) 2935449: : _Base(__use_alloc<_Head, _Alloc, const _Head&>(__a), __head) 2935449: { } 2935449: 2935449: template 2935449: 2935449: _Tuple_impl(allocator_arg_t, const _Alloc& __a, 2935449: _UHead&& __head) 2935449: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 2935449: std::forward<_UHead>(__head)) 2935449: { } 2935449: 2935449: template 2935449: 2935449: _Tuple_impl(allocator_arg_t, const _Alloc& __a, 2935449: const _Tuple_impl& __in) 2935449: : _Base(__use_alloc<_Head, _Alloc, const _Head&>(__a), _M_head(__in)) 2935449: { } 2935449: 2935449: template 2935449: 2935449: _Tuple_impl(allocator_arg_t, const _Alloc& __a, 2935449: _Tuple_impl&& __in) 2935449: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 2935449: std::forward<_Head>(_M_head(__in))) 2935449: { } 2935449: 2935449: template 2935449: 2935449: _Tuple_impl(allocator_arg_t, const _Alloc& __a, 2935449: const _Tuple_impl<_Idx, _UHead>& __in) 2935449: : _Base(__use_alloc<_Head, _Alloc, const _UHead&>(__a), 2935449: _Tuple_impl<_Idx, _UHead>::_M_head(__in)) 2935449: { } 2935449: 2935449: template 2935449: 2935449: _Tuple_impl(allocator_arg_t, const _Alloc& __a, 2935449: _Tuple_impl<_Idx, _UHead>&& __in) 2935449: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 2935449: std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 2935449: { } 2935449: # 703 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: template 2935449: 2935449: void 2935449: _M_assign(const _Tuple_impl<_Idx, _UHead>& __in) 2935449: { 2935449: _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in); 2935449: } 2935449: 2935449: template 2935449: 2935449: void 2935449: _M_assign(_Tuple_impl<_Idx, _UHead>&& __in) 2935449: { 2935449: _M_head(*this) 2935449: = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)); 2935449: } 2935449: # 749 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: protected: 2935449: 2935449: void 2935449: _M_swap(_Tuple_impl& __in) 2935449: { 2935449: using std::swap; 2935449: swap(_M_head(*this), _M_head(__in)); 2935449: } 2935449: # 766 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct _TupleConstraints 2935449: { 2935449: template 2935449: using __constructible = __and_...>; 2935449: 2935449: template 2935449: using __convertible = __and_...>; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: static constexpr bool __is_implicitly_constructible() 2935449: { 2935449: return __and_<__constructible<_UTypes...>, 2935449: __convertible<_UTypes...> 2935449: >::value; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: static constexpr bool __is_explicitly_constructible() 2935449: { 2935449: return __and_<__constructible<_UTypes...>, 2935449: __not_<__convertible<_UTypes...>> 2935449: >::value; 2935449: } 2935449: 2935449: static constexpr bool __is_implicitly_default_constructible() 2935449: { 2935449: return __and_... 2935449: >::value; 2935449: } 2935449: 2935449: static constexpr bool __is_explicitly_default_constructible() 2935449: { 2935449: return __and_..., 2935449: __not_<__and_< 2935449: std::__is_implicitly_default_constructible<_Types>...> 2935449: >>::value; 2935449: } 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct _TupleConstraints 2935449: { 2935449: template 2935449: static constexpr bool __is_implicitly_constructible() 2935449: { return false; } 2935449: 2935449: template 2935449: static constexpr bool __is_explicitly_constructible() 2935449: { return false; } 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: class tuple : public _Tuple_impl<0, _Elements...> 2935449: { 2935449: using _Inherited = _Tuple_impl<0, _Elements...>; 2935449: # 1352 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: template 2935449: using _TCC = _TupleConstraints<_Cond, _Elements...>; 2935449: 2935449: 2935449: template 2935449: using _ImplicitDefaultCtor = __enable_if_t< 2935449: _TCC<_Dummy>::__is_implicitly_default_constructible(), 2935449: bool>; 2935449: 2935449: 2935449: template 2935449: using _ExplicitDefaultCtor = __enable_if_t< 2935449: _TCC<_Dummy>::__is_explicitly_default_constructible(), 2935449: bool>; 2935449: 2935449: 2935449: template 2935449: using _ImplicitCtor = __enable_if_t< 2935449: _TCC<_Cond>::template __is_implicitly_constructible<_Args...>(), 2935449: bool>; 2935449: 2935449: 2935449: template 2935449: using _ExplicitCtor = __enable_if_t< 2935449: _TCC<_Cond>::template __is_explicitly_constructible<_Args...>(), 2935449: bool>; 2935449: 2935449: 2935449: template 2935449: static constexpr bool __nothrow_constructible() 2935449: { 2935449: return 2935449: __and_...>::value; 2935449: } 2935449: 2935449: 2935449: template 2935449: static constexpr bool __valid_args() 2935449: { 2935449: return sizeof...(_Elements) == 1 2935449: && !is_same>::value; 2935449: } 2935449: 2935449: 2935449: template 2935449: static constexpr bool __valid_args() 2935449: { return (sizeof...(_Tail) + 2) == sizeof...(_Elements); } 2935449: # 1409 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: template> 2935449: struct _UseOtherCtor 2935449: : false_type 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct _UseOtherCtor<_Tuple, tuple<_Tp>, tuple<_Up>> 2935449: : __or_, is_constructible<_Tp, _Tuple>>::type 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct _UseOtherCtor<_Tuple, tuple<_Tp>, tuple<_Tp>> 2935449: : true_type 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: static constexpr bool __use_other_ctor() 2935449: { return _UseOtherCtor<_Tuple>::value; } 2935449: # 1455 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: public: 2935449: template::value> = true> 2935449: constexpr 2935449: tuple() 2935449: noexcept(__and_...>::value) 2935449: : _Inherited() { } 2935449: 2935449: template::value> = false> 2935449: explicit constexpr 2935449: tuple() 2935449: noexcept(__and_...>::value) 2935449: : _Inherited() { } 2935449: 2935449: template= 1), 2935449: _ImplicitCtor<_NotEmpty, const _Elements&...> = true> 2935449: constexpr 2935449: tuple(const _Elements&... __elements) 2935449: noexcept(__nothrow_constructible()) 2935449: : _Inherited(__elements...) { } 2935449: 2935449: template= 1), 2935449: _ExplicitCtor<_NotEmpty, const _Elements&...> = false> 2935449: explicit constexpr 2935449: tuple(const _Elements&... __elements) 2935449: noexcept(__nothrow_constructible()) 2935449: : _Inherited(__elements...) { } 2935449: 2935449: template(), 2935449: _ImplicitCtor<_Valid, _UElements...> = true> 2935449: constexpr 2935449: tuple(_UElements&&... __elements) 2935449: noexcept(__nothrow_constructible<_UElements...>()) 2935449: : _Inherited(std::forward<_UElements>(__elements)...) 2935449: { ; } 2935449: 2935449: template(), 2935449: _ExplicitCtor<_Valid, _UElements...> = false> 2935449: explicit constexpr 2935449: tuple(_UElements&&... __elements) 2935449: noexcept(__nothrow_constructible<_UElements...>()) 2935449: : _Inherited(std::forward<_UElements>(__elements)...) 2935449: { ; } 2935449: 2935449: constexpr tuple(const tuple&) = default; 2935449: 2935449: constexpr tuple(tuple&&) = default; 2935449: 2935449: template&>(), 2935449: _ImplicitCtor<_Valid, const _UElements&...> = true> 2935449: constexpr 2935449: tuple(const tuple<_UElements...>& __in) 2935449: noexcept(__nothrow_constructible()) 2935449: : _Inherited(static_cast&>(__in)) 2935449: { ; } 2935449: 2935449: template&>(), 2935449: _ExplicitCtor<_Valid, const _UElements&...> = false> 2935449: explicit constexpr 2935449: tuple(const tuple<_UElements...>& __in) 2935449: noexcept(__nothrow_constructible()) 2935449: : _Inherited(static_cast&>(__in)) 2935449: { ; } 2935449: 2935449: template&&>(), 2935449: _ImplicitCtor<_Valid, _UElements...> = true> 2935449: constexpr 2935449: tuple(tuple<_UElements...>&& __in) 2935449: noexcept(__nothrow_constructible<_UElements...>()) 2935449: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 2935449: { ; } 2935449: 2935449: template&&>(), 2935449: _ExplicitCtor<_Valid, _UElements...> = false> 2935449: explicit constexpr 2935449: tuple(tuple<_UElements...>&& __in) 2935449: noexcept(__nothrow_constructible<_UElements...>()) 2935449: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 2935449: { ; } 2935449: 2935449: 2935449: 2935449: template::value> = true> 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a) 2935449: : _Inherited(__tag, __a) { } 2935449: 2935449: template::value> = false> 2935449: 2935449: explicit 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a) 2935449: : _Inherited(__tag, __a) { } 2935449: 2935449: template= 1), 2935449: _ImplicitCtor<_NotEmpty, const _Elements&...> = true> 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: const _Elements&... __elements) 2935449: : _Inherited(__tag, __a, __elements...) { } 2935449: 2935449: template= 1), 2935449: _ExplicitCtor<_NotEmpty, const _Elements&...> = false> 2935449: 2935449: explicit 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: const _Elements&... __elements) 2935449: : _Inherited(__tag, __a, __elements...) { } 2935449: 2935449: template(), 2935449: _ImplicitCtor<_Valid, _UElements...> = true> 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: _UElements&&... __elements) 2935449: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 2935449: { ; } 2935449: 2935449: template(), 2935449: _ExplicitCtor<_Valid, _UElements...> = false> 2935449: 2935449: explicit 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: _UElements&&... __elements) 2935449: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 2935449: { ; } 2935449: 2935449: template 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 2935449: : _Inherited(__tag, __a, static_cast(__in)) { } 2935449: 2935449: template 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 2935449: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 2935449: 2935449: template&>(), 2935449: _ImplicitCtor<_Valid, const _UElements&...> = true> 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: const tuple<_UElements...>& __in) 2935449: : _Inherited(__tag, __a, 2935449: static_cast&>(__in)) 2935449: { ; } 2935449: 2935449: template&>(), 2935449: _ExplicitCtor<_Valid, const _UElements&...> = false> 2935449: 2935449: explicit 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: const tuple<_UElements...>& __in) 2935449: : _Inherited(__tag, __a, 2935449: static_cast&>(__in)) 2935449: { ; } 2935449: 2935449: template&&>(), 2935449: _ImplicitCtor<_Valid, _UElements...> = true> 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: tuple<_UElements...>&& __in) 2935449: : _Inherited(__tag, __a, 2935449: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 2935449: { ; } 2935449: 2935449: template&&>(), 2935449: _ExplicitCtor<_Valid, _UElements...> = false> 2935449: 2935449: explicit 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: tuple<_UElements...>&& __in) 2935449: : _Inherited(__tag, __a, 2935449: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 2935449: { ; } 2935449: # 1887 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: private: 2935449: template 2935449: static constexpr 2935449: __enable_if_t 2935449: __assignable() 2935449: { return __and_...>::value; } 2935449: 2935449: 2935449: template 2935449: static constexpr bool __nothrow_assignable() 2935449: { 2935449: return 2935449: __and_...>::value; 2935449: } 2935449: 2935449: public: 2935449: 2935449: 2935449: tuple& 2935449: operator=(__conditional_t<__assignable(), 2935449: const tuple&, 2935449: const __nonesuch&> __in) 2935449: noexcept(__nothrow_assignable()) 2935449: { 2935449: this->_M_assign(__in); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: tuple& 2935449: operator=(__conditional_t<__assignable<_Elements...>(), 2935449: tuple&&, 2935449: __nonesuch&&> __in) 2935449: noexcept(__nothrow_assignable<_Elements...>()) 2935449: { 2935449: this->_M_assign(std::move(__in)); 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: 2935449: __enable_if_t<__assignable(), tuple&> 2935449: operator=(const tuple<_UElements...>& __in) 2935449: noexcept(__nothrow_assignable()) 2935449: { 2935449: this->_M_assign(__in); 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: 2935449: __enable_if_t<__assignable<_UElements...>(), tuple&> 2935449: operator=(tuple<_UElements...>&& __in) 2935449: noexcept(__nothrow_assignable<_UElements...>()) 2935449: { 2935449: this->_M_assign(std::move(__in)); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: swap(tuple& __in) 2935449: noexcept(__and_<__is_nothrow_swappable<_Elements>...>::value) 2935449: { _Inherited::_M_swap(__in); } 2935449: # 1967 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: }; 2935449: # 1983 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: template<> 2935449: class tuple<> 2935449: { 2935449: public: 2935449: 2935449: void swap(tuple&) noexcept { } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: tuple() = default; 2935449: 2935449: template 2935449: 2935449: tuple(allocator_arg_t, const _Alloc&) noexcept { } 2935449: template 2935449: 2935449: tuple(allocator_arg_t, const _Alloc&, const tuple&) noexcept { } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> 2935449: { 2935449: typedef _Tuple_impl<0, _T1, _T2> _Inherited; 2935449: 2935449: 2935449: template 2935449: using _ImplicitDefaultCtor = __enable_if_t< 2935449: _TupleConstraints<_Dummy, _U1, _U2>:: 2935449: __is_implicitly_default_constructible(), 2935449: bool>; 2935449: 2935449: 2935449: template 2935449: using _ExplicitDefaultCtor = __enable_if_t< 2935449: _TupleConstraints<_Dummy, _U1, _U2>:: 2935449: __is_explicitly_default_constructible(), 2935449: bool>; 2935449: 2935449: template 2935449: using _TCC = _TupleConstraints<_Dummy, _T1, _T2>; 2935449: 2935449: 2935449: template 2935449: using _ImplicitCtor = __enable_if_t< 2935449: _TCC<_Cond>::template __is_implicitly_constructible<_U1, _U2>(), 2935449: bool>; 2935449: 2935449: 2935449: template 2935449: using _ExplicitCtor = __enable_if_t< 2935449: _TCC<_Cond>::template __is_explicitly_constructible<_U1, _U2>(), 2935449: bool>; 2935449: 2935449: template 2935449: static constexpr bool __assignable() 2935449: { 2935449: return __and_, 2935449: is_assignable<_T2&, _U2>>::value; 2935449: } 2935449: 2935449: template 2935449: static constexpr bool __nothrow_assignable() 2935449: { 2935449: return __and_, 2935449: is_nothrow_assignable<_T2&, _U2>>::value; 2935449: } 2935449: 2935449: template 2935449: static constexpr bool __nothrow_constructible() 2935449: { 2935449: return __and_, 2935449: is_nothrow_constructible<_T2, _U2>>::value; 2935449: } 2935449: 2935449: static constexpr bool __nothrow_default_constructible() 2935449: { 2935449: return __and_, 2935449: is_nothrow_default_constructible<_T2>>::value; 2935449: } 2935449: 2935449: template 2935449: static constexpr bool __is_alloc_arg() 2935449: { return is_same<__remove_cvref_t<_U1>, allocator_arg_t>::value; } 2935449: # 2086 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: public: 2935449: template = true> 2935449: constexpr 2935449: tuple() 2935449: noexcept(__nothrow_default_constructible()) 2935449: : _Inherited() { } 2935449: 2935449: template = false> 2935449: explicit constexpr 2935449: tuple() 2935449: noexcept(__nothrow_default_constructible()) 2935449: : _Inherited() { } 2935449: 2935449: template = true> 2935449: constexpr 2935449: tuple(const _T1& __a1, const _T2& __a2) 2935449: noexcept(__nothrow_constructible()) 2935449: : _Inherited(__a1, __a2) { } 2935449: 2935449: template = false> 2935449: explicit constexpr 2935449: tuple(const _T1& __a1, const _T2& __a2) 2935449: noexcept(__nothrow_constructible()) 2935449: : _Inherited(__a1, __a2) { } 2935449: 2935449: template(), _U1, _U2> = true> 2935449: constexpr 2935449: tuple(_U1&& __a1, _U2&& __a2) 2935449: noexcept(__nothrow_constructible<_U1, _U2>()) 2935449: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) 2935449: { ; } 2935449: 2935449: template(), _U1, _U2> = false> 2935449: explicit constexpr 2935449: tuple(_U1&& __a1, _U2&& __a2) 2935449: noexcept(__nothrow_constructible<_U1, _U2>()) 2935449: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) 2935449: { ; } 2935449: 2935449: constexpr tuple(const tuple&) = default; 2935449: 2935449: constexpr tuple(tuple&&) = default; 2935449: 2935449: template = true> 2935449: constexpr 2935449: tuple(const tuple<_U1, _U2>& __in) 2935449: noexcept(__nothrow_constructible()) 2935449: : _Inherited(static_cast&>(__in)) 2935449: { ; } 2935449: 2935449: template = false> 2935449: explicit constexpr 2935449: tuple(const tuple<_U1, _U2>& __in) 2935449: noexcept(__nothrow_constructible()) 2935449: : _Inherited(static_cast&>(__in)) 2935449: { ; } 2935449: 2935449: template = true> 2935449: constexpr 2935449: tuple(tuple<_U1, _U2>&& __in) 2935449: noexcept(__nothrow_constructible<_U1, _U2>()) 2935449: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 2935449: { ; } 2935449: 2935449: template = false> 2935449: explicit constexpr 2935449: tuple(tuple<_U1, _U2>&& __in) 2935449: noexcept(__nothrow_constructible<_U1, _U2>()) 2935449: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 2935449: { ; } 2935449: 2935449: template = true> 2935449: constexpr 2935449: tuple(const pair<_U1, _U2>& __in) 2935449: noexcept(__nothrow_constructible()) 2935449: : _Inherited(__in.first, __in.second) 2935449: { ; } 2935449: 2935449: template = false> 2935449: explicit constexpr 2935449: tuple(const pair<_U1, _U2>& __in) 2935449: noexcept(__nothrow_constructible()) 2935449: : _Inherited(__in.first, __in.second) 2935449: { ; } 2935449: 2935449: template = true> 2935449: constexpr 2935449: tuple(pair<_U1, _U2>&& __in) 2935449: noexcept(__nothrow_constructible<_U1, _U2>()) 2935449: : _Inherited(std::forward<_U1>(__in.first), 2935449: std::forward<_U2>(__in.second)) 2935449: { ; } 2935449: 2935449: template = false> 2935449: explicit constexpr 2935449: tuple(pair<_U1, _U2>&& __in) 2935449: noexcept(__nothrow_constructible<_U1, _U2>()) 2935449: : _Inherited(std::forward<_U1>(__in.first), 2935449: std::forward<_U2>(__in.second)) 2935449: { ; } 2935449: 2935449: 2935449: 2935449: template::value, _T1, _T2> = true> 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a) 2935449: : _Inherited(__tag, __a) { } 2935449: 2935449: template::value, _T1, _T2> = false> 2935449: 2935449: explicit 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a) 2935449: : _Inherited(__tag, __a) { } 2935449: 2935449: template = true> 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: const _T1& __a1, const _T2& __a2) 2935449: : _Inherited(__tag, __a, __a1, __a2) { } 2935449: 2935449: template = false> 2935449: explicit 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: const _T1& __a1, const _T2& __a2) 2935449: : _Inherited(__tag, __a, __a1, __a2) { } 2935449: 2935449: template = true> 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2) 2935449: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 2935449: std::forward<_U2>(__a2)) 2935449: { ; } 2935449: 2935449: template = false> 2935449: explicit 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: _U1&& __a1, _U2&& __a2) 2935449: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 2935449: std::forward<_U2>(__a2)) 2935449: { ; } 2935449: 2935449: template 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 2935449: : _Inherited(__tag, __a, static_cast(__in)) { } 2935449: 2935449: template 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 2935449: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 2935449: 2935449: template = true> 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: const tuple<_U1, _U2>& __in) 2935449: : _Inherited(__tag, __a, 2935449: static_cast&>(__in)) 2935449: { ; } 2935449: 2935449: template = false> 2935449: explicit 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: const tuple<_U1, _U2>& __in) 2935449: : _Inherited(__tag, __a, 2935449: static_cast&>(__in)) 2935449: { ; } 2935449: 2935449: template = true> 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) 2935449: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 2935449: { ; } 2935449: 2935449: template = false> 2935449: explicit 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) 2935449: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 2935449: { ; } 2935449: 2935449: template = true> 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: const pair<_U1, _U2>& __in) 2935449: : _Inherited(__tag, __a, __in.first, __in.second) 2935449: { ; } 2935449: 2935449: template = false> 2935449: explicit 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, 2935449: const pair<_U1, _U2>& __in) 2935449: : _Inherited(__tag, __a, __in.first, __in.second) 2935449: { ; } 2935449: 2935449: template = true> 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) 2935449: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 2935449: std::forward<_U2>(__in.second)) 2935449: { ; } 2935449: 2935449: template = false> 2935449: explicit 2935449: 2935449: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) 2935449: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 2935449: std::forward<_U2>(__in.second)) 2935449: { ; } 2935449: 2935449: 2935449: 2935449: 2935449: tuple& 2935449: operator=(__conditional_t<__assignable(), 2935449: const tuple&, 2935449: const __nonesuch&> __in) 2935449: noexcept(__nothrow_assignable()) 2935449: { 2935449: this->_M_assign(__in); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: tuple& 2935449: operator=(__conditional_t<__assignable<_T1, _T2>(), 2935449: tuple&&, 2935449: __nonesuch&&> __in) 2935449: noexcept(__nothrow_assignable<_T1, _T2>()) 2935449: { 2935449: this->_M_assign(std::move(__in)); 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: 2935449: __enable_if_t<__assignable(), tuple&> 2935449: operator=(const tuple<_U1, _U2>& __in) 2935449: noexcept(__nothrow_assignable()) 2935449: { 2935449: this->_M_assign(__in); 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: 2935449: __enable_if_t<__assignable<_U1, _U2>(), tuple&> 2935449: operator=(tuple<_U1, _U2>&& __in) 2935449: noexcept(__nothrow_assignable<_U1, _U2>()) 2935449: { 2935449: this->_M_assign(std::move(__in)); 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: 2935449: __enable_if_t<__assignable(), tuple&> 2935449: operator=(const pair<_U1, _U2>& __in) 2935449: noexcept(__nothrow_assignable()) 2935449: { 2935449: this->_M_head(*this) = __in.first; 2935449: this->_M_tail(*this)._M_head(*this) = __in.second; 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: 2935449: __enable_if_t<__assignable<_U1, _U2>(), tuple&> 2935449: operator=(pair<_U1, _U2>&& __in) 2935449: noexcept(__nothrow_assignable<_U1, _U2>()) 2935449: { 2935449: this->_M_head(*this) = std::forward<_U1>(__in.first); 2935449: this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: void 2935449: swap(tuple& __in) 2935449: noexcept(__and_<__is_nothrow_swappable<_T1>, 2935449: __is_nothrow_swappable<_T2>>::value) 2935449: { _Inherited::_M_swap(__in); } 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct tuple_size> 2935449: : public integral_constant { }; 2935449: # 2418 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: template 2935449: struct tuple_element<__i, tuple<_Types...>> 2935449: { 2935449: static_assert(__i < sizeof...(_Types), "tuple index must be in range"); 2935449: 2935449: using type = typename _Nth_type<__i, _Types...>::type; 2935449: }; 2935449: 2935449: template 2935449: constexpr _Head& 2935449: __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 2935449: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 2935449: 2935449: template 2935449: constexpr const _Head& 2935449: __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 2935449: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 2935449: 2935449: 2935449: template 2935449: __enable_if_t<(__i >= sizeof...(_Types))> 2935449: __get_helper(const tuple<_Types...>&) = delete; 2935449: 2935449: 2935449: template 2935449: constexpr __tuple_element_t<__i, tuple<_Elements...>>& 2935449: get(tuple<_Elements...>& __t) noexcept 2935449: { return std::__get_helper<__i>(__t); } 2935449: 2935449: 2935449: template 2935449: constexpr const __tuple_element_t<__i, tuple<_Elements...>>& 2935449: get(const tuple<_Elements...>& __t) noexcept 2935449: { return std::__get_helper<__i>(__t); } 2935449: 2935449: 2935449: template 2935449: constexpr __tuple_element_t<__i, tuple<_Elements...>>&& 2935449: get(tuple<_Elements...>&& __t) noexcept 2935449: { 2935449: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 2935449: return std::forward<__element_type>(std::__get_helper<__i>(__t)); 2935449: } 2935449: 2935449: 2935449: template 2935449: constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& 2935449: get(const tuple<_Elements...>&& __t) noexcept 2935449: { 2935449: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 2935449: return std::forward(std::__get_helper<__i>(__t)); 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: constexpr __enable_if_t<(__i >= sizeof...(_Elements))> 2935449: get(const tuple<_Elements...>&) = delete; 2935449: # 2578 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: template 2935449: struct __tuple_compare 2935449: { 2935449: static constexpr bool 2935449: __eq(const _Tp& __t, const _Up& __u) 2935449: { 2935449: return bool(std::get<__i>(__t) == std::get<__i>(__u)) 2935449: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__eq(__t, __u); 2935449: } 2935449: 2935449: static constexpr bool 2935449: __less(const _Tp& __t, const _Up& __u) 2935449: { 2935449: return bool(std::get<__i>(__t) < std::get<__i>(__u)) 2935449: || (!bool(std::get<__i>(__u) < std::get<__i>(__t)) 2935449: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u)); 2935449: } 2935449: }; 2935449: 2935449: template 2935449: struct __tuple_compare<_Tp, _Up, __size, __size> 2935449: { 2935449: static constexpr bool 2935449: __eq(const _Tp&, const _Up&) { return true; } 2935449: 2935449: static constexpr bool 2935449: __less(const _Tp&, const _Up&) { return false; } 2935449: }; 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: constexpr bool 2935449: operator==(const tuple<_TElements...>& __t, 2935449: const tuple<_UElements...>& __u) 2935449: { 2935449: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 2935449: "tuple objects can only be compared if they have equal sizes."); 2935449: using __compare = __tuple_compare, 2935449: tuple<_UElements...>, 2935449: 0, sizeof...(_TElements)>; 2935449: return __compare::__eq(__t, __u); 2935449: } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: constexpr bool 2935449: operator<(const tuple<_TElements...>& __t, 2935449: const tuple<_UElements...>& __u) 2935449: { 2935449: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 2935449: "tuple objects can only be compared if they have equal sizes."); 2935449: using __compare = __tuple_compare, 2935449: tuple<_UElements...>, 2935449: 0, sizeof...(_TElements)>; 2935449: return __compare::__less(__t, __u); 2935449: } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: constexpr bool 2935449: operator!=(const tuple<_TElements...>& __t, 2935449: const tuple<_UElements...>& __u) 2935449: { return !(__t == __u); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: constexpr bool 2935449: operator>(const tuple<_TElements...>& __t, 2935449: const tuple<_UElements...>& __u) 2935449: { return __u < __t; } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: constexpr bool 2935449: operator<=(const tuple<_TElements...>& __t, 2935449: const tuple<_UElements...>& __u) 2935449: { return !(__u < __t); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: constexpr bool 2935449: operator>=(const tuple<_TElements...>& __t, 2935449: const tuple<_UElements...>& __u) 2935449: { return !(__t < __u); } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: constexpr tuple::__type...> 2935449: make_tuple(_Elements&&... __args) 2935449: { 2935449: typedef tuple::__type...> 2935449: __result_type; 2935449: return __result_type(std::forward<_Elements>(__args)...); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: constexpr tuple<_Elements&&...> 2935449: forward_as_tuple(_Elements&&... __args) noexcept 2935449: { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); } 2935449: 2935449: 2935449: template 2935449: struct __make_tuple_impl; 2935449: 2935449: template 2935449: struct __make_tuple_impl<_Idx, tuple<_Tp...>, _Tuple, _Nm> 2935449: : __make_tuple_impl<_Idx + 1, 2935449: tuple<_Tp..., __tuple_element_t<_Idx, _Tuple>>, 2935449: _Tuple, _Nm> 2935449: { }; 2935449: 2935449: template 2935449: struct __make_tuple_impl<_Nm, tuple<_Tp...>, _Tuple, _Nm> 2935449: { 2935449: typedef tuple<_Tp...> __type; 2935449: }; 2935449: 2935449: template 2935449: struct __do_make_tuple 2935449: : __make_tuple_impl<0, tuple<>, _Tuple, tuple_size<_Tuple>::value> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct __make_tuple 2935449: : public __do_make_tuple<__remove_cvref_t<_Tuple>> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct __combine_tuples; 2935449: 2935449: template<> 2935449: struct __combine_tuples<> 2935449: { 2935449: typedef tuple<> __type; 2935449: }; 2935449: 2935449: template 2935449: struct __combine_tuples> 2935449: { 2935449: typedef tuple<_Ts...> __type; 2935449: }; 2935449: 2935449: template 2935449: struct __combine_tuples, tuple<_T2s...>, _Rem...> 2935449: { 2935449: typedef typename __combine_tuples, 2935449: _Rem...>::__type __type; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __tuple_cat_result 2935449: { 2935449: typedef typename __combine_tuples 2935449: ::__type...>::__type __type; 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __make_1st_indices; 2935449: 2935449: template<> 2935449: struct __make_1st_indices<> 2935449: { 2935449: typedef _Index_tuple<> __type; 2935449: }; 2935449: 2935449: template 2935449: struct __make_1st_indices<_Tp, _Tpls...> 2935449: { 2935449: typedef typename _Build_index_tuple::type>::value>::__type __type; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __tuple_concater; 2935449: 2935449: template 2935449: struct __tuple_concater<_Ret, _Index_tuple<_Is...>, _Tp, _Tpls...> 2935449: { 2935449: template 2935449: static constexpr _Ret 2935449: _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us) 2935449: { 2935449: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 2935449: typedef __tuple_concater<_Ret, __idx, _Tpls...> __next; 2935449: return __next::_S_do(std::forward<_Tpls>(__tps)..., 2935449: std::forward<_Us>(__us)..., 2935449: std::get<_Is>(std::forward<_Tp>(__tp))...); 2935449: } 2935449: }; 2935449: 2935449: template 2935449: struct __tuple_concater<_Ret, _Index_tuple<>> 2935449: { 2935449: template 2935449: static constexpr _Ret 2935449: _S_do(_Us&&... __us) 2935449: { 2935449: return _Ret(std::forward<_Us>(__us)...); 2935449: } 2935449: }; 2935449: 2935449: template 2935449: struct __is_tuple_like_impl> : true_type 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template...>::value>::type> 2935449: 2935449: constexpr auto 2935449: tuple_cat(_Tpls&&... __tpls) 2935449: -> typename __tuple_cat_result<_Tpls...>::__type 2935449: { 2935449: typedef typename __tuple_cat_result<_Tpls...>::__type __ret; 2935449: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 2935449: typedef __tuple_concater<__ret, __idx, _Tpls...> __concater; 2935449: return __concater::_S_do(std::forward<_Tpls>(__tpls)...); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: constexpr tuple<_Elements&...> 2935449: tie(_Elements&... __args) noexcept 2935449: { return tuple<_Elements&...>(__args...); } 2935449: 2935449: 2935449: template 2935449: 2935449: inline 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: 2935449: swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) 2935449: noexcept(noexcept(__x.swap(__y))) 2935449: { __x.swap(__y); } 2935449: # 2855 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: template 2935449: struct uses_allocator, _Alloc> : true_type { }; 2935449: # 2867 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: template 2935449: template 2935449: 2935449: inline 2935449: pair<_T1, _T2>:: 2935449: pair(piecewise_construct_t, 2935449: tuple<_Args1...> __first, tuple<_Args2...> __second) 2935449: : pair(__first, __second, 2935449: typename _Build_index_tuple::__type(), 2935449: typename _Build_index_tuple::__type()) 2935449: { } 2935449: 2935449: template 2935449: template 2935449: inline 2935449: pair<_T1, _T2>:: 2935449: pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2, 2935449: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) 2935449: : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...), 2935449: second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) 2935449: { } 2935449: # 3029 "/usr/arm-linux-gnueabi/include/c++/15/tuple" 3 2935449: 2935449: } 2935449: # 56 "/usr/arm-linux-gnueabi/include/c++/15/functional" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 1 3 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/typeinfo" 1 3 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/typeinfo" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 43 "/usr/arm-linux-gnueabi/include/c++/15/typeinfo" 2 3 2935449: 2935449: #pragma GCC visibility push(default) 2935449: 2935449: extern "C++" { 2935449: 2935449: namespace __cxxabiv1 2935449: { 2935449: class __class_type_info; 2935449: } 2935449: # 85 "/usr/arm-linux-gnueabi/include/c++/15/typeinfo" 3 2935449: namespace std 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: class type_info 2935449: { 2935449: public: 2935449: 2935449: 2935449: 2935449: 2935449: virtual ~type_info(); 2935449: 2935449: 2935449: 2935449: const char* name() const noexcept 2935449: { return __name[0] == '*' ? __name + 1 : __name; } 2935449: 2935449: 2935449: 2935449: bool before(const type_info& __arg) const noexcept; 2935449: 2935449: 2935449: bool operator==(const type_info& __arg) const noexcept; 2935449: 2935449: 2935449: bool operator!=(const type_info& __arg) const noexcept 2935449: { return !operator==(__arg); } 2935449: 2935449: 2935449: 2935449: size_t hash_code() const noexcept 2935449: { 2935449: 2935449: return _Hash_bytes(name(), __builtin_strlen(name()), 2935449: static_cast(0xc70f6907UL)); 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: virtual bool __is_pointer_p() const; 2935449: 2935449: 2935449: virtual bool __is_function_p() const; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, 2935449: unsigned __outer) const; 2935449: 2935449: 2935449: virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, 2935449: void **__obj_ptr) const; 2935449: 2935449: protected: 2935449: const char *__name; 2935449: 2935449: explicit type_info(const char *__n): __name(__n) { } 2935449: 2935449: private: 2935449: 2935449: 2935449: type_info& operator=(const type_info&) = delete; 2935449: type_info(const type_info&) = delete; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: bool __equal(const type_info&) const noexcept; 2935449: 2935449: }; 2935449: # 224 "/usr/arm-linux-gnueabi/include/c++/15/typeinfo" 3 2935449: class bad_cast : public exception 2935449: { 2935449: public: 2935449: bad_cast() noexcept { } 2935449: 2935449: 2935449: 2935449: virtual ~bad_cast() noexcept; 2935449: 2935449: 2935449: virtual const char* what() const noexcept; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: class bad_typeid : public exception 2935449: { 2935449: public: 2935449: bad_typeid () noexcept { } 2935449: 2935449: 2935449: 2935449: virtual ~bad_typeid() noexcept; 2935449: 2935449: 2935449: virtual const char* what() const noexcept; 2935449: }; 2935449: } 2935449: 2935449: } 2935449: 2935449: #pragma GCC visibility pop 2935449: # 43 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: class bad_function_call : public std::exception 2935449: { 2935449: public: 2935449: virtual ~bad_function_call() noexcept; 2935449: 2935449: const char* what() const noexcept; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __is_location_invariant 2935449: : is_trivially_copyable<_Tp>::type 2935449: { }; 2935449: 2935449: class _Undefined_class; 2935449: 2935449: union _Nocopy_types 2935449: { 2935449: void* _M_object; 2935449: const void* _M_const_object; 2935449: void (*_M_function_pointer)(); 2935449: void (_Undefined_class::*_M_member_pointer)(); 2935449: }; 2935449: 2935449: union [[gnu::may_alias]] _Any_data 2935449: { 2935449: void* _M_access() noexcept { return &_M_pod_data[0]; } 2935449: const void* _M_access() const noexcept { return &_M_pod_data[0]; } 2935449: 2935449: template 2935449: _Tp& 2935449: _M_access() noexcept 2935449: { return *static_cast<_Tp*>(_M_access()); } 2935449: 2935449: template 2935449: const _Tp& 2935449: _M_access() const noexcept 2935449: { return *static_cast(_M_access()); } 2935449: 2935449: _Nocopy_types _M_unused; 2935449: char _M_pod_data[sizeof(_Nocopy_types)]; 2935449: }; 2935449: 2935449: enum _Manager_operation 2935449: { 2935449: __get_type_info, 2935449: __get_functor_ptr, 2935449: __clone_functor, 2935449: __destroy_functor 2935449: }; 2935449: 2935449: template 2935449: class function; 2935449: 2935449: 2935449: class _Function_base 2935449: { 2935449: public: 2935449: static const size_t _M_max_size = sizeof(_Nocopy_types); 2935449: static const size_t _M_max_align = __alignof__(_Nocopy_types); 2935449: 2935449: template 2935449: class _Base_manager 2935449: { 2935449: protected: 2935449: static const bool __stored_locally = 2935449: (__is_location_invariant<_Functor>::value 2935449: && sizeof(_Functor) <= _M_max_size 2935449: && __alignof__(_Functor) <= _M_max_align 2935449: && (_M_max_align % __alignof__(_Functor) == 0)); 2935449: 2935449: using _Local_storage = integral_constant; 2935449: 2935449: 2935449: static _Functor* 2935449: _M_get_pointer(const _Any_data& __source) noexcept 2935449: { 2935449: if (__stored_locally) 2935449: { 2935449: const _Functor& __f = __source._M_access<_Functor>(); 2935449: return const_cast<_Functor*>(std::__addressof(__f)); 2935449: } 2935449: else 2935449: return __source._M_access<_Functor*>(); 2935449: } 2935449: 2935449: private: 2935449: 2935449: 2935449: template 2935449: static void 2935449: _M_create(_Any_data& __dest, _Fn&& __f, true_type) 2935449: { 2935449: ::new (__dest._M_access()) _Functor(std::forward<_Fn>(__f)); 2935449: } 2935449: 2935449: 2935449: template 2935449: static void 2935449: _M_create(_Any_data& __dest, _Fn&& __f, false_type) 2935449: { 2935449: __dest._M_access<_Functor*>() 2935449: = new _Functor(std::forward<_Fn>(__f)); 2935449: } 2935449: 2935449: 2935449: static void 2935449: _M_destroy(_Any_data& __victim, true_type) 2935449: { 2935449: __victim._M_access<_Functor>().~_Functor(); 2935449: } 2935449: 2935449: 2935449: static void 2935449: _M_destroy(_Any_data& __victim, false_type) 2935449: { 2935449: delete __victim._M_access<_Functor*>(); 2935449: } 2935449: 2935449: public: 2935449: static bool 2935449: _M_manager(_Any_data& __dest, const _Any_data& __source, 2935449: _Manager_operation __op) 2935449: { 2935449: switch (__op) 2935449: { 2935449: case __get_type_info: 2935449: 2935449: __dest._M_access() = &typeid(_Functor); 2935449: 2935449: 2935449: 2935449: break; 2935449: 2935449: case __get_functor_ptr: 2935449: __dest._M_access<_Functor*>() = _M_get_pointer(__source); 2935449: break; 2935449: 2935449: case __clone_functor: 2935449: _M_init_functor(__dest, 2935449: *const_cast(_M_get_pointer(__source))); 2935449: break; 2935449: 2935449: case __destroy_functor: 2935449: _M_destroy(__dest, _Local_storage()); 2935449: break; 2935449: } 2935449: return false; 2935449: } 2935449: 2935449: template 2935449: static void 2935449: _M_init_functor(_Any_data& __functor, _Fn&& __f) 2935449: noexcept(__and_<_Local_storage, 2935449: is_nothrow_constructible<_Functor, _Fn>>::value) 2935449: { 2935449: _M_create(__functor, std::forward<_Fn>(__f), _Local_storage()); 2935449: } 2935449: 2935449: template 2935449: static bool 2935449: _M_not_empty_function(const function<_Signature>& __f) noexcept 2935449: { return static_cast(__f); } 2935449: 2935449: template 2935449: static bool 2935449: _M_not_empty_function(_Tp* __fp) noexcept 2935449: { return __fp != nullptr; } 2935449: 2935449: template 2935449: static bool 2935449: _M_not_empty_function(_Tp _Class::* __mp) noexcept 2935449: { return __mp != nullptr; } 2935449: 2935449: template 2935449: static bool 2935449: _M_not_empty_function(const _Tp&) noexcept 2935449: { return true; } 2935449: }; 2935449: 2935449: _Function_base() = default; 2935449: 2935449: ~_Function_base() 2935449: { 2935449: if (_M_manager) 2935449: _M_manager(_M_functor, _M_functor, __destroy_functor); 2935449: } 2935449: 2935449: bool _M_empty() const { return !_M_manager; } 2935449: 2935449: using _Manager_type 2935449: = bool (*)(_Any_data&, const _Any_data&, _Manager_operation); 2935449: 2935449: _Any_data _M_functor{}; 2935449: _Manager_type _M_manager{}; 2935449: }; 2935449: 2935449: template 2935449: class _Function_handler; 2935449: 2935449: template 2935449: class _Function_handler<_Res(_ArgTypes...), _Functor> 2935449: : public _Function_base::_Base_manager<_Functor> 2935449: { 2935449: using _Base = _Function_base::_Base_manager<_Functor>; 2935449: 2935449: public: 2935449: static bool 2935449: _M_manager(_Any_data& __dest, const _Any_data& __source, 2935449: _Manager_operation __op) 2935449: { 2935449: switch (__op) 2935449: { 2935449: 2935449: case __get_type_info: 2935449: __dest._M_access() = &typeid(_Functor); 2935449: break; 2935449: 2935449: case __get_functor_ptr: 2935449: __dest._M_access<_Functor*>() = _Base::_M_get_pointer(__source); 2935449: break; 2935449: 2935449: default: 2935449: _Base::_M_manager(__dest, __source, __op); 2935449: } 2935449: return false; 2935449: } 2935449: 2935449: static _Res 2935449: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 2935449: { 2935449: return std::__invoke_r<_Res>(*_Base::_M_get_pointer(__functor), 2935449: std::forward<_ArgTypes>(__args)...); 2935449: } 2935449: 2935449: template 2935449: static constexpr bool 2935449: _S_nothrow_init() noexcept 2935449: { 2935449: return __and_>::value; 2935449: } 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: class _Function_handler 2935449: { 2935449: public: 2935449: static bool 2935449: _M_manager(_Any_data&, const _Any_data&, _Manager_operation) 2935449: { return false; } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template::value> 2935449: struct _Target_handler 2935449: : _Function_handler<_Signature, typename remove_cv<_Functor>::type> 2935449: { }; 2935449: 2935449: template 2935449: struct _Target_handler<_Signature, _Functor, false> 2935449: : _Function_handler 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: class function<_Res(_ArgTypes...)> 2935449: : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>, 2935449: private _Function_base 2935449: { 2935449: 2935449: 2935449: template, function>::value> 2935449: using _Decay_t 2935449: = typename __enable_if_t>::type; 2935449: 2935449: template, 2935449: typename _Res2 = __invoke_result<_DFunc&, _ArgTypes...>> 2935449: struct _Callable 2935449: : __is_invocable_impl<_Res2, _Res>::type 2935449: { }; 2935449: 2935449: template 2935449: using _Requires = __enable_if_t<_Cond::value, _Tp>; 2935449: 2935449: template 2935449: using _Handler 2935449: = _Function_handler<_Res(_ArgTypes...), __decay_t<_Functor>>; 2935449: 2935449: public: 2935449: typedef _Res result_type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: function() noexcept 2935449: : _Function_base() { } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: function(nullptr_t) noexcept 2935449: : _Function_base() { } 2935449: # 388 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: function(const function& __x) 2935449: : _Function_base() 2935449: { 2935449: if (static_cast(__x)) 2935449: { 2935449: __x._M_manager(_M_functor, __x._M_functor, __clone_functor); 2935449: _M_invoker = __x._M_invoker; 2935449: _M_manager = __x._M_manager; 2935449: } 2935449: } 2935449: # 406 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: function(function&& __x) noexcept 2935449: : _Function_base(), _M_invoker(__x._M_invoker) 2935449: { 2935449: if (static_cast(__x)) 2935449: { 2935449: _M_functor = __x._M_functor; 2935449: _M_manager = __x._M_manager; 2935449: __x._M_manager = nullptr; 2935449: __x._M_invoker = nullptr; 2935449: } 2935449: } 2935449: # 435 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: template>> 2935449: function(_Functor&& __f) 2935449: noexcept(_Handler<_Functor>::template _S_nothrow_init<_Functor>()) 2935449: : _Function_base() 2935449: { 2935449: static_assert(is_copy_constructible<__decay_t<_Functor>>::value, 2935449: "std::function target must be copy-constructible"); 2935449: static_assert(is_constructible<__decay_t<_Functor>, _Functor>::value, 2935449: "std::function target must be constructible from the " 2935449: "constructor argument"); 2935449: 2935449: using _My_handler = _Handler<_Functor>; 2935449: 2935449: if (_My_handler::_M_not_empty_function(__f)) 2935449: { 2935449: _My_handler::_M_init_functor(_M_functor, 2935449: std::forward<_Functor>(__f)); 2935449: _M_invoker = &_My_handler::_M_invoke; 2935449: _M_manager = &_My_handler::_M_manager; 2935449: } 2935449: } 2935449: # 470 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: function& 2935449: operator=(const function& __x) 2935449: { 2935449: function(__x).swap(*this); 2935449: return *this; 2935449: } 2935449: # 488 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: function& 2935449: operator=(function&& __x) noexcept 2935449: { 2935449: function(std::move(__x)).swap(*this); 2935449: return *this; 2935449: } 2935449: # 502 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: function& 2935449: operator=(nullptr_t) noexcept 2935449: { 2935449: if (_M_manager) 2935449: { 2935449: _M_manager(_M_functor, _M_functor, __destroy_functor); 2935449: _M_manager = nullptr; 2935449: _M_invoker = nullptr; 2935449: } 2935449: return *this; 2935449: } 2935449: # 531 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: template 2935449: _Requires<_Callable<_Functor>, function&> 2935449: operator=(_Functor&& __f) 2935449: noexcept(_Handler<_Functor>::template _S_nothrow_init<_Functor>()) 2935449: { 2935449: function(std::forward<_Functor>(__f)).swap(*this); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: template 2935449: function& 2935449: operator=(reference_wrapper<_Functor> __f) noexcept 2935449: { 2935449: function(__f).swap(*this); 2935449: return *this; 2935449: } 2935449: # 558 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: void swap(function& __x) noexcept 2935449: { 2935449: std::swap(_M_functor, __x._M_functor); 2935449: std::swap(_M_manager, __x._M_manager); 2935449: std::swap(_M_invoker, __x._M_invoker); 2935449: } 2935449: # 575 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: explicit operator bool() const noexcept 2935449: { return !_M_empty(); } 2935449: # 588 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: _Res 2935449: operator()(_ArgTypes... __args) const 2935449: { 2935449: if (_M_empty()) 2935449: __throw_bad_function_call(); 2935449: return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...); 2935449: } 2935449: # 607 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: const type_info& 2935449: target_type() const noexcept 2935449: { 2935449: if (_M_manager) 2935449: { 2935449: _Any_data __typeinfo_result; 2935449: _M_manager(__typeinfo_result, _M_functor, __get_type_info); 2935449: if (auto __ti = __typeinfo_result._M_access()) 2935449: return *__ti; 2935449: } 2935449: return typeid(void); 2935449: } 2935449: # 632 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: template 2935449: _Functor* 2935449: target() noexcept 2935449: { 2935449: const function* __const_this = this; 2935449: const _Functor* __func = __const_this->template target<_Functor>(); 2935449: 2935449: 2935449: return *const_cast<_Functor**>(&__func); 2935449: } 2935449: 2935449: template 2935449: const _Functor* 2935449: target() const noexcept 2935449: { 2935449: if (is_object<_Functor>::value) 2935449: { 2935449: 2935449: 2935449: using _Handler = _Target_handler<_Res(_ArgTypes...), _Functor>; 2935449: 2935449: if (_M_manager == &_Handler::_M_manager 2935449: 2935449: || (_M_manager && typeid(_Functor) == target_type()) 2935449: 2935449: ) 2935449: { 2935449: _Any_data __ptr; 2935449: _M_manager(__ptr, _M_functor, __get_functor_ptr); 2935449: return __ptr._M_access(); 2935449: } 2935449: } 2935449: return nullptr; 2935449: } 2935449: 2935449: 2935449: private: 2935449: using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...); 2935449: _Invoker_type _M_invoker = nullptr; 2935449: }; 2935449: # 745 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: template 2935449: inline bool 2935449: operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 2935449: { return !static_cast(__f); } 2935449: 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator==(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 2935449: { return !static_cast(__f); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator!=(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 2935449: { return static_cast(__f); } 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator!=(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 2935449: { return static_cast(__f); } 2935449: # 784 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: template 2935449: inline void 2935449: swap(function<_Res(_Args...)>& __x, function<_Res(_Args...)>& __y) noexcept 2935449: { __x.swap(__y); } 2935449: # 803 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_function.h" 3 2935449: 2935449: } 2935449: # 62 "/usr/arm-linux-gnueabi/include/c++/15/functional" 2 3 2935449: # 90 "/usr/arm-linux-gnueabi/include/c++/15/functional" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 91 "/usr/arm-linux-gnueabi/include/c++/15/functional" 2 3 2935449: 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template struct _Placeholder { }; 2935449: # 150 "/usr/arm-linux-gnueabi/include/c++/15/functional" 3 2935449: template::value> 2935449: class _Mem_fn_base 2935449: : public _Mem_fn_traits<_MemFunPtr>::__maybe_type 2935449: { 2935449: using _Traits = _Mem_fn_traits<_MemFunPtr>; 2935449: 2935449: using _Arity = typename _Traits::__arity; 2935449: using _Varargs = typename _Traits::__vararg; 2935449: 2935449: template 2935449: friend struct _Bind_check_arity; 2935449: 2935449: _MemFunPtr _M_pmf; 2935449: 2935449: public: 2935449: 2935449: using result_type = typename _Traits::__result_type; 2935449: 2935449: explicit constexpr 2935449: _Mem_fn_base(_MemFunPtr __pmf) noexcept : _M_pmf(__pmf) { } 2935449: 2935449: template 2935449: 2935449: auto 2935449: operator()(_Args&&... __args) const 2935449: noexcept(noexcept( 2935449: std::__invoke(_M_pmf, std::forward<_Args>(__args)...))) 2935449: -> decltype(std::__invoke(_M_pmf, std::forward<_Args>(__args)...)) 2935449: { return std::__invoke(_M_pmf, std::forward<_Args>(__args)...); } 2935449: }; 2935449: 2935449: 2935449: template 2935449: class _Mem_fn_base<_MemObjPtr, false> 2935449: { 2935449: using _Arity = integral_constant; 2935449: using _Varargs = false_type; 2935449: 2935449: template 2935449: friend struct _Bind_check_arity; 2935449: 2935449: _MemObjPtr _M_pm; 2935449: 2935449: public: 2935449: explicit constexpr 2935449: _Mem_fn_base(_MemObjPtr __pm) noexcept : _M_pm(__pm) { } 2935449: 2935449: template 2935449: 2935449: auto 2935449: operator()(_Tp&& __obj) const 2935449: noexcept(noexcept(std::__invoke(_M_pm, std::forward<_Tp>(__obj)))) 2935449: -> decltype(std::__invoke(_M_pm, std::forward<_Tp>(__obj))) 2935449: { return std::__invoke(_M_pm, std::forward<_Tp>(__obj)); } 2935449: }; 2935449: 2935449: template 2935449: struct _Mem_fn; 2935449: 2935449: template 2935449: struct _Mem_fn<_Res _Class::*> 2935449: : _Mem_fn_base<_Res _Class::*> 2935449: { 2935449: using _Mem_fn_base<_Res _Class::*>::_Mem_fn_base; 2935449: }; 2935449: # 243 "/usr/arm-linux-gnueabi/include/c++/15/functional" 3 2935449: template 2935449: 2935449: inline _Mem_fn<_Tp _Class::*> 2935449: mem_fn(_Tp _Class::* __pm) noexcept 2935449: { 2935449: return _Mem_fn<_Tp _Class::*>(__pm); 2935449: } 2935449: # 262 "/usr/arm-linux-gnueabi/include/c++/15/functional" 3 2935449: template 2935449: struct is_bind_expression 2935449: : public false_type { }; 2935449: # 274 "/usr/arm-linux-gnueabi/include/c++/15/functional" 3 2935449: template 2935449: struct is_placeholder 2935449: : public integral_constant 2935449: { }; 2935449: # 291 "/usr/arm-linux-gnueabi/include/c++/15/functional" 3 2935449: namespace placeholders 2935449: { 2935449: # 303 "/usr/arm-linux-gnueabi/include/c++/15/functional" 3 2935449: extern const _Placeholder<1> _1; 2935449: extern const _Placeholder<2> _2; 2935449: extern const _Placeholder<3> _3; 2935449: extern const _Placeholder<4> _4; 2935449: extern const _Placeholder<5> _5; 2935449: extern const _Placeholder<6> _6; 2935449: extern const _Placeholder<7> _7; 2935449: extern const _Placeholder<8> _8; 2935449: extern const _Placeholder<9> _9; 2935449: extern const _Placeholder<10> _10; 2935449: extern const _Placeholder<11> _11; 2935449: extern const _Placeholder<12> _12; 2935449: extern const _Placeholder<13> _13; 2935449: extern const _Placeholder<14> _14; 2935449: extern const _Placeholder<15> _15; 2935449: extern const _Placeholder<16> _16; 2935449: extern const _Placeholder<17> _17; 2935449: extern const _Placeholder<18> _18; 2935449: extern const _Placeholder<19> _19; 2935449: extern const _Placeholder<20> _20; 2935449: extern const _Placeholder<21> _21; 2935449: extern const _Placeholder<22> _22; 2935449: extern const _Placeholder<23> _23; 2935449: extern const _Placeholder<24> _24; 2935449: extern const _Placeholder<25> _25; 2935449: extern const _Placeholder<26> _26; 2935449: extern const _Placeholder<27> _27; 2935449: extern const _Placeholder<28> _28; 2935449: extern const _Placeholder<29> _29; 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_placeholder<_Placeholder<_Num> > 2935449: : public integral_constant 2935449: { }; 2935449: 2935449: template 2935449: struct is_placeholder > 2935449: : public integral_constant 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: using _Safe_tuple_element_t 2935449: = typename enable_if<(__i < tuple_size<_Tuple>::value), 2935449: tuple_element<__i, _Tuple>>::type::type; 2935449: # 371 "/usr/arm-linux-gnueabi/include/c++/15/functional" 3 2935449: template::value, 2935449: bool _IsPlaceholder = (is_placeholder<_Arg>::value > 0)> 2935449: class _Mu; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: class _Mu, false, false> 2935449: { 2935449: public: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: _Tp& 2935449: operator()(_CVRef& __arg, _Tuple&) const volatile 2935449: { return __arg.get(); } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: class _Mu<_Arg, true, false> 2935449: { 2935449: public: 2935449: template 2935449: 2935449: auto 2935449: operator()(_CVArg& __arg, 2935449: tuple<_Args...>& __tuple) const volatile 2935449: -> decltype(__arg(declval<_Args>()...)) 2935449: { 2935449: 2935449: typedef typename _Build_index_tuple::__type 2935449: _Indexes; 2935449: return this->__call(__arg, __tuple, _Indexes()); 2935449: } 2935449: 2935449: private: 2935449: 2935449: 2935449: template 2935449: 2935449: auto 2935449: __call(_CVArg& __arg, tuple<_Args...>& __tuple, 2935449: const _Index_tuple<_Indexes...>&) const volatile 2935449: -> decltype(__arg(declval<_Args>()...)) 2935449: { 2935449: return __arg(std::get<_Indexes>(std::move(__tuple))...); 2935449: } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: class _Mu<_Arg, false, true> 2935449: { 2935449: public: 2935449: template 2935449: 2935449: _Safe_tuple_element_t<(is_placeholder<_Arg>::value - 1), _Tuple>&& 2935449: operator()(const volatile _Arg&, _Tuple& __tuple) const volatile 2935449: { 2935449: return 2935449: ::std::get<(is_placeholder<_Arg>::value - 1)>(std::move(__tuple)); 2935449: } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: class _Mu<_Arg, false, false> 2935449: { 2935449: public: 2935449: template 2935449: 2935449: _CVArg&& 2935449: operator()(_CVArg&& __arg, _Tuple&) const volatile 2935449: { return std::forward<_CVArg>(__arg); } 2935449: }; 2935449: 2935449: 2935449: template 2935449: inline auto 2935449: __volget(volatile tuple<_Tp...>& __tuple) 2935449: -> __tuple_element_t<_Ind, tuple<_Tp...>> volatile& 2935449: { return std::get<_Ind>(const_cast&>(__tuple)); } 2935449: 2935449: 2935449: template 2935449: inline auto 2935449: __volget(const volatile tuple<_Tp...>& __tuple) 2935449: -> __tuple_element_t<_Ind, tuple<_Tp...>> const volatile& 2935449: { return std::get<_Ind>(const_cast&>(__tuple)); } 2935449: # 496 "/usr/arm-linux-gnueabi/include/c++/15/functional" 3 2935449: template 2935449: class _Bind; 2935449: 2935449: template 2935449: class _Bind<_Functor(_Bound_args...)> 2935449: : public _Weak_result_type<_Functor> 2935449: { 2935449: typedef typename _Build_index_tuple::__type 2935449: _Bound_indexes; 2935449: 2935449: _Functor _M_f; 2935449: tuple<_Bound_args...> _M_bound_args; 2935449: 2935449: 2935449: template 2935449: 2935449: _Result 2935449: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 2935449: { 2935449: return std::__invoke(_M_f, 2935449: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 2935449: ); 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: _Result 2935449: __call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 2935449: { 2935449: return std::__invoke(_M_f, 2935449: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 2935449: ); 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: _Result 2935449: __call_v(tuple<_Args...>&& __args, 2935449: _Index_tuple<_Indexes...>) volatile 2935449: { 2935449: return std::__invoke(_M_f, 2935449: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 2935449: ); 2935449: } 2935449: 2935449: 2935449: template 2935449: _Result 2935449: __call_c_v(tuple<_Args...>&& __args, 2935449: _Index_tuple<_Indexes...>) const volatile 2935449: { 2935449: return std::__invoke(_M_f, 2935449: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 2935449: ); 2935449: } 2935449: 2935449: 2935449: template 2935449: using _Mu_type = decltype( 2935449: _Mu::type>()( 2935449: std::declval<_BoundArg&>(), std::declval<_CallArgs&>()) ); 2935449: 2935449: template 2935449: using _Res_type_impl 2935449: = __invoke_result_t<_Fn&, _Mu_type<_BArgs, _CallArgs>&&...>; 2935449: 2935449: template 2935449: using _Res_type = _Res_type_impl<_Functor, _CallArgs, _Bound_args...>; 2935449: 2935449: template 2935449: using __dependent = typename 2935449: enable_if::value+1), _Functor>::type; 2935449: 2935449: template class __cv_quals> 2935449: using _Res_type_cv = _Res_type_impl< 2935449: typename __cv_quals<__dependent<_CallArgs>>::type, 2935449: _CallArgs, 2935449: typename __cv_quals<_Bound_args>::type...>; 2935449: 2935449: public: 2935449: template 2935449: explicit 2935449: _Bind(const _Functor& __f, _Args&&... __args) 2935449: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 2935449: { } 2935449: 2935449: template 2935449: explicit 2935449: _Bind(_Functor&& __f, _Args&&... __args) 2935449: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 2935449: { } 2935449: 2935449: _Bind(const _Bind&) = default; 2935449: _Bind(_Bind&&) = default; 2935449: 2935449: 2935449: template>> 2935449: 2935449: _Result 2935449: operator()(_Args&&... __args) 2935449: { 2935449: return this->__call<_Result>( 2935449: std::forward_as_tuple(std::forward<_Args>(__args)...), 2935449: _Bound_indexes()); 2935449: } 2935449: 2935449: 2935449: template, add_const>> 2935449: 2935449: _Result 2935449: operator()(_Args&&... __args) const 2935449: { 2935449: return this->__call_c<_Result>( 2935449: std::forward_as_tuple(std::forward<_Args>(__args)...), 2935449: _Bound_indexes()); 2935449: } 2935449: 2935449: 2935449: 2935449: template, add_volatile>> 2935449: 2935449: _Result 2935449: operator()(_Args&&... __args) volatile 2935449: { 2935449: return this->__call_v<_Result>( 2935449: std::forward_as_tuple(std::forward<_Args>(__args)...), 2935449: _Bound_indexes()); 2935449: } 2935449: 2935449: 2935449: template, add_cv>> 2935449: 2935449: _Result 2935449: operator()(_Args&&... __args) const volatile 2935449: { 2935449: return this->__call_c_v<_Result>( 2935449: std::forward_as_tuple(std::forward<_Args>(__args)...), 2935449: _Bound_indexes()); 2935449: } 2935449: 2935449: }; 2935449: 2935449: 2935449: template 2935449: class _Bind_result; 2935449: 2935449: template 2935449: class _Bind_result<_Result, _Functor(_Bound_args...)> 2935449: { 2935449: typedef typename _Build_index_tuple::__type 2935449: _Bound_indexes; 2935449: 2935449: _Functor _M_f; 2935449: tuple<_Bound_args...> _M_bound_args; 2935449: 2935449: 2935449: template 2935449: 2935449: _Res 2935449: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 2935449: { 2935449: return std::__invoke_r<_Res>(_M_f, _Mu<_Bound_args>() 2935449: (std::get<_Indexes>(_M_bound_args), __args)...); 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: _Res 2935449: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 2935449: { 2935449: return std::__invoke_r<_Res>(_M_f, _Mu<_Bound_args>() 2935449: (std::get<_Indexes>(_M_bound_args), __args)...); 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: _Res 2935449: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 2935449: { 2935449: return std::__invoke_r<_Res>(_M_f, _Mu<_Bound_args>() 2935449: (__volget<_Indexes>(_M_bound_args), __args)...); 2935449: } 2935449: 2935449: 2935449: template 2935449: _Res 2935449: __call(tuple<_Args...>&& __args, 2935449: _Index_tuple<_Indexes...>) const volatile 2935449: { 2935449: return std::__invoke_r<_Res>(_M_f, _Mu<_Bound_args>() 2935449: (__volget<_Indexes>(_M_bound_args), __args)...); 2935449: } 2935449: 2935449: 2935449: public: 2935449: typedef _Result result_type; 2935449: 2935449: template 2935449: explicit 2935449: _Bind_result(const _Functor& __f, _Args&&... __args) 2935449: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 2935449: { } 2935449: 2935449: template 2935449: explicit 2935449: _Bind_result(_Functor&& __f, _Args&&... __args) 2935449: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 2935449: { } 2935449: 2935449: _Bind_result(const _Bind_result&) = default; 2935449: _Bind_result(_Bind_result&&) = default; 2935449: 2935449: 2935449: template 2935449: 2935449: result_type 2935449: operator()(_Args&&... __args) 2935449: { 2935449: return this->__call<_Result>( 2935449: std::forward_as_tuple(std::forward<_Args>(__args)...), 2935449: _Bound_indexes()); 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: result_type 2935449: operator()(_Args&&... __args) const 2935449: { 2935449: return this->__call<_Result>( 2935449: std::forward_as_tuple(std::forward<_Args>(__args)...), 2935449: _Bound_indexes()); 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: result_type 2935449: operator()(_Args&&... __args) volatile 2935449: { 2935449: return this->__call<_Result>( 2935449: std::forward_as_tuple(std::forward<_Args>(__args)...), 2935449: _Bound_indexes()); 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: result_type 2935449: operator()(_Args&&... __args) const volatile 2935449: { 2935449: return this->__call<_Result>( 2935449: std::forward_as_tuple(std::forward<_Args>(__args)...), 2935449: _Bound_indexes()); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: # 773 "/usr/arm-linux-gnueabi/include/c++/15/functional" 3 2935449: template 2935449: struct is_bind_expression<_Bind<_Signature> > 2935449: : public true_type { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_bind_expression > 2935449: : public true_type { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_bind_expression > 2935449: : public true_type { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_bind_expression> 2935449: : public true_type { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_bind_expression<_Bind_result<_Result, _Signature>> 2935449: : public true_type { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_bind_expression> 2935449: : public true_type { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_bind_expression> 2935449: : public true_type { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct is_bind_expression> 2935449: : public true_type { }; 2935449: 2935449: template 2935449: struct _Bind_check_arity { }; 2935449: 2935449: template 2935449: struct _Bind_check_arity<_Ret (*)(_Args...), _BoundArgs...> 2935449: { 2935449: static_assert(sizeof...(_BoundArgs) == sizeof...(_Args), 2935449: "Wrong number of arguments for function"); 2935449: }; 2935449: 2935449: template 2935449: struct _Bind_check_arity<_Ret (*)(_Args..., ...), _BoundArgs...> 2935449: { 2935449: static_assert(sizeof...(_BoundArgs) >= sizeof...(_Args), 2935449: "Wrong number of arguments for function"); 2935449: }; 2935449: 2935449: template 2935449: struct _Bind_check_arity<_Tp _Class::*, _BoundArgs...> 2935449: { 2935449: using _Arity = typename _Mem_fn<_Tp _Class::*>::_Arity; 2935449: using _Varargs = typename _Mem_fn<_Tp _Class::*>::_Varargs; 2935449: static_assert(_Varargs::value 2935449: ? sizeof...(_BoundArgs) >= _Arity::value + 1 2935449: : sizeof...(_BoundArgs) == _Arity::value + 1, 2935449: "Wrong number of arguments for pointer-to-member"); 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template::type> 2935449: using __is_socketlike = __or_, is_enum<_Tp2>>; 2935449: 2935449: template 2935449: struct _Bind_helper 2935449: : _Bind_check_arity::type, _BoundArgs...> 2935449: { 2935449: typedef typename decay<_Func>::type __func_type; 2935449: typedef _Bind<__func_type(typename decay<_BoundArgs>::type...)> type; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Bind_helper 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: inline typename 2935449: _Bind_helper<__is_socketlike<_Func>::value, _Func, _BoundArgs...>::type 2935449: bind(_Func&& __f, _BoundArgs&&... __args) 2935449: { 2935449: typedef _Bind_helper __helper_type; 2935449: return typename __helper_type::type(std::forward<_Func>(__f), 2935449: std::forward<_BoundArgs>(__args)...); 2935449: } 2935449: 2935449: template 2935449: struct _Bindres_helper 2935449: : _Bind_check_arity::type, _BoundArgs...> 2935449: { 2935449: typedef typename decay<_Func>::type __functor_type; 2935449: typedef _Bind_result<_Result, 2935449: __functor_type(typename decay<_BoundArgs>::type...)> 2935449: type; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: inline 2935449: typename _Bindres_helper<_Result, _Func, _BoundArgs...>::type 2935449: bind(_Func&& __f, _BoundArgs&&... __args) 2935449: { 2935449: typedef _Bindres_helper<_Result, _Func, _BoundArgs...> __helper_type; 2935449: return typename __helper_type::type(std::forward<_Func>(__f), 2935449: std::forward<_BoundArgs>(__args)...); 2935449: } 2935449: # 1504 "/usr/arm-linux-gnueabi/include/c++/15/functional" 3 2935449: 2935449: } 2935449: # 25 "/<>/src/client/WFConsulClient.cc" 2 2935449: # 1 "/usr/include/openssl/ssl.h" 1 3 4 2935449: # 19 "/usr/include/openssl/ssl.h" 3 4 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/macros.h" 1 3 4 2935449: # 12 "/usr/include/openssl/macros.h" 3 4 2935449: 2935449: 2935449: # 1 "/usr/include/arm-linux-gnueabi/openssl/opensslconf.h" 1 3 4 2935449: # 12 "/usr/include/arm-linux-gnueabi/openssl/opensslconf.h" 3 4 2935449: 2935449: 2935449: # 1 "/usr/include/arm-linux-gnueabi/openssl/configuration.h" 1 3 4 2935449: # 16 "/usr/include/arm-linux-gnueabi/openssl/configuration.h" 3 4 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: # 176 "/usr/include/arm-linux-gnueabi/openssl/configuration.h" 3 4 2935449: } 2935449: # 15 "/usr/include/arm-linux-gnueabi/openssl/opensslconf.h" 2 3 4 2935449: # 15 "/usr/include/openssl/macros.h" 2 3 4 2935449: # 1 "/usr/include/openssl/opensslv.h" 1 3 4 2935449: # 15 "/usr/include/openssl/opensslv.h" 3 4 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: # 106 "/usr/include/openssl/opensslv.h" 3 4 2935449: } 2935449: # 16 "/usr/include/openssl/macros.h" 2 3 4 2935449: # 22 "/usr/include/openssl/ssl.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/e_os2.h" 1 3 4 2935449: # 12 "/usr/include/openssl/e_os2.h" 3 4 2935449: 2935449: # 22 "/usr/include/openssl/e_os2.h" 3 4 2935449: extern "C" { 2935449: # 257 "/usr/include/openssl/e_os2.h" 3 4 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stdint.h" 1 3 4 2935449: # 9 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stdint.h" 3 4 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wpedantic" 2935449: # 1 "/usr/arm-linux-gnueabi/include/stdint.h" 1 3 4 2935449: # 26 "/usr/arm-linux-gnueabi/include/stdint.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/libc-header-start.h" 1 3 4 2935449: # 27 "/usr/arm-linux-gnueabi/include/stdint.h" 2 3 4 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/wordsize.h" 1 3 4 2935449: # 30 "/usr/arm-linux-gnueabi/include/stdint.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/stdint-uintn.h" 1 3 4 2935449: # 24 "/usr/arm-linux-gnueabi/include/bits/stdint-uintn.h" 3 4 2935449: typedef __uint8_t uint8_t; 2935449: typedef __uint16_t uint16_t; 2935449: typedef __uint32_t uint32_t; 2935449: typedef __uint64_t uint64_t; 2935449: # 38 "/usr/arm-linux-gnueabi/include/stdint.h" 2 3 4 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/stdint-least.h" 1 3 4 2935449: # 25 "/usr/arm-linux-gnueabi/include/bits/stdint-least.h" 3 4 2935449: typedef __int_least8_t int_least8_t; 2935449: typedef __int_least16_t int_least16_t; 2935449: typedef __int_least32_t int_least32_t; 2935449: typedef __int_least64_t int_least64_t; 2935449: 2935449: 2935449: typedef __uint_least8_t uint_least8_t; 2935449: typedef __uint_least16_t uint_least16_t; 2935449: typedef __uint_least32_t uint_least32_t; 2935449: typedef __uint_least64_t uint_least64_t; 2935449: # 42 "/usr/arm-linux-gnueabi/include/stdint.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef signed char int_fast8_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef int int_fast16_t; 2935449: typedef int int_fast32_t; 2935449: __extension__ 2935449: typedef long long int int_fast64_t; 2935449: 2935449: 2935449: 2935449: typedef unsigned char uint_fast8_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef unsigned int uint_fast16_t; 2935449: typedef unsigned int uint_fast32_t; 2935449: __extension__ 2935449: typedef unsigned long long int uint_fast64_t; 2935449: # 82 "/usr/arm-linux-gnueabi/include/stdint.h" 3 4 2935449: typedef int intptr_t; 2935449: 2935449: 2935449: typedef unsigned int uintptr_t; 2935449: 2935449: 2935449: 2935449: 2935449: typedef __intmax_t intmax_t; 2935449: typedef __uintmax_t uintmax_t; 2935449: # 12 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stdint.h" 2 3 4 2935449: #pragma GCC diagnostic pop 2935449: # 258 "/usr/include/openssl/e_os2.h" 2 3 4 2935449: # 266 "/usr/include/openssl/e_os2.h" 3 4 2935449: typedef int64_t ossl_intmax_t; 2935449: typedef uint64_t ossl_uintmax_t; 2935449: # 308 "/usr/include/openssl/e_os2.h" 3 4 2935449: } 2935449: # 27 "/usr/include/openssl/ssl.h" 2 3 4 2935449: # 1 "/usr/include/openssl/e_ostime.h" 1 3 4 2935449: # 12 "/usr/include/openssl/e_ostime.h" 3 4 2935449: 2935449: # 35 "/usr/include/openssl/e_ostime.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/sys/time.h" 1 3 4 2935449: # 34 "/usr/arm-linux-gnueabi/include/sys/time.h" 3 4 2935449: extern "C" { 2935449: # 52 "/usr/arm-linux-gnueabi/include/sys/time.h" 3 4 2935449: struct timezone 2935449: { 2935449: int tz_minuteswest; 2935449: int tz_dsttime; 2935449: }; 2935449: # 71 "/usr/arm-linux-gnueabi/include/sys/time.h" 3 4 2935449: extern int gettimeofday (struct timeval *__restrict __tv, void *__restrict __tz) noexcept (true) __asm__ ("" "__gettimeofday64") 2935449: 2935449: __attribute__ ((__nonnull__ (1))); 2935449: # 98 "/usr/arm-linux-gnueabi/include/sys/time.h" 3 4 2935449: extern int settimeofday (const struct timeval *__tv, const struct timezone *__tz) noexcept (true) __asm__ ("" "__settimeofday64") 2935449: 2935449: ; 2935449: 2935449: extern int adjtime (const struct timeval *__delta, struct timeval *__olddelta) noexcept (true) __asm__ ("" "__adjtime64") 2935449: 2935449: ; 2935449: # 114 "/usr/arm-linux-gnueabi/include/sys/time.h" 3 4 2935449: enum __itimer_which 2935449: { 2935449: 2935449: ITIMER_REAL = 0, 2935449: 2935449: 2935449: ITIMER_VIRTUAL = 1, 2935449: 2935449: 2935449: 2935449: ITIMER_PROF = 2 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: struct itimerval 2935449: { 2935449: 2935449: struct timeval it_interval; 2935449: 2935449: struct timeval it_value; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef int __itimer_which_t; 2935449: # 167 "/usr/arm-linux-gnueabi/include/sys/time.h" 3 4 2935449: extern int getitimer (__itimer_which_t __which, struct itimerval *__value) noexcept (true) __asm__ ("" "__getitimer64") 2935449: 2935449: ; 2935449: 2935449: extern int setitimer (__itimer_which_t __which, const struct itimerval *__restrict __new, struct itimerval *__restrict __old) noexcept (true) __asm__ ("" "__setitimer64") 2935449: 2935449: 2935449: ; 2935449: 2935449: extern int utimes (const char *__file, const struct timeval __tvp[2]) noexcept (true) __asm__ ("" "__utimes64") 2935449: 2935449: __attribute__ ((__nonnull__ (1))); 2935449: # 196 "/usr/arm-linux-gnueabi/include/sys/time.h" 3 4 2935449: extern int lutimes (const char *__file, const struct timeval __tvp[2]) noexcept (true) __asm__ ("" "__lutimes64") 2935449: 2935449: __attribute__ ((__nonnull__ (1))); 2935449: 2935449: extern int futimes (int __fd, const struct timeval __tvp[2]) noexcept (true) __asm__ ("" "__futimes64") 2935449: ; 2935449: # 218 "/usr/arm-linux-gnueabi/include/sys/time.h" 3 4 2935449: extern int futimesat (int __fd, const char *__file, const struct timeval __tvp[2]) noexcept (true) __asm__ ("" "__futimesat64") 2935449: 2935449: ; 2935449: # 258 "/usr/arm-linux-gnueabi/include/sys/time.h" 3 4 2935449: } 2935449: # 36 "/usr/include/openssl/e_ostime.h" 2 3 4 2935449: # 28 "/usr/include/openssl/ssl.h" 2 3 4 2935449: 2935449: # 1 "/usr/include/openssl/comp.h" 1 3 4 2935449: # 14 "/usr/include/openssl/comp.h" 3 4 2935449: 2935449: # 23 "/usr/include/openssl/comp.h" 3 4 2935449: # 1 "/usr/include/openssl/crypto.h" 1 3 4 2935449: # 18 "/usr/include/openssl/crypto.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/stdlib.h" 1 3 4 2935449: # 38 "/usr/arm-linux-gnueabi/include/c++/15/stdlib.h" 3 4 2935449: using std::abort; 2935449: using std::atexit; 2935449: using std::exit; 2935449: 2935449: 2935449: using std::at_quick_exit; 2935449: 2935449: 2935449: using std::quick_exit; 2935449: 2935449: 2935449: using std::_Exit; 2935449: 2935449: 2935449: 2935449: 2935449: using std::div_t; 2935449: using std::ldiv_t; 2935449: 2935449: using std::abs; 2935449: using std::atof; 2935449: using std::atoi; 2935449: using std::atol; 2935449: using std::bsearch; 2935449: using std::calloc; 2935449: using std::div; 2935449: using std::free; 2935449: using std::getenv; 2935449: using std::labs; 2935449: using std::ldiv; 2935449: using std::malloc; 2935449: 2935449: using std::mblen; 2935449: using std::mbstowcs; 2935449: using std::mbtowc; 2935449: 2935449: using std::qsort; 2935449: using std::rand; 2935449: using std::realloc; 2935449: using std::srand; 2935449: using std::strtod; 2935449: using std::strtol; 2935449: using std::strtoul; 2935449: using std::system; 2935449: 2935449: using std::wcstombs; 2935449: using std::wctomb; 2935449: # 26 "/usr/include/openssl/crypto.h" 2 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/time.h" 1 3 4 2935449: # 29 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 30 "/usr/arm-linux-gnueabi/include/time.h" 2 3 4 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/time.h" 1 3 4 2935449: # 73 "/usr/arm-linux-gnueabi/include/bits/time.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/timex.h" 1 3 4 2935449: # 26 "/usr/arm-linux-gnueabi/include/bits/timex.h" 3 4 2935449: struct timex 2935449: { 2935449: 2935449: unsigned int modes; 2935449: int :32; 2935449: long long offset; 2935449: long long freq; 2935449: long long maxerror; 2935449: long long esterror; 2935449: int status; 2935449: int :32; 2935449: long long constant; 2935449: long long precision; 2935449: long long tolerance; 2935449: struct timeval time; 2935449: long long tick; 2935449: long long ppsfreq; 2935449: long long jitter; 2935449: int shift; 2935449: int :32; 2935449: long long stabil; 2935449: long long jitcnt; 2935449: long long calcnt; 2935449: long long errcnt; 2935449: long long stbcnt; 2935449: 2935449: int tai; 2935449: 2935449: int :32; int :32; int :32; int :32; 2935449: int :32; int :32; int :32; int :32; 2935449: int :32; int :32; int :32; 2935449: # 85 "/usr/arm-linux-gnueabi/include/bits/timex.h" 3 4 2935449: }; 2935449: # 74 "/usr/arm-linux-gnueabi/include/bits/time.h" 2 3 4 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) noexcept (true) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: 2935449: extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) noexcept (true) __asm__ ("" "__clock_adjtime64") 2935449: 2935449: __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 34 "/usr/arm-linux-gnueabi/include/time.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/struct_tm.h" 1 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct tm 2935449: { 2935449: int tm_sec; 2935449: int tm_min; 2935449: int tm_hour; 2935449: int tm_mday; 2935449: int tm_mon; 2935449: int tm_year; 2935449: int tm_wday; 2935449: int tm_yday; 2935449: int tm_isdst; 2935449: 2935449: 2935449: long int tm_gmtoff; 2935449: const char *tm_zone; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: # 40 "/usr/arm-linux-gnueabi/include/time.h" 2 3 4 2935449: # 48 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/struct_itimerspec.h" 1 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct itimerspec 2935449: { 2935449: struct timespec it_interval; 2935449: struct timespec it_value; 2935449: }; 2935449: # 49 "/usr/arm-linux-gnueabi/include/time.h" 2 3 4 2935449: struct sigevent; 2935449: # 68 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: extern clock_t clock (void) noexcept (true); 2935449: # 85 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern time_t time (time_t *__timer) noexcept (true) __asm__ ("" "__time64"); 2935449: extern double difftime (time_t __time1, time_t __time0) noexcept (true) __asm__ ("" "__difftime64") 2935449: ; 2935449: extern time_t mktime (struct tm *__tp) noexcept (true) __asm__ ("" "__mktime64"); 2935449: # 99 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern size_t strftime (char *__restrict __s, size_t __maxsize, 2935449: const char *__restrict __format, 2935449: const struct tm *__restrict __tp) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 3, 4))); 2935449: 2935449: 2935449: 2935449: 2935449: extern char *strptime (const char *__restrict __s, 2935449: const char *__restrict __fmt, struct tm *__tp) 2935449: noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern size_t strftime_l (char *__restrict __s, size_t __maxsize, 2935449: const char *__restrict __format, 2935449: const struct tm *__restrict __tp, 2935449: locale_t __loc) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern char *strptime_l (const char *__restrict __s, 2935449: const char *__restrict __fmt, struct tm *__tp, 2935449: locale_t __loc) noexcept (true); 2935449: # 140 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern struct tm*gmtime (const time_t *__timer) noexcept (true) __asm__ ("" "__gmtime64"); 2935449: extern struct tm *localtime (const time_t *__timer) noexcept (true) __asm__ ("" "__localtime64") 2935449: ; 2935449: # 163 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern struct tm*gmtime_r (const time_t *__restrict __timer, struct tm *__restrict __tp) noexcept (true) __asm__ ("" "__gmtime64_r") 2935449: 2935449: ; 2935449: 2935449: extern struct tm*localtime_r (const time_t *__restrict __t, struct tm *__restrict __tp) noexcept (true) __asm__ ("" "__localtime64_r") 2935449: 2935449: ; 2935449: # 179 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern char *asctime (const struct tm *__tp) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern char *ctime (const time_t *__timer) noexcept (true) __asm__ ("" "__ctime64"); 2935449: # 197 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern char *asctime_r (const struct tm *__restrict __tp, 2935449: char *__restrict __buf) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern char *ctime_r (const time_t *__restrict __timer, char *__restrict __buf) noexcept (true) __asm__ ("" "__ctime64_r") 2935449: ; 2935449: # 217 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern char *__tzname[2]; 2935449: extern int __daylight; 2935449: extern long int __timezone; 2935449: 2935449: 2935449: 2935449: 2935449: extern char *tzname[2]; 2935449: 2935449: 2935449: 2935449: extern void tzset (void) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int daylight; 2935449: extern long int timezone; 2935449: # 249 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern time_t timegm (struct tm *__tp) noexcept (true) __asm__ ("" "__timegm64"); 2935449: # 266 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern time_t timelocal (struct tm *__tp) noexcept (true) __asm__ ("" "__mktime64"); 2935449: 2935449: 2935449: 2935449: 2935449: extern int dysize (int __year) noexcept (true) __attribute__ ((__const__)); 2935449: # 296 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern int nanosleep (const struct timespec *__requested_time, struct timespec *__remaining) __asm__ ("" "__nanosleep64") 2935449: 2935449: ; 2935449: extern int clock_getres (clockid_t __clock_id, struct timespec *__res) noexcept (true) __asm__ ("" "__clock_getres64") 2935449: 2935449: ; 2935449: extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) noexcept (true) __asm__ ("" "__clock_gettime64") 2935449: 2935449: __attribute__ ((__nonnull__ (2))); 2935449: extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) noexcept (true) __asm__ ("" "__clock_settime64") 2935449: 2935449: __attribute__ ((__nonnull__ (2))); 2935449: # 328 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern int clock_nanosleep (clockid_t __clock_id, int __flags, const struct timespec *__req, struct timespec *__rem) __asm__ ("" "__clock_nanosleep_time64") 2935449: 2935449: 2935449: ; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: extern int timer_create (clockid_t __clock_id, 2935449: struct sigevent *__restrict __evp, 2935449: timer_t *__restrict __timerid) noexcept (true); 2935449: 2935449: 2935449: extern int timer_delete (timer_t __timerid) noexcept (true); 2935449: # 361 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern int timer_settime (timer_t __timerid, int __flags, const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) noexcept (true) __asm__ ("" "__timer_settime64") 2935449: 2935449: 2935449: ; 2935449: 2935449: extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) noexcept (true) __asm__ ("" "__timer_gettime64") 2935449: 2935449: ; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int timer_getoverrun (timer_t __timerid) noexcept (true); 2935449: # 387 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern int timespec_get (struct timespec *__ts, int __base) noexcept (true) __asm__ ("" "__timespec_get64") 2935449: __attribute__ ((__nonnull__ (1))); 2935449: # 403 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern int timespec_getres (struct timespec *__ts, int __base) noexcept (true) __asm__ ("" "__timespec_getres64") 2935449: 2935449: ; 2935449: # 425 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern int getdate_err; 2935449: # 434 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern struct tm *getdate (const char *__string); 2935449: # 448 "/usr/arm-linux-gnueabi/include/time.h" 3 4 2935449: extern int getdate_r (const char *__restrict __string, 2935449: struct tm *__restrict __resbufp); 2935449: 2935449: 2935449: } 2935449: # 27 "/usr/include/openssl/crypto.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/safestack.h" 1 3 4 2935449: # 17 "/usr/include/openssl/safestack.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/stack.h" 1 3 4 2935449: # 12 "/usr/include/openssl/stack.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: typedef struct stack_st OPENSSL_STACK; 2935449: 2935449: typedef int (*OPENSSL_sk_compfunc)(const void *, const void *); 2935449: typedef void (*OPENSSL_sk_freefunc)(void *); 2935449: typedef void *(*OPENSSL_sk_copyfunc)(const void *); 2935449: 2935449: int OPENSSL_sk_num(const OPENSSL_STACK *); 2935449: void *OPENSSL_sk_value(const OPENSSL_STACK *, int); 2935449: 2935449: void *OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data); 2935449: 2935449: OPENSSL_STACK *OPENSSL_sk_new(OPENSSL_sk_compfunc cmp); 2935449: OPENSSL_STACK *OPENSSL_sk_new_null(void); 2935449: OPENSSL_STACK *OPENSSL_sk_new_reserve(OPENSSL_sk_compfunc c, int n); 2935449: int OPENSSL_sk_reserve(OPENSSL_STACK *st, int n); 2935449: void OPENSSL_sk_free(OPENSSL_STACK *); 2935449: void OPENSSL_sk_pop_free(OPENSSL_STACK *st, void (*func) (void *)); 2935449: OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *, 2935449: OPENSSL_sk_copyfunc c, 2935449: OPENSSL_sk_freefunc f); 2935449: int OPENSSL_sk_insert(OPENSSL_STACK *sk, const void *data, int where); 2935449: void *OPENSSL_sk_delete(OPENSSL_STACK *st, int loc); 2935449: void *OPENSSL_sk_delete_ptr(OPENSSL_STACK *st, const void *p); 2935449: int OPENSSL_sk_find(OPENSSL_STACK *st, const void *data); 2935449: int OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data); 2935449: int OPENSSL_sk_find_all(OPENSSL_STACK *st, const void *data, int *pnum); 2935449: int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data); 2935449: int OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data); 2935449: void *OPENSSL_sk_shift(OPENSSL_STACK *st); 2935449: void *OPENSSL_sk_pop(OPENSSL_STACK *st); 2935449: void OPENSSL_sk_zero(OPENSSL_STACK *st); 2935449: OPENSSL_sk_compfunc OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk, 2935449: OPENSSL_sk_compfunc cmp); 2935449: OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *st); 2935449: void OPENSSL_sk_sort(OPENSSL_STACK *st); 2935449: int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st); 2935449: # 87 "/usr/include/openssl/stack.h" 3 4 2935449: } 2935449: # 25 "/usr/include/openssl/safestack.h" 2 3 4 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: # 195 "/usr/include/openssl/safestack.h" 3 4 2935449: typedef char *OPENSSL_STRING; 2935449: typedef const char *OPENSSL_CSTRING; 2935449: # 205 "/usr/include/openssl/safestack.h" 3 4 2935449: struct stack_st_OPENSSL_STRING; typedef int (*sk_OPENSSL_STRING_compfunc)(const char * const *a, const char *const *b); typedef void (*sk_OPENSSL_STRING_freefunc)(char *a); typedef char * (*sk_OPENSSL_STRING_copyfunc)(const char *a); static __attribute__((unused)) inline char *ossl_check_OPENSSL_STRING_type(char *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_OPENSSL_STRING_sk_type(const struct stack_st_OPENSSL_STRING *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_OPENSSL_STRING_sk_type(struct stack_st_OPENSSL_STRING *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_OPENSSL_STRING_compfunc_type(sk_OPENSSL_STRING_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_OPENSSL_STRING_copyfunc_type(sk_OPENSSL_STRING_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_OPENSSL_STRING_freefunc_type(sk_OPENSSL_STRING_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 231 "/usr/include/openssl/safestack.h" 3 4 2935449: struct stack_st_OPENSSL_CSTRING; typedef int (*sk_OPENSSL_CSTRING_compfunc)(const char * const *a, const char *const *b); typedef void (*sk_OPENSSL_CSTRING_freefunc)(char *a); typedef char * (*sk_OPENSSL_CSTRING_copyfunc)(const char *a); static __attribute__((unused)) inline const char *ossl_check_OPENSSL_CSTRING_type(const char *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_OPENSSL_CSTRING_sk_type(const struct stack_st_OPENSSL_CSTRING *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_OPENSSL_CSTRING_sk_type(struct stack_st_OPENSSL_CSTRING *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_OPENSSL_CSTRING_compfunc_type(sk_OPENSSL_CSTRING_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_OPENSSL_CSTRING_copyfunc_type(sk_OPENSSL_CSTRING_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_OPENSSL_CSTRING_freefunc_type(sk_OPENSSL_CSTRING_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 264 "/usr/include/openssl/safestack.h" 3 4 2935449: typedef void *OPENSSL_BLOCK; 2935449: struct stack_st_OPENSSL_BLOCK; typedef int (*sk_OPENSSL_BLOCK_compfunc)(const void * const *a, const void *const *b); typedef void (*sk_OPENSSL_BLOCK_freefunc)(void *a); typedef void * (*sk_OPENSSL_BLOCK_copyfunc)(const void *a); static __attribute__((unused)) inline void *ossl_check_OPENSSL_BLOCK_type(void *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_OPENSSL_BLOCK_sk_type(const struct stack_st_OPENSSL_BLOCK *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_OPENSSL_BLOCK_sk_type(struct stack_st_OPENSSL_BLOCK *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_OPENSSL_BLOCK_compfunc_type(sk_OPENSSL_BLOCK_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_OPENSSL_BLOCK_copyfunc_type(sk_OPENSSL_BLOCK_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_OPENSSL_BLOCK_freefunc_type(sk_OPENSSL_BLOCK_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 295 "/usr/include/openssl/safestack.h" 3 4 2935449: } 2935449: # 35 "/usr/include/openssl/crypto.h" 2 3 4 2935449: 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 26 "/usr/include/openssl/types.h" 3 4 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/limits.h" 1 3 4 2935449: # 34 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/limits.h" 3 4 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/syslimits.h" 1 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wpedantic" 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/limits.h" 1 3 4 2935449: # 210 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/limits.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/limits.h" 1 3 4 2935449: # 26 "/usr/arm-linux-gnueabi/include/limits.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/libc-header-start.h" 1 3 4 2935449: # 27 "/usr/arm-linux-gnueabi/include/limits.h" 2 3 4 2935449: # 195 "/usr/arm-linux-gnueabi/include/limits.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/posix1_lim.h" 1 3 4 2935449: # 27 "/usr/arm-linux-gnueabi/include/bits/posix1_lim.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/wordsize.h" 1 3 4 2935449: # 28 "/usr/arm-linux-gnueabi/include/bits/posix1_lim.h" 2 3 4 2935449: # 161 "/usr/arm-linux-gnueabi/include/bits/posix1_lim.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/local_lim.h" 1 3 4 2935449: # 38 "/usr/arm-linux-gnueabi/include/bits/local_lim.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/linux/limits.h" 1 3 4 2935449: # 39 "/usr/arm-linux-gnueabi/include/bits/local_lim.h" 2 3 4 2935449: # 81 "/usr/arm-linux-gnueabi/include/bits/local_lim.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/pthread_stack_min-dynamic.h" 1 3 4 2935449: # 23 "/usr/arm-linux-gnueabi/include/bits/pthread_stack_min-dynamic.h" 3 4 2935449: extern "C" { 2935449: extern long int __sysconf (int __name) noexcept (true); 2935449: } 2935449: # 82 "/usr/arm-linux-gnueabi/include/bits/local_lim.h" 2 3 4 2935449: # 162 "/usr/arm-linux-gnueabi/include/bits/posix1_lim.h" 2 3 4 2935449: # 196 "/usr/arm-linux-gnueabi/include/limits.h" 2 3 4 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/posix2_lim.h" 1 3 4 2935449: # 200 "/usr/arm-linux-gnueabi/include/limits.h" 2 3 4 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/xopen_lim.h" 1 3 4 2935449: # 64 "/usr/arm-linux-gnueabi/include/bits/xopen_lim.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/uio_lim.h" 1 3 4 2935449: # 65 "/usr/arm-linux-gnueabi/include/bits/xopen_lim.h" 2 3 4 2935449: # 204 "/usr/arm-linux-gnueabi/include/limits.h" 2 3 4 2935449: # 211 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/limits.h" 2 3 4 2935449: # 10 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/syslimits.h" 2 3 4 2935449: 2935449: # 10 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/syslimits.h" 3 4 2935449: #pragma GCC diagnostic pop 2935449: # 35 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/limits.h" 2 3 4 2935449: # 27 "/usr/include/openssl/types.h" 2 3 4 2935449: 2935449: 2935449: extern "C" { 2935449: # 42 "/usr/include/openssl/types.h" 3 4 2935449: typedef struct ossl_provider_st OSSL_PROVIDER; 2935449: # 63 "/usr/include/openssl/types.h" 3 4 2935449: typedef struct asn1_string_st ASN1_INTEGER; 2935449: typedef struct asn1_string_st ASN1_ENUMERATED; 2935449: typedef struct asn1_string_st ASN1_BIT_STRING; 2935449: typedef struct asn1_string_st ASN1_OCTET_STRING; 2935449: typedef struct asn1_string_st ASN1_PRINTABLESTRING; 2935449: typedef struct asn1_string_st ASN1_T61STRING; 2935449: typedef struct asn1_string_st ASN1_IA5STRING; 2935449: typedef struct asn1_string_st ASN1_GENERALSTRING; 2935449: typedef struct asn1_string_st ASN1_UNIVERSALSTRING; 2935449: typedef struct asn1_string_st ASN1_BMPSTRING; 2935449: typedef struct asn1_string_st ASN1_UTCTIME; 2935449: typedef struct asn1_string_st ASN1_TIME; 2935449: typedef struct asn1_string_st ASN1_GENERALIZEDTIME; 2935449: typedef struct asn1_string_st ASN1_VISIBLESTRING; 2935449: typedef struct asn1_string_st ASN1_UTF8STRING; 2935449: typedef struct asn1_string_st ASN1_STRING; 2935449: typedef int ASN1_BOOLEAN; 2935449: typedef int ASN1_NULL; 2935449: 2935449: 2935449: typedef struct asn1_type_st ASN1_TYPE; 2935449: typedef struct asn1_object_st ASN1_OBJECT; 2935449: typedef struct asn1_string_table_st ASN1_STRING_TABLE; 2935449: 2935449: typedef struct ASN1_ITEM_st ASN1_ITEM; 2935449: typedef struct asn1_pctx_st ASN1_PCTX; 2935449: typedef struct asn1_sctx_st ASN1_SCTX; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef struct bio_st BIO; 2935449: typedef struct bignum_st BIGNUM; 2935449: typedef struct bignum_ctx BN_CTX; 2935449: typedef struct bn_blinding_st BN_BLINDING; 2935449: typedef struct bn_mont_ctx_st BN_MONT_CTX; 2935449: typedef struct bn_recp_ctx_st BN_RECP_CTX; 2935449: typedef struct bn_gencb_st BN_GENCB; 2935449: 2935449: typedef struct buf_mem_st BUF_MEM; 2935449: 2935449: struct stack_st_BIGNUM; 2935449: struct stack_st_BIGNUM_const; 2935449: 2935449: typedef struct err_state_st ERR_STATE; 2935449: 2935449: typedef struct evp_cipher_st EVP_CIPHER; 2935449: typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; 2935449: typedef struct evp_md_st EVP_MD; 2935449: typedef struct evp_md_ctx_st EVP_MD_CTX; 2935449: typedef struct evp_mac_st EVP_MAC; 2935449: typedef struct evp_mac_ctx_st EVP_MAC_CTX; 2935449: typedef struct evp_pkey_st EVP_PKEY; 2935449: typedef struct evp_skey_st EVP_SKEY; 2935449: 2935449: typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; 2935449: 2935449: typedef struct evp_pkey_method_st EVP_PKEY_METHOD; 2935449: typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; 2935449: 2935449: typedef struct evp_keymgmt_st EVP_KEYMGMT; 2935449: 2935449: typedef struct evp_kdf_st EVP_KDF; 2935449: typedef struct evp_kdf_ctx_st EVP_KDF_CTX; 2935449: 2935449: typedef struct evp_rand_st EVP_RAND; 2935449: typedef struct evp_rand_ctx_st EVP_RAND_CTX; 2935449: 2935449: typedef struct evp_keyexch_st EVP_KEYEXCH; 2935449: 2935449: typedef struct evp_signature_st EVP_SIGNATURE; 2935449: 2935449: typedef struct evp_skeymgmt_st EVP_SKEYMGMT; 2935449: 2935449: typedef struct evp_asym_cipher_st EVP_ASYM_CIPHER; 2935449: 2935449: typedef struct evp_kem_st EVP_KEM; 2935449: 2935449: typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX; 2935449: 2935449: typedef struct hmac_ctx_st HMAC_CTX; 2935449: 2935449: typedef struct dh_st DH; 2935449: typedef struct dh_method DH_METHOD; 2935449: 2935449: 2935449: typedef struct dsa_st DSA; 2935449: typedef struct dsa_method DSA_METHOD; 2935449: 2935449: 2935449: 2935449: typedef struct rsa_st RSA; 2935449: typedef struct rsa_meth_st RSA_METHOD; 2935449: 2935449: typedef struct rsa_pss_params_st RSA_PSS_PARAMS; 2935449: 2935449: 2935449: typedef struct ec_key_st EC_KEY; 2935449: typedef struct ec_key_method_st EC_KEY_METHOD; 2935449: 2935449: 2935449: typedef struct rand_meth_st RAND_METHOD; 2935449: typedef struct rand_drbg_st RAND_DRBG; 2935449: 2935449: typedef struct ssl_dane_st SSL_DANE; 2935449: typedef struct x509_st X509; 2935449: typedef struct X509_algor_st X509_ALGOR; 2935449: typedef struct X509_crl_st X509_CRL; 2935449: typedef struct x509_crl_method_st X509_CRL_METHOD; 2935449: typedef struct x509_revoked_st X509_REVOKED; 2935449: typedef struct X509_name_st X509_NAME; 2935449: typedef struct X509_pubkey_st X509_PUBKEY; 2935449: typedef struct x509_store_st X509_STORE; 2935449: typedef struct x509_store_ctx_st X509_STORE_CTX; 2935449: 2935449: typedef struct x509_object_st X509_OBJECT; 2935449: typedef struct x509_lookup_st X509_LOOKUP; 2935449: typedef struct x509_lookup_method_st X509_LOOKUP_METHOD; 2935449: typedef struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM; 2935449: 2935449: typedef struct x509_sig_info_st X509_SIG_INFO; 2935449: 2935449: typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; 2935449: 2935449: typedef struct v3_ext_ctx X509V3_CTX; 2935449: typedef struct conf_st CONF; 2935449: typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS; 2935449: 2935449: typedef struct ui_st UI; 2935449: typedef struct ui_method_st UI_METHOD; 2935449: 2935449: typedef struct engine_st ENGINE; 2935449: typedef struct ssl_st SSL; 2935449: typedef struct ssl_ctx_st SSL_CTX; 2935449: 2935449: typedef struct comp_ctx_st COMP_CTX; 2935449: typedef struct comp_method_st COMP_METHOD; 2935449: 2935449: typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; 2935449: typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; 2935449: typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; 2935449: typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; 2935449: 2935449: typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; 2935449: typedef struct DIST_POINT_st DIST_POINT; 2935449: typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; 2935449: typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; 2935449: 2935449: typedef struct crypto_ex_data_st CRYPTO_EX_DATA; 2935449: 2935449: typedef struct ossl_http_req_ctx_st OSSL_HTTP_REQ_CTX; 2935449: typedef struct ocsp_response_st OCSP_RESPONSE; 2935449: typedef struct ocsp_responder_id_st OCSP_RESPID; 2935449: 2935449: typedef struct sct_st SCT; 2935449: typedef struct sct_ctx_st SCT_CTX; 2935449: typedef struct ctlog_st CTLOG; 2935449: typedef struct ctlog_store_st CTLOG_STORE; 2935449: typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX; 2935449: 2935449: typedef struct ossl_store_info_st OSSL_STORE_INFO; 2935449: typedef struct ossl_store_search_st OSSL_STORE_SEARCH; 2935449: 2935449: typedef struct ossl_lib_ctx_st OSSL_LIB_CTX; 2935449: 2935449: typedef struct ossl_dispatch_st OSSL_DISPATCH; 2935449: typedef struct ossl_item_st OSSL_ITEM; 2935449: typedef struct ossl_algorithm_st OSSL_ALGORITHM; 2935449: typedef struct ossl_param_st OSSL_PARAM; 2935449: typedef struct ossl_param_bld_st OSSL_PARAM_BLD; 2935449: 2935449: typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata); 2935449: 2935449: typedef struct ossl_encoder_st OSSL_ENCODER; 2935449: typedef struct ossl_encoder_ctx_st OSSL_ENCODER_CTX; 2935449: typedef struct ossl_decoder_st OSSL_DECODER; 2935449: typedef struct ossl_decoder_ctx_st OSSL_DECODER_CTX; 2935449: 2935449: typedef struct ossl_self_test_st OSSL_SELF_TEST; 2935449: 2935449: 2935449: } 2935449: # 37 "/usr/include/openssl/crypto.h" 2 3 4 2935449: 2935449: # 1 "/usr/include/openssl/cryptoerr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/cryptoerr.h" 3 4 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/symhacks.h" 1 3 4 2935449: # 12 "/usr/include/openssl/symhacks.h" 3 4 2935449: 2935449: # 17 "/usr/include/openssl/cryptoerr.h" 2 3 4 2935449: # 1 "/usr/include/openssl/cryptoerr_legacy.h" 1 3 4 2935449: # 19 "/usr/include/openssl/cryptoerr_legacy.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_ASN1_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_ASYNC_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_BIO_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_BN_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_BUF_strings(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_CMS_strings(void); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_COMP_strings(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_CONF_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_CRYPTO_strings(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_CT_strings(void); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_DH_strings(void); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_DSA_strings(void); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_EC_strings(void); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_ENGINE_strings(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_ERR_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_EVP_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_KDF_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_OBJ_strings(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_OCSP_strings(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_PEM_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_PKCS12_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_PKCS7_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_RAND_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_RSA_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_OSSL_STORE_strings(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_TS_strings(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_UI_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_X509_strings(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_X509V3_strings(void); 2935449: # 1464 "/usr/include/openssl/cryptoerr_legacy.h" 3 4 2935449: } 2935449: # 18 "/usr/include/openssl/cryptoerr.h" 2 3 4 2935449: # 39 "/usr/include/openssl/crypto.h" 2 3 4 2935449: # 1 "/usr/include/openssl/core.h" 1 3 4 2935449: # 12 "/usr/include/openssl/core.h" 3 4 2935449: 2935449: 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 160 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 3 4 2935449: typedef int ptrdiff_t; 2935449: # 440 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 3 4 2935449: typedef struct { 2935449: long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); 2935449: long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); 2935449: # 451 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 3 4 2935449: } max_align_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef decltype(nullptr) nullptr_t; 2935449: # 15 "/usr/include/openssl/core.h" 2 3 4 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 16 "/usr/include/openssl/core.h" 2 3 4 2935449: 2935449: 2935449: extern "C" { 2935449: # 30 "/usr/include/openssl/core.h" 3 4 2935449: typedef struct ossl_core_handle_st OSSL_CORE_HANDLE; 2935449: typedef struct openssl_core_ctx_st OPENSSL_CORE_CTX; 2935449: typedef struct ossl_core_bio_st OSSL_CORE_BIO; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct ossl_dispatch_st { 2935449: int function_id; 2935449: void (*function)(void); 2935449: }; 2935449: # 61 "/usr/include/openssl/core.h" 3 4 2935449: struct ossl_item_st { 2935449: unsigned int id; 2935449: void *ptr; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct ossl_algorithm_st { 2935449: const char *algorithm_names; 2935449: const char *property_definition; 2935449: const OSSL_DISPATCH *implementation; 2935449: const char *algorithm_description; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct ossl_param_st { 2935449: const char *key; 2935449: unsigned int data_type; 2935449: void *data; 2935449: size_t data_size; 2935449: size_t return_size; 2935449: }; 2935449: # 172 "/usr/include/openssl/core.h" 3 4 2935449: typedef void (*OSSL_thread_stop_handler_fn)(void *arg); 2935449: # 193 "/usr/include/openssl/core.h" 3 4 2935449: typedef int (OSSL_provider_init_fn)(const OSSL_CORE_HANDLE *handle, 2935449: const OSSL_DISPATCH *in, 2935449: const OSSL_DISPATCH **out, 2935449: void **provctx); 2935449: 2935449: 2935449: 2935449: 2935449: extern OSSL_provider_init_fn OSSL_provider_init; 2935449: # 219 "/usr/include/openssl/core.h" 3 4 2935449: typedef int (OSSL_CALLBACK)(const OSSL_PARAM params[], void *arg); 2935449: typedef int (OSSL_INOUT_CALLBACK)(const OSSL_PARAM in_params[], 2935449: OSSL_PARAM out_params[], void *arg); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_PASSPHRASE_CALLBACK)(char *pass, size_t pass_size, 2935449: size_t *pass_len, 2935449: const OSSL_PARAM params[], void *arg); 2935449: 2935449: 2935449: } 2935449: # 40 "/usr/include/openssl/crypto.h" 2 3 4 2935449: # 56 "/usr/include/openssl/crypto.h" 3 4 2935449: extern "C" { 2935449: # 73 "/usr/include/openssl/crypto.h" 3 4 2935449: typedef struct { 2935449: int dummy; 2935449: } CRYPTO_dynlock; 2935449: 2935449: 2935449: 2935449: typedef void CRYPTO_RWLOCK; 2935449: 2935449: CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void); 2935449: int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock); 2935449: int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock); 2935449: int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); 2935449: void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); 2935449: 2935449: int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); 2935449: int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, 2935449: CRYPTO_RWLOCK *lock); 2935449: int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, 2935449: CRYPTO_RWLOCK *lock); 2935449: int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, 2935449: CRYPTO_RWLOCK *lock); 2935449: int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); 2935449: int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); 2935449: int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); 2935449: # 133 "/usr/include/openssl/crypto.h" 3 4 2935449: size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); 2935449: size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); 2935449: size_t OPENSSL_strnlen(const char *str, size_t maxlen); 2935449: int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); 2935449: int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, 2935449: const unsigned char *buf, size_t buflen, 2935449: const char sep); 2935449: char *OPENSSL_buf2hexstr(const unsigned char *buf, long buflen); 2935449: int OPENSSL_hexstr2buf_ex(unsigned char *buf, size_t buf_n, size_t *buflen, 2935449: const char *str, const char sep); 2935449: unsigned char *OPENSSL_hexstr2buf(const char *str, long *buflen); 2935449: int OPENSSL_hexchar2int(unsigned char c); 2935449: int OPENSSL_strcasecmp(const char *s1, const char *s2); 2935449: int OPENSSL_strncasecmp(const char *s1, const char *s2, size_t n); 2935449: # 155 "/usr/include/openssl/crypto.h" 3 4 2935449: unsigned int OPENSSL_version_major(void); 2935449: unsigned int OPENSSL_version_minor(void); 2935449: unsigned int OPENSSL_version_patch(void); 2935449: const char *OPENSSL_version_pre_release(void); 2935449: const char *OPENSSL_version_build_metadata(void); 2935449: 2935449: unsigned long OpenSSL_version_num(void); 2935449: const char *OpenSSL_version(int type); 2935449: # 175 "/usr/include/openssl/crypto.h" 3 4 2935449: const char *OPENSSL_info(int type); 2935449: # 190 "/usr/include/openssl/crypto.h" 3 4 2935449: int OPENSSL_issetugid(void); 2935449: 2935449: struct crypto_ex_data_st { 2935449: OSSL_LIB_CTX *ctx; 2935449: struct stack_st_void *sk; 2935449: }; 2935449: 2935449: struct stack_st_void; typedef int (*sk_void_compfunc)(const void * const *a, const void *const *b); typedef void (*sk_void_freefunc)(void *a); typedef void * (*sk_void_copyfunc)(const void *a); static __attribute__((unused)) inline void *ossl_check_void_type(void *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_void_sk_type(const struct stack_st_void *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_void_sk_type(struct stack_st_void *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_void_compfunc_type(sk_void_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_void_copyfunc_type(sk_void_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_void_freefunc_type(sk_void_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 250 "/usr/include/openssl/crypto.h" 3 4 2935449: typedef void CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, 2935449: int idx, long argl, void *argp); 2935449: typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, 2935449: int idx, long argl, void *argp); 2935449: typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from, 2935449: void **from_d, int idx, long argl, void *argp); 2935449: int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, 2935449: CRYPTO_EX_new *new_func, 2935449: CRYPTO_EX_dup *dup_func, 2935449: CRYPTO_EX_free *free_func); 2935449: 2935449: int CRYPTO_free_ex_index(int class_index, int idx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); 2935449: int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, 2935449: const CRYPTO_EX_DATA *from); 2935449: 2935449: void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); 2935449: 2935449: 2935449: int CRYPTO_alloc_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad, 2935449: int idx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); 2935449: void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); 2935449: # 318 "/usr/include/openssl/crypto.h" 3 4 2935449: typedef struct crypto_threadid_st { 2935449: int dummy; 2935449: } CRYPTO_THREADID; 2935449: # 345 "/usr/include/openssl/crypto.h" 3 4 2935449: typedef void *(*CRYPTO_malloc_fn)(size_t num, const char *file, int line); 2935449: typedef void *(*CRYPTO_realloc_fn)(void *addr, size_t num, const char *file, 2935449: int line); 2935449: typedef void (*CRYPTO_free_fn)(void *addr, const char *file, int line); 2935449: int CRYPTO_set_mem_functions(CRYPTO_malloc_fn malloc_fn, 2935449: CRYPTO_realloc_fn realloc_fn, 2935449: CRYPTO_free_fn free_fn); 2935449: void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, 2935449: CRYPTO_realloc_fn *realloc_fn, 2935449: CRYPTO_free_fn *free_fn); 2935449: 2935449: __attribute__((__malloc__)) void *CRYPTO_malloc(size_t num, const char *file, int line); 2935449: __attribute__((__malloc__)) void *CRYPTO_zalloc(size_t num, const char *file, int line); 2935449: __attribute__((__malloc__)) void *CRYPTO_aligned_alloc(size_t num, size_t align, 2935449: void **freeptr, const char *file, 2935449: int line); 2935449: __attribute__((__malloc__)) void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); 2935449: __attribute__((__malloc__)) char *CRYPTO_strdup(const char *str, const char *file, int line); 2935449: __attribute__((__malloc__)) char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); 2935449: void CRYPTO_free(void *ptr, const char *file, int line); 2935449: void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); 2935449: void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); 2935449: void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, 2935449: const char *file, int line); 2935449: 2935449: int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); 2935449: int CRYPTO_secure_malloc_done(void); 2935449: __attribute__((__malloc__)) void *CRYPTO_secure_malloc(size_t num, const char *file, int line); 2935449: __attribute__((__malloc__)) void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); 2935449: void CRYPTO_secure_free(void *ptr, const char *file, int line); 2935449: void CRYPTO_secure_clear_free(void *ptr, size_t num, 2935449: const char *file, int line); 2935449: int CRYPTO_secure_allocated(const void *ptr); 2935449: int CRYPTO_secure_malloc_initialized(void); 2935449: size_t CRYPTO_secure_actual_size(void *ptr); 2935449: size_t CRYPTO_secure_used(void); 2935449: 2935449: void OPENSSL_cleanse(void *ptr, size_t len); 2935449: # 433 "/usr/include/openssl/crypto.h" 3 4 2935449: __attribute__((noreturn)) void OPENSSL_die(const char *assertion, const char *file, int line); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int OPENSSL_isservice(void); 2935449: 2935449: void OPENSSL_init(void); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void OPENSSL_fork_prepare(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void OPENSSL_fork_parent(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void OPENSSL_fork_child(void); 2935449: 2935449: 2935449: 2935449: struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result); 2935449: int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec); 2935449: int OPENSSL_gmtime_diff(int *pday, int *psec, 2935449: const struct tm *from, const struct tm *to); 2935449: # 463 "/usr/include/openssl/crypto.h" 3 4 2935449: int CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len); 2935449: # 502 "/usr/include/openssl/crypto.h" 3 4 2935449: void OPENSSL_cleanup(void); 2935449: int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); 2935449: int OPENSSL_atexit(void (*handler)(void)); 2935449: void OPENSSL_thread_stop(void); 2935449: void OPENSSL_thread_stop_ex(OSSL_LIB_CTX *ctx); 2935449: 2935449: 2935449: OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void); 2935449: 2935449: int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, 2935449: const char *config_filename); 2935449: void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings, 2935449: unsigned long flags); 2935449: int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, 2935449: const char *config_appname); 2935449: 2935449: void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings); 2935449: # 536 "/usr/include/openssl/crypto.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/pthread.h" 1 3 4 2935449: # 22 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/sched.h" 1 3 4 2935449: # 29 "/usr/arm-linux-gnueabi/include/sched.h" 3 4 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 30 "/usr/arm-linux-gnueabi/include/sched.h" 2 3 4 2935449: # 43 "/usr/arm-linux-gnueabi/include/sched.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/sched.h" 1 3 4 2935449: # 63 "/usr/arm-linux-gnueabi/include/bits/sched.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/linux/sched/types.h" 1 3 4 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/linux/types.h" 1 3 4 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm/types.h" 1 3 4 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm-generic/int-ll64.h" 1 3 4 2935449: # 12 "/usr/arm-linux-gnueabi/include/asm-generic/int-ll64.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm/bitsperlong.h" 1 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm-generic/bitsperlong.h" 1 3 4 2935449: # 2 "/usr/arm-linux-gnueabi/include/asm/bitsperlong.h" 2 3 4 2935449: # 13 "/usr/arm-linux-gnueabi/include/asm-generic/int-ll64.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __signed__ char __s8; 2935449: typedef unsigned char __u8; 2935449: 2935449: typedef __signed__ short __s16; 2935449: typedef unsigned short __u16; 2935449: 2935449: typedef __signed__ int __s32; 2935449: typedef unsigned int __u32; 2935449: 2935449: 2935449: __extension__ typedef __signed__ long long __s64; 2935449: __extension__ typedef unsigned long long __u64; 2935449: # 6 "/usr/arm-linux-gnueabi/include/asm/types.h" 2 3 4 2935449: # 6 "/usr/arm-linux-gnueabi/include/linux/types.h" 2 3 4 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/linux/posix_types.h" 1 3 4 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/linux/stddef.h" 1 3 4 2935449: # 6 "/usr/arm-linux-gnueabi/include/linux/posix_types.h" 2 3 4 2935449: # 25 "/usr/arm-linux-gnueabi/include/linux/posix_types.h" 3 4 2935449: typedef struct { 2935449: unsigned long fds_bits[1024 / (8 * sizeof(long))]; 2935449: } __kernel_fd_set; 2935449: 2935449: 2935449: typedef void (*__kernel_sighandler_t)(int); 2935449: 2935449: 2935449: typedef int __kernel_key_t; 2935449: typedef int __kernel_mqd_t; 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm/posix_types.h" 1 3 4 2935449: # 23 "/usr/arm-linux-gnueabi/include/asm/posix_types.h" 3 4 2935449: typedef unsigned short __kernel_mode_t; 2935449: 2935449: 2935449: typedef unsigned short __kernel_ipc_pid_t; 2935449: 2935449: 2935449: typedef unsigned short __kernel_uid_t; 2935449: typedef unsigned short __kernel_gid_t; 2935449: 2935449: 2935449: typedef unsigned short __kernel_old_dev_t; 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm-generic/posix_types.h" 1 3 4 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm/bitsperlong.h" 1 3 4 2935449: # 6 "/usr/arm-linux-gnueabi/include/asm-generic/posix_types.h" 2 3 4 2935449: # 15 "/usr/arm-linux-gnueabi/include/asm-generic/posix_types.h" 3 4 2935449: typedef long __kernel_long_t; 2935449: typedef unsigned long __kernel_ulong_t; 2935449: 2935449: 2935449: 2935449: typedef __kernel_ulong_t __kernel_ino_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef int __kernel_pid_t; 2935449: # 41 "/usr/arm-linux-gnueabi/include/asm-generic/posix_types.h" 3 4 2935449: typedef __kernel_long_t __kernel_suseconds_t; 2935449: 2935449: 2935449: 2935449: typedef int __kernel_daddr_t; 2935449: 2935449: 2935449: 2935449: typedef unsigned int __kernel_uid32_t; 2935449: typedef unsigned int __kernel_gid32_t; 2935449: 2935449: 2935449: 2935449: typedef __kernel_uid_t __kernel_old_uid_t; 2935449: typedef __kernel_gid_t __kernel_old_gid_t; 2935449: # 68 "/usr/arm-linux-gnueabi/include/asm-generic/posix_types.h" 3 4 2935449: typedef unsigned int __kernel_size_t; 2935449: typedef int __kernel_ssize_t; 2935449: typedef int __kernel_ptrdiff_t; 2935449: # 79 "/usr/arm-linux-gnueabi/include/asm-generic/posix_types.h" 3 4 2935449: typedef struct { 2935449: int val[2]; 2935449: } __kernel_fsid_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __kernel_long_t __kernel_off_t; 2935449: typedef long long __kernel_loff_t; 2935449: typedef __kernel_long_t __kernel_old_time_t; 2935449: typedef __kernel_long_t __kernel_time_t; 2935449: typedef long long __kernel_time64_t; 2935449: typedef __kernel_long_t __kernel_clock_t; 2935449: typedef int __kernel_timer_t; 2935449: typedef int __kernel_clockid_t; 2935449: typedef char * __kernel_caddr_t; 2935449: typedef unsigned short __kernel_uid16_t; 2935449: typedef unsigned short __kernel_gid16_t; 2935449: # 37 "/usr/arm-linux-gnueabi/include/asm/posix_types.h" 2 3 4 2935449: # 37 "/usr/arm-linux-gnueabi/include/linux/posix_types.h" 2 3 4 2935449: # 10 "/usr/arm-linux-gnueabi/include/linux/types.h" 2 3 4 2935449: # 31 "/usr/arm-linux-gnueabi/include/linux/types.h" 3 4 2935449: typedef __u16 __le16; 2935449: typedef __u16 __be16; 2935449: typedef __u32 __le32; 2935449: typedef __u32 __be32; 2935449: typedef __u64 __le64; 2935449: typedef __u64 __be64; 2935449: 2935449: typedef __u16 __sum16; 2935449: typedef __u32 __wsum; 2935449: # 55 "/usr/arm-linux-gnueabi/include/linux/types.h" 3 4 2935449: typedef unsigned __poll_t; 2935449: # 6 "/usr/arm-linux-gnueabi/include/linux/sched/types.h" 2 3 4 2935449: # 98 "/usr/arm-linux-gnueabi/include/linux/sched/types.h" 3 4 2935449: struct sched_attr { 2935449: __u32 size; 2935449: 2935449: __u32 sched_policy; 2935449: __u64 sched_flags; 2935449: 2935449: 2935449: __s32 sched_nice; 2935449: 2935449: 2935449: __u32 sched_priority; 2935449: 2935449: 2935449: __u64 sched_runtime; 2935449: __u64 sched_deadline; 2935449: __u64 sched_period; 2935449: 2935449: 2935449: __u32 sched_util_min; 2935449: __u32 sched_util_max; 2935449: 2935449: }; 2935449: # 64 "/usr/arm-linux-gnueabi/include/bits/sched.h" 2 3 4 2935449: # 126 "/usr/arm-linux-gnueabi/include/bits/sched.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/struct_sched_param.h" 1 3 4 2935449: # 23 "/usr/arm-linux-gnueabi/include/bits/types/struct_sched_param.h" 3 4 2935449: struct sched_param 2935449: { 2935449: int sched_priority; 2935449: }; 2935449: # 127 "/usr/arm-linux-gnueabi/include/bits/sched.h" 2 3 4 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: extern int clone (int (*__fn) (void *__arg), void *__child_stack, 2935449: int __flags, void *__arg, ...) noexcept (true); 2935449: 2935449: 2935449: extern int unshare (int __flags) noexcept (true); 2935449: 2935449: 2935449: extern int sched_getcpu (void) noexcept (true); 2935449: 2935449: 2935449: extern int getcpu (unsigned int *, unsigned int *) noexcept (true); 2935449: 2935449: 2935449: extern int setns (int __fd, int __nstype) noexcept (true); 2935449: 2935449: 2935449: int sched_setattr (pid_t tid, struct sched_attr *attr, unsigned int flags) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: 2935449: int sched_getattr (pid_t tid, struct sched_attr *attr, unsigned int size, 2935449: unsigned int flags) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: 2935449: } 2935449: # 44 "/usr/arm-linux-gnueabi/include/sched.h" 2 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/cpu-set.h" 1 3 4 2935449: # 32 "/usr/arm-linux-gnueabi/include/bits/cpu-set.h" 3 4 2935449: typedef unsigned long int __cpu_mask; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef struct 2935449: { 2935449: __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; 2935449: } cpu_set_t; 2935449: # 115 "/usr/arm-linux-gnueabi/include/bits/cpu-set.h" 3 4 2935449: extern "C" { 2935449: 2935449: extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) 2935449: noexcept (true); 2935449: extern cpu_set_t *__sched_cpualloc (size_t __count) noexcept (true) __attribute__ ((__warn_unused_result__)); 2935449: extern void __sched_cpufree (cpu_set_t *__set) noexcept (true); 2935449: 2935449: } 2935449: # 45 "/usr/arm-linux-gnueabi/include/sched.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) 2935449: noexcept (true); 2935449: 2935449: 2935449: extern int sched_getparam (__pid_t __pid, struct sched_param *__param) noexcept (true); 2935449: 2935449: 2935449: extern int sched_setscheduler (__pid_t __pid, int __policy, 2935449: const struct sched_param *__param) noexcept (true); 2935449: 2935449: 2935449: extern int sched_getscheduler (__pid_t __pid) noexcept (true); 2935449: 2935449: 2935449: extern int sched_yield (void) noexcept (true); 2935449: 2935449: 2935449: extern int sched_get_priority_max (int __algorithm) noexcept (true); 2935449: 2935449: 2935449: extern int sched_get_priority_min (int __algorithm) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) noexcept (true) __asm__ ("" "__sched_rr_get_interval64") 2935449: 2935449: ; 2935449: # 130 "/usr/arm-linux-gnueabi/include/sched.h" 3 4 2935449: extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, 2935449: const cpu_set_t *__cpuset) noexcept (true); 2935449: 2935449: 2935449: extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, 2935449: cpu_set_t *__cpuset) noexcept (true); 2935449: 2935449: 2935449: } 2935449: # 23 "/usr/arm-linux-gnueabi/include/pthread.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/setjmp.h" 1 3 4 2935449: # 33 "/usr/arm-linux-gnueabi/include/bits/setjmp.h" 3 4 2935449: typedef int __jmp_buf[64] __attribute__((__aligned__ (8))); 2935449: # 28 "/usr/arm-linux-gnueabi/include/pthread.h" 2 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/wordsize.h" 1 3 4 2935449: # 29 "/usr/arm-linux-gnueabi/include/pthread.h" 2 3 4 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/struct___jmp_buf_tag.h" 1 3 4 2935449: # 26 "/usr/arm-linux-gnueabi/include/bits/types/struct___jmp_buf_tag.h" 3 4 2935449: struct __jmp_buf_tag 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: __jmp_buf __jmpbuf; 2935449: int __mask_was_saved; 2935449: __sigset_t __saved_mask; 2935449: }; 2935449: # 32 "/usr/arm-linux-gnueabi/include/pthread.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: enum 2935449: { 2935449: PTHREAD_CREATE_JOINABLE, 2935449: 2935449: PTHREAD_CREATE_DETACHED 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: enum 2935449: { 2935449: PTHREAD_MUTEX_TIMED_NP, 2935449: PTHREAD_MUTEX_RECURSIVE_NP, 2935449: PTHREAD_MUTEX_ERRORCHECK_NP, 2935449: PTHREAD_MUTEX_ADAPTIVE_NP 2935449: 2935449: , 2935449: PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 2935449: PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 2935449: PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 2935449: PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 2935449: 2935449: 2935449: 2935449: , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: enum 2935449: { 2935449: PTHREAD_MUTEX_STALLED, 2935449: PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 2935449: PTHREAD_MUTEX_ROBUST, 2935449: PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: enum 2935449: { 2935449: PTHREAD_PRIO_NONE, 2935449: PTHREAD_PRIO_INHERIT, 2935449: PTHREAD_PRIO_PROTECT 2935449: }; 2935449: # 104 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: enum 2935449: { 2935449: PTHREAD_RWLOCK_PREFER_READER_NP, 2935449: PTHREAD_RWLOCK_PREFER_WRITER_NP, 2935449: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 2935449: PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 2935449: }; 2935449: # 124 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: enum 2935449: { 2935449: PTHREAD_INHERIT_SCHED, 2935449: 2935449: PTHREAD_EXPLICIT_SCHED 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: enum 2935449: { 2935449: PTHREAD_SCOPE_SYSTEM, 2935449: 2935449: PTHREAD_SCOPE_PROCESS 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: enum 2935449: { 2935449: PTHREAD_PROCESS_PRIVATE, 2935449: 2935449: PTHREAD_PROCESS_SHARED 2935449: 2935449: }; 2935449: # 159 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: struct _pthread_cleanup_buffer 2935449: { 2935449: void (*__routine) (void *); 2935449: void *__arg; 2935449: int __canceltype; 2935449: struct _pthread_cleanup_buffer *__prev; 2935449: }; 2935449: 2935449: 2935449: enum 2935449: { 2935449: PTHREAD_CANCEL_ENABLE, 2935449: 2935449: PTHREAD_CANCEL_DISABLE 2935449: 2935449: }; 2935449: enum 2935449: { 2935449: PTHREAD_CANCEL_DEFERRED, 2935449: 2935449: PTHREAD_CANCEL_ASYNCHRONOUS 2935449: 2935449: }; 2935449: # 197 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_create (pthread_t *__restrict __newthread, 2935449: const pthread_attr_t *__restrict __attr, 2935449: void *(*__start_routine) (void *), 2935449: void *__restrict __arg) noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_join (pthread_t __th, void **__thread_return); 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) noexcept (true); 2935449: # 248 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, const struct timespec *__abstime) __asm__ ("" "__pthread_timedjoin_np64") 2935449: 2935449: 2935449: ; 2935449: 2935449: extern int pthread_clockjoin_np (pthread_t __th, void **__thread_return, clockid_t __clockid, const struct timespec *__abstime) __asm__ ("" "__pthread_clockjoin_np64") 2935449: 2935449: 2935449: 2935449: ; 2935449: # 269 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_detach (pthread_t __th) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern pthread_t pthread_self (void) noexcept (true) __attribute__ ((__const__)); 2935449: 2935449: 2935449: extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) 2935449: noexcept (true) __attribute__ ((__const__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_attr_init (pthread_attr_t *__attr) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_attr_destroy (pthread_attr_t *__attr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, 2935449: int *__detachstate) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, 2935449: int __detachstate) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, 2935449: size_t *__guardsize) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_attr_setguardsize (pthread_attr_t *__attr, 2935449: size_t __guardsize) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, 2935449: struct sched_param *__restrict __param) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, 2935449: const struct sched_param *__restrict 2935449: __param) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict 2935449: __attr, int *__restrict __policy) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict 2935449: __attr, int *__restrict __inherit) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, 2935449: int __inherit) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, 2935449: int *__restrict __scope) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict 2935449: __attr, void **__restrict __stackaddr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, 2935449: void *__stackaddr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict 2935449: __attr, size_t *__restrict __stacksize) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_attr_setstacksize (pthread_attr_t *__attr, 2935449: size_t __stacksize) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, 2935449: void **__restrict __stackaddr, 2935449: size_t *__restrict __stacksize) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2, 3))); 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, 2935449: size_t __stacksize) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, 2935449: size_t __cpusetsize, 2935449: const cpu_set_t *__cpuset) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 2935449: 2935449: 2935449: 2935449: extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, 2935449: size_t __cpusetsize, 2935449: cpu_set_t *__cpuset) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 2935449: 2935449: 2935449: extern int pthread_getattr_default_np (pthread_attr_t *__attr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_attr_setsigmask_np (pthread_attr_t *__attr, 2935449: const __sigset_t *sigmask); 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_attr_getsigmask_np (const pthread_attr_t *__attr, 2935449: __sigset_t *sigmask); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_setattr_default_np (const pthread_attr_t *__attr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_setschedparam (pthread_t __target_thread, int __policy, 2935449: const struct sched_param *__param) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3))); 2935449: 2935449: 2935449: extern int pthread_getschedparam (pthread_t __target_thread, 2935449: int *__restrict __policy, 2935449: struct sched_param *__restrict __param) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2, 3))); 2935449: 2935449: 2935449: extern int pthread_setschedprio (pthread_t __target_thread, int __prio) 2935449: noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_getname_np (pthread_t __target_thread, char *__buf, 2935449: size_t __buflen) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: extern int pthread_setname_np (pthread_t __target_thread, const char *__name) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_getconcurrency (void) noexcept (true); 2935449: 2935449: 2935449: extern int pthread_setconcurrency (int __level) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int pthread_yield (void) noexcept (true); 2935449: 2935449: extern int pthread_yield (void) noexcept (true) __asm__ ("" "sched_yield") 2935449: __attribute__ ((__deprecated__ ("pthread_yield is deprecated, use sched_yield instead"))) 2935449: ; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, 2935449: const cpu_set_t *__cpuset) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3))); 2935449: 2935449: 2935449: extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, 2935449: cpu_set_t *__cpuset) 2935449: noexcept (true) __attribute__ ((__nonnull__ (3))); 2935449: # 509 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_once (pthread_once_t *__once_control, 2935449: void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); 2935449: # 521 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_setcancelstate (int __state, int *__oldstate); 2935449: 2935449: 2935449: 2935449: extern int pthread_setcanceltype (int __type, int *__oldtype); 2935449: 2935449: 2935449: extern int pthread_cancel (pthread_t __th); 2935449: 2935449: 2935449: 2935449: 2935449: extern void pthread_testcancel (void); 2935449: 2935449: 2935449: 2935449: 2935449: struct __cancel_jmp_buf_tag 2935449: { 2935449: __jmp_buf __cancel_jmp_buf; 2935449: int __mask_was_saved; 2935449: }; 2935449: 2935449: typedef struct 2935449: { 2935449: struct __cancel_jmp_buf_tag __cancel_jmp_buf[1]; 2935449: void *__pad[4]; 2935449: } __pthread_unwind_buf_t __attribute__ ((__aligned__)); 2935449: # 557 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: struct __pthread_cleanup_frame 2935449: { 2935449: void (*__cancel_routine) (void *); 2935449: void *__cancel_arg; 2935449: int __do_it; 2935449: int __cancel_type; 2935449: }; 2935449: # 697 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf) 2935449: ; 2935449: # 709 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf) 2935449: ; 2935449: # 732 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf) 2935449: ; 2935449: # 745 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf) 2935449: ; 2935449: 2935449: 2935449: 2935449: extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf) 2935449: __attribute__ ((__noreturn__)) 2935449: 2935449: __attribute__ ((__weak__)) 2935449: 2935449: ; 2935449: # 766 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int __sigsetjmp_cancel (struct __cancel_jmp_buf_tag __env[1], int __savemask) noexcept (true) __asm__ ("" "__sigsetjmp") 2935449: 2935449: 2935449: __attribute__ ((__returns_twice__)); 2935449: # 781 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_mutex_init (pthread_mutex_t *__mutex, 2935449: const pthread_mutexattr_t *__mutexattr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_mutex_lock (pthread_mutex_t *__mutex) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: # 805 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, const struct timespec *__restrict __abstime) noexcept (true) __asm__ ("" "__pthread_mutex_timedlock64") 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1, 2))); 2935449: # 823 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_mutex_clocklock (pthread_mutex_t *__restrict __mutex, clockid_t __clockid, const struct timespec *__restrict __abstime) noexcept (true) __asm__ ("" "__pthread_mutex_clocklock64") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1, 3))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern int pthread_mutex_getprioceiling (const pthread_mutex_t * 2935449: __restrict __mutex, 2935449: int *__restrict __prioceiling) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, 2935449: int __prioceiling, 2935449: int *__restrict __old_ceiling) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_mutex_consistent_np (pthread_mutex_t *) noexcept (true) __asm__ ("" "pthread_mutex_consistent") 2935449: __attribute__ ((__nonnull__ (1))) 2935449: __attribute__ ((__deprecated__ ("pthread_mutex_consistent_np is deprecated, use pthread_mutex_consistent"))) 2935449: ; 2935449: # 874 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * 2935449: __restrict __attr, 2935449: int *__restrict __pshared) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, 2935449: int __pshared) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict 2935449: __attr, int *__restrict __kind) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * 2935449: __restrict __attr, 2935449: int *__restrict __protocol) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: 2935449: extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, 2935449: int __protocol) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * 2935449: __restrict __attr, 2935449: int *__restrict __prioceiling) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, 2935449: int __prioceiling) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, 2935449: int *__robustness) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_mutexattr_getrobust_np (pthread_mutexattr_t *, int *) noexcept (true) __asm__ ("" "pthread_mutexattr_getrobust") 2935449: 2935449: __attribute__ ((__nonnull__ (1))) 2935449: __attribute__ ((__deprecated__ ("pthread_mutexattr_getrobust_np is deprecated, use pthread_mutexattr_getrobust"))) 2935449: ; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, 2935449: int __robustness) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *, int) noexcept (true) __asm__ ("" "pthread_mutexattr_setrobust") 2935449: 2935449: __attribute__ ((__nonnull__ (1))) 2935449: __attribute__ ((__deprecated__ ("pthread_mutexattr_setrobust_np is deprecated, use pthread_mutexattr_setrobust"))) 2935449: ; 2935449: # 967 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, 2935449: const pthread_rwlockattr_t *__restrict 2935449: __attr) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: # 991 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, const struct timespec *__restrict __abstime) noexcept (true) __asm__ ("" "__pthread_rwlock_timedrdlock64") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1, 2))); 2935449: # 1010 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_rwlock_clockrdlock (pthread_rwlock_t *__restrict __rwlock, clockid_t __clockid, const struct timespec *__restrict __abstime) noexcept (true) __asm__ ("" "__pthread_rwlock_clockrdlock64") 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1, 3))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: # 1038 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, const struct timespec *__restrict __abstime) noexcept (true) __asm__ ("" "__pthread_rwlock_timedwrlock64") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1, 2))); 2935449: # 1058 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_rwlock_clockwrlock (pthread_rwlock_t *__restrict __rwlock, clockid_t __clockid, const struct timespec *__restrict __abstime) noexcept (true) __asm__ ("" "__pthread_rwlock_clockwrlock64") 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1, 3))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * 2935449: __restrict __attr, 2935449: int *__restrict __pshared) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, 2935449: int __pshared) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * 2935449: __restrict __attr, 2935449: int *__restrict __pref) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, 2935449: int __pref) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_cond_init (pthread_cond_t *__restrict __cond, 2935449: const pthread_condattr_t *__restrict __cond_attr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_cond_destroy (pthread_cond_t *__cond) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_cond_signal (pthread_cond_t *__cond) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_cond_broadcast (pthread_cond_t *__cond) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, 2935449: pthread_mutex_t *__restrict __mutex) 2935449: __attribute__ ((__nonnull__ (1, 2))); 2935449: # 1151 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, const struct timespec *__restrict __abstime) __asm__ ("" "__pthread_cond_timedwait64") 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1, 2, 3))); 2935449: # 1178 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_cond_clockwait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, __clockid_t __clock_id, const struct timespec *__restrict __abstime) __asm__ ("" "__pthread_cond_clockwait64") 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__ ((__nonnull__ (1, 2, 4))); 2935449: # 1194 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_condattr_init (pthread_condattr_t *__attr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_condattr_destroy (pthread_condattr_t *__attr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_condattr_getpshared (const pthread_condattr_t * 2935449: __restrict __attr, 2935449: int *__restrict __pshared) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, 2935449: int __pshared) noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern int pthread_condattr_getclock (const pthread_condattr_t * 2935449: __restrict __attr, 2935449: __clockid_t *__restrict __clock_id) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_condattr_setclock (pthread_condattr_t *__attr, 2935449: __clockid_t __clock_id) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: # 1230 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_spin_destroy (pthread_spinlock_t *__lock) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_spin_lock (pthread_spinlock_t *__lock) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_spin_trylock (pthread_spinlock_t *__lock) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_spin_unlock (pthread_spinlock_t *__lock) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, 2935449: const pthread_barrierattr_t *__restrict 2935449: __attr, unsigned int __count) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_barrier_wait (pthread_barrier_t *__barrier) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: 2935449: extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * 2935449: __restrict __attr, 2935449: int *__restrict __pshared) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 2935449: 2935449: 2935449: extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, 2935449: int __pshared) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: # 1297 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_key_create (pthread_key_t *__key, 2935449: void (*__destr_function) (void *)) 2935449: noexcept (true) __attribute__ ((__nonnull__ (1))); 2935449: 2935449: 2935449: extern int pthread_key_delete (pthread_key_t __key) noexcept (true); 2935449: 2935449: 2935449: extern void *pthread_getspecific (pthread_key_t __key) noexcept (true); 2935449: 2935449: 2935449: extern int pthread_setspecific (pthread_key_t __key, 2935449: const void *__pointer) 2935449: noexcept (true) __attribute__ ((__access__ (__none__, 2))); 2935449: 2935449: 2935449: 2935449: 2935449: extern int pthread_getcpuclockid (pthread_t __thread_id, 2935449: __clockid_t *__clock_id) 2935449: noexcept (true) __attribute__ ((__nonnull__ (2))); 2935449: # 1332 "/usr/arm-linux-gnueabi/include/pthread.h" 3 4 2935449: extern int pthread_atfork (void (*__prepare) (void), 2935449: void (*__parent) (void), 2935449: void (*__child) (void)) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__gnu_inline__)) int 2935449: __attribute__ ((__leaf__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) noexcept (true) 2935449: { 2935449: return __thread1 == __thread2; 2935449: } 2935449: 2935449: 2935449: } 2935449: # 537 "/usr/include/openssl/crypto.h" 2 3 4 2935449: 2935449: typedef pthread_once_t CRYPTO_ONCE; 2935449: typedef pthread_key_t CRYPTO_THREAD_LOCAL; 2935449: typedef pthread_t CRYPTO_THREAD_ID; 2935449: # 553 "/usr/include/openssl/crypto.h" 3 4 2935449: int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void)); 2935449: 2935449: int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *)); 2935449: void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key); 2935449: int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val); 2935449: int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key); 2935449: 2935449: CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void); 2935449: int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b); 2935449: 2935449: OSSL_LIB_CTX *OSSL_LIB_CTX_new(void); 2935449: OSSL_LIB_CTX *OSSL_LIB_CTX_new_from_dispatch(const OSSL_CORE_HANDLE *handle, 2935449: const OSSL_DISPATCH *in); 2935449: OSSL_LIB_CTX *OSSL_LIB_CTX_new_child(const OSSL_CORE_HANDLE *handle, 2935449: const OSSL_DISPATCH *in); 2935449: int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); 2935449: void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); 2935449: OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); 2935449: OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); 2935449: int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); 2935449: void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); 2935449: 2935449: void OSSL_sleep(uint64_t millis); 2935449: 2935449: 2935449: void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); 2935449: 2935449: 2935449: } 2935449: # 24 "/usr/include/openssl/comp.h" 2 3 4 2935449: # 1 "/usr/include/openssl/comperr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/comperr.h" 3 4 2935449: 2935449: # 25 "/usr/include/openssl/comp.h" 2 3 4 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); 2935449: const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); 2935449: int COMP_CTX_get_type(const COMP_CTX* comp); 2935449: int COMP_get_type(const COMP_METHOD *meth); 2935449: const char *COMP_get_name(const COMP_METHOD *meth); 2935449: void COMP_CTX_free(COMP_CTX *ctx); 2935449: 2935449: int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, 2935449: unsigned char *in, int ilen); 2935449: int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, 2935449: unsigned char *in, int ilen); 2935449: 2935449: COMP_METHOD *COMP_zlib(void); 2935449: COMP_METHOD *COMP_zlib_oneshot(void); 2935449: COMP_METHOD *COMP_brotli(void); 2935449: COMP_METHOD *COMP_brotli_oneshot(void); 2935449: COMP_METHOD *COMP_zstd(void); 2935449: COMP_METHOD *COMP_zstd_oneshot(void); 2935449: # 64 "/usr/include/openssl/comp.h" 3 4 2935449: typedef struct ssl_comp_st SSL_COMP; 2935449: 2935449: struct stack_st_SSL_COMP; typedef int (*sk_SSL_COMP_compfunc)(const SSL_COMP * const *a, const SSL_COMP *const *b); typedef void (*sk_SSL_COMP_freefunc)(SSL_COMP *a); typedef SSL_COMP * (*sk_SSL_COMP_copyfunc)(const SSL_COMP *a); static __attribute__((unused)) inline SSL_COMP *ossl_check_SSL_COMP_type(SSL_COMP *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_SSL_COMP_sk_type(const struct stack_st_SSL_COMP *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_SSL_COMP_sk_type(struct stack_st_SSL_COMP *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_SSL_COMP_compfunc_type(sk_SSL_COMP_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_SSL_COMP_copyfunc_type(sk_SSL_COMP_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_SSL_COMP_freefunc_type(sk_SSL_COMP_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 96 "/usr/include/openssl/comp.h" 3 4 2935449: } 2935449: # 30 "/usr/include/openssl/ssl.h" 2 3 4 2935449: # 1 "/usr/include/openssl/bio.h" 1 3 4 2935449: # 16 "/usr/include/openssl/bio.h" 3 4 2935449: 2935449: # 28 "/usr/include/openssl/bio.h" 3 4 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stdarg.h" 1 3 4 2935449: # 29 "/usr/include/openssl/bio.h" 2 3 4 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/bioerr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/bioerr.h" 3 4 2935449: 2935449: # 32 "/usr/include/openssl/bio.h" 2 3 4 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: # 243 "/usr/include/openssl/bio.h" 3 4 2935449: typedef union bio_addr_st BIO_ADDR; 2935449: typedef struct bio_addrinfo_st BIO_ADDRINFO; 2935449: 2935449: int BIO_get_new_index(void); 2935449: void BIO_set_flags(BIO *b, int flags); 2935449: int BIO_test_flags(const BIO *b, int flags); 2935449: void BIO_clear_flags(BIO *b, int flags); 2935449: # 308 "/usr/include/openssl/bio.h" 3 4 2935449: typedef long (*BIO_callback_fn)(BIO *b, int oper, const char *argp, int argi, 2935449: long argl, long ret); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) BIO_callback_fn BIO_get_callback(const BIO *b); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void BIO_set_callback(BIO *b, BIO_callback_fn callback); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) long BIO_debug_callback(BIO *bio, int cmd, 2935449: const char *argp, int argi, 2935449: long argl, long ret); 2935449: 2935449: 2935449: typedef long (*BIO_callback_fn_ex)(BIO *b, int oper, const char *argp, 2935449: size_t len, int argi, 2935449: long argl, int ret, size_t *processed); 2935449: BIO_callback_fn_ex BIO_get_callback_ex(const BIO *b); 2935449: void BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex callback); 2935449: long BIO_debug_callback_ex(BIO *bio, int oper, const char *argp, size_t len, 2935449: int argi, long argl, int ret, size_t *processed); 2935449: 2935449: char *BIO_get_callback_arg(const BIO *b); 2935449: void BIO_set_callback_arg(BIO *b, char *arg); 2935449: 2935449: typedef struct bio_method_st BIO_METHOD; 2935449: 2935449: const char *BIO_method_name(const BIO *b); 2935449: int BIO_method_type(const BIO *b); 2935449: 2935449: typedef int BIO_info_cb(BIO *, int, int); 2935449: typedef BIO_info_cb bio_info_cb; 2935449: 2935449: struct stack_st_BIO; typedef int (*sk_BIO_compfunc)(const BIO * const *a, const BIO *const *b); typedef void (*sk_BIO_freefunc)(BIO *a); typedef BIO * (*sk_BIO_copyfunc)(const BIO *a); static __attribute__((unused)) inline BIO *ossl_check_BIO_type(BIO *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_BIO_sk_type(const struct stack_st_BIO *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_BIO_sk_type(struct stack_st_BIO *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_BIO_compfunc_type(sk_BIO_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_BIO_copyfunc_type(sk_BIO_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_BIO_freefunc_type(sk_BIO_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 366 "/usr/include/openssl/bio.h" 3 4 2935449: typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, 2935449: void *parg); 2935449: 2935449: typedef void (*BIO_dgram_sctp_notification_handler_fn) (BIO *b, 2935449: void *context, 2935449: void *buf); 2935449: # 398 "/usr/include/openssl/bio.h" 3 4 2935449: typedef struct bio_msg_st { 2935449: void *data; 2935449: size_t data_len; 2935449: BIO_ADDR *peer, *local; 2935449: uint64_t flags; 2935449: } BIO_MSG; 2935449: 2935449: typedef struct bio_mmsg_cb_args_st { 2935449: BIO_MSG *msg; 2935449: size_t stride, num_msg; 2935449: uint64_t flags; 2935449: size_t *msgs_processed; 2935449: } BIO_MMSG_CB_ARGS; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef struct bio_poll_descriptor_st { 2935449: uint32_t type; 2935449: union { 2935449: int fd; 2935449: void *custom; 2935449: uintptr_t custom_ui; 2935449: SSL *ssl; 2935449: } value; 2935449: } BIO_POLL_DESCRIPTOR; 2935449: # 636 "/usr/include/openssl/bio.h" 3 4 2935449: size_t BIO_ctrl_pending(BIO *b); 2935449: size_t BIO_ctrl_wpending(BIO *b); 2935449: # 656 "/usr/include/openssl/bio.h" 3 4 2935449: size_t BIO_ctrl_get_write_guarantee(BIO *b); 2935449: size_t BIO_ctrl_get_read_request(BIO *b); 2935449: int BIO_ctrl_reset_read_request(BIO *b); 2935449: # 707 "/usr/include/openssl/bio.h" 3 4 2935449: int BIO_set_ex_data(BIO *bio, int idx, void *data); 2935449: void *BIO_get_ex_data(const BIO *bio, int idx); 2935449: uint64_t BIO_number_read(BIO *bio); 2935449: uint64_t BIO_number_written(BIO *bio); 2935449: 2935449: 2935449: int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, 2935449: asn1_ps_func *prefix_free); 2935449: int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, 2935449: asn1_ps_func **pprefix_free); 2935449: int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, 2935449: asn1_ps_func *suffix_free); 2935449: int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, 2935449: asn1_ps_func **psuffix_free); 2935449: 2935449: const BIO_METHOD *BIO_s_file(void); 2935449: BIO *BIO_new_file(const char *filename, const char *mode); 2935449: BIO *BIO_new_from_core_bio(OSSL_LIB_CTX *libctx, OSSL_CORE_BIO *corebio); 2935449: 2935449: BIO *BIO_new_fp(FILE *stream, int close_flag); 2935449: 2935449: BIO *BIO_new_ex(OSSL_LIB_CTX *libctx, const BIO_METHOD *method); 2935449: BIO *BIO_new(const BIO_METHOD *type); 2935449: int BIO_free(BIO *a); 2935449: void BIO_set_data(BIO *a, void *ptr); 2935449: void *BIO_get_data(BIO *a); 2935449: void BIO_set_init(BIO *a, int init); 2935449: int BIO_get_init(BIO *a); 2935449: void BIO_set_shutdown(BIO *a, int shut); 2935449: int BIO_get_shutdown(BIO *a); 2935449: void BIO_vfree(BIO *a); 2935449: int BIO_up_ref(BIO *a); 2935449: int BIO_read(BIO *b, void *data, int dlen); 2935449: int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); 2935449: int BIO_recvmmsg(BIO *b, BIO_MSG *msg, 2935449: size_t stride, size_t num_msg, uint64_t flags, 2935449: size_t *msgs_processed); 2935449: int BIO_gets(BIO *bp, char *buf, int size); 2935449: int BIO_get_line(BIO *bio, char *buf, int size); 2935449: int BIO_write(BIO *b, const void *data, int dlen); 2935449: int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); 2935449: int BIO_sendmmsg(BIO *b, BIO_MSG *msg, 2935449: size_t stride, size_t num_msg, uint64_t flags, 2935449: size_t *msgs_processed); 2935449: int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); 2935449: int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); 2935449: int BIO_puts(BIO *bp, const char *buf); 2935449: int BIO_indent(BIO *b, int indent, int max); 2935449: long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); 2935449: long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp); 2935449: void *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); 2935449: long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); 2935449: BIO *BIO_push(BIO *b, BIO *append); 2935449: BIO *BIO_pop(BIO *b); 2935449: void BIO_free_all(BIO *a); 2935449: BIO *BIO_find_type(BIO *b, int bio_type); 2935449: BIO *BIO_next(BIO *b); 2935449: void BIO_set_next(BIO *b, BIO *next); 2935449: BIO *BIO_get_retry_BIO(BIO *bio, int *reason); 2935449: int BIO_get_retry_reason(BIO *bio); 2935449: void BIO_set_retry_reason(BIO *bio, int reason); 2935449: BIO *BIO_dup_chain(BIO *in); 2935449: 2935449: int BIO_nread0(BIO *bio, char **buf); 2935449: int BIO_nread(BIO *bio, char **buf, int num); 2935449: int BIO_nwrite0(BIO *bio, char **buf); 2935449: int BIO_nwrite(BIO *bio, char **buf, int num); 2935449: 2935449: const BIO_METHOD *BIO_s_mem(void); 2935449: 2935449: const BIO_METHOD *BIO_s_dgram_mem(void); 2935449: 2935449: const BIO_METHOD *BIO_s_secmem(void); 2935449: BIO *BIO_new_mem_buf(const void *buf, int len); 2935449: 2935449: const BIO_METHOD *BIO_s_socket(void); 2935449: const BIO_METHOD *BIO_s_connect(void); 2935449: const BIO_METHOD *BIO_s_accept(void); 2935449: 2935449: const BIO_METHOD *BIO_s_fd(void); 2935449: const BIO_METHOD *BIO_s_log(void); 2935449: const BIO_METHOD *BIO_s_bio(void); 2935449: const BIO_METHOD *BIO_s_null(void); 2935449: const BIO_METHOD *BIO_f_null(void); 2935449: const BIO_METHOD *BIO_f_buffer(void); 2935449: const BIO_METHOD *BIO_f_readbuffer(void); 2935449: const BIO_METHOD *BIO_f_linebuffer(void); 2935449: const BIO_METHOD *BIO_f_nbio_test(void); 2935449: const BIO_METHOD *BIO_f_prefix(void); 2935449: const BIO_METHOD *BIO_s_core(void); 2935449: 2935449: const BIO_METHOD *BIO_s_dgram_pair(void); 2935449: const BIO_METHOD *BIO_s_datagram(void); 2935449: int BIO_dgram_non_fatal_error(int error); 2935449: BIO *BIO_new_dgram(int fd, int close_flag); 2935449: # 815 "/usr/include/openssl/bio.h" 3 4 2935449: int BIO_sock_should_retry(int i); 2935449: int BIO_sock_non_fatal_error(int error); 2935449: int BIO_err_is_non_fatal(unsigned int errcode); 2935449: int BIO_socket_wait(int fd, int for_read, time_t max_time); 2935449: 2935449: int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); 2935449: int BIO_do_connect_retry(BIO *bio, int timeout, int nap_milliseconds); 2935449: 2935449: int BIO_fd_should_retry(int i); 2935449: int BIO_fd_non_fatal_error(int error); 2935449: int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), 2935449: void *u, const void *s, int len); 2935449: int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), 2935449: void *u, const void *s, int len, int indent); 2935449: int BIO_dump(BIO *b, const void *bytes, int len); 2935449: int BIO_dump_indent(BIO *b, const void *bytes, int len, int indent); 2935449: 2935449: int BIO_dump_fp(FILE *fp, const void *s, int len); 2935449: int BIO_dump_indent_fp(FILE *fp, const void *s, int len, int indent); 2935449: 2935449: int BIO_hex_string(BIO *out, int indent, int width, const void *data, 2935449: int datalen); 2935449: 2935449: 2935449: BIO_ADDR *BIO_ADDR_new(void); 2935449: int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); 2935449: BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); 2935449: int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, 2935449: const void *where, size_t wherelen, unsigned short port); 2935449: void BIO_ADDR_free(BIO_ADDR *); 2935449: void BIO_ADDR_clear(BIO_ADDR *ap); 2935449: int BIO_ADDR_family(const BIO_ADDR *ap); 2935449: int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l); 2935449: unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap); 2935449: char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric); 2935449: char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric); 2935449: char *BIO_ADDR_path_string(const BIO_ADDR *ap); 2935449: 2935449: const BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai); 2935449: int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai); 2935449: int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai); 2935449: int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai); 2935449: const BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai); 2935449: void BIO_ADDRINFO_free(BIO_ADDRINFO *bai); 2935449: 2935449: enum BIO_hostserv_priorities { 2935449: BIO_PARSE_PRIO_HOST, BIO_PARSE_PRIO_SERV 2935449: }; 2935449: int BIO_parse_hostserv(const char *hostserv, char **host, char **service, 2935449: enum BIO_hostserv_priorities hostserv_prio); 2935449: enum BIO_lookup_type { 2935449: BIO_LOOKUP_CLIENT, BIO_LOOKUP_SERVER 2935449: }; 2935449: int BIO_lookup(const char *host, const char *service, 2935449: enum BIO_lookup_type lookup_type, 2935449: int family, int socktype, BIO_ADDRINFO **res); 2935449: int BIO_lookup_ex(const char *host, const char *service, 2935449: int lookup_type, int family, int socktype, int protocol, 2935449: BIO_ADDRINFO **res); 2935449: int BIO_sock_error(int sock); 2935449: int BIO_socket_ioctl(int fd, long type, void *arg); 2935449: int BIO_socket_nbio(int fd, int mode); 2935449: int BIO_sock_init(void); 2935449: 2935449: 2935449: 2935449: int BIO_set_tcp_ndelay(int sock, int turn_on); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) struct hostent *BIO_gethostbyname(const char *name); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) int BIO_get_port(const char *str, unsigned short *port_ptr); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) int BIO_get_host_ip(const char *str, unsigned char *ip); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) int BIO_get_accept_socket(char *host_port, int mode); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) int BIO_accept(int sock, char **ip_port); 2935449: 2935449: 2935449: union BIO_sock_info_u { 2935449: BIO_ADDR *addr; 2935449: }; 2935449: enum BIO_sock_info_type { 2935449: BIO_SOCK_INFO_ADDRESS 2935449: }; 2935449: int BIO_sock_info(int sock, 2935449: enum BIO_sock_info_type type, union BIO_sock_info_u *info); 2935449: # 906 "/usr/include/openssl/bio.h" 3 4 2935449: int BIO_socket(int domain, int socktype, int protocol, int options); 2935449: int BIO_connect(int sock, const BIO_ADDR *addr, int options); 2935449: int BIO_bind(int sock, const BIO_ADDR *addr, int options); 2935449: int BIO_listen(int sock, const BIO_ADDR *addr, int options); 2935449: int BIO_accept_ex(int accept_sock, BIO_ADDR *addr, int options); 2935449: int BIO_closesocket(int sock); 2935449: 2935449: BIO *BIO_new_socket(int sock, int close_flag); 2935449: BIO *BIO_new_connect(const char *host_port); 2935449: BIO *BIO_new_accept(const char *host_port); 2935449: 2935449: 2935449: BIO *BIO_new_fd(int fd, int close_flag); 2935449: 2935449: int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, 2935449: BIO **bio2, size_t writebuf2); 2935449: 2935449: int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, 2935449: BIO **bio2, size_t writebuf2); 2935449: # 933 "/usr/include/openssl/bio.h" 3 4 2935449: void BIO_copy_next_retry(BIO *b); 2935449: # 957 "/usr/include/openssl/bio.h" 3 4 2935449: int BIO_printf(BIO *bio, const char *format, ...) 2935449: ; 2935449: int BIO_vprintf(BIO *bio, const char *format, va_list args) 2935449: ; 2935449: int BIO_snprintf(char *buf, size_t n, const char *format, ...) 2935449: ; 2935449: int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) 2935449: ; 2935449: 2935449: 2935449: 2935449: 2935449: BIO_METHOD *BIO_meth_new(int type, const char *name); 2935449: void BIO_meth_free(BIO_METHOD *biom); 2935449: int BIO_meth_set_write(BIO_METHOD *biom, 2935449: int (*write) (BIO *, const char *, int)); 2935449: int BIO_meth_set_write_ex(BIO_METHOD *biom, 2935449: int (*bwrite) (BIO *, const char *, size_t, size_t *)); 2935449: int BIO_meth_set_sendmmsg(BIO_METHOD *biom, 2935449: int (*f) (BIO *, BIO_MSG *, size_t, size_t, 2935449: uint64_t, size_t *)); 2935449: int BIO_meth_set_read(BIO_METHOD *biom, 2935449: int (*read) (BIO *, char *, int)); 2935449: int BIO_meth_set_read_ex(BIO_METHOD *biom, 2935449: int (*bread) (BIO *, char *, size_t, size_t *)); 2935449: int BIO_meth_set_recvmmsg(BIO_METHOD *biom, 2935449: int (*f) (BIO *, BIO_MSG *, size_t, size_t, 2935449: uint64_t, size_t *)); 2935449: int BIO_meth_set_puts(BIO_METHOD *biom, 2935449: int (*puts) (BIO *, const char *)); 2935449: int BIO_meth_set_gets(BIO_METHOD *biom, 2935449: int (*ossl_gets) (BIO *, char *, int)); 2935449: int BIO_meth_set_ctrl(BIO_METHOD *biom, 2935449: long (*ctrl) (BIO *, int, long, void *)); 2935449: int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); 2935449: int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); 2935449: int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, 2935449: long (*callback_ctrl) (BIO *, int, 2935449: BIO_info_cb *)); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.5"))) int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, 2935449: int); 2935449: __attribute__((deprecated("Since OpenSSL " "3.5"))) int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, 2935449: size_t, size_t *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.5"))) int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, 2935449: size_t, size_t, 2935449: uint64_t, size_t *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.5"))) int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); 2935449: __attribute__((deprecated("Since OpenSSL " "3.5"))) int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, 2935449: size_t, size_t *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.5"))) int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, 2935449: size_t, size_t, 2935449: uint64_t, size_t *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.5"))) int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.5"))) int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); 2935449: __attribute__((deprecated("Since OpenSSL " "3.5"))) long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, 2935449: long, void *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.5"))) int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.5"))) int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.5"))) long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, 2935449: BIO_info_cb *); 2935449: 2935449: 2935449: } 2935449: # 31 "/usr/include/openssl/ssl.h" 2 3 4 2935449: 2935449: # 1 "/usr/include/openssl/x509.h" 1 3 4 2935449: # 18 "/usr/include/openssl/x509.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 27 "/usr/include/openssl/x509.h" 2 3 4 2935449: 2935449: # 1 "/usr/include/openssl/buffer.h" 1 3 4 2935449: # 12 "/usr/include/openssl/buffer.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 20 "/usr/include/openssl/buffer.h" 2 3 4 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/buffererr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/buffererr.h" 3 4 2935449: 2935449: # 24 "/usr/include/openssl/buffer.h" 2 3 4 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 31 "/usr/include/openssl/buffer.h" 2 3 4 2935449: # 42 "/usr/include/openssl/buffer.h" 3 4 2935449: struct buf_mem_st { 2935449: size_t length; 2935449: char *data; 2935449: size_t max; 2935449: unsigned long flags; 2935449: }; 2935449: 2935449: 2935449: 2935449: BUF_MEM *BUF_MEM_new(void); 2935449: BUF_MEM *BUF_MEM_new_ex(unsigned long flags); 2935449: void BUF_MEM_free(BUF_MEM *a); 2935449: size_t BUF_MEM_grow(BUF_MEM *str, size_t len); 2935449: size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len); 2935449: void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); 2935449: 2935449: 2935449: 2935449: } 2935449: # 29 "/usr/include/openssl/x509.h" 2 3 4 2935449: # 1 "/usr/include/openssl/evp.h" 1 3 4 2935449: # 12 "/usr/include/openssl/evp.h" 3 4 2935449: 2935449: # 26 "/usr/include/openssl/evp.h" 3 4 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 27 "/usr/include/openssl/evp.h" 2 3 4 2935449: 2935449: # 1 "/usr/include/openssl/core_dispatch.h" 1 3 4 2935449: # 12 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/indicator.h" 1 3 4 2935449: # 12 "/usr/include/openssl/indicator.h" 3 4 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/params.h" 1 3 4 2935449: # 13 "/usr/include/openssl/params.h" 3 4 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/bn.h" 1 3 4 2935449: # 13 "/usr/include/openssl/bn.h" 3 4 2935449: 2935449: # 25 "/usr/include/openssl/bn.h" 3 4 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 26 "/usr/include/openssl/bn.h" 2 3 4 2935449: 2935449: # 1 "/usr/include/openssl/bnerr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/bnerr.h" 3 4 2935449: 2935449: # 28 "/usr/include/openssl/bn.h" 2 3 4 2935449: 2935449: 2935449: extern "C" { 2935449: # 76 "/usr/include/openssl/bn.h" 3 4 2935449: void BN_set_flags(BIGNUM *b, int n); 2935449: int BN_get_flags(const BIGNUM *b, int n); 2935449: # 94 "/usr/include/openssl/bn.h" 3 4 2935449: void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags); 2935449: 2935449: 2935449: int BN_GENCB_call(BN_GENCB *cb, int a, int b); 2935449: 2935449: BN_GENCB *BN_GENCB_new(void); 2935449: void BN_GENCB_free(BN_GENCB *cb); 2935449: 2935449: 2935449: void BN_GENCB_set_old(BN_GENCB *gencb, void (*callback) (int, int, void *), 2935449: void *cb_arg); 2935449: 2935449: 2935449: void BN_GENCB_set(BN_GENCB *gencb, int (*callback) (int, int, BN_GENCB *), 2935449: void *cb_arg); 2935449: 2935449: void *BN_GENCB_get_arg(BN_GENCB *cb); 2935449: # 191 "/usr/include/openssl/bn.h" 3 4 2935449: int BN_abs_is_word(const BIGNUM *a, const unsigned int w); 2935449: int BN_is_zero(const BIGNUM *a); 2935449: int BN_is_one(const BIGNUM *a); 2935449: int BN_is_word(const BIGNUM *a, const unsigned int w); 2935449: int BN_is_odd(const BIGNUM *a); 2935449: 2935449: 2935449: 2935449: void BN_zero_ex(BIGNUM *a); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const BIGNUM *BN_value_one(void); 2935449: char *BN_options(void); 2935449: BN_CTX *BN_CTX_new_ex(OSSL_LIB_CTX *ctx); 2935449: BN_CTX *BN_CTX_new(void); 2935449: BN_CTX *BN_CTX_secure_new_ex(OSSL_LIB_CTX *ctx); 2935449: BN_CTX *BN_CTX_secure_new(void); 2935449: void BN_CTX_free(BN_CTX *c); 2935449: void BN_CTX_start(BN_CTX *ctx); 2935449: BIGNUM *BN_CTX_get(BN_CTX *ctx); 2935449: void BN_CTX_end(BN_CTX *ctx); 2935449: int BN_rand_ex(BIGNUM *rnd, int bits, int top, int bottom, 2935449: unsigned int strength, BN_CTX *ctx); 2935449: int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); 2935449: int BN_priv_rand_ex(BIGNUM *rnd, int bits, int top, int bottom, 2935449: unsigned int strength, BN_CTX *ctx); 2935449: int BN_priv_rand(BIGNUM *rnd, int bits, int top, int bottom); 2935449: int BN_rand_range_ex(BIGNUM *r, const BIGNUM *range, unsigned int strength, 2935449: BN_CTX *ctx); 2935449: int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); 2935449: int BN_priv_rand_range_ex(BIGNUM *r, const BIGNUM *range, 2935449: unsigned int strength, BN_CTX *ctx); 2935449: int BN_priv_rand_range(BIGNUM *rnd, const BIGNUM *range); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); 2935449: 2935449: int BN_num_bits(const BIGNUM *a); 2935449: int BN_num_bits_word(unsigned int l); 2935449: int BN_security_bits(int L, int N); 2935449: BIGNUM *BN_new(void); 2935449: BIGNUM *BN_secure_new(void); 2935449: void BN_clear_free(BIGNUM *a); 2935449: BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); 2935449: void BN_swap(BIGNUM *a, BIGNUM *b); 2935449: BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); 2935449: BIGNUM *BN_signed_bin2bn(const unsigned char *s, int len, BIGNUM *ret); 2935449: int BN_bn2bin(const BIGNUM *a, unsigned char *to); 2935449: int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen); 2935449: int BN_signed_bn2bin(const BIGNUM *a, unsigned char *to, int tolen); 2935449: BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); 2935449: BIGNUM *BN_signed_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); 2935449: int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen); 2935449: int BN_signed_bn2lebin(const BIGNUM *a, unsigned char *to, int tolen); 2935449: BIGNUM *BN_native2bn(const unsigned char *s, int len, BIGNUM *ret); 2935449: BIGNUM *BN_signed_native2bn(const unsigned char *s, int len, BIGNUM *ret); 2935449: int BN_bn2nativepad(const BIGNUM *a, unsigned char *to, int tolen); 2935449: int BN_signed_bn2native(const BIGNUM *a, unsigned char *to, int tolen); 2935449: BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); 2935449: int BN_bn2mpi(const BIGNUM *a, unsigned char *to); 2935449: int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 2935449: int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 2935449: int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 2935449: int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 2935449: int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); 2935449: int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: void BN_set_negative(BIGNUM *b, int n); 2935449: 2935449: 2935449: 2935449: 2935449: int BN_is_negative(const BIGNUM *b); 2935449: 2935449: int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, 2935449: BN_CTX *ctx); 2935449: 2935449: int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); 2935449: int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, 2935449: BN_CTX *ctx); 2935449: int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 2935449: const BIGNUM *m); 2935449: int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, 2935449: BN_CTX *ctx); 2935449: int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 2935449: const BIGNUM *m); 2935449: int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, 2935449: BN_CTX *ctx); 2935449: int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); 2935449: int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); 2935449: int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); 2935449: int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, 2935449: BN_CTX *ctx); 2935449: int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); 2935449: 2935449: unsigned int BN_mod_word(const BIGNUM *a, unsigned int w); 2935449: unsigned int BN_div_word(BIGNUM *a, unsigned int w); 2935449: int BN_mul_word(BIGNUM *a, unsigned int w); 2935449: int BN_add_word(BIGNUM *a, unsigned int w); 2935449: int BN_sub_word(BIGNUM *a, unsigned int w); 2935449: int BN_set_word(BIGNUM *a, unsigned int w); 2935449: unsigned int BN_get_word(const BIGNUM *a); 2935449: 2935449: int BN_cmp(const BIGNUM *a, const BIGNUM *b); 2935449: void BN_free(BIGNUM *a); 2935449: int BN_is_bit_set(const BIGNUM *a, int n); 2935449: int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); 2935449: int BN_lshift1(BIGNUM *r, const BIGNUM *a); 2935449: int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 2935449: 2935449: int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 2935449: const BIGNUM *m, BN_CTX *ctx); 2935449: int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 2935449: const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 2935449: int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, 2935449: const BIGNUM *m, BN_CTX *ctx, 2935449: BN_MONT_CTX *in_mont); 2935449: int BN_mod_exp_mont_word(BIGNUM *r, unsigned int a, const BIGNUM *p, 2935449: const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 2935449: int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, 2935449: const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, 2935449: BN_CTX *ctx, BN_MONT_CTX *m_ctx); 2935449: int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 2935449: const BIGNUM *m, BN_CTX *ctx); 2935449: int BN_mod_exp_mont_consttime_x2(BIGNUM *rr1, const BIGNUM *a1, const BIGNUM *p1, 2935449: const BIGNUM *m1, BN_MONT_CTX *in_mont1, 2935449: BIGNUM *rr2, const BIGNUM *a2, const BIGNUM *p2, 2935449: const BIGNUM *m2, BN_MONT_CTX *in_mont2, 2935449: BN_CTX *ctx); 2935449: 2935449: int BN_mask_bits(BIGNUM *a, int n); 2935449: 2935449: int BN_print_fp(FILE *fp, const BIGNUM *a); 2935449: 2935449: int BN_print(BIO *bio, const BIGNUM *a); 2935449: int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); 2935449: int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); 2935449: int BN_rshift1(BIGNUM *r, const BIGNUM *a); 2935449: void BN_clear(BIGNUM *a); 2935449: BIGNUM *BN_dup(const BIGNUM *a); 2935449: int BN_ucmp(const BIGNUM *a, const BIGNUM *b); 2935449: int BN_set_bit(BIGNUM *a, int n); 2935449: int BN_clear_bit(BIGNUM *a, int n); 2935449: char *BN_bn2hex(const BIGNUM *a); 2935449: char *BN_bn2dec(const BIGNUM *a); 2935449: int BN_hex2bn(BIGNUM **a, const char *str); 2935449: int BN_dec2bn(BIGNUM **a, const char *str); 2935449: int BN_asc2bn(BIGNUM **a, const char *str); 2935449: int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); 2935449: int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); 2935449: 2935449: 2935449: int BN_are_coprime(BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); 2935449: BIGNUM *BN_mod_inverse(BIGNUM *ret, 2935449: const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); 2935449: BIGNUM *BN_mod_sqrt(BIGNUM *ret, 2935449: const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); 2935449: 2935449: void BN_consttime_swap(unsigned int swap, BIGNUM *a, BIGNUM *b, int nwords); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "0.9.8"))) 2935449: BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, 2935449: const BIGNUM *add, const BIGNUM *rem, 2935449: void (*callback) (int, int, void *), 2935449: void *cb_arg); 2935449: __attribute__((deprecated("Since OpenSSL " "0.9.8"))) 2935449: int BN_is_prime(const BIGNUM *p, int nchecks, 2935449: void (*callback) (int, int, void *), 2935449: BN_CTX *ctx, void *cb_arg); 2935449: __attribute__((deprecated("Since OpenSSL " "0.9.8"))) 2935449: int BN_is_prime_fasttest(const BIGNUM *p, int nchecks, 2935449: void (*callback) (int, int, void *), 2935449: BN_CTX *ctx, void *cb_arg, 2935449: int do_trial_division); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, 2935449: int do_trial_division, BN_GENCB *cb); 2935449: 2935449: 2935449: int BN_generate_prime_ex2(BIGNUM *ret, int bits, int safe, 2935449: const BIGNUM *add, const BIGNUM *rem, BN_GENCB *cb, 2935449: BN_CTX *ctx); 2935449: int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, 2935449: const BIGNUM *rem, BN_GENCB *cb); 2935449: int BN_check_prime(const BIGNUM *p, BN_CTX *ctx, BN_GENCB *cb); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, 2935449: const BIGNUM *Xp, const BIGNUM *Xp1, 2935449: const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, 2935449: BN_GENCB *cb); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, 2935449: BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, 2935449: BN_CTX *ctx, BN_GENCB *cb); 2935449: 2935449: 2935449: BN_MONT_CTX *BN_MONT_CTX_new(void); 2935449: int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 2935449: BN_MONT_CTX *mont, BN_CTX *ctx); 2935449: int BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, 2935449: BN_CTX *ctx); 2935449: int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, 2935449: BN_CTX *ctx); 2935449: void BN_MONT_CTX_free(BN_MONT_CTX *mont); 2935449: int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); 2935449: BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); 2935449: BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_RWLOCK *lock, 2935449: const BIGNUM *mod, BN_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); 2935449: void BN_BLINDING_free(BN_BLINDING *b); 2935449: int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); 2935449: int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); 2935449: int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); 2935449: int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); 2935449: int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, 2935449: BN_CTX *); 2935449: 2935449: int BN_BLINDING_is_current_thread(BN_BLINDING *b); 2935449: void BN_BLINDING_set_current_thread(BN_BLINDING *b); 2935449: int BN_BLINDING_lock(BN_BLINDING *b); 2935449: int BN_BLINDING_unlock(BN_BLINDING *b); 2935449: 2935449: unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); 2935449: void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); 2935449: BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, 2935449: const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, 2935449: int (*bn_mod_exp) (BIGNUM *r, 2935449: const BIGNUM *a, 2935449: const BIGNUM *p, 2935449: const BIGNUM *m, 2935449: BN_CTX *ctx, 2935449: BN_MONT_CTX *m_ctx), 2935449: BN_MONT_CTX *m_ctx); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "0.9.8"))) 2935449: void BN_set_params(int mul, int high, int low, int mont); 2935449: __attribute__((deprecated("Since OpenSSL " "0.9.8"))) 2935449: int BN_get_params(int which); 2935449: 2935449: 2935449: BN_RECP_CTX *BN_RECP_CTX_new(void); 2935449: void BN_RECP_CTX_free(BN_RECP_CTX *recp); 2935449: int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); 2935449: int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, 2935449: BN_RECP_CTX *recp, BN_CTX *ctx); 2935449: int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 2935449: const BIGNUM *m, BN_CTX *ctx); 2935449: int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, 2935449: BN_RECP_CTX *recp, BN_CTX *ctx); 2935449: # 479 "/usr/include/openssl/bn.h" 3 4 2935449: int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 2935449: 2935449: 2935449: 2935449: 2935449: int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); 2935449: 2935449: int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 2935449: const BIGNUM *p, BN_CTX *ctx); 2935449: 2935449: int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 2935449: 2935449: int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); 2935449: 2935449: int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 2935449: const BIGNUM *p, BN_CTX *ctx); 2935449: 2935449: int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 2935449: const BIGNUM *p, BN_CTX *ctx); 2935449: 2935449: int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 2935449: BN_CTX *ctx); 2935449: 2935449: int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 2935449: BN_CTX *ctx); 2935449: # 512 "/usr/include/openssl/bn.h" 3 4 2935449: int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); 2935449: 2935449: int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 2935449: const int p[], BN_CTX *ctx); 2935449: 2935449: int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], 2935449: BN_CTX *ctx); 2935449: 2935449: int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], 2935449: BN_CTX *ctx); 2935449: 2935449: int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 2935449: const int p[], BN_CTX *ctx); 2935449: 2935449: int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 2935449: const int p[], BN_CTX *ctx); 2935449: 2935449: int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, 2935449: const int p[], BN_CTX *ctx); 2935449: 2935449: int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, 2935449: const int p[], BN_CTX *ctx); 2935449: int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); 2935449: int BN_GF2m_arr2poly(const int p[], BIGNUM *a); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 2935449: int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 2935449: int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 2935449: int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 2935449: int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 2935449: 2935449: const BIGNUM *BN_get0_nist_prime_192(void); 2935449: const BIGNUM *BN_get0_nist_prime_224(void); 2935449: const BIGNUM *BN_get0_nist_prime_256(void); 2935449: const BIGNUM *BN_get0_nist_prime_384(void); 2935449: const BIGNUM *BN_get0_nist_prime_521(void); 2935449: 2935449: int (*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a, 2935449: const BIGNUM *field, BN_CTX *ctx); 2935449: 2935449: int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range, 2935449: const BIGNUM *priv, const unsigned char *message, 2935449: size_t message_len, BN_CTX *ctx); 2935449: 2935449: 2935449: BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn); 2935449: BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn); 2935449: 2935449: 2935449: BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn); 2935449: BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn); 2935449: BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn); 2935449: BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn); 2935449: BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn); 2935449: BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn); 2935449: # 584 "/usr/include/openssl/bn.h" 3 4 2935449: int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); 2935449: 2935449: 2935449: 2935449: } 2935449: # 17 "/usr/include/openssl/params.h" 2 3 4 2935449: 2935449: 2935449: extern "C" { 2935449: # 71 "/usr/include/openssl/params.h" 3 4 2935449: OSSL_PARAM *OSSL_PARAM_locate(OSSL_PARAM *p, const char *key); 2935449: const OSSL_PARAM *OSSL_PARAM_locate_const(const OSSL_PARAM *p, const char *key); 2935449: 2935449: 2935449: OSSL_PARAM OSSL_PARAM_construct_int(const char *key, int *buf); 2935449: OSSL_PARAM OSSL_PARAM_construct_uint(const char *key, unsigned int *buf); 2935449: OSSL_PARAM OSSL_PARAM_construct_long(const char *key, long int *buf); 2935449: OSSL_PARAM OSSL_PARAM_construct_ulong(const char *key, unsigned long int *buf); 2935449: OSSL_PARAM OSSL_PARAM_construct_int32(const char *key, int32_t *buf); 2935449: OSSL_PARAM OSSL_PARAM_construct_uint32(const char *key, uint32_t *buf); 2935449: OSSL_PARAM OSSL_PARAM_construct_int64(const char *key, int64_t *buf); 2935449: OSSL_PARAM OSSL_PARAM_construct_uint64(const char *key, uint64_t *buf); 2935449: OSSL_PARAM OSSL_PARAM_construct_size_t(const char *key, size_t *buf); 2935449: OSSL_PARAM OSSL_PARAM_construct_time_t(const char *key, time_t *buf); 2935449: OSSL_PARAM OSSL_PARAM_construct_BN(const char *key, unsigned char *buf, 2935449: size_t bsize); 2935449: OSSL_PARAM OSSL_PARAM_construct_double(const char *key, double *buf); 2935449: OSSL_PARAM OSSL_PARAM_construct_utf8_string(const char *key, char *buf, 2935449: size_t bsize); 2935449: OSSL_PARAM OSSL_PARAM_construct_utf8_ptr(const char *key, char **buf, 2935449: size_t bsize); 2935449: OSSL_PARAM OSSL_PARAM_construct_octet_string(const char *key, void *buf, 2935449: size_t bsize); 2935449: OSSL_PARAM OSSL_PARAM_construct_octet_ptr(const char *key, void **buf, 2935449: size_t bsize); 2935449: OSSL_PARAM OSSL_PARAM_construct_end(void); 2935449: 2935449: int OSSL_PARAM_allocate_from_text(OSSL_PARAM *to, 2935449: const OSSL_PARAM *paramdefs, 2935449: const char *key, const char *value, 2935449: size_t value_n, int *found); 2935449: 2935449: int OSSL_PARAM_print_to_bio(const OSSL_PARAM *params, BIO *bio, 2935449: int print_values); 2935449: 2935449: int OSSL_PARAM_get_int(const OSSL_PARAM *p, int *val); 2935449: int OSSL_PARAM_get_uint(const OSSL_PARAM *p, unsigned int *val); 2935449: int OSSL_PARAM_get_long(const OSSL_PARAM *p, long int *val); 2935449: int OSSL_PARAM_get_ulong(const OSSL_PARAM *p, unsigned long int *val); 2935449: int OSSL_PARAM_get_int32(const OSSL_PARAM *p, int32_t *val); 2935449: int OSSL_PARAM_get_uint32(const OSSL_PARAM *p, uint32_t *val); 2935449: int OSSL_PARAM_get_int64(const OSSL_PARAM *p, int64_t *val); 2935449: int OSSL_PARAM_get_uint64(const OSSL_PARAM *p, uint64_t *val); 2935449: int OSSL_PARAM_get_size_t(const OSSL_PARAM *p, size_t *val); 2935449: int OSSL_PARAM_get_time_t(const OSSL_PARAM *p, time_t *val); 2935449: 2935449: int OSSL_PARAM_set_int(OSSL_PARAM *p, int val); 2935449: int OSSL_PARAM_set_uint(OSSL_PARAM *p, unsigned int val); 2935449: int OSSL_PARAM_set_long(OSSL_PARAM *p, long int val); 2935449: int OSSL_PARAM_set_ulong(OSSL_PARAM *p, unsigned long int val); 2935449: int OSSL_PARAM_set_int32(OSSL_PARAM *p, int32_t val); 2935449: int OSSL_PARAM_set_uint32(OSSL_PARAM *p, uint32_t val); 2935449: int OSSL_PARAM_set_int64(OSSL_PARAM *p, int64_t val); 2935449: int OSSL_PARAM_set_uint64(OSSL_PARAM *p, uint64_t val); 2935449: int OSSL_PARAM_set_size_t(OSSL_PARAM *p, size_t val); 2935449: int OSSL_PARAM_set_time_t(OSSL_PARAM *p, time_t val); 2935449: 2935449: int OSSL_PARAM_get_double(const OSSL_PARAM *p, double *val); 2935449: int OSSL_PARAM_set_double(OSSL_PARAM *p, double val); 2935449: 2935449: int OSSL_PARAM_get_BN(const OSSL_PARAM *p, BIGNUM **val); 2935449: int OSSL_PARAM_set_BN(OSSL_PARAM *p, const BIGNUM *val); 2935449: 2935449: int OSSL_PARAM_get_utf8_string(const OSSL_PARAM *p, char **val, size_t max_len); 2935449: int OSSL_PARAM_set_utf8_string(OSSL_PARAM *p, const char *val); 2935449: 2935449: int OSSL_PARAM_get_octet_string(const OSSL_PARAM *p, void **val, size_t max_len, 2935449: size_t *used_len); 2935449: int OSSL_PARAM_set_octet_string(OSSL_PARAM *p, const void *val, size_t len); 2935449: 2935449: int OSSL_PARAM_get_utf8_ptr(const OSSL_PARAM *p, const char **val); 2935449: int OSSL_PARAM_set_utf8_ptr(OSSL_PARAM *p, const char *val); 2935449: 2935449: int OSSL_PARAM_get_octet_ptr(const OSSL_PARAM *p, const void **val, 2935449: size_t *used_len); 2935449: int OSSL_PARAM_set_octet_ptr(OSSL_PARAM *p, const void *val, 2935449: size_t used_len); 2935449: 2935449: int OSSL_PARAM_get_utf8_string_ptr(const OSSL_PARAM *p, const char **val); 2935449: int OSSL_PARAM_get_octet_string_ptr(const OSSL_PARAM *p, const void **val, 2935449: size_t *used_len); 2935449: 2935449: int OSSL_PARAM_modified(const OSSL_PARAM *p); 2935449: void OSSL_PARAM_set_all_unmodified(OSSL_PARAM *p); 2935449: 2935449: OSSL_PARAM *OSSL_PARAM_dup(const OSSL_PARAM *p); 2935449: OSSL_PARAM *OSSL_PARAM_merge(const OSSL_PARAM *p1, const OSSL_PARAM *p2); 2935449: void OSSL_PARAM_free(OSSL_PARAM *p); 2935449: 2935449: 2935449: } 2935449: # 19 "/usr/include/openssl/indicator.h" 2 3 4 2935449: 2935449: typedef int (OSSL_INDICATOR_CALLBACK)(const char *type, const char *desc, 2935449: const OSSL_PARAM params[]); 2935449: 2935449: void OSSL_INDICATOR_set_callback(OSSL_LIB_CTX *libctx, 2935449: OSSL_INDICATOR_CALLBACK *cb); 2935449: void OSSL_INDICATOR_get_callback(OSSL_LIB_CTX *libctx, 2935449: OSSL_INDICATOR_CALLBACK **cb); 2935449: 2935449: 2935449: } 2935449: # 17 "/usr/include/openssl/core_dispatch.h" 2 3 4 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef void (*OSSL_FUNC)(void); 2935449: # 72 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_core_gettable_params_fn)(const OSSL_CORE_HANDLE *prov); static __attribute__((unused)) inline OSSL_FUNC_core_gettable_params_fn *OSSL_FUNC_core_gettable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_core_gettable_params_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_core_get_params_fn)(const OSSL_CORE_HANDLE *prov, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_core_get_params_fn *OSSL_FUNC_core_get_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_core_get_params_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_core_thread_start_fn)(const OSSL_CORE_HANDLE *prov, OSSL_thread_stop_handler_fn handfn, void *arg); static __attribute__((unused)) inline OSSL_FUNC_core_thread_start_fn *OSSL_FUNC_core_thread_start(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_core_thread_start_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef OPENSSL_CORE_CTX * (OSSL_FUNC_core_get_libctx_fn)(const OSSL_CORE_HANDLE *prov); static __attribute__((unused)) inline OSSL_FUNC_core_get_libctx_fn *OSSL_FUNC_core_get_libctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_core_get_libctx_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_core_new_error_fn)(const OSSL_CORE_HANDLE *prov); static __attribute__((unused)) inline OSSL_FUNC_core_new_error_fn *OSSL_FUNC_core_new_error(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_core_new_error_fn *)opf->function; } 2935449: 2935449: typedef void (OSSL_FUNC_core_set_error_debug_fn)(const OSSL_CORE_HANDLE *prov, const char *file, int line, const char *func); static __attribute__((unused)) inline OSSL_FUNC_core_set_error_debug_fn *OSSL_FUNC_core_set_error_debug(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_core_set_error_debug_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_core_vset_error_fn)(const OSSL_CORE_HANDLE *prov, uint32_t reason, const char *fmt, va_list args); static __attribute__((unused)) inline OSSL_FUNC_core_vset_error_fn *OSSL_FUNC_core_vset_error(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_core_vset_error_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_core_set_error_mark_fn)(const OSSL_CORE_HANDLE *prov); static __attribute__((unused)) inline OSSL_FUNC_core_set_error_mark_fn *OSSL_FUNC_core_set_error_mark(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_core_set_error_mark_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_core_clear_last_error_mark_fn)(const OSSL_CORE_HANDLE *prov); static __attribute__((unused)) inline OSSL_FUNC_core_clear_last_error_mark_fn *OSSL_FUNC_core_clear_last_error_mark(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_core_clear_last_error_mark_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_core_pop_error_to_mark_fn)(const OSSL_CORE_HANDLE *prov); static __attribute__((unused)) inline OSSL_FUNC_core_pop_error_to_mark_fn *OSSL_FUNC_core_pop_error_to_mark(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_core_pop_error_to_mark_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_core_obj_add_sigid_fn)(const OSSL_CORE_HANDLE *prov, const char *sign_name, const char *digest_name, const char *pkey_name); static __attribute__((unused)) inline OSSL_FUNC_core_obj_add_sigid_fn *OSSL_FUNC_core_obj_add_sigid(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_core_obj_add_sigid_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_core_obj_create_fn)(const OSSL_CORE_HANDLE *prov, const char *oid, const char *sn, const char *ln); static __attribute__((unused)) inline OSSL_FUNC_core_obj_create_fn *OSSL_FUNC_core_obj_create(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_core_obj_create_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef void * (OSSL_FUNC_CRYPTO_malloc_fn)(size_t num, const char *file, int line); static __attribute__((unused)) inline OSSL_FUNC_CRYPTO_malloc_fn *OSSL_FUNC_CRYPTO_malloc(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_CRYPTO_malloc_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void * (OSSL_FUNC_CRYPTO_zalloc_fn)(size_t num, const char *file, int line); static __attribute__((unused)) inline OSSL_FUNC_CRYPTO_zalloc_fn *OSSL_FUNC_CRYPTO_zalloc(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_CRYPTO_zalloc_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_CRYPTO_free_fn)(void *ptr, const char *file, int line); static __attribute__((unused)) inline OSSL_FUNC_CRYPTO_free_fn *OSSL_FUNC_CRYPTO_free(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_CRYPTO_free_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_CRYPTO_clear_free_fn)(void *ptr, size_t num, const char *file, int line); static __attribute__((unused)) inline OSSL_FUNC_CRYPTO_clear_free_fn *OSSL_FUNC_CRYPTO_clear_free(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_CRYPTO_clear_free_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void * (OSSL_FUNC_CRYPTO_realloc_fn)(void *addr, size_t num, const char *file, int line); static __attribute__((unused)) inline OSSL_FUNC_CRYPTO_realloc_fn *OSSL_FUNC_CRYPTO_realloc(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_CRYPTO_realloc_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void * (OSSL_FUNC_CRYPTO_clear_realloc_fn)(void *addr, size_t old_num, size_t num, const char *file, int line); static __attribute__((unused)) inline OSSL_FUNC_CRYPTO_clear_realloc_fn *OSSL_FUNC_CRYPTO_clear_realloc(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_CRYPTO_clear_realloc_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef void * (OSSL_FUNC_CRYPTO_secure_malloc_fn)(size_t num, const char *file, int line); static __attribute__((unused)) inline OSSL_FUNC_CRYPTO_secure_malloc_fn *OSSL_FUNC_CRYPTO_secure_malloc(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_CRYPTO_secure_malloc_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void * (OSSL_FUNC_CRYPTO_secure_zalloc_fn)(size_t num, const char *file, int line); static __attribute__((unused)) inline OSSL_FUNC_CRYPTO_secure_zalloc_fn *OSSL_FUNC_CRYPTO_secure_zalloc(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_CRYPTO_secure_zalloc_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_CRYPTO_secure_free_fn)(void *ptr, const char *file, int line); static __attribute__((unused)) inline OSSL_FUNC_CRYPTO_secure_free_fn *OSSL_FUNC_CRYPTO_secure_free(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_CRYPTO_secure_free_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_CRYPTO_secure_clear_free_fn)(void *ptr, size_t num, const char *file, int line); static __attribute__((unused)) inline OSSL_FUNC_CRYPTO_secure_clear_free_fn *OSSL_FUNC_CRYPTO_secure_clear_free(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_CRYPTO_secure_clear_free_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_CRYPTO_secure_allocated_fn)(const void *ptr); static __attribute__((unused)) inline OSSL_FUNC_CRYPTO_secure_allocated_fn *OSSL_FUNC_CRYPTO_secure_allocated(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_CRYPTO_secure_allocated_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_OPENSSL_cleanse_fn)(void *ptr, size_t len); static __attribute__((unused)) inline OSSL_FUNC_OPENSSL_cleanse_fn *OSSL_FUNC_OPENSSL_cleanse(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_OPENSSL_cleanse_fn *)opf->function; } 2935449: # 169 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef OSSL_CORE_BIO * (OSSL_FUNC_BIO_new_file_fn)(const char *filename, const char *mode); static __attribute__((unused)) inline OSSL_FUNC_BIO_new_file_fn *OSSL_FUNC_BIO_new_file(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_BIO_new_file_fn *)opf->function; } 2935449: 2935449: typedef OSSL_CORE_BIO * (OSSL_FUNC_BIO_new_membuf_fn)(const void *buf, int len); static __attribute__((unused)) inline OSSL_FUNC_BIO_new_membuf_fn *OSSL_FUNC_BIO_new_membuf(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_BIO_new_membuf_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_BIO_read_ex_fn)(OSSL_CORE_BIO *bio, void *data, size_t data_len, size_t *bytes_read); static __attribute__((unused)) inline OSSL_FUNC_BIO_read_ex_fn *OSSL_FUNC_BIO_read_ex(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_BIO_read_ex_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_BIO_write_ex_fn)(OSSL_CORE_BIO *bio, const void *data, size_t data_len, size_t *written); static __attribute__((unused)) inline OSSL_FUNC_BIO_write_ex_fn *OSSL_FUNC_BIO_write_ex(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_BIO_write_ex_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_BIO_gets_fn)(OSSL_CORE_BIO *bio, char *buf, int size); static __attribute__((unused)) inline OSSL_FUNC_BIO_gets_fn *OSSL_FUNC_BIO_gets(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_BIO_gets_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_BIO_puts_fn)(OSSL_CORE_BIO *bio, const char *str); static __attribute__((unused)) inline OSSL_FUNC_BIO_puts_fn *OSSL_FUNC_BIO_puts(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_BIO_puts_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_BIO_up_ref_fn)(OSSL_CORE_BIO *bio); static __attribute__((unused)) inline OSSL_FUNC_BIO_up_ref_fn *OSSL_FUNC_BIO_up_ref(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_BIO_up_ref_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_BIO_free_fn)(OSSL_CORE_BIO *bio); static __attribute__((unused)) inline OSSL_FUNC_BIO_free_fn *OSSL_FUNC_BIO_free(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_BIO_free_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_BIO_vprintf_fn)(OSSL_CORE_BIO *bio, const char *format, va_list args); static __attribute__((unused)) inline OSSL_FUNC_BIO_vprintf_fn *OSSL_FUNC_BIO_vprintf(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_BIO_vprintf_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_BIO_vsnprintf_fn)(char *buf, size_t n, const char *fmt, va_list args); static __attribute__((unused)) inline OSSL_FUNC_BIO_vsnprintf_fn *OSSL_FUNC_BIO_vsnprintf(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_BIO_vsnprintf_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_BIO_ctrl_fn)(OSSL_CORE_BIO *bio, int cmd, long num, void *ptr); static __attribute__((unused)) inline OSSL_FUNC_BIO_ctrl_fn *OSSL_FUNC_BIO_ctrl(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_BIO_ctrl_fn *)opf->function; } 2935449: # 194 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void (OSSL_FUNC_indicator_cb_fn)(OPENSSL_CORE_CTX *ctx, OSSL_INDICATOR_CALLBACK **cb); static __attribute__((unused)) inline OSSL_FUNC_indicator_cb_fn *OSSL_FUNC_indicator_cb(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_indicator_cb_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_self_test_cb_fn)(OPENSSL_CORE_CTX *ctx, OSSL_CALLBACK **cb, void **cbarg); static __attribute__((unused)) inline OSSL_FUNC_self_test_cb_fn *OSSL_FUNC_self_test_cb(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_self_test_cb_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef size_t (OSSL_FUNC_get_entropy_fn)(const OSSL_CORE_HANDLE *handle, unsigned char **pout, int entropy, size_t min_len, size_t max_len); static __attribute__((unused)) inline OSSL_FUNC_get_entropy_fn *OSSL_FUNC_get_entropy(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_get_entropy_fn *)opf->function; } 2935449: 2935449: 2935449: typedef size_t (OSSL_FUNC_get_user_entropy_fn)(const OSSL_CORE_HANDLE *handle, unsigned char **pout, int entropy, size_t min_len, size_t max_len); static __attribute__((unused)) inline OSSL_FUNC_get_user_entropy_fn *OSSL_FUNC_get_user_entropy(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_get_user_entropy_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_cleanup_entropy_fn)(const OSSL_CORE_HANDLE *handle, unsigned char *buf, size_t len); static __attribute__((unused)) inline OSSL_FUNC_cleanup_entropy_fn *OSSL_FUNC_cleanup_entropy(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cleanup_entropy_fn *)opf->function; } 2935449: 2935449: typedef void (OSSL_FUNC_cleanup_user_entropy_fn)(const OSSL_CORE_HANDLE *handle, unsigned char *buf, size_t len); static __attribute__((unused)) inline OSSL_FUNC_cleanup_user_entropy_fn *OSSL_FUNC_cleanup_user_entropy(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cleanup_user_entropy_fn *)opf->function; } 2935449: 2935449: typedef size_t (OSSL_FUNC_get_nonce_fn)(const OSSL_CORE_HANDLE *handle, unsigned char **pout, size_t min_len, size_t max_len, const void *salt, size_t salt_len); static __attribute__((unused)) inline OSSL_FUNC_get_nonce_fn *OSSL_FUNC_get_nonce(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_get_nonce_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef size_t (OSSL_FUNC_get_user_nonce_fn)(const OSSL_CORE_HANDLE *handle, unsigned char **pout, size_t min_len, size_t max_len, const void *salt, size_t salt_len); static __attribute__((unused)) inline OSSL_FUNC_get_user_nonce_fn *OSSL_FUNC_get_user_nonce(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_get_user_nonce_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_cleanup_nonce_fn)(const OSSL_CORE_HANDLE *handle, unsigned char *buf, size_t len); static __attribute__((unused)) inline OSSL_FUNC_cleanup_nonce_fn *OSSL_FUNC_cleanup_nonce(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cleanup_nonce_fn *)opf->function; } 2935449: 2935449: typedef void (OSSL_FUNC_cleanup_user_nonce_fn)(const OSSL_CORE_HANDLE *handle, unsigned char *buf, size_t len); static __attribute__((unused)) inline OSSL_FUNC_cleanup_user_nonce_fn *OSSL_FUNC_cleanup_user_nonce(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cleanup_user_nonce_fn *)opf->function; } 2935449: # 237 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef int (OSSL_FUNC_provider_register_child_cb_fn)(const OSSL_CORE_HANDLE *handle, int (*create_cb)(const OSSL_CORE_HANDLE *provider, void *cbdata), int (*remove_cb)(const OSSL_CORE_HANDLE *provider, void *cbdata), int (*global_props_cb)(const char *props, void *cbdata), void *cbdata); static __attribute__((unused)) inline OSSL_FUNC_provider_register_child_cb_fn *OSSL_FUNC_provider_register_child_cb(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_register_child_cb_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_provider_deregister_child_cb_fn)(const OSSL_CORE_HANDLE *handle); static __attribute__((unused)) inline OSSL_FUNC_provider_deregister_child_cb_fn *OSSL_FUNC_provider_deregister_child_cb(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_deregister_child_cb_fn *)opf->function; } 2935449: 2935449: typedef const char * (OSSL_FUNC_provider_name_fn)(const OSSL_CORE_HANDLE *prov); static __attribute__((unused)) inline OSSL_FUNC_provider_name_fn *OSSL_FUNC_provider_name(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_name_fn *)opf->function; } 2935449: 2935449: typedef void * (OSSL_FUNC_provider_get0_provider_ctx_fn)(const OSSL_CORE_HANDLE *prov); static __attribute__((unused)) inline OSSL_FUNC_provider_get0_provider_ctx_fn *OSSL_FUNC_provider_get0_provider_ctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_get0_provider_ctx_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_DISPATCH * (OSSL_FUNC_provider_get0_dispatch_fn)(const OSSL_CORE_HANDLE *prov); static __attribute__((unused)) inline OSSL_FUNC_provider_get0_dispatch_fn *OSSL_FUNC_provider_get0_dispatch(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_get0_dispatch_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_provider_up_ref_fn)(const OSSL_CORE_HANDLE *prov, int activate); static __attribute__((unused)) inline OSSL_FUNC_provider_up_ref_fn *OSSL_FUNC_provider_up_ref(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_up_ref_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_provider_free_fn)(const OSSL_CORE_HANDLE *prov, int deactivate); static __attribute__((unused)) inline OSSL_FUNC_provider_free_fn *OSSL_FUNC_provider_free(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_free_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_core_count_to_mark_fn)(const OSSL_CORE_HANDLE *prov); static __attribute__((unused)) inline OSSL_FUNC_core_count_to_mark_fn *OSSL_FUNC_core_count_to_mark(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_core_count_to_mark_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_provider_teardown_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_provider_teardown_fn *OSSL_FUNC_provider_teardown(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_teardown_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_provider_gettable_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_provider_gettable_params_fn *OSSL_FUNC_provider_gettable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_gettable_params_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_provider_get_params_fn)(void *provctx, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_provider_get_params_fn *OSSL_FUNC_provider_get_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_get_params_fn *)opf->function; } 2935449: 2935449: 2935449: typedef const OSSL_ALGORITHM * (OSSL_FUNC_provider_query_operation_fn)(void *provctx, int operation_id, int *no_store); static __attribute__((unused)) inline OSSL_FUNC_provider_query_operation_fn *OSSL_FUNC_provider_query_operation(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_query_operation_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_provider_unquery_operation_fn)(void *provctx, int operation_id, const OSSL_ALGORITHM *); static __attribute__((unused)) inline OSSL_FUNC_provider_unquery_operation_fn *OSSL_FUNC_provider_unquery_operation(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_unquery_operation_fn *)opf->function; } 2935449: 2935449: 2935449: typedef const OSSL_ITEM * (OSSL_FUNC_provider_get_reason_strings_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_provider_get_reason_strings_fn *OSSL_FUNC_provider_get_reason_strings(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_get_reason_strings_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_provider_get_capabilities_fn)(void *provctx, const char *capability, OSSL_CALLBACK *cb, void *arg); static __attribute__((unused)) inline OSSL_FUNC_provider_get_capabilities_fn *OSSL_FUNC_provider_get_capabilities(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_get_capabilities_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_provider_self_test_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_provider_self_test_fn *OSSL_FUNC_provider_self_test(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_self_test_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_provider_random_bytes_fn)(void *provctx, int which, void *buf, size_t n, unsigned int strength); static __attribute__((unused)) inline OSSL_FUNC_provider_random_bytes_fn *OSSL_FUNC_provider_random_bytes(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_provider_random_bytes_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_SSL_QUIC_TLS_crypto_send_fn)(SSL *s, const unsigned char *buf, size_t buf_len, size_t *consumed, void *arg); static __attribute__((unused)) inline OSSL_FUNC_SSL_QUIC_TLS_crypto_send_fn *OSSL_FUNC_SSL_QUIC_TLS_crypto_send(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_SSL_QUIC_TLS_crypto_send_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_SSL_QUIC_TLS_crypto_recv_rcd_fn)(SSL *s, const unsigned char **buf, size_t *bytes_read, void *arg); static __attribute__((unused)) inline OSSL_FUNC_SSL_QUIC_TLS_crypto_recv_rcd_fn *OSSL_FUNC_SSL_QUIC_TLS_crypto_recv_rcd(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_SSL_QUIC_TLS_crypto_recv_rcd_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_SSL_QUIC_TLS_crypto_release_rcd_fn)(SSL *s, size_t bytes_read, void *arg); static __attribute__((unused)) inline OSSL_FUNC_SSL_QUIC_TLS_crypto_release_rcd_fn *OSSL_FUNC_SSL_QUIC_TLS_crypto_release_rcd(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_SSL_QUIC_TLS_crypto_release_rcd_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_SSL_QUIC_TLS_yield_secret_fn)(SSL *s, uint32_t prot_level, int direction, const unsigned char *secret, size_t secret_len, void *arg); static __attribute__((unused)) inline OSSL_FUNC_SSL_QUIC_TLS_yield_secret_fn *OSSL_FUNC_SSL_QUIC_TLS_yield_secret(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_SSL_QUIC_TLS_yield_secret_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_SSL_QUIC_TLS_got_transport_params_fn)(SSL *s, const unsigned char *params, size_t params_len, void *arg); static __attribute__((unused)) inline OSSL_FUNC_SSL_QUIC_TLS_got_transport_params_fn *OSSL_FUNC_SSL_QUIC_TLS_got_transport_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_SSL_QUIC_TLS_got_transport_params_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_SSL_QUIC_TLS_alert_fn)(SSL *s, unsigned char alert_code, void *arg); static __attribute__((unused)) inline OSSL_FUNC_SSL_QUIC_TLS_alert_fn *OSSL_FUNC_SSL_QUIC_TLS_alert(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_SSL_QUIC_TLS_alert_fn *)opf->function; } 2935449: # 350 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_digest_newctx_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_digest_newctx_fn *OSSL_FUNC_digest_newctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_newctx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_digest_init_fn)(void *dctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_digest_init_fn *OSSL_FUNC_digest_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_init_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_digest_update_fn)(void *dctx, const unsigned char *in, size_t inl); static __attribute__((unused)) inline OSSL_FUNC_digest_update_fn *OSSL_FUNC_digest_update(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_update_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_digest_final_fn)(void *dctx, unsigned char *out, size_t *outl, size_t outsz); static __attribute__((unused)) inline OSSL_FUNC_digest_final_fn *OSSL_FUNC_digest_final(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_final_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_digest_squeeze_fn)(void *dctx, unsigned char *out, size_t *outl, size_t outsz); static __attribute__((unused)) inline OSSL_FUNC_digest_squeeze_fn *OSSL_FUNC_digest_squeeze(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_squeeze_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_digest_digest_fn)(void *provctx, const unsigned char *in, size_t inl, unsigned char *out, size_t *outl, size_t outsz); static __attribute__((unused)) inline OSSL_FUNC_digest_digest_fn *OSSL_FUNC_digest_digest(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_digest_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_digest_freectx_fn)(void *dctx); static __attribute__((unused)) inline OSSL_FUNC_digest_freectx_fn *OSSL_FUNC_digest_freectx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_freectx_fn *)opf->function; } 2935449: typedef void * (OSSL_FUNC_digest_dupctx_fn)(void *dctx); static __attribute__((unused)) inline OSSL_FUNC_digest_dupctx_fn *OSSL_FUNC_digest_dupctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_dupctx_fn *)opf->function; } 2935449: typedef void (OSSL_FUNC_digest_copyctx_fn)(void *outctx, void *inctx); static __attribute__((unused)) inline OSSL_FUNC_digest_copyctx_fn *OSSL_FUNC_digest_copyctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_copyctx_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_digest_get_params_fn)(OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_digest_get_params_fn *OSSL_FUNC_digest_get_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_get_params_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_digest_set_ctx_params_fn)(void *vctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_digest_set_ctx_params_fn *OSSL_FUNC_digest_set_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_set_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_digest_get_ctx_params_fn)(void *vctx, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_digest_get_ctx_params_fn *OSSL_FUNC_digest_get_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_get_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_digest_gettable_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_digest_gettable_params_fn *OSSL_FUNC_digest_gettable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_gettable_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_digest_settable_ctx_params_fn)(void *dctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_digest_settable_ctx_params_fn *OSSL_FUNC_digest_settable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_settable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_digest_gettable_ctx_params_fn)(void *dctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_digest_gettable_ctx_params_fn *OSSL_FUNC_digest_gettable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_digest_gettable_ctx_params_fn *)opf->function; } 2935449: # 403 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_cipher_newctx_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_cipher_newctx_fn *OSSL_FUNC_cipher_newctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_newctx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_cipher_encrypt_init_fn)(void *cctx, const unsigned char *key, size_t keylen, const unsigned char *iv, size_t ivlen, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_cipher_encrypt_init_fn *OSSL_FUNC_cipher_encrypt_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_encrypt_init_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_cipher_decrypt_init_fn)(void *cctx, const unsigned char *key, size_t keylen, const unsigned char *iv, size_t ivlen, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_cipher_decrypt_init_fn *OSSL_FUNC_cipher_decrypt_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_decrypt_init_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_cipher_update_fn)(void *cctx, unsigned char *out, size_t *outl, size_t outsize, const unsigned char *in, size_t inl); static __attribute__((unused)) inline OSSL_FUNC_cipher_update_fn *OSSL_FUNC_cipher_update(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_update_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_cipher_final_fn)(void *cctx, unsigned char *out, size_t *outl, size_t outsize); static __attribute__((unused)) inline OSSL_FUNC_cipher_final_fn *OSSL_FUNC_cipher_final(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_final_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_cipher_cipher_fn)(void *cctx, unsigned char *out, size_t *outl, size_t outsize, const unsigned char *in, size_t inl); static __attribute__((unused)) inline OSSL_FUNC_cipher_cipher_fn *OSSL_FUNC_cipher_cipher(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_cipher_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_cipher_pipeline_encrypt_init_fn)(void *cctx, const unsigned char *key, size_t keylen, size_t numpipes, const unsigned char **iv, size_t ivlen, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_cipher_pipeline_encrypt_init_fn *OSSL_FUNC_cipher_pipeline_encrypt_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_pipeline_encrypt_init_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_cipher_pipeline_decrypt_init_fn)(void *cctx, const unsigned char *key, size_t keylen, size_t numpipes, const unsigned char **iv, size_t ivlen, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_cipher_pipeline_decrypt_init_fn *OSSL_FUNC_cipher_pipeline_decrypt_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_pipeline_decrypt_init_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_cipher_pipeline_update_fn)(void *cctx, size_t numpipes, unsigned char **out, size_t *outl, const size_t *outsize, const unsigned char **in, const size_t *inl); static __attribute__((unused)) inline OSSL_FUNC_cipher_pipeline_update_fn *OSSL_FUNC_cipher_pipeline_update(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_pipeline_update_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_cipher_pipeline_final_fn)(void *cctx, size_t numpipes, unsigned char **out, size_t *outl, const size_t *outsize); static __attribute__((unused)) inline OSSL_FUNC_cipher_pipeline_final_fn *OSSL_FUNC_cipher_pipeline_final(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_pipeline_final_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_cipher_freectx_fn)(void *cctx); static __attribute__((unused)) inline OSSL_FUNC_cipher_freectx_fn *OSSL_FUNC_cipher_freectx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_freectx_fn *)opf->function; } 2935449: typedef void * (OSSL_FUNC_cipher_dupctx_fn)(void *cctx); static __attribute__((unused)) inline OSSL_FUNC_cipher_dupctx_fn *OSSL_FUNC_cipher_dupctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_dupctx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_cipher_get_params_fn)(OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_cipher_get_params_fn *OSSL_FUNC_cipher_get_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_get_params_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_cipher_get_ctx_params_fn)(void *cctx, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_cipher_get_ctx_params_fn *OSSL_FUNC_cipher_get_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_get_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_cipher_set_ctx_params_fn)(void *cctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_cipher_set_ctx_params_fn *OSSL_FUNC_cipher_set_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_set_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_cipher_gettable_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_cipher_gettable_params_fn *OSSL_FUNC_cipher_gettable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_gettable_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_cipher_settable_ctx_params_fn)(void *cctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_cipher_settable_ctx_params_fn *OSSL_FUNC_cipher_settable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_settable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_cipher_gettable_ctx_params_fn)(void *cctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_cipher_gettable_ctx_params_fn *OSSL_FUNC_cipher_gettable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_gettable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_cipher_encrypt_skey_init_fn)(void *cctx, void *skeydata, const unsigned char *iv, size_t ivlen, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_cipher_encrypt_skey_init_fn *OSSL_FUNC_cipher_encrypt_skey_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_encrypt_skey_init_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_cipher_decrypt_skey_init_fn)(void *cctx, void *skeydata, const unsigned char *iv, size_t ivlen, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_cipher_decrypt_skey_init_fn *OSSL_FUNC_cipher_decrypt_skey_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_cipher_decrypt_skey_init_fn *)opf->function; } 2935449: # 484 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_mac_newctx_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_mac_newctx_fn *OSSL_FUNC_mac_newctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_mac_newctx_fn *)opf->function; } 2935449: typedef void * (OSSL_FUNC_mac_dupctx_fn)(void *src); static __attribute__((unused)) inline OSSL_FUNC_mac_dupctx_fn *OSSL_FUNC_mac_dupctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_mac_dupctx_fn *)opf->function; } 2935449: typedef void (OSSL_FUNC_mac_freectx_fn)(void *mctx); static __attribute__((unused)) inline OSSL_FUNC_mac_freectx_fn *OSSL_FUNC_mac_freectx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_mac_freectx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_mac_init_fn)(void *mctx, const unsigned char *key, size_t keylen, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_mac_init_fn *OSSL_FUNC_mac_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_mac_init_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_mac_update_fn)(void *mctx, const unsigned char *in, size_t inl); static __attribute__((unused)) inline OSSL_FUNC_mac_update_fn *OSSL_FUNC_mac_update(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_mac_update_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_mac_final_fn)(void *mctx, unsigned char *out, size_t *outl, size_t outsize); static __attribute__((unused)) inline OSSL_FUNC_mac_final_fn *OSSL_FUNC_mac_final(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_mac_final_fn *)opf->function; } 2935449: 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_mac_gettable_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_mac_gettable_params_fn *OSSL_FUNC_mac_gettable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_mac_gettable_params_fn *)opf->function; } 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_mac_gettable_ctx_params_fn)(void *mctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_mac_gettable_ctx_params_fn *OSSL_FUNC_mac_gettable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_mac_gettable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_mac_settable_ctx_params_fn)(void *mctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_mac_settable_ctx_params_fn *OSSL_FUNC_mac_settable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_mac_settable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_mac_get_params_fn)(OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_mac_get_params_fn *OSSL_FUNC_mac_get_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_mac_get_params_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_mac_get_ctx_params_fn)(void *mctx, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_mac_get_ctx_params_fn *OSSL_FUNC_mac_get_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_mac_get_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_mac_set_ctx_params_fn)(void *mctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_mac_set_ctx_params_fn *OSSL_FUNC_mac_set_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_mac_set_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_mac_init_skey_fn)(void *mctx, void *key, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_mac_init_skey_fn *OSSL_FUNC_mac_init_skey(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_mac_init_skey_fn *)opf->function; } 2935449: # 520 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_kdf_newctx_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_kdf_newctx_fn *OSSL_FUNC_kdf_newctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kdf_newctx_fn *)opf->function; } 2935449: typedef void * (OSSL_FUNC_kdf_dupctx_fn)(void *src); static __attribute__((unused)) inline OSSL_FUNC_kdf_dupctx_fn *OSSL_FUNC_kdf_dupctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kdf_dupctx_fn *)opf->function; } 2935449: typedef void (OSSL_FUNC_kdf_freectx_fn)(void *kctx); static __attribute__((unused)) inline OSSL_FUNC_kdf_freectx_fn *OSSL_FUNC_kdf_freectx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kdf_freectx_fn *)opf->function; } 2935449: typedef void (OSSL_FUNC_kdf_reset_fn)(void *kctx); static __attribute__((unused)) inline OSSL_FUNC_kdf_reset_fn *OSSL_FUNC_kdf_reset(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kdf_reset_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_kdf_derive_fn)(void *kctx, unsigned char *key, size_t keylen, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_kdf_derive_fn *OSSL_FUNC_kdf_derive(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kdf_derive_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_kdf_gettable_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_kdf_gettable_params_fn *OSSL_FUNC_kdf_gettable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kdf_gettable_params_fn *)opf->function; } 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_kdf_gettable_ctx_params_fn)(void *kctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_kdf_gettable_ctx_params_fn *OSSL_FUNC_kdf_gettable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kdf_gettable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_kdf_settable_ctx_params_fn)(void *kctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_kdf_settable_ctx_params_fn *OSSL_FUNC_kdf_settable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kdf_settable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_kdf_get_params_fn)(OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_kdf_get_params_fn *OSSL_FUNC_kdf_get_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kdf_get_params_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_kdf_get_ctx_params_fn)(void *kctx, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_kdf_get_ctx_params_fn *OSSL_FUNC_kdf_get_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kdf_get_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_kdf_set_ctx_params_fn)(void *kctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_kdf_set_ctx_params_fn *OSSL_FUNC_kdf_set_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kdf_set_ctx_params_fn *)opf->function; } 2935449: # 559 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_rand_newctx_fn)(void *provctx, void *parent, const OSSL_DISPATCH *parent_calls); static __attribute__((unused)) inline OSSL_FUNC_rand_newctx_fn *OSSL_FUNC_rand_newctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_newctx_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_rand_freectx_fn)(void *vctx); static __attribute__((unused)) inline OSSL_FUNC_rand_freectx_fn *OSSL_FUNC_rand_freectx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_freectx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_rand_instantiate_fn)(void *vdrbg, unsigned int strength, int prediction_resistance, const unsigned char *pstr, size_t pstr_len, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_rand_instantiate_fn *OSSL_FUNC_rand_instantiate(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_instantiate_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_rand_uninstantiate_fn)(void *vdrbg); static __attribute__((unused)) inline OSSL_FUNC_rand_uninstantiate_fn *OSSL_FUNC_rand_uninstantiate(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_uninstantiate_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_rand_generate_fn)(void *vctx, unsigned char *out, size_t outlen, unsigned int strength, int prediction_resistance, const unsigned char *addin, size_t addin_len); static __attribute__((unused)) inline OSSL_FUNC_rand_generate_fn *OSSL_FUNC_rand_generate(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_generate_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_rand_reseed_fn)(void *vctx, int prediction_resistance, const unsigned char *ent, size_t ent_len, const unsigned char *addin, size_t addin_len); static __attribute__((unused)) inline OSSL_FUNC_rand_reseed_fn *OSSL_FUNC_rand_reseed(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_reseed_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef size_t (OSSL_FUNC_rand_nonce_fn)(void *vctx, unsigned char *out, unsigned int strength, size_t min_noncelen, size_t max_noncelen); static __attribute__((unused)) inline OSSL_FUNC_rand_nonce_fn *OSSL_FUNC_rand_nonce(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_nonce_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_rand_enable_locking_fn)(void *vctx); static __attribute__((unused)) inline OSSL_FUNC_rand_enable_locking_fn *OSSL_FUNC_rand_enable_locking(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_enable_locking_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_rand_lock_fn)(void *vctx); static __attribute__((unused)) inline OSSL_FUNC_rand_lock_fn *OSSL_FUNC_rand_lock(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_lock_fn *)opf->function; } 2935449: typedef void (OSSL_FUNC_rand_unlock_fn)(void *vctx); static __attribute__((unused)) inline OSSL_FUNC_rand_unlock_fn *OSSL_FUNC_rand_unlock(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_unlock_fn *)opf->function; } 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_rand_gettable_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_rand_gettable_params_fn *OSSL_FUNC_rand_gettable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_gettable_params_fn *)opf->function; } 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_rand_gettable_ctx_params_fn)(void *vctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_rand_gettable_ctx_params_fn *OSSL_FUNC_rand_gettable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_gettable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_rand_settable_ctx_params_fn)(void *vctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_rand_settable_ctx_params_fn *OSSL_FUNC_rand_settable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_settable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_rand_get_params_fn)(OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_rand_get_params_fn *OSSL_FUNC_rand_get_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_get_params_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_rand_get_ctx_params_fn)(void *vctx, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_rand_get_ctx_params_fn *OSSL_FUNC_rand_get_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_get_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_rand_set_ctx_params_fn)(void *vctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_rand_set_ctx_params_fn *OSSL_FUNC_rand_set_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_set_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef void (OSSL_FUNC_rand_set_callbacks_fn)(void *vctx, OSSL_INOUT_CALLBACK *get_entropy, OSSL_CALLBACK *cleanup_entropy, OSSL_INOUT_CALLBACK *get_nonce, OSSL_CALLBACK *cleanup_nonce, void *arg); static __attribute__((unused)) inline OSSL_FUNC_rand_set_callbacks_fn *OSSL_FUNC_rand_set_callbacks(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_set_callbacks_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_rand_verify_zeroization_fn)(void *vctx); static __attribute__((unused)) inline OSSL_FUNC_rand_verify_zeroization_fn *OSSL_FUNC_rand_verify_zeroization(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_verify_zeroization_fn *)opf->function; } 2935449: 2935449: typedef size_t (OSSL_FUNC_rand_get_seed_fn)(void *vctx, unsigned char **buffer, int entropy, size_t min_len, size_t max_len, int prediction_resistance, const unsigned char *adin, size_t adin_len); static __attribute__((unused)) inline OSSL_FUNC_rand_get_seed_fn *OSSL_FUNC_rand_get_seed(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_get_seed_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_rand_clear_seed_fn)(void *vctx, unsigned char *buffer, size_t b_len); static __attribute__((unused)) inline OSSL_FUNC_rand_clear_seed_fn *OSSL_FUNC_rand_clear_seed(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_rand_clear_seed_fn *)opf->function; } 2935449: # 663 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_keymgmt_new_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_new_fn *OSSL_FUNC_keymgmt_new(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_new_fn *)opf->function; } 2935449: # 675 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_keymgmt_gen_init_fn)(void *provctx, int selection, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_gen_init_fn *OSSL_FUNC_keymgmt_gen_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_gen_init_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_keymgmt_gen_set_template_fn)(void *genctx, void *templ); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_gen_set_template_fn *OSSL_FUNC_keymgmt_gen_set_template(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_gen_set_template_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_keymgmt_gen_set_params_fn)(void *genctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_gen_set_params_fn *OSSL_FUNC_keymgmt_gen_set_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_gen_set_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_keymgmt_gen_settable_params_fn)(void *genctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_gen_settable_params_fn *OSSL_FUNC_keymgmt_gen_settable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_gen_settable_params_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_keymgmt_gen_get_params_fn)(void *genctx, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_gen_get_params_fn *OSSL_FUNC_keymgmt_gen_get_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_gen_get_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_keymgmt_gen_gettable_params_fn)(void *genctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_gen_gettable_params_fn *OSSL_FUNC_keymgmt_gen_gettable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_gen_gettable_params_fn *)opf->function; } 2935449: 2935449: typedef void * (OSSL_FUNC_keymgmt_gen_fn)(void *genctx, OSSL_CALLBACK *cb, void *cbarg); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_gen_fn *OSSL_FUNC_keymgmt_gen(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_gen_fn *)opf->function; } 2935449: 2935449: typedef void (OSSL_FUNC_keymgmt_gen_cleanup_fn)(void *genctx); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_gen_cleanup_fn *OSSL_FUNC_keymgmt_gen_cleanup(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_gen_cleanup_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef void * (OSSL_FUNC_keymgmt_load_fn)(const void *reference, size_t reference_sz); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_load_fn *OSSL_FUNC_keymgmt_load(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_load_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_keymgmt_free_fn)(void *keydata); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_free_fn *OSSL_FUNC_keymgmt_free(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_free_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_keymgmt_get_params_fn)(void *keydata, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_get_params_fn *OSSL_FUNC_keymgmt_get_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_get_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_keymgmt_gettable_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_gettable_params_fn *OSSL_FUNC_keymgmt_gettable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_gettable_params_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_keymgmt_set_params_fn)(void *keydata, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_set_params_fn *OSSL_FUNC_keymgmt_set_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_set_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_keymgmt_settable_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_settable_params_fn *OSSL_FUNC_keymgmt_settable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_settable_params_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef const char * (OSSL_FUNC_keymgmt_query_operation_name_fn)(int operation_id); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_query_operation_name_fn *OSSL_FUNC_keymgmt_query_operation_name(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_query_operation_name_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_keymgmt_has_fn)(const void *keydata, int selection); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_has_fn *OSSL_FUNC_keymgmt_has(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_has_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_keymgmt_validate_fn)(const void *keydata, int selection, int checktype); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_validate_fn *OSSL_FUNC_keymgmt_validate(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_validate_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_keymgmt_match_fn)(const void *keydata1, const void *keydata2, int selection); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_match_fn *OSSL_FUNC_keymgmt_match(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_match_fn *)opf->function; } 2935449: # 741 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef int (OSSL_FUNC_keymgmt_import_fn)(void *keydata, int selection, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_import_fn *OSSL_FUNC_keymgmt_import(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_import_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_keymgmt_import_types_fn)(int selection); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_import_types_fn *OSSL_FUNC_keymgmt_import_types(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_import_types_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_keymgmt_export_fn)(void *keydata, int selection, OSSL_CALLBACK *param_cb, void *cbarg); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_export_fn *OSSL_FUNC_keymgmt_export(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_export_fn *)opf->function; } 2935449: 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_keymgmt_export_types_fn)(int selection); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_export_types_fn *OSSL_FUNC_keymgmt_export_types(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_export_types_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef void * (OSSL_FUNC_keymgmt_dup_fn)(const void *keydata_from, int selection); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_dup_fn *OSSL_FUNC_keymgmt_dup(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_dup_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_keymgmt_import_types_ex_fn)(void *provctx, int selection); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_import_types_ex_fn *OSSL_FUNC_keymgmt_import_types_ex(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_import_types_ex_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_keymgmt_export_types_ex_fn)(void *provctx, int selection); static __attribute__((unused)) inline OSSL_FUNC_keymgmt_export_types_ex_fn *OSSL_FUNC_keymgmt_export_types_ex(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keymgmt_export_types_ex_fn *)opf->function; } 2935449: # 777 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_keyexch_newctx_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_keyexch_newctx_fn *OSSL_FUNC_keyexch_newctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keyexch_newctx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_keyexch_init_fn)(void *ctx, void *provkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_keyexch_init_fn *OSSL_FUNC_keyexch_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keyexch_init_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_keyexch_derive_fn)(void *ctx, unsigned char *secret, size_t *secretlen, size_t outlen); static __attribute__((unused)) inline OSSL_FUNC_keyexch_derive_fn *OSSL_FUNC_keyexch_derive(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keyexch_derive_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_keyexch_set_peer_fn)(void *ctx, void *provkey); static __attribute__((unused)) inline OSSL_FUNC_keyexch_set_peer_fn *OSSL_FUNC_keyexch_set_peer(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keyexch_set_peer_fn *)opf->function; } 2935449: typedef void (OSSL_FUNC_keyexch_freectx_fn)(void *ctx); static __attribute__((unused)) inline OSSL_FUNC_keyexch_freectx_fn *OSSL_FUNC_keyexch_freectx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keyexch_freectx_fn *)opf->function; } 2935449: typedef void * (OSSL_FUNC_keyexch_dupctx_fn)(void *ctx); static __attribute__((unused)) inline OSSL_FUNC_keyexch_dupctx_fn *OSSL_FUNC_keyexch_dupctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keyexch_dupctx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_keyexch_set_ctx_params_fn)(void *ctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_keyexch_set_ctx_params_fn *OSSL_FUNC_keyexch_set_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keyexch_set_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_keyexch_settable_ctx_params_fn)(void *ctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_keyexch_settable_ctx_params_fn *OSSL_FUNC_keyexch_settable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keyexch_settable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_keyexch_get_ctx_params_fn)(void *ctx, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_keyexch_get_ctx_params_fn *OSSL_FUNC_keyexch_get_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keyexch_get_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_keyexch_gettable_ctx_params_fn)(void *ctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_keyexch_gettable_ctx_params_fn *OSSL_FUNC_keyexch_gettable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_keyexch_gettable_ctx_params_fn *)opf->function; } 2935449: # 829 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_signature_newctx_fn)(void *provctx, const char *propq); static __attribute__((unused)) inline OSSL_FUNC_signature_newctx_fn *OSSL_FUNC_signature_newctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_newctx_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_signature_sign_init_fn)(void *ctx, void *provkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_signature_sign_init_fn *OSSL_FUNC_signature_sign_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_sign_init_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_signature_sign_fn)(void *ctx, unsigned char *sig, size_t *siglen, size_t sigsize, const unsigned char *tbs, size_t tbslen); static __attribute__((unused)) inline OSSL_FUNC_signature_sign_fn *OSSL_FUNC_signature_sign(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_sign_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_signature_sign_message_init_fn)(void *ctx, void *provkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_signature_sign_message_init_fn *OSSL_FUNC_signature_sign_message_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_sign_message_init_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_signature_sign_message_update_fn)(void *ctx, const unsigned char *in, size_t inlen); static __attribute__((unused)) inline OSSL_FUNC_signature_sign_message_update_fn *OSSL_FUNC_signature_sign_message_update(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_sign_message_update_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_signature_sign_message_final_fn)(void *ctx, unsigned char *sig, size_t *siglen, size_t sigsize); static __attribute__((unused)) inline OSSL_FUNC_signature_sign_message_final_fn *OSSL_FUNC_signature_sign_message_final(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_sign_message_final_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_signature_verify_init_fn)(void *ctx, void *provkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_signature_verify_init_fn *OSSL_FUNC_signature_verify_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_verify_init_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_signature_verify_fn)(void *ctx, const unsigned char *sig, size_t siglen, const unsigned char *tbs, size_t tbslen); static __attribute__((unused)) inline OSSL_FUNC_signature_verify_fn *OSSL_FUNC_signature_verify(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_verify_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_signature_verify_message_init_fn)(void *ctx, void *provkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_signature_verify_message_init_fn *OSSL_FUNC_signature_verify_message_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_verify_message_init_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_signature_verify_message_update_fn)(void *ctx, const unsigned char *in, size_t inlen); static __attribute__((unused)) inline OSSL_FUNC_signature_verify_message_update_fn *OSSL_FUNC_signature_verify_message_update(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_verify_message_update_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_signature_verify_message_final_fn)(void *ctx); static __attribute__((unused)) inline OSSL_FUNC_signature_verify_message_final_fn *OSSL_FUNC_signature_verify_message_final(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_verify_message_final_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_signature_verify_recover_init_fn)(void *ctx, void *provkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_signature_verify_recover_init_fn *OSSL_FUNC_signature_verify_recover_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_verify_recover_init_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_signature_verify_recover_fn)(void *ctx, unsigned char *rout, size_t *routlen, size_t routsize, const unsigned char *sig, size_t siglen); static __attribute__((unused)) inline OSSL_FUNC_signature_verify_recover_fn *OSSL_FUNC_signature_verify_recover(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_verify_recover_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_signature_digest_sign_init_fn)(void *ctx, const char *mdname, void *provkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_signature_digest_sign_init_fn *OSSL_FUNC_signature_digest_sign_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_digest_sign_init_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_signature_digest_sign_update_fn)(void *ctx, const unsigned char *data, size_t datalen); static __attribute__((unused)) inline OSSL_FUNC_signature_digest_sign_update_fn *OSSL_FUNC_signature_digest_sign_update(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_digest_sign_update_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_signature_digest_sign_final_fn)(void *ctx, unsigned char *sig, size_t *siglen, size_t sigsize); static __attribute__((unused)) inline OSSL_FUNC_signature_digest_sign_final_fn *OSSL_FUNC_signature_digest_sign_final(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_digest_sign_final_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_signature_digest_sign_fn)(void *ctx, unsigned char *sigret, size_t *siglen, size_t sigsize, const unsigned char *tbs, size_t tbslen); static __attribute__((unused)) inline OSSL_FUNC_signature_digest_sign_fn *OSSL_FUNC_signature_digest_sign(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_digest_sign_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_signature_digest_verify_init_fn)(void *ctx, const char *mdname, void *provkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_signature_digest_verify_init_fn *OSSL_FUNC_signature_digest_verify_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_digest_verify_init_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_signature_digest_verify_update_fn)(void *ctx, const unsigned char *data, size_t datalen); static __attribute__((unused)) inline OSSL_FUNC_signature_digest_verify_update_fn *OSSL_FUNC_signature_digest_verify_update(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_digest_verify_update_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_signature_digest_verify_final_fn)(void *ctx, const unsigned char *sig, size_t siglen); static __attribute__((unused)) inline OSSL_FUNC_signature_digest_verify_final_fn *OSSL_FUNC_signature_digest_verify_final(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_digest_verify_final_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_signature_digest_verify_fn)(void *ctx, const unsigned char *sig, size_t siglen, const unsigned char *tbs, size_t tbslen); static __attribute__((unused)) inline OSSL_FUNC_signature_digest_verify_fn *OSSL_FUNC_signature_digest_verify(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_digest_verify_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_signature_freectx_fn)(void *ctx); static __attribute__((unused)) inline OSSL_FUNC_signature_freectx_fn *OSSL_FUNC_signature_freectx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_freectx_fn *)opf->function; } 2935449: typedef void * (OSSL_FUNC_signature_dupctx_fn)(void *ctx); static __attribute__((unused)) inline OSSL_FUNC_signature_dupctx_fn *OSSL_FUNC_signature_dupctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_dupctx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_signature_get_ctx_params_fn)(void *ctx, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_signature_get_ctx_params_fn *OSSL_FUNC_signature_get_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_get_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_signature_gettable_ctx_params_fn)(void *ctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_signature_gettable_ctx_params_fn *OSSL_FUNC_signature_gettable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_gettable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_signature_set_ctx_params_fn)(void *ctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_signature_set_ctx_params_fn *OSSL_FUNC_signature_set_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_set_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_signature_settable_ctx_params_fn)(void *ctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_signature_settable_ctx_params_fn *OSSL_FUNC_signature_settable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_settable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_signature_get_ctx_md_params_fn)(void *ctx, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_signature_get_ctx_md_params_fn *OSSL_FUNC_signature_get_ctx_md_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_get_ctx_md_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_signature_gettable_ctx_md_params_fn)(void *ctx); static __attribute__((unused)) inline OSSL_FUNC_signature_gettable_ctx_md_params_fn *OSSL_FUNC_signature_gettable_ctx_md_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_gettable_ctx_md_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_signature_set_ctx_md_params_fn)(void *ctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_signature_set_ctx_md_params_fn *OSSL_FUNC_signature_set_ctx_md_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_set_ctx_md_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_signature_settable_ctx_md_params_fn)(void *ctx); static __attribute__((unused)) inline OSSL_FUNC_signature_settable_ctx_md_params_fn *OSSL_FUNC_signature_settable_ctx_md_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_settable_ctx_md_params_fn *)opf->function; } 2935449: 2935449: typedef const char ** (OSSL_FUNC_signature_query_key_types_fn)(void); static __attribute__((unused)) inline OSSL_FUNC_signature_query_key_types_fn *OSSL_FUNC_signature_query_key_types(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_signature_query_key_types_fn *)opf->function; } 2935449: # 938 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void (OSSL_FUNC_skeymgmt_free_fn)(void *keydata); static __attribute__((unused)) inline OSSL_FUNC_skeymgmt_free_fn *OSSL_FUNC_skeymgmt_free(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_skeymgmt_free_fn *)opf->function; } 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_skeymgmt_imp_settable_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_skeymgmt_imp_settable_params_fn *OSSL_FUNC_skeymgmt_imp_settable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_skeymgmt_imp_settable_params_fn *)opf->function; } 2935449: 2935449: typedef void * (OSSL_FUNC_skeymgmt_import_fn)(void *provctx, int selection, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_skeymgmt_import_fn *OSSL_FUNC_skeymgmt_import(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_skeymgmt_import_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_skeymgmt_export_fn)(void *keydata, int selection, OSSL_CALLBACK *param_cb, void *cbarg); static __attribute__((unused)) inline OSSL_FUNC_skeymgmt_export_fn *OSSL_FUNC_skeymgmt_export(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_skeymgmt_export_fn *)opf->function; } 2935449: 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_skeymgmt_gen_settable_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_skeymgmt_gen_settable_params_fn *OSSL_FUNC_skeymgmt_gen_settable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_skeymgmt_gen_settable_params_fn *)opf->function; } 2935449: 2935449: typedef void * (OSSL_FUNC_skeymgmt_generate_fn)(void *provctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_skeymgmt_generate_fn *OSSL_FUNC_skeymgmt_generate(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_skeymgmt_generate_fn *)opf->function; } 2935449: 2935449: typedef const char * (OSSL_FUNC_skeymgmt_get_key_id_fn)(void *keydata); static __attribute__((unused)) inline OSSL_FUNC_skeymgmt_get_key_id_fn *OSSL_FUNC_skeymgmt_get_key_id(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_skeymgmt_get_key_id_fn *)opf->function; } 2935449: # 966 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_asym_cipher_newctx_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_asym_cipher_newctx_fn *OSSL_FUNC_asym_cipher_newctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_asym_cipher_newctx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_asym_cipher_encrypt_init_fn)(void *ctx, void *provkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_asym_cipher_encrypt_init_fn *OSSL_FUNC_asym_cipher_encrypt_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_asym_cipher_encrypt_init_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_asym_cipher_encrypt_fn)(void *ctx, unsigned char *out, size_t *outlen, size_t outsize, const unsigned char *in, size_t inlen); static __attribute__((unused)) inline OSSL_FUNC_asym_cipher_encrypt_fn *OSSL_FUNC_asym_cipher_encrypt(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_asym_cipher_encrypt_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_asym_cipher_decrypt_init_fn)(void *ctx, void *provkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_asym_cipher_decrypt_init_fn *OSSL_FUNC_asym_cipher_decrypt_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_asym_cipher_decrypt_init_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_asym_cipher_decrypt_fn)(void *ctx, unsigned char *out, size_t *outlen, size_t outsize, const unsigned char *in, size_t inlen); static __attribute__((unused)) inline OSSL_FUNC_asym_cipher_decrypt_fn *OSSL_FUNC_asym_cipher_decrypt(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_asym_cipher_decrypt_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_asym_cipher_freectx_fn)(void *ctx); static __attribute__((unused)) inline OSSL_FUNC_asym_cipher_freectx_fn *OSSL_FUNC_asym_cipher_freectx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_asym_cipher_freectx_fn *)opf->function; } 2935449: typedef void * (OSSL_FUNC_asym_cipher_dupctx_fn)(void *ctx); static __attribute__((unused)) inline OSSL_FUNC_asym_cipher_dupctx_fn *OSSL_FUNC_asym_cipher_dupctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_asym_cipher_dupctx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_asym_cipher_get_ctx_params_fn)(void *ctx, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_asym_cipher_get_ctx_params_fn *OSSL_FUNC_asym_cipher_get_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_asym_cipher_get_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_asym_cipher_gettable_ctx_params_fn)(void *ctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_asym_cipher_gettable_ctx_params_fn *OSSL_FUNC_asym_cipher_gettable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_asym_cipher_gettable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_asym_cipher_set_ctx_params_fn)(void *ctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_asym_cipher_set_ctx_params_fn *OSSL_FUNC_asym_cipher_set_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_asym_cipher_set_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_asym_cipher_settable_ctx_params_fn)(void *ctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_asym_cipher_settable_ctx_params_fn *OSSL_FUNC_asym_cipher_settable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_asym_cipher_settable_ctx_params_fn *)opf->function; } 2935449: # 1007 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_kem_newctx_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_kem_newctx_fn *OSSL_FUNC_kem_newctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kem_newctx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_kem_encapsulate_init_fn)(void *ctx, void *provkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_kem_encapsulate_init_fn *OSSL_FUNC_kem_encapsulate_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kem_encapsulate_init_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_kem_auth_encapsulate_init_fn)(void *ctx, void *provkey, void *authprivkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_kem_auth_encapsulate_init_fn *OSSL_FUNC_kem_auth_encapsulate_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kem_auth_encapsulate_init_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_kem_encapsulate_fn)(void *ctx, unsigned char *out, size_t *outlen, unsigned char *secret, size_t *secretlen); static __attribute__((unused)) inline OSSL_FUNC_kem_encapsulate_fn *OSSL_FUNC_kem_encapsulate(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kem_encapsulate_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_kem_decapsulate_init_fn)(void *ctx, void *provkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_kem_decapsulate_init_fn *OSSL_FUNC_kem_decapsulate_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kem_decapsulate_init_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_kem_auth_decapsulate_init_fn)(void *ctx, void *provkey, void *authpubkey, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_kem_auth_decapsulate_init_fn *OSSL_FUNC_kem_auth_decapsulate_init(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kem_auth_decapsulate_init_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_kem_decapsulate_fn)(void *ctx, unsigned char *out, size_t *outlen, const unsigned char *in, size_t inlen); static __attribute__((unused)) inline OSSL_FUNC_kem_decapsulate_fn *OSSL_FUNC_kem_decapsulate(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kem_decapsulate_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void (OSSL_FUNC_kem_freectx_fn)(void *ctx); static __attribute__((unused)) inline OSSL_FUNC_kem_freectx_fn *OSSL_FUNC_kem_freectx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kem_freectx_fn *)opf->function; } 2935449: typedef void * (OSSL_FUNC_kem_dupctx_fn)(void *ctx); static __attribute__((unused)) inline OSSL_FUNC_kem_dupctx_fn *OSSL_FUNC_kem_dupctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kem_dupctx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_kem_get_ctx_params_fn)(void *ctx, OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_kem_get_ctx_params_fn *OSSL_FUNC_kem_get_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kem_get_ctx_params_fn *)opf->function; } 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_kem_gettable_ctx_params_fn)(void *ctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_kem_gettable_ctx_params_fn *OSSL_FUNC_kem_gettable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kem_gettable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_kem_set_ctx_params_fn)(void *ctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_kem_set_ctx_params_fn *OSSL_FUNC_kem_set_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kem_set_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_kem_settable_ctx_params_fn)(void *ctx, void *provctx); static __attribute__((unused)) inline OSSL_FUNC_kem_settable_ctx_params_fn *OSSL_FUNC_kem_settable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_kem_settable_ctx_params_fn *)opf->function; } 2935449: # 1046 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_encoder_newctx_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_encoder_newctx_fn *OSSL_FUNC_encoder_newctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_encoder_newctx_fn *)opf->function; } 2935449: typedef void (OSSL_FUNC_encoder_freectx_fn)(void *ctx); static __attribute__((unused)) inline OSSL_FUNC_encoder_freectx_fn *OSSL_FUNC_encoder_freectx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_encoder_freectx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_encoder_get_params_fn)(OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_encoder_get_params_fn *OSSL_FUNC_encoder_get_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_encoder_get_params_fn *)opf->function; } 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_encoder_gettable_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_encoder_gettable_params_fn *OSSL_FUNC_encoder_gettable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_encoder_gettable_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_encoder_set_ctx_params_fn)(void *ctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_encoder_set_ctx_params_fn *OSSL_FUNC_encoder_set_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_encoder_set_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_encoder_settable_ctx_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_encoder_settable_ctx_params_fn *OSSL_FUNC_encoder_settable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_encoder_settable_ctx_params_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_encoder_does_selection_fn)(void *provctx, int selection); static __attribute__((unused)) inline OSSL_FUNC_encoder_does_selection_fn *OSSL_FUNC_encoder_does_selection(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_encoder_does_selection_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_encoder_encode_fn)(void *ctx, OSSL_CORE_BIO *out, const void *obj_raw, const OSSL_PARAM obj_abstract[], int selection, OSSL_PASSPHRASE_CALLBACK *cb, void *cbarg); static __attribute__((unused)) inline OSSL_FUNC_encoder_encode_fn *OSSL_FUNC_encoder_encode(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_encoder_encode_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef void * (OSSL_FUNC_encoder_import_object_fn)(void *ctx, int selection, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_encoder_import_object_fn *OSSL_FUNC_encoder_import_object(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_encoder_import_object_fn *)opf->function; } 2935449: 2935449: typedef void (OSSL_FUNC_encoder_free_object_fn)(void *obj); static __attribute__((unused)) inline OSSL_FUNC_encoder_free_object_fn *OSSL_FUNC_encoder_free_object(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_encoder_free_object_fn *)opf->function; } 2935449: # 1077 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_decoder_newctx_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_decoder_newctx_fn *OSSL_FUNC_decoder_newctx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_decoder_newctx_fn *)opf->function; } 2935449: typedef void (OSSL_FUNC_decoder_freectx_fn)(void *ctx); static __attribute__((unused)) inline OSSL_FUNC_decoder_freectx_fn *OSSL_FUNC_decoder_freectx(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_decoder_freectx_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_decoder_get_params_fn)(OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_decoder_get_params_fn *OSSL_FUNC_decoder_get_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_decoder_get_params_fn *)opf->function; } 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_decoder_gettable_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_decoder_gettable_params_fn *OSSL_FUNC_decoder_gettable_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_decoder_gettable_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_decoder_set_ctx_params_fn)(void *ctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_decoder_set_ctx_params_fn *OSSL_FUNC_decoder_set_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_decoder_set_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_decoder_settable_ctx_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_decoder_settable_ctx_params_fn *OSSL_FUNC_decoder_settable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_decoder_settable_ctx_params_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_decoder_does_selection_fn)(void *provctx, int selection); static __attribute__((unused)) inline OSSL_FUNC_decoder_does_selection_fn *OSSL_FUNC_decoder_does_selection(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_decoder_does_selection_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_decoder_decode_fn)(void *ctx, OSSL_CORE_BIO *in, int selection, OSSL_CALLBACK *data_cb, void *data_cbarg, OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg); static __attribute__((unused)) inline OSSL_FUNC_decoder_decode_fn *OSSL_FUNC_decoder_decode(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_decoder_decode_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_decoder_export_object_fn)(void *ctx, const void *objref, size_t objref_sz, OSSL_CALLBACK *export_cb, void *export_cbarg); static __attribute__((unused)) inline OSSL_FUNC_decoder_export_object_fn *OSSL_FUNC_decoder_export_object(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_decoder_export_object_fn *)opf->function; } 2935449: # 1119 "/usr/include/openssl/core_dispatch.h" 3 4 2935449: typedef void * (OSSL_FUNC_store_open_fn)(void *provctx, const char *uri); static __attribute__((unused)) inline OSSL_FUNC_store_open_fn *OSSL_FUNC_store_open(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_store_open_fn *)opf->function; } 2935449: typedef void * (OSSL_FUNC_store_attach_fn)(void *provctx, OSSL_CORE_BIO *in); static __attribute__((unused)) inline OSSL_FUNC_store_attach_fn *OSSL_FUNC_store_attach(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_store_attach_fn *)opf->function; } 2935449: typedef const OSSL_PARAM * (OSSL_FUNC_store_settable_ctx_params_fn)(void *provctx); static __attribute__((unused)) inline OSSL_FUNC_store_settable_ctx_params_fn *OSSL_FUNC_store_settable_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_store_settable_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_store_set_ctx_params_fn)(void *loaderctx, const OSSL_PARAM params[]); static __attribute__((unused)) inline OSSL_FUNC_store_set_ctx_params_fn *OSSL_FUNC_store_set_ctx_params(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_store_set_ctx_params_fn *)opf->function; } 2935449: 2935449: typedef int (OSSL_FUNC_store_load_fn)(void *loaderctx, OSSL_CALLBACK *object_cb, void *object_cbarg, OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg); static __attribute__((unused)) inline OSSL_FUNC_store_load_fn *OSSL_FUNC_store_load(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_store_load_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_store_eof_fn)(void *loaderctx); static __attribute__((unused)) inline OSSL_FUNC_store_eof_fn *OSSL_FUNC_store_eof(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_store_eof_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_store_close_fn)(void *loaderctx); static __attribute__((unused)) inline OSSL_FUNC_store_close_fn *OSSL_FUNC_store_close(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_store_close_fn *)opf->function; } 2935449: typedef int (OSSL_FUNC_store_export_object_fn)(void *loaderctx, const void *objref, size_t objref_sz, OSSL_CALLBACK *export_cb, void *export_cbarg); static __attribute__((unused)) inline OSSL_FUNC_store_export_object_fn *OSSL_FUNC_store_export_object(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_store_export_object_fn *)opf->function; } 2935449: 2935449: 2935449: typedef int (OSSL_FUNC_store_delete_fn)(void *provctx, const char *uri, const OSSL_PARAM params[], OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg); static __attribute__((unused)) inline OSSL_FUNC_store_delete_fn *OSSL_FUNC_store_delete(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_store_delete_fn *)opf->function; } 2935449: 2935449: 2935449: typedef void * (OSSL_FUNC_store_open_ex_fn)(void *provctx, const char *uri, const OSSL_PARAM params[], OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg); static __attribute__((unused)) inline OSSL_FUNC_store_open_ex_fn *OSSL_FUNC_store_open_ex(const OSSL_DISPATCH *opf) { return (OSSL_FUNC_store_open_ex_fn *)opf->function; } 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 29 "/usr/include/openssl/evp.h" 2 3 4 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/evperr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/evperr.h" 3 4 2935449: 2935449: # 32 "/usr/include/openssl/evp.h" 2 3 4 2935449: # 47 "/usr/include/openssl/evp.h" 3 4 2935449: # 1 "/usr/include/openssl/objects.h" 1 3 4 2935449: # 12 "/usr/include/openssl/objects.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/obj_mac.h" 1 3 4 2935449: # 14 "/usr/include/openssl/obj_mac.h" 3 4 2935449: 2935449: # 20 "/usr/include/openssl/objects.h" 2 3 4 2935449: 2935449: # 1 "/usr/include/openssl/asn1.h" 1 3 4 2935449: # 17 "/usr/include/openssl/asn1.h" 3 4 2935449: 2935449: # 32 "/usr/include/openssl/asn1.h" 3 4 2935449: # 1 "/usr/include/openssl/asn1err.h" 1 3 4 2935449: # 13 "/usr/include/openssl/asn1err.h" 3 4 2935449: 2935449: # 33 "/usr/include/openssl/asn1.h" 2 3 4 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 36 "/usr/include/openssl/asn1.h" 2 3 4 2935449: # 44 "/usr/include/openssl/asn1.h" 3 4 2935449: extern "C" { 2935449: # 132 "/usr/include/openssl/asn1.h" 3 4 2935449: struct stack_st_X509_ALGOR; typedef int (*sk_X509_ALGOR_compfunc)(const X509_ALGOR * const *a, const X509_ALGOR *const *b); typedef void (*sk_X509_ALGOR_freefunc)(X509_ALGOR *a); typedef X509_ALGOR * (*sk_X509_ALGOR_copyfunc)(const X509_ALGOR *a); static __attribute__((unused)) inline X509_ALGOR *ossl_check_X509_ALGOR_type(X509_ALGOR *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_X509_ALGOR_sk_type(const struct stack_st_X509_ALGOR *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_X509_ALGOR_sk_type(struct stack_st_X509_ALGOR *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_X509_ALGOR_compfunc_type(sk_X509_ALGOR_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_X509_ALGOR_copyfunc_type(sk_X509_ALGOR_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_X509_ALGOR_freefunc_type(sk_X509_ALGOR_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 186 "/usr/include/openssl/asn1.h" 3 4 2935449: struct asn1_string_st { 2935449: int length; 2935449: int type; 2935449: unsigned char *data; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: long flags; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef struct ASN1_ENCODING_st { 2935449: unsigned char *enc; 2935449: long len; 2935449: int modified; 2935449: } ASN1_ENCODING; 2935449: # 226 "/usr/include/openssl/asn1.h" 3 4 2935449: struct asn1_string_table_st { 2935449: int nid; 2935449: long minsize; 2935449: long maxsize; 2935449: unsigned long mask; 2935449: unsigned long flags; 2935449: }; 2935449: 2935449: struct stack_st_ASN1_STRING_TABLE; typedef int (*sk_ASN1_STRING_TABLE_compfunc)(const ASN1_STRING_TABLE * const *a, const ASN1_STRING_TABLE *const *b); typedef void (*sk_ASN1_STRING_TABLE_freefunc)(ASN1_STRING_TABLE *a); typedef ASN1_STRING_TABLE * (*sk_ASN1_STRING_TABLE_copyfunc)(const ASN1_STRING_TABLE *a); static __attribute__((unused)) inline ASN1_STRING_TABLE *ossl_check_ASN1_STRING_TABLE_type(ASN1_STRING_TABLE *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_ASN1_STRING_TABLE_sk_type(const struct stack_st_ASN1_STRING_TABLE *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_ASN1_STRING_TABLE_sk_type(struct stack_st_ASN1_STRING_TABLE *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_ASN1_STRING_TABLE_compfunc_type(sk_ASN1_STRING_TABLE_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_ASN1_STRING_TABLE_copyfunc_type(sk_ASN1_STRING_TABLE_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_ASN1_STRING_TABLE_freefunc_type(sk_ASN1_STRING_TABLE_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 276 "/usr/include/openssl/asn1.h" 3 4 2935449: typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; 2935449: typedef struct ASN1_TLC_st ASN1_TLC; 2935449: 2935449: typedef struct ASN1_VALUE_st ASN1_VALUE; 2935449: # 372 "/usr/include/openssl/asn1.h" 3 4 2935449: typedef void *d2i_of_void(void **, const unsigned char **, long); 2935449: typedef int i2d_of_void(const void *, unsigned char **); 2935449: typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); 2935449: # 419 "/usr/include/openssl/asn1.h" 3 4 2935449: typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); 2935449: # 524 "/usr/include/openssl/asn1.h" 3 4 2935449: struct asn1_type_st { 2935449: int type; 2935449: union { 2935449: char *ptr; 2935449: ASN1_BOOLEAN boolean; 2935449: ASN1_STRING *asn1_string; 2935449: ASN1_OBJECT *object; 2935449: ASN1_INTEGER *integer; 2935449: ASN1_ENUMERATED *enumerated; 2935449: ASN1_BIT_STRING *bit_string; 2935449: ASN1_OCTET_STRING *octet_string; 2935449: ASN1_PRINTABLESTRING *printablestring; 2935449: ASN1_T61STRING *t61string; 2935449: ASN1_IA5STRING *ia5string; 2935449: ASN1_GENERALSTRING *generalstring; 2935449: ASN1_BMPSTRING *bmpstring; 2935449: ASN1_UNIVERSALSTRING *universalstring; 2935449: ASN1_UTCTIME *utctime; 2935449: ASN1_GENERALIZEDTIME *generalizedtime; 2935449: ASN1_VISIBLESTRING *visiblestring; 2935449: ASN1_UTF8STRING *utf8string; 2935449: 2935449: 2935449: 2935449: 2935449: ASN1_STRING *set; 2935449: ASN1_STRING *sequence; 2935449: ASN1_VALUE *asn1_value; 2935449: } value; 2935449: }; 2935449: 2935449: struct stack_st_ASN1_TYPE; typedef int (*sk_ASN1_TYPE_compfunc)(const ASN1_TYPE * const *a, const ASN1_TYPE *const *b); typedef void (*sk_ASN1_TYPE_freefunc)(ASN1_TYPE *a); typedef ASN1_TYPE * (*sk_ASN1_TYPE_copyfunc)(const ASN1_TYPE *a); static __attribute__((unused)) inline ASN1_TYPE *ossl_check_ASN1_TYPE_type(ASN1_TYPE *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_ASN1_TYPE_sk_type(const struct stack_st_ASN1_TYPE *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_ASN1_TYPE_sk_type(struct stack_st_ASN1_TYPE *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_ASN1_TYPE_compfunc_type(sk_ASN1_TYPE_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_ASN1_TYPE_copyfunc_type(sk_ASN1_TYPE_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_ASN1_TYPE_freefunc_type(sk_ASN1_TYPE_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 583 "/usr/include/openssl/asn1.h" 3 4 2935449: typedef struct stack_st_ASN1_TYPE ASN1_SEQUENCE_ANY; 2935449: 2935449: extern ASN1_SEQUENCE_ANY *d2i_ASN1_SEQUENCE_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len); extern int i2d_ASN1_SEQUENCE_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out); extern const ASN1_ITEM * ASN1_SEQUENCE_ANY_it(void); 2935449: extern ASN1_SEQUENCE_ANY *d2i_ASN1_SET_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len); extern int i2d_ASN1_SET_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out); extern const ASN1_ITEM * ASN1_SET_ANY_it(void); 2935449: 2935449: 2935449: typedef struct BIT_STRING_BITNAME_st { 2935449: int bitnum; 2935449: const char *lname; 2935449: const char *sname; 2935449: } BIT_STRING_BITNAME; 2935449: # 624 "/usr/include/openssl/asn1.h" 3 4 2935449: extern ASN1_TYPE *ASN1_TYPE_new(void); extern void ASN1_TYPE_free(ASN1_TYPE *a); 2935449: extern ASN1_TYPE *d2i_ASN1_TYPE(ASN1_TYPE **a, const unsigned char **in, long len); extern int i2d_ASN1_TYPE(const ASN1_TYPE *a, unsigned char **out); extern const ASN1_ITEM * ASN1_ANY_it(void); 2935449: 2935449: int ASN1_TYPE_get(const ASN1_TYPE *a); 2935449: void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); 2935449: int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); 2935449: int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); 2935449: 2935449: ASN1_TYPE *ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t); 2935449: void *ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t); 2935449: 2935449: struct stack_st_ASN1_OBJECT; typedef int (*sk_ASN1_OBJECT_compfunc)(const ASN1_OBJECT * const *a, const ASN1_OBJECT *const *b); typedef void (*sk_ASN1_OBJECT_freefunc)(ASN1_OBJECT *a); typedef ASN1_OBJECT * (*sk_ASN1_OBJECT_copyfunc)(const ASN1_OBJECT *a); static __attribute__((unused)) inline ASN1_OBJECT *ossl_check_ASN1_OBJECT_type(ASN1_OBJECT *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_ASN1_OBJECT_sk_type(const struct stack_st_ASN1_OBJECT *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_ASN1_OBJECT_sk_type(struct stack_st_ASN1_OBJECT *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_ASN1_OBJECT_compfunc_type(sk_ASN1_OBJECT_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_ASN1_OBJECT_copyfunc_type(sk_ASN1_OBJECT_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_ASN1_OBJECT_freefunc_type(sk_ASN1_OBJECT_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 663 "/usr/include/openssl/asn1.h" 3 4 2935449: extern ASN1_OBJECT *ASN1_OBJECT_new(void); extern void ASN1_OBJECT_free(ASN1_OBJECT *a); extern ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **in, long len); extern int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **out); extern const ASN1_ITEM * ASN1_OBJECT_it(void); 2935449: 2935449: ASN1_STRING *ASN1_STRING_new(void); 2935449: void ASN1_STRING_free(ASN1_STRING *a); 2935449: void ASN1_STRING_clear_free(ASN1_STRING *a); 2935449: int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); 2935449: extern ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a); 2935449: ASN1_STRING *ASN1_STRING_type_new(int type); 2935449: int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); 2935449: 2935449: 2935449: 2935449: 2935449: int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); 2935449: void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); 2935449: int ASN1_STRING_length(const ASN1_STRING *x); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void ASN1_STRING_length_set(ASN1_STRING *x, int n); 2935449: 2935449: int ASN1_STRING_type(const ASN1_STRING *x); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) unsigned char *ASN1_STRING_data(ASN1_STRING *x); 2935449: 2935449: const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x); 2935449: 2935449: extern ASN1_BIT_STRING *ASN1_BIT_STRING_new(void); extern void ASN1_BIT_STRING_free(ASN1_BIT_STRING *a); extern ASN1_BIT_STRING *d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len); extern int i2d_ASN1_BIT_STRING(const ASN1_BIT_STRING *a, unsigned char **out); extern const ASN1_ITEM * ASN1_BIT_STRING_it(void); 2935449: int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); 2935449: int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); 2935449: int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n); 2935449: int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, 2935449: const unsigned char *flags, int flags_len); 2935449: 2935449: int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, 2935449: BIT_STRING_BITNAME *tbl, int indent); 2935449: int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl); 2935449: int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value, 2935449: BIT_STRING_BITNAME *tbl); 2935449: 2935449: struct stack_st_ASN1_INTEGER; typedef int (*sk_ASN1_INTEGER_compfunc)(const ASN1_INTEGER * const *a, const ASN1_INTEGER *const *b); typedef void (*sk_ASN1_INTEGER_freefunc)(ASN1_INTEGER *a); typedef ASN1_INTEGER * (*sk_ASN1_INTEGER_copyfunc)(const ASN1_INTEGER *a); static __attribute__((unused)) inline ASN1_INTEGER *ossl_check_ASN1_INTEGER_type(ASN1_INTEGER *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_ASN1_INTEGER_sk_type(const struct stack_st_ASN1_INTEGER *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_ASN1_INTEGER_sk_type(struct stack_st_ASN1_INTEGER *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_ASN1_INTEGER_compfunc_type(sk_ASN1_INTEGER_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_ASN1_INTEGER_copyfunc_type(sk_ASN1_INTEGER_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_ASN1_INTEGER_freefunc_type(sk_ASN1_INTEGER_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 730 "/usr/include/openssl/asn1.h" 3 4 2935449: extern ASN1_INTEGER *ASN1_INTEGER_new(void); extern void ASN1_INTEGER_free(ASN1_INTEGER *a); extern ASN1_INTEGER *d2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **in, long len); extern int i2d_ASN1_INTEGER(const ASN1_INTEGER *a, unsigned char **out); extern const ASN1_ITEM * ASN1_INTEGER_it(void); 2935449: ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, 2935449: long length); 2935449: extern ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *a); 2935449: int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); 2935449: 2935449: extern ASN1_ENUMERATED *ASN1_ENUMERATED_new(void); extern void ASN1_ENUMERATED_free(ASN1_ENUMERATED *a); extern ASN1_ENUMERATED *d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, const unsigned char **in, long len); extern int i2d_ASN1_ENUMERATED(const ASN1_ENUMERATED *a, unsigned char **out); extern const ASN1_ITEM * ASN1_ENUMERATED_it(void); 2935449: 2935449: int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); 2935449: ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); 2935449: ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, 2935449: int offset_day, long offset_sec); 2935449: int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); 2935449: int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); 2935449: 2935449: int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); 2935449: ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, 2935449: time_t t); 2935449: ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, 2935449: time_t t, int offset_day, 2935449: long offset_sec); 2935449: int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); 2935449: 2935449: int ASN1_TIME_diff(int *pday, int *psec, 2935449: const ASN1_TIME *from, const ASN1_TIME *to); 2935449: 2935449: extern ASN1_OCTET_STRING *ASN1_OCTET_STRING_new(void); extern void ASN1_OCTET_STRING_free(ASN1_OCTET_STRING *a); extern ASN1_OCTET_STRING *d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a, const unsigned char **in, long len); extern int i2d_ASN1_OCTET_STRING(const ASN1_OCTET_STRING *a, unsigned char **out); extern const ASN1_ITEM * ASN1_OCTET_STRING_it(void); 2935449: extern ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); 2935449: int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, 2935449: const ASN1_OCTET_STRING *b); 2935449: int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, 2935449: int len); 2935449: 2935449: struct stack_st_ASN1_UTF8STRING; typedef int (*sk_ASN1_UTF8STRING_compfunc)(const ASN1_UTF8STRING * const *a, const ASN1_UTF8STRING *const *b); typedef void (*sk_ASN1_UTF8STRING_freefunc)(ASN1_UTF8STRING *a); typedef ASN1_UTF8STRING * (*sk_ASN1_UTF8STRING_copyfunc)(const ASN1_UTF8STRING *a); static __attribute__((unused)) inline ASN1_UTF8STRING *ossl_check_ASN1_UTF8STRING_type(ASN1_UTF8STRING *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_ASN1_UTF8STRING_sk_type(const struct stack_st_ASN1_UTF8STRING *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_ASN1_UTF8STRING_sk_type(struct stack_st_ASN1_UTF8STRING *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_ASN1_UTF8STRING_compfunc_type(sk_ASN1_UTF8STRING_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_ASN1_UTF8STRING_copyfunc_type(sk_ASN1_UTF8STRING_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_ASN1_UTF8STRING_freefunc_type(sk_ASN1_UTF8STRING_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 791 "/usr/include/openssl/asn1.h" 3 4 2935449: extern ASN1_VISIBLESTRING *ASN1_VISIBLESTRING_new(void); extern void ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *a); extern ASN1_VISIBLESTRING *d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a, const unsigned char **in, long len); extern int i2d_ASN1_VISIBLESTRING(const ASN1_VISIBLESTRING *a, unsigned char **out); extern const ASN1_ITEM * ASN1_VISIBLESTRING_it(void); 2935449: extern ASN1_UNIVERSALSTRING *ASN1_UNIVERSALSTRING_new(void); extern void ASN1_UNIVERSALSTRING_free(ASN1_UNIVERSALSTRING *a); extern ASN1_UNIVERSALSTRING *d2i_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING **a, const unsigned char **in, long len); extern int i2d_ASN1_UNIVERSALSTRING(const ASN1_UNIVERSALSTRING *a, unsigned char **out); extern const ASN1_ITEM * ASN1_UNIVERSALSTRING_it(void); 2935449: extern ASN1_UTF8STRING *ASN1_UTF8STRING_new(void); extern void ASN1_UTF8STRING_free(ASN1_UTF8STRING *a); extern ASN1_UTF8STRING *d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a, const unsigned char **in, long len); extern int i2d_ASN1_UTF8STRING(const ASN1_UTF8STRING *a, unsigned char **out); extern const ASN1_ITEM * ASN1_UTF8STRING_it(void); 2935449: extern ASN1_NULL *ASN1_NULL_new(void); extern void ASN1_NULL_free(ASN1_NULL *a); extern ASN1_NULL *d2i_ASN1_NULL(ASN1_NULL **a, const unsigned char **in, long len); extern int i2d_ASN1_NULL(const ASN1_NULL *a, unsigned char **out); extern const ASN1_ITEM * ASN1_NULL_it(void); 2935449: extern ASN1_BMPSTRING *ASN1_BMPSTRING_new(void); extern void ASN1_BMPSTRING_free(ASN1_BMPSTRING *a); extern ASN1_BMPSTRING *d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, const unsigned char **in, long len); extern int i2d_ASN1_BMPSTRING(const ASN1_BMPSTRING *a, unsigned char **out); extern const ASN1_ITEM * ASN1_BMPSTRING_it(void); 2935449: 2935449: int UTF8_getc(const unsigned char *str, int len, unsigned long *val); 2935449: int UTF8_putc(unsigned char *str, int len, unsigned long value); 2935449: 2935449: struct stack_st_ASN1_GENERALSTRING; typedef int (*sk_ASN1_GENERALSTRING_compfunc)(const ASN1_GENERALSTRING * const *a, const ASN1_GENERALSTRING *const *b); typedef void (*sk_ASN1_GENERALSTRING_freefunc)(ASN1_GENERALSTRING *a); typedef ASN1_GENERALSTRING * (*sk_ASN1_GENERALSTRING_copyfunc)(const ASN1_GENERALSTRING *a); static __attribute__((unused)) inline ASN1_GENERALSTRING *ossl_check_ASN1_GENERALSTRING_type(ASN1_GENERALSTRING *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_ASN1_GENERALSTRING_sk_type(const struct stack_st_ASN1_GENERALSTRING *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_ASN1_GENERALSTRING_sk_type(struct stack_st_ASN1_GENERALSTRING *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_ASN1_GENERALSTRING_compfunc_type(sk_ASN1_GENERALSTRING_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_ASN1_GENERALSTRING_copyfunc_type(sk_ASN1_GENERALSTRING_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_ASN1_GENERALSTRING_freefunc_type(sk_ASN1_GENERALSTRING_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 828 "/usr/include/openssl/asn1.h" 3 4 2935449: extern ASN1_STRING *ASN1_PRINTABLE_new(void); extern void ASN1_PRINTABLE_free(ASN1_STRING *a); extern ASN1_STRING *d2i_ASN1_PRINTABLE(ASN1_STRING **a, const unsigned char **in, long len); extern int i2d_ASN1_PRINTABLE(const ASN1_STRING *a, unsigned char **out); extern const ASN1_ITEM * ASN1_PRINTABLE_it(void); 2935449: 2935449: extern ASN1_STRING *DIRECTORYSTRING_new(void); extern void DIRECTORYSTRING_free(ASN1_STRING *a); extern ASN1_STRING *d2i_DIRECTORYSTRING(ASN1_STRING **a, const unsigned char **in, long len); extern int i2d_DIRECTORYSTRING(const ASN1_STRING *a, unsigned char **out); extern const ASN1_ITEM * DIRECTORYSTRING_it(void); 2935449: extern ASN1_STRING *DISPLAYTEXT_new(void); extern void DISPLAYTEXT_free(ASN1_STRING *a); extern ASN1_STRING *d2i_DISPLAYTEXT(ASN1_STRING **a, const unsigned char **in, long len); extern int i2d_DISPLAYTEXT(const ASN1_STRING *a, unsigned char **out); extern const ASN1_ITEM * DISPLAYTEXT_it(void); 2935449: extern ASN1_PRINTABLESTRING *ASN1_PRINTABLESTRING_new(void); extern void ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a); extern ASN1_PRINTABLESTRING *d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a, const unsigned char **in, long len); extern int i2d_ASN1_PRINTABLESTRING(const ASN1_PRINTABLESTRING *a, unsigned char **out); extern const ASN1_ITEM * ASN1_PRINTABLESTRING_it(void); 2935449: extern ASN1_T61STRING *ASN1_T61STRING_new(void); extern void ASN1_T61STRING_free(ASN1_T61STRING *a); extern ASN1_T61STRING *d2i_ASN1_T61STRING(ASN1_T61STRING **a, const unsigned char **in, long len); extern int i2d_ASN1_T61STRING(const ASN1_T61STRING *a, unsigned char **out); extern const ASN1_ITEM * ASN1_T61STRING_it(void); 2935449: extern ASN1_IA5STRING *ASN1_IA5STRING_new(void); extern void ASN1_IA5STRING_free(ASN1_IA5STRING *a); extern ASN1_IA5STRING *d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, const unsigned char **in, long len); extern int i2d_ASN1_IA5STRING(const ASN1_IA5STRING *a, unsigned char **out); extern const ASN1_ITEM * ASN1_IA5STRING_it(void); 2935449: extern ASN1_GENERALSTRING *ASN1_GENERALSTRING_new(void); extern void ASN1_GENERALSTRING_free(ASN1_GENERALSTRING *a); extern ASN1_GENERALSTRING *d2i_ASN1_GENERALSTRING(ASN1_GENERALSTRING **a, const unsigned char **in, long len); extern int i2d_ASN1_GENERALSTRING(const ASN1_GENERALSTRING *a, unsigned char **out); extern const ASN1_ITEM * ASN1_GENERALSTRING_it(void); 2935449: extern ASN1_UTCTIME *ASN1_UTCTIME_new(void); extern void ASN1_UTCTIME_free(ASN1_UTCTIME *a); extern ASN1_UTCTIME *d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, const unsigned char **in, long len); extern int i2d_ASN1_UTCTIME(const ASN1_UTCTIME *a, unsigned char **out); extern const ASN1_ITEM * ASN1_UTCTIME_it(void); 2935449: extern ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_new(void); extern void ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *a); extern ASN1_GENERALIZEDTIME *d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, const unsigned char **in, long len); extern int i2d_ASN1_GENERALIZEDTIME(const ASN1_GENERALIZEDTIME *a, unsigned char **out); extern const ASN1_ITEM * ASN1_GENERALIZEDTIME_it(void); 2935449: extern ASN1_TIME *ASN1_TIME_new(void); extern void ASN1_TIME_free(ASN1_TIME *a); extern ASN1_TIME *d2i_ASN1_TIME(ASN1_TIME **a, const unsigned char **in, long len); extern int i2d_ASN1_TIME(const ASN1_TIME *a, unsigned char **out); extern const ASN1_ITEM * ASN1_TIME_it(void); 2935449: 2935449: extern ASN1_TIME *ASN1_TIME_dup(const ASN1_TIME *a); 2935449: extern ASN1_UTCTIME *ASN1_UTCTIME_dup(const ASN1_UTCTIME *a); 2935449: extern ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_dup(const ASN1_GENERALIZEDTIME *a); 2935449: 2935449: extern const ASN1_ITEM * ASN1_OCTET_STRING_NDEF_it(void); 2935449: 2935449: ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); 2935449: ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, 2935449: int offset_day, long offset_sec); 2935449: int ASN1_TIME_check(const ASN1_TIME *t); 2935449: ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(const ASN1_TIME *t, 2935449: ASN1_GENERALIZEDTIME **out); 2935449: int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); 2935449: int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str); 2935449: int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm); 2935449: int ASN1_TIME_normalize(ASN1_TIME *s); 2935449: int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t); 2935449: int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b); 2935449: 2935449: int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a); 2935449: int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); 2935449: int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a); 2935449: int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); 2935449: int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a); 2935449: int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); 2935449: int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type); 2935449: int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a); 2935449: 2935449: int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); 2935449: ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, 2935449: const char *sn, const char *ln); 2935449: 2935449: int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a); 2935449: int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r); 2935449: int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a); 2935449: int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r); 2935449: 2935449: int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); 2935449: long ASN1_INTEGER_get(const ASN1_INTEGER *a); 2935449: ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); 2935449: BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); 2935449: 2935449: int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a); 2935449: int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r); 2935449: 2935449: 2935449: int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); 2935449: long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a); 2935449: ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai); 2935449: BIGNUM *ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn); 2935449: 2935449: 2935449: 2935449: int ASN1_PRINTABLE_type(const unsigned char *s, int max); 2935449: 2935449: unsigned long ASN1_tag2bit(int tag); 2935449: 2935449: 2935449: int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, 2935449: int *pclass, long omax); 2935449: int ASN1_check_infinite_end(unsigned char **p, long len); 2935449: int ASN1_const_check_infinite_end(const unsigned char **p, long len); 2935449: void ASN1_put_object(unsigned char **pp, int constructed, int length, 2935449: int tag, int xclass); 2935449: int ASN1_put_eoc(unsigned char **pp); 2935449: int ASN1_object_size(int constructed, int length, int tag); 2935449: 2935449: 2935449: void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, const void *x); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void *ASN1_item_dup(const ASN1_ITEM *it, const void *x); 2935449: int ASN1_item_sign_ex(const ASN1_ITEM *it, X509_ALGOR *algor1, 2935449: X509_ALGOR *algor2, ASN1_BIT_STRING *signature, 2935449: const void *data, const ASN1_OCTET_STRING *id, 2935449: EVP_PKEY *pkey, const EVP_MD *md, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: int ASN1_item_verify_ex(const ASN1_ITEM *it, const X509_ALGOR *alg, 2935449: const ASN1_BIT_STRING *signature, const void *data, 2935449: const ASN1_OCTET_STRING *id, EVP_PKEY *pkey, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: # 933 "/usr/include/openssl/asn1.h" 3 4 2935449: void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void *ASN1_item_d2i_fp_ex(const ASN1_ITEM *it, FILE *in, void *x, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); 2935449: int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, const void *x); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, const void *x); 2935449: int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags); 2935449: 2935449: 2935449: int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in); 2935449: 2935449: void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void *ASN1_item_d2i_bio_ex(const ASN1_ITEM *it, BIO *in, void *pval, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *pval); 2935449: int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, const void *x); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, const void *x); 2935449: BIO *ASN1_item_i2d_mem_bio(const ASN1_ITEM *it, const ASN1_VALUE *val); 2935449: int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); 2935449: int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); 2935449: int ASN1_TIME_print(BIO *bp, const ASN1_TIME *tm); 2935449: int ASN1_TIME_print_ex(BIO *bp, const ASN1_TIME *tm, unsigned long flags); 2935449: int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); 2935449: int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags); 2935449: int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off); 2935449: int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, 2935449: unsigned char *buf, int off); 2935449: int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); 2935449: int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, 2935449: int dump); 2935449: const char *ASN1_tag2str(int tag); 2935449: 2935449: 2935449: 2935449: int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); 2935449: 2935449: int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); 2935449: int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len); 2935449: int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, 2935449: unsigned char *data, int len); 2935449: int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, 2935449: unsigned char *data, int max_len); 2935449: 2935449: void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); 2935449: void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, 2935449: ASN1_OCTET_STRING **oct); 2935449: 2935449: void ASN1_STRING_set_default_mask(unsigned long mask); 2935449: int ASN1_STRING_set_default_mask_asc(const char *p); 2935449: unsigned long ASN1_STRING_get_default_mask(void); 2935449: int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, 2935449: int inform, unsigned long mask); 2935449: int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, 2935449: int inform, unsigned long mask, 2935449: long minsize, long maxsize); 2935449: 2935449: ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, 2935449: const unsigned char *in, int inlen, 2935449: int inform, int nid); 2935449: ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); 2935449: int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); 2935449: void ASN1_STRING_TABLE_cleanup(void); 2935449: 2935449: 2935449: 2935449: 2935449: ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); 2935449: ASN1_VALUE *ASN1_item_new_ex(const ASN1_ITEM *it, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); 2935449: ASN1_VALUE *ASN1_item_d2i_ex(ASN1_VALUE **val, const unsigned char **in, 2935449: long len, const ASN1_ITEM *it, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, 2935449: long len, const ASN1_ITEM *it); 2935449: int ASN1_item_i2d(const ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); 2935449: int ASN1_item_ndef_i2d(const ASN1_VALUE *val, unsigned char **out, 2935449: const ASN1_ITEM *it); 2935449: 2935449: void ASN1_add_oid_module(void); 2935449: void ASN1_add_stable_module(void); 2935449: 2935449: ASN1_TYPE *ASN1_generate_nconf(const char *str, CONF *nconf); 2935449: ASN1_TYPE *ASN1_generate_v3(const char *str, X509V3_CTX *cnf); 2935449: int ASN1_str2mask(const char *str, unsigned long *pmask); 2935449: # 1069 "/usr/include/openssl/asn1.h" 3 4 2935449: int ASN1_item_print(BIO *out, const ASN1_VALUE *ifld, int indent, 2935449: const ASN1_ITEM *it, const ASN1_PCTX *pctx); 2935449: ASN1_PCTX *ASN1_PCTX_new(void); 2935449: void ASN1_PCTX_free(ASN1_PCTX *p); 2935449: unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p); 2935449: void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); 2935449: unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p); 2935449: void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); 2935449: unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p); 2935449: void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); 2935449: unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p); 2935449: void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); 2935449: unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p); 2935449: void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); 2935449: 2935449: ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx)); 2935449: void ASN1_SCTX_free(ASN1_SCTX *p); 2935449: const ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p); 2935449: const ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p); 2935449: unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p); 2935449: void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data); 2935449: void *ASN1_SCTX_get_app_data(ASN1_SCTX *p); 2935449: 2935449: const BIO_METHOD *BIO_f_asn1(void); 2935449: 2935449: 2935449: BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); 2935449: 2935449: int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, 2935449: const ASN1_ITEM *it); 2935449: int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, 2935449: const char *hdr, const ASN1_ITEM *it); 2935449: 2935449: int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, 2935449: int ctype_nid, int econt_nid, 2935449: struct stack_st_X509_ALGOR *mdalgs, const ASN1_ITEM *it); 2935449: int SMIME_write_ASN1_ex(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, 2935449: int ctype_nid, int econt_nid, 2935449: struct stack_st_X509_ALGOR *mdalgs, const ASN1_ITEM *it, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); 2935449: ASN1_VALUE *SMIME_read_ASN1_ex(BIO *bio, int flags, BIO **bcont, 2935449: const ASN1_ITEM *it, ASN1_VALUE **x, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: int SMIME_crlf_copy(BIO *in, BIO *out, int flags); 2935449: int SMIME_text(BIO *in, BIO *out); 2935449: 2935449: const ASN1_ITEM *ASN1_ITEM_lookup(const char *name); 2935449: const ASN1_ITEM *ASN1_ITEM_get(size_t i); 2935449: # 1132 "/usr/include/openssl/asn1.h" 3 4 2935449: } 2935449: # 22 "/usr/include/openssl/objects.h" 2 3 4 2935449: # 1 "/usr/include/openssl/objectserr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/objectserr.h" 3 4 2935449: 2935449: # 23 "/usr/include/openssl/objects.h" 2 3 4 2935449: # 40 "/usr/include/openssl/objects.h" 3 4 2935449: extern "C" { 2935449: 2935449: 2935449: typedef struct obj_name_st { 2935449: int type; 2935449: int alias; 2935449: const char *name; 2935449: const char *data; 2935449: } OBJ_NAME; 2935449: 2935449: 2935449: 2935449: int OBJ_NAME_init(void); 2935449: int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), 2935449: int (*cmp_func) (const char *, const char *), 2935449: void (*free_func) (const char *, int, const char *)); 2935449: const char *OBJ_NAME_get(const char *name, int type); 2935449: int OBJ_NAME_add(const char *name, int type, const char *data); 2935449: int OBJ_NAME_remove(const char *name, int type); 2935449: void OBJ_NAME_cleanup(int type); 2935449: void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), 2935449: void *arg); 2935449: void OBJ_NAME_do_all_sorted(int type, 2935449: void (*fn) (const OBJ_NAME *, void *arg), 2935449: void *arg); 2935449: 2935449: extern ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *a); 2935449: ASN1_OBJECT *OBJ_nid2obj(int n); 2935449: const char *OBJ_nid2ln(int n); 2935449: const char *OBJ_nid2sn(int n); 2935449: int OBJ_obj2nid(const ASN1_OBJECT *o); 2935449: ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); 2935449: int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); 2935449: int OBJ_txt2nid(const char *s); 2935449: int OBJ_ln2nid(const char *s); 2935449: int OBJ_sn2nid(const char *s); 2935449: int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); 2935449: const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, 2935449: int (*cmp) (const void *, const void *)); 2935449: const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, 2935449: int size, 2935449: int (*cmp) (const void *, const void *), 2935449: int flags); 2935449: # 163 "/usr/include/openssl/objects.h" 3 4 2935449: int OBJ_new_nid(int num); 2935449: int OBJ_add_object(const ASN1_OBJECT *obj); 2935449: int OBJ_create(const char *oid, const char *sn, const char *ln); 2935449: 2935449: 2935449: 2935449: int OBJ_create_objects(BIO *in); 2935449: 2935449: size_t OBJ_length(const ASN1_OBJECT *obj); 2935449: const unsigned char *OBJ_get0_data(const ASN1_OBJECT *obj); 2935449: 2935449: int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); 2935449: int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); 2935449: int OBJ_add_sigid(int signid, int dig_id, int pkey_id); 2935449: void OBJ_sigid_free(void); 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 48 "/usr/include/openssl/evp.h" 2 3 4 2935449: # 116 "/usr/include/openssl/evp.h" 3 4 2935449: extern "C" { 2935449: 2935449: 2935449: int EVP_set_default_properties(OSSL_LIB_CTX *libctx, const char *propq); 2935449: char *EVP_get1_default_properties(OSSL_LIB_CTX *libctx); 2935449: int EVP_default_properties_is_fips_enabled(OSSL_LIB_CTX *libctx); 2935449: int EVP_default_properties_enable_fips(OSSL_LIB_CTX *libctx, int enable); 2935449: # 131 "/usr/include/openssl/evp.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EVP_MD *EVP_MD_meth_new(int md_type, int pkey_type); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EVP_MD *EVP_MD_meth_dup(const EVP_MD *md); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_MD_meth_free(EVP_MD *md); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_MD_meth_set_init(EVP_MD *md, int (*init)(EVP_MD_CTX *ctx)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_MD_meth_set_update(EVP_MD *md, int (*update)(EVP_MD_CTX *ctx, 2935449: const void *data, 2935449: size_t count)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_MD_meth_set_final(EVP_MD *md, int (*final)(EVP_MD_CTX *ctx, 2935449: unsigned char *md)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_MD_meth_set_copy(EVP_MD *md, int (*copy)(EVP_MD_CTX *to, 2935449: const EVP_MD_CTX *from)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_MD_meth_set_cleanup(EVP_MD *md, int (*cleanup)(EVP_MD_CTX *ctx)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_MD_meth_set_ctrl(EVP_MD *md, int (*ctrl)(EVP_MD_CTX *ctx, int cmd, 2935449: int p1, void *p2)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EVP_MD_meth_get_input_blocksize(const EVP_MD *md); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EVP_MD_meth_get_result_size(const EVP_MD *md); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EVP_MD_meth_get_app_datasize(const EVP_MD *md); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) unsigned long EVP_MD_meth_get_flags(const EVP_MD *md); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx, 2935449: const void *data, size_t count); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx, 2935449: unsigned char *md); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to, 2935449: const EVP_MD_CTX *from); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, 2935449: int p1, void *p2); 2935449: # 255 "/usr/include/openssl/evp.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: EVP_CIPHER *EVP_CIPHER_meth_new(int cipher_type, int block_size, int key_len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: EVP_CIPHER *EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: void EVP_CIPHER_meth_free(EVP_CIPHER *cipher); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher, 2935449: int (*init) (EVP_CIPHER_CTX *ctx, 2935449: const unsigned char *key, 2935449: const unsigned char *iv, 2935449: int enc)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher, 2935449: int (*do_cipher) (EVP_CIPHER_CTX *ctx, 2935449: unsigned char *out, 2935449: const unsigned char *in, 2935449: size_t inl)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher, 2935449: int (*cleanup) (EVP_CIPHER_CTX *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher, 2935449: int (*set_asn1_parameters) (EVP_CIPHER_CTX *, 2935449: ASN1_TYPE *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher, 2935449: int (*get_asn1_parameters) (EVP_CIPHER_CTX *, 2935449: ASN1_TYPE *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher, 2935449: int (*ctrl) (EVP_CIPHER_CTX *, int type, 2935449: int arg, void *ptr)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int 2935449: (*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, 2935449: const unsigned char *key, 2935449: const unsigned char *iv, 2935449: int enc); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int 2935449: (*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, 2935449: unsigned char *out, 2935449: const unsigned char *in, 2935449: size_t inl); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int 2935449: (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int 2935449: (*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, 2935449: ASN1_TYPE *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int 2935449: (*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, 2935449: ASN1_TYPE *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int 2935449: (*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, int type, 2935449: int arg, void *ptr); 2935449: # 473 "/usr/include/openssl/evp.h" 3 4 2935449: typedef struct { 2935449: unsigned char *out; 2935449: const unsigned char *inp; 2935449: size_t len; 2935449: unsigned int interleave; 2935449: } EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; 2935449: # 503 "/usr/include/openssl/evp.h" 3 4 2935449: typedef struct evp_cipher_info_st { 2935449: const EVP_CIPHER *cipher; 2935449: unsigned char iv[16]; 2935449: } EVP_CIPHER_INFO; 2935449: 2935449: 2935449: 2935449: typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, 2935449: int passlen, ASN1_TYPE *param, 2935449: const EVP_CIPHER *cipher, const EVP_MD *md, 2935449: int en_de); 2935449: 2935449: typedef int (EVP_PBE_KEYGEN_EX) (EVP_CIPHER_CTX *ctx, const char *pass, 2935449: int passlen, ASN1_TYPE *param, 2935449: const EVP_CIPHER *cipher, const EVP_MD *md, 2935449: int en_de, OSSL_LIB_CTX *libctx, const char *propq); 2935449: # 556 "/usr/include/openssl/evp.h" 3 4 2935449: int EVP_MD_get_type(const EVP_MD *md); 2935449: 2935449: 2935449: const char *EVP_MD_get0_name(const EVP_MD *md); 2935449: 2935449: const char *EVP_MD_get0_description(const EVP_MD *md); 2935449: int EVP_MD_is_a(const EVP_MD *md, const char *name); 2935449: int EVP_MD_names_do_all(const EVP_MD *md, 2935449: void (*fn)(const char *name, void *data), 2935449: void *data); 2935449: const OSSL_PROVIDER *EVP_MD_get0_provider(const EVP_MD *md); 2935449: int EVP_MD_get_pkey_type(const EVP_MD *md); 2935449: 2935449: int EVP_MD_get_size(const EVP_MD *md); 2935449: 2935449: int EVP_MD_get_block_size(const EVP_MD *md); 2935449: 2935449: unsigned long EVP_MD_get_flags(const EVP_MD *md); 2935449: 2935449: int EVP_MD_xof(const EVP_MD *md); 2935449: 2935449: const EVP_MD *EVP_MD_CTX_get0_md(const EVP_MD_CTX *ctx); 2935449: EVP_MD *EVP_MD_CTX_get1_md(EVP_MD_CTX *ctx); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx, 2935449: const void *data, size_t count); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: void EVP_MD_CTX_set_update_fn(EVP_MD_CTX *ctx, 2935449: int (*update) (EVP_MD_CTX *ctx, 2935449: const void *data, size_t count)); 2935449: 2935449: int EVP_MD_CTX_get_size_ex(const EVP_MD_CTX *ctx); 2935449: # 599 "/usr/include/openssl/evp.h" 3 4 2935449: EVP_PKEY_CTX *EVP_MD_CTX_get_pkey_ctx(const EVP_MD_CTX *ctx); 2935449: 2935449: void EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx); 2935449: void *EVP_MD_CTX_get0_md_data(const EVP_MD_CTX *ctx); 2935449: 2935449: 2935449: int EVP_CIPHER_get_nid(const EVP_CIPHER *cipher); 2935449: 2935449: const char *EVP_CIPHER_get0_name(const EVP_CIPHER *cipher); 2935449: 2935449: const char *EVP_CIPHER_get0_description(const EVP_CIPHER *cipher); 2935449: int EVP_CIPHER_is_a(const EVP_CIPHER *cipher, const char *name); 2935449: int EVP_CIPHER_names_do_all(const EVP_CIPHER *cipher, 2935449: void (*fn)(const char *name, void *data), 2935449: void *data); 2935449: const OSSL_PROVIDER *EVP_CIPHER_get0_provider(const EVP_CIPHER *cipher); 2935449: int EVP_CIPHER_get_block_size(const EVP_CIPHER *cipher); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *cipher); 2935449: 2935449: int EVP_CIPHER_get_key_length(const EVP_CIPHER *cipher); 2935449: 2935449: int EVP_CIPHER_get_iv_length(const EVP_CIPHER *cipher); 2935449: 2935449: unsigned long EVP_CIPHER_get_flags(const EVP_CIPHER *cipher); 2935449: 2935449: int EVP_CIPHER_get_mode(const EVP_CIPHER *cipher); 2935449: 2935449: int EVP_CIPHER_get_type(const EVP_CIPHER *cipher); 2935449: 2935449: EVP_CIPHER *EVP_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, 2935449: const char *properties); 2935449: int EVP_CIPHER_can_pipeline(const EVP_CIPHER *cipher, int enc); 2935449: int EVP_CIPHER_up_ref(EVP_CIPHER *cipher); 2935449: void EVP_CIPHER_free(EVP_CIPHER *cipher); 2935449: 2935449: const EVP_CIPHER *EVP_CIPHER_CTX_get0_cipher(const EVP_CIPHER_CTX *ctx); 2935449: EVP_CIPHER *EVP_CIPHER_CTX_get1_cipher(EVP_CIPHER_CTX *ctx); 2935449: int EVP_CIPHER_CTX_is_encrypting(const EVP_CIPHER_CTX *ctx); 2935449: 2935449: int EVP_CIPHER_CTX_get_nid(const EVP_CIPHER_CTX *ctx); 2935449: 2935449: int EVP_CIPHER_CTX_get_block_size(const EVP_CIPHER_CTX *ctx); 2935449: 2935449: int EVP_CIPHER_CTX_get_key_length(const EVP_CIPHER_CTX *ctx); 2935449: 2935449: int EVP_CIPHER_CTX_get_iv_length(const EVP_CIPHER_CTX *ctx); 2935449: 2935449: int EVP_CIPHER_CTX_get_tag_length(const EVP_CIPHER_CTX *ctx); 2935449: 2935449: 2935449: const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const unsigned char *EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx); 2935449: 2935449: int EVP_CIPHER_CTX_get_updated_iv(EVP_CIPHER_CTX *ctx, void *buf, size_t len); 2935449: int EVP_CIPHER_CTX_get_original_iv(EVP_CIPHER_CTX *ctx, void *buf, size_t len); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: unsigned char *EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx); 2935449: 2935449: int EVP_CIPHER_CTX_get_num(const EVP_CIPHER_CTX *ctx); 2935449: 2935449: int EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num); 2935449: EVP_CIPHER_CTX *EVP_CIPHER_CTX_dup(const EVP_CIPHER_CTX *in); 2935449: int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); 2935449: void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); 2935449: void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); 2935449: void *EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx); 2935449: void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data); 2935449: # 704 "/usr/include/openssl/evp.h" 3 4 2935449: int EVP_Cipher(EVP_CIPHER_CTX *c, 2935449: unsigned char *out, 2935449: const unsigned char *in, unsigned int inl); 2935449: # 717 "/usr/include/openssl/evp.h" 3 4 2935449: int EVP_MD_get_params(const EVP_MD *digest, OSSL_PARAM params[]); 2935449: int EVP_MD_CTX_set_params(EVP_MD_CTX *ctx, const OSSL_PARAM params[]); 2935449: int EVP_MD_CTX_get_params(EVP_MD_CTX *ctx, OSSL_PARAM params[]); 2935449: const OSSL_PARAM *EVP_MD_gettable_params(const EVP_MD *digest); 2935449: const OSSL_PARAM *EVP_MD_settable_ctx_params(const EVP_MD *md); 2935449: const OSSL_PARAM *EVP_MD_gettable_ctx_params(const EVP_MD *md); 2935449: const OSSL_PARAM *EVP_MD_CTX_settable_params(EVP_MD_CTX *ctx); 2935449: const OSSL_PARAM *EVP_MD_CTX_gettable_params(EVP_MD_CTX *ctx); 2935449: int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2); 2935449: EVP_MD_CTX *EVP_MD_CTX_new(void); 2935449: int EVP_MD_CTX_reset(EVP_MD_CTX *ctx); 2935449: void EVP_MD_CTX_free(EVP_MD_CTX *ctx); 2935449: 2935449: 2935449: 2935449: EVP_MD_CTX *EVP_MD_CTX_dup(const EVP_MD_CTX *in); 2935449: int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); 2935449: void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); 2935449: void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); 2935449: int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); 2935449: int EVP_DigestInit_ex2(EVP_MD_CTX *ctx, const EVP_MD *type, 2935449: const OSSL_PARAM params[]); 2935449: int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, 2935449: ENGINE *impl); 2935449: int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, 2935449: size_t cnt); 2935449: int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, 2935449: unsigned int *s); 2935449: int EVP_Digest(const void *data, size_t count, 2935449: unsigned char *md, unsigned int *size, 2935449: const EVP_MD *type, ENGINE *impl); 2935449: int EVP_Q_digest(OSSL_LIB_CTX *libctx, const char *name, 2935449: const char *propq, const void *data, size_t datalen, 2935449: unsigned char *md, size_t *mdlen); 2935449: 2935449: int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); 2935449: int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); 2935449: int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, 2935449: unsigned int *s); 2935449: int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *out, 2935449: size_t outlen); 2935449: int EVP_DigestSqueeze(EVP_MD_CTX *ctx, unsigned char *out, 2935449: size_t outlen); 2935449: 2935449: EVP_MD *EVP_MD_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, 2935449: const char *properties); 2935449: 2935449: int EVP_MD_up_ref(EVP_MD *md); 2935449: void EVP_MD_free(EVP_MD *md); 2935449: 2935449: int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); 2935449: int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, 2935449: const char *prompt, int verify); 2935449: void EVP_set_pw_prompt(const char *prompt); 2935449: char *EVP_get_pw_prompt(void); 2935449: 2935449: int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, 2935449: const unsigned char *salt, 2935449: const unsigned char *data, int datal, int count, 2935449: unsigned char *key, unsigned char *iv); 2935449: 2935449: void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); 2935449: void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); 2935449: int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); 2935449: 2935449: int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 2935449: const unsigned char *key, const unsigned char *iv); 2935449: int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, 2935449: const EVP_CIPHER *cipher, ENGINE *impl, 2935449: const unsigned char *key, 2935449: const unsigned char *iv); 2935449: int EVP_EncryptInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 2935449: const unsigned char *key, 2935449: const unsigned char *iv, 2935449: const OSSL_PARAM params[]); 2935449: int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, 2935449: int *outl, const unsigned char *in, int inl); 2935449: int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, 2935449: int *outl); 2935449: int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, 2935449: int *outl); 2935449: 2935449: int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 2935449: const unsigned char *key, const unsigned char *iv); 2935449: int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, 2935449: const EVP_CIPHER *cipher, ENGINE *impl, 2935449: const unsigned char *key, 2935449: const unsigned char *iv); 2935449: int EVP_DecryptInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 2935449: const unsigned char *key, 2935449: const unsigned char *iv, 2935449: const OSSL_PARAM params[]); 2935449: int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, 2935449: int *outl, const unsigned char *in, int inl); 2935449: int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, 2935449: int *outl); 2935449: int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, 2935449: int *outl); 2935449: 2935449: int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 2935449: const unsigned char *key, const unsigned char *iv, 2935449: int enc); 2935449: int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, 2935449: const EVP_CIPHER *cipher, ENGINE *impl, 2935449: const unsigned char *key, 2935449: const unsigned char *iv, int enc); 2935449: int EVP_CipherInit_SKEY(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 2935449: EVP_SKEY *skey, const unsigned char *iv, size_t iv_len, 2935449: int enc, const OSSL_PARAM params[]); 2935449: int EVP_CipherInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 2935449: const unsigned char *key, const unsigned char *iv, 2935449: int enc, const OSSL_PARAM params[]); 2935449: int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, 2935449: int *outl, const unsigned char *in, int inl); 2935449: int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, 2935449: int *outl); 2935449: int EVP_CipherPipelineEncryptInit(EVP_CIPHER_CTX *ctx, 2935449: const EVP_CIPHER *cipher, 2935449: const unsigned char *key, size_t keylen, 2935449: size_t numpipes, 2935449: const unsigned char **iv, size_t ivlen); 2935449: int EVP_CipherPipelineDecryptInit(EVP_CIPHER_CTX *ctx, 2935449: const EVP_CIPHER *cipher, 2935449: const unsigned char *key, size_t keylen, 2935449: size_t numpipes, 2935449: const unsigned char **iv, size_t ivlen); 2935449: int EVP_CipherPipelineUpdate(EVP_CIPHER_CTX *ctx, 2935449: unsigned char **out, size_t *outl, 2935449: const size_t *outsize, 2935449: const unsigned char **in, const size_t *inl); 2935449: int EVP_CipherPipelineFinal(EVP_CIPHER_CTX *ctx, 2935449: unsigned char **outm, size_t *outl, 2935449: const size_t *outsize); 2935449: int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, 2935449: int *outl); 2935449: 2935449: int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, 2935449: EVP_PKEY *pkey); 2935449: int EVP_SignFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, 2935449: EVP_PKEY *pkey, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: 2935449: int EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, 2935449: size_t *siglen, const unsigned char *tbs, 2935449: size_t tbslen); 2935449: 2935449: int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, 2935449: unsigned int siglen, EVP_PKEY *pkey); 2935449: int EVP_VerifyFinal_ex(EVP_MD_CTX *ctx, const unsigned char *sigbuf, 2935449: unsigned int siglen, EVP_PKEY *pkey, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, 2935449: size_t siglen, const unsigned char *tbs, 2935449: size_t tbslen); 2935449: 2935449: int EVP_DigestSignInit_ex(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, 2935449: const char *mdname, OSSL_LIB_CTX *libctx, 2935449: const char *props, EVP_PKEY *pkey, 2935449: const OSSL_PARAM params[]); 2935449: int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, 2935449: const EVP_MD *type, ENGINE *e, 2935449: EVP_PKEY *pkey); 2935449: int EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void *data, size_t dsize); 2935449: int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, 2935449: size_t *siglen); 2935449: 2935449: int EVP_DigestVerifyInit_ex(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, 2935449: const char *mdname, OSSL_LIB_CTX *libctx, 2935449: const char *props, EVP_PKEY *pkey, 2935449: const OSSL_PARAM params[]); 2935449: int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, 2935449: const EVP_MD *type, ENGINE *e, 2935449: EVP_PKEY *pkey); 2935449: int EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void *data, size_t dsize); 2935449: int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, 2935449: size_t siglen); 2935449: 2935449: int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, 2935449: const unsigned char *ek, int ekl, 2935449: const unsigned char *iv, EVP_PKEY *priv); 2935449: int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 2935449: 2935449: int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, 2935449: unsigned char **ek, int *ekl, unsigned char *iv, 2935449: EVP_PKEY **pubk, int npubk); 2935449: int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 2935449: 2935449: EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void); 2935449: void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx); 2935449: int EVP_ENCODE_CTX_copy(EVP_ENCODE_CTX *dctx, const EVP_ENCODE_CTX *sctx); 2935449: int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx); 2935449: void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); 2935449: int EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, 2935449: const unsigned char *in, int inl); 2935449: void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); 2935449: int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); 2935449: 2935449: void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); 2935449: int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, 2935449: const unsigned char *in, int inl); 2935449: int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned 2935449: char *out, int *outl); 2935449: int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); 2935449: int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c); 2935449: void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *c); 2935449: int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); 2935449: int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); 2935449: int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); 2935449: int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); 2935449: int EVP_CIPHER_get_params(EVP_CIPHER *cipher, OSSL_PARAM params[]); 2935449: int EVP_CIPHER_CTX_set_params(EVP_CIPHER_CTX *ctx, const OSSL_PARAM params[]); 2935449: int EVP_CIPHER_CTX_get_params(EVP_CIPHER_CTX *ctx, OSSL_PARAM params[]); 2935449: const OSSL_PARAM *EVP_CIPHER_gettable_params(const EVP_CIPHER *cipher); 2935449: const OSSL_PARAM *EVP_CIPHER_settable_ctx_params(const EVP_CIPHER *cipher); 2935449: const OSSL_PARAM *EVP_CIPHER_gettable_ctx_params(const EVP_CIPHER *cipher); 2935449: const OSSL_PARAM *EVP_CIPHER_CTX_settable_params(EVP_CIPHER_CTX *ctx); 2935449: const OSSL_PARAM *EVP_CIPHER_CTX_gettable_params(EVP_CIPHER_CTX *ctx); 2935449: 2935449: int EVP_CIPHER_CTX_set_algor_params(EVP_CIPHER_CTX *ctx, const X509_ALGOR *alg); 2935449: int EVP_CIPHER_CTX_get_algor_params(EVP_CIPHER_CTX *ctx, X509_ALGOR *alg); 2935449: int EVP_CIPHER_CTX_get_algor(EVP_CIPHER_CTX *ctx, X509_ALGOR **alg); 2935449: 2935449: const BIO_METHOD *BIO_f_md(void); 2935449: const BIO_METHOD *BIO_f_base64(void); 2935449: const BIO_METHOD *BIO_f_cipher(void); 2935449: const BIO_METHOD *BIO_f_reliable(void); 2935449: int BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, 2935449: const unsigned char *i, int enc); 2935449: 2935449: const EVP_MD *EVP_md_null(void); 2935449: 2935449: 2935449: 2935449: 2935449: const EVP_MD *EVP_md4(void); 2935449: 2935449: 2935449: const EVP_MD *EVP_md5(void); 2935449: const EVP_MD *EVP_md5_sha1(void); 2935449: 2935449: 2935449: const EVP_MD *EVP_blake2b512(void); 2935449: const EVP_MD *EVP_blake2s256(void); 2935449: 2935449: const EVP_MD *EVP_sha1(void); 2935449: const EVP_MD *EVP_sha224(void); 2935449: const EVP_MD *EVP_sha256(void); 2935449: const EVP_MD *EVP_sha384(void); 2935449: const EVP_MD *EVP_sha512(void); 2935449: const EVP_MD *EVP_sha512_224(void); 2935449: const EVP_MD *EVP_sha512_256(void); 2935449: const EVP_MD *EVP_sha3_224(void); 2935449: const EVP_MD *EVP_sha3_256(void); 2935449: const EVP_MD *EVP_sha3_384(void); 2935449: const EVP_MD *EVP_sha3_512(void); 2935449: const EVP_MD *EVP_shake128(void); 2935449: const EVP_MD *EVP_shake256(void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const EVP_MD *EVP_ripemd160(void); 2935449: 2935449: 2935449: const EVP_MD *EVP_whirlpool(void); 2935449: 2935449: 2935449: const EVP_MD *EVP_sm3(void); 2935449: 2935449: const EVP_CIPHER *EVP_enc_null(void); 2935449: 2935449: const EVP_CIPHER *EVP_des_ecb(void); 2935449: const EVP_CIPHER *EVP_des_ede(void); 2935449: const EVP_CIPHER *EVP_des_ede3(void); 2935449: const EVP_CIPHER *EVP_des_ede_ecb(void); 2935449: const EVP_CIPHER *EVP_des_ede3_ecb(void); 2935449: const EVP_CIPHER *EVP_des_cfb64(void); 2935449: 2935449: const EVP_CIPHER *EVP_des_cfb1(void); 2935449: const EVP_CIPHER *EVP_des_cfb8(void); 2935449: const EVP_CIPHER *EVP_des_ede_cfb64(void); 2935449: 2935449: const EVP_CIPHER *EVP_des_ede3_cfb64(void); 2935449: 2935449: const EVP_CIPHER *EVP_des_ede3_cfb1(void); 2935449: const EVP_CIPHER *EVP_des_ede3_cfb8(void); 2935449: const EVP_CIPHER *EVP_des_ofb(void); 2935449: const EVP_CIPHER *EVP_des_ede_ofb(void); 2935449: const EVP_CIPHER *EVP_des_ede3_ofb(void); 2935449: const EVP_CIPHER *EVP_des_cbc(void); 2935449: const EVP_CIPHER *EVP_des_ede_cbc(void); 2935449: const EVP_CIPHER *EVP_des_ede3_cbc(void); 2935449: const EVP_CIPHER *EVP_desx_cbc(void); 2935449: const EVP_CIPHER *EVP_des_ede3_wrap(void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const EVP_CIPHER *EVP_rc4(void); 2935449: const EVP_CIPHER *EVP_rc4_40(void); 2935449: 2935449: const EVP_CIPHER *EVP_rc4_hmac_md5(void); 2935449: # 1040 "/usr/include/openssl/evp.h" 3 4 2935449: const EVP_CIPHER *EVP_rc2_ecb(void); 2935449: const EVP_CIPHER *EVP_rc2_cbc(void); 2935449: const EVP_CIPHER *EVP_rc2_40_cbc(void); 2935449: const EVP_CIPHER *EVP_rc2_64_cbc(void); 2935449: const EVP_CIPHER *EVP_rc2_cfb64(void); 2935449: 2935449: const EVP_CIPHER *EVP_rc2_ofb(void); 2935449: 2935449: 2935449: const EVP_CIPHER *EVP_bf_ecb(void); 2935449: const EVP_CIPHER *EVP_bf_cbc(void); 2935449: const EVP_CIPHER *EVP_bf_cfb64(void); 2935449: 2935449: const EVP_CIPHER *EVP_bf_ofb(void); 2935449: 2935449: 2935449: const EVP_CIPHER *EVP_cast5_ecb(void); 2935449: const EVP_CIPHER *EVP_cast5_cbc(void); 2935449: const EVP_CIPHER *EVP_cast5_cfb64(void); 2935449: 2935449: const EVP_CIPHER *EVP_cast5_ofb(void); 2935449: # 1069 "/usr/include/openssl/evp.h" 3 4 2935449: const EVP_CIPHER *EVP_aes_128_ecb(void); 2935449: const EVP_CIPHER *EVP_aes_128_cbc(void); 2935449: const EVP_CIPHER *EVP_aes_128_cfb1(void); 2935449: const EVP_CIPHER *EVP_aes_128_cfb8(void); 2935449: const EVP_CIPHER *EVP_aes_128_cfb128(void); 2935449: 2935449: const EVP_CIPHER *EVP_aes_128_ofb(void); 2935449: const EVP_CIPHER *EVP_aes_128_ctr(void); 2935449: const EVP_CIPHER *EVP_aes_128_ccm(void); 2935449: const EVP_CIPHER *EVP_aes_128_gcm(void); 2935449: const EVP_CIPHER *EVP_aes_128_xts(void); 2935449: const EVP_CIPHER *EVP_aes_128_wrap(void); 2935449: const EVP_CIPHER *EVP_aes_128_wrap_pad(void); 2935449: 2935449: const EVP_CIPHER *EVP_aes_128_ocb(void); 2935449: 2935449: const EVP_CIPHER *EVP_aes_192_ecb(void); 2935449: const EVP_CIPHER *EVP_aes_192_cbc(void); 2935449: const EVP_CIPHER *EVP_aes_192_cfb1(void); 2935449: const EVP_CIPHER *EVP_aes_192_cfb8(void); 2935449: const EVP_CIPHER *EVP_aes_192_cfb128(void); 2935449: 2935449: const EVP_CIPHER *EVP_aes_192_ofb(void); 2935449: const EVP_CIPHER *EVP_aes_192_ctr(void); 2935449: const EVP_CIPHER *EVP_aes_192_ccm(void); 2935449: const EVP_CIPHER *EVP_aes_192_gcm(void); 2935449: const EVP_CIPHER *EVP_aes_192_wrap(void); 2935449: const EVP_CIPHER *EVP_aes_192_wrap_pad(void); 2935449: 2935449: const EVP_CIPHER *EVP_aes_192_ocb(void); 2935449: 2935449: const EVP_CIPHER *EVP_aes_256_ecb(void); 2935449: const EVP_CIPHER *EVP_aes_256_cbc(void); 2935449: const EVP_CIPHER *EVP_aes_256_cfb1(void); 2935449: const EVP_CIPHER *EVP_aes_256_cfb8(void); 2935449: const EVP_CIPHER *EVP_aes_256_cfb128(void); 2935449: 2935449: const EVP_CIPHER *EVP_aes_256_ofb(void); 2935449: const EVP_CIPHER *EVP_aes_256_ctr(void); 2935449: const EVP_CIPHER *EVP_aes_256_ccm(void); 2935449: const EVP_CIPHER *EVP_aes_256_gcm(void); 2935449: const EVP_CIPHER *EVP_aes_256_xts(void); 2935449: const EVP_CIPHER *EVP_aes_256_wrap(void); 2935449: const EVP_CIPHER *EVP_aes_256_wrap_pad(void); 2935449: 2935449: const EVP_CIPHER *EVP_aes_256_ocb(void); 2935449: 2935449: const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); 2935449: const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); 2935449: const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); 2935449: const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); 2935449: 2935449: const EVP_CIPHER *EVP_aria_128_ecb(void); 2935449: const EVP_CIPHER *EVP_aria_128_cbc(void); 2935449: const EVP_CIPHER *EVP_aria_128_cfb1(void); 2935449: const EVP_CIPHER *EVP_aria_128_cfb8(void); 2935449: const EVP_CIPHER *EVP_aria_128_cfb128(void); 2935449: 2935449: const EVP_CIPHER *EVP_aria_128_ctr(void); 2935449: const EVP_CIPHER *EVP_aria_128_ofb(void); 2935449: const EVP_CIPHER *EVP_aria_128_gcm(void); 2935449: const EVP_CIPHER *EVP_aria_128_ccm(void); 2935449: const EVP_CIPHER *EVP_aria_192_ecb(void); 2935449: const EVP_CIPHER *EVP_aria_192_cbc(void); 2935449: const EVP_CIPHER *EVP_aria_192_cfb1(void); 2935449: const EVP_CIPHER *EVP_aria_192_cfb8(void); 2935449: const EVP_CIPHER *EVP_aria_192_cfb128(void); 2935449: 2935449: const EVP_CIPHER *EVP_aria_192_ctr(void); 2935449: const EVP_CIPHER *EVP_aria_192_ofb(void); 2935449: const EVP_CIPHER *EVP_aria_192_gcm(void); 2935449: const EVP_CIPHER *EVP_aria_192_ccm(void); 2935449: const EVP_CIPHER *EVP_aria_256_ecb(void); 2935449: const EVP_CIPHER *EVP_aria_256_cbc(void); 2935449: const EVP_CIPHER *EVP_aria_256_cfb1(void); 2935449: const EVP_CIPHER *EVP_aria_256_cfb8(void); 2935449: const EVP_CIPHER *EVP_aria_256_cfb128(void); 2935449: 2935449: const EVP_CIPHER *EVP_aria_256_ctr(void); 2935449: const EVP_CIPHER *EVP_aria_256_ofb(void); 2935449: const EVP_CIPHER *EVP_aria_256_gcm(void); 2935449: const EVP_CIPHER *EVP_aria_256_ccm(void); 2935449: 2935449: 2935449: const EVP_CIPHER *EVP_camellia_128_ecb(void); 2935449: const EVP_CIPHER *EVP_camellia_128_cbc(void); 2935449: const EVP_CIPHER *EVP_camellia_128_cfb1(void); 2935449: const EVP_CIPHER *EVP_camellia_128_cfb8(void); 2935449: const EVP_CIPHER *EVP_camellia_128_cfb128(void); 2935449: 2935449: const EVP_CIPHER *EVP_camellia_128_ofb(void); 2935449: const EVP_CIPHER *EVP_camellia_128_ctr(void); 2935449: const EVP_CIPHER *EVP_camellia_192_ecb(void); 2935449: const EVP_CIPHER *EVP_camellia_192_cbc(void); 2935449: const EVP_CIPHER *EVP_camellia_192_cfb1(void); 2935449: const EVP_CIPHER *EVP_camellia_192_cfb8(void); 2935449: const EVP_CIPHER *EVP_camellia_192_cfb128(void); 2935449: 2935449: const EVP_CIPHER *EVP_camellia_192_ofb(void); 2935449: const EVP_CIPHER *EVP_camellia_192_ctr(void); 2935449: const EVP_CIPHER *EVP_camellia_256_ecb(void); 2935449: const EVP_CIPHER *EVP_camellia_256_cbc(void); 2935449: const EVP_CIPHER *EVP_camellia_256_cfb1(void); 2935449: const EVP_CIPHER *EVP_camellia_256_cfb8(void); 2935449: const EVP_CIPHER *EVP_camellia_256_cfb128(void); 2935449: 2935449: const EVP_CIPHER *EVP_camellia_256_ofb(void); 2935449: const EVP_CIPHER *EVP_camellia_256_ctr(void); 2935449: 2935449: 2935449: const EVP_CIPHER *EVP_chacha20(void); 2935449: 2935449: const EVP_CIPHER *EVP_chacha20_poly1305(void); 2935449: 2935449: 2935449: 2935449: 2935449: const EVP_CIPHER *EVP_seed_ecb(void); 2935449: const EVP_CIPHER *EVP_seed_cbc(void); 2935449: const EVP_CIPHER *EVP_seed_cfb128(void); 2935449: 2935449: const EVP_CIPHER *EVP_seed_ofb(void); 2935449: 2935449: 2935449: 2935449: const EVP_CIPHER *EVP_sm4_ecb(void); 2935449: const EVP_CIPHER *EVP_sm4_cbc(void); 2935449: const EVP_CIPHER *EVP_sm4_cfb128(void); 2935449: 2935449: const EVP_CIPHER *EVP_sm4_ofb(void); 2935449: const EVP_CIPHER *EVP_sm4_ctr(void); 2935449: # 1225 "/usr/include/openssl/evp.h" 3 4 2935449: int EVP_add_cipher(const EVP_CIPHER *cipher); 2935449: int EVP_add_digest(const EVP_MD *digest); 2935449: 2935449: const EVP_CIPHER *EVP_get_cipherbyname(const char *name); 2935449: const EVP_MD *EVP_get_digestbyname(const char *name); 2935449: 2935449: void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, 2935449: const char *from, const char *to, void *x), 2935449: void *arg); 2935449: void EVP_CIPHER_do_all_sorted(void (*fn) 2935449: (const EVP_CIPHER *ciph, const char *from, 2935449: const char *to, void *x), void *arg); 2935449: void EVP_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx, 2935449: void (*fn)(EVP_CIPHER *cipher, void *arg), 2935449: void *arg); 2935449: 2935449: void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, 2935449: const char *from, const char *to, void *x), 2935449: void *arg); 2935449: void EVP_MD_do_all_sorted(void (*fn) 2935449: (const EVP_MD *ciph, const char *from, 2935449: const char *to, void *x), void *arg); 2935449: void EVP_MD_do_all_provided(OSSL_LIB_CTX *libctx, 2935449: void (*fn)(EVP_MD *md, void *arg), 2935449: void *arg); 2935449: 2935449: 2935449: 2935449: EVP_MAC *EVP_MAC_fetch(OSSL_LIB_CTX *libctx, const char *algorithm, 2935449: const char *properties); 2935449: int EVP_MAC_up_ref(EVP_MAC *mac); 2935449: void EVP_MAC_free(EVP_MAC *mac); 2935449: const char *EVP_MAC_get0_name(const EVP_MAC *mac); 2935449: const char *EVP_MAC_get0_description(const EVP_MAC *mac); 2935449: int EVP_MAC_is_a(const EVP_MAC *mac, const char *name); 2935449: const OSSL_PROVIDER *EVP_MAC_get0_provider(const EVP_MAC *mac); 2935449: int EVP_MAC_get_params(EVP_MAC *mac, OSSL_PARAM params[]); 2935449: 2935449: EVP_MAC_CTX *EVP_MAC_CTX_new(EVP_MAC *mac); 2935449: void EVP_MAC_CTX_free(EVP_MAC_CTX *ctx); 2935449: EVP_MAC_CTX *EVP_MAC_CTX_dup(const EVP_MAC_CTX *src); 2935449: EVP_MAC *EVP_MAC_CTX_get0_mac(EVP_MAC_CTX *ctx); 2935449: int EVP_MAC_CTX_get_params(EVP_MAC_CTX *ctx, OSSL_PARAM params[]); 2935449: int EVP_MAC_CTX_set_params(EVP_MAC_CTX *ctx, const OSSL_PARAM params[]); 2935449: 2935449: size_t EVP_MAC_CTX_get_mac_size(EVP_MAC_CTX *ctx); 2935449: size_t EVP_MAC_CTX_get_block_size(EVP_MAC_CTX *ctx); 2935449: unsigned char *EVP_Q_mac(OSSL_LIB_CTX *libctx, const char *name, const char *propq, 2935449: const char *subalg, const OSSL_PARAM *params, 2935449: const void *key, size_t keylen, 2935449: const unsigned char *data, size_t datalen, 2935449: unsigned char *out, size_t outsize, size_t *outlen); 2935449: int EVP_MAC_init(EVP_MAC_CTX *ctx, const unsigned char *key, size_t keylen, 2935449: const OSSL_PARAM params[]); 2935449: int EVP_MAC_init_SKEY(EVP_MAC_CTX *ctx, EVP_SKEY *skey, const OSSL_PARAM params[]); 2935449: int EVP_MAC_update(EVP_MAC_CTX *ctx, const unsigned char *data, size_t datalen); 2935449: int EVP_MAC_final(EVP_MAC_CTX *ctx, 2935449: unsigned char *out, size_t *outl, size_t outsize); 2935449: int EVP_MAC_finalXOF(EVP_MAC_CTX *ctx, unsigned char *out, size_t outsize); 2935449: const OSSL_PARAM *EVP_MAC_gettable_params(const EVP_MAC *mac); 2935449: const OSSL_PARAM *EVP_MAC_gettable_ctx_params(const EVP_MAC *mac); 2935449: const OSSL_PARAM *EVP_MAC_settable_ctx_params(const EVP_MAC *mac); 2935449: const OSSL_PARAM *EVP_MAC_CTX_gettable_params(EVP_MAC_CTX *ctx); 2935449: const OSSL_PARAM *EVP_MAC_CTX_settable_params(EVP_MAC_CTX *ctx); 2935449: 2935449: void EVP_MAC_do_all_provided(OSSL_LIB_CTX *libctx, 2935449: void (*fn)(EVP_MAC *mac, void *arg), 2935449: void *arg); 2935449: int EVP_MAC_names_do_all(const EVP_MAC *mac, 2935449: void (*fn)(const char *name, void *data), 2935449: void *data); 2935449: 2935449: 2935449: EVP_RAND *EVP_RAND_fetch(OSSL_LIB_CTX *libctx, const char *algorithm, 2935449: const char *properties); 2935449: int EVP_RAND_up_ref(EVP_RAND *rand); 2935449: void EVP_RAND_free(EVP_RAND *rand); 2935449: const char *EVP_RAND_get0_name(const EVP_RAND *rand); 2935449: const char *EVP_RAND_get0_description(const EVP_RAND *md); 2935449: int EVP_RAND_is_a(const EVP_RAND *rand, const char *name); 2935449: const OSSL_PROVIDER *EVP_RAND_get0_provider(const EVP_RAND *rand); 2935449: int EVP_RAND_get_params(EVP_RAND *rand, OSSL_PARAM params[]); 2935449: 2935449: EVP_RAND_CTX *EVP_RAND_CTX_new(EVP_RAND *rand, EVP_RAND_CTX *parent); 2935449: int EVP_RAND_CTX_up_ref(EVP_RAND_CTX *ctx); 2935449: void EVP_RAND_CTX_free(EVP_RAND_CTX *ctx); 2935449: EVP_RAND *EVP_RAND_CTX_get0_rand(EVP_RAND_CTX *ctx); 2935449: int EVP_RAND_CTX_get_params(EVP_RAND_CTX *ctx, OSSL_PARAM params[]); 2935449: int EVP_RAND_CTX_set_params(EVP_RAND_CTX *ctx, const OSSL_PARAM params[]); 2935449: const OSSL_PARAM *EVP_RAND_gettable_params(const EVP_RAND *rand); 2935449: const OSSL_PARAM *EVP_RAND_gettable_ctx_params(const EVP_RAND *rand); 2935449: const OSSL_PARAM *EVP_RAND_settable_ctx_params(const EVP_RAND *rand); 2935449: const OSSL_PARAM *EVP_RAND_CTX_gettable_params(EVP_RAND_CTX *ctx); 2935449: const OSSL_PARAM *EVP_RAND_CTX_settable_params(EVP_RAND_CTX *ctx); 2935449: 2935449: void EVP_RAND_do_all_provided(OSSL_LIB_CTX *libctx, 2935449: void (*fn)(EVP_RAND *rand, void *arg), 2935449: void *arg); 2935449: int EVP_RAND_names_do_all(const EVP_RAND *rand, 2935449: void (*fn)(const char *name, void *data), 2935449: void *data); 2935449: 2935449: int EVP_RAND_instantiate(EVP_RAND_CTX *ctx, unsigned int strength, 2935449: int prediction_resistance, 2935449: const unsigned char *pstr, size_t pstr_len, 2935449: const OSSL_PARAM params[]); 2935449: int EVP_RAND_uninstantiate(EVP_RAND_CTX *ctx); 2935449: int EVP_RAND_generate(EVP_RAND_CTX *ctx, unsigned char *out, 2935449: size_t outlen, unsigned int strength, 2935449: int prediction_resistance, 2935449: const unsigned char *addin, size_t addin_len); 2935449: int EVP_RAND_reseed(EVP_RAND_CTX *ctx, int prediction_resistance, 2935449: const unsigned char *ent, size_t ent_len, 2935449: const unsigned char *addin, size_t addin_len); 2935449: int EVP_RAND_nonce(EVP_RAND_CTX *ctx, unsigned char *out, size_t outlen); 2935449: int EVP_RAND_enable_locking(EVP_RAND_CTX *ctx); 2935449: 2935449: int EVP_RAND_verify_zeroization(EVP_RAND_CTX *ctx); 2935449: unsigned int EVP_RAND_get_strength(EVP_RAND_CTX *ctx); 2935449: int EVP_RAND_get_state(EVP_RAND_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EVP_PKEY_decrypt_old(unsigned char *dec_key, 2935449: const unsigned char *enc_key, 2935449: int enc_key_len, 2935449: EVP_PKEY *private_key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EVP_PKEY_encrypt_old(unsigned char *enc_key, 2935449: const unsigned char *key, 2935449: int key_len, EVP_PKEY *pub_key); 2935449: 2935449: int EVP_PKEY_is_a(const EVP_PKEY *pkey, const char *name); 2935449: int EVP_PKEY_type_names_do_all(const EVP_PKEY *pkey, 2935449: void (*fn)(const char *name, void *data), 2935449: void *data); 2935449: int EVP_PKEY_type(int type); 2935449: int EVP_PKEY_get_id(const EVP_PKEY *pkey); 2935449: 2935449: int EVP_PKEY_get_base_id(const EVP_PKEY *pkey); 2935449: 2935449: int EVP_PKEY_get_bits(const EVP_PKEY *pkey); 2935449: 2935449: int EVP_PKEY_get_security_bits(const EVP_PKEY *pkey); 2935449: 2935449: int EVP_PKEY_get_size(const EVP_PKEY *pkey); 2935449: 2935449: int EVP_PKEY_can_sign(const EVP_PKEY *pkey); 2935449: int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); 2935449: int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); 2935449: int EVP_PKEY_set_type_by_keymgmt(EVP_PKEY *pkey, EVP_KEYMGMT *keymgmt); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: void *EVP_PKEY_get0(const EVP_PKEY *pkey); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: const unsigned char *EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: const unsigned char *EVP_PKEY_get0_poly1305(const EVP_PKEY *pkey, size_t *len); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: const unsigned char *EVP_PKEY_get0_siphash(const EVP_PKEY *pkey, size_t *len); 2935449: 2935449: 2935449: struct rsa_st; 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: const struct rsa_st *EVP_PKEY_get0_RSA(const EVP_PKEY *pkey); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); 2935449: 2935449: 2935449: struct dsa_st; 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: const struct dsa_st *EVP_PKEY_get0_DSA(const EVP_PKEY *pkey); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); 2935449: 2935449: 2935449: 2935449: struct dh_st; 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const struct dh_st *EVP_PKEY_get0_DH(const EVP_PKEY *pkey); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); 2935449: 2935449: 2935449: 2935449: struct ec_key_st; 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: const struct ec_key_st *EVP_PKEY_get0_EC_KEY(const EVP_PKEY *pkey); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); 2935449: 2935449: 2935449: 2935449: EVP_PKEY *EVP_PKEY_new(void); 2935449: int EVP_PKEY_up_ref(EVP_PKEY *pkey); 2935449: EVP_PKEY *EVP_PKEY_dup(EVP_PKEY *pkey); 2935449: void EVP_PKEY_free(EVP_PKEY *pkey); 2935449: const char *EVP_PKEY_get0_description(const EVP_PKEY *pkey); 2935449: const OSSL_PROVIDER *EVP_PKEY_get0_provider(const EVP_PKEY *key); 2935449: 2935449: EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, 2935449: long length); 2935449: int i2d_PublicKey(const EVP_PKEY *a, unsigned char **pp); 2935449: 2935449: 2935449: EVP_PKEY *d2i_PrivateKey_ex(int type, EVP_PKEY **a, const unsigned char **pp, 2935449: long length, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, 2935449: long length); 2935449: EVP_PKEY *d2i_AutoPrivateKey_ex(EVP_PKEY **a, const unsigned char **pp, 2935449: long length, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, 2935449: long length); 2935449: int i2d_PrivateKey(const EVP_PKEY *a, unsigned char **pp); 2935449: 2935449: int i2d_KeyParams(const EVP_PKEY *a, unsigned char **pp); 2935449: EVP_PKEY *d2i_KeyParams(int type, EVP_PKEY **a, const unsigned char **pp, 2935449: long length); 2935449: int i2d_KeyParams_bio(BIO *bp, const EVP_PKEY *pkey); 2935449: EVP_PKEY *d2i_KeyParams_bio(int type, EVP_PKEY **a, BIO *in); 2935449: 2935449: int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); 2935449: int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); 2935449: int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); 2935449: int EVP_PKEY_parameters_eq(const EVP_PKEY *a, const EVP_PKEY *b); 2935449: int EVP_PKEY_eq(const EVP_PKEY *a, const EVP_PKEY *b); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); 2935449: 2935449: 2935449: int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, 2935449: int indent, ASN1_PCTX *pctx); 2935449: int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, 2935449: int indent, ASN1_PCTX *pctx); 2935449: int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, 2935449: int indent, ASN1_PCTX *pctx); 2935449: 2935449: int EVP_PKEY_print_public_fp(FILE *fp, const EVP_PKEY *pkey, 2935449: int indent, ASN1_PCTX *pctx); 2935449: int EVP_PKEY_print_private_fp(FILE *fp, const EVP_PKEY *pkey, 2935449: int indent, ASN1_PCTX *pctx); 2935449: int EVP_PKEY_print_params_fp(FILE *fp, const EVP_PKEY *pkey, 2935449: int indent, ASN1_PCTX *pctx); 2935449: 2935449: 2935449: int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); 2935449: int EVP_PKEY_get_default_digest_name(EVP_PKEY *pkey, 2935449: char *mdname, size_t mdname_sz); 2935449: int EVP_PKEY_digestsign_supports_digest(EVP_PKEY *pkey, OSSL_LIB_CTX *libctx, 2935449: const char *name, const char *propq); 2935449: # 1510 "/usr/include/openssl/evp.h" 3 4 2935449: int EVP_PKEY_set1_encoded_public_key(EVP_PKEY *pkey, 2935449: const unsigned char *pub, size_t publen); 2935449: # 1522 "/usr/include/openssl/evp.h" 3 4 2935449: size_t EVP_PKEY_get1_encoded_public_key(EVP_PKEY *pkey, unsigned char **ppub); 2935449: 2935449: 2935449: int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 2935449: int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 2935449: 2935449: 2935449: int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 2935449: int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 2935449: 2935449: 2935449: int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, 2935449: ASN1_TYPE *param, const EVP_CIPHER *cipher, 2935449: const EVP_MD *md, int en_de); 2935449: int PKCS5_PBE_keyivgen_ex(EVP_CIPHER_CTX *cctx, const char *pass, int passlen, 2935449: ASN1_TYPE *param, const EVP_CIPHER *cipher, 2935449: const EVP_MD *md, int en_de, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, 2935449: const unsigned char *salt, int saltlen, int iter, 2935449: int keylen, unsigned char *out); 2935449: int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, 2935449: const unsigned char *salt, int saltlen, int iter, 2935449: const EVP_MD *digest, int keylen, unsigned char *out); 2935449: int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, 2935449: ASN1_TYPE *param, const EVP_CIPHER *cipher, 2935449: const EVP_MD *md, int en_de); 2935449: int PKCS5_v2_PBE_keyivgen_ex(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, 2935449: ASN1_TYPE *param, const EVP_CIPHER *cipher, 2935449: const EVP_MD *md, int en_de, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: 2935449: int EVP_PBE_scrypt(const char *pass, size_t passlen, 2935449: const unsigned char *salt, size_t saltlen, 2935449: uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, 2935449: unsigned char *key, size_t keylen); 2935449: int EVP_PBE_scrypt_ex(const char *pass, size_t passlen, 2935449: const unsigned char *salt, size_t saltlen, 2935449: uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, 2935449: unsigned char *key, size_t keylen, 2935449: OSSL_LIB_CTX *ctx, const char *propq); 2935449: 2935449: int PKCS5_v2_scrypt_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, 2935449: int passlen, ASN1_TYPE *param, 2935449: const EVP_CIPHER *c, const EVP_MD *md, int en_de); 2935449: int PKCS5_v2_scrypt_keyivgen_ex(EVP_CIPHER_CTX *ctx, const char *pass, 2935449: int passlen, ASN1_TYPE *param, 2935449: const EVP_CIPHER *c, const EVP_MD *md, int en_de, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: 2935449: void PKCS5_PBE_add(void); 2935449: 2935449: int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, 2935449: ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); 2935449: 2935449: int EVP_PBE_CipherInit_ex(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, 2935449: ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: # 1592 "/usr/include/openssl/evp.h" 3 4 2935449: int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, 2935449: int md_nid, EVP_PBE_KEYGEN *keygen); 2935449: int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, 2935449: EVP_PBE_KEYGEN *keygen); 2935449: int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, 2935449: EVP_PBE_KEYGEN **pkeygen); 2935449: int EVP_PBE_find_ex(int type, int pbe_nid, int *pcnid, int *pmnid, 2935449: EVP_PBE_KEYGEN **pkeygen, EVP_PBE_KEYGEN_EX **pkeygen_ex); 2935449: void EVP_PBE_cleanup(void); 2935449: int EVP_PBE_get(int *ptype, int *ppbe_nid, size_t num); 2935449: # 1618 "/usr/include/openssl/evp.h" 3 4 2935449: int EVP_PKEY_asn1_get_count(void); 2935449: const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); 2935449: const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); 2935449: const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, 2935449: const char *str, int len); 2935449: int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); 2935449: int EVP_PKEY_asn1_add_alias(int to, int from); 2935449: int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, 2935449: int *ppkey_flags, const char **pinfo, 2935449: const char **ppem_str, 2935449: const EVP_PKEY_ASN1_METHOD *ameth); 2935449: 2935449: const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(const EVP_PKEY *pkey); 2935449: EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, 2935449: const char *pem_str, 2935449: const char *info); 2935449: void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, 2935449: const EVP_PKEY_ASN1_METHOD *src); 2935449: void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); 2935449: void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*pub_decode) (EVP_PKEY *pk, 2935449: const X509_PUBKEY *pub), 2935449: int (*pub_encode) (X509_PUBKEY *pub, 2935449: const EVP_PKEY *pk), 2935449: int (*pub_cmp) (const EVP_PKEY *a, 2935449: const EVP_PKEY *b), 2935449: int (*pub_print) (BIO *out, 2935449: const EVP_PKEY *pkey, 2935449: int indent, ASN1_PCTX *pctx), 2935449: int (*pkey_size) (const EVP_PKEY *pk), 2935449: int (*pkey_bits) (const EVP_PKEY *pk)); 2935449: void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*priv_decode) (EVP_PKEY *pk, 2935449: const PKCS8_PRIV_KEY_INFO 2935449: *p8inf), 2935449: int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, 2935449: const EVP_PKEY *pk), 2935449: int (*priv_print) (BIO *out, 2935449: const EVP_PKEY *pkey, 2935449: int indent, 2935449: ASN1_PCTX *pctx)); 2935449: void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*param_decode) (EVP_PKEY *pkey, 2935449: const unsigned char **pder, 2935449: int derlen), 2935449: int (*param_encode) (const EVP_PKEY *pkey, 2935449: unsigned char **pder), 2935449: int (*param_missing) (const EVP_PKEY *pk), 2935449: int (*param_copy) (EVP_PKEY *to, 2935449: const EVP_PKEY *from), 2935449: int (*param_cmp) (const EVP_PKEY *a, 2935449: const EVP_PKEY *b), 2935449: int (*param_print) (BIO *out, 2935449: const EVP_PKEY *pkey, 2935449: int indent, 2935449: ASN1_PCTX *pctx)); 2935449: 2935449: void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, 2935449: void (*pkey_free) (EVP_PKEY *pkey)); 2935449: void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*pkey_ctrl) (EVP_PKEY *pkey, int op, 2935449: long arg1, void *arg2)); 2935449: void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*item_verify) (EVP_MD_CTX *ctx, 2935449: const ASN1_ITEM *it, 2935449: const void *data, 2935449: const X509_ALGOR *a, 2935449: const ASN1_BIT_STRING *sig, 2935449: EVP_PKEY *pkey), 2935449: int (*item_sign) (EVP_MD_CTX *ctx, 2935449: const ASN1_ITEM *it, 2935449: const void *data, 2935449: X509_ALGOR *alg1, 2935449: X509_ALGOR *alg2, 2935449: ASN1_BIT_STRING *sig)); 2935449: 2935449: void EVP_PKEY_asn1_set_siginf(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*siginf_set) (X509_SIG_INFO *siginf, 2935449: const X509_ALGOR *alg, 2935449: const ASN1_STRING *sig)); 2935449: 2935449: void EVP_PKEY_asn1_set_check(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*pkey_check) (const EVP_PKEY *pk)); 2935449: 2935449: void EVP_PKEY_asn1_set_public_check(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*pkey_pub_check) (const EVP_PKEY *pk)); 2935449: 2935449: void EVP_PKEY_asn1_set_param_check(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*pkey_param_check) (const EVP_PKEY *pk)); 2935449: 2935449: void EVP_PKEY_asn1_set_set_priv_key(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*set_priv_key) (EVP_PKEY *pk, 2935449: const unsigned char 2935449: *priv, 2935449: size_t len)); 2935449: void EVP_PKEY_asn1_set_set_pub_key(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*set_pub_key) (EVP_PKEY *pk, 2935449: const unsigned char *pub, 2935449: size_t len)); 2935449: void EVP_PKEY_asn1_set_get_priv_key(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*get_priv_key) (const EVP_PKEY *pk, 2935449: unsigned char *priv, 2935449: size_t *len)); 2935449: void EVP_PKEY_asn1_set_get_pub_key(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*get_pub_key) (const EVP_PKEY *pk, 2935449: unsigned char *pub, 2935449: size_t *len)); 2935449: 2935449: void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth, 2935449: int (*pkey_security_bits) (const EVP_PKEY 2935449: *pk)); 2935449: 2935449: int EVP_PKEY_CTX_get_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); 2935449: int EVP_PKEY_CTX_set_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); 2935449: 2935449: int EVP_PKEY_CTX_set1_id(EVP_PKEY_CTX *ctx, const void *id, int len); 2935449: int EVP_PKEY_CTX_get1_id(EVP_PKEY_CTX *ctx, void *id); 2935449: int EVP_PKEY_CTX_get1_id_len(EVP_PKEY_CTX *ctx, size_t *id_len); 2935449: 2935449: int EVP_PKEY_CTX_set_kem_op(EVP_PKEY_CTX *ctx, const char *op); 2935449: 2935449: const char *EVP_PKEY_get0_type_name(const EVP_PKEY *key); 2935449: # 1784 "/usr/include/openssl/evp.h" 3 4 2935449: int EVP_PKEY_CTX_set_mac_key(EVP_PKEY_CTX *ctx, const unsigned char *key, 2935449: int keylen); 2935449: # 1816 "/usr/include/openssl/evp.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, 2935449: const EVP_PKEY_METHOD *meth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, 2935449: const EVP_PKEY_METHOD *src); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EVP_PKEY_meth_remove(const EVP_PKEY_METHOD *pmeth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) size_t EVP_PKEY_meth_get_count(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EVP_PKEY_METHOD *EVP_PKEY_meth_get0(size_t idx); 2935449: 2935449: 2935449: EVP_KEYMGMT *EVP_KEYMGMT_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, 2935449: const char *properties); 2935449: int EVP_KEYMGMT_up_ref(EVP_KEYMGMT *keymgmt); 2935449: void EVP_KEYMGMT_free(EVP_KEYMGMT *keymgmt); 2935449: const OSSL_PROVIDER *EVP_KEYMGMT_get0_provider(const EVP_KEYMGMT *keymgmt); 2935449: const char *EVP_KEYMGMT_get0_name(const EVP_KEYMGMT *keymgmt); 2935449: const char *EVP_KEYMGMT_get0_description(const EVP_KEYMGMT *keymgmt); 2935449: int EVP_KEYMGMT_is_a(const EVP_KEYMGMT *keymgmt, const char *name); 2935449: void EVP_KEYMGMT_do_all_provided(OSSL_LIB_CTX *libctx, 2935449: void (*fn)(EVP_KEYMGMT *keymgmt, void *arg), 2935449: void *arg); 2935449: int EVP_KEYMGMT_names_do_all(const EVP_KEYMGMT *keymgmt, 2935449: void (*fn)(const char *name, void *data), 2935449: void *data); 2935449: const OSSL_PARAM *EVP_KEYMGMT_gettable_params(const EVP_KEYMGMT *keymgmt); 2935449: const OSSL_PARAM *EVP_KEYMGMT_settable_params(const EVP_KEYMGMT *keymgmt); 2935449: const OSSL_PARAM *EVP_KEYMGMT_gen_settable_params(const EVP_KEYMGMT *keymgmt); 2935449: const OSSL_PARAM *EVP_KEYMGMT_gen_gettable_params(const EVP_KEYMGMT *keymgmt); 2935449: 2935449: EVP_SKEYMGMT *EVP_SKEYMGMT_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, 2935449: const char *properties); 2935449: int EVP_SKEYMGMT_up_ref(EVP_SKEYMGMT *keymgmt); 2935449: void EVP_SKEYMGMT_free(EVP_SKEYMGMT *keymgmt); 2935449: const OSSL_PROVIDER *EVP_SKEYMGMT_get0_provider(const EVP_SKEYMGMT *keymgmt); 2935449: const char *EVP_SKEYMGMT_get0_name(const EVP_SKEYMGMT *keymgmt); 2935449: const char *EVP_SKEYMGMT_get0_description(const EVP_SKEYMGMT *keymgmt); 2935449: int EVP_SKEYMGMT_is_a(const EVP_SKEYMGMT *keymgmt, const char *name); 2935449: void EVP_SKEYMGMT_do_all_provided(OSSL_LIB_CTX *libctx, 2935449: void (*fn)(EVP_SKEYMGMT *keymgmt, void *arg), 2935449: void *arg); 2935449: int EVP_SKEYMGMT_names_do_all(const EVP_SKEYMGMT *keymgmt, 2935449: void (*fn)(const char *name, void *data), 2935449: void *data); 2935449: const OSSL_PARAM *EVP_SKEYMGMT_get0_gen_settable_params(const EVP_SKEYMGMT *skeymgmt); 2935449: const OSSL_PARAM *EVP_SKEYMGMT_get0_imp_settable_params(const EVP_SKEYMGMT *skeymgmt); 2935449: 2935449: EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); 2935449: EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); 2935449: EVP_PKEY_CTX *EVP_PKEY_CTX_new_from_name(OSSL_LIB_CTX *libctx, 2935449: const char *name, 2935449: const char *propquery); 2935449: EVP_PKEY_CTX *EVP_PKEY_CTX_new_from_pkey(OSSL_LIB_CTX *libctx, 2935449: EVP_PKEY *pkey, const char *propquery); 2935449: EVP_PKEY_CTX *EVP_PKEY_CTX_dup(const EVP_PKEY_CTX *ctx); 2935449: void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_CTX_is_a(EVP_PKEY_CTX *ctx, const char *keytype); 2935449: 2935449: int EVP_PKEY_CTX_get_params(EVP_PKEY_CTX *ctx, OSSL_PARAM *params); 2935449: const OSSL_PARAM *EVP_PKEY_CTX_gettable_params(const EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_CTX_set_params(EVP_PKEY_CTX *ctx, const OSSL_PARAM *params); 2935449: const OSSL_PARAM *EVP_PKEY_CTX_settable_params(const EVP_PKEY_CTX *ctx); 2935449: 2935449: int EVP_PKEY_CTX_set_algor_params(EVP_PKEY_CTX *ctx, const X509_ALGOR *alg); 2935449: int EVP_PKEY_CTX_get_algor_params(EVP_PKEY_CTX *ctx, X509_ALGOR *alg); 2935449: int EVP_PKEY_CTX_get_algor(EVP_PKEY_CTX *ctx, X509_ALGOR **alg); 2935449: 2935449: int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, 2935449: int cmd, int p1, void *p2); 2935449: int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, 2935449: const char *value); 2935449: int EVP_PKEY_CTX_ctrl_uint64(EVP_PKEY_CTX *ctx, int keytype, int optype, 2935449: int cmd, uint64_t value); 2935449: 2935449: int EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str); 2935449: int EVP_PKEY_CTX_hex2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *hex); 2935449: 2935449: int EVP_PKEY_CTX_md(EVP_PKEY_CTX *ctx, int optype, int cmd, const char *md); 2935449: 2935449: int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); 2935449: void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); 2935449: 2935449: EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, 2935449: const unsigned char *key, int keylen); 2935449: EVP_PKEY *EVP_PKEY_new_raw_private_key_ex(OSSL_LIB_CTX *libctx, 2935449: const char *keytype, 2935449: const char *propq, 2935449: const unsigned char *priv, size_t len); 2935449: EVP_PKEY *EVP_PKEY_new_raw_private_key(int type, ENGINE *e, 2935449: const unsigned char *priv, 2935449: size_t len); 2935449: EVP_PKEY *EVP_PKEY_new_raw_public_key_ex(OSSL_LIB_CTX *libctx, 2935449: const char *keytype, const char *propq, 2935449: const unsigned char *pub, size_t len); 2935449: EVP_PKEY *EVP_PKEY_new_raw_public_key(int type, ENGINE *e, 2935449: const unsigned char *pub, 2935449: size_t len); 2935449: int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, unsigned char *priv, 2935449: size_t *len); 2935449: int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, unsigned char *pub, 2935449: size_t *len); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: EVP_PKEY *EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv, 2935449: size_t len, const EVP_CIPHER *cipher); 2935449: 2935449: 2935449: void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); 2935449: void *EVP_PKEY_CTX_get_data(const EVP_PKEY_CTX *ctx); 2935449: EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); 2935449: 2935449: EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); 2935449: 2935449: void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); 2935449: void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); 2935449: 2935449: int EVP_PKEY_CTX_set_signature(EVP_PKEY_CTX *pctx, 2935449: const unsigned char *sig, size_t siglen); 2935449: 2935449: void EVP_SIGNATURE_free(EVP_SIGNATURE *signature); 2935449: int EVP_SIGNATURE_up_ref(EVP_SIGNATURE *signature); 2935449: OSSL_PROVIDER *EVP_SIGNATURE_get0_provider(const EVP_SIGNATURE *signature); 2935449: EVP_SIGNATURE *EVP_SIGNATURE_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, 2935449: const char *properties); 2935449: int EVP_SIGNATURE_is_a(const EVP_SIGNATURE *signature, const char *name); 2935449: const char *EVP_SIGNATURE_get0_name(const EVP_SIGNATURE *signature); 2935449: const char *EVP_SIGNATURE_get0_description(const EVP_SIGNATURE *signature); 2935449: void EVP_SIGNATURE_do_all_provided(OSSL_LIB_CTX *libctx, 2935449: void (*fn)(EVP_SIGNATURE *signature, 2935449: void *data), 2935449: void *data); 2935449: int EVP_SIGNATURE_names_do_all(const EVP_SIGNATURE *signature, 2935449: void (*fn)(const char *name, void *data), 2935449: void *data); 2935449: const OSSL_PARAM *EVP_SIGNATURE_gettable_ctx_params(const EVP_SIGNATURE *sig); 2935449: const OSSL_PARAM *EVP_SIGNATURE_settable_ctx_params(const EVP_SIGNATURE *sig); 2935449: 2935449: void EVP_ASYM_CIPHER_free(EVP_ASYM_CIPHER *cipher); 2935449: int EVP_ASYM_CIPHER_up_ref(EVP_ASYM_CIPHER *cipher); 2935449: OSSL_PROVIDER *EVP_ASYM_CIPHER_get0_provider(const EVP_ASYM_CIPHER *cipher); 2935449: EVP_ASYM_CIPHER *EVP_ASYM_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, 2935449: const char *properties); 2935449: int EVP_ASYM_CIPHER_is_a(const EVP_ASYM_CIPHER *cipher, const char *name); 2935449: const char *EVP_ASYM_CIPHER_get0_name(const EVP_ASYM_CIPHER *cipher); 2935449: const char *EVP_ASYM_CIPHER_get0_description(const EVP_ASYM_CIPHER *cipher); 2935449: void EVP_ASYM_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx, 2935449: void (*fn)(EVP_ASYM_CIPHER *cipher, 2935449: void *arg), 2935449: void *arg); 2935449: int EVP_ASYM_CIPHER_names_do_all(const EVP_ASYM_CIPHER *cipher, 2935449: void (*fn)(const char *name, void *data), 2935449: void *data); 2935449: const OSSL_PARAM *EVP_ASYM_CIPHER_gettable_ctx_params(const EVP_ASYM_CIPHER *ciph); 2935449: const OSSL_PARAM *EVP_ASYM_CIPHER_settable_ctx_params(const EVP_ASYM_CIPHER *ciph); 2935449: 2935449: void EVP_KEM_free(EVP_KEM *wrap); 2935449: int EVP_KEM_up_ref(EVP_KEM *wrap); 2935449: OSSL_PROVIDER *EVP_KEM_get0_provider(const EVP_KEM *wrap); 2935449: EVP_KEM *EVP_KEM_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, 2935449: const char *properties); 2935449: int EVP_KEM_is_a(const EVP_KEM *wrap, const char *name); 2935449: const char *EVP_KEM_get0_name(const EVP_KEM *wrap); 2935449: const char *EVP_KEM_get0_description(const EVP_KEM *wrap); 2935449: void EVP_KEM_do_all_provided(OSSL_LIB_CTX *libctx, 2935449: void (*fn)(EVP_KEM *wrap, void *arg), void *arg); 2935449: int EVP_KEM_names_do_all(const EVP_KEM *wrap, 2935449: void (*fn)(const char *name, void *data), void *data); 2935449: const OSSL_PARAM *EVP_KEM_gettable_ctx_params(const EVP_KEM *kem); 2935449: const OSSL_PARAM *EVP_KEM_settable_ctx_params(const EVP_KEM *kem); 2935449: 2935449: int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_sign_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); 2935449: int EVP_PKEY_sign_init_ex2(EVP_PKEY_CTX *ctx, 2935449: EVP_SIGNATURE *algo, const OSSL_PARAM params[]); 2935449: int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, 2935449: unsigned char *sig, size_t *siglen, 2935449: const unsigned char *tbs, size_t tbslen); 2935449: int EVP_PKEY_sign_message_init(EVP_PKEY_CTX *ctx, 2935449: EVP_SIGNATURE *algo, const OSSL_PARAM params[]); 2935449: int EVP_PKEY_sign_message_update(EVP_PKEY_CTX *ctx, 2935449: const unsigned char *in, size_t inlen); 2935449: int EVP_PKEY_sign_message_final(EVP_PKEY_CTX *ctx, 2935449: unsigned char *sig, size_t *siglen); 2935449: int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_verify_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); 2935449: int EVP_PKEY_verify_init_ex2(EVP_PKEY_CTX *ctx, 2935449: EVP_SIGNATURE *algo, const OSSL_PARAM params[]); 2935449: int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, 2935449: const unsigned char *sig, size_t siglen, 2935449: const unsigned char *tbs, size_t tbslen); 2935449: int EVP_PKEY_verify_message_init(EVP_PKEY_CTX *ctx, 2935449: EVP_SIGNATURE *algo, const OSSL_PARAM params[]); 2935449: int EVP_PKEY_verify_message_update(EVP_PKEY_CTX *ctx, 2935449: const unsigned char *in, size_t inlen); 2935449: int EVP_PKEY_verify_message_final(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_verify_recover_init_ex(EVP_PKEY_CTX *ctx, 2935449: const OSSL_PARAM params[]); 2935449: int EVP_PKEY_verify_recover_init_ex2(EVP_PKEY_CTX *ctx, 2935449: EVP_SIGNATURE *algo, 2935449: const OSSL_PARAM params[]); 2935449: int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, 2935449: unsigned char *rout, size_t *routlen, 2935449: const unsigned char *sig, size_t siglen); 2935449: int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_encrypt_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); 2935449: int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, 2935449: unsigned char *out, size_t *outlen, 2935449: const unsigned char *in, size_t inlen); 2935449: int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_decrypt_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); 2935449: int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, 2935449: unsigned char *out, size_t *outlen, 2935449: const unsigned char *in, size_t inlen); 2935449: 2935449: int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_derive_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); 2935449: int EVP_PKEY_derive_set_peer_ex(EVP_PKEY_CTX *ctx, EVP_PKEY *peer, 2935449: int validate_peer); 2935449: int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); 2935449: int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); 2935449: 2935449: int EVP_PKEY_encapsulate_init(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); 2935449: int EVP_PKEY_auth_encapsulate_init(EVP_PKEY_CTX *ctx, EVP_PKEY *authpriv, 2935449: const OSSL_PARAM params[]); 2935449: int EVP_PKEY_encapsulate(EVP_PKEY_CTX *ctx, 2935449: unsigned char *wrappedkey, size_t *wrappedkeylen, 2935449: unsigned char *genkey, size_t *genkeylen); 2935449: int EVP_PKEY_decapsulate_init(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); 2935449: int EVP_PKEY_auth_decapsulate_init(EVP_PKEY_CTX *ctx, EVP_PKEY *authpub, 2935449: const OSSL_PARAM params[]); 2935449: int EVP_PKEY_decapsulate(EVP_PKEY_CTX *ctx, 2935449: unsigned char *unwrapped, size_t *unwrappedlen, 2935449: const unsigned char *wrapped, size_t wrappedlen); 2935449: typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx); 2935449: 2935449: int EVP_PKEY_fromdata_init(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_fromdata(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey, int selection, 2935449: OSSL_PARAM param[]); 2935449: const OSSL_PARAM *EVP_PKEY_fromdata_settable(EVP_PKEY_CTX *ctx, int selection); 2935449: 2935449: int EVP_PKEY_todata(const EVP_PKEY *pkey, int selection, OSSL_PARAM **params); 2935449: int EVP_PKEY_export(const EVP_PKEY *pkey, int selection, 2935449: OSSL_CALLBACK *export_cb, void *export_cbarg); 2935449: 2935449: const OSSL_PARAM *EVP_PKEY_gettable_params(const EVP_PKEY *pkey); 2935449: int EVP_PKEY_get_params(const EVP_PKEY *pkey, OSSL_PARAM params[]); 2935449: int EVP_PKEY_get_int_param(const EVP_PKEY *pkey, const char *key_name, 2935449: int *out); 2935449: int EVP_PKEY_get_size_t_param(const EVP_PKEY *pkey, const char *key_name, 2935449: size_t *out); 2935449: int EVP_PKEY_get_bn_param(const EVP_PKEY *pkey, const char *key_name, 2935449: BIGNUM **bn); 2935449: int EVP_PKEY_get_utf8_string_param(const EVP_PKEY *pkey, const char *key_name, 2935449: char *str, size_t max_buf_sz, size_t *out_sz); 2935449: int EVP_PKEY_get_octet_string_param(const EVP_PKEY *pkey, const char *key_name, 2935449: unsigned char *buf, size_t max_buf_sz, 2935449: size_t *out_sz); 2935449: 2935449: const OSSL_PARAM *EVP_PKEY_settable_params(const EVP_PKEY *pkey); 2935449: int EVP_PKEY_set_params(EVP_PKEY *pkey, OSSL_PARAM params[]); 2935449: int EVP_PKEY_set_int_param(EVP_PKEY *pkey, const char *key_name, int in); 2935449: int EVP_PKEY_set_size_t_param(EVP_PKEY *pkey, const char *key_name, size_t in); 2935449: int EVP_PKEY_set_bn_param(EVP_PKEY *pkey, const char *key_name, 2935449: const BIGNUM *bn); 2935449: int EVP_PKEY_set_utf8_string_param(EVP_PKEY *pkey, const char *key_name, 2935449: const char *str); 2935449: int EVP_PKEY_set_octet_string_param(EVP_PKEY *pkey, const char *key_name, 2935449: const unsigned char *buf, size_t bsize); 2935449: 2935449: int EVP_PKEY_get_ec_point_conv_form(const EVP_PKEY *pkey); 2935449: int EVP_PKEY_get_field_type(const EVP_PKEY *pkey); 2935449: 2935449: EVP_PKEY *EVP_PKEY_Q_keygen(OSSL_LIB_CTX *libctx, const char *propq, 2935449: const char *type, ...); 2935449: int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); 2935449: int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); 2935449: int EVP_PKEY_generate(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); 2935449: int EVP_PKEY_check(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_public_check(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_public_check_quick(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_param_check_quick(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_private_check(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_pairwise_check(EVP_PKEY_CTX *ctx); 2935449: 2935449: 2935449: 2935449: int EVP_PKEY_set_ex_data(EVP_PKEY *key, int idx, void *arg); 2935449: void *EVP_PKEY_get_ex_data(const EVP_PKEY *key, int idx); 2935449: 2935449: void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); 2935449: EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); 2935449: 2935449: int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, 2935449: int (*init) (EVP_PKEY_CTX *ctx)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_copy 2935449: (EVP_PKEY_METHOD *pmeth, int (*copy) (EVP_PKEY_CTX *dst, 2935449: const EVP_PKEY_CTX *src)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_cleanup 2935449: (EVP_PKEY_METHOD *pmeth, void (*cleanup) (EVP_PKEY_CTX *ctx)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_paramgen 2935449: (EVP_PKEY_METHOD *pmeth, int (*paramgen_init) (EVP_PKEY_CTX *ctx), 2935449: int (*paramgen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_keygen 2935449: (EVP_PKEY_METHOD *pmeth, int (*keygen_init) (EVP_PKEY_CTX *ctx), 2935449: int (*keygen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_sign 2935449: (EVP_PKEY_METHOD *pmeth, int (*sign_init) (EVP_PKEY_CTX *ctx), 2935449: int (*sign) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, 2935449: const unsigned char *tbs, size_t tbslen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_verify 2935449: (EVP_PKEY_METHOD *pmeth, int (*verify_init) (EVP_PKEY_CTX *ctx), 2935449: int (*verify) (EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen, 2935449: const unsigned char *tbs, size_t tbslen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_verify_recover 2935449: (EVP_PKEY_METHOD *pmeth, int (*verify_recover_init) (EVP_PKEY_CTX *ctx), 2935449: int (*verify_recover) (EVP_PKEY_CTX *ctx, unsigned char *sig, 2935449: size_t *siglen, const unsigned char *tbs, 2935449: size_t tbslen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_signctx 2935449: (EVP_PKEY_METHOD *pmeth, int (*signctx_init) (EVP_PKEY_CTX *ctx, 2935449: EVP_MD_CTX *mctx), 2935449: int (*signctx) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, 2935449: EVP_MD_CTX *mctx)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_verifyctx 2935449: (EVP_PKEY_METHOD *pmeth, int (*verifyctx_init) (EVP_PKEY_CTX *ctx, 2935449: EVP_MD_CTX *mctx), 2935449: int (*verifyctx) (EVP_PKEY_CTX *ctx, const unsigned char *sig, int siglen, 2935449: EVP_MD_CTX *mctx)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_encrypt 2935449: (EVP_PKEY_METHOD *pmeth, int (*encrypt_init) (EVP_PKEY_CTX *ctx), 2935449: int (*encryptfn) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, 2935449: const unsigned char *in, size_t inlen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_decrypt 2935449: (EVP_PKEY_METHOD *pmeth, int (*decrypt_init) (EVP_PKEY_CTX *ctx), 2935449: int (*decrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, 2935449: const unsigned char *in, size_t inlen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_derive 2935449: (EVP_PKEY_METHOD *pmeth, int (*derive_init) (EVP_PKEY_CTX *ctx), 2935449: int (*derive) (EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_ctrl 2935449: (EVP_PKEY_METHOD *pmeth, int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, 2935449: void *p2), 2935449: int (*ctrl_str) (EVP_PKEY_CTX *ctx, const char *type, const char *value)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_digestsign 2935449: (EVP_PKEY_METHOD *pmeth, 2935449: int (*digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen, 2935449: const unsigned char *tbs, size_t tbslen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_digestverify 2935449: (EVP_PKEY_METHOD *pmeth, 2935449: int (*digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig, 2935449: size_t siglen, const unsigned char *tbs, 2935449: size_t tbslen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_check 2935449: (EVP_PKEY_METHOD *pmeth, int (*check) (EVP_PKEY *pkey)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_public_check 2935449: (EVP_PKEY_METHOD *pmeth, int (*check) (EVP_PKEY *pkey)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_param_check 2935449: (EVP_PKEY_METHOD *pmeth, int (*check) (EVP_PKEY *pkey)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_set_digest_custom 2935449: (EVP_PKEY_METHOD *pmeth, int (*digest_custom) (EVP_PKEY_CTX *ctx, 2935449: EVP_MD_CTX *mctx)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_init 2935449: (const EVP_PKEY_METHOD *pmeth, int (**pinit) (EVP_PKEY_CTX *ctx)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_copy 2935449: (const EVP_PKEY_METHOD *pmeth, int (**pcopy) (EVP_PKEY_CTX *dst, 2935449: const EVP_PKEY_CTX *src)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_cleanup 2935449: (const EVP_PKEY_METHOD *pmeth, void (**pcleanup) (EVP_PKEY_CTX *ctx)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_paramgen 2935449: (const EVP_PKEY_METHOD *pmeth, int (**pparamgen_init) (EVP_PKEY_CTX *ctx), 2935449: int (**pparamgen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_keygen 2935449: (const EVP_PKEY_METHOD *pmeth, int (**pkeygen_init) (EVP_PKEY_CTX *ctx), 2935449: int (**pkeygen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_sign 2935449: (const EVP_PKEY_METHOD *pmeth, int (**psign_init) (EVP_PKEY_CTX *ctx), 2935449: int (**psign) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, 2935449: const unsigned char *tbs, size_t tbslen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_verify 2935449: (const EVP_PKEY_METHOD *pmeth, int (**pverify_init) (EVP_PKEY_CTX *ctx), 2935449: int (**pverify) (EVP_PKEY_CTX *ctx, const unsigned char *sig, 2935449: size_t siglen, const unsigned char *tbs, size_t tbslen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_verify_recover 2935449: (const EVP_PKEY_METHOD *pmeth, 2935449: int (**pverify_recover_init) (EVP_PKEY_CTX *ctx), 2935449: int (**pverify_recover) (EVP_PKEY_CTX *ctx, unsigned char *sig, 2935449: size_t *siglen, const unsigned char *tbs, 2935449: size_t tbslen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_signctx 2935449: (const EVP_PKEY_METHOD *pmeth, 2935449: int (**psignctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx), 2935449: int (**psignctx) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, 2935449: EVP_MD_CTX *mctx)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_verifyctx 2935449: (const EVP_PKEY_METHOD *pmeth, 2935449: int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx), 2935449: int (**pverifyctx) (EVP_PKEY_CTX *ctx, const unsigned char *sig, 2935449: int siglen, EVP_MD_CTX *mctx)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_encrypt 2935449: (const EVP_PKEY_METHOD *pmeth, int (**pencrypt_init) (EVP_PKEY_CTX *ctx), 2935449: int (**pencryptfn) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, 2935449: const unsigned char *in, size_t inlen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_decrypt 2935449: (const EVP_PKEY_METHOD *pmeth, int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), 2935449: int (**pdecrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, 2935449: const unsigned char *in, size_t inlen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_derive 2935449: (const EVP_PKEY_METHOD *pmeth, int (**pderive_init) (EVP_PKEY_CTX *ctx), 2935449: int (**pderive) (EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_ctrl 2935449: (const EVP_PKEY_METHOD *pmeth, 2935449: int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, void *p2), 2935449: int (**pctrl_str) (EVP_PKEY_CTX *ctx, const char *type, 2935449: const char *value)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_digestsign 2935449: (const EVP_PKEY_METHOD *pmeth, 2935449: int (**digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen, 2935449: const unsigned char *tbs, size_t tbslen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_digestverify 2935449: (const EVP_PKEY_METHOD *pmeth, 2935449: int (**digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig, 2935449: size_t siglen, const unsigned char *tbs, 2935449: size_t tbslen)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_check 2935449: (const EVP_PKEY_METHOD *pmeth, int (**pcheck) (EVP_PKEY *pkey)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_public_check 2935449: (const EVP_PKEY_METHOD *pmeth, int (**pcheck) (EVP_PKEY *pkey)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_param_check 2935449: (const EVP_PKEY_METHOD *pmeth, int (**pcheck) (EVP_PKEY *pkey)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EVP_PKEY_meth_get_digest_custom 2935449: (const EVP_PKEY_METHOD *pmeth, 2935449: int (**pdigest_custom) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)); 2935449: 2935449: 2935449: void EVP_KEYEXCH_free(EVP_KEYEXCH *exchange); 2935449: int EVP_KEYEXCH_up_ref(EVP_KEYEXCH *exchange); 2935449: EVP_KEYEXCH *EVP_KEYEXCH_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, 2935449: const char *properties); 2935449: OSSL_PROVIDER *EVP_KEYEXCH_get0_provider(const EVP_KEYEXCH *exchange); 2935449: int EVP_KEYEXCH_is_a(const EVP_KEYEXCH *keyexch, const char *name); 2935449: const char *EVP_KEYEXCH_get0_name(const EVP_KEYEXCH *keyexch); 2935449: const char *EVP_KEYEXCH_get0_description(const EVP_KEYEXCH *keyexch); 2935449: void EVP_KEYEXCH_do_all_provided(OSSL_LIB_CTX *libctx, 2935449: void (*fn)(EVP_KEYEXCH *keyexch, void *data), 2935449: void *data); 2935449: int EVP_KEYEXCH_names_do_all(const EVP_KEYEXCH *keyexch, 2935449: void (*fn)(const char *name, void *data), 2935449: void *data); 2935449: const OSSL_PARAM *EVP_KEYEXCH_gettable_ctx_params(const EVP_KEYEXCH *keyexch); 2935449: const OSSL_PARAM *EVP_KEYEXCH_settable_ctx_params(const EVP_KEYEXCH *keyexch); 2935449: 2935449: void EVP_add_alg_module(void); 2935449: 2935449: int EVP_PKEY_CTX_set_group_name(EVP_PKEY_CTX *ctx, const char *name); 2935449: int EVP_PKEY_CTX_get_group_name(EVP_PKEY_CTX *ctx, char *name, size_t namelen); 2935449: int EVP_PKEY_get_group_name(const EVP_PKEY *pkey, char *name, size_t name_sz, 2935449: size_t *gname_len); 2935449: 2935449: OSSL_LIB_CTX *EVP_PKEY_CTX_get0_libctx(EVP_PKEY_CTX *ctx); 2935449: const char *EVP_PKEY_CTX_get0_propq(const EVP_PKEY_CTX *ctx); 2935449: const OSSL_PROVIDER *EVP_PKEY_CTX_get0_provider(const EVP_PKEY_CTX *ctx); 2935449: 2935449: int EVP_SKEY_is_a(const EVP_SKEY *skey, const char *name); 2935449: EVP_SKEY *EVP_SKEY_import(OSSL_LIB_CTX *libctx, const char *skeymgmtname, const char *propquery, 2935449: int selection, const OSSL_PARAM *params); 2935449: EVP_SKEY *EVP_SKEY_generate(OSSL_LIB_CTX *libctx, const char *skeymgmtname, 2935449: const char *propquery, const OSSL_PARAM *params); 2935449: EVP_SKEY *EVP_SKEY_import_raw_key(OSSL_LIB_CTX *libctx, const char *skeymgmtname, 2935449: unsigned char *key, size_t keylen, 2935449: const char *propquery); 2935449: int EVP_SKEY_get0_raw_key(const EVP_SKEY *skey, const unsigned char **key, 2935449: size_t *len); 2935449: const char *EVP_SKEY_get0_key_id(const EVP_SKEY *skey); 2935449: int EVP_SKEY_export(const EVP_SKEY *skey, int selection, 2935449: OSSL_CALLBACK *export_cb, void *export_cbarg); 2935449: int EVP_SKEY_up_ref(EVP_SKEY *skey); 2935449: void EVP_SKEY_free(EVP_SKEY *skey); 2935449: const char *EVP_SKEY_get0_skeymgmt_name(const EVP_SKEY *skey); 2935449: const char *EVP_SKEY_get0_provider_name(const EVP_SKEY *skey); 2935449: EVP_SKEY *EVP_SKEY_to_provider(EVP_SKEY *skey, OSSL_LIB_CTX *libctx, 2935449: OSSL_PROVIDER *prov, const char *propquery); 2935449: 2935449: 2935449: } 2935449: # 30 "/usr/include/openssl/x509.h" 2 3 4 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/ec.h" 1 3 4 2935449: # 13 "/usr/include/openssl/ec.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 22 "/usr/include/openssl/ec.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EVP_PKEY_CTX_set_ec_paramgen_curve_nid(EVP_PKEY_CTX *ctx, int nid); 2935449: int EVP_PKEY_CTX_set_ec_param_enc(EVP_PKEY_CTX *ctx, int param_enc); 2935449: int EVP_PKEY_CTX_set_ecdh_cofactor_mode(EVP_PKEY_CTX *ctx, int cofactor_mode); 2935449: int EVP_PKEY_CTX_get_ecdh_cofactor_mode(EVP_PKEY_CTX *ctx); 2935449: 2935449: int EVP_PKEY_CTX_set_ecdh_kdf_type(EVP_PKEY_CTX *ctx, int kdf); 2935449: int EVP_PKEY_CTX_get_ecdh_kdf_type(EVP_PKEY_CTX *ctx); 2935449: 2935449: int EVP_PKEY_CTX_set_ecdh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); 2935449: int EVP_PKEY_CTX_get_ecdh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); 2935449: 2935449: int EVP_PKEY_CTX_set_ecdh_kdf_outlen(EVP_PKEY_CTX *ctx, int len); 2935449: int EVP_PKEY_CTX_get_ecdh_kdf_outlen(EVP_PKEY_CTX *ctx, int *len); 2935449: 2935449: int EVP_PKEY_CTX_set0_ecdh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char *ukm, 2935449: int len); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_PKEY_CTX_get0_ecdh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char **ukm); 2935449: # 78 "/usr/include/openssl/ec.h" 3 4 2935449: typedef enum { 2935449: 2935449: 2935449: POINT_CONVERSION_COMPRESSED = 2, 2935449: 2935449: POINT_CONVERSION_UNCOMPRESSED = 4, 2935449: 2935449: 2935449: POINT_CONVERSION_HYBRID = 6 2935449: } point_conversion_form_t; 2935449: 2935449: const char *OSSL_EC_curve_nid2name(int nid); 2935449: # 100 "/usr/include/openssl/ec.h" 3 4 2935449: # 1 "/usr/include/openssl/ecerr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/ecerr.h" 3 4 2935449: 2935449: # 101 "/usr/include/openssl/ec.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef struct ec_method_st EC_METHOD; 2935449: 2935449: typedef struct ec_group_st EC_GROUP; 2935449: typedef struct ec_point_st EC_POINT; 2935449: typedef struct ecpk_parameters_st ECPKPARAMETERS; 2935449: typedef struct ec_parameters_st ECPARAMETERS; 2935449: # 124 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EC_METHOD *EC_GFp_simple_method(void); 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EC_METHOD *EC_GFp_mont_method(void); 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EC_METHOD *EC_GFp_nist_method(void); 2935449: # 161 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EC_METHOD *EC_GF2m_simple_method(void); 2935449: # 174 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_GROUP_clear_free(EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_METHOD_get_field_type(const EC_METHOD *meth); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void EC_GROUP_free(EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); 2935449: # 221 "/usr/include/openssl/ec.h" 3 4 2935449: int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, 2935449: const BIGNUM *order, const BIGNUM *cofactor); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_GROUP_order_bits(const EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, 2935449: BN_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const BIGNUM *EC_GROUP_get0_cofactor(const EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_GROUP_get_curve_name(const EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const BIGNUM *EC_GROUP_get0_field(const EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_GROUP_get_field_type(const EC_GROUP *group); 2935449: 2935449: void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); 2935449: int EC_GROUP_get_asn1_flag(const EC_GROUP *group); 2935449: 2935449: void EC_GROUP_set_point_conversion_form(EC_GROUP *group, 2935449: point_conversion_form_t form); 2935449: point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); 2935449: 2935449: unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); 2935449: size_t EC_GROUP_get_seed_len(const EC_GROUP *); 2935449: size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); 2935449: # 316 "/usr/include/openssl/ec.h" 3 4 2935449: int EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, 2935449: const BIGNUM *b, BN_CTX *ctx); 2935449: # 329 "/usr/include/openssl/ec.h" 3 4 2935449: int EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, 2935449: BN_CTX *ctx); 2935449: # 342 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_GROUP_set_curve_GFp(EC_GROUP *group, 2935449: const BIGNUM *p, 2935449: const BIGNUM *a, 2935449: const BIGNUM *b, 2935449: BN_CTX *ctx); 2935449: # 357 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_GROUP_get_curve_GFp(const EC_GROUP *group, 2935449: BIGNUM *p, 2935449: BIGNUM *a, BIGNUM *b, 2935449: BN_CTX *ctx); 2935449: # 372 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_GROUP_set_curve_GF2m(EC_GROUP *group, 2935449: const BIGNUM *p, 2935449: const BIGNUM *a, 2935449: const BIGNUM *b, 2935449: BN_CTX *ctx); 2935449: # 387 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, 2935449: BIGNUM *p, 2935449: BIGNUM *a, BIGNUM *b, 2935449: BN_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_GROUP_get_degree(const EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); 2935449: # 435 "/usr/include/openssl/ec.h" 3 4 2935449: EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, 2935449: const BIGNUM *b, BN_CTX *ctx); 2935449: # 446 "/usr/include/openssl/ec.h" 3 4 2935449: EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, 2935449: const BIGNUM *b, BN_CTX *ctx); 2935449: # 460 "/usr/include/openssl/ec.h" 3 4 2935449: EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[], 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: # 476 "/usr/include/openssl/ec.h" 3 4 2935449: OSSL_PARAM *EC_GROUP_to_params(const EC_GROUP *group, OSSL_LIB_CTX *libctx, 2935449: const char *propq, BN_CTX *bnctx); 2935449: # 488 "/usr/include/openssl/ec.h" 3 4 2935449: EC_GROUP *EC_GROUP_new_by_curve_name_ex(OSSL_LIB_CTX *libctx, const char *propq, 2935449: int nid); 2935449: # 499 "/usr/include/openssl/ec.h" 3 4 2935449: EC_GROUP *EC_GROUP_new_by_curve_name(int nid); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group, 2935449: ECPARAMETERS *params); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group, 2935449: ECPKPARAMETERS *params); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef struct { 2935449: int nid; 2935449: const char *comment; 2935449: } EC_builtin_curve; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); 2935449: 2935449: const char *EC_curve_nid2nist(int nid); 2935449: int EC_curve_nist2nid(const char *name); 2935449: int EC_GROUP_check_named_curve(const EC_GROUP *group, int nist_only, 2935449: BN_CTX *ctx); 2935449: # 563 "/usr/include/openssl/ec.h" 3 4 2935449: EC_POINT *EC_POINT_new(const EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: void EC_POINT_free(EC_POINT *point); 2935449: 2935449: 2935449: 2935449: 2935449: void EC_POINT_clear_free(EC_POINT *point); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); 2935449: # 613 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_POINT_set_Jprojective_coordinates_GFp 2935449: (const EC_GROUP *group, EC_POINT *p, 2935449: const BIGNUM *x, const BIGNUM *y, const BIGNUM *z, 2935449: BN_CTX *ctx); 2935449: # 627 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_POINT_get_Jprojective_coordinates_GFp 2935449: (const EC_GROUP *group, const EC_POINT *p, 2935449: BIGNUM *x, BIGNUM *y, BIGNUM *z, BN_CTX *ctx); 2935449: # 640 "/usr/include/openssl/ec.h" 3 4 2935449: int EC_POINT_set_affine_coordinates(const EC_GROUP *group, EC_POINT *p, 2935449: const BIGNUM *x, const BIGNUM *y, 2935449: BN_CTX *ctx); 2935449: # 652 "/usr/include/openssl/ec.h" 3 4 2935449: int EC_POINT_get_affine_coordinates(const EC_GROUP *group, const EC_POINT *p, 2935449: BIGNUM *x, BIGNUM *y, BN_CTX *ctx); 2935449: # 665 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_POINT_set_affine_coordinates_GFp 2935449: (const EC_GROUP *group, EC_POINT *p, 2935449: const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); 2935449: # 678 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_POINT_get_affine_coordinates_GFp 2935449: (const EC_GROUP *group, const EC_POINT *p, 2935449: BIGNUM *x, BIGNUM *y, BN_CTX *ctx); 2935449: # 691 "/usr/include/openssl/ec.h" 3 4 2935449: int EC_POINT_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *p, 2935449: const BIGNUM *x, int y_bit, 2935449: BN_CTX *ctx); 2935449: # 705 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_POINT_set_compressed_coordinates_GFp 2935449: (const EC_GROUP *group, EC_POINT *p, 2935449: const BIGNUM *x, int y_bit, BN_CTX *ctx); 2935449: # 718 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_POINT_set_affine_coordinates_GF2m 2935449: (const EC_GROUP *group, EC_POINT *p, 2935449: const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); 2935449: # 731 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_POINT_get_affine_coordinates_GF2m 2935449: (const EC_GROUP *group, const EC_POINT *p, 2935449: BIGNUM *x, BIGNUM *y, BN_CTX *ctx); 2935449: # 744 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_POINT_set_compressed_coordinates_GF2m 2935449: (const EC_GROUP *group, EC_POINT *p, 2935449: const BIGNUM *x, int y_bit, BN_CTX *ctx); 2935449: # 760 "/usr/include/openssl/ec.h" 3 4 2935449: size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, 2935449: point_conversion_form_t form, 2935449: unsigned char *buf, size_t len, BN_CTX *ctx); 2935449: # 772 "/usr/include/openssl/ec.h" 3 4 2935449: int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, 2935449: const unsigned char *buf, size_t len, BN_CTX *ctx); 2935449: # 783 "/usr/include/openssl/ec.h" 3 4 2935449: size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point, 2935449: point_conversion_form_t form, 2935449: unsigned char **pbuf, BN_CTX *ctx); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) BIGNUM *EC_POINT_point2bn(const EC_GROUP *, 2935449: const EC_POINT *, 2935449: point_conversion_form_t form, 2935449: BIGNUM *, BN_CTX *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_POINT *EC_POINT_bn2point(const EC_GROUP *, 2935449: const BIGNUM *, 2935449: EC_POINT *, BN_CTX *); 2935449: 2935449: 2935449: char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, 2935449: point_conversion_form_t form, BN_CTX *); 2935449: EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, 2935449: EC_POINT *, BN_CTX *); 2935449: # 815 "/usr/include/openssl/ec.h" 3 4 2935449: int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, 2935449: const EC_POINT *b, BN_CTX *ctx); 2935449: # 825 "/usr/include/openssl/ec.h" 3 4 2935449: int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, 2935449: BN_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, 2935449: BN_CTX *ctx); 2935449: # 859 "/usr/include/openssl/ec.h" 3 4 2935449: int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, 2935449: BN_CTX *ctx); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_POINT_make_affine(const EC_GROUP *group, 2935449: EC_POINT *point, BN_CTX *ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, 2935449: EC_POINT *points[], BN_CTX *ctx); 2935449: # 878 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, 2935449: const BIGNUM *n, size_t num, 2935449: const EC_POINT *p[], const BIGNUM *m[], 2935449: BN_CTX *ctx); 2935449: # 893 "/usr/include/openssl/ec.h" 3 4 2935449: int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, 2935449: const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_GROUP_have_precompute_mult(const EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern const ASN1_ITEM * ECPKPARAMETERS_it(void); 2935449: extern ECPKPARAMETERS *ECPKPARAMETERS_new(void); extern void ECPKPARAMETERS_free(ECPKPARAMETERS *a); 2935449: extern const ASN1_ITEM * ECPARAMETERS_it(void); 2935449: extern ECPARAMETERS *ECPARAMETERS_new(void); extern void ECPARAMETERS_free(ECPARAMETERS *a); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int EC_GROUP_get_basis_type(const EC_GROUP *); 2935449: 2935449: int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); 2935449: int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, 2935449: unsigned int *k2, unsigned int *k3); 2935449: 2935449: 2935449: EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); 2935449: int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); 2935449: # 945 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ECPKParameters_print(BIO *bp, const EC_GROUP *x, 2935449: int off); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, 2935449: int off); 2935449: # 980 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *EC_KEY_new_ex(OSSL_LIB_CTX *ctx, const char *propq); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *EC_KEY_new(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_get_flags(const EC_KEY *key); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_set_flags(EC_KEY *key, int flags); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_clear_flags(EC_KEY *key, int flags); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_decoded_from_explicit_params(const EC_KEY *key); 2935449: # 1006 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *EC_KEY_new_by_curve_name_ex(OSSL_LIB_CTX *ctx, 2935449: const char *propq, 2935449: int nid); 2935449: # 1017 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *EC_KEY_new_by_curve_name(int nid); 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_free(EC_KEY *key); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *EC_KEY_dup(const EC_KEY *src); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_up_ref(EC_KEY *key); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) ENGINE *EC_KEY_get0_engine(const EC_KEY *eckey); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) unsigned EC_KEY_get_enc_flags(const EC_KEY *key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_set_conv_form(EC_KEY *eckey, 2935449: point_conversion_form_t cform); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void *EC_KEY_get_ex_data(const EC_KEY *key, int idx); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_generate_key(EC_KEY *key); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_check_key(const EC_KEY *key); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_can_sign(const EC_KEY *eckey); 2935449: # 1141 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, 2935449: BIGNUM *x, 2935449: BIGNUM *y); 2935449: # 1152 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) size_t EC_KEY_key2buf(const EC_KEY *key, 2935449: point_conversion_form_t form, 2935449: unsigned char **pbuf, BN_CTX *ctx); 2935449: # 1164 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, 2935449: size_t len, BN_CTX *ctx); 2935449: # 1174 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_oct2priv(EC_KEY *key, const unsigned char *buf, 2935449: size_t len); 2935449: # 1185 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) size_t EC_KEY_priv2oct(const EC_KEY *key, 2935449: unsigned char *buf, size_t len); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) size_t EC_KEY_priv2buf(const EC_KEY *eckey, 2935449: unsigned char **pbuf); 2935449: # 1206 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *d2i_ECPrivateKey(EC_KEY **key, 2935449: const unsigned char **in, 2935449: long len); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_ECPrivateKey(const EC_KEY *key, 2935449: unsigned char **out); 2935449: # 1230 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *d2i_ECParameters(EC_KEY **key, 2935449: const unsigned char **in, 2935449: long len); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_ECParameters(const EC_KEY *key, 2935449: unsigned char **out); 2935449: # 1255 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *o2i_ECPublicKey(EC_KEY **key, 2935449: const unsigned char **in, long len); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2o_ECPublicKey(const EC_KEY *key, unsigned char **out); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ECParameters_print(BIO *bp, const EC_KEY *key); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ECParameters_print_fp(FILE *fp, const EC_KEY *key); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EC_KEY_METHOD *EC_KEY_OpenSSL(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EC_KEY_METHOD *EC_KEY_get_default_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_set_default_method(const EC_KEY_METHOD *meth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EC_KEY_METHOD *EC_KEY_get_method(const EC_KEY *key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *EC_KEY_new_method(ENGINE *engine); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, 2935449: const unsigned char *Z, size_t Zlen, 2935449: const unsigned char *sinfo, 2935449: size_t sinfolen, const EVP_MD *md); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ECDH_compute_key(void *out, size_t outlen, 2935449: const EC_POINT *pub_key, 2935449: const EC_KEY *ecdh, 2935449: void *(*KDF)(const void *in, 2935449: size_t inlen, void *out, 2935449: size_t *outlen)); 2935449: 2935449: 2935449: typedef struct ECDSA_SIG_st ECDSA_SIG; 2935449: 2935449: 2935449: 2935449: 2935449: ECDSA_SIG *ECDSA_SIG_new(void); 2935449: 2935449: 2935449: 2935449: 2935449: void ECDSA_SIG_free(ECDSA_SIG *sig); 2935449: # 1342 "/usr/include/openssl/ec.h" 3 4 2935449: extern ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **a, const unsigned char **in, long len); extern int i2d_ECDSA_SIG(const ECDSA_SIG *a, unsigned char **out); 2935449: # 1357 "/usr/include/openssl/ec.h" 3 4 2935449: void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); 2935449: 2935449: 2935449: 2935449: 2935449: const BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig); 2935449: 2935449: 2935449: 2935449: 2935449: const BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); 2935449: # 1384 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, 2935449: int dgst_len, EC_KEY *eckey); 2935449: # 1397 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, 2935449: int dgstlen, const BIGNUM *kinv, 2935449: const BIGNUM *rp, EC_KEY *eckey); 2935449: # 1410 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, 2935449: const ECDSA_SIG *sig, EC_KEY *eckey); 2935449: # 1420 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, 2935449: BIGNUM **kinv, BIGNUM **rp); 2935449: # 1433 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ECDSA_sign(int type, const unsigned char *dgst, 2935449: int dgstlen, unsigned char *sig, 2935449: unsigned int *siglen, EC_KEY *eckey); 2935449: # 1450 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ECDSA_sign_ex(int type, const unsigned char *dgst, 2935449: int dgstlen, unsigned char *sig, 2935449: unsigned int *siglen, const BIGNUM *kinv, 2935449: const BIGNUM *rp, EC_KEY *eckey); 2935449: # 1466 "/usr/include/openssl/ec.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ECDSA_verify(int type, const unsigned char *dgst, 2935449: int dgstlen, const unsigned char *sig, 2935449: int siglen, EC_KEY *eckey); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ECDSA_size(const EC_KEY *eckey); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY_METHOD *EC_KEY_METHOD_new(const EC_KEY_METHOD *meth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_METHOD_free(EC_KEY_METHOD *meth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_METHOD_set_init 2935449: (EC_KEY_METHOD *meth, 2935449: int (*init)(EC_KEY *key), 2935449: void (*finish)(EC_KEY *key), 2935449: int (*copy)(EC_KEY *dest, const EC_KEY *src), 2935449: int (*set_group)(EC_KEY *key, const EC_GROUP *grp), 2935449: int (*set_private)(EC_KEY *key, const BIGNUM *priv_key), 2935449: int (*set_public)(EC_KEY *key, const EC_POINT *pub_key)); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth, 2935449: int (*keygen)(EC_KEY *key)); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_METHOD_set_compute_key 2935449: (EC_KEY_METHOD *meth, 2935449: int (*ckey)(unsigned char **psec, size_t *pseclen, 2935449: const EC_POINT *pub_key, const EC_KEY *ecdh)); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_METHOD_set_sign 2935449: (EC_KEY_METHOD *meth, 2935449: int (*sign)(int type, const unsigned char *dgst, 2935449: int dlen, unsigned char *sig, 2935449: unsigned int *siglen, 2935449: const BIGNUM *kinv, const BIGNUM *r, 2935449: EC_KEY *eckey), 2935449: int (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, 2935449: BIGNUM **kinvp, BIGNUM **rp), 2935449: ECDSA_SIG *(*sign_sig)(const unsigned char *dgst, 2935449: int dgst_len, 2935449: const BIGNUM *in_kinv, 2935449: const BIGNUM *in_r, 2935449: EC_KEY *eckey)); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_METHOD_set_verify 2935449: (EC_KEY_METHOD *meth, 2935449: int (*verify)(int type, const unsigned 2935449: char *dgst, int dgst_len, 2935449: const unsigned char *sigbuf, 2935449: int sig_len, EC_KEY *eckey), 2935449: int (*verify_sig)(const unsigned char *dgst, 2935449: int dgst_len, const ECDSA_SIG *sig, 2935449: EC_KEY *eckey)); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_METHOD_get_init 2935449: (const EC_KEY_METHOD *meth, 2935449: int (**pinit)(EC_KEY *key), 2935449: void (**pfinish)(EC_KEY *key), 2935449: int (**pcopy)(EC_KEY *dest, const EC_KEY *src), 2935449: int (**pset_group)(EC_KEY *key, const EC_GROUP *grp), 2935449: int (**pset_private)(EC_KEY *key, const BIGNUM *priv_key), 2935449: int (**pset_public)(EC_KEY *key, const EC_POINT *pub_key)); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_METHOD_get_keygen 2935449: (const EC_KEY_METHOD *meth, int (**pkeygen)(EC_KEY *key)); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_METHOD_get_compute_key 2935449: (const EC_KEY_METHOD *meth, 2935449: int (**pck)(unsigned char **psec, 2935449: size_t *pseclen, 2935449: const EC_POINT *pub_key, 2935449: const EC_KEY *ecdh)); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_METHOD_get_sign 2935449: (const EC_KEY_METHOD *meth, 2935449: int (**psign)(int type, const unsigned char *dgst, 2935449: int dlen, unsigned char *sig, 2935449: unsigned int *siglen, 2935449: const BIGNUM *kinv, const BIGNUM *r, 2935449: EC_KEY *eckey), 2935449: int (**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, 2935449: BIGNUM **kinvp, BIGNUM **rp), 2935449: ECDSA_SIG *(**psign_sig)(const unsigned char *dgst, 2935449: int dgst_len, 2935449: const BIGNUM *in_kinv, 2935449: const BIGNUM *in_r, 2935449: EC_KEY *eckey)); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void EC_KEY_METHOD_get_verify 2935449: (const EC_KEY_METHOD *meth, 2935449: int (**pverify)(int type, const unsigned 2935449: char *dgst, int dgst_len, 2935449: const unsigned char *sigbuf, 2935449: int sig_len, EC_KEY *eckey), 2935449: int (**pverify_sig)(const unsigned char *dgst, 2935449: int dgst_len, 2935449: const ECDSA_SIG *sig, 2935449: EC_KEY *eckey)); 2935449: # 1586 "/usr/include/openssl/ec.h" 3 4 2935449: } 2935449: # 34 "/usr/include/openssl/x509.h" 2 3 4 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/rsa.h" 1 3 4 2935449: # 12 "/usr/include/openssl/rsa.h" 3 4 2935449: 2935449: # 24 "/usr/include/openssl/rsa.h" 3 4 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 25 "/usr/include/openssl/rsa.h" 2 3 4 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/rsaerr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/rsaerr.h" 3 4 2935449: 2935449: # 29 "/usr/include/openssl/rsa.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: # 122 "/usr/include/openssl/rsa.h" 3 4 2935449: int EVP_PKEY_CTX_set_rsa_padding(EVP_PKEY_CTX *ctx, int pad_mode); 2935449: int EVP_PKEY_CTX_get_rsa_padding(EVP_PKEY_CTX *ctx, int *pad_mode); 2935449: 2935449: int EVP_PKEY_CTX_set_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int saltlen); 2935449: int EVP_PKEY_CTX_get_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int *saltlen); 2935449: 2935449: int EVP_PKEY_CTX_set_rsa_keygen_bits(EVP_PKEY_CTX *ctx, int bits); 2935449: int EVP_PKEY_CTX_set1_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp); 2935449: int EVP_PKEY_CTX_set_rsa_keygen_primes(EVP_PKEY_CTX *ctx, int primes); 2935449: int EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(EVP_PKEY_CTX *ctx, int saltlen); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_PKEY_CTX_set_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp); 2935449: # 149 "/usr/include/openssl/rsa.h" 3 4 2935449: int EVP_PKEY_CTX_set_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); 2935449: int EVP_PKEY_CTX_set_rsa_mgf1_md_name(EVP_PKEY_CTX *ctx, const char *mdname, 2935449: const char *mdprops); 2935449: int EVP_PKEY_CTX_get_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); 2935449: int EVP_PKEY_CTX_get_rsa_mgf1_md_name(EVP_PKEY_CTX *ctx, char *name, 2935449: size_t namelen); 2935449: int EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); 2935449: int EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md_name(EVP_PKEY_CTX *ctx, 2935449: const char *mdname); 2935449: 2935449: int EVP_PKEY_CTX_set_rsa_pss_keygen_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); 2935449: int EVP_PKEY_CTX_set_rsa_pss_keygen_md_name(EVP_PKEY_CTX *ctx, 2935449: const char *mdname, 2935449: const char *mdprops); 2935449: 2935449: int EVP_PKEY_CTX_set_rsa_oaep_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); 2935449: int EVP_PKEY_CTX_set_rsa_oaep_md_name(EVP_PKEY_CTX *ctx, const char *mdname, 2935449: const char *mdprops); 2935449: int EVP_PKEY_CTX_get_rsa_oaep_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); 2935449: int EVP_PKEY_CTX_get_rsa_oaep_md_name(EVP_PKEY_CTX *ctx, char *name, 2935449: size_t namelen); 2935449: int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx, void *label, int llen); 2935449: int EVP_PKEY_CTX_get0_rsa_oaep_label(EVP_PKEY_CTX *ctx, unsigned char **label); 2935449: # 212 "/usr/include/openssl/rsa.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *RSA_new(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *RSA_new_method(ENGINE *engine); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_bits(const RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_size(const RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_security_bits(const RSA *rsa); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_set0_crt_params(RSA *r, 2935449: BIGNUM *dmp1, BIGNUM *dmq1, 2935449: BIGNUM *iqmp); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_set0_multi_prime_params(RSA *r, 2935449: BIGNUM *primes[], 2935449: BIGNUM *exps[], 2935449: BIGNUM *coeffs[], 2935449: int pnum); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void RSA_get0_key(const RSA *r, 2935449: const BIGNUM **n, const BIGNUM **e, 2935449: const BIGNUM **d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void RSA_get0_factors(const RSA *r, 2935449: const BIGNUM **p, const BIGNUM **q); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_get_multi_prime_extra_count(const RSA *r); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_get0_multi_prime_factors(const RSA *r, 2935449: const BIGNUM *primes[]); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void RSA_get0_crt_params(const RSA *r, 2935449: const BIGNUM **dmp1, 2935449: const BIGNUM **dmq1, 2935449: const BIGNUM **iqmp); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_get0_multi_prime_crt_params(const RSA *r, const BIGNUM *exps[], 2935449: const BIGNUM *coeffs[]); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *RSA_get0_n(const RSA *d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *RSA_get0_e(const RSA *d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *RSA_get0_d(const RSA *d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *RSA_get0_p(const RSA *d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *RSA_get0_q(const RSA *d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *RSA_get0_dmp1(const RSA *r); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *RSA_get0_dmq1(const RSA *r); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *RSA_get0_iqmp(const RSA *r); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const RSA_PSS_PARAMS *RSA_get0_pss_params(const RSA *r); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void RSA_clear_flags(RSA *r, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_test_flags(const RSA *r, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void RSA_set_flags(RSA *r, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_get_version(RSA *r); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) ENGINE *RSA_get0_engine(const RSA *r); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "0.9.8"))) RSA *RSA_generate_key(int bits, unsigned long e, void 2935449: (*callback) (int, int, void *), 2935449: void *cb_arg); 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, 2935449: BN_GENCB *cb); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_generate_multi_prime_key(RSA *rsa, int bits, 2935449: int primes, BIGNUM *e, 2935449: BN_GENCB *cb); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_X931_derive_ex(RSA *rsa, BIGNUM *p1, BIGNUM *p2, 2935449: BIGNUM *q1, BIGNUM *q2, 2935449: const BIGNUM *Xp1, const BIGNUM *Xp2, 2935449: const BIGNUM *Xp, const BIGNUM *Xq1, 2935449: const BIGNUM *Xq2, const BIGNUM *Xq, 2935449: const BIGNUM *e, BN_GENCB *cb); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_X931_generate_key_ex(RSA *rsa, int bits, 2935449: const BIGNUM *e, 2935449: BN_GENCB *cb); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_check_key(const RSA *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_check_key_ex(const RSA *, BN_GENCB *cb); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_public_encrypt(int flen, const unsigned char *from, unsigned char *to, 2935449: RSA *rsa, int padding); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_private_encrypt(int flen, const unsigned char *from, unsigned char *to, 2935449: RSA *rsa, int padding); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_public_decrypt(int flen, const unsigned char *from, unsigned char *to, 2935449: RSA *rsa, int padding); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_private_decrypt(int flen, const unsigned char *from, unsigned char *to, 2935449: RSA *rsa, int padding); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void RSA_free(RSA *r); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_up_ref(RSA *r); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_flags(const RSA *r); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void RSA_set_default_method(const RSA_METHOD *meth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const RSA_METHOD *RSA_get_default_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const RSA_METHOD *RSA_null_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const RSA_METHOD *RSA_get_method(const RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const RSA_METHOD *RSA_PKCS1_OpenSSL(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *d2i_RSAPublicKey(RSA **a, const unsigned char **in, long len); __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_RSAPublicKey(const RSA *a, unsigned char **out); __attribute__((deprecated("Since OpenSSL " "3.0"))) const ASN1_ITEM * RSAPublicKey_it(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *d2i_RSAPrivateKey(RSA **a, const unsigned char **in, long len); __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_RSAPrivateKey(const RSA *a, unsigned char **out); __attribute__((deprecated("Since OpenSSL " "3.0"))) const ASN1_ITEM * RSAPrivateKey_it(void); 2935449: 2935449: 2935449: 2935449: int RSA_pkey_ctx_ctrl(EVP_PKEY_CTX *ctx, int optype, int cmd, int p1, void *p2); 2935449: 2935449: struct rsa_pss_params_st { 2935449: X509_ALGOR *hashAlgorithm; 2935449: X509_ALGOR *maskGenAlgorithm; 2935449: ASN1_INTEGER *saltLength; 2935449: ASN1_INTEGER *trailerField; 2935449: 2935449: X509_ALGOR *maskHash; 2935449: }; 2935449: 2935449: extern RSA_PSS_PARAMS *RSA_PSS_PARAMS_new(void); extern void RSA_PSS_PARAMS_free(RSA_PSS_PARAMS *a); extern RSA_PSS_PARAMS *d2i_RSA_PSS_PARAMS(RSA_PSS_PARAMS **a, const unsigned char **in, long len); extern int i2d_RSA_PSS_PARAMS(const RSA_PSS_PARAMS *a, unsigned char **out); extern const ASN1_ITEM * RSA_PSS_PARAMS_it(void); 2935449: extern RSA_PSS_PARAMS *RSA_PSS_PARAMS_dup(const RSA_PSS_PARAMS *a); 2935449: 2935449: typedef struct rsa_oaep_params_st { 2935449: X509_ALGOR *hashFunc; 2935449: X509_ALGOR *maskGenFunc; 2935449: X509_ALGOR *pSourceFunc; 2935449: 2935449: X509_ALGOR *maskHash; 2935449: } RSA_OAEP_PARAMS; 2935449: 2935449: extern RSA_OAEP_PARAMS *RSA_OAEP_PARAMS_new(void); extern void RSA_OAEP_PARAMS_free(RSA_OAEP_PARAMS *a); extern RSA_OAEP_PARAMS *d2i_RSA_OAEP_PARAMS(RSA_OAEP_PARAMS **a, const unsigned char **in, long len); extern int i2d_RSA_OAEP_PARAMS(const RSA_OAEP_PARAMS *a, unsigned char **out); extern const ASN1_ITEM * RSA_OAEP_PARAMS_it(void); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_print_fp(FILE *fp, const RSA *r, int offset); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_print(BIO *bp, const RSA *r, int offset); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_sign(int type, const unsigned char *m, 2935449: unsigned int m_length, unsigned char *sigret, 2935449: unsigned int *siglen, RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_verify(int type, const unsigned char *m, 2935449: unsigned int m_length, 2935449: const unsigned char *sigbuf, 2935449: unsigned int siglen, RSA *rsa); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_sign_ASN1_OCTET_STRING(int type, 2935449: const unsigned char *m, unsigned int m_length, 2935449: unsigned char *sigret, unsigned int *siglen, 2935449: RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_verify_ASN1_OCTET_STRING(int type, 2935449: const unsigned char *m, unsigned int m_length, 2935449: unsigned char *sigbuf, unsigned int siglen, 2935449: RSA *rsa); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void RSA_blinding_off(RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, 2935449: const unsigned char *f, int fl); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, 2935449: const unsigned char *f, int fl, 2935449: int rsa_len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, 2935449: const unsigned char *f, int fl); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, 2935449: const unsigned char *f, int fl, 2935449: int rsa_len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int PKCS1_MGF1(unsigned char *mask, long len, 2935449: const unsigned char *seed, long seedlen, 2935449: const EVP_MD *dgst); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, 2935449: const unsigned char *f, int fl, 2935449: const unsigned char *p, int pl); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, 2935449: const unsigned char *f, int fl, int rsa_len, 2935449: const unsigned char *p, int pl); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, 2935449: const unsigned char *from, int flen, 2935449: const unsigned char *param, int plen, 2935449: const EVP_MD *md, const EVP_MD *mgf1md); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, 2935449: const unsigned char *from, int flen, 2935449: int num, 2935449: const unsigned char *param, int plen, 2935449: const EVP_MD *md, const EVP_MD *mgf1md); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_padding_add_none(unsigned char *to, int tlen, 2935449: const unsigned char *f, int fl); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_padding_check_none(unsigned char *to, int tlen, 2935449: const unsigned char *f, int fl, 2935449: int rsa_len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_padding_add_X931(unsigned char *to, int tlen, 2935449: const unsigned char *f, int fl); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_padding_check_X931(unsigned char *to, int tlen, 2935449: const unsigned char *f, int fl, 2935449: int rsa_len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_X931_hash_id(int nid); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, 2935449: const EVP_MD *Hash, const unsigned char *EM, 2935449: int sLen); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, 2935449: const unsigned char *mHash, const EVP_MD *Hash, 2935449: int sLen); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, 2935449: const EVP_MD *Hash, const EVP_MD *mgf1Hash, 2935449: const unsigned char *EM, int sLen); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, 2935449: const unsigned char *mHash, 2935449: const EVP_MD *Hash, const EVP_MD *mgf1Hash, 2935449: int sLen); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_set_ex_data(RSA *r, int idx, void *arg); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void *RSA_get_ex_data(const RSA *r, int idx); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *RSAPublicKey_dup(const RSA *a); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *RSAPrivateKey_dup(const RSA *a); 2935449: # 484 "/usr/include/openssl/rsa.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA_METHOD *RSA_meth_new(const char *name, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void RSA_meth_free(RSA_METHOD *meth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const char *RSA_meth_get0_name(const RSA_METHOD *meth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_meth_set1_name(RSA_METHOD *meth, 2935449: const char *name); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_meth_get_flags(const RSA_METHOD *meth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_meth_set_flags(RSA_METHOD *meth, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void *RSA_meth_get0_app_data(const RSA_METHOD *meth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int RSA_meth_set0_app_data(RSA_METHOD *meth, 2935449: void *app_data); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*RSA_meth_get_pub_enc(const RSA_METHOD *meth)) (int flen, 2935449: const unsigned char *from, 2935449: unsigned char *to, 2935449: RSA *rsa, int padding); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_meth_set_pub_enc(RSA_METHOD *rsa, 2935449: int (*pub_enc) (int flen, const unsigned char *from, 2935449: unsigned char *to, RSA *rsa, 2935449: int padding)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*RSA_meth_get_pub_dec(const RSA_METHOD *meth)) (int flen, 2935449: const unsigned char *from, 2935449: unsigned char *to, 2935449: RSA *rsa, int padding); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_meth_set_pub_dec(RSA_METHOD *rsa, 2935449: int (*pub_dec) (int flen, const unsigned char *from, 2935449: unsigned char *to, RSA *rsa, 2935449: int padding)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*RSA_meth_get_priv_enc(const RSA_METHOD *meth)) (int flen, 2935449: const unsigned char *from, 2935449: unsigned char *to, 2935449: RSA *rsa, int padding); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_meth_set_priv_enc(RSA_METHOD *rsa, 2935449: int (*priv_enc) (int flen, const unsigned char *from, 2935449: unsigned char *to, RSA *rsa, 2935449: int padding)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*RSA_meth_get_priv_dec(const RSA_METHOD *meth)) (int flen, 2935449: const unsigned char *from, 2935449: unsigned char *to, 2935449: RSA *rsa, int padding); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_meth_set_priv_dec(RSA_METHOD *rsa, 2935449: int (*priv_dec) (int flen, const unsigned char *from, 2935449: unsigned char *to, RSA *rsa, 2935449: int padding)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*RSA_meth_get_mod_exp(const RSA_METHOD *meth)) (BIGNUM *r0, 2935449: const BIGNUM *i, 2935449: RSA *rsa, BN_CTX *ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_meth_set_mod_exp(RSA_METHOD *rsa, 2935449: int (*mod_exp) (BIGNUM *r0, const BIGNUM *i, RSA *rsa, 2935449: BN_CTX *ctx)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth)) (BIGNUM *r, 2935449: const BIGNUM *a, 2935449: const BIGNUM *p, 2935449: const BIGNUM *m, 2935449: BN_CTX *ctx, 2935449: BN_MONT_CTX *m_ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_meth_set_bn_mod_exp(RSA_METHOD *rsa, 2935449: int (*bn_mod_exp) (BIGNUM *r, 2935449: const BIGNUM *a, 2935449: const BIGNUM *p, 2935449: const BIGNUM *m, 2935449: BN_CTX *ctx, 2935449: BN_MONT_CTX *m_ctx)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_meth_set_init(RSA_METHOD *rsa, int (*init) (RSA *rsa)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_meth_set_finish(RSA_METHOD *rsa, int (*finish) (RSA *rsa)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*RSA_meth_get_sign(const RSA_METHOD *meth)) (int type, 2935449: const unsigned char *m, 2935449: unsigned int m_length, 2935449: unsigned char *sigret, 2935449: unsigned int *siglen, 2935449: const RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_meth_set_sign(RSA_METHOD *rsa, 2935449: int (*sign) (int type, const unsigned char *m, 2935449: unsigned int m_length, 2935449: unsigned char *sigret, unsigned int *siglen, 2935449: const RSA *rsa)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*RSA_meth_get_verify(const RSA_METHOD *meth)) (int dtype, 2935449: const unsigned char *m, 2935449: unsigned int m_length, 2935449: const unsigned char *sigbuf, 2935449: unsigned int siglen, 2935449: const RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_meth_set_verify(RSA_METHOD *rsa, 2935449: int (*verify) (int dtype, const unsigned char *m, 2935449: unsigned int m_length, 2935449: const unsigned char *sigbuf, 2935449: unsigned int siglen, const RSA *rsa)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*RSA_meth_get_keygen(const RSA_METHOD *meth)) (RSA *rsa, int bits, 2935449: BIGNUM *e, BN_GENCB *cb); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_meth_set_keygen(RSA_METHOD *rsa, 2935449: int (*keygen) (RSA *rsa, int bits, BIGNUM *e, 2935449: BN_GENCB *cb)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int (*RSA_meth_get_multi_prime_keygen(const RSA_METHOD *meth)) (RSA *rsa, 2935449: int bits, 2935449: int primes, 2935449: BIGNUM *e, 2935449: BN_GENCB *cb); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int RSA_meth_set_multi_prime_keygen(RSA_METHOD *meth, 2935449: int (*keygen) (RSA *rsa, int bits, 2935449: int primes, BIGNUM *e, 2935449: BN_GENCB *cb)); 2935449: 2935449: 2935449: 2935449: } 2935449: # 37 "/usr/include/openssl/x509.h" 2 3 4 2935449: # 1 "/usr/include/openssl/dsa.h" 1 3 4 2935449: # 12 "/usr/include/openssl/dsa.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 21 "/usr/include/openssl/dsa.h" 2 3 4 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/stdlib.h" 1 3 4 2935449: # 23 "/usr/include/openssl/dsa.h" 2 3 4 2935449: # 31 "/usr/include/openssl/dsa.h" 3 4 2935449: # 1 "/usr/include/openssl/dh.h" 1 3 4 2935449: # 12 "/usr/include/openssl/dh.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 21 "/usr/include/openssl/dh.h" 2 3 4 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/stdlib.h" 1 3 4 2935449: # 27 "/usr/include/openssl/dh.h" 2 3 4 2935449: # 38 "/usr/include/openssl/dh.h" 3 4 2935449: int EVP_PKEY_CTX_set_dh_paramgen_type(EVP_PKEY_CTX *ctx, int typ); 2935449: int EVP_PKEY_CTX_set_dh_paramgen_gindex(EVP_PKEY_CTX *ctx, int gindex); 2935449: int EVP_PKEY_CTX_set_dh_paramgen_seed(EVP_PKEY_CTX *ctx, 2935449: const unsigned char *seed, 2935449: size_t seedlen); 2935449: int EVP_PKEY_CTX_set_dh_paramgen_prime_len(EVP_PKEY_CTX *ctx, int pbits); 2935449: int EVP_PKEY_CTX_set_dh_paramgen_subprime_len(EVP_PKEY_CTX *ctx, int qlen); 2935449: int EVP_PKEY_CTX_set_dh_paramgen_generator(EVP_PKEY_CTX *ctx, int gen); 2935449: int EVP_PKEY_CTX_set_dh_nid(EVP_PKEY_CTX *ctx, int nid); 2935449: int EVP_PKEY_CTX_set_dh_rfc5114(EVP_PKEY_CTX *ctx, int gen); 2935449: int EVP_PKEY_CTX_set_dhx_rfc5114(EVP_PKEY_CTX *ctx, int gen); 2935449: int EVP_PKEY_CTX_set_dh_pad(EVP_PKEY_CTX *ctx, int pad); 2935449: 2935449: int EVP_PKEY_CTX_set_dh_kdf_type(EVP_PKEY_CTX *ctx, int kdf); 2935449: int EVP_PKEY_CTX_get_dh_kdf_type(EVP_PKEY_CTX *ctx); 2935449: int EVP_PKEY_CTX_set0_dh_kdf_oid(EVP_PKEY_CTX *ctx, ASN1_OBJECT *oid); 2935449: int EVP_PKEY_CTX_get0_dh_kdf_oid(EVP_PKEY_CTX *ctx, ASN1_OBJECT **oid); 2935449: int EVP_PKEY_CTX_set_dh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); 2935449: int EVP_PKEY_CTX_get_dh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); 2935449: int EVP_PKEY_CTX_set_dh_kdf_outlen(EVP_PKEY_CTX *ctx, int len); 2935449: int EVP_PKEY_CTX_get_dh_kdf_outlen(EVP_PKEY_CTX *ctx, int *len); 2935449: int EVP_PKEY_CTX_set0_dh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char *ukm, int len); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int EVP_PKEY_CTX_get0_dh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char **ukm); 2935449: # 96 "/usr/include/openssl/dh.h" 3 4 2935449: # 1 "/usr/include/openssl/dherr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/dherr.h" 3 4 2935449: 2935449: # 97 "/usr/include/openssl/dh.h" 2 3 4 2935449: # 144 "/usr/include/openssl/dh.h" 3 4 2935449: extern const ASN1_ITEM * DHparams_it(void); 2935449: # 201 "/usr/include/openssl/dh.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DH *DHparams_dup(const DH *a); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const DH_METHOD *DH_OpenSSL(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DH_set_default_method(const DH_METHOD *meth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const DH_METHOD *DH_get_default_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_set_method(DH *dh, const DH_METHOD *meth); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DH *DH_new_method(ENGINE *engine); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DH *DH_new(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DH_free(DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_up_ref(DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_bits(const DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_size(const DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_security_bits(const DH *dh); 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_set_ex_data(DH *d, int idx, void *arg); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void *DH_get_ex_data(const DH *d, int idx); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_generate_parameters_ex(DH *dh, int prime_len, 2935449: int generator, 2935449: BN_GENCB *cb); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_check_params_ex(const DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_check_ex(const DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_check_params(const DH *dh, int *ret); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_check(const DH *dh, int *codes); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, 2935449: int *codes); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_generate_key(DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_compute_key(unsigned char *key, 2935449: const BIGNUM *pub_key, DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_compute_key_padded(unsigned char *key, 2935449: const BIGNUM *pub_key, DH *dh); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DH *d2i_DHparams(DH **a, const unsigned char **in, long len); __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_DHparams(const DH *a, unsigned char **out); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DH *d2i_DHxparams(DH **a, const unsigned char **in, long len); __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_DHxparams(const DH *a, unsigned char **out); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DHparams_print_fp(FILE *fp, const DH *x); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DHparams_print(BIO *bp, const DH *x); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DH *DH_get_1024_160(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DH *DH_get_2048_224(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DH *DH_get_2048_256(void); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DH *DH_new_by_nid(int nid); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_get_nid(const DH *dh); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_KDF_X9_42(unsigned char *out, size_t outlen, 2935449: const unsigned char *Z, size_t Zlen, 2935449: ASN1_OBJECT *key_oid, 2935449: const unsigned char *ukm, 2935449: size_t ukmlen, const EVP_MD *md); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DH_get0_pqg(const DH *dh, const BIGNUM **p, 2935449: const BIGNUM **q, const BIGNUM **g); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DH_get0_key(const DH *dh, const BIGNUM **pub_key, 2935449: const BIGNUM **priv_key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *DH_get0_p(const DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *DH_get0_q(const DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *DH_get0_g(const DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *DH_get0_priv_key(const DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *DH_get0_pub_key(const DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DH_clear_flags(DH *dh, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_test_flags(const DH *dh, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DH_set_flags(DH *dh, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) ENGINE *DH_get0_engine(DH *d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) long DH_get_length(const DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_set_length(DH *dh, long length); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DH_METHOD *DH_meth_new(const char *name, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DH_meth_free(DH_METHOD *dhm); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DH_METHOD *DH_meth_dup(const DH_METHOD *dhm); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const char *DH_meth_get0_name(const DH_METHOD *dhm); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_meth_set1_name(DH_METHOD *dhm, const char *name); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_meth_get_flags(const DH_METHOD *dhm); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_meth_set_flags(DH_METHOD *dhm, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void *DH_meth_get0_app_data(const DH_METHOD *dhm); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_meth_set_generate_key(DH_METHOD *dhm, 2935449: int (*generate_key) (DH *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DH_meth_get_compute_key(const DH_METHOD *dhm)) 2935449: (unsigned char *key, 2935449: const BIGNUM *pub_key, 2935449: DH *dh); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_meth_set_compute_key(DH_METHOD *dhm, 2935449: int (*compute_key) 2935449: (unsigned char *key, 2935449: const BIGNUM *pub_key, 2935449: DH *dh)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm)) 2935449: (const DH *, BIGNUM *, 2935449: const BIGNUM *, 2935449: const BIGNUM *, 2935449: const BIGNUM *, BN_CTX *, 2935449: BN_MONT_CTX *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_meth_set_bn_mod_exp(DH_METHOD *dhm, 2935449: int (*bn_mod_exp) 2935449: (const DH *, BIGNUM *, 2935449: const BIGNUM *, const BIGNUM *, 2935449: const BIGNUM *, BN_CTX *, 2935449: BN_MONT_CTX *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DH_meth_get_init(const DH_METHOD *dhm))(DH *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_meth_set_init(DH_METHOD *dhm, int (*init)(DH *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_meth_set_finish(DH_METHOD *dhm, int (*finish) (DH *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DH_meth_get_generate_params(const DH_METHOD *dhm)) 2935449: (DH *, int, int, 2935449: BN_GENCB *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DH_meth_set_generate_params(DH_METHOD *dhm, 2935449: int (*generate_params) 2935449: (DH *, int, int, 2935449: BN_GENCB *)); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "0.9.8"))) DH *DH_generate_parameters(int prime_len, int generator, 2935449: void (*callback) (int, int, 2935449: void *), 2935449: void *cb_arg); 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 32 "/usr/include/openssl/dsa.h" 2 3 4 2935449: 2935449: # 1 "/usr/include/openssl/dsaerr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/dsaerr.h" 3 4 2935449: 2935449: # 34 "/usr/include/openssl/dsa.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: int EVP_PKEY_CTX_set_dsa_paramgen_bits(EVP_PKEY_CTX *ctx, int nbits); 2935449: int EVP_PKEY_CTX_set_dsa_paramgen_q_bits(EVP_PKEY_CTX *ctx, int qbits); 2935449: int EVP_PKEY_CTX_set_dsa_paramgen_md_props(EVP_PKEY_CTX *ctx, 2935449: const char *md_name, 2935449: const char *md_properties); 2935449: int EVP_PKEY_CTX_set_dsa_paramgen_gindex(EVP_PKEY_CTX *ctx, int gindex); 2935449: int EVP_PKEY_CTX_set_dsa_paramgen_type(EVP_PKEY_CTX *ctx, const char *name); 2935449: int EVP_PKEY_CTX_set_dsa_paramgen_seed(EVP_PKEY_CTX *ctx, 2935449: const unsigned char *seed, 2935449: size_t seedlen); 2935449: int EVP_PKEY_CTX_set_dsa_paramgen_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); 2935449: # 66 "/usr/include/openssl/dsa.h" 3 4 2935449: typedef struct DSA_SIG_st DSA_SIG; 2935449: DSA_SIG *DSA_SIG_new(void); 2935449: void DSA_SIG_free(DSA_SIG *a); 2935449: extern DSA_SIG *d2i_DSA_SIG(DSA_SIG **a, const unsigned char **in, long len); extern int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **out); 2935449: void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); 2935449: int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s); 2935449: # 117 "/usr/include/openssl/dsa.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *DSAparams_dup(const DSA *a); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, 2935449: DSA *dsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_do_verify(const unsigned char *dgst, int dgst_len, 2935449: DSA_SIG *sig, DSA *dsa); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const DSA_METHOD *DSA_OpenSSL(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DSA_set_default_method(const DSA_METHOD *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const DSA_METHOD *DSA_get_default_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_set_method(DSA *dsa, const DSA_METHOD *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const DSA_METHOD *DSA_get_method(DSA *d); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *DSA_new(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *DSA_new_method(ENGINE *engine); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DSA_free(DSA *r); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_up_ref(DSA *r); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_size(const DSA *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_bits(const DSA *d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_security_bits(const DSA *d); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, 2935449: BIGNUM **kinvp, BIGNUM **rp); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_sign(int type, const unsigned char *dgst, 2935449: int dlen, unsigned char *sig, 2935449: unsigned int *siglen, DSA *dsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_verify(int type, const unsigned char *dgst, 2935449: int dgst_len, const unsigned char *sigbuf, 2935449: int siglen, DSA *dsa); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_set_ex_data(DSA *d, int idx, void *arg); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void *DSA_get_ex_data(const DSA *d, int idx); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **in, long len); __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_DSAPublicKey(const DSA *a, unsigned char **out); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **in, long len); __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_DSAPrivateKey(const DSA *a, unsigned char **out); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *d2i_DSAparams(DSA **a, const unsigned char **in, long len); __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_DSAparams(const DSA *a, unsigned char **out); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "0.9.8"))) 2935449: DSA *DSA_generate_parameters(int bits, unsigned char *seed, int seed_len, 2935449: int *counter_ret, unsigned long *h_ret, 2935449: void (*callback) (int, int, void *), 2935449: void *cb_arg); 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_generate_parameters_ex(DSA *dsa, int bits, 2935449: const unsigned char *seed, 2935449: int seed_len, 2935449: int *counter_ret, 2935449: unsigned long *h_ret, 2935449: BN_GENCB *cb); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_generate_key(DSA *a); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSAparams_print(BIO *bp, const DSA *x); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_print(BIO *bp, const DSA *x, int off); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSAparams_print_fp(FILE *fp, const DSA *x); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_print_fp(FILE *bp, const DSA *x, int off); 2935449: # 203 "/usr/include/openssl/dsa.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DH *DSA_dup_DH(const DSA *r); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DSA_get0_pqg(const DSA *d, const BIGNUM **p, 2935449: const BIGNUM **q, const BIGNUM **g); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, 2935449: const BIGNUM **priv_key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_set0_key(DSA *d, BIGNUM *pub_key, 2935449: BIGNUM *priv_key); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *DSA_get0_p(const DSA *d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *DSA_get0_q(const DSA *d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *DSA_get0_g(const DSA *d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *DSA_get0_pub_key(const DSA *d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const BIGNUM *DSA_get0_priv_key(const DSA *d); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DSA_clear_flags(DSA *d, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_test_flags(const DSA *d, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DSA_set_flags(DSA *d, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) ENGINE *DSA_get0_engine(DSA *d); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA_METHOD *DSA_meth_new(const char *name, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void DSA_meth_free(DSA_METHOD *dsam); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA_METHOD *DSA_meth_dup(const DSA_METHOD *dsam); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const char *DSA_meth_get0_name(const DSA_METHOD *dsam); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_meth_set1_name(DSA_METHOD *dsam, 2935449: const char *name); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_meth_get_flags(const DSA_METHOD *dsam); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_meth_set_flags(DSA_METHOD *dsam, int flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void *DSA_meth_get0_app_data(const DSA_METHOD *dsam); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_meth_set0_app_data(DSA_METHOD *dsam, 2935449: void *app_data); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA_SIG *(*DSA_meth_get_sign(const DSA_METHOD *dsam)) 2935449: (const unsigned char *, int, DSA *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_meth_set_sign(DSA_METHOD *dsam, 2935449: DSA_SIG *(*sign) (const unsigned char *, int, DSA *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DSA_meth_get_sign_setup(const DSA_METHOD *dsam)) 2935449: (DSA *, BN_CTX *, BIGNUM **, BIGNUM **); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_meth_set_sign_setup(DSA_METHOD *dsam, 2935449: int (*sign_setup) (DSA *, BN_CTX *, BIGNUM **, BIGNUM **)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DSA_meth_get_verify(const DSA_METHOD *dsam)) 2935449: (const unsigned char *, int, DSA_SIG *, DSA *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_meth_set_verify(DSA_METHOD *dsam, 2935449: int (*verify) (const unsigned char *, int, DSA_SIG *, DSA *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DSA_meth_get_mod_exp(const DSA_METHOD *dsam)) 2935449: (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, 2935449: const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_meth_set_mod_exp(DSA_METHOD *dsam, 2935449: int (*mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, 2935449: const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, 2935449: BN_MONT_CTX *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam)) 2935449: (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, 2935449: BN_CTX *, BN_MONT_CTX *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam, 2935449: int (*bn_mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, 2935449: const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_meth_set_init(DSA_METHOD *dsam, 2935449: int (*init)(DSA *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DSA_meth_get_finish(const DSA_METHOD *dsam))(DSA *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_meth_set_finish(DSA_METHOD *dsam, 2935449: int (*finish)(DSA *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DSA_meth_get_paramgen(const DSA_METHOD *dsam)) 2935449: (DSA *, int, const unsigned char *, int, int *, unsigned long *, 2935449: BN_GENCB *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_meth_set_paramgen(DSA_METHOD *dsam, 2935449: int (*paramgen) (DSA *, int, const unsigned char *, int, int *, 2935449: unsigned long *, BN_GENCB *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int (*DSA_meth_get_keygen(const DSA_METHOD *dsam))(DSA *); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int DSA_meth_set_keygen(DSA_METHOD *dsam, 2935449: int (*keygen) (DSA *)); 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 38 "/usr/include/openssl/x509.h" 2 3 4 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/sha.h" 1 3 4 2935449: # 12 "/usr/include/openssl/sha.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 21 "/usr/include/openssl/sha.h" 2 3 4 2935449: 2935449: 2935449: extern "C" { 2935449: # 42 "/usr/include/openssl/sha.h" 3 4 2935449: typedef struct SHAstate_st { 2935449: unsigned int h0, h1, h2, h3, h4; 2935449: unsigned int Nl, Nh; 2935449: unsigned int data[16]; 2935449: unsigned int num; 2935449: } SHA_CTX; 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA1_Init(SHA_CTX *c); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA1_Update(SHA_CTX *c, const void *data, size_t len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA1_Final(unsigned char *md, SHA_CTX *c); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void SHA1_Transform(SHA_CTX *c, const unsigned char *data); 2935449: 2935449: 2935449: unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef struct SHA256state_st { 2935449: unsigned int h[8]; 2935449: unsigned int Nl, Nh; 2935449: unsigned int data[16]; 2935449: unsigned int num, md_len; 2935449: } SHA256_CTX; 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA224_Init(SHA256_CTX *c); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA224_Update(SHA256_CTX *c, 2935449: const void *data, size_t len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA224_Final(unsigned char *md, SHA256_CTX *c); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA256_Init(SHA256_CTX *c); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA256_Update(SHA256_CTX *c, 2935449: const void *data, size_t len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA256_Final(unsigned char *md, SHA256_CTX *c); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void SHA256_Transform(SHA256_CTX *c, 2935449: const unsigned char *data); 2935449: 2935449: 2935449: unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); 2935449: unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); 2935449: # 110 "/usr/include/openssl/sha.h" 3 4 2935449: typedef struct SHA512state_st { 2935449: unsigned long long h[8]; 2935449: unsigned long long Nl, Nh; 2935449: union { 2935449: unsigned long long d[16]; 2935449: unsigned char p[(16*8)]; 2935449: } u; 2935449: unsigned int num, md_len; 2935449: } SHA512_CTX; 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA384_Init(SHA512_CTX *c); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA384_Update(SHA512_CTX *c, 2935449: const void *data, size_t len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA384_Final(unsigned char *md, SHA512_CTX *c); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA512_Init(SHA512_CTX *c); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA512_Update(SHA512_CTX *c, 2935449: const void *data, size_t len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SHA512_Final(unsigned char *md, SHA512_CTX *c); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void SHA512_Transform(SHA512_CTX *c, 2935449: const unsigned char *data); 2935449: 2935449: 2935449: unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); 2935449: unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); 2935449: 2935449: 2935449: } 2935449: # 42 "/usr/include/openssl/x509.h" 2 3 4 2935449: # 1 "/usr/include/openssl/x509err.h" 1 3 4 2935449: # 13 "/usr/include/openssl/x509err.h" 3 4 2935449: 2935449: # 43 "/usr/include/openssl/x509.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: struct stack_st_X509_NAME; typedef int (*sk_X509_NAME_compfunc)(const X509_NAME * const *a, const X509_NAME *const *b); typedef void (*sk_X509_NAME_freefunc)(X509_NAME *a); typedef X509_NAME * (*sk_X509_NAME_copyfunc)(const X509_NAME *a); static __attribute__((unused)) inline X509_NAME *ossl_check_X509_NAME_type(X509_NAME *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_X509_NAME_sk_type(const struct stack_st_X509_NAME *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_X509_NAME_sk_type(struct stack_st_X509_NAME *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_X509_NAME_compfunc_type(sk_X509_NAME_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_X509_NAME_copyfunc_type(sk_X509_NAME_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_X509_NAME_freefunc_type(sk_X509_NAME_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 78 "/usr/include/openssl/x509.h" 3 4 2935449: struct stack_st_X509; typedef int (*sk_X509_compfunc)(const X509 * const *a, const X509 *const *b); typedef void (*sk_X509_freefunc)(X509 *a); typedef X509 * (*sk_X509_copyfunc)(const X509 *a); static __attribute__((unused)) inline X509 *ossl_check_X509_type(X509 *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_X509_sk_type(const struct stack_st_X509 *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_X509_sk_type(struct stack_st_X509 *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_X509_compfunc_type(sk_X509_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_X509_copyfunc_type(sk_X509_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_X509_freefunc_type(sk_X509_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 104 "/usr/include/openssl/x509.h" 3 4 2935449: struct stack_st_X509_REVOKED; typedef int (*sk_X509_REVOKED_compfunc)(const X509_REVOKED * const *a, const X509_REVOKED *const *b); typedef void (*sk_X509_REVOKED_freefunc)(X509_REVOKED *a); typedef X509_REVOKED * (*sk_X509_REVOKED_copyfunc)(const X509_REVOKED *a); static __attribute__((unused)) inline X509_REVOKED *ossl_check_X509_REVOKED_type(X509_REVOKED *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_X509_REVOKED_sk_type(const struct stack_st_X509_REVOKED *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_X509_REVOKED_sk_type(struct stack_st_X509_REVOKED *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_X509_REVOKED_compfunc_type(sk_X509_REVOKED_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_X509_REVOKED_copyfunc_type(sk_X509_REVOKED_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_X509_REVOKED_freefunc_type(sk_X509_REVOKED_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 130 "/usr/include/openssl/x509.h" 3 4 2935449: struct stack_st_X509_CRL; typedef int (*sk_X509_CRL_compfunc)(const X509_CRL * const *a, const X509_CRL *const *b); typedef void (*sk_X509_CRL_freefunc)(X509_CRL *a); typedef X509_CRL * (*sk_X509_CRL_copyfunc)(const X509_CRL *a); static __attribute__((unused)) inline X509_CRL *ossl_check_X509_CRL_type(X509_CRL *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_X509_CRL_sk_type(const struct stack_st_X509_CRL *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_X509_CRL_sk_type(struct stack_st_X509_CRL *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_X509_CRL_compfunc_type(sk_X509_CRL_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_X509_CRL_copyfunc_type(sk_X509_CRL_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_X509_CRL_freefunc_type(sk_X509_CRL_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 187 "/usr/include/openssl/x509.h" 3 4 2935449: struct X509_algor_st { 2935449: ASN1_OBJECT *algorithm; 2935449: ASN1_TYPE *parameter; 2935449: } ; 2935449: 2935449: typedef struct stack_st_X509_ALGOR X509_ALGORS; 2935449: 2935449: typedef struct X509_val_st { 2935449: ASN1_TIME *notBefore; 2935449: ASN1_TIME *notAfter; 2935449: } X509_VAL; 2935449: 2935449: typedef struct X509_sig_st X509_SIG; 2935449: 2935449: typedef struct X509_name_entry_st X509_NAME_ENTRY; 2935449: 2935449: struct stack_st_X509_NAME_ENTRY; typedef int (*sk_X509_NAME_ENTRY_compfunc)(const X509_NAME_ENTRY * const *a, const X509_NAME_ENTRY *const *b); typedef void (*sk_X509_NAME_ENTRY_freefunc)(X509_NAME_ENTRY *a); typedef X509_NAME_ENTRY * (*sk_X509_NAME_ENTRY_copyfunc)(const X509_NAME_ENTRY *a); static __attribute__((unused)) inline X509_NAME_ENTRY *ossl_check_X509_NAME_ENTRY_type(X509_NAME_ENTRY *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_X509_NAME_ENTRY_sk_type(const struct stack_st_X509_NAME_ENTRY *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_X509_NAME_ENTRY_sk_type(struct stack_st_X509_NAME_ENTRY *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_X509_NAME_ENTRY_compfunc_type(sk_X509_NAME_ENTRY_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_X509_NAME_ENTRY_copyfunc_type(sk_X509_NAME_ENTRY_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_X509_NAME_ENTRY_freefunc_type(sk_X509_NAME_ENTRY_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 233 "/usr/include/openssl/x509.h" 3 4 2935449: typedef struct X509_extension_st X509_EXTENSION; 2935449: struct stack_st_X509_EXTENSION; typedef int (*sk_X509_EXTENSION_compfunc)(const X509_EXTENSION * const *a, const X509_EXTENSION *const *b); typedef void (*sk_X509_EXTENSION_freefunc)(X509_EXTENSION *a); typedef X509_EXTENSION * (*sk_X509_EXTENSION_copyfunc)(const X509_EXTENSION *a); static __attribute__((unused)) inline X509_EXTENSION *ossl_check_X509_EXTENSION_type(X509_EXTENSION *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_X509_EXTENSION_sk_type(const struct stack_st_X509_EXTENSION *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_X509_EXTENSION_sk_type(struct stack_st_X509_EXTENSION *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_X509_EXTENSION_compfunc_type(sk_X509_EXTENSION_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_X509_EXTENSION_copyfunc_type(sk_X509_EXTENSION_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_X509_EXTENSION_freefunc_type(sk_X509_EXTENSION_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 261 "/usr/include/openssl/x509.h" 3 4 2935449: typedef struct stack_st_X509_EXTENSION X509_EXTENSIONS; 2935449: typedef struct x509_attributes_st X509_ATTRIBUTE; 2935449: struct stack_st_X509_ATTRIBUTE; typedef int (*sk_X509_ATTRIBUTE_compfunc)(const X509_ATTRIBUTE * const *a, const X509_ATTRIBUTE *const *b); typedef void (*sk_X509_ATTRIBUTE_freefunc)(X509_ATTRIBUTE *a); typedef X509_ATTRIBUTE * (*sk_X509_ATTRIBUTE_copyfunc)(const X509_ATTRIBUTE *a); static __attribute__((unused)) inline X509_ATTRIBUTE *ossl_check_X509_ATTRIBUTE_type(X509_ATTRIBUTE *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_X509_ATTRIBUTE_sk_type(const struct stack_st_X509_ATTRIBUTE *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_X509_ATTRIBUTE_sk_type(struct stack_st_X509_ATTRIBUTE *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_X509_ATTRIBUTE_compfunc_type(sk_X509_ATTRIBUTE_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_X509_ATTRIBUTE_copyfunc_type(sk_X509_ATTRIBUTE_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_X509_ATTRIBUTE_freefunc_type(sk_X509_ATTRIBUTE_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 290 "/usr/include/openssl/x509.h" 3 4 2935449: typedef struct X509_req_info_st X509_REQ_INFO; 2935449: typedef struct X509_req_st X509_REQ; 2935449: typedef struct x509_cert_aux_st X509_CERT_AUX; 2935449: typedef struct x509_cinf_st X509_CINF; 2935449: # 373 "/usr/include/openssl/x509.h" 3 4 2935449: typedef struct X509_crl_info_st X509_CRL_INFO; 2935449: 2935449: typedef struct private_key_st { 2935449: int version; 2935449: 2935449: X509_ALGOR *enc_algor; 2935449: ASN1_OCTET_STRING *enc_pkey; 2935449: 2935449: EVP_PKEY *dec_pkey; 2935449: 2935449: int key_length; 2935449: char *key_data; 2935449: int key_free; 2935449: 2935449: EVP_CIPHER_INFO cipher; 2935449: } X509_PKEY; 2935449: 2935449: typedef struct X509_info_st { 2935449: X509 *x509; 2935449: X509_CRL *crl; 2935449: X509_PKEY *x_pkey; 2935449: EVP_CIPHER_INFO enc_cipher; 2935449: int enc_len; 2935449: char *enc_data; 2935449: } X509_INFO; 2935449: struct stack_st_X509_INFO; typedef int (*sk_X509_INFO_compfunc)(const X509_INFO * const *a, const X509_INFO *const *b); typedef void (*sk_X509_INFO_freefunc)(X509_INFO *a); typedef X509_INFO * (*sk_X509_INFO_copyfunc)(const X509_INFO *a); static __attribute__((unused)) inline X509_INFO *ossl_check_X509_INFO_type(X509_INFO *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_X509_INFO_sk_type(const struct stack_st_X509_INFO *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_X509_INFO_sk_type(struct stack_st_X509_INFO *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_X509_INFO_compfunc_type(sk_X509_INFO_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_X509_INFO_copyfunc_type(sk_X509_INFO_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_X509_INFO_freefunc_type(sk_X509_INFO_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 430 "/usr/include/openssl/x509.h" 3 4 2935449: typedef struct Netscape_spkac_st { 2935449: X509_PUBKEY *pubkey; 2935449: ASN1_IA5STRING *challenge; 2935449: } NETSCAPE_SPKAC; 2935449: 2935449: typedef struct Netscape_spki_st { 2935449: NETSCAPE_SPKAC *spkac; 2935449: X509_ALGOR sig_algor; 2935449: ASN1_BIT_STRING *signature; 2935449: } NETSCAPE_SPKI; 2935449: 2935449: 2935449: typedef struct Netscape_certificate_sequence { 2935449: ASN1_OBJECT *type; 2935449: struct stack_st_X509 *certs; 2935449: } NETSCAPE_CERT_SEQUENCE; 2935449: # 456 "/usr/include/openssl/x509.h" 3 4 2935449: typedef struct PBEPARAM_st { 2935449: ASN1_OCTET_STRING *salt; 2935449: ASN1_INTEGER *iter; 2935449: } PBEPARAM; 2935449: 2935449: 2935449: 2935449: typedef struct PBE2PARAM_st { 2935449: X509_ALGOR *keyfunc; 2935449: X509_ALGOR *encryption; 2935449: } PBE2PARAM; 2935449: 2935449: typedef struct PBKDF2PARAM_st { 2935449: 2935449: ASN1_TYPE *salt; 2935449: ASN1_INTEGER *iter; 2935449: ASN1_INTEGER *keylength; 2935449: X509_ALGOR *prf; 2935449: } PBKDF2PARAM; 2935449: 2935449: typedef struct { 2935449: X509_ALGOR *keyDerivationFunc; 2935449: X509_ALGOR *messageAuthScheme; 2935449: } PBMAC1PARAM; 2935449: 2935449: 2935449: typedef struct SCRYPT_PARAMS_st { 2935449: ASN1_OCTET_STRING *salt; 2935449: ASN1_INTEGER *costParameter; 2935449: ASN1_INTEGER *blockSize; 2935449: ASN1_INTEGER *parallelizationParameter; 2935449: ASN1_INTEGER *keyLength; 2935449: } SCRYPT_PARAMS; 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/x509_vfy.h" 1 3 4 2935449: # 17 "/usr/include/openssl/x509_vfy.h" 3 4 2935449: 2935449: # 32 "/usr/include/openssl/x509_vfy.h" 3 4 2935449: # 1 "/usr/include/openssl/lhash.h" 1 3 4 2935449: # 18 "/usr/include/openssl/lhash.h" 3 4 2935449: 2935449: # 32 "/usr/include/openssl/lhash.h" 3 4 2935449: extern "C" { 2935449: 2935449: 2935449: typedef struct lhash_node_st OPENSSL_LH_NODE; 2935449: typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); 2935449: typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); 2935449: typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); 2935449: typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); 2935449: typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); 2935449: typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); 2935449: typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); 2935449: typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); 2935449: typedef struct lhash_st OPENSSL_LHASH; 2935449: # 87 "/usr/include/openssl/lhash.h" 3 4 2935449: int OPENSSL_LH_error(OPENSSL_LHASH *lh); 2935449: OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); 2935449: OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, 2935449: OPENSSL_LH_HASHFUNCTHUNK hw, 2935449: OPENSSL_LH_COMPFUNCTHUNK cw, 2935449: OPENSSL_LH_DOALL_FUNC_THUNK daw, 2935449: OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); 2935449: void OPENSSL_LH_free(OPENSSL_LHASH *lh); 2935449: void OPENSSL_LH_flush(OPENSSL_LHASH *lh); 2935449: void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); 2935449: void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); 2935449: void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); 2935449: void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); 2935449: void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, 2935449: OPENSSL_LH_DOALL_FUNCARG func, void *arg); 2935449: void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, 2935449: OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, 2935449: OPENSSL_LH_DOALL_FUNCARG fn, void *arg); 2935449: 2935449: unsigned long OPENSSL_LH_strhash(const char *c); 2935449: unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); 2935449: unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); 2935449: void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.1"))) void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); 2935449: __attribute__((deprecated("Since OpenSSL " "3.1"))) void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); 2935449: __attribute__((deprecated("Since OpenSSL " "3.1"))) void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.1"))) void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); 2935449: __attribute__((deprecated("Since OpenSSL " "3.1"))) void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); 2935449: __attribute__((deprecated("Since OpenSSL " "3.1"))) void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); 2935449: # 362 "/usr/include/openssl/lhash.h" 3 4 2935449: struct lhash_st_OPENSSL_STRING { union lh_OPENSSL_STRING_dummy { void* d1; unsigned long d2; int d3; } dummy; }; typedef int (*lh_OPENSSL_STRING_compfunc)(const OPENSSL_STRING *a, const OPENSSL_STRING *b); typedef unsigned long (*lh_OPENSSL_STRING_hashfunc)(const OPENSSL_STRING *a); typedef void (*lh_OPENSSL_STRING_doallfunc)(OPENSSL_STRING *a); static inline unsigned long lh_OPENSSL_STRING_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) { unsigned long (*hfn_conv)(const OPENSSL_STRING *) = (unsigned long (*)(const OPENSSL_STRING *))hfn; return hfn_conv((const OPENSSL_STRING *)data); } static inline int lh_OPENSSL_STRING_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) { int (*cfn_conv)(const OPENSSL_STRING *, const OPENSSL_STRING *) = (int (*)(const OPENSSL_STRING *, const OPENSSL_STRING *))cfn; return cfn_conv((const OPENSSL_STRING *)da, (const OPENSSL_STRING *)db); } static inline void lh_OPENSSL_STRING_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) { void (*doall_conv)(OPENSSL_STRING *) = (void (*)(OPENSSL_STRING *))doall; doall_conv((OPENSSL_STRING *)node); } static inline void lh_OPENSSL_STRING_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) { void (*doall_conv)(OPENSSL_STRING *, void *) = (void (*)(OPENSSL_STRING *, void *))doall; doall_conv((OPENSSL_STRING *)node, arg); } static __attribute__((unused)) inline OPENSSL_STRING * ossl_check_OPENSSL_STRING_lh_plain_type(OPENSSL_STRING *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STRING * ossl_check_const_OPENSSL_STRING_lh_plain_type(const OPENSSL_STRING *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_LHASH * ossl_check_const_OPENSSL_STRING_lh_type(const struct lhash_st_OPENSSL_STRING *lh) { return (const OPENSSL_LHASH *)lh; } static __attribute__((unused)) inline OPENSSL_LHASH * ossl_check_OPENSSL_STRING_lh_type(struct lhash_st_OPENSSL_STRING *lh) { return (OPENSSL_LHASH *)lh; } static __attribute__((unused)) inline OPENSSL_LH_COMPFUNC ossl_check_OPENSSL_STRING_lh_compfunc_type(lh_OPENSSL_STRING_compfunc cmp) { return (OPENSSL_LH_COMPFUNC)cmp; } static __attribute__((unused)) inline OPENSSL_LH_HASHFUNC ossl_check_OPENSSL_STRING_lh_hashfunc_type(lh_OPENSSL_STRING_hashfunc hfn) { return (OPENSSL_LH_HASHFUNC)hfn; } static __attribute__((unused)) inline OPENSSL_LH_DOALL_FUNC ossl_check_OPENSSL_STRING_lh_doallfunc_type(lh_OPENSSL_STRING_doallfunc dfn) { return (OPENSSL_LH_DOALL_FUNC)dfn; } struct lhash_st_OPENSSL_STRING; 2935449: # 377 "/usr/include/openssl/lhash.h" 3 4 2935449: struct lhash_st_OPENSSL_CSTRING { union lh_OPENSSL_CSTRING_dummy { void* d1; unsigned long d2; int d3; } dummy; }; typedef int (*lh_OPENSSL_CSTRING_compfunc)(const OPENSSL_CSTRING *a, const OPENSSL_CSTRING *b); typedef unsigned long (*lh_OPENSSL_CSTRING_hashfunc)(const OPENSSL_CSTRING *a); typedef void (*lh_OPENSSL_CSTRING_doallfunc)(OPENSSL_CSTRING *a); static inline unsigned long lh_OPENSSL_CSTRING_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) { unsigned long (*hfn_conv)(const OPENSSL_CSTRING *) = (unsigned long (*)(const OPENSSL_CSTRING *))hfn; return hfn_conv((const OPENSSL_CSTRING *)data); } static inline int lh_OPENSSL_CSTRING_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) { int (*cfn_conv)(const OPENSSL_CSTRING *, const OPENSSL_CSTRING *) = (int (*)(const OPENSSL_CSTRING *, const OPENSSL_CSTRING *))cfn; return cfn_conv((const OPENSSL_CSTRING *)da, (const OPENSSL_CSTRING *)db); } static inline void lh_OPENSSL_CSTRING_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) { void (*doall_conv)(OPENSSL_CSTRING *) = (void (*)(OPENSSL_CSTRING *))doall; doall_conv((OPENSSL_CSTRING *)node); } static inline void lh_OPENSSL_CSTRING_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) { void (*doall_conv)(OPENSSL_CSTRING *, void *) = (void (*)(OPENSSL_CSTRING *, void *))doall; doall_conv((OPENSSL_CSTRING *)node, arg); } static __attribute__((unused)) inline OPENSSL_CSTRING * ossl_check_OPENSSL_CSTRING_lh_plain_type(OPENSSL_CSTRING *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_CSTRING * ossl_check_const_OPENSSL_CSTRING_lh_plain_type(const OPENSSL_CSTRING *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_LHASH * ossl_check_const_OPENSSL_CSTRING_lh_type(const struct lhash_st_OPENSSL_CSTRING *lh) { return (const OPENSSL_LHASH *)lh; } static __attribute__((unused)) inline OPENSSL_LHASH * ossl_check_OPENSSL_CSTRING_lh_type(struct lhash_st_OPENSSL_CSTRING *lh) { return (OPENSSL_LHASH *)lh; } static __attribute__((unused)) inline OPENSSL_LH_COMPFUNC ossl_check_OPENSSL_CSTRING_lh_compfunc_type(lh_OPENSSL_CSTRING_compfunc cmp) { return (OPENSSL_LH_COMPFUNC)cmp; } static __attribute__((unused)) inline OPENSSL_LH_HASHFUNC ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(lh_OPENSSL_CSTRING_hashfunc hfn) { return (OPENSSL_LH_HASHFUNC)hfn; } static __attribute__((unused)) inline OPENSSL_LH_DOALL_FUNC ossl_check_OPENSSL_CSTRING_lh_doallfunc_type(lh_OPENSSL_CSTRING_doallfunc dfn) { return (OPENSSL_LH_DOALL_FUNC)dfn; } struct lhash_st_OPENSSL_CSTRING; 2935449: # 395 "/usr/include/openssl/lhash.h" 3 4 2935449: } 2935449: # 33 "/usr/include/openssl/x509_vfy.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: # 58 "/usr/include/openssl/x509_vfy.h" 3 4 2935449: typedef enum { 2935449: X509_LU_NONE = 0, 2935449: X509_LU_X509, X509_LU_CRL 2935449: } X509_LOOKUP_TYPE; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct stack_st_X509_LOOKUP; typedef int (*sk_X509_LOOKUP_compfunc)(const X509_LOOKUP * const *a, const X509_LOOKUP *const *b); typedef void (*sk_X509_LOOKUP_freefunc)(X509_LOOKUP *a); typedef X509_LOOKUP * (*sk_X509_LOOKUP_copyfunc)(const X509_LOOKUP *a); static __attribute__((unused)) inline X509_LOOKUP *ossl_check_X509_LOOKUP_type(X509_LOOKUP *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_X509_LOOKUP_sk_type(const struct stack_st_X509_LOOKUP *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_X509_LOOKUP_sk_type(struct stack_st_X509_LOOKUP *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_X509_LOOKUP_compfunc_type(sk_X509_LOOKUP_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_X509_LOOKUP_copyfunc_type(sk_X509_LOOKUP_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_X509_LOOKUP_freefunc_type(sk_X509_LOOKUP_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 94 "/usr/include/openssl/x509_vfy.h" 3 4 2935449: struct stack_st_X509_OBJECT; typedef int (*sk_X509_OBJECT_compfunc)(const X509_OBJECT * const *a, const X509_OBJECT *const *b); typedef void (*sk_X509_OBJECT_freefunc)(X509_OBJECT *a); typedef X509_OBJECT * (*sk_X509_OBJECT_copyfunc)(const X509_OBJECT *a); static __attribute__((unused)) inline X509_OBJECT *ossl_check_X509_OBJECT_type(X509_OBJECT *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_X509_OBJECT_sk_type(const struct stack_st_X509_OBJECT *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_X509_OBJECT_sk_type(struct stack_st_X509_OBJECT *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_X509_OBJECT_compfunc_type(sk_X509_OBJECT_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_X509_OBJECT_copyfunc_type(sk_X509_OBJECT_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_X509_OBJECT_freefunc_type(sk_X509_OBJECT_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 120 "/usr/include/openssl/x509_vfy.h" 3 4 2935449: struct stack_st_X509_VERIFY_PARAM; typedef int (*sk_X509_VERIFY_PARAM_compfunc)(const X509_VERIFY_PARAM * const *a, const X509_VERIFY_PARAM *const *b); typedef void (*sk_X509_VERIFY_PARAM_freefunc)(X509_VERIFY_PARAM *a); typedef X509_VERIFY_PARAM * (*sk_X509_VERIFY_PARAM_copyfunc)(const X509_VERIFY_PARAM *a); static __attribute__((unused)) inline X509_VERIFY_PARAM *ossl_check_X509_VERIFY_PARAM_type(X509_VERIFY_PARAM *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_X509_VERIFY_PARAM_sk_type(const struct stack_st_X509_VERIFY_PARAM *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_X509_VERIFY_PARAM_sk_type(struct stack_st_X509_VERIFY_PARAM *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_X509_VERIFY_PARAM_compfunc_type(sk_X509_VERIFY_PARAM_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_X509_VERIFY_PARAM_copyfunc_type(sk_X509_VERIFY_PARAM_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_X509_VERIFY_PARAM_freefunc_type(sk_X509_VERIFY_PARAM_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 149 "/usr/include/openssl/x509_vfy.h" 3 4 2935449: typedef struct x509_trust_st { 2935449: int trust; 2935449: int flags; 2935449: int (*check_trust) (struct x509_trust_st *, X509 *, int); 2935449: char *name; 2935449: int arg1; 2935449: void *arg2; 2935449: } X509_TRUST; 2935449: struct stack_st_X509_TRUST; typedef int (*sk_X509_TRUST_compfunc)(const X509_TRUST * const *a, const X509_TRUST *const *b); typedef void (*sk_X509_TRUST_freefunc)(X509_TRUST *a); typedef X509_TRUST * (*sk_X509_TRUST_copyfunc)(const X509_TRUST *a); static __attribute__((unused)) inline X509_TRUST *ossl_check_X509_TRUST_type(X509_TRUST *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_X509_TRUST_sk_type(const struct stack_st_X509_TRUST *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_X509_TRUST_sk_type(struct stack_st_X509_TRUST *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_X509_TRUST_compfunc_type(sk_X509_TRUST_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_X509_TRUST_copyfunc_type(sk_X509_TRUST_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_X509_TRUST_freefunc_type(sk_X509_TRUST_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 214 "/usr/include/openssl/x509_vfy.h" 3 4 2935449: int X509_TRUST_set(int *t, int trust); 2935449: int X509_TRUST_get_count(void); 2935449: X509_TRUST *X509_TRUST_get0(int idx); 2935449: int X509_TRUST_get_by_id(int id); 2935449: int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), 2935449: const char *name, int arg1, void *arg2); 2935449: void X509_TRUST_cleanup(void); 2935449: int X509_TRUST_get_flags(const X509_TRUST *xp); 2935449: char *X509_TRUST_get0_name(const X509_TRUST *xp); 2935449: int X509_TRUST_get_trust(const X509_TRUST *xp); 2935449: 2935449: int X509_trusted(const X509 *x); 2935449: int X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj); 2935449: int X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj); 2935449: void X509_trust_clear(X509 *x); 2935449: void X509_reject_clear(X509 *x); 2935449: struct stack_st_ASN1_OBJECT *X509_get0_trust_objects(X509 *x); 2935449: struct stack_st_ASN1_OBJECT *X509_get0_reject_objects(X509 *x); 2935449: 2935449: int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, 2935449: int); 2935449: int X509_check_trust(X509 *x, int id, int flags); 2935449: 2935449: int X509_verify_cert(X509_STORE_CTX *ctx); 2935449: int X509_STORE_CTX_verify(X509_STORE_CTX *ctx); 2935449: struct stack_st_X509 *X509_build_chain(X509 *target, struct stack_st_X509 *certs, 2935449: X509_STORE *store, int with_self_signed, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: int X509_STORE_set_depth(X509_STORE *store, int depth); 2935449: 2935449: typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *); 2935449: int X509_STORE_CTX_print_verify_cb(int ok, X509_STORE_CTX *ctx); 2935449: typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *); 2935449: typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, 2935449: X509_STORE_CTX *ctx, X509 *x); 2935449: typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, 2935449: X509 *x, X509 *issuer); 2935449: typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); 2935449: typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, 2935449: X509_CRL **crl, X509 *x); 2935449: typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl); 2935449: typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, 2935449: X509_CRL *crl, X509 *x); 2935449: typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx); 2935449: typedef struct stack_st_X509 2935449: *(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx, 2935449: const X509_NAME *nm); 2935449: typedef struct stack_st_X509_CRL 2935449: *(*X509_STORE_CTX_lookup_crls_fn)(const X509_STORE_CTX *ctx, 2935449: const X509_NAME *nm); 2935449: typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx); 2935449: 2935449: void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); 2935449: # 479 "/usr/include/openssl/x509_vfy.h" 3 4 2935449: int X509_OBJECT_idx_by_subject(struct stack_st_X509_OBJECT *h, X509_LOOKUP_TYPE type, 2935449: const X509_NAME *name); 2935449: X509_OBJECT *X509_OBJECT_retrieve_by_subject(struct stack_st_X509_OBJECT *h, 2935449: X509_LOOKUP_TYPE type, 2935449: const X509_NAME *name); 2935449: X509_OBJECT *X509_OBJECT_retrieve_match(struct stack_st_X509_OBJECT *h, 2935449: X509_OBJECT *x); 2935449: int X509_OBJECT_up_ref_count(X509_OBJECT *a); 2935449: X509_OBJECT *X509_OBJECT_new(void); 2935449: void X509_OBJECT_free(X509_OBJECT *a); 2935449: X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a); 2935449: X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a); 2935449: int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); 2935449: X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); 2935449: int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); 2935449: X509_STORE *X509_STORE_new(void); 2935449: void X509_STORE_free(X509_STORE *xs); 2935449: int X509_STORE_lock(X509_STORE *xs); 2935449: int X509_STORE_unlock(X509_STORE *xs); 2935449: int X509_STORE_up_ref(X509_STORE *xs); 2935449: struct stack_st_X509_OBJECT *X509_STORE_get0_objects(const X509_STORE *xs); 2935449: struct stack_st_X509_OBJECT *X509_STORE_get1_objects(X509_STORE *xs); 2935449: struct stack_st_X509 *X509_STORE_get1_all_certs(X509_STORE *xs); 2935449: struct stack_st_X509 *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, 2935449: const X509_NAME *nm); 2935449: struct stack_st_X509_CRL *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, 2935449: const X509_NAME *nm); 2935449: int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); 2935449: int X509_STORE_set_purpose(X509_STORE *xs, int purpose); 2935449: int X509_STORE_set_trust(X509_STORE *xs, int trust); 2935449: int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); 2935449: X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); 2935449: 2935449: void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); 2935449: 2935449: 2935449: void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, 2935449: X509_STORE_CTX_verify_fn verify); 2935449: X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); 2935449: void X509_STORE_set_verify_cb(X509_STORE *xs, 2935449: X509_STORE_CTX_verify_cb verify_cb); 2935449: 2935449: 2935449: X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); 2935449: void X509_STORE_set_get_issuer(X509_STORE *xs, 2935449: X509_STORE_CTX_get_issuer_fn get_issuer); 2935449: X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); 2935449: void X509_STORE_set_check_issued(X509_STORE *xs, 2935449: X509_STORE_CTX_check_issued_fn check_issued); 2935449: X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); 2935449: void X509_STORE_set_check_revocation(X509_STORE *xs, 2935449: X509_STORE_CTX_check_revocation_fn check_revocation); 2935449: X509_STORE_CTX_check_revocation_fn 2935449: X509_STORE_get_check_revocation(const X509_STORE *xs); 2935449: void X509_STORE_set_get_crl(X509_STORE *xs, 2935449: X509_STORE_CTX_get_crl_fn get_crl); 2935449: X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); 2935449: void X509_STORE_set_check_crl(X509_STORE *xs, 2935449: X509_STORE_CTX_check_crl_fn check_crl); 2935449: X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); 2935449: void X509_STORE_set_cert_crl(X509_STORE *xs, 2935449: X509_STORE_CTX_cert_crl_fn cert_crl); 2935449: X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); 2935449: void X509_STORE_set_check_policy(X509_STORE *xs, 2935449: X509_STORE_CTX_check_policy_fn check_policy); 2935449: X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); 2935449: void X509_STORE_set_lookup_certs(X509_STORE *xs, 2935449: X509_STORE_CTX_lookup_certs_fn lookup_certs); 2935449: X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); 2935449: void X509_STORE_set_lookup_crls(X509_STORE *xs, 2935449: X509_STORE_CTX_lookup_crls_fn lookup_crls); 2935449: 2935449: 2935449: X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); 2935449: void X509_STORE_set_cleanup(X509_STORE *xs, 2935449: X509_STORE_CTX_cleanup_fn cleanup); 2935449: X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); 2935449: 2935449: 2935449: 2935449: int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); 2935449: void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); 2935449: 2935449: X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); 2935449: X509_STORE_CTX *X509_STORE_CTX_new(void); 2935449: 2935449: int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); 2935449: 2935449: void X509_STORE_CTX_free(X509_STORE_CTX *ctx); 2935449: int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, 2935449: X509 *target, struct stack_st_X509 *untrusted); 2935449: int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, 2935449: EVP_PKEY* rpk); 2935449: void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, struct stack_st_X509 *sk); 2935449: void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); 2935449: 2935449: X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); 2935449: X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); 2935449: EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); 2935449: struct stack_st_X509* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); 2935449: void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, struct stack_st_X509 *sk); 2935449: void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, 2935449: X509_STORE_CTX_verify_cb verify); 2935449: X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(const X509_STORE_CTX *ctx); 2935449: X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); 2935449: X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); 2935449: X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); 2935449: X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); 2935449: void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, 2935449: X509_STORE_CTX_get_crl_fn get_crl); 2935449: X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); 2935449: X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); 2935449: X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); 2935449: X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(const X509_STORE_CTX *ctx); 2935449: X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(const X509_STORE_CTX *ctx); 2935449: X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(const X509_STORE_CTX *ctx); 2935449: X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); 2935449: # 610 "/usr/include/openssl/x509_vfy.h" 3 4 2935449: X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); 2935449: X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); 2935449: X509_LOOKUP_METHOD *X509_LOOKUP_file(void); 2935449: X509_LOOKUP_METHOD *X509_LOOKUP_store(void); 2935449: 2935449: typedef int (*X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc, 2935449: long argl, char **ret); 2935449: typedef int (*X509_LOOKUP_ctrl_ex_fn)( 2935449: X509_LOOKUP *ctx, int cmd, const char *argc, long argl, char **ret, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: typedef int (*X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx, 2935449: X509_LOOKUP_TYPE type, 2935449: const X509_NAME *name, 2935449: X509_OBJECT *ret); 2935449: typedef int (*X509_LOOKUP_get_by_subject_ex_fn)(X509_LOOKUP *ctx, 2935449: X509_LOOKUP_TYPE type, 2935449: const X509_NAME *name, 2935449: X509_OBJECT *ret, 2935449: OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: typedef int (*X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx, 2935449: X509_LOOKUP_TYPE type, 2935449: const X509_NAME *name, 2935449: const ASN1_INTEGER *serial, 2935449: X509_OBJECT *ret); 2935449: typedef int (*X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx, 2935449: X509_LOOKUP_TYPE type, 2935449: const unsigned char* bytes, 2935449: int len, 2935449: X509_OBJECT *ret); 2935449: typedef int (*X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx, 2935449: X509_LOOKUP_TYPE type, 2935449: const char *str, 2935449: int len, 2935449: X509_OBJECT *ret); 2935449: 2935449: X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name); 2935449: void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method); 2935449: 2935449: int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method, 2935449: int (*new_item) (X509_LOOKUP *ctx)); 2935449: int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method)) 2935449: (X509_LOOKUP *ctx); 2935449: 2935449: int X509_LOOKUP_meth_set_free(X509_LOOKUP_METHOD *method, 2935449: void (*free_fn) (X509_LOOKUP *ctx)); 2935449: void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method)) 2935449: (X509_LOOKUP *ctx); 2935449: 2935449: int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method, 2935449: int (*init) (X509_LOOKUP *ctx)); 2935449: int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method)) 2935449: (X509_LOOKUP *ctx); 2935449: 2935449: int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method, 2935449: int (*shutdown) (X509_LOOKUP *ctx)); 2935449: int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method)) 2935449: (X509_LOOKUP *ctx); 2935449: 2935449: int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method, 2935449: X509_LOOKUP_ctrl_fn ctrl_fn); 2935449: X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method); 2935449: 2935449: int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method, 2935449: X509_LOOKUP_get_by_subject_fn fn); 2935449: X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject( 2935449: const X509_LOOKUP_METHOD *method); 2935449: 2935449: int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method, 2935449: X509_LOOKUP_get_by_issuer_serial_fn fn); 2935449: X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial( 2935449: const X509_LOOKUP_METHOD *method); 2935449: 2935449: int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method, 2935449: X509_LOOKUP_get_by_fingerprint_fn fn); 2935449: X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint( 2935449: const X509_LOOKUP_METHOD *method); 2935449: 2935449: int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method, 2935449: X509_LOOKUP_get_by_alias_fn fn); 2935449: X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( 2935449: const X509_LOOKUP_METHOD *method); 2935449: 2935449: 2935449: int X509_STORE_add_cert(X509_STORE *xs, X509 *x); 2935449: int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); 2935449: 2935449: int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, 2935449: X509_LOOKUP_TYPE type, 2935449: const X509_NAME *name, X509_OBJECT *ret); 2935449: X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, 2935449: X509_LOOKUP_TYPE type, 2935449: const X509_NAME *name); 2935449: 2935449: int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, 2935449: long argl, char **ret); 2935449: int X509_LOOKUP_ctrl_ex(X509_LOOKUP *ctx, int cmd, const char *argc, long argl, 2935449: char **ret, OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); 2935449: int X509_load_cert_file_ex(X509_LOOKUP *ctx, const char *file, int type, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); 2935449: int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); 2935449: int X509_load_cert_crl_file_ex(X509_LOOKUP *ctx, const char *file, int type, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); 2935449: void X509_LOOKUP_free(X509_LOOKUP *ctx); 2935449: int X509_LOOKUP_init(X509_LOOKUP *ctx); 2935449: int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, 2935449: const X509_NAME *name, X509_OBJECT *ret); 2935449: int X509_LOOKUP_by_subject_ex(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, 2935449: const X509_NAME *name, X509_OBJECT *ret, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, 2935449: const X509_NAME *name, 2935449: const ASN1_INTEGER *serial, 2935449: X509_OBJECT *ret); 2935449: int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, 2935449: const unsigned char *bytes, int len, 2935449: X509_OBJECT *ret); 2935449: int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, 2935449: const char *str, int len, X509_OBJECT *ret); 2935449: int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data); 2935449: void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); 2935449: X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); 2935449: int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); 2935449: 2935449: int X509_STORE_load_file(X509_STORE *xs, const char *file); 2935449: int X509_STORE_load_path(X509_STORE *xs, const char *path); 2935449: int X509_STORE_load_store(X509_STORE *xs, const char *store); 2935449: int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); 2935449: int X509_STORE_set_default_paths(X509_STORE *xs); 2935449: 2935449: int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: int X509_STORE_load_locations_ex(X509_STORE *xs, 2935449: const char *file, const char *dir, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: int X509_STORE_set_default_paths_ex(X509_STORE *xs, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: 2935449: 2935449: int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); 2935449: void *X509_STORE_CTX_get_ex_data(const X509_STORE_CTX *ctx, int idx); 2935449: int X509_STORE_CTX_get_error(const X509_STORE_CTX *ctx); 2935449: void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); 2935449: int X509_STORE_CTX_get_error_depth(const X509_STORE_CTX *ctx); 2935449: void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth); 2935449: X509 *X509_STORE_CTX_get_current_cert(const X509_STORE_CTX *ctx); 2935449: void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x); 2935449: X509 *X509_STORE_CTX_get0_current_issuer(const X509_STORE_CTX *ctx); 2935449: X509_CRL *X509_STORE_CTX_get0_current_crl(const X509_STORE_CTX *ctx); 2935449: X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); 2935449: struct stack_st_X509 *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); 2935449: struct stack_st_X509 *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); 2935449: void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); 2935449: void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); 2935449: void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, struct stack_st_X509 *sk); 2935449: void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, struct stack_st_X509_CRL *sk); 2935449: int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); 2935449: int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); 2935449: int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, 2935449: int purpose, int trust); 2935449: void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); 2935449: void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, 2935449: time_t t); 2935449: void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, 2935449: unsigned int current_reasons); 2935449: 2935449: X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); 2935449: int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); 2935449: int X509_STORE_CTX_get_num_untrusted(const X509_STORE_CTX *ctx); 2935449: 2935449: X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(const X509_STORE_CTX *ctx); 2935449: void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); 2935449: int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane); 2935449: 2935449: 2935449: 2935449: 2935449: X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); 2935449: void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); 2935449: int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, 2935449: const X509_VERIFY_PARAM *from); 2935449: int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, 2935449: const X509_VERIFY_PARAM *from); 2935449: int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); 2935449: int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, 2935449: unsigned long flags); 2935449: int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, 2935449: unsigned long flags); 2935449: unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); 2935449: int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); 2935449: int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); 2935449: int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); 2935449: void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); 2935449: void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); 2935449: time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param); 2935449: void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); 2935449: int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, 2935449: ASN1_OBJECT *policy); 2935449: int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, 2935449: struct stack_st_ASN1_OBJECT *policies); 2935449: 2935449: int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, 2935449: uint32_t flags); 2935449: uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param); 2935449: 2935449: char *X509_VERIFY_PARAM_get0_host(X509_VERIFY_PARAM *param, int idx); 2935449: int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, 2935449: const char *name, size_t namelen); 2935449: int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, 2935449: const char *name, size_t namelen); 2935449: void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, 2935449: unsigned int flags); 2935449: unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param); 2935449: char *X509_VERIFY_PARAM_get0_peername(const X509_VERIFY_PARAM *param); 2935449: void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *, X509_VERIFY_PARAM *); 2935449: char *X509_VERIFY_PARAM_get0_email(X509_VERIFY_PARAM *param); 2935449: int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, 2935449: const char *email, size_t emaillen); 2935449: char *X509_VERIFY_PARAM_get1_ip_asc(X509_VERIFY_PARAM *param); 2935449: int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, 2935449: const unsigned char *ip, size_t iplen); 2935449: int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, 2935449: const char *ipasc); 2935449: 2935449: int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); 2935449: int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param); 2935449: const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); 2935449: 2935449: int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); 2935449: int X509_VERIFY_PARAM_get_count(void); 2935449: const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); 2935449: const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); 2935449: void X509_VERIFY_PARAM_table_cleanup(void); 2935449: # 872 "/usr/include/openssl/x509_vfy.h" 3 4 2935449: int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, 2935449: struct stack_st_X509 *certs, 2935449: struct stack_st_ASN1_OBJECT *policy_oids, unsigned int flags); 2935449: 2935449: void X509_policy_tree_free(X509_POLICY_TREE *tree); 2935449: 2935449: int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); 2935449: X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, 2935449: int i); 2935449: 2935449: struct stack_st_X509_POLICY_NODE 2935449: *X509_policy_tree_get0_policies(const X509_POLICY_TREE *tree); 2935449: 2935449: struct stack_st_X509_POLICY_NODE 2935449: *X509_policy_tree_get0_user_policies(const X509_POLICY_TREE *tree); 2935449: 2935449: int X509_policy_level_node_count(X509_POLICY_LEVEL *level); 2935449: 2935449: X509_POLICY_NODE *X509_policy_level_get0_node(const X509_POLICY_LEVEL *level, 2935449: int i); 2935449: 2935449: const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); 2935449: 2935449: struct stack_st_POLICYQUALINFO 2935449: *X509_policy_node_get0_qualifiers(const X509_POLICY_NODE *node); 2935449: const X509_POLICY_NODE 2935449: *X509_policy_node_get0_parent(const X509_POLICY_NODE *node); 2935449: 2935449: 2935449: } 2935449: # 496 "/usr/include/openssl/x509.h" 2 3 4 2935449: # 1 "/usr/include/openssl/pkcs7.h" 1 3 4 2935449: # 17 "/usr/include/openssl/pkcs7.h" 3 4 2935449: 2935449: # 29 "/usr/include/openssl/pkcs7.h" 3 4 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 30 "/usr/include/openssl/pkcs7.h" 2 3 4 2935449: # 1 "/usr/include/openssl/pkcs7err.h" 1 3 4 2935449: # 13 "/usr/include/openssl/pkcs7err.h" 3 4 2935449: 2935449: # 31 "/usr/include/openssl/pkcs7.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: # 47 "/usr/include/openssl/pkcs7.h" 3 4 2935449: typedef struct PKCS7_CTX_st { 2935449: OSSL_LIB_CTX *libctx; 2935449: char *propq; 2935449: } PKCS7_CTX; 2935449: 2935449: typedef struct pkcs7_issuer_and_serial_st { 2935449: X509_NAME *issuer; 2935449: ASN1_INTEGER *serial; 2935449: } PKCS7_ISSUER_AND_SERIAL; 2935449: 2935449: typedef struct pkcs7_signer_info_st { 2935449: ASN1_INTEGER *version; 2935449: PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; 2935449: X509_ALGOR *digest_alg; 2935449: struct stack_st_X509_ATTRIBUTE *auth_attr; 2935449: X509_ALGOR *digest_enc_alg; 2935449: ASN1_OCTET_STRING *enc_digest; 2935449: struct stack_st_X509_ATTRIBUTE *unauth_attr; 2935449: 2935449: EVP_PKEY *pkey; 2935449: const PKCS7_CTX *ctx; 2935449: } PKCS7_SIGNER_INFO; 2935449: struct stack_st_PKCS7_SIGNER_INFO; typedef int (*sk_PKCS7_SIGNER_INFO_compfunc)(const PKCS7_SIGNER_INFO * const *a, const PKCS7_SIGNER_INFO *const *b); typedef void (*sk_PKCS7_SIGNER_INFO_freefunc)(PKCS7_SIGNER_INFO *a); typedef PKCS7_SIGNER_INFO * (*sk_PKCS7_SIGNER_INFO_copyfunc)(const PKCS7_SIGNER_INFO *a); static __attribute__((unused)) inline PKCS7_SIGNER_INFO *ossl_check_PKCS7_SIGNER_INFO_type(PKCS7_SIGNER_INFO *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_PKCS7_SIGNER_INFO_sk_type(const struct stack_st_PKCS7_SIGNER_INFO *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_PKCS7_SIGNER_INFO_sk_type(struct stack_st_PKCS7_SIGNER_INFO *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_PKCS7_SIGNER_INFO_compfunc_type(sk_PKCS7_SIGNER_INFO_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_PKCS7_SIGNER_INFO_copyfunc_type(sk_PKCS7_SIGNER_INFO_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_PKCS7_SIGNER_INFO_freefunc_type(sk_PKCS7_SIGNER_INFO_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 97 "/usr/include/openssl/pkcs7.h" 3 4 2935449: typedef struct pkcs7_recip_info_st { 2935449: ASN1_INTEGER *version; 2935449: PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; 2935449: X509_ALGOR *key_enc_algor; 2935449: ASN1_OCTET_STRING *enc_key; 2935449: X509 *cert; 2935449: const PKCS7_CTX *ctx; 2935449: } PKCS7_RECIP_INFO; 2935449: struct stack_st_PKCS7_RECIP_INFO; typedef int (*sk_PKCS7_RECIP_INFO_compfunc)(const PKCS7_RECIP_INFO * const *a, const PKCS7_RECIP_INFO *const *b); typedef void (*sk_PKCS7_RECIP_INFO_freefunc)(PKCS7_RECIP_INFO *a); typedef PKCS7_RECIP_INFO * (*sk_PKCS7_RECIP_INFO_copyfunc)(const PKCS7_RECIP_INFO *a); static __attribute__((unused)) inline PKCS7_RECIP_INFO *ossl_check_PKCS7_RECIP_INFO_type(PKCS7_RECIP_INFO *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_PKCS7_RECIP_INFO_sk_type(const struct stack_st_PKCS7_RECIP_INFO *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_PKCS7_RECIP_INFO_sk_type(struct stack_st_PKCS7_RECIP_INFO *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_PKCS7_RECIP_INFO_compfunc_type(sk_PKCS7_RECIP_INFO_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_PKCS7_RECIP_INFO_copyfunc_type(sk_PKCS7_RECIP_INFO_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_PKCS7_RECIP_INFO_freefunc_type(sk_PKCS7_RECIP_INFO_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 134 "/usr/include/openssl/pkcs7.h" 3 4 2935449: typedef struct pkcs7_signed_st { 2935449: ASN1_INTEGER *version; 2935449: struct stack_st_X509_ALGOR *md_algs; 2935449: struct stack_st_X509 *cert; 2935449: struct stack_st_X509_CRL *crl; 2935449: struct stack_st_PKCS7_SIGNER_INFO *signer_info; 2935449: struct pkcs7_st *contents; 2935449: } PKCS7_SIGNED; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef struct pkcs7_enc_content_st { 2935449: ASN1_OBJECT *content_type; 2935449: X509_ALGOR *algorithm; 2935449: ASN1_OCTET_STRING *enc_data; 2935449: const EVP_CIPHER *cipher; 2935449: const PKCS7_CTX *ctx; 2935449: } PKCS7_ENC_CONTENT; 2935449: 2935449: typedef struct pkcs7_enveloped_st { 2935449: ASN1_INTEGER *version; 2935449: struct stack_st_PKCS7_RECIP_INFO *recipientinfo; 2935449: PKCS7_ENC_CONTENT *enc_data; 2935449: } PKCS7_ENVELOPE; 2935449: 2935449: typedef struct pkcs7_signedandenveloped_st { 2935449: ASN1_INTEGER *version; 2935449: struct stack_st_X509_ALGOR *md_algs; 2935449: struct stack_st_X509 *cert; 2935449: struct stack_st_X509_CRL *crl; 2935449: struct stack_st_PKCS7_SIGNER_INFO *signer_info; 2935449: PKCS7_ENC_CONTENT *enc_data; 2935449: struct stack_st_PKCS7_RECIP_INFO *recipientinfo; 2935449: } PKCS7_SIGN_ENVELOPE; 2935449: 2935449: typedef struct pkcs7_digest_st { 2935449: ASN1_INTEGER *version; 2935449: X509_ALGOR *md; 2935449: struct pkcs7_st *contents; 2935449: ASN1_OCTET_STRING *digest; 2935449: } PKCS7_DIGEST; 2935449: 2935449: typedef struct pkcs7_encrypted_st { 2935449: ASN1_INTEGER *version; 2935449: PKCS7_ENC_CONTENT *enc_data; 2935449: } PKCS7_ENCRYPT; 2935449: 2935449: typedef struct pkcs7_st { 2935449: 2935449: 2935449: 2935449: 2935449: unsigned char *asn1; 2935449: long length; 2935449: 2935449: 2935449: 2935449: int state; 2935449: int detached; 2935449: ASN1_OBJECT *type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: union { 2935449: char *ptr; 2935449: 2935449: ASN1_OCTET_STRING *data; 2935449: 2935449: PKCS7_SIGNED *sign; 2935449: 2935449: PKCS7_ENVELOPE *enveloped; 2935449: 2935449: PKCS7_SIGN_ENVELOPE *signed_and_enveloped; 2935449: 2935449: PKCS7_DIGEST *digest; 2935449: 2935449: PKCS7_ENCRYPT *encrypted; 2935449: 2935449: ASN1_TYPE *other; 2935449: } d; 2935449: PKCS7_CTX ctx; 2935449: } PKCS7; 2935449: struct stack_st_PKCS7; typedef int (*sk_PKCS7_compfunc)(const PKCS7 * const *a, const PKCS7 *const *b); typedef void (*sk_PKCS7_freefunc)(PKCS7 *a); typedef PKCS7 * (*sk_PKCS7_copyfunc)(const PKCS7 *a); static __attribute__((unused)) inline PKCS7 *ossl_check_PKCS7_type(PKCS7 *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_PKCS7_sk_type(const struct stack_st_PKCS7 *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_PKCS7_sk_type(struct stack_st_PKCS7 *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_PKCS7_compfunc_type(sk_PKCS7_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_PKCS7_copyfunc_type(sk_PKCS7_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_PKCS7_freefunc_type(sk_PKCS7_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 305 "/usr/include/openssl/pkcs7.h" 3 4 2935449: extern PKCS7_ISSUER_AND_SERIAL *PKCS7_ISSUER_AND_SERIAL_new(void); extern void PKCS7_ISSUER_AND_SERIAL_free(PKCS7_ISSUER_AND_SERIAL *a); extern PKCS7_ISSUER_AND_SERIAL *d2i_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL **a, const unsigned char **in, long len); extern int i2d_PKCS7_ISSUER_AND_SERIAL(const PKCS7_ISSUER_AND_SERIAL *a, unsigned char **out); extern const ASN1_ITEM * PKCS7_ISSUER_AND_SERIAL_it(void); 2935449: 2935449: int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, 2935449: const EVP_MD *type, unsigned char *md, 2935449: unsigned int *len); 2935449: 2935449: PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); 2935449: int i2d_PKCS7_fp(FILE *fp, const PKCS7 *p7); 2935449: 2935449: extern PKCS7 *PKCS7_dup(const PKCS7 *a); 2935449: PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); 2935449: int i2d_PKCS7_bio(BIO *bp, const PKCS7 *p7); 2935449: int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); 2935449: int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); 2935449: 2935449: extern PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new(void); extern void PKCS7_SIGNER_INFO_free(PKCS7_SIGNER_INFO *a); extern PKCS7_SIGNER_INFO *d2i_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO **a, const unsigned char **in, long len); extern int i2d_PKCS7_SIGNER_INFO(const PKCS7_SIGNER_INFO *a, unsigned char **out); extern const ASN1_ITEM * PKCS7_SIGNER_INFO_it(void); 2935449: extern PKCS7_RECIP_INFO *PKCS7_RECIP_INFO_new(void); extern void PKCS7_RECIP_INFO_free(PKCS7_RECIP_INFO *a); extern PKCS7_RECIP_INFO *d2i_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO **a, const unsigned char **in, long len); extern int i2d_PKCS7_RECIP_INFO(const PKCS7_RECIP_INFO *a, unsigned char **out); extern const ASN1_ITEM * PKCS7_RECIP_INFO_it(void); 2935449: extern PKCS7_SIGNED *PKCS7_SIGNED_new(void); extern void PKCS7_SIGNED_free(PKCS7_SIGNED *a); extern PKCS7_SIGNED *d2i_PKCS7_SIGNED(PKCS7_SIGNED **a, const unsigned char **in, long len); extern int i2d_PKCS7_SIGNED(const PKCS7_SIGNED *a, unsigned char **out); extern const ASN1_ITEM * PKCS7_SIGNED_it(void); 2935449: extern PKCS7_ENC_CONTENT *PKCS7_ENC_CONTENT_new(void); extern void PKCS7_ENC_CONTENT_free(PKCS7_ENC_CONTENT *a); extern PKCS7_ENC_CONTENT *d2i_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT **a, const unsigned char **in, long len); extern int i2d_PKCS7_ENC_CONTENT(const PKCS7_ENC_CONTENT *a, unsigned char **out); extern const ASN1_ITEM * PKCS7_ENC_CONTENT_it(void); 2935449: extern PKCS7_ENVELOPE *PKCS7_ENVELOPE_new(void); extern void PKCS7_ENVELOPE_free(PKCS7_ENVELOPE *a); extern PKCS7_ENVELOPE *d2i_PKCS7_ENVELOPE(PKCS7_ENVELOPE **a, const unsigned char **in, long len); extern int i2d_PKCS7_ENVELOPE(const PKCS7_ENVELOPE *a, unsigned char **out); extern const ASN1_ITEM * PKCS7_ENVELOPE_it(void); 2935449: extern PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void); extern void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a); extern PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a, const unsigned char **in, long len); extern int i2d_PKCS7_SIGN_ENVELOPE(const PKCS7_SIGN_ENVELOPE *a, unsigned char **out); extern const ASN1_ITEM * PKCS7_SIGN_ENVELOPE_it(void); 2935449: extern PKCS7_DIGEST *PKCS7_DIGEST_new(void); extern void PKCS7_DIGEST_free(PKCS7_DIGEST *a); extern PKCS7_DIGEST *d2i_PKCS7_DIGEST(PKCS7_DIGEST **a, const unsigned char **in, long len); extern int i2d_PKCS7_DIGEST(const PKCS7_DIGEST *a, unsigned char **out); extern const ASN1_ITEM * PKCS7_DIGEST_it(void); 2935449: extern PKCS7_ENCRYPT *PKCS7_ENCRYPT_new(void); extern void PKCS7_ENCRYPT_free(PKCS7_ENCRYPT *a); extern PKCS7_ENCRYPT *d2i_PKCS7_ENCRYPT(PKCS7_ENCRYPT **a, const unsigned char **in, long len); extern int i2d_PKCS7_ENCRYPT(const PKCS7_ENCRYPT *a, unsigned char **out); extern const ASN1_ITEM * PKCS7_ENCRYPT_it(void); 2935449: extern PKCS7 *PKCS7_new(void); extern void PKCS7_free(PKCS7 *a); extern PKCS7 *d2i_PKCS7(PKCS7 **a, const unsigned char **in, long len); extern int i2d_PKCS7(const PKCS7 *a, unsigned char **out); extern const ASN1_ITEM * PKCS7_it(void); 2935449: PKCS7 *PKCS7_new_ex(OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: extern const ASN1_ITEM * PKCS7_ATTR_SIGN_it(void); 2935449: extern const ASN1_ITEM * PKCS7_ATTR_VERIFY_it(void); 2935449: 2935449: extern int i2d_PKCS7_NDEF(const PKCS7 *a, unsigned char **out); 2935449: extern int PKCS7_print_ctx(BIO *out, const PKCS7 *x, int indent, const ASN1_PCTX *pctx); 2935449: 2935449: long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); 2935449: 2935449: int PKCS7_type_is_other(PKCS7 *p7); 2935449: int PKCS7_set_type(PKCS7 *p7, int type); 2935449: int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); 2935449: int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); 2935449: int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, 2935449: const EVP_MD *dgst); 2935449: int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); 2935449: int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); 2935449: int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); 2935449: int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); 2935449: int PKCS7_content_new(PKCS7 *p7, int nid); 2935449: int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, 2935449: BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); 2935449: int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, 2935449: X509 *signer); 2935449: 2935449: BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); 2935449: int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); 2935449: BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); 2935449: 2935449: PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, 2935449: EVP_PKEY *pkey, const EVP_MD *dgst); 2935449: X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); 2935449: int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); 2935449: struct stack_st_PKCS7_SIGNER_INFO *PKCS7_get_signer_info(PKCS7 *p7); 2935449: 2935449: PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); 2935449: void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, 2935449: X509_ALGOR **pdig, X509_ALGOR **psig); 2935449: void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); 2935449: int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); 2935449: int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); 2935449: int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); 2935449: int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); 2935449: 2935449: PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); 2935449: ASN1_OCTET_STRING *PKCS7_get_octet_string(PKCS7 *p7); 2935449: ASN1_OCTET_STRING *PKCS7_digest_from_attributes(struct stack_st_X509_ATTRIBUTE *sk); 2935449: int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, 2935449: void *data); 2935449: int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, 2935449: void *value); 2935449: ASN1_TYPE *PKCS7_get_attribute(const PKCS7_SIGNER_INFO *si, int nid); 2935449: ASN1_TYPE *PKCS7_get_signed_attribute(const PKCS7_SIGNER_INFO *si, int nid); 2935449: int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, 2935449: struct stack_st_X509_ATTRIBUTE *sk); 2935449: int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, 2935449: struct stack_st_X509_ATTRIBUTE *sk); 2935449: 2935449: PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, struct stack_st_X509 *certs, 2935449: BIO *data, int flags); 2935449: PKCS7 *PKCS7_sign_ex(X509 *signcert, EVP_PKEY *pkey, struct stack_st_X509 *certs, 2935449: BIO *data, int flags, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: 2935449: PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, 2935449: X509 *signcert, EVP_PKEY *pkey, 2935449: const EVP_MD *md, int flags); 2935449: 2935449: int PKCS7_final(PKCS7 *p7, BIO *data, int flags); 2935449: int PKCS7_verify(PKCS7 *p7, struct stack_st_X509 *certs, X509_STORE *store, 2935449: BIO *indata, BIO *out, int flags); 2935449: struct stack_st_X509 *PKCS7_get0_signers(PKCS7 *p7, struct stack_st_X509 *certs, 2935449: int flags); 2935449: PKCS7 *PKCS7_encrypt(struct stack_st_X509 *certs, BIO *in, const EVP_CIPHER *cipher, 2935449: int flags); 2935449: PKCS7 *PKCS7_encrypt_ex(struct stack_st_X509 *certs, BIO *in, 2935449: const EVP_CIPHER *cipher, int flags, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, 2935449: int flags); 2935449: 2935449: int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, 2935449: struct stack_st_X509_ALGOR *cap); 2935449: struct stack_st_X509_ALGOR *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); 2935449: int PKCS7_simple_smimecap(struct stack_st_X509_ALGOR *sk, int nid, int arg); 2935449: 2935449: int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); 2935449: int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); 2935449: int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, 2935449: const unsigned char *md, int mdlen); 2935449: 2935449: int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); 2935449: PKCS7 *SMIME_read_PKCS7_ex(BIO *bio, BIO **bcont, PKCS7 **p7); 2935449: PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); 2935449: 2935449: BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); 2935449: 2935449: 2935449: } 2935449: # 497 "/usr/include/openssl/x509.h" 2 3 4 2935449: 2935449: 2935449: extern "C" { 2935449: # 509 "/usr/include/openssl/x509.h" 3 4 2935449: void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); 2935449: X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), 2935449: int (*crl_free) (X509_CRL *crl), 2935449: int (*crl_lookup) (X509_CRL *crl, 2935449: X509_REVOKED **ret, 2935449: const 2935449: ASN1_INTEGER *serial, 2935449: const 2935449: X509_NAME *issuer), 2935449: int (*crl_verify) (X509_CRL *crl, 2935449: EVP_PKEY *pk)); 2935449: void X509_CRL_METHOD_free(X509_CRL_METHOD *m); 2935449: 2935449: void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); 2935449: void *X509_CRL_get_meth_data(X509_CRL *crl); 2935449: 2935449: const char *X509_verify_cert_error_string(long n); 2935449: 2935449: int X509_verify(X509 *a, EVP_PKEY *r); 2935449: int X509_self_signed(X509 *cert, int verify_signature); 2935449: 2935449: int X509_REQ_verify_ex(X509_REQ *a, EVP_PKEY *r, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); 2935449: int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); 2935449: int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); 2935449: 2935449: NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); 2935449: char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); 2935449: EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); 2935449: int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); 2935449: 2935449: int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); 2935449: 2935449: int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); 2935449: int X509_signature_print(BIO *bp, const X509_ALGOR *alg, 2935449: const ASN1_STRING *sig); 2935449: 2935449: int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); 2935449: int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); 2935449: int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); 2935449: int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); 2935449: int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); 2935449: int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); 2935449: int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); 2935449: 2935449: int X509_pubkey_digest(const X509 *data, const EVP_MD *type, 2935449: unsigned char *md, unsigned int *len); 2935449: int X509_digest(const X509 *data, const EVP_MD *type, 2935449: unsigned char *md, unsigned int *len); 2935449: ASN1_OCTET_STRING *X509_digest_sig(const X509 *cert, 2935449: EVP_MD **md_used, int *md_is_fallback); 2935449: int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, 2935449: unsigned char *md, unsigned int *len); 2935449: int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, 2935449: unsigned char *md, unsigned int *len); 2935449: int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, 2935449: unsigned char *md, unsigned int *len); 2935449: 2935449: X509 *X509_load_http(const char *url, BIO *bio, BIO *rbio, int timeout); 2935449: X509_CRL *X509_CRL_load_http(const char *url, BIO *bio, BIO *rbio, int timeout); 2935449: 2935449: # 1 "/usr/include/openssl/http.h" 1 3 4 2935449: # 13 "/usr/include/openssl/http.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/conf.h" 1 3 4 2935449: # 17 "/usr/include/openssl/conf.h" 3 4 2935449: 2935449: # 28 "/usr/include/openssl/conf.h" 3 4 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 29 "/usr/include/openssl/conf.h" 2 3 4 2935449: # 1 "/usr/include/openssl/conferr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/conferr.h" 3 4 2935449: 2935449: # 30 "/usr/include/openssl/conf.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: typedef struct { 2935449: char *section; 2935449: char *name; 2935449: char *value; 2935449: } CONF_VALUE; 2935449: 2935449: struct stack_st_CONF_VALUE; typedef int (*sk_CONF_VALUE_compfunc)(const CONF_VALUE * const *a, const CONF_VALUE *const *b); typedef void (*sk_CONF_VALUE_freefunc)(CONF_VALUE *a); typedef CONF_VALUE * (*sk_CONF_VALUE_copyfunc)(const CONF_VALUE *a); static __attribute__((unused)) inline CONF_VALUE *ossl_check_CONF_VALUE_type(CONF_VALUE *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_CONF_VALUE_sk_type(const struct stack_st_CONF_VALUE *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_CONF_VALUE_sk_type(struct stack_st_CONF_VALUE *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_CONF_VALUE_compfunc_type(sk_CONF_VALUE_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_CONF_VALUE_copyfunc_type(sk_CONF_VALUE_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_CONF_VALUE_freefunc_type(sk_CONF_VALUE_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 70 "/usr/include/openssl/conf.h" 3 4 2935449: struct lhash_st_CONF_VALUE { union lh_CONF_VALUE_dummy { void* d1; unsigned long d2; int d3; } dummy; }; typedef int (*lh_CONF_VALUE_compfunc)(const CONF_VALUE *a, const CONF_VALUE *b); typedef unsigned long (*lh_CONF_VALUE_hashfunc)(const CONF_VALUE *a); typedef void (*lh_CONF_VALUE_doallfunc)(CONF_VALUE *a); static inline unsigned long lh_CONF_VALUE_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) { unsigned long (*hfn_conv)(const CONF_VALUE *) = (unsigned long (*)(const CONF_VALUE *))hfn; return hfn_conv((const CONF_VALUE *)data); } static inline int lh_CONF_VALUE_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) { int (*cfn_conv)(const CONF_VALUE *, const CONF_VALUE *) = (int (*)(const CONF_VALUE *, const CONF_VALUE *))cfn; return cfn_conv((const CONF_VALUE *)da, (const CONF_VALUE *)db); } static inline void lh_CONF_VALUE_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) { void (*doall_conv)(CONF_VALUE *) = (void (*)(CONF_VALUE *))doall; doall_conv((CONF_VALUE *)node); } static inline void lh_CONF_VALUE_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) { void (*doall_conv)(CONF_VALUE *, void *) = (void (*)(CONF_VALUE *, void *))doall; doall_conv((CONF_VALUE *)node, arg); } static __attribute__((unused)) inline CONF_VALUE * ossl_check_CONF_VALUE_lh_plain_type(CONF_VALUE *ptr) { return ptr; } static __attribute__((unused)) inline const CONF_VALUE * ossl_check_const_CONF_VALUE_lh_plain_type(const CONF_VALUE *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_LHASH * ossl_check_const_CONF_VALUE_lh_type(const struct lhash_st_CONF_VALUE *lh) { return (const OPENSSL_LHASH *)lh; } static __attribute__((unused)) inline OPENSSL_LHASH * ossl_check_CONF_VALUE_lh_type(struct lhash_st_CONF_VALUE *lh) { return (OPENSSL_LHASH *)lh; } static __attribute__((unused)) inline OPENSSL_LH_COMPFUNC ossl_check_CONF_VALUE_lh_compfunc_type(lh_CONF_VALUE_compfunc cmp) { return (OPENSSL_LH_COMPFUNC)cmp; } static __attribute__((unused)) inline OPENSSL_LH_HASHFUNC ossl_check_CONF_VALUE_lh_hashfunc_type(lh_CONF_VALUE_hashfunc hfn) { return (OPENSSL_LH_HASHFUNC)hfn; } static __attribute__((unused)) inline OPENSSL_LH_DOALL_FUNC ossl_check_CONF_VALUE_lh_doallfunc_type(lh_CONF_VALUE_doallfunc dfn) { return (OPENSSL_LH_DOALL_FUNC)dfn; } struct lhash_st_CONF_VALUE; 2935449: # 87 "/usr/include/openssl/conf.h" 3 4 2935449: struct conf_st; 2935449: struct conf_method_st; 2935449: typedef struct conf_method_st CONF_METHOD; 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/conftypes.h" 1 3 4 2935449: # 12 "/usr/include/openssl/conftypes.h" 3 4 2935449: 2935449: # 21 "/usr/include/openssl/conftypes.h" 3 4 2935449: struct conf_method_st { 2935449: const char *name; 2935449: CONF *(*create) (CONF_METHOD *meth); 2935449: int (*init) (CONF *conf); 2935449: int (*destroy) (CONF *conf); 2935449: int (*destroy_data) (CONF *conf); 2935449: int (*load_bio) (CONF *conf, BIO *bp, long *eline); 2935449: int (*dump) (const CONF *conf, BIO *bp); 2935449: int (*is_number) (const CONF *conf, char c); 2935449: int (*to_int) (const CONF *conf, char c); 2935449: int (*load) (CONF *conf, const char *name, long *eline); 2935449: }; 2935449: 2935449: struct conf_st { 2935449: CONF_METHOD *meth; 2935449: void *meth_data; 2935449: struct lhash_st_CONF_VALUE *data; 2935449: int flag_dollarid; 2935449: int flag_abspath; 2935449: char *includedir; 2935449: OSSL_LIB_CTX *libctx; 2935449: }; 2935449: # 93 "/usr/include/openssl/conf.h" 2 3 4 2935449: 2935449: 2935449: 2935449: typedef struct conf_imodule_st CONF_IMODULE; 2935449: typedef struct conf_module_st CONF_MODULE; 2935449: 2935449: struct stack_st_CONF_MODULE; 2935449: struct stack_st_CONF_IMODULE; 2935449: 2935449: 2935449: typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf); 2935449: typedef void conf_finish_func (CONF_IMODULE *md); 2935449: # 113 "/usr/include/openssl/conf.h" 3 4 2935449: int CONF_set_default_method(CONF_METHOD *meth); 2935449: void CONF_set_nconf(CONF *conf, struct lhash_st_CONF_VALUE *hash); 2935449: struct lhash_st_CONF_VALUE *CONF_load(struct lhash_st_CONF_VALUE *conf, const char *file, 2935449: long *eline); 2935449: 2935449: struct lhash_st_CONF_VALUE *CONF_load_fp(struct lhash_st_CONF_VALUE *conf, FILE *fp, 2935449: long *eline); 2935449: 2935449: struct lhash_st_CONF_VALUE *CONF_load_bio(struct lhash_st_CONF_VALUE *conf, BIO *bp, 2935449: long *eline); 2935449: struct stack_st_CONF_VALUE *CONF_get_section(struct lhash_st_CONF_VALUE *conf, 2935449: const char *section); 2935449: char *CONF_get_string(struct lhash_st_CONF_VALUE *conf, const char *group, 2935449: const char *name); 2935449: long CONF_get_number(struct lhash_st_CONF_VALUE *conf, const char *group, 2935449: const char *name); 2935449: void CONF_free(struct lhash_st_CONF_VALUE *conf); 2935449: 2935449: int CONF_dump_fp(struct lhash_st_CONF_VALUE *conf, FILE *out); 2935449: 2935449: int CONF_dump_bio(struct lhash_st_CONF_VALUE *conf, BIO *out); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) void OPENSSL_config(const char *config_name); 2935449: # 148 "/usr/include/openssl/conf.h" 3 4 2935449: CONF *NCONF_new_ex(OSSL_LIB_CTX *libctx, CONF_METHOD *meth); 2935449: OSSL_LIB_CTX *NCONF_get0_libctx(const CONF *conf); 2935449: CONF *NCONF_new(CONF_METHOD *meth); 2935449: CONF_METHOD *NCONF_default(void); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) CONF_METHOD *NCONF_WIN32(void); 2935449: 2935449: void NCONF_free(CONF *conf); 2935449: void NCONF_free_data(CONF *conf); 2935449: 2935449: int NCONF_load(CONF *conf, const char *file, long *eline); 2935449: 2935449: int NCONF_load_fp(CONF *conf, FILE *fp, long *eline); 2935449: 2935449: int NCONF_load_bio(CONF *conf, BIO *bp, long *eline); 2935449: struct stack_st_OPENSSL_CSTRING *NCONF_get_section_names(const CONF *conf); 2935449: struct stack_st_CONF_VALUE *NCONF_get_section(const CONF *conf, 2935449: const char *section); 2935449: char *NCONF_get_string(const CONF *conf, const char *group, const char *name); 2935449: int NCONF_get_number_e(const CONF *conf, const char *group, const char *name, 2935449: long *result); 2935449: 2935449: int NCONF_dump_fp(const CONF *conf, FILE *out); 2935449: 2935449: int NCONF_dump_bio(const CONF *conf, BIO *out); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int CONF_modules_load(const CONF *cnf, const char *appname, 2935449: unsigned long flags); 2935449: int CONF_modules_load_file_ex(OSSL_LIB_CTX *libctx, const char *filename, 2935449: const char *appname, unsigned long flags); 2935449: int CONF_modules_load_file(const char *filename, const char *appname, 2935449: unsigned long flags); 2935449: void CONF_modules_unload(int all); 2935449: void CONF_modules_finish(void); 2935449: 2935449: 2935449: 2935449: int CONF_module_add(const char *name, conf_init_func *ifunc, 2935449: conf_finish_func *ffunc); 2935449: 2935449: const char *CONF_imodule_get_name(const CONF_IMODULE *md); 2935449: const char *CONF_imodule_get_value(const CONF_IMODULE *md); 2935449: void *CONF_imodule_get_usr_data(const CONF_IMODULE *md); 2935449: void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); 2935449: CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md); 2935449: unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md); 2935449: void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); 2935449: void *CONF_module_get_usr_data(CONF_MODULE *pmod); 2935449: void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); 2935449: 2935449: char *CONF_get1_default_config_file(void); 2935449: 2935449: int CONF_parse_list(const char *list, int sep, int nospc, 2935449: int (*list_cb) (const char *elem, int len, void *usr), 2935449: void *arg); 2935449: 2935449: void OPENSSL_load_builtin_modules(void); 2935449: 2935449: 2935449: 2935449: } 2935449: # 20 "/usr/include/openssl/http.h" 2 3 4 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: # 37 "/usr/include/openssl/http.h" 3 4 2935449: int OSSL_parse_url(const char *url, char **pscheme, char **puser, char **phost, 2935449: char **pport, int *pport_num, 2935449: char **ppath, char **pquery, char **pfrag); 2935449: # 50 "/usr/include/openssl/http.h" 3 4 2935449: OSSL_HTTP_REQ_CTX *OSSL_HTTP_REQ_CTX_new(BIO *wbio, BIO *rbio, int buf_size); 2935449: void OSSL_HTTP_REQ_CTX_free(OSSL_HTTP_REQ_CTX *rctx); 2935449: int OSSL_HTTP_REQ_CTX_set_request_line(OSSL_HTTP_REQ_CTX *rctx, int method_POST, 2935449: const char *server, const char *port, 2935449: const char *path); 2935449: int OSSL_HTTP_REQ_CTX_add1_header(OSSL_HTTP_REQ_CTX *rctx, 2935449: const char *name, const char *value); 2935449: int OSSL_HTTP_REQ_CTX_set_expected(OSSL_HTTP_REQ_CTX *rctx, 2935449: const char *content_type, int asn1, 2935449: int timeout, int keep_alive); 2935449: int OSSL_HTTP_REQ_CTX_set1_req(OSSL_HTTP_REQ_CTX *rctx, const char *content_type, 2935449: const ASN1_ITEM *it, const ASN1_VALUE *req); 2935449: int OSSL_HTTP_REQ_CTX_nbio(OSSL_HTTP_REQ_CTX *rctx); 2935449: int OSSL_HTTP_REQ_CTX_nbio_d2i(OSSL_HTTP_REQ_CTX *rctx, 2935449: ASN1_VALUE **pval, const ASN1_ITEM *it); 2935449: BIO *OSSL_HTTP_REQ_CTX_exchange(OSSL_HTTP_REQ_CTX *rctx); 2935449: BIO *OSSL_HTTP_REQ_CTX_get0_mem_bio(const OSSL_HTTP_REQ_CTX *rctx); 2935449: size_t OSSL_HTTP_REQ_CTX_get_resp_len(const OSSL_HTTP_REQ_CTX *rctx); 2935449: void OSSL_HTTP_REQ_CTX_set_max_response_length(OSSL_HTTP_REQ_CTX *rctx, 2935449: unsigned long len); 2935449: void OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines(OSSL_HTTP_REQ_CTX *rctx, 2935449: size_t count); 2935449: int OSSL_HTTP_is_alive(const OSSL_HTTP_REQ_CTX *rctx); 2935449: 2935449: 2935449: typedef BIO *(*OSSL_HTTP_bio_cb_t)(BIO *bio, void *arg, int connect, int detail); 2935449: OSSL_HTTP_REQ_CTX *OSSL_HTTP_open(const char *server, const char *port, 2935449: const char *proxy, const char *no_proxy, 2935449: int use_ssl, BIO *bio, BIO *rbio, 2935449: OSSL_HTTP_bio_cb_t bio_update_fn, void *arg, 2935449: int buf_size, int overall_timeout); 2935449: int OSSL_HTTP_proxy_connect(BIO *bio, const char *server, const char *port, 2935449: const char *proxyuser, const char *proxypass, 2935449: int timeout, BIO *bio_err, const char *prog); 2935449: int OSSL_HTTP_set1_request(OSSL_HTTP_REQ_CTX *rctx, const char *path, 2935449: const struct stack_st_CONF_VALUE *headers, 2935449: const char *content_type, BIO *req, 2935449: const char *expected_content_type, int expect_asn1, 2935449: size_t max_resp_len, int timeout, int keep_alive); 2935449: BIO *OSSL_HTTP_exchange(OSSL_HTTP_REQ_CTX *rctx, char **redirection_url); 2935449: BIO *OSSL_HTTP_get(const char *url, const char *proxy, const char *no_proxy, 2935449: BIO *bio, BIO *rbio, 2935449: OSSL_HTTP_bio_cb_t bio_update_fn, void *arg, 2935449: int buf_size, const struct stack_st_CONF_VALUE *headers, 2935449: const char *expected_content_type, int expect_asn1, 2935449: size_t max_resp_len, int timeout); 2935449: BIO *OSSL_HTTP_transfer(OSSL_HTTP_REQ_CTX **prctx, 2935449: const char *server, const char *port, 2935449: const char *path, int use_ssl, 2935449: const char *proxy, const char *no_proxy, 2935449: BIO *bio, BIO *rbio, 2935449: OSSL_HTTP_bio_cb_t bio_update_fn, void *arg, 2935449: int buf_size, const struct stack_st_CONF_VALUE *headers, 2935449: const char *content_type, BIO *req, 2935449: const char *expected_content_type, int expect_asn1, 2935449: size_t max_resp_len, int timeout, int keep_alive); 2935449: int OSSL_HTTP_close(OSSL_HTTP_REQ_CTX *rctx, int ok); 2935449: 2935449: 2935449: int OSSL_HTTP_parse_url(const char *url, int *pssl, char **puser, char **phost, 2935449: char **pport, int *pport_num, 2935449: char **ppath, char **pquery, char **pfrag); 2935449: const char *OSSL_HTTP_adapt_proxy(const char *proxy, const char *no_proxy, 2935449: const char *server, int use_ssl); 2935449: 2935449: 2935449: 2935449: } 2935449: # 572 "/usr/include/openssl/x509.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: X509 *d2i_X509_fp(FILE *fp, X509 **x509); 2935449: int i2d_X509_fp(FILE *fp, const X509 *x509); 2935449: X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); 2935449: int i2d_X509_CRL_fp(FILE *fp, const X509_CRL *crl); 2935449: X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); 2935449: int i2d_X509_REQ_fp(FILE *fp, const X509_REQ *req); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_RSAPrivateKey_fp(FILE *fp, const RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_RSAPublicKey_fp(FILE *fp, const RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_RSA_PUBKEY_fp(FILE *fp, const RSA *rsa); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_DSA_PUBKEY_fp(FILE *fp, const DSA *dsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_DSAPrivateKey_fp(FILE *fp, const DSA *dsa); 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_EC_PUBKEY_fp(FILE *fp, const EC_KEY *eckey); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_ECPrivateKey_fp(FILE *fp, const EC_KEY *eckey); 2935449: 2935449: 2935449: X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); 2935449: int i2d_PKCS8_fp(FILE *fp, const X509_SIG *p8); 2935449: X509_PUBKEY *d2i_X509_PUBKEY_fp(FILE *fp, X509_PUBKEY **xpk); 2935449: int i2d_X509_PUBKEY_fp(FILE *fp, const X509_PUBKEY *xpk); 2935449: PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, 2935449: PKCS8_PRIV_KEY_INFO **p8inf); 2935449: int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, const PKCS8_PRIV_KEY_INFO *p8inf); 2935449: int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, const EVP_PKEY *key); 2935449: int i2d_PrivateKey_fp(FILE *fp, const EVP_PKEY *pkey); 2935449: EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); 2935449: int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); 2935449: EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); 2935449: 2935449: 2935449: X509 *d2i_X509_bio(BIO *bp, X509 **x509); 2935449: int i2d_X509_bio(BIO *bp, const X509 *x509); 2935449: X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); 2935449: int i2d_X509_CRL_bio(BIO *bp, const X509_CRL *crl); 2935449: X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); 2935449: int i2d_X509_REQ_bio(BIO *bp, const X509_REQ *req); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_RSAPrivateKey_bio(BIO *bp, const RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_RSAPublicKey_bio(BIO *bp, const RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_RSA_PUBKEY_bio(BIO *bp, const RSA *rsa); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_DSA_PUBKEY_bio(BIO *bp, const DSA *dsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_DSAPrivateKey_bio(BIO *bp, const DSA *dsa); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_EC_PUBKEY_bio(BIO *bp, const EC_KEY *eckey); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_ECPrivateKey_bio(BIO *bp, const EC_KEY *eckey); 2935449: 2935449: 2935449: 2935449: X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); 2935449: int i2d_PKCS8_bio(BIO *bp, const X509_SIG *p8); 2935449: X509_PUBKEY *d2i_X509_PUBKEY_bio(BIO *bp, X509_PUBKEY **xpk); 2935449: int i2d_X509_PUBKEY_bio(BIO *bp, const X509_PUBKEY *xpk); 2935449: PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, 2935449: PKCS8_PRIV_KEY_INFO **p8inf); 2935449: int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, const PKCS8_PRIV_KEY_INFO *p8inf); 2935449: int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, const EVP_PKEY *key); 2935449: int i2d_PrivateKey_bio(BIO *bp, const EVP_PKEY *pkey); 2935449: EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); 2935449: int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); 2935449: EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); 2935449: 2935449: extern X509 *X509_dup(const X509 *a); 2935449: extern X509_ALGOR *X509_ALGOR_dup(const X509_ALGOR *a); 2935449: extern X509_ATTRIBUTE *X509_ATTRIBUTE_dup(const X509_ATTRIBUTE *a); 2935449: extern X509_CRL *X509_CRL_dup(const X509_CRL *a); 2935449: extern X509_EXTENSION *X509_EXTENSION_dup(const X509_EXTENSION *a); 2935449: extern X509_PUBKEY *X509_PUBKEY_dup(const X509_PUBKEY *a); 2935449: extern X509_REQ *X509_REQ_dup(const X509_REQ *a); 2935449: extern X509_REVOKED *X509_REVOKED_dup(const X509_REVOKED *a); 2935449: int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, 2935449: void *pval); 2935449: void X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype, 2935449: const void **ppval, const X509_ALGOR *algor); 2935449: void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); 2935449: int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); 2935449: int X509_ALGOR_copy(X509_ALGOR *dest, const X509_ALGOR *src); 2935449: 2935449: extern X509_NAME *X509_NAME_dup(const X509_NAME *a); 2935449: extern X509_NAME_ENTRY *X509_NAME_ENTRY_dup(const X509_NAME_ENTRY *a); 2935449: 2935449: int X509_cmp_time(const ASN1_TIME *s, time_t *t); 2935449: int X509_cmp_current_time(const ASN1_TIME *s); 2935449: int X509_cmp_timeframe(const X509_VERIFY_PARAM *vpm, 2935449: const ASN1_TIME *start, const ASN1_TIME *end); 2935449: ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); 2935449: ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, 2935449: int offset_day, long offset_sec, time_t *t); 2935449: ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); 2935449: 2935449: const char *X509_get_default_cert_area(void); 2935449: const char *X509_get_default_cert_dir(void); 2935449: const char *X509_get_default_cert_file(void); 2935449: const char *X509_get_default_cert_dir_env(void); 2935449: const char *X509_get_default_cert_file_env(void); 2935449: const char *X509_get_default_private_dir(void); 2935449: 2935449: X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); 2935449: X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); 2935449: 2935449: extern X509_ALGOR *X509_ALGOR_new(void); extern void X509_ALGOR_free(X509_ALGOR *a); extern X509_ALGOR *d2i_X509_ALGOR(X509_ALGOR **a, const unsigned char **in, long len); extern int i2d_X509_ALGOR(const X509_ALGOR *a, unsigned char **out); extern const ASN1_ITEM * X509_ALGOR_it(void); 2935449: extern X509_ALGORS *d2i_X509_ALGORS(X509_ALGORS **a, const unsigned char **in, long len); extern int i2d_X509_ALGORS(const X509_ALGORS *a, unsigned char **out); extern const ASN1_ITEM * X509_ALGORS_it(void); 2935449: extern X509_VAL *X509_VAL_new(void); extern void X509_VAL_free(X509_VAL *a); extern X509_VAL *d2i_X509_VAL(X509_VAL **a, const unsigned char **in, long len); extern int i2d_X509_VAL(const X509_VAL *a, unsigned char **out); extern const ASN1_ITEM * X509_VAL_it(void); 2935449: 2935449: extern X509_PUBKEY *X509_PUBKEY_new(void); extern void X509_PUBKEY_free(X509_PUBKEY *a); extern X509_PUBKEY *d2i_X509_PUBKEY(X509_PUBKEY **a, const unsigned char **in, long len); extern int i2d_X509_PUBKEY(const X509_PUBKEY *a, unsigned char **out); extern const ASN1_ITEM * X509_PUBKEY_it(void); 2935449: 2935449: X509_PUBKEY *X509_PUBKEY_new_ex(OSSL_LIB_CTX *libctx, const char *propq); 2935449: int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); 2935449: EVP_PKEY *X509_PUBKEY_get0(const X509_PUBKEY *key); 2935449: EVP_PKEY *X509_PUBKEY_get(const X509_PUBKEY *key); 2935449: int X509_get_pubkey_parameters(EVP_PKEY *pkey, struct stack_st_X509 *chain); 2935449: long X509_get_pathlen(X509 *x); 2935449: extern EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **in, long len); extern int i2d_PUBKEY(const EVP_PKEY *a, unsigned char **out); 2935449: EVP_PKEY *d2i_PUBKEY_ex(EVP_PKEY **a, const unsigned char **pp, long length, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **in, long len); __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_RSA_PUBKEY(const RSA *a, unsigned char **out); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **in, long len); __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_DSA_PUBKEY(const DSA *a, unsigned char **out); 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **in, long len); __attribute__((deprecated("Since OpenSSL " "3.0"))) int i2d_EC_PUBKEY(const EC_KEY *a, unsigned char **out); 2935449: 2935449: 2935449: 2935449: extern X509_SIG *X509_SIG_new(void); extern void X509_SIG_free(X509_SIG *a); extern X509_SIG *d2i_X509_SIG(X509_SIG **a, const unsigned char **in, long len); extern int i2d_X509_SIG(const X509_SIG *a, unsigned char **out); extern const ASN1_ITEM * X509_SIG_it(void); 2935449: void X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg, 2935449: const ASN1_OCTET_STRING **pdigest); 2935449: void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **palg, 2935449: ASN1_OCTET_STRING **pdigest); 2935449: 2935449: extern X509_REQ_INFO *X509_REQ_INFO_new(void); extern void X509_REQ_INFO_free(X509_REQ_INFO *a); extern X509_REQ_INFO *d2i_X509_REQ_INFO(X509_REQ_INFO **a, const unsigned char **in, long len); extern int i2d_X509_REQ_INFO(const X509_REQ_INFO *a, unsigned char **out); extern const ASN1_ITEM * X509_REQ_INFO_it(void); 2935449: extern X509_REQ *X509_REQ_new(void); extern void X509_REQ_free(X509_REQ *a); extern X509_REQ *d2i_X509_REQ(X509_REQ **a, const unsigned char **in, long len); extern int i2d_X509_REQ(const X509_REQ *a, unsigned char **out); extern const ASN1_ITEM * X509_REQ_it(void); 2935449: X509_REQ *X509_REQ_new_ex(OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: extern X509_ATTRIBUTE *X509_ATTRIBUTE_new(void); extern void X509_ATTRIBUTE_free(X509_ATTRIBUTE *a); extern X509_ATTRIBUTE *d2i_X509_ATTRIBUTE(X509_ATTRIBUTE **a, const unsigned char **in, long len); extern int i2d_X509_ATTRIBUTE(const X509_ATTRIBUTE *a, unsigned char **out); extern const ASN1_ITEM * X509_ATTRIBUTE_it(void); 2935449: X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); 2935449: 2935449: extern X509_EXTENSION *X509_EXTENSION_new(void); extern void X509_EXTENSION_free(X509_EXTENSION *a); extern X509_EXTENSION *d2i_X509_EXTENSION(X509_EXTENSION **a, const unsigned char **in, long len); extern int i2d_X509_EXTENSION(const X509_EXTENSION *a, unsigned char **out); extern const ASN1_ITEM * X509_EXTENSION_it(void); 2935449: extern X509_EXTENSIONS *d2i_X509_EXTENSIONS(X509_EXTENSIONS **a, const unsigned char **in, long len); extern int i2d_X509_EXTENSIONS(const X509_EXTENSIONS *a, unsigned char **out); extern const ASN1_ITEM * X509_EXTENSIONS_it(void); 2935449: 2935449: extern X509_NAME_ENTRY *X509_NAME_ENTRY_new(void); extern void X509_NAME_ENTRY_free(X509_NAME_ENTRY *a); extern X509_NAME_ENTRY *d2i_X509_NAME_ENTRY(X509_NAME_ENTRY **a, const unsigned char **in, long len); extern int i2d_X509_NAME_ENTRY(const X509_NAME_ENTRY *a, unsigned char **out); extern const ASN1_ITEM * X509_NAME_ENTRY_it(void); 2935449: 2935449: extern X509_NAME *X509_NAME_new(void); extern void X509_NAME_free(X509_NAME *a); extern X509_NAME *d2i_X509_NAME(X509_NAME **a, const unsigned char **in, long len); extern int i2d_X509_NAME(const X509_NAME *a, unsigned char **out); extern const ASN1_ITEM * X509_NAME_it(void); 2935449: 2935449: int X509_NAME_set(X509_NAME **xn, const X509_NAME *name); 2935449: 2935449: extern X509_CINF *X509_CINF_new(void); extern void X509_CINF_free(X509_CINF *a); extern X509_CINF *d2i_X509_CINF(X509_CINF **a, const unsigned char **in, long len); extern int i2d_X509_CINF(const X509_CINF *a, unsigned char **out); extern const ASN1_ITEM * X509_CINF_it(void); 2935449: extern X509 *X509_new(void); extern void X509_free(X509 *a); extern X509 *d2i_X509(X509 **a, const unsigned char **in, long len); extern int i2d_X509(const X509 *a, unsigned char **out); extern const ASN1_ITEM * X509_it(void); 2935449: X509 *X509_new_ex(OSSL_LIB_CTX *libctx, const char *propq); 2935449: extern X509_CERT_AUX *X509_CERT_AUX_new(void); extern void X509_CERT_AUX_free(X509_CERT_AUX *a); extern X509_CERT_AUX *d2i_X509_CERT_AUX(X509_CERT_AUX **a, const unsigned char **in, long len); extern int i2d_X509_CERT_AUX(const X509_CERT_AUX *a, unsigned char **out); extern const ASN1_ITEM * X509_CERT_AUX_it(void); 2935449: 2935449: 2935449: 2935449: int X509_set_ex_data(X509 *r, int idx, void *arg); 2935449: void *X509_get_ex_data(const X509 *r, int idx); 2935449: extern X509 *d2i_X509_AUX(X509 **a, const unsigned char **in, long len); extern int i2d_X509_AUX(const X509 *a, unsigned char **out); 2935449: 2935449: int i2d_re_X509_tbs(X509 *x, unsigned char **pp); 2935449: 2935449: int X509_SIG_INFO_get(const X509_SIG_INFO *siginf, int *mdnid, int *pknid, 2935449: int *secbits, uint32_t *flags); 2935449: void X509_SIG_INFO_set(X509_SIG_INFO *siginf, int mdnid, int pknid, 2935449: int secbits, uint32_t flags); 2935449: 2935449: int X509_get_signature_info(X509 *x, int *mdnid, int *pknid, int *secbits, 2935449: uint32_t *flags); 2935449: 2935449: void X509_get0_signature(const ASN1_BIT_STRING **psig, 2935449: const X509_ALGOR **palg, const X509 *x); 2935449: int X509_get_signature_nid(const X509 *x); 2935449: 2935449: void X509_set0_distinguishing_id(X509 *x, ASN1_OCTET_STRING *d_id); 2935449: ASN1_OCTET_STRING *X509_get0_distinguishing_id(X509 *x); 2935449: void X509_REQ_set0_distinguishing_id(X509_REQ *x, ASN1_OCTET_STRING *d_id); 2935449: ASN1_OCTET_STRING *X509_REQ_get0_distinguishing_id(X509_REQ *x); 2935449: 2935449: int X509_alias_set1(X509 *x, const unsigned char *name, int len); 2935449: int X509_keyid_set1(X509 *x, const unsigned char *id, int len); 2935449: unsigned char *X509_alias_get0(X509 *x, int *len); 2935449: unsigned char *X509_keyid_get0(X509 *x, int *len); 2935449: 2935449: extern X509_REVOKED *X509_REVOKED_new(void); extern void X509_REVOKED_free(X509_REVOKED *a); extern X509_REVOKED *d2i_X509_REVOKED(X509_REVOKED **a, const unsigned char **in, long len); extern int i2d_X509_REVOKED(const X509_REVOKED *a, unsigned char **out); extern const ASN1_ITEM * X509_REVOKED_it(void); 2935449: extern X509_CRL_INFO *X509_CRL_INFO_new(void); extern void X509_CRL_INFO_free(X509_CRL_INFO *a); extern X509_CRL_INFO *d2i_X509_CRL_INFO(X509_CRL_INFO **a, const unsigned char **in, long len); extern int i2d_X509_CRL_INFO(const X509_CRL_INFO *a, unsigned char **out); extern const ASN1_ITEM * X509_CRL_INFO_it(void); 2935449: extern X509_CRL *X509_CRL_new(void); extern void X509_CRL_free(X509_CRL *a); extern X509_CRL *d2i_X509_CRL(X509_CRL **a, const unsigned char **in, long len); extern int i2d_X509_CRL(const X509_CRL *a, unsigned char **out); extern const ASN1_ITEM * X509_CRL_it(void); 2935449: X509_CRL *X509_CRL_new_ex(OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); 2935449: int X509_CRL_get0_by_serial(X509_CRL *crl, 2935449: X509_REVOKED **ret, const ASN1_INTEGER *serial); 2935449: int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); 2935449: 2935449: X509_PKEY *X509_PKEY_new(void); 2935449: void X509_PKEY_free(X509_PKEY *a); 2935449: 2935449: extern NETSCAPE_SPKI *NETSCAPE_SPKI_new(void); extern void NETSCAPE_SPKI_free(NETSCAPE_SPKI *a); extern NETSCAPE_SPKI *d2i_NETSCAPE_SPKI(NETSCAPE_SPKI **a, const unsigned char **in, long len); extern int i2d_NETSCAPE_SPKI(const NETSCAPE_SPKI *a, unsigned char **out); extern const ASN1_ITEM * NETSCAPE_SPKI_it(void); 2935449: extern NETSCAPE_SPKAC *NETSCAPE_SPKAC_new(void); extern void NETSCAPE_SPKAC_free(NETSCAPE_SPKAC *a); extern NETSCAPE_SPKAC *d2i_NETSCAPE_SPKAC(NETSCAPE_SPKAC **a, const unsigned char **in, long len); extern int i2d_NETSCAPE_SPKAC(const NETSCAPE_SPKAC *a, unsigned char **out); extern const ASN1_ITEM * NETSCAPE_SPKAC_it(void); 2935449: extern NETSCAPE_CERT_SEQUENCE *NETSCAPE_CERT_SEQUENCE_new(void); extern void NETSCAPE_CERT_SEQUENCE_free(NETSCAPE_CERT_SEQUENCE *a); extern NETSCAPE_CERT_SEQUENCE *d2i_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE **a, const unsigned char **in, long len); extern int i2d_NETSCAPE_CERT_SEQUENCE(const NETSCAPE_CERT_SEQUENCE *a, unsigned char **out); extern const ASN1_ITEM * NETSCAPE_CERT_SEQUENCE_it(void); 2935449: 2935449: X509_INFO *X509_INFO_new(void); 2935449: void X509_INFO_free(X509_INFO *a); 2935449: char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, 2935449: ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, 2935449: unsigned char *md, unsigned int *len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, X509_ALGOR *algor2, 2935449: ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey, 2935449: const EVP_MD *type); 2935449: 2935449: int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, 2935449: unsigned char *md, unsigned int *len); 2935449: int ASN1_item_verify(const ASN1_ITEM *it, const X509_ALGOR *alg, 2935449: const ASN1_BIT_STRING *signature, const void *data, 2935449: EVP_PKEY *pkey); 2935449: int ASN1_item_verify_ctx(const ASN1_ITEM *it, const X509_ALGOR *alg, 2935449: const ASN1_BIT_STRING *signature, const void *data, 2935449: EVP_MD_CTX *ctx); 2935449: int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2, 2935449: ASN1_BIT_STRING *signature, const void *data, 2935449: EVP_PKEY *pkey, const EVP_MD *md); 2935449: int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, 2935449: X509_ALGOR *algor2, ASN1_BIT_STRING *signature, 2935449: const void *data, EVP_MD_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: long X509_get_version(const X509 *x); 2935449: int X509_set_version(X509 *x, long version); 2935449: int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); 2935449: ASN1_INTEGER *X509_get_serialNumber(X509 *x); 2935449: const ASN1_INTEGER *X509_get0_serialNumber(const X509 *x); 2935449: int X509_set_issuer_name(X509 *x, const X509_NAME *name); 2935449: X509_NAME *X509_get_issuer_name(const X509 *a); 2935449: int X509_set_subject_name(X509 *x, const X509_NAME *name); 2935449: X509_NAME *X509_get_subject_name(const X509 *a); 2935449: const ASN1_TIME * X509_get0_notBefore(const X509 *x); 2935449: ASN1_TIME *X509_getm_notBefore(const X509 *x); 2935449: int X509_set1_notBefore(X509 *x, const ASN1_TIME *tm); 2935449: const ASN1_TIME *X509_get0_notAfter(const X509 *x); 2935449: ASN1_TIME *X509_getm_notAfter(const X509 *x); 2935449: int X509_set1_notAfter(X509 *x, const ASN1_TIME *tm); 2935449: int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); 2935449: int X509_up_ref(X509 *x); 2935449: int X509_get_signature_type(const X509 *x); 2935449: # 883 "/usr/include/openssl/x509.h" 3 4 2935449: X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x); 2935449: const struct stack_st_X509_EXTENSION *X509_get0_extensions(const X509 *x); 2935449: void X509_get0_uids(const X509 *x, const ASN1_BIT_STRING **piuid, 2935449: const ASN1_BIT_STRING **psuid); 2935449: const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x); 2935449: 2935449: EVP_PKEY *X509_get0_pubkey(const X509 *x); 2935449: EVP_PKEY *X509_get_pubkey(X509 *x); 2935449: ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); 2935449: 2935449: 2935449: 2935449: long X509_REQ_get_version(const X509_REQ *req); 2935449: int X509_REQ_set_version(X509_REQ *x, long version); 2935449: X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req); 2935449: int X509_REQ_set_subject_name(X509_REQ *req, const X509_NAME *name); 2935449: void X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING **psig, 2935449: const X509_ALGOR **palg); 2935449: void X509_REQ_set0_signature(X509_REQ *req, ASN1_BIT_STRING *psig); 2935449: int X509_REQ_set1_signature_algo(X509_REQ *req, X509_ALGOR *palg); 2935449: int X509_REQ_get_signature_nid(const X509_REQ *req); 2935449: int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); 2935449: int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); 2935449: EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); 2935449: EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); 2935449: X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); 2935449: int X509_REQ_extension_nid(int nid); 2935449: int *X509_REQ_get_extension_nids(void); 2935449: void X509_REQ_set_extension_nids(int *nids); 2935449: struct stack_st_X509_EXTENSION *X509_REQ_get_extensions( X509_REQ *req); 2935449: int X509_REQ_add_extensions_nid(X509_REQ *req, 2935449: const struct stack_st_X509_EXTENSION *exts, int nid); 2935449: int X509_REQ_add_extensions(X509_REQ *req, const struct stack_st_X509_EXTENSION *ext); 2935449: int X509_REQ_get_attr_count(const X509_REQ *req); 2935449: int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); 2935449: int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT *obj, 2935449: int lastpos); 2935449: X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); 2935449: X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); 2935449: int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); 2935449: int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, 2935449: const ASN1_OBJECT *obj, int type, 2935449: const unsigned char *bytes, int len); 2935449: int X509_REQ_add1_attr_by_NID(X509_REQ *req, 2935449: int nid, int type, 2935449: const unsigned char *bytes, int len); 2935449: int X509_REQ_add1_attr_by_txt(X509_REQ *req, 2935449: const char *attrname, int type, 2935449: const unsigned char *bytes, int len); 2935449: 2935449: 2935449: 2935449: 2935449: int X509_CRL_set_version(X509_CRL *x, long version); 2935449: int X509_CRL_set_issuer_name(X509_CRL *x, const X509_NAME *name); 2935449: int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); 2935449: int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); 2935449: int X509_CRL_sort(X509_CRL *crl); 2935449: int X509_CRL_up_ref(X509_CRL *crl); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: long X509_CRL_get_version(const X509_CRL *crl); 2935449: const ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl); 2935449: const ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl); 2935449: 2935449: X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl); 2935449: const struct stack_st_X509_EXTENSION *X509_CRL_get0_extensions(const X509_CRL *crl); 2935449: struct stack_st_X509_REVOKED *X509_CRL_get_REVOKED(X509_CRL *crl); 2935449: void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig, 2935449: const X509_ALGOR **palg); 2935449: int X509_CRL_get_signature_nid(const X509_CRL *crl); 2935449: int i2d_re_X509_CRL_tbs(X509_CRL *req, unsigned char **pp); 2935449: 2935449: const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x); 2935449: int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); 2935449: const ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x); 2935449: int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); 2935449: const struct stack_st_X509_EXTENSION * 2935449: X509_REVOKED_get0_extensions(const X509_REVOKED *r); 2935449: 2935449: X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, 2935449: EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); 2935449: 2935449: int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); 2935449: 2935449: int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); 2935449: int X509_chain_check_suiteb(int *perror_depth, 2935449: X509 *x, struct stack_st_X509 *chain, 2935449: unsigned long flags); 2935449: int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); 2935449: void OSSL_STACK_OF_X509_free(struct stack_st_X509 *certs); 2935449: struct stack_st_X509 *X509_chain_up_ref(struct stack_st_X509 *chain); 2935449: 2935449: int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); 2935449: unsigned long X509_issuer_and_serial_hash(X509 *a); 2935449: 2935449: int X509_issuer_name_cmp(const X509 *a, const X509 *b); 2935449: unsigned long X509_issuer_name_hash(X509 *a); 2935449: 2935449: int X509_subject_name_cmp(const X509 *a, const X509 *b); 2935449: unsigned long X509_subject_name_hash(X509 *x); 2935449: 2935449: 2935449: unsigned long X509_issuer_name_hash_old(X509 *a); 2935449: unsigned long X509_subject_name_hash_old(X509 *x); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int X509_add_cert(struct stack_st_X509 *sk, X509 *cert, int flags); 2935449: int X509_add_certs(struct stack_st_X509 *sk, struct stack_st_X509 *certs, int flags); 2935449: 2935449: int X509_cmp(const X509 *a, const X509 *b); 2935449: int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int X509_certificate_type(const X509 *x, 2935449: const EVP_PKEY *pubkey); 2935449: 2935449: unsigned long X509_NAME_hash_ex(const X509_NAME *x, OSSL_LIB_CTX *libctx, 2935449: const char *propq, int *ok); 2935449: unsigned long X509_NAME_hash_old(const X509_NAME *x); 2935449: 2935449: int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); 2935449: int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); 2935449: int X509_aux_print(BIO *out, X509 *x, int indent); 2935449: 2935449: int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, 2935449: unsigned long cflag); 2935449: int X509_print_fp(FILE *bp, X509 *x); 2935449: int X509_CRL_print_fp(FILE *bp, X509_CRL *x); 2935449: int X509_REQ_print_fp(FILE *bp, X509_REQ *req); 2935449: int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent, 2935449: unsigned long flags); 2935449: 2935449: 2935449: int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase); 2935449: int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent, 2935449: unsigned long flags); 2935449: int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, 2935449: unsigned long cflag); 2935449: int X509_print(BIO *bp, X509 *x); 2935449: int X509_ocspid_print(BIO *bp, X509 *x); 2935449: int X509_CRL_print_ex(BIO *out, X509_CRL *x, unsigned long nmflag); 2935449: int X509_CRL_print(BIO *bp, X509_CRL *x); 2935449: int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, 2935449: unsigned long cflag); 2935449: int X509_REQ_print(BIO *bp, X509_REQ *req); 2935449: 2935449: int X509_NAME_entry_count(const X509_NAME *name); 2935449: int X509_NAME_get_text_by_NID(const X509_NAME *name, int nid, 2935449: char *buf, int len); 2935449: int X509_NAME_get_text_by_OBJ(const X509_NAME *name, const ASN1_OBJECT *obj, 2935449: char *buf, int len); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int X509_NAME_get_index_by_NID(const X509_NAME *name, int nid, int lastpos); 2935449: int X509_NAME_get_index_by_OBJ(const X509_NAME *name, const ASN1_OBJECT *obj, 2935449: int lastpos); 2935449: X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name, int loc); 2935449: X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); 2935449: int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne, 2935449: int loc, int set); 2935449: int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int type, 2935449: const unsigned char *bytes, int len, int loc, 2935449: int set); 2935449: int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, 2935449: const unsigned char *bytes, int len, int loc, 2935449: int set); 2935449: X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, 2935449: const char *field, int type, 2935449: const unsigned char *bytes, 2935449: int len); 2935449: X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, 2935449: int type, 2935449: const unsigned char *bytes, 2935449: int len); 2935449: int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, 2935449: const unsigned char *bytes, int len, int loc, 2935449: int set); 2935449: X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, 2935449: const ASN1_OBJECT *obj, int type, 2935449: const unsigned char *bytes, 2935449: int len); 2935449: int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, const ASN1_OBJECT *obj); 2935449: int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, 2935449: const unsigned char *bytes, int len); 2935449: ASN1_OBJECT *X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne); 2935449: ASN1_STRING * X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne); 2935449: int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne); 2935449: 2935449: int X509_NAME_get0_der(const X509_NAME *nm, const unsigned char **pder, 2935449: size_t *pderlen); 2935449: 2935449: int X509v3_get_ext_count(const struct stack_st_X509_EXTENSION *x); 2935449: int X509v3_get_ext_by_NID(const struct stack_st_X509_EXTENSION *x, 2935449: int nid, int lastpos); 2935449: int X509v3_get_ext_by_OBJ(const struct stack_st_X509_EXTENSION *x, 2935449: const ASN1_OBJECT *obj, int lastpos); 2935449: int X509v3_get_ext_by_critical(const struct stack_st_X509_EXTENSION *x, 2935449: int crit, int lastpos); 2935449: X509_EXTENSION *X509v3_get_ext(const struct stack_st_X509_EXTENSION *x, int loc); 2935449: X509_EXTENSION *X509v3_delete_ext(struct stack_st_X509_EXTENSION *x, int loc); 2935449: struct stack_st_X509_EXTENSION *X509v3_add_ext(struct stack_st_X509_EXTENSION **x, 2935449: X509_EXTENSION *ex, int loc); 2935449: struct stack_st_X509_EXTENSION *X509v3_add_extensions(struct stack_st_X509_EXTENSION **target, 2935449: const struct stack_st_X509_EXTENSION *exts); 2935449: 2935449: int X509_get_ext_count(const X509 *x); 2935449: int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); 2935449: int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int lastpos); 2935449: int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos); 2935449: X509_EXTENSION *X509_get_ext(const X509 *x, int loc); 2935449: X509_EXTENSION *X509_delete_ext(X509 *x, int loc); 2935449: int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); 2935449: void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx); 2935449: int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, 2935449: unsigned long flags); 2935449: 2935449: int X509_CRL_get_ext_count(const X509_CRL *x); 2935449: int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos); 2935449: int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj, 2935449: int lastpos); 2935449: int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos); 2935449: X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc); 2935449: X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); 2935449: int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); 2935449: void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx); 2935449: int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, 2935449: unsigned long flags); 2935449: 2935449: int X509_REVOKED_get_ext_count(const X509_REVOKED *x); 2935449: int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int lastpos); 2935449: int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT *obj, 2935449: int lastpos); 2935449: int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit, 2935449: int lastpos); 2935449: X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc); 2935449: X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); 2935449: int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); 2935449: void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int *crit, 2935449: int *idx); 2935449: int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, 2935449: unsigned long flags); 2935449: 2935449: X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, 2935449: int nid, int crit, 2935449: ASN1_OCTET_STRING *data); 2935449: X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, 2935449: const ASN1_OBJECT *obj, int crit, 2935449: ASN1_OCTET_STRING *data); 2935449: int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT *obj); 2935449: int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); 2935449: int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); 2935449: ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); 2935449: ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); 2935449: int X509_EXTENSION_get_critical(const X509_EXTENSION *ex); 2935449: 2935449: int X509at_get_attr_count(const struct stack_st_X509_ATTRIBUTE *x); 2935449: int X509at_get_attr_by_NID(const struct stack_st_X509_ATTRIBUTE *x, int nid, 2935449: int lastpos); 2935449: int X509at_get_attr_by_OBJ(const struct stack_st_X509_ATTRIBUTE *sk, 2935449: const ASN1_OBJECT *obj, int lastpos); 2935449: X509_ATTRIBUTE *X509at_get_attr(const struct stack_st_X509_ATTRIBUTE *x, int loc); 2935449: X509_ATTRIBUTE *X509at_delete_attr(struct stack_st_X509_ATTRIBUTE *x, int loc); 2935449: struct stack_st_X509_ATTRIBUTE *X509at_add1_attr(struct stack_st_X509_ATTRIBUTE **x, 2935449: X509_ATTRIBUTE *attr); 2935449: struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_OBJ(struct stack_st_X509_ATTRIBUTE 2935449: **x, const ASN1_OBJECT *obj, 2935449: int type, 2935449: const unsigned char *bytes, 2935449: int len); 2935449: struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_NID(struct stack_st_X509_ATTRIBUTE 2935449: **x, int nid, int type, 2935449: const unsigned char *bytes, 2935449: int len); 2935449: struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_txt(struct stack_st_X509_ATTRIBUTE 2935449: **x, const char *attrname, 2935449: int type, 2935449: const unsigned char *bytes, 2935449: int len); 2935449: void *X509at_get0_data_by_OBJ(const struct stack_st_X509_ATTRIBUTE *x, 2935449: const ASN1_OBJECT *obj, int lastpos, int type); 2935449: X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, 2935449: int atrtype, const void *data, 2935449: int len); 2935449: X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, 2935449: const ASN1_OBJECT *obj, 2935449: int atrtype, const void *data, 2935449: int len); 2935449: X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, 2935449: const char *atrname, int type, 2935449: const unsigned char *bytes, 2935449: int len); 2935449: int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); 2935449: int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, 2935449: const void *data, int len); 2935449: void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, 2935449: void *data); 2935449: int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr); 2935449: ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); 2935449: ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); 2935449: 2935449: int EVP_PKEY_get_attr_count(const EVP_PKEY *key); 2935449: int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); 2935449: int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, const ASN1_OBJECT *obj, 2935449: int lastpos); 2935449: X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); 2935449: X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); 2935449: int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); 2935449: int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, 2935449: const ASN1_OBJECT *obj, int type, 2935449: const unsigned char *bytes, int len); 2935449: int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, 2935449: int nid, int type, 2935449: const unsigned char *bytes, int len); 2935449: int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, 2935449: const char *attrname, int type, 2935449: const unsigned char *bytes, int len); 2935449: 2935449: 2935449: X509 *X509_find_by_issuer_and_serial(struct stack_st_X509 *sk, const X509_NAME *name, 2935449: const ASN1_INTEGER *serial); 2935449: X509 *X509_find_by_subject(struct stack_st_X509 *sk, const X509_NAME *name); 2935449: 2935449: extern PBEPARAM *PBEPARAM_new(void); extern void PBEPARAM_free(PBEPARAM *a); extern PBEPARAM *d2i_PBEPARAM(PBEPARAM **a, const unsigned char **in, long len); extern int i2d_PBEPARAM(const PBEPARAM *a, unsigned char **out); extern const ASN1_ITEM * PBEPARAM_it(void); 2935449: extern PBE2PARAM *PBE2PARAM_new(void); extern void PBE2PARAM_free(PBE2PARAM *a); extern PBE2PARAM *d2i_PBE2PARAM(PBE2PARAM **a, const unsigned char **in, long len); extern int i2d_PBE2PARAM(const PBE2PARAM *a, unsigned char **out); extern const ASN1_ITEM * PBE2PARAM_it(void); 2935449: extern PBKDF2PARAM *PBKDF2PARAM_new(void); extern void PBKDF2PARAM_free(PBKDF2PARAM *a); extern PBKDF2PARAM *d2i_PBKDF2PARAM(PBKDF2PARAM **a, const unsigned char **in, long len); extern int i2d_PBKDF2PARAM(const PBKDF2PARAM *a, unsigned char **out); extern const ASN1_ITEM * PBKDF2PARAM_it(void); 2935449: extern PBMAC1PARAM *PBMAC1PARAM_new(void); extern void PBMAC1PARAM_free(PBMAC1PARAM *a); extern PBMAC1PARAM *d2i_PBMAC1PARAM(PBMAC1PARAM **a, const unsigned char **in, long len); extern int i2d_PBMAC1PARAM(const PBMAC1PARAM *a, unsigned char **out); extern const ASN1_ITEM * PBMAC1PARAM_it(void); 2935449: 2935449: extern SCRYPT_PARAMS *SCRYPT_PARAMS_new(void); extern void SCRYPT_PARAMS_free(SCRYPT_PARAMS *a); extern SCRYPT_PARAMS *d2i_SCRYPT_PARAMS(SCRYPT_PARAMS **a, const unsigned char **in, long len); extern int i2d_SCRYPT_PARAMS(const SCRYPT_PARAMS *a, unsigned char **out); extern const ASN1_ITEM * SCRYPT_PARAMS_it(void); 2935449: 2935449: 2935449: int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, 2935449: const unsigned char *salt, int saltlen); 2935449: int PKCS5_pbe_set0_algor_ex(X509_ALGOR *algor, int alg, int iter, 2935449: const unsigned char *salt, int saltlen, 2935449: OSSL_LIB_CTX *libctx); 2935449: 2935449: X509_ALGOR *PKCS5_pbe_set(int alg, int iter, 2935449: const unsigned char *salt, int saltlen); 2935449: X509_ALGOR *PKCS5_pbe_set_ex(int alg, int iter, 2935449: const unsigned char *salt, int saltlen, 2935449: OSSL_LIB_CTX *libctx); 2935449: 2935449: X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, 2935449: unsigned char *salt, int saltlen); 2935449: X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, 2935449: unsigned char *salt, int saltlen, 2935449: unsigned char *aiv, int prf_nid); 2935449: X509_ALGOR *PKCS5_pbe2_set_iv_ex(const EVP_CIPHER *cipher, int iter, 2935449: unsigned char *salt, int saltlen, 2935449: unsigned char *aiv, int prf_nid, 2935449: OSSL_LIB_CTX *libctx); 2935449: 2935449: 2935449: X509_ALGOR *PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher, 2935449: const unsigned char *salt, int saltlen, 2935449: unsigned char *aiv, uint64_t N, uint64_t r, 2935449: uint64_t p); 2935449: 2935449: 2935449: X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, 2935449: int prf_nid, int keylen); 2935449: X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, 2935449: int prf_nid, int keylen, 2935449: OSSL_LIB_CTX *libctx); 2935449: 2935449: PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); 2935449: 2935449: 2935449: extern PKCS8_PRIV_KEY_INFO *PKCS8_PRIV_KEY_INFO_new(void); extern void PKCS8_PRIV_KEY_INFO_free(PKCS8_PRIV_KEY_INFO *a); extern PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO **a, const unsigned char **in, long len); extern int i2d_PKCS8_PRIV_KEY_INFO(const PKCS8_PRIV_KEY_INFO *a, unsigned char **out); extern const ASN1_ITEM * PKCS8_PRIV_KEY_INFO_it(void); 2935449: 2935449: EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8); 2935449: EVP_PKEY *EVP_PKCS82PKEY_ex(const PKCS8_PRIV_KEY_INFO *p8, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(const EVP_PKEY *pkey); 2935449: 2935449: int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, 2935449: int version, int ptype, void *pval, 2935449: unsigned char *penc, int penclen); 2935449: int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg, 2935449: const unsigned char **pk, int *ppklen, 2935449: const X509_ALGOR **pa, const PKCS8_PRIV_KEY_INFO *p8); 2935449: 2935449: const struct stack_st_X509_ATTRIBUTE * 2935449: PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8); 2935449: int PKCS8_pkey_add1_attr(PKCS8_PRIV_KEY_INFO *p8, X509_ATTRIBUTE *attr); 2935449: int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int type, 2935449: const unsigned char *bytes, int len); 2935449: int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, 2935449: int type, const unsigned char *bytes, int len); 2935449: 2935449: 2935449: void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, 2935449: unsigned char *penc, int penclen); 2935449: int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, 2935449: int ptype, void *pval, 2935449: unsigned char *penc, int penclen); 2935449: int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, 2935449: const unsigned char **pk, int *ppklen, 2935449: X509_ALGOR **pa, const X509_PUBKEY *pub); 2935449: int X509_PUBKEY_eq(const X509_PUBKEY *a, const X509_PUBKEY *b); 2935449: 2935449: 2935449: } 2935449: # 33 "/usr/include/openssl/ssl.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/pem.h" 1 3 4 2935449: # 12 "/usr/include/openssl/pem.h" 3 4 2935449: 2935449: # 24 "/usr/include/openssl/pem.h" 3 4 2935449: # 1 "/usr/include/openssl/pemerr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/pemerr.h" 3 4 2935449: 2935449: # 25 "/usr/include/openssl/pem.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: # 375 "/usr/include/openssl/pem.h" 3 4 2935449: int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); 2935449: int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, 2935449: pem_password_cb *callback, void *u); 2935449: 2935449: int PEM_read_bio(BIO *bp, char **name, char **header, 2935449: unsigned char **data, long *len); 2935449: 2935449: 2935449: 2935449: int PEM_read_bio_ex(BIO *bp, char **name, char **header, 2935449: unsigned char **data, long *len, unsigned int flags); 2935449: int PEM_bytes_read_bio_secmem(unsigned char **pdata, long *plen, char **pnm, 2935449: const char *name, BIO *bp, pem_password_cb *cb, 2935449: void *u); 2935449: int PEM_write_bio(BIO *bp, const char *name, const char *hdr, 2935449: const unsigned char *data, long len); 2935449: int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, 2935449: const char *name, BIO *bp, pem_password_cb *cb, 2935449: void *u); 2935449: void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, 2935449: pem_password_cb *cb, void *u); 2935449: int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, 2935449: const void *x, const EVP_CIPHER *enc, 2935449: const unsigned char *kstr, int klen, 2935449: pem_password_cb *cb, void *u); 2935449: int PEM_ASN1_write_bio_ctx(OSSL_i2d_of_void_ctx *i2d, void *vctx, 2935449: const char *name, BIO *bp, const void *x, 2935449: const EVP_CIPHER *enc, const unsigned char *kstr, 2935449: int klen, pem_password_cb *cb, void *u); 2935449: 2935449: struct stack_st_X509_INFO *PEM_X509_INFO_read_bio(BIO *bp, struct stack_st_X509_INFO *sk, 2935449: pem_password_cb *cb, void *u); 2935449: struct stack_st_X509_INFO 2935449: *PEM_X509_INFO_read_bio_ex(BIO *bp, struct stack_st_X509_INFO *sk, 2935449: pem_password_cb *cb, void *u, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: 2935449: int PEM_X509_INFO_write_bio(BIO *bp, const X509_INFO *xi, EVP_CIPHER *enc, 2935449: const unsigned char *kstr, int klen, 2935449: pem_password_cb *cd, void *u); 2935449: 2935449: 2935449: int PEM_read(FILE *fp, char **name, char **header, 2935449: unsigned char **data, long *len); 2935449: int PEM_write(FILE *fp, const char *name, const char *hdr, 2935449: const unsigned char *data, long len); 2935449: void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, 2935449: pem_password_cb *cb, void *u); 2935449: int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, 2935449: const void *x, const EVP_CIPHER *enc, 2935449: const unsigned char *kstr, int klen, 2935449: pem_password_cb *callback, void *u); 2935449: struct stack_st_X509_INFO *PEM_X509_INFO_read(FILE *fp, struct stack_st_X509_INFO *sk, 2935449: pem_password_cb *cb, void *u); 2935449: struct stack_st_X509_INFO 2935449: *PEM_X509_INFO_read_ex(FILE *fp, struct stack_st_X509_INFO *sk, pem_password_cb *cb, 2935449: void *u, OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: 2935449: int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); 2935449: int PEM_SignUpdate(EVP_MD_CTX *ctx, const unsigned char *d, unsigned int cnt); 2935449: int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, 2935449: unsigned int *siglen, EVP_PKEY *pkey); 2935449: 2935449: 2935449: int PEM_def_callback(char *buf, int num, int rwflag, void *userdata); 2935449: void PEM_proc_type(char *buf, int type); 2935449: void PEM_dek_info(char *buf, const char *type, int len, const char *str); 2935449: 2935449: 2935449: 2935449: extern X509 *PEM_read_bio_X509(BIO *out, X509 **x, pem_password_cb *cb, void *u); extern X509 *PEM_read_X509(FILE *out, X509 **x, pem_password_cb *cb, void *u); extern int PEM_write_bio_X509(BIO *out, const X509 *x); extern int PEM_write_X509(FILE *out, const X509 *x); 2935449: extern X509 *PEM_read_bio_X509_AUX(BIO *out, X509 **x, pem_password_cb *cb, void *u); extern X509 *PEM_read_X509_AUX(FILE *out, X509 **x, pem_password_cb *cb, void *u); extern int PEM_write_bio_X509_AUX(BIO *out, const X509 *x); extern int PEM_write_X509_AUX(FILE *out, const X509 *x); 2935449: extern X509_REQ *PEM_read_bio_X509_REQ(BIO *out, X509_REQ **x, pem_password_cb *cb, void *u); extern X509_REQ *PEM_read_X509_REQ(FILE *out, X509_REQ **x, pem_password_cb *cb, void *u); extern int PEM_write_bio_X509_REQ(BIO *out, const X509_REQ *x); extern int PEM_write_X509_REQ(FILE *out, const X509_REQ *x); 2935449: extern int PEM_write_bio_X509_REQ_NEW(BIO *out, const X509_REQ *x); extern int PEM_write_X509_REQ_NEW(FILE *out, const X509_REQ *x); 2935449: extern X509_CRL *PEM_read_bio_X509_CRL(BIO *out, X509_CRL **x, pem_password_cb *cb, void *u); extern X509_CRL *PEM_read_X509_CRL(FILE *out, X509_CRL **x, pem_password_cb *cb, void *u); extern int PEM_write_bio_X509_CRL(BIO *out, const X509_CRL *x); extern int PEM_write_X509_CRL(FILE *out, const X509_CRL *x); 2935449: extern X509_PUBKEY *PEM_read_bio_X509_PUBKEY(BIO *out, X509_PUBKEY **x, pem_password_cb *cb, void *u); extern X509_PUBKEY *PEM_read_X509_PUBKEY(FILE *out, X509_PUBKEY **x, pem_password_cb *cb, void *u); extern int PEM_write_bio_X509_PUBKEY(BIO *out, const X509_PUBKEY *x); extern int PEM_write_X509_PUBKEY(FILE *out, const X509_PUBKEY *x); 2935449: extern PKCS7 *PEM_read_bio_PKCS7(BIO *out, PKCS7 **x, pem_password_cb *cb, void *u); extern PKCS7 *PEM_read_PKCS7(FILE *out, PKCS7 **x, pem_password_cb *cb, void *u); extern int PEM_write_bio_PKCS7(BIO *out, const PKCS7 *x); extern int PEM_write_PKCS7(FILE *out, const PKCS7 *x); 2935449: extern NETSCAPE_CERT_SEQUENCE *PEM_read_bio_NETSCAPE_CERT_SEQUENCE(BIO *out, NETSCAPE_CERT_SEQUENCE **x, pem_password_cb *cb, void *u); extern NETSCAPE_CERT_SEQUENCE *PEM_read_NETSCAPE_CERT_SEQUENCE(FILE *out, NETSCAPE_CERT_SEQUENCE **x, pem_password_cb *cb, void *u); extern int PEM_write_bio_NETSCAPE_CERT_SEQUENCE(BIO *out, const NETSCAPE_CERT_SEQUENCE *x); extern int PEM_write_NETSCAPE_CERT_SEQUENCE(FILE *out, const NETSCAPE_CERT_SEQUENCE *x); 2935449: extern X509_SIG *PEM_read_bio_PKCS8(BIO *out, X509_SIG **x, pem_password_cb *cb, void *u); extern X509_SIG *PEM_read_PKCS8(FILE *out, X509_SIG **x, pem_password_cb *cb, void *u); extern int PEM_write_bio_PKCS8(BIO *out, const X509_SIG *x); extern int PEM_write_PKCS8(FILE *out, const X509_SIG *x); 2935449: extern PKCS8_PRIV_KEY_INFO *PEM_read_bio_PKCS8_PRIV_KEY_INFO(BIO *out, PKCS8_PRIV_KEY_INFO **x, pem_password_cb *cb, void *u); extern PKCS8_PRIV_KEY_INFO *PEM_read_PKCS8_PRIV_KEY_INFO(FILE *out, PKCS8_PRIV_KEY_INFO **x, pem_password_cb *cb, void *u); extern int PEM_write_bio_PKCS8_PRIV_KEY_INFO(BIO *out, const PKCS8_PRIV_KEY_INFO *x); extern int PEM_write_PKCS8_PRIV_KEY_INFO(FILE *out, const PKCS8_PRIV_KEY_INFO *x); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *PEM_read_bio_RSAPrivateKey(BIO *out, RSA **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *PEM_read_RSAPrivateKey(FILE *out, RSA **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_bio_RSAPrivateKey(BIO *out, const RSA *x, const EVP_CIPHER *enc, const unsigned char *kstr, int klen, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_RSAPrivateKey(FILE *out, const RSA *x, const EVP_CIPHER *enc, const unsigned char *kstr, int klen, pem_password_cb *cb, void *u); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *PEM_read_bio_RSAPublicKey(BIO *out, RSA **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *PEM_read_RSAPublicKey(FILE *out, RSA **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_bio_RSAPublicKey(BIO *out, const RSA *x); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_RSAPublicKey(FILE *out, const RSA *x); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *PEM_read_bio_RSA_PUBKEY(BIO *out, RSA **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) RSA *PEM_read_RSA_PUBKEY(FILE *out, RSA **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_bio_RSA_PUBKEY(BIO *out, const RSA *x); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_RSA_PUBKEY(FILE *out, const RSA *x); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *PEM_read_bio_DSAPrivateKey(BIO *out, DSA **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *PEM_read_DSAPrivateKey(FILE *out, DSA **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_bio_DSAPrivateKey(BIO *out, const DSA *x, const EVP_CIPHER *enc, const unsigned char *kstr, int klen, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_DSAPrivateKey(FILE *out, const DSA *x, const EVP_CIPHER *enc, const unsigned char *kstr, int klen, pem_password_cb *cb, void *u); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *PEM_read_bio_DSA_PUBKEY(BIO *out, DSA **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *PEM_read_DSA_PUBKEY(FILE *out, DSA **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_bio_DSA_PUBKEY(BIO *out, const DSA *x); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_DSA_PUBKEY(FILE *out, const DSA *x); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *PEM_read_bio_DSAparams(BIO *out, DSA **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) DSA *PEM_read_DSAparams(FILE *out, DSA **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_bio_DSAparams(BIO *out, const DSA *x); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_DSAparams(FILE *out, const DSA *x); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_GROUP *PEM_read_bio_ECPKParameters(BIO *out, EC_GROUP **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_GROUP *PEM_read_ECPKParameters(FILE *out, EC_GROUP **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_bio_ECPKParameters(BIO *out, const EC_GROUP *x); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_ECPKParameters(FILE *out, const EC_GROUP *x); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *PEM_read_bio_ECPrivateKey(BIO *out, EC_KEY **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *PEM_read_ECPrivateKey(FILE *out, EC_KEY **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_bio_ECPrivateKey(BIO *out, const EC_KEY *x, const EVP_CIPHER *enc, const unsigned char *kstr, int klen, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_ECPrivateKey(FILE *out, const EC_KEY *x, const EVP_CIPHER *enc, const unsigned char *kstr, int klen, pem_password_cb *cb, void *u); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *PEM_read_bio_EC_PUBKEY(BIO *out, EC_KEY **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) EC_KEY *PEM_read_EC_PUBKEY(FILE *out, EC_KEY **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_bio_EC_PUBKEY(BIO *out, const EC_KEY *x); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_EC_PUBKEY(FILE *out, const EC_KEY *x); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) DH *PEM_read_bio_DHparams(BIO *out, DH **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) DH *PEM_read_DHparams(FILE *out, DH **x, pem_password_cb *cb, void *u); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_bio_DHparams(BIO *out, const DH *x); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_DHparams(FILE *out, const DH *x); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_bio_DHxparams(BIO *out, const DH *x); __attribute__((deprecated("Since OpenSSL " "3.0"))) int PEM_write_DHxparams(FILE *out, const DH *x); 2935449: 2935449: 2935449: extern EVP_PKEY *PEM_read_bio_PrivateKey(BIO *out, EVP_PKEY **x, pem_password_cb *cb, void *u); extern EVP_PKEY *PEM_read_bio_PrivateKey_ex(BIO *out, EVP_PKEY **x, pem_password_cb *cb, void *u, OSSL_LIB_CTX *libctx, const char *propq); extern EVP_PKEY *PEM_read_PrivateKey(FILE *out, EVP_PKEY **x, pem_password_cb *cb, void *u); extern EVP_PKEY *PEM_read_PrivateKey_ex(FILE *out, EVP_PKEY **x, pem_password_cb *cb, void *u, OSSL_LIB_CTX *libctx, const char *propq); extern int PEM_write_bio_PrivateKey(BIO *out, const EVP_PKEY *x, const EVP_CIPHER *enc, const unsigned char *kstr, int klen, pem_password_cb *cb, void *u); extern int PEM_write_bio_PrivateKey_ex(BIO *out, const EVP_PKEY *x, const EVP_CIPHER *enc, const unsigned char *kstr, int klen, pem_password_cb *cb, void *u, OSSL_LIB_CTX *libctx, const char *propq); extern int PEM_write_PrivateKey(FILE *out, const EVP_PKEY *x, const EVP_CIPHER *enc, const unsigned char *kstr, int klen, pem_password_cb *cb, void *u); extern int PEM_write_PrivateKey_ex(FILE *out, const EVP_PKEY *x, const EVP_CIPHER *enc, const unsigned char *kstr, int klen, pem_password_cb *cb, void *u, OSSL_LIB_CTX *libctx, const char *propq); 2935449: extern EVP_PKEY *PEM_read_bio_PUBKEY(BIO *out, EVP_PKEY **x, pem_password_cb *cb, void *u); extern EVP_PKEY *PEM_read_bio_PUBKEY_ex(BIO *out, EVP_PKEY **x, pem_password_cb *cb, void *u, OSSL_LIB_CTX *libctx, const char *propq); extern EVP_PKEY *PEM_read_PUBKEY(FILE *out, EVP_PKEY **x, pem_password_cb *cb, void *u); extern EVP_PKEY *PEM_read_PUBKEY_ex(FILE *out, EVP_PKEY **x, pem_password_cb *cb, void *u, OSSL_LIB_CTX *libctx, const char *propq); extern int PEM_write_bio_PUBKEY(BIO *out, const EVP_PKEY *x); extern int PEM_write_bio_PUBKEY_ex(BIO *out, const EVP_PKEY *x, OSSL_LIB_CTX *libctx, const char *propq); extern int PEM_write_PUBKEY(FILE *out, const EVP_PKEY *x); extern int PEM_write_PUBKEY_ex(FILE *out, const EVP_PKEY *x, OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: int PEM_write_bio_PrivateKey_traditional(BIO *bp, const EVP_PKEY *x, 2935449: const EVP_CIPHER *enc, 2935449: const unsigned char *kstr, int klen, 2935449: pem_password_cb *cb, void *u); 2935449: 2935449: 2935449: int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, const EVP_PKEY *x, int nid, 2935449: const char *kstr, int klen, 2935449: pem_password_cb *cb, void *u); 2935449: int PEM_write_bio_PKCS8PrivateKey(BIO *, const EVP_PKEY *, const EVP_CIPHER *, 2935449: const char *kstr, int klen, 2935449: pem_password_cb *cb, void *u); 2935449: int i2d_PKCS8PrivateKey_bio(BIO *bp, const EVP_PKEY *x, const EVP_CIPHER *enc, 2935449: const char *kstr, int klen, 2935449: pem_password_cb *cb, void *u); 2935449: int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, const EVP_PKEY *x, int nid, 2935449: const char *kstr, int klen, 2935449: pem_password_cb *cb, void *u); 2935449: EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, 2935449: void *u); 2935449: 2935449: 2935449: int i2d_PKCS8PrivateKey_fp(FILE *fp, const EVP_PKEY *x, const EVP_CIPHER *enc, 2935449: const char *kstr, int klen, 2935449: pem_password_cb *cb, void *u); 2935449: int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, const EVP_PKEY *x, int nid, 2935449: const char *kstr, int klen, 2935449: pem_password_cb *cb, void *u); 2935449: int PEM_write_PKCS8PrivateKey_nid(FILE *fp, const EVP_PKEY *x, int nid, 2935449: const char *kstr, int klen, 2935449: pem_password_cb *cb, void *u); 2935449: 2935449: EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, 2935449: void *u); 2935449: 2935449: int PEM_write_PKCS8PrivateKey(FILE *fp, const EVP_PKEY *x, const EVP_CIPHER *enc, 2935449: const char *kstr, int klen, 2935449: pem_password_cb *cd, void *u); 2935449: 2935449: EVP_PKEY *PEM_read_bio_Parameters_ex(BIO *bp, EVP_PKEY **x, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); 2935449: int PEM_write_bio_Parameters(BIO *bp, const EVP_PKEY *x); 2935449: 2935449: EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length); 2935449: EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length); 2935449: EVP_PKEY *b2i_PrivateKey_bio(BIO *in); 2935449: EVP_PKEY *b2i_PublicKey_bio(BIO *in); 2935449: int i2b_PrivateKey_bio(BIO *out, const EVP_PKEY *pk); 2935449: int i2b_PublicKey_bio(BIO *out, const EVP_PKEY *pk); 2935449: EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); 2935449: EVP_PKEY *b2i_PVK_bio_ex(BIO *in, pem_password_cb *cb, void *u, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: int i2b_PVK_bio(BIO *out, const EVP_PKEY *pk, int enclevel, 2935449: pem_password_cb *cb, void *u); 2935449: int i2b_PVK_bio_ex(BIO *out, const EVP_PKEY *pk, int enclevel, 2935449: pem_password_cb *cb, void *u, 2935449: OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: 2935449: } 2935449: # 38 "/usr/include/openssl/ssl.h" 2 3 4 2935449: # 1 "/usr/include/openssl/hmac.h" 1 3 4 2935449: # 12 "/usr/include/openssl/hmac.h" 3 4 2935449: 2935449: # 28 "/usr/include/openssl/hmac.h" 3 4 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) size_t HMAC_size(const HMAC_CTX *e); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) HMAC_CTX *HMAC_CTX_new(void); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int HMAC_CTX_reset(HMAC_CTX *ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void HMAC_CTX_free(HMAC_CTX *ctx); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) int HMAC_Init(HMAC_CTX *ctx, 2935449: const void *key, int len, 2935449: const EVP_MD *md); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, 2935449: const EVP_MD *md, ENGINE *impl); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, 2935449: size_t len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, 2935449: unsigned int *len); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) const EVP_MD *HMAC_CTX_get_md(const HMAC_CTX *ctx); 2935449: 2935449: 2935449: unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len, 2935449: const unsigned char *data, size_t data_len, 2935449: unsigned char *md, unsigned int *md_len); 2935449: 2935449: 2935449: } 2935449: # 39 "/usr/include/openssl/ssl.h" 2 3 4 2935449: # 1 "/usr/include/openssl/async.h" 1 3 4 2935449: # 10 "/usr/include/openssl/async.h" 3 4 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/stdlib.h" 1 3 4 2935449: # 11 "/usr/include/openssl/async.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: # 31 "/usr/include/openssl/async.h" 3 4 2935449: # 1 "/usr/include/openssl/asyncerr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/asyncerr.h" 3 4 2935449: 2935449: # 32 "/usr/include/openssl/async.h" 2 3 4 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: typedef struct async_job_st ASYNC_JOB; 2935449: typedef struct async_wait_ctx_st ASYNC_WAIT_CTX; 2935449: typedef int (*ASYNC_callback_fn)(void *arg); 2935449: # 52 "/usr/include/openssl/async.h" 3 4 2935449: int ASYNC_init_thread(size_t max_size, size_t init_size); 2935449: void ASYNC_cleanup_thread(void); 2935449: 2935449: 2935449: ASYNC_WAIT_CTX *ASYNC_WAIT_CTX_new(void); 2935449: void ASYNC_WAIT_CTX_free(ASYNC_WAIT_CTX *ctx); 2935449: int ASYNC_WAIT_CTX_set_wait_fd(ASYNC_WAIT_CTX *ctx, const void *key, 2935449: int fd, 2935449: void *custom_data, 2935449: void (*cleanup)(ASYNC_WAIT_CTX *, const void *, 2935449: int, void *)); 2935449: int ASYNC_WAIT_CTX_get_fd(ASYNC_WAIT_CTX *ctx, const void *key, 2935449: int *fd, void **custom_data); 2935449: int ASYNC_WAIT_CTX_get_all_fds(ASYNC_WAIT_CTX *ctx, int *fd, 2935449: size_t *numfds); 2935449: int ASYNC_WAIT_CTX_get_callback(ASYNC_WAIT_CTX *ctx, 2935449: ASYNC_callback_fn *callback, 2935449: void **callback_arg); 2935449: int ASYNC_WAIT_CTX_set_callback(ASYNC_WAIT_CTX *ctx, 2935449: ASYNC_callback_fn callback, 2935449: void *callback_arg); 2935449: int ASYNC_WAIT_CTX_set_status(ASYNC_WAIT_CTX *ctx, int status); 2935449: int ASYNC_WAIT_CTX_get_status(ASYNC_WAIT_CTX *ctx); 2935449: int ASYNC_WAIT_CTX_get_changed_fds(ASYNC_WAIT_CTX *ctx, int *addfd, 2935449: size_t *numaddfds, int *delfd, 2935449: size_t *numdelfds); 2935449: int ASYNC_WAIT_CTX_clear_fd(ASYNC_WAIT_CTX *ctx, const void *key); 2935449: 2935449: 2935449: int ASYNC_is_capable(void); 2935449: 2935449: typedef void *(*ASYNC_stack_alloc_fn)(size_t *num); 2935449: typedef void (*ASYNC_stack_free_fn)(void *addr); 2935449: 2935449: int ASYNC_set_mem_functions(ASYNC_stack_alloc_fn alloc_fn, 2935449: ASYNC_stack_free_fn free_fn); 2935449: void ASYNC_get_mem_functions(ASYNC_stack_alloc_fn *alloc_fn, 2935449: ASYNC_stack_free_fn *free_fn); 2935449: 2935449: int ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *ctx, int *ret, 2935449: int (*func)(void *), void *args, size_t size); 2935449: int ASYNC_pause_job(void); 2935449: 2935449: ASYNC_JOB *ASYNC_get_current_job(void); 2935449: ASYNC_WAIT_CTX *ASYNC_get_wait_ctx(ASYNC_JOB *job); 2935449: void ASYNC_block_pause(void); 2935449: void ASYNC_unblock_pause(void); 2935449: 2935449: 2935449: 2935449: } 2935449: # 40 "/usr/include/openssl/ssl.h" 2 3 4 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/ct.h" 1 3 4 2935449: # 17 "/usr/include/openssl/ct.h" 3 4 2935449: 2935449: # 27 "/usr/include/openssl/ct.h" 3 4 2935449: # 1 "/usr/include/openssl/types.h" 1 3 4 2935449: # 28 "/usr/include/openssl/ct.h" 2 3 4 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/cterr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/cterr.h" 3 4 2935449: 2935449: # 31 "/usr/include/openssl/ct.h" 2 3 4 2935449: 2935449: extern "C" { 2935449: # 42 "/usr/include/openssl/ct.h" 3 4 2935449: struct stack_st_SCT; typedef int (*sk_SCT_compfunc)(const SCT * const *a, const SCT *const *b); typedef void (*sk_SCT_freefunc)(SCT *a); typedef SCT * (*sk_SCT_copyfunc)(const SCT *a); static __attribute__((unused)) inline SCT *ossl_check_SCT_type(SCT *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_SCT_sk_type(const struct stack_st_SCT *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_SCT_sk_type(struct stack_st_SCT *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_SCT_compfunc_type(sk_SCT_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_SCT_copyfunc_type(sk_SCT_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_SCT_freefunc_type(sk_SCT_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 68 "/usr/include/openssl/ct.h" 3 4 2935449: struct stack_st_CTLOG; typedef int (*sk_CTLOG_compfunc)(const CTLOG * const *a, const CTLOG *const *b); typedef void (*sk_CTLOG_freefunc)(CTLOG *a); typedef CTLOG * (*sk_CTLOG_copyfunc)(const CTLOG *a); static __attribute__((unused)) inline CTLOG *ossl_check_CTLOG_type(CTLOG *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_CTLOG_sk_type(const struct stack_st_CTLOG *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_CTLOG_sk_type(struct stack_st_CTLOG *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_CTLOG_compfunc_type(sk_CTLOG_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_CTLOG_copyfunc_type(sk_CTLOG_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_CTLOG_freefunc_type(sk_CTLOG_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 97 "/usr/include/openssl/ct.h" 3 4 2935449: typedef enum { 2935449: CT_LOG_ENTRY_TYPE_NOT_SET = -1, 2935449: CT_LOG_ENTRY_TYPE_X509 = 0, 2935449: CT_LOG_ENTRY_TYPE_PRECERT = 1 2935449: } ct_log_entry_type_t; 2935449: 2935449: typedef enum { 2935449: SCT_VERSION_NOT_SET = -1, 2935449: SCT_VERSION_V1 = 0 2935449: } sct_version_t; 2935449: 2935449: typedef enum { 2935449: SCT_SOURCE_UNKNOWN, 2935449: SCT_SOURCE_TLS_EXTENSION, 2935449: SCT_SOURCE_X509V3_EXTENSION, 2935449: SCT_SOURCE_OCSP_STAPLED_RESPONSE 2935449: } sct_source_t; 2935449: 2935449: typedef enum { 2935449: SCT_VALIDATION_STATUS_NOT_SET, 2935449: SCT_VALIDATION_STATUS_UNKNOWN_LOG, 2935449: SCT_VALIDATION_STATUS_VALID, 2935449: SCT_VALIDATION_STATUS_INVALID, 2935449: SCT_VALIDATION_STATUS_UNVERIFIED, 2935449: SCT_VALIDATION_STATUS_UNKNOWN_VERSION 2935449: } sct_validation_status_t; 2935449: # 134 "/usr/include/openssl/ct.h" 3 4 2935449: CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void); 2935449: 2935449: 2935449: void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx); 2935449: 2935449: 2935449: X509* CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert); 2935449: 2935449: 2935449: X509* CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer); 2935449: 2935449: 2935449: const CTLOG_STORE *CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx); 2935449: 2935449: 2935449: void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx, 2935449: CTLOG_STORE *log_store); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms); 2935449: # 196 "/usr/include/openssl/ct.h" 3 4 2935449: SCT *SCT_new(void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: SCT *SCT_new_from_base64(unsigned char version, 2935449: const char *logid_base64, 2935449: ct_log_entry_type_t entry_type, 2935449: uint64_t timestamp, 2935449: const char *extensions_base64, 2935449: const char *signature_base64); 2935449: 2935449: 2935449: 2935449: 2935449: void SCT_free(SCT *sct); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void SCT_LIST_free(struct stack_st_SCT *a); 2935449: 2935449: 2935449: 2935449: 2935449: sct_version_t SCT_get_version(const SCT *sct); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SCT_set_version(SCT *sct, sct_version_t version); 2935449: 2935449: 2935449: 2935449: 2935449: ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, 2935449: size_t log_id_len); 2935449: 2935449: 2935449: 2935449: 2935449: uint64_t SCT_get_timestamp(const SCT *sct); 2935449: 2935449: 2935449: 2935449: 2935449: void SCT_set_timestamp(SCT *sct, uint64_t timestamp); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SCT_get_signature_nid(const SCT *sct); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SCT_set_signature_nid(SCT *sct, int nid); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SCT_set1_extensions(SCT *sct, const unsigned char *ext, 2935449: size_t ext_len); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: size_t SCT_get0_signature(const SCT *sct, unsigned char **sig); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SCT_set1_signature(SCT *sct, const unsigned char *sig, 2935449: size_t sig_len); 2935449: 2935449: 2935449: 2935449: 2935449: sct_source_t SCT_get_source(const SCT *sct); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SCT_set_source(SCT *sct, sct_source_t source); 2935449: 2935449: 2935449: 2935449: 2935449: const char *SCT_validation_status_string(const SCT *sct); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG_STORE *logs); 2935449: # 361 "/usr/include/openssl/ct.h" 3 4 2935449: void SCT_LIST_print(const struct stack_st_SCT *sct_list, BIO *out, int indent, 2935449: const char *separator, const CTLOG_STORE *logs); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: sct_validation_status_t SCT_get_validation_status(const SCT *sct); 2935449: # 377 "/usr/include/openssl/ct.h" 3 4 2935449: int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx); 2935449: # 386 "/usr/include/openssl/ct.h" 3 4 2935449: int SCT_LIST_validate(const struct stack_st_SCT *scts, 2935449: CT_POLICY_EVAL_CTX *ctx); 2935449: # 406 "/usr/include/openssl/ct.h" 3 4 2935449: int i2o_SCT_LIST(const struct stack_st_SCT *a, unsigned char **pp); 2935449: # 418 "/usr/include/openssl/ct.h" 3 4 2935449: struct stack_st_SCT *o2i_SCT_LIST(struct stack_st_SCT **a, const unsigned char **pp, 2935449: size_t len); 2935449: # 433 "/usr/include/openssl/ct.h" 3 4 2935449: int i2d_SCT_LIST(const struct stack_st_SCT *a, unsigned char **pp); 2935449: # 445 "/usr/include/openssl/ct.h" 3 4 2935449: struct stack_st_SCT *d2i_SCT_LIST(struct stack_st_SCT **a, const unsigned char **pp, 2935449: long len); 2935449: # 457 "/usr/include/openssl/ct.h" 3 4 2935449: int i2o_SCT(const SCT *sct, unsigned char **out); 2935449: # 470 "/usr/include/openssl/ct.h" 3 4 2935449: SCT *o2i_SCT(SCT **psct, const unsigned char **in, size_t len); 2935449: # 484 "/usr/include/openssl/ct.h" 3 4 2935449: CTLOG *CTLOG_new_ex(EVP_PKEY *public_key, const char *name, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: CTLOG *CTLOG_new(EVP_PKEY *public_key, const char *name); 2935449: # 501 "/usr/include/openssl/ct.h" 3 4 2935449: int CTLOG_new_from_base64_ex(CTLOG **ct_log, const char *pkey_base64, 2935449: const char *name, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int CTLOG_new_from_base64(CTLOG ** ct_log, 2935449: const char *pkey_base64, const char *name); 2935449: 2935449: 2935449: 2935449: 2935449: void CTLOG_free(CTLOG *log); 2935449: 2935449: 2935449: const char *CTLOG_get0_name(const CTLOG *log); 2935449: 2935449: void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id, 2935449: size_t *log_id_len); 2935449: 2935449: EVP_PKEY *CTLOG_get0_public_key(const CTLOG *log); 2935449: # 535 "/usr/include/openssl/ct.h" 3 4 2935449: CTLOG_STORE *CTLOG_STORE_new_ex(OSSL_LIB_CTX *libctx, const char *propq); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: CTLOG_STORE *CTLOG_STORE_new(void); 2935449: 2935449: 2935449: 2935449: 2935449: void CTLOG_STORE_free(CTLOG_STORE *store); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const CTLOG *CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store, 2935449: const uint8_t *log_id, 2935449: size_t log_id_len); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int CTLOG_STORE_load_default_file(CTLOG_STORE *store); 2935449: 2935449: 2935449: } 2935449: # 44 "/usr/include/openssl/ssl.h" 2 3 4 2935449: # 1 "/usr/include/openssl/sslerr.h" 1 3 4 2935449: # 13 "/usr/include/openssl/sslerr.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/sslerr_legacy.h" 1 3 4 2935449: # 19 "/usr/include/openssl/sslerr_legacy.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int ERR_load_SSL_strings(void); 2935449: # 465 "/usr/include/openssl/sslerr_legacy.h" 3 4 2935449: } 2935449: # 18 "/usr/include/openssl/sslerr.h" 2 3 4 2935449: # 45 "/usr/include/openssl/ssl.h" 2 3 4 2935449: # 1 "/usr/include/openssl/prov_ssl.h" 1 3 4 2935449: # 12 "/usr/include/openssl/prov_ssl.h" 3 4 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: # 36 "/usr/include/openssl/prov_ssl.h" 3 4 2935449: } 2935449: # 46 "/usr/include/openssl/ssl.h" 2 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: # 217 "/usr/include/openssl/ssl.h" 3 4 2935449: } 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: # 231 "/usr/include/openssl/ssl.h" 3 4 2935449: typedef struct ssl_st *ssl_crock_st; 2935449: typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; 2935449: typedef struct ssl_method_st SSL_METHOD; 2935449: typedef struct ssl_cipher_st SSL_CIPHER; 2935449: typedef struct ssl_session_st SSL_SESSION; 2935449: typedef struct tls_sigalgs_st TLS_SIGALGS; 2935449: typedef struct ssl_conf_ctx_st SSL_CONF_CTX; 2935449: 2935449: struct stack_st_SSL_CIPHER; 2935449: 2935449: 2935449: typedef struct srtp_protection_profile_st { 2935449: const char *name; 2935449: unsigned long id; 2935449: } SRTP_PROTECTION_PROFILE; 2935449: struct stack_st_SRTP_PROTECTION_PROFILE; typedef int (*sk_SRTP_PROTECTION_PROFILE_compfunc)(const SRTP_PROTECTION_PROFILE * const *a, const SRTP_PROTECTION_PROFILE *const *b); typedef void (*sk_SRTP_PROTECTION_PROFILE_freefunc)(SRTP_PROTECTION_PROFILE *a); typedef SRTP_PROTECTION_PROFILE * (*sk_SRTP_PROTECTION_PROFILE_copyfunc)(const SRTP_PROTECTION_PROFILE *a); static __attribute__((unused)) inline SRTP_PROTECTION_PROFILE *ossl_check_SRTP_PROTECTION_PROFILE_type(SRTP_PROTECTION_PROFILE *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(const struct stack_st_SRTP_PROTECTION_PROFILE *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_SRTP_PROTECTION_PROFILE_sk_type(struct stack_st_SRTP_PROTECTION_PROFILE *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(sk_SRTP_PROTECTION_PROFILE_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_SRTP_PROTECTION_PROFILE_copyfunc_type(sk_SRTP_PROTECTION_PROFILE_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_SRTP_PROTECTION_PROFILE_freefunc_type(sk_SRTP_PROTECTION_PROFILE_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 275 "/usr/include/openssl/ssl.h" 3 4 2935449: typedef int (*tls_session_ticket_ext_cb_fn)(SSL *s, const unsigned char *data, 2935449: int len, void *arg); 2935449: typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, 2935449: struct stack_st_SSL_CIPHER *peer_ciphers, 2935449: const SSL_CIPHER **cipher, void *arg); 2935449: # 311 "/usr/include/openssl/ssl.h" 3 4 2935449: typedef int (*custom_ext_add_cb)(SSL *s, unsigned int ext_type, 2935449: const unsigned char **out, size_t *outlen, 2935449: int *al, void *add_arg); 2935449: 2935449: typedef void (*custom_ext_free_cb)(SSL *s, unsigned int ext_type, 2935449: const unsigned char *out, void *add_arg); 2935449: 2935449: typedef int (*custom_ext_parse_cb)(SSL *s, unsigned int ext_type, 2935449: const unsigned char *in, size_t inlen, 2935449: int *al, void *parse_arg); 2935449: 2935449: 2935449: typedef int (*SSL_custom_ext_add_cb_ex)(SSL *s, unsigned int ext_type, 2935449: unsigned int context, 2935449: const unsigned char **out, 2935449: size_t *outlen, X509 *x, 2935449: size_t chainidx, 2935449: int *al, void *add_arg); 2935449: 2935449: typedef void (*SSL_custom_ext_free_cb_ex)(SSL *s, unsigned int ext_type, 2935449: unsigned int context, 2935449: const unsigned char *out, 2935449: void *add_arg); 2935449: 2935449: typedef int (*SSL_custom_ext_parse_cb_ex)(SSL *s, unsigned int ext_type, 2935449: unsigned int context, 2935449: const unsigned char *in, 2935449: size_t inlen, X509 *x, 2935449: size_t chainidx, 2935449: int *al, void *parse_arg); 2935449: 2935449: 2935449: typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); 2935449: 2935449: 2935449: typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); 2935449: # 621 "/usr/include/openssl/ssl.h" 3 4 2935449: uint64_t SSL_CTX_get_options(const SSL_CTX *ctx); 2935449: uint64_t SSL_get_options(const SSL *s); 2935449: uint64_t SSL_CTX_clear_options(SSL_CTX *ctx, uint64_t op); 2935449: uint64_t SSL_clear_options(SSL *s, uint64_t op); 2935449: uint64_t SSL_CTX_set_options(SSL_CTX *ctx, uint64_t op); 2935449: uint64_t SSL_set_options(SSL *s, uint64_t op); 2935449: # 659 "/usr/include/openssl/ssl.h" 3 4 2935449: void SSL_CTX_set_msg_callback(SSL_CTX *ctx, 2935449: void (*cb) (int write_p, int version, 2935449: int content_type, const void *buf, 2935449: size_t len, SSL *ssl, void *arg)); 2935449: void SSL_set_msg_callback(SSL *ssl, 2935449: void (*cb) (int write_p, int version, 2935449: int content_type, const void *buf, 2935449: size_t len, SSL *ssl, void *arg)); 2935449: # 676 "/usr/include/openssl/ssl.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SSL_SRP_CTX_init(SSL *s); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SSL_SRP_CTX_free(SSL *ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SSL_srp_server_param_with_username(SSL *s, 2935449: int *ad); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SRP_Calc_A_param(SSL *s); 2935449: # 703 "/usr/include/openssl/ssl.h" 3 4 2935449: typedef int (*GEN_SESSION_CB) (SSL *ssl, unsigned char *id, 2935449: unsigned int *id_len); 2935449: # 718 "/usr/include/openssl/ssl.h" 3 4 2935449: struct lhash_st_SSL_SESSION *SSL_CTX_sessions(SSL_CTX *ctx); 2935449: # 744 "/usr/include/openssl/ssl.h" 3 4 2935449: void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, 2935449: int (*new_session_cb) (struct ssl_st *ssl, 2935449: SSL_SESSION *sess)); 2935449: int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, 2935449: SSL_SESSION *sess); 2935449: void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, 2935449: void (*remove_session_cb) (struct ssl_ctx_st 2935449: *ctx, 2935449: SSL_SESSION *sess)); 2935449: void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx, 2935449: SSL_SESSION *sess); 2935449: void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, 2935449: SSL_SESSION *(*get_session_cb) (struct ssl_st 2935449: *ssl, 2935449: const unsigned char 2935449: *data, int len, 2935449: int *copy)); 2935449: SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, 2935449: const unsigned char *data, 2935449: int len, int *copy); 2935449: void SSL_CTX_set_info_callback(SSL_CTX *ctx, 2935449: void (*cb) (const SSL *ssl, int type, int val)); 2935449: void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type, 2935449: int val); 2935449: void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, 2935449: int (*client_cert_cb) (SSL *ssl, X509 **x509, 2935449: EVP_PKEY **pkey)); 2935449: int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509, 2935449: EVP_PKEY **pkey); 2935449: 2935449: int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e); 2935449: 2935449: void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, 2935449: int (*app_gen_cookie_cb) (SSL *ssl, 2935449: unsigned char 2935449: *cookie, 2935449: unsigned int 2935449: *cookie_len)); 2935449: void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, 2935449: int (*app_verify_cookie_cb) (SSL *ssl, 2935449: const unsigned 2935449: char *cookie, 2935449: unsigned int 2935449: cookie_len)); 2935449: 2935449: void SSL_CTX_set_stateless_cookie_generate_cb( 2935449: SSL_CTX *ctx, 2935449: int (*gen_stateless_cookie_cb) (SSL *ssl, 2935449: unsigned char *cookie, 2935449: size_t *cookie_len)); 2935449: void SSL_CTX_set_stateless_cookie_verify_cb( 2935449: SSL_CTX *ctx, 2935449: int (*verify_stateless_cookie_cb) (SSL *ssl, 2935449: const unsigned char *cookie, 2935449: size_t cookie_len)); 2935449: 2935449: 2935449: typedef int (*SSL_CTX_npn_advertised_cb_func)(SSL *ssl, 2935449: const unsigned char **out, 2935449: unsigned int *outlen, 2935449: void *arg); 2935449: void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, 2935449: SSL_CTX_npn_advertised_cb_func cb, 2935449: void *arg); 2935449: 2935449: 2935449: typedef int (*SSL_CTX_npn_select_cb_func)(SSL *s, 2935449: unsigned char **out, 2935449: unsigned char *outlen, 2935449: const unsigned char *in, 2935449: unsigned int inlen, 2935449: void *arg); 2935449: void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, 2935449: SSL_CTX_npn_select_cb_func cb, 2935449: void *arg); 2935449: 2935449: 2935449: void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, 2935449: unsigned *len); 2935449: 2935449: 2935449: 2935449: int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, 2935449: const unsigned char *in, unsigned int inlen, 2935449: const unsigned char *client, 2935449: unsigned int client_len); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, 2935449: unsigned int protos_len); 2935449: int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, 2935449: unsigned int protos_len); 2935449: typedef int (*SSL_CTX_alpn_select_cb_func)(SSL *ssl, 2935449: const unsigned char **out, 2935449: unsigned char *outlen, 2935449: const unsigned char *in, 2935449: unsigned int inlen, 2935449: void *arg); 2935449: void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, 2935449: SSL_CTX_alpn_select_cb_func cb, 2935449: void *arg); 2935449: void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, 2935449: unsigned int *len); 2935449: # 858 "/usr/include/openssl/ssl.h" 3 4 2935449: typedef unsigned int (*SSL_psk_client_cb_func)(SSL *ssl, 2935449: const char *hint, 2935449: char *identity, 2935449: unsigned int max_identity_len, 2935449: unsigned char *psk, 2935449: unsigned int max_psk_len); 2935449: void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, SSL_psk_client_cb_func cb); 2935449: void SSL_set_psk_client_callback(SSL *ssl, SSL_psk_client_cb_func cb); 2935449: 2935449: typedef unsigned int (*SSL_psk_server_cb_func)(SSL *ssl, 2935449: const char *identity, 2935449: unsigned char *psk, 2935449: unsigned int max_psk_len); 2935449: void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, SSL_psk_server_cb_func cb); 2935449: void SSL_set_psk_server_callback(SSL *ssl, SSL_psk_server_cb_func cb); 2935449: 2935449: int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint); 2935449: int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint); 2935449: const char *SSL_get_psk_identity_hint(const SSL *s); 2935449: const char *SSL_get_psk_identity(const SSL *s); 2935449: 2935449: 2935449: typedef int (*SSL_psk_find_session_cb_func)(SSL *ssl, 2935449: const unsigned char *identity, 2935449: size_t identity_len, 2935449: SSL_SESSION **sess); 2935449: typedef int (*SSL_psk_use_session_cb_func)(SSL *ssl, const EVP_MD *md, 2935449: const unsigned char **id, 2935449: size_t *idlen, 2935449: SSL_SESSION **sess); 2935449: 2935449: void SSL_set_psk_find_session_callback(SSL *s, SSL_psk_find_session_cb_func cb); 2935449: void SSL_CTX_set_psk_find_session_callback(SSL_CTX *ctx, 2935449: SSL_psk_find_session_cb_func cb); 2935449: void SSL_set_psk_use_session_callback(SSL *s, SSL_psk_use_session_cb_func cb); 2935449: void SSL_CTX_set_psk_use_session_callback(SSL_CTX *ctx, 2935449: SSL_psk_use_session_cb_func cb); 2935449: 2935449: 2935449: 2935449: int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx, 2935449: unsigned int ext_type); 2935449: 2935449: int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, 2935449: unsigned int ext_type, 2935449: custom_ext_add_cb add_cb, 2935449: custom_ext_free_cb free_cb, 2935449: void *add_arg, 2935449: custom_ext_parse_cb parse_cb, 2935449: void *parse_arg); 2935449: 2935449: int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, 2935449: unsigned int ext_type, 2935449: custom_ext_add_cb add_cb, 2935449: custom_ext_free_cb free_cb, 2935449: void *add_arg, 2935449: custom_ext_parse_cb parse_cb, 2935449: void *parse_arg); 2935449: 2935449: int SSL_CTX_add_custom_ext(SSL_CTX *ctx, unsigned int ext_type, 2935449: unsigned int context, 2935449: SSL_custom_ext_add_cb_ex add_cb, 2935449: SSL_custom_ext_free_cb_ex free_cb, 2935449: void *add_arg, 2935449: SSL_custom_ext_parse_cb_ex parse_cb, 2935449: void *parse_arg); 2935449: 2935449: int SSL_extension_supported(unsigned int ext_type); 2935449: # 955 "/usr/include/openssl/ssl.h" 3 4 2935449: typedef void (*SSL_CTX_keylog_cb_func)(const SSL *ssl, const char *line); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void SSL_CTX_set_keylog_callback(SSL_CTX *ctx, SSL_CTX_keylog_cb_func cb); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: SSL_CTX_keylog_cb_func SSL_CTX_get_keylog_callback(const SSL_CTX *ctx); 2935449: 2935449: int SSL_CTX_set_max_early_data(SSL_CTX *ctx, uint32_t max_early_data); 2935449: uint32_t SSL_CTX_get_max_early_data(const SSL_CTX *ctx); 2935449: int SSL_set_max_early_data(SSL *s, uint32_t max_early_data); 2935449: uint32_t SSL_get_max_early_data(const SSL *s); 2935449: int SSL_CTX_set_recv_max_early_data(SSL_CTX *ctx, uint32_t recv_max_early_data); 2935449: uint32_t SSL_CTX_get_recv_max_early_data(const SSL_CTX *ctx); 2935449: int SSL_set_recv_max_early_data(SSL *s, uint32_t recv_max_early_data); 2935449: uint32_t SSL_get_recv_max_early_data(const SSL *s); 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: # 1 "/usr/include/openssl/ssl2.h" 1 3 4 2935449: # 12 "/usr/include/openssl/ssl2.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 984 "/usr/include/openssl/ssl.h" 2 3 4 2935449: # 1 "/usr/include/openssl/ssl3.h" 1 3 4 2935449: # 13 "/usr/include/openssl/ssl3.h" 3 4 2935449: 2935449: # 26 "/usr/include/openssl/ssl3.h" 3 4 2935449: extern "C" { 2935449: # 356 "/usr/include/openssl/ssl3.h" 3 4 2935449: } 2935449: # 985 "/usr/include/openssl/ssl.h" 2 3 4 2935449: # 1 "/usr/include/openssl/tls1.h" 1 3 4 2935449: # 14 "/usr/include/openssl/tls1.h" 3 4 2935449: 2935449: # 26 "/usr/include/openssl/tls1.h" 3 4 2935449: extern "C" { 2935449: # 246 "/usr/include/openssl/tls1.h" 3 4 2935449: int SSL_CTX_set_tlsext_max_fragment_length(SSL_CTX *ctx, uint8_t mode); 2935449: int SSL_set_tlsext_max_fragment_length(SSL *ssl, uint8_t mode); 2935449: 2935449: 2935449: 2935449: const char *SSL_get_servername(const SSL *s, const int type); 2935449: int SSL_get_servername_type(const SSL *s); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, 2935449: const char *label, size_t llen, 2935449: const unsigned char *context, 2935449: size_t contextlen, int use_context); 2935449: # 272 "/usr/include/openssl/tls1.h" 3 4 2935449: int SSL_export_keying_material_early(SSL *s, unsigned char *out, 2935449: size_t olen, const char *label, 2935449: size_t llen, 2935449: const unsigned char *context, 2935449: size_t contextlen); 2935449: 2935449: int SSL_get_peer_signature_type_nid(const SSL *s, int *pnid); 2935449: int SSL_get_signature_type_nid(const SSL *s, int *pnid); 2935449: 2935449: int SSL_get_sigalgs(SSL *s, int idx, 2935449: int *psign, int *phash, int *psignandhash, 2935449: unsigned char *rsig, unsigned char *rhash); 2935449: 2935449: char *SSL_get1_builtin_sigalgs(OSSL_LIB_CTX *libctx); 2935449: 2935449: int SSL_get_shared_sigalgs(SSL *s, int idx, 2935449: int *psign, int *phash, int *psignandhash, 2935449: unsigned char *rsig, unsigned char *rhash); 2935449: 2935449: int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, struct stack_st_X509 *chain); 2935449: # 367 "/usr/include/openssl/tls1.h" 3 4 2935449: int SSL_CTX_set_tlsext_ticket_key_evp_cb 2935449: (SSL_CTX *ctx, int (*fp)(SSL *, unsigned char *, unsigned char *, 2935449: EVP_CIPHER_CTX *, EVP_MAC_CTX *, int)); 2935449: # 1212 "/usr/include/openssl/tls1.h" 3 4 2935449: struct tls_session_ticket_ext_st { 2935449: unsigned short length; 2935449: void *data; 2935449: }; 2935449: 2935449: 2935449: } 2935449: # 986 "/usr/include/openssl/ssl.h" 2 3 4 2935449: # 1 "/usr/include/openssl/dtls1.h" 1 3 4 2935449: # 12 "/usr/include/openssl/dtls1.h" 3 4 2935449: 2935449: # 22 "/usr/include/openssl/dtls1.h" 3 4 2935449: extern "C" { 2935449: # 55 "/usr/include/openssl/dtls1.h" 3 4 2935449: } 2935449: # 987 "/usr/include/openssl/ssl.h" 2 3 4 2935449: # 1 "/usr/include/openssl/srtp.h" 1 3 4 2935449: # 18 "/usr/include/openssl/srtp.h" 3 4 2935449: 2935449: # 28 "/usr/include/openssl/srtp.h" 3 4 2935449: extern "C" { 2935449: # 56 "/usr/include/openssl/srtp.h" 3 4 2935449: int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); 2935449: int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles); 2935449: 2935449: struct stack_st_SRTP_PROTECTION_PROFILE *SSL_get_srtp_profiles(SSL *ssl); 2935449: SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: # 988 "/usr/include/openssl/ssl.h" 2 3 4 2935449: # 1 "/usr/include/openssl/quic.h" 1 3 4 2935449: # 12 "/usr/include/openssl/quic.h" 3 4 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const SSL_METHOD *OSSL_QUIC_client_method(void); 2935449: 2935449: 2935449: 2935449: 2935449: const SSL_METHOD *OSSL_QUIC_client_thread_method(void); 2935449: # 68 "/usr/include/openssl/quic.h" 3 4 2935449: const SSL_METHOD *OSSL_QUIC_server_method(void); 2935449: 2935449: 2935449: } 2935449: # 989 "/usr/include/openssl/ssl.h" 2 3 4 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct stack_st_SSL_CIPHER; typedef int (*sk_SSL_CIPHER_compfunc)(const SSL_CIPHER * const *a, const SSL_CIPHER *const *b); typedef void (*sk_SSL_CIPHER_freefunc)(SSL_CIPHER *a); typedef SSL_CIPHER * (*sk_SSL_CIPHER_copyfunc)(const SSL_CIPHER *a); static __attribute__((unused)) inline const SSL_CIPHER *ossl_check_SSL_CIPHER_type(const SSL_CIPHER *ptr) { return ptr; } static __attribute__((unused)) inline const OPENSSL_STACK *ossl_check_const_SSL_CIPHER_sk_type(const struct stack_st_SSL_CIPHER *sk) { return (const OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_STACK *ossl_check_SSL_CIPHER_sk_type(struct stack_st_SSL_CIPHER *sk) { return (OPENSSL_STACK *)sk; } static __attribute__((unused)) inline OPENSSL_sk_compfunc ossl_check_SSL_CIPHER_compfunc_type(sk_SSL_CIPHER_compfunc cmp) { return (OPENSSL_sk_compfunc)cmp; } static __attribute__((unused)) inline OPENSSL_sk_copyfunc ossl_check_SSL_CIPHER_copyfunc_type(sk_SSL_CIPHER_copyfunc cpy) { return (OPENSSL_sk_copyfunc)cpy; } static __attribute__((unused)) inline OPENSSL_sk_freefunc ossl_check_SSL_CIPHER_freefunc_type(sk_SSL_CIPHER_freefunc fr) { return (OPENSSL_sk_freefunc)fr; } 2935449: # 1036 "/usr/include/openssl/ssl.h" 3 4 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) void SSL_set_debug(SSL *s, int debug); 2935449: # 1058 "/usr/include/openssl/ssl.h" 3 4 2935449: typedef enum { 2935449: TLS_ST_BEFORE, 2935449: TLS_ST_OK, 2935449: DTLS_ST_CR_HELLO_VERIFY_REQUEST, 2935449: TLS_ST_CR_SRVR_HELLO, 2935449: TLS_ST_CR_CERT, 2935449: TLS_ST_CR_COMP_CERT, 2935449: TLS_ST_CR_CERT_STATUS, 2935449: TLS_ST_CR_KEY_EXCH, 2935449: TLS_ST_CR_CERT_REQ, 2935449: TLS_ST_CR_SRVR_DONE, 2935449: TLS_ST_CR_SESSION_TICKET, 2935449: TLS_ST_CR_CHANGE, 2935449: TLS_ST_CR_FINISHED, 2935449: TLS_ST_CW_CLNT_HELLO, 2935449: TLS_ST_CW_CERT, 2935449: TLS_ST_CW_COMP_CERT, 2935449: TLS_ST_CW_KEY_EXCH, 2935449: TLS_ST_CW_CERT_VRFY, 2935449: TLS_ST_CW_CHANGE, 2935449: TLS_ST_CW_NEXT_PROTO, 2935449: TLS_ST_CW_FINISHED, 2935449: TLS_ST_SW_HELLO_REQ, 2935449: TLS_ST_SR_CLNT_HELLO, 2935449: DTLS_ST_SW_HELLO_VERIFY_REQUEST, 2935449: TLS_ST_SW_SRVR_HELLO, 2935449: TLS_ST_SW_CERT, 2935449: TLS_ST_SW_COMP_CERT, 2935449: TLS_ST_SW_KEY_EXCH, 2935449: TLS_ST_SW_CERT_REQ, 2935449: TLS_ST_SW_SRVR_DONE, 2935449: TLS_ST_SR_CERT, 2935449: TLS_ST_SR_COMP_CERT, 2935449: TLS_ST_SR_KEY_EXCH, 2935449: TLS_ST_SR_CERT_VRFY, 2935449: TLS_ST_SR_NEXT_PROTO, 2935449: TLS_ST_SR_CHANGE, 2935449: TLS_ST_SR_FINISHED, 2935449: TLS_ST_SW_SESSION_TICKET, 2935449: TLS_ST_SW_CERT_STATUS, 2935449: TLS_ST_SW_CHANGE, 2935449: TLS_ST_SW_FINISHED, 2935449: TLS_ST_SW_ENCRYPTED_EXTENSIONS, 2935449: TLS_ST_CR_ENCRYPTED_EXTENSIONS, 2935449: TLS_ST_CR_CERT_VRFY, 2935449: TLS_ST_SW_CERT_VRFY, 2935449: TLS_ST_CR_HELLO_REQ, 2935449: TLS_ST_SW_KEY_UPDATE, 2935449: TLS_ST_CW_KEY_UPDATE, 2935449: TLS_ST_SR_KEY_UPDATE, 2935449: TLS_ST_CR_KEY_UPDATE, 2935449: TLS_ST_EARLY_DATA, 2935449: TLS_ST_PENDING_EARLY_DATA_END, 2935449: TLS_ST_CW_END_OF_EARLY_DATA, 2935449: TLS_ST_SR_END_OF_EARLY_DATA 2935449: } OSSL_HANDSHAKE_STATE; 2935449: # 1145 "/usr/include/openssl/ssl.h" 3 4 2935449: int SSL_in_init(const SSL *s); 2935449: int SSL_in_before(const SSL *s); 2935449: int SSL_is_init_finished(const SSL *s); 2935449: # 1163 "/usr/include/openssl/ssl.h" 3 4 2935449: size_t SSL_get_finished(const SSL *s, void *buf, size_t count); 2935449: size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); 2935449: # 1198 "/usr/include/openssl/ssl.h" 3 4 2935449: extern SSL_SESSION *PEM_read_bio_SSL_SESSION(BIO *out, SSL_SESSION **x, pem_password_cb *cb, void *u); extern SSL_SESSION *PEM_read_SSL_SESSION(FILE *out, SSL_SESSION **x, pem_password_cb *cb, void *u); extern int PEM_write_bio_SSL_SESSION(BIO *out, const SSL_SESSION *x); extern int PEM_write_SSL_SESSION(FILE *out, const SSL_SESSION *x); 2935449: # 1564 "/usr/include/openssl/ssl.h" 3 4 2935449: const char *SSL_get0_group_name(SSL *s); 2935449: const char *SSL_group_to_name(SSL *s, int id); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_set0_tmp_dh_pkey(SSL *s, EVP_PKEY *dhpkey); 2935449: int SSL_CTX_set0_tmp_dh_pkey(SSL_CTX *ctx, EVP_PKEY *dhpkey); 2935449: # 1608 "/usr/include/openssl/ssl.h" 3 4 2935449: const BIO_METHOD *BIO_f_ssl(void); 2935449: BIO *BIO_new_ssl(SSL_CTX *ctx, int client); 2935449: BIO *BIO_new_ssl_connect(SSL_CTX *ctx); 2935449: BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); 2935449: int BIO_ssl_copy_session_id(BIO *to, BIO *from); 2935449: void BIO_ssl_shutdown(BIO *ssl_bio); 2935449: 2935449: int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str); 2935449: SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); 2935449: SSL_CTX *SSL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq, 2935449: const SSL_METHOD *meth); 2935449: int SSL_CTX_up_ref(SSL_CTX *ctx); 2935449: void SSL_CTX_free(SSL_CTX *); 2935449: long SSL_CTX_set_timeout(SSL_CTX *ctx, long t); 2935449: long SSL_CTX_get_timeout(const SSL_CTX *ctx); 2935449: X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *); 2935449: void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *); 2935449: void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); 2935449: int SSL_want(const SSL *s); 2935449: int SSL_clear(SSL *s); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.4" ";" "not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()"))) 2935449: void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); 2935449: 2935449: void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); 2935449: 2935449: const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); 2935449: const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); 2935449: int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits); 2935449: const char *SSL_CIPHER_get_version(const SSL_CIPHER *c); 2935449: const char *SSL_CIPHER_get_name(const SSL_CIPHER *c); 2935449: const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); 2935449: const char *OPENSSL_cipher_name(const char *rfc_name); 2935449: uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c); 2935449: uint16_t SSL_CIPHER_get_protocol_id(const SSL_CIPHER *c); 2935449: int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c); 2935449: int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c); 2935449: const EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c); 2935449: int SSL_CIPHER_is_aead(const SSL_CIPHER *c); 2935449: 2935449: int SSL_get_fd(const SSL *s); 2935449: int SSL_get_rfd(const SSL *s); 2935449: int SSL_get_wfd(const SSL *s); 2935449: const char *SSL_get_cipher_list(const SSL *s, int n); 2935449: char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size); 2935449: int SSL_get_read_ahead(const SSL *s); 2935449: int SSL_pending(const SSL *s); 2935449: int SSL_has_pending(const SSL *s); 2935449: 2935449: int SSL_set_fd(SSL *s, int fd); 2935449: int SSL_set_rfd(SSL *s, int fd); 2935449: int SSL_set_wfd(SSL *s, int fd); 2935449: 2935449: void SSL_set0_rbio(SSL *s, BIO *rbio); 2935449: void SSL_set0_wbio(SSL *s, BIO *wbio); 2935449: void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio); 2935449: BIO *SSL_get_rbio(const SSL *s); 2935449: BIO *SSL_get_wbio(const SSL *s); 2935449: int SSL_set_cipher_list(SSL *s, const char *str); 2935449: int SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str); 2935449: int SSL_set_ciphersuites(SSL *s, const char *str); 2935449: void SSL_set_read_ahead(SSL *s, int yes); 2935449: int SSL_get_verify_mode(const SSL *s); 2935449: int SSL_get_verify_depth(const SSL *s); 2935449: SSL_verify_cb SSL_get_verify_callback(const SSL *s); 2935449: void SSL_set_verify(SSL *s, int mode, SSL_verify_cb callback); 2935449: void SSL_set_verify_depth(SSL *s, int depth); 2935449: void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, 2935449: const unsigned char *d, long len); 2935449: 2935449: int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); 2935449: int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, 2935449: long len); 2935449: int SSL_use_certificate(SSL *ssl, X509 *x); 2935449: int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); 2935449: int SSL_use_cert_and_key(SSL *ssl, X509 *x509, EVP_PKEY *privatekey, 2935449: struct stack_st_X509 *chain, int override); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, 2935449: size_t serverinfo_length); 2935449: int SSL_CTX_use_serverinfo_ex(SSL_CTX *ctx, unsigned int version, 2935449: const unsigned char *serverinfo, 2935449: size_t serverinfo_length); 2935449: int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); 2935449: 2935449: 2935449: int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); 2935449: int SSL_use_certificate_file(SSL *ssl, const char *file, int type); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, 2935449: int type); 2935449: 2935449: int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, 2935449: int type); 2935449: int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, 2935449: int type); 2935449: 2935449: int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); 2935449: int SSL_use_certificate_chain_file(SSL *ssl, const char *file); 2935449: struct stack_st_X509_NAME *SSL_load_client_CA_file(const char *file); 2935449: struct stack_st_X509_NAME 2935449: *SSL_load_client_CA_file_ex(const char *file, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: int SSL_add_file_cert_subjects_to_stack(struct stack_st_X509_NAME *stackCAs, 2935449: const char *file); 2935449: int SSL_add_dir_cert_subjects_to_stack(struct stack_st_X509_NAME *stackCAs, 2935449: const char *dir); 2935449: int SSL_add_store_cert_subjects_to_stack(struct stack_st_X509_NAME *stackCAs, 2935449: const char *uri); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const char *SSL_state_string(const SSL *s); 2935449: const char *SSL_rstate_string(const SSL *s); 2935449: const char *SSL_state_string_long(const SSL *s); 2935449: const char *SSL_rstate_string_long(const SSL *s); 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.4" ";" "not Y2038-safe, replace with SSL_SESSION_get_time_ex()"))) 2935449: long SSL_SESSION_get_time(const SSL_SESSION *s); 2935449: __attribute__((deprecated("Since OpenSSL " "3.4" ";" "not Y2038-safe, replace with SSL_SESSION_set_time_ex()"))) 2935449: long SSL_SESSION_set_time(SSL_SESSION *s, long t); 2935449: 2935449: long SSL_SESSION_get_timeout(const SSL_SESSION *s); 2935449: long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); 2935449: int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); 2935449: int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); 2935449: 2935449: time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); 2935449: time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); 2935449: 2935449: const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); 2935449: int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); 2935449: void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, 2935449: const unsigned char **alpn, 2935449: size_t *len); 2935449: int SSL_SESSION_set1_alpn_selected(SSL_SESSION *s, 2935449: const unsigned char *alpn, 2935449: size_t len); 2935449: const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s); 2935449: int SSL_SESSION_set_cipher(SSL_SESSION *s, const SSL_CIPHER *cipher); 2935449: int SSL_SESSION_has_ticket(const SSL_SESSION *s); 2935449: unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s); 2935449: void SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned char **tick, 2935449: size_t *len); 2935449: uint32_t SSL_SESSION_get_max_early_data(const SSL_SESSION *s); 2935449: int SSL_SESSION_set_max_early_data(SSL_SESSION *s, 2935449: uint32_t max_early_data); 2935449: int SSL_copy_session_id(SSL *to, const SSL *from); 2935449: X509 *SSL_SESSION_get0_peer(SSL_SESSION *s); 2935449: int SSL_SESSION_set1_id_context(SSL_SESSION *s, 2935449: const unsigned char *sid_ctx, 2935449: unsigned int sid_ctx_len); 2935449: int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid, 2935449: unsigned int sid_len); 2935449: int SSL_SESSION_is_resumable(const SSL_SESSION *s); 2935449: 2935449: SSL_SESSION *SSL_SESSION_new(void); 2935449: SSL_SESSION *SSL_SESSION_dup(const SSL_SESSION *src); 2935449: const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, 2935449: unsigned int *len); 2935449: const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s, 2935449: unsigned int *len); 2935449: unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s); 2935449: 2935449: int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses); 2935449: 2935449: int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); 2935449: int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x); 2935449: int SSL_SESSION_up_ref(SSL_SESSION *ses); 2935449: void SSL_SESSION_free(SSL_SESSION *ses); 2935449: int i2d_SSL_SESSION(const SSL_SESSION *in, unsigned char **pp); 2935449: int SSL_set_session(SSL *to, SSL_SESSION *session); 2935449: int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *session); 2935449: int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *session); 2935449: int SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb); 2935449: int SSL_set_generate_session_id(SSL *s, GEN_SESSION_CB cb); 2935449: int SSL_has_matching_session_id(const SSL *s, 2935449: const unsigned char *id, 2935449: unsigned int id_len); 2935449: SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, 2935449: long length); 2935449: SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, 2935449: long length, OSSL_LIB_CTX *libctx, 2935449: const char *propq); 2935449: 2935449: 2935449: X509 *SSL_get0_peer_certificate(const SSL *s); 2935449: X509 *SSL_get1_peer_certificate(const SSL *s); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct stack_st_X509 *SSL_get_peer_cert_chain(const SSL *s); 2935449: 2935449: int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); 2935449: int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); 2935449: SSL_verify_cb SSL_CTX_get_verify_callback(const SSL_CTX *ctx); 2935449: void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, SSL_verify_cb callback); 2935449: void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth); 2935449: void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, 2935449: int (*cb) (X509_STORE_CTX *, void *), 2935449: void *arg); 2935449: void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), 2935449: void *arg); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, 2935449: long len); 2935449: 2935449: int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); 2935449: int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, 2935449: const unsigned char *d, long len); 2935449: int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); 2935449: int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, 2935449: const unsigned char *d); 2935449: int SSL_CTX_use_cert_and_key(SSL_CTX *ctx, X509 *x509, EVP_PKEY *privatekey, 2935449: struct stack_st_X509 *chain, int override); 2935449: 2935449: void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); 2935449: void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); 2935449: pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx); 2935449: void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx); 2935449: void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb); 2935449: void SSL_set_default_passwd_cb_userdata(SSL *s, void *u); 2935449: pem_password_cb *SSL_get_default_passwd_cb(SSL *s); 2935449: void *SSL_get_default_passwd_cb_userdata(SSL *s); 2935449: 2935449: int SSL_CTX_check_private_key(const SSL_CTX *ctx); 2935449: int SSL_check_private_key(const SSL *ctx); 2935449: 2935449: int SSL_CTX_set_session_id_context(SSL_CTX *ctx, 2935449: const unsigned char *sid_ctx, 2935449: unsigned int sid_ctx_len); 2935449: 2935449: SSL *SSL_new(SSL_CTX *ctx); 2935449: int SSL_up_ref(SSL *s); 2935449: int SSL_is_dtls(const SSL *s); 2935449: int SSL_is_tls(const SSL *s); 2935449: int SSL_is_quic(const SSL *s); 2935449: int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, 2935449: unsigned int sid_ctx_len); 2935449: 2935449: int SSL_CTX_set_purpose(SSL_CTX *ctx, int purpose); 2935449: int SSL_set_purpose(SSL *ssl, int purpose); 2935449: int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); 2935449: int SSL_set_trust(SSL *ssl, int trust); 2935449: 2935449: int SSL_set1_host(SSL *s, const char *host); 2935449: int SSL_add1_host(SSL *s, const char *host); 2935449: const char *SSL_get0_peername(SSL *s); 2935449: void SSL_set_hostflags(SSL *s, unsigned int flags); 2935449: 2935449: int SSL_CTX_dane_enable(SSL_CTX *ctx); 2935449: int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md, 2935449: uint8_t mtype, uint8_t ord); 2935449: int SSL_dane_enable(SSL *s, const char *basedomain); 2935449: int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector, 2935449: uint8_t mtype, const unsigned char *data, size_t dlen); 2935449: int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki); 2935449: int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector, 2935449: uint8_t *mtype, const unsigned char **data, 2935449: size_t *dlen); 2935449: 2935449: 2935449: 2935449: 2935449: SSL_DANE *SSL_get0_dane(SSL *ssl); 2935449: 2935449: 2935449: 2935449: unsigned long SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags); 2935449: unsigned long SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long flags); 2935449: unsigned long SSL_dane_set_flags(SSL *ssl, unsigned long flags); 2935449: unsigned long SSL_dane_clear_flags(SSL *ssl, unsigned long flags); 2935449: 2935449: int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); 2935449: int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); 2935449: 2935449: X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); 2935449: X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx, 2935449: char *(*cb) (SSL *, void *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx, 2935449: int (*cb) (SSL *, void *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx, 2935449: int (*cb) (SSL *, int *, void *)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g, 2935449: BIGNUM *sa, BIGNUM *v, char *info); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass, 2935449: const char *grp); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) BIGNUM *SSL_get_srp_g(SSL *s); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) BIGNUM *SSL_get_srp_N(SSL *s); 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) char *SSL_get_srp_username(SSL *s); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) char *SSL_get_srp_userinfo(SSL *s); 2935449: # 1954 "/usr/include/openssl/ssl.h" 3 4 2935449: typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); 2935449: void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, 2935449: void *arg); 2935449: typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, 2935449: void *arg); 2935449: void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, 2935449: void *arg); 2935449: 2935449: int SSL_client_hello_isv2(SSL *s); 2935449: unsigned int SSL_client_hello_get0_legacy_version(SSL *s); 2935449: size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); 2935449: size_t SSL_client_hello_get0_session_id(SSL *s, const unsigned char **out); 2935449: size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); 2935449: size_t SSL_client_hello_get0_compression_methods(SSL *s, 2935449: const unsigned char **out); 2935449: int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); 2935449: int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, 2935449: size_t *num_exts); 2935449: int SSL_client_hello_get0_ext(SSL *s, unsigned int type, 2935449: const unsigned char **out, size_t *outlen); 2935449: 2935449: void SSL_certs_clear(SSL *s); 2935449: void SSL_free(SSL *ssl); 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_waiting_for_async(SSL *s); 2935449: int SSL_get_all_async_fds(SSL *s, int *fds, size_t *numfds); 2935449: int SSL_get_changed_async_fds(SSL *s, int *addfd, 2935449: size_t *numaddfds, int *delfd, 2935449: size_t *numdelfds); 2935449: int SSL_CTX_set_async_callback(SSL_CTX *ctx, SSL_async_callback_fn callback); 2935449: int SSL_CTX_set_async_callback_arg(SSL_CTX *ctx, void *arg); 2935449: int SSL_set_async_callback(SSL *s, SSL_async_callback_fn callback); 2935449: int SSL_set_async_callback_arg(SSL *s, void *arg); 2935449: int SSL_get_async_status(SSL *s, int *status); 2935449: 2935449: 2935449: int SSL_accept(SSL *ssl); 2935449: int SSL_stateless(SSL *s); 2935449: int SSL_connect(SSL *ssl); 2935449: int SSL_read(SSL *ssl, void *buf, int num); 2935449: int SSL_read_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_read_early_data(SSL *s, void *buf, size_t num, 2935449: size_t *readbytes); 2935449: int SSL_peek(SSL *ssl, void *buf, int num); 2935449: int SSL_peek_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); 2935449: ssize_t SSL_sendfile(SSL *s, int fd, off_t offset, size_t size, 2935449: int flags); 2935449: int SSL_write(SSL *ssl, const void *buf, int num); 2935449: int SSL_write_ex(SSL *s, const void *buf, size_t num, size_t *written); 2935449: int SSL_write_early_data(SSL *s, const void *buf, size_t num, 2935449: size_t *written); 2935449: long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); 2935449: long SSL_callback_ctrl(SSL *, int, void (*)(void)); 2935449: long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); 2935449: long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); 2935449: 2935449: 2935449: 2935449: int SSL_write_ex2(SSL *s, const void *buf, size_t num, 2935449: uint64_t flags, 2935449: size_t *written); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_get_early_data_status(const SSL *s); 2935449: 2935449: int SSL_get_error(const SSL *s, int ret_code); 2935449: const char *SSL_get_version(const SSL *s); 2935449: int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); 2935449: # 2053 "/usr/include/openssl/ssl.h" 3 4 2935449: const SSL_METHOD *TLS_method(void); 2935449: const SSL_METHOD *TLS_server_method(void); 2935449: const SSL_METHOD *TLS_client_method(void); 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *TLSv1_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *TLSv1_server_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *TLSv1_client_method(void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *TLSv1_1_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *TLSv1_1_server_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *TLSv1_1_client_method(void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *TLSv1_2_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *TLSv1_2_server_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *TLSv1_2_client_method(void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *DTLSv1_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *DTLSv1_server_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *DTLSv1_client_method(void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *DTLSv1_2_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *DTLSv1_2_server_method(void); 2935449: __attribute__((deprecated("Since OpenSSL " "1.1.0"))) const SSL_METHOD *DTLSv1_2_client_method(void); 2935449: 2935449: 2935449: 2935449: const SSL_METHOD *DTLS_method(void); 2935449: const SSL_METHOD *DTLS_server_method(void); 2935449: const SSL_METHOD *DTLS_client_method(void); 2935449: 2935449: size_t DTLS_get_data_mtu(const SSL *s); 2935449: 2935449: struct stack_st_SSL_CIPHER *SSL_get_ciphers(const SSL *s); 2935449: struct stack_st_SSL_CIPHER *SSL_CTX_get_ciphers(const SSL_CTX *ctx); 2935449: struct stack_st_SSL_CIPHER *SSL_get_client_ciphers(const SSL *s); 2935449: struct stack_st_SSL_CIPHER *SSL_get1_supported_ciphers(SSL *s); 2935449: 2935449: int SSL_do_handshake(SSL *s); 2935449: int SSL_key_update(SSL *s, int updatetype); 2935449: int SSL_get_key_update_type(const SSL *s); 2935449: int SSL_renegotiate(SSL *s); 2935449: int SSL_renegotiate_abbreviated(SSL *s); 2935449: int SSL_renegotiate_pending(const SSL *s); 2935449: int SSL_new_session_ticket(SSL *s); 2935449: int SSL_shutdown(SSL *s); 2935449: int SSL_verify_client_post_handshake(SSL *s); 2935449: void SSL_CTX_set_post_handshake_auth(SSL_CTX *ctx, int val); 2935449: void SSL_set_post_handshake_auth(SSL *s, int val); 2935449: 2935449: const SSL_METHOD *SSL_CTX_get_ssl_method(const SSL_CTX *ctx); 2935449: const SSL_METHOD *SSL_get_ssl_method(const SSL *s); 2935449: int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); 2935449: const char *SSL_alert_type_string_long(int value); 2935449: const char *SSL_alert_type_string(int value); 2935449: const char *SSL_alert_desc_string_long(int value); 2935449: const char *SSL_alert_desc_string(int value); 2935449: 2935449: void SSL_set0_CA_list(SSL *s, struct stack_st_X509_NAME *name_list); 2935449: void SSL_CTX_set0_CA_list(SSL_CTX *ctx, struct stack_st_X509_NAME *name_list); 2935449: const struct stack_st_X509_NAME *SSL_get0_CA_list(const SSL *s); 2935449: const struct stack_st_X509_NAME *SSL_CTX_get0_CA_list(const SSL_CTX *ctx); 2935449: int SSL_add1_to_CA_list(SSL *ssl, const X509 *x); 2935449: int SSL_CTX_add1_to_CA_list(SSL_CTX *ctx, const X509 *x); 2935449: const struct stack_st_X509_NAME *SSL_get0_peer_CA_list(const SSL *s); 2935449: 2935449: void SSL_set_client_CA_list(SSL *s, struct stack_st_X509_NAME *name_list); 2935449: void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, struct stack_st_X509_NAME *name_list); 2935449: struct stack_st_X509_NAME *SSL_get_client_CA_list(const SSL *s); 2935449: struct stack_st_X509_NAME *SSL_CTX_get_client_CA_list(const SSL_CTX *s); 2935449: int SSL_add_client_CA(SSL *ssl, X509 *x); 2935449: int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x); 2935449: 2935449: void SSL_set_connect_state(SSL *s); 2935449: void SSL_set_accept_state(SSL *s); 2935449: 2935449: long SSL_get_default_timeout(const SSL *s); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); 2935449: struct stack_st_X509_NAME *SSL_dup_CA_list(const struct stack_st_X509_NAME *sk); 2935449: 2935449: SSL *SSL_dup(SSL *ssl); 2935449: 2935449: X509 *SSL_get_certificate(const SSL *ssl); 2935449: 2935449: 2935449: 2935449: struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl); 2935449: 2935449: X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); 2935449: EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); 2935449: 2935449: void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); 2935449: int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); 2935449: void SSL_set_quiet_shutdown(SSL *ssl, int mode); 2935449: int SSL_get_quiet_shutdown(const SSL *ssl); 2935449: void SSL_set_shutdown(SSL *ssl, int mode); 2935449: int SSL_get_shutdown(const SSL *ssl); 2935449: int SSL_version(const SSL *ssl); 2935449: int SSL_client_version(const SSL *s); 2935449: int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); 2935449: int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx); 2935449: int SSL_CTX_set_default_verify_file(SSL_CTX *ctx); 2935449: int SSL_CTX_set_default_verify_store(SSL_CTX *ctx); 2935449: int SSL_CTX_load_verify_file(SSL_CTX *ctx, const char *CAfile); 2935449: int SSL_CTX_load_verify_dir(SSL_CTX *ctx, const char *CApath); 2935449: int SSL_CTX_load_verify_store(SSL_CTX *ctx, const char *CAstore); 2935449: int SSL_CTX_load_verify_locations(SSL_CTX *ctx, 2935449: const char *CAfile, 2935449: const char *CApath); 2935449: 2935449: SSL_SESSION *SSL_get_session(const SSL *ssl); 2935449: SSL_SESSION *SSL_get1_session(SSL *ssl); 2935449: SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); 2935449: SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx); 2935449: void SSL_set_info_callback(SSL *ssl, 2935449: void (*cb) (const SSL *ssl, int type, int val)); 2935449: void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, 2935449: int val); 2935449: OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl); 2935449: 2935449: void SSL_set_verify_result(SSL *ssl, long v); 2935449: long SSL_get_verify_result(const SSL *ssl); 2935449: struct stack_st_X509 *SSL_get0_verified_chain(const SSL *s); 2935449: 2935449: size_t SSL_get_client_random(const SSL *ssl, unsigned char *out, 2935449: size_t outlen); 2935449: size_t SSL_get_server_random(const SSL *ssl, unsigned char *out, 2935449: size_t outlen); 2935449: size_t SSL_SESSION_get_master_key(const SSL_SESSION *sess, 2935449: unsigned char *out, size_t outlen); 2935449: int SSL_SESSION_set1_master_key(SSL_SESSION *sess, 2935449: const unsigned char *in, size_t len); 2935449: uint8_t SSL_SESSION_get_max_fragment_length(const SSL_SESSION *sess); 2935449: 2935449: 2935449: 2935449: int SSL_set_ex_data(SSL *ssl, int idx, void *data); 2935449: void *SSL_get_ex_data(const SSL *ssl, int idx); 2935449: 2935449: 2935449: int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data); 2935449: void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx); 2935449: 2935449: 2935449: int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data); 2935449: void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx); 2935449: 2935449: int SSL_get_ex_data_X509_STORE_CTX_idx(void); 2935449: # 2264 "/usr/include/openssl/ssl.h" 3 4 2935449: void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len); 2935449: void SSL_set_default_read_buffer_len(SSL *s, size_t len); 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, 2935449: DH *(*dh) (SSL *ssl, int is_export, 2935449: int keylength)); 2935449: __attribute__((deprecated("Since OpenSSL " "3.0"))) 2935449: void SSL_set_tmp_dh_callback(SSL *ssl, 2935449: DH *(*dh) (SSL *ssl, int is_export, 2935449: int keylength)); 2935449: 2935449: 2935449: 2935449: const COMP_METHOD *SSL_get_current_compression(const SSL *s); 2935449: const COMP_METHOD *SSL_get_current_expansion(const SSL *s); 2935449: const char *SSL_COMP_get_name(const COMP_METHOD *comp); 2935449: const char *SSL_COMP_get0_name(const SSL_COMP *comp); 2935449: int SSL_COMP_get_id(const SSL_COMP *comp); 2935449: struct stack_st_SSL_COMP *SSL_COMP_get_compression_methods(void); 2935449: struct stack_st_SSL_COMP *SSL_COMP_set0_compression_methods(struct stack_st_SSL_COMP 2935449: *meths); 2935449: 2935449: 2935449: 2935449: int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); 2935449: 2935449: const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); 2935449: int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c); 2935449: int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c); 2935449: int SSL_bytes_to_cipher_list(SSL *s, const unsigned char *bytes, size_t len, 2935449: int isv2format, struct stack_st_SSL_CIPHER **sk, 2935449: struct stack_st_SSL_CIPHER **scsvs); 2935449: 2935449: 2935449: int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); 2935449: 2935449: int SSL_set_session_ticket_ext_cb(SSL *s, 2935449: tls_session_ticket_ext_cb_fn cb, 2935449: void *arg); 2935449: 2935449: 2935449: int SSL_set_session_secret_cb(SSL *s, 2935449: tls_session_secret_cb_fn session_secret_cb, 2935449: void *arg); 2935449: 2935449: void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx, 2935449: int (*cb) (SSL *ssl, 2935449: int 2935449: is_forward_secure)); 2935449: 2935449: void SSL_set_not_resumable_session_callback(SSL *ssl, 2935449: int (*cb) (SSL *ssl, 2935449: int is_forward_secure)); 2935449: 2935449: void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, 2935449: size_t (*cb) (SSL *ssl, int type, 2935449: size_t len, void *arg)); 2935449: void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); 2935449: void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); 2935449: int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); 2935449: int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, 2935449: size_t hs_block_size); 2935449: 2935449: int SSL_set_record_padding_callback(SSL *ssl, 2935449: size_t (*cb) (SSL *ssl, int type, 2935449: size_t len, void *arg)); 2935449: void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); 2935449: void *SSL_get_record_padding_callback_arg(const SSL *ssl); 2935449: int SSL_set_block_padding(SSL *ssl, size_t block_size); 2935449: int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, 2935449: size_t hs_block_size); 2935449: int SSL_set_num_tickets(SSL *s, size_t num_tickets); 2935449: size_t SSL_get_num_tickets(const SSL *s); 2935449: int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); 2935449: size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); 2935449: 2935449: 2935449: int SSL_handle_events(SSL *s); 2935449: int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); 2935449: int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); 2935449: int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); 2935449: int SSL_net_read_desired(SSL *s); 2935449: int SSL_net_write_desired(SSL *s); 2935449: int SSL_set_blocking_mode(SSL *s, int blocking); 2935449: int SSL_get_blocking_mode(SSL *s); 2935449: int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); 2935449: SSL *SSL_get0_connection(SSL *s); 2935449: int SSL_is_connection(SSL *s); 2935449: 2935449: int SSL_is_listener(SSL *ssl); 2935449: SSL *SSL_get0_listener(SSL *s); 2935449: 2935449: SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); 2935449: SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); 2935449: SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); 2935449: 2935449: SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); 2935449: size_t SSL_get_accept_connection_queue_len(SSL *ssl); 2935449: int SSL_listen(SSL *ssl); 2935449: 2935449: int SSL_is_domain(SSL *s); 2935449: SSL *SSL_get0_domain(SSL *s); 2935449: SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); 2935449: int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); 2935449: int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_get_stream_type(SSL *s); 2935449: 2935449: uint64_t SSL_get_stream_id(SSL *s); 2935449: int SSL_is_stream_local(SSL *s); 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_set_default_stream_mode(SSL *s, uint32_t mode); 2935449: 2935449: 2935449: 2935449: 2935449: SSL *SSL_new_stream(SSL *s, uint64_t flags); 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); 2935449: 2935449: 2935449: SSL *SSL_accept_stream(SSL *s, uint64_t flags); 2935449: size_t SSL_get_accept_stream_queue_len(SSL *s); 2935449: 2935449: 2935449: int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, 2935449: size_t buf_len, 2935449: const BIO_ADDR *peer, 2935449: const BIO_ADDR *local); 2935449: 2935449: 2935449: typedef struct ssl_shutdown_ex_args_st { 2935449: uint64_t quic_error_code; 2935449: const char *quic_reason; 2935449: } SSL_SHUTDOWN_EX_ARGS; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_shutdown_ex(SSL *ssl, uint64_t flags, 2935449: const SSL_SHUTDOWN_EX_ARGS *args, 2935449: size_t args_len); 2935449: 2935449: int SSL_stream_conclude(SSL *ssl, uint64_t flags); 2935449: 2935449: typedef struct ssl_stream_reset_args_st { 2935449: uint64_t quic_error_code; 2935449: } SSL_STREAM_RESET_ARGS; 2935449: 2935449: int SSL_stream_reset(SSL *ssl, 2935449: const SSL_STREAM_RESET_ARGS *args, 2935449: size_t args_len); 2935449: # 2448 "/usr/include/openssl/ssl.h" 3 4 2935449: int SSL_get_stream_read_state(SSL *ssl); 2935449: int SSL_get_stream_write_state(SSL *ssl); 2935449: 2935449: int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); 2935449: int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); 2935449: 2935449: 2935449: 2935449: 2935449: typedef struct ssl_conn_close_info_st { 2935449: uint64_t error_code, frame_type; 2935449: const char *reason; 2935449: size_t reason_len; 2935449: uint32_t flags; 2935449: } SSL_CONN_CLOSE_INFO; 2935449: 2935449: int SSL_get_conn_close_info(SSL *ssl, 2935449: SSL_CONN_CLOSE_INFO *info, 2935449: size_t info_len); 2935449: # 2488 "/usr/include/openssl/ssl.h" 3 4 2935449: int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); 2935449: int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); 2935449: # 2562 "/usr/include/openssl/ssl.h" 3 4 2935449: typedef struct ssl_poll_item_st { 2935449: BIO_POLL_DESCRIPTOR desc; 2935449: uint64_t events, revents; 2935449: } SSL_POLL_ITEM; 2935449: 2935449: 2935449: 2935449: int SSL_poll(SSL_POLL_ITEM *items, 2935449: size_t num_items, 2935449: size_t stride, 2935449: const struct timeval *timeout, 2935449: uint64_t flags, 2935449: size_t *result_count); 2935449: 2935449: static inline __attribute__((unused)) BIO_POLL_DESCRIPTOR 2935449: SSL_as_poll_descriptor(SSL *s) 2935449: { 2935449: BIO_POLL_DESCRIPTOR d; 2935449: 2935449: d.type = 2; 2935449: d.value.ssl = s; 2935449: return d; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_session_reused(const SSL *s); 2935449: int SSL_is_server(const SSL *s); 2935449: 2935449: SSL_CONF_CTX *SSL_CONF_CTX_new(void); 2935449: int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx); 2935449: void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx); 2935449: unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags); 2935449: unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, 2935449: unsigned int flags); 2935449: int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre); 2935449: 2935449: void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); 2935449: void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); 2935449: 2935449: int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); 2935449: int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); 2935449: int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); 2935449: 2935449: void SSL_add_ssl_module(void); 2935449: int SSL_config(SSL *s, const char *name); 2935449: int SSL_CTX_config(SSL_CTX *ctx, const char *name); 2935449: 2935449: 2935449: void SSL_trace(int write_p, int version, int content_type, 2935449: const void *buf, size_t len, SSL *ssl, void *arg); 2935449: 2935449: 2935449: 2935449: int DTLSv1_listen(SSL *s, BIO_ADDR *client); 2935449: # 2629 "/usr/include/openssl/ssl.h" 3 4 2935449: typedef int (*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx, 2935449: const struct stack_st_SCT *scts, void *arg); 2935449: # 2644 "/usr/include/openssl/ssl.h" 3 4 2935449: int SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback, 2935449: void *arg); 2935449: int SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx, 2935449: ssl_ct_validation_cb callback, 2935449: void *arg); 2935449: # 2659 "/usr/include/openssl/ssl.h" 3 4 2935449: enum { 2935449: SSL_CT_VALIDATION_PERMISSIVE = 0, 2935449: SSL_CT_VALIDATION_STRICT 2935449: }; 2935449: # 2672 "/usr/include/openssl/ssl.h" 3 4 2935449: int SSL_enable_ct(SSL *s, int validation_mode); 2935449: int SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode); 2935449: 2935449: 2935449: 2935449: 2935449: int SSL_ct_is_enabled(const SSL *s); 2935449: int SSL_CTX_ct_is_enabled(const SSL_CTX *ctx); 2935449: 2935449: 2935449: const struct stack_st_SCT *SSL_get0_peer_scts(SSL *s); 2935449: # 2691 "/usr/include/openssl/ssl.h" 3 4 2935449: int SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx); 2935449: # 2700 "/usr/include/openssl/ssl.h" 3 4 2935449: int SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE *logs); 2935449: # 2715 "/usr/include/openssl/ssl.h" 3 4 2935449: const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx); 2935449: # 2777 "/usr/include/openssl/ssl.h" 3 4 2935449: void SSL_set_security_level(SSL *s, int level); 2935449: int SSL_get_security_level(const SSL *s); 2935449: void SSL_set_security_callback(SSL *s, 2935449: int (*cb) (const SSL *s, const SSL_CTX *ctx, 2935449: int op, int bits, int nid, 2935449: void *other, void *ex)); 2935449: int (*SSL_get_security_callback(const SSL *s)) (const SSL *s, 2935449: const SSL_CTX *ctx, int op, 2935449: int bits, int nid, void *other, 2935449: void *ex); 2935449: void SSL_set0_security_ex_data(SSL *s, void *ex); 2935449: void *SSL_get0_security_ex_data(const SSL *s); 2935449: 2935449: void SSL_CTX_set_security_level(SSL_CTX *ctx, int level); 2935449: int SSL_CTX_get_security_level(const SSL_CTX *ctx); 2935449: void SSL_CTX_set_security_callback(SSL_CTX *ctx, 2935449: int (*cb) (const SSL *s, const SSL_CTX *ctx, 2935449: int op, int bits, int nid, 2935449: void *other, void *ex)); 2935449: int (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s, 2935449: const SSL_CTX *ctx, 2935449: int op, int bits, 2935449: int nid, 2935449: void *other, 2935449: void *ex); 2935449: void SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex); 2935449: void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx); 2935449: # 2812 "/usr/include/openssl/ssl.h" 3 4 2935449: int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); 2935449: 2935449: 2935449: const struct openssl_ssl_test_functions *SSL_test_functions(void); 2935449: 2935449: 2935449: int SSL_free_buffers(SSL *ssl); 2935449: int SSL_alloc_buffers(SSL *ssl); 2935449: 2935449: 2935449: 2935449: typedef int SSL_TICKET_STATUS; 2935449: # 2842 "/usr/include/openssl/ssl.h" 3 4 2935449: typedef int SSL_TICKET_RETURN; 2935449: # 2855 "/usr/include/openssl/ssl.h" 3 4 2935449: typedef int (*SSL_CTX_generate_session_ticket_fn)(SSL *s, void *arg); 2935449: typedef SSL_TICKET_RETURN (*SSL_CTX_decrypt_session_ticket_fn)(SSL *s, SSL_SESSION *ss, 2935449: const unsigned char *keyname, 2935449: size_t keyname_length, 2935449: SSL_TICKET_STATUS status, 2935449: void *arg); 2935449: int SSL_CTX_set_session_ticket_cb(SSL_CTX *ctx, 2935449: SSL_CTX_generate_session_ticket_fn gen_cb, 2935449: SSL_CTX_decrypt_session_ticket_fn dec_cb, 2935449: void *arg); 2935449: int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data, size_t len); 2935449: int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len); 2935449: 2935449: typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us); 2935449: 2935449: void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb); 2935449: 2935449: 2935449: typedef int (*SSL_allow_early_data_cb_fn)(SSL *s, void *arg); 2935449: void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx, 2935449: SSL_allow_early_data_cb_fn cb, 2935449: void *arg); 2935449: void SSL_set_allow_early_data_cb(SSL *s, 2935449: SSL_allow_early_data_cb_fn cb, 2935449: void *arg); 2935449: 2935449: 2935449: const char *OSSL_default_cipher_list(void); 2935449: const char *OSSL_default_ciphersuites(void); 2935449: 2935449: 2935449: 2935449: int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); 2935449: int SSL_compress_certs(SSL *ssl, int alg); 2935449: 2935449: int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); 2935449: int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); 2935449: 2935449: int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, 2935449: size_t comp_length, size_t orig_length); 2935449: int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, 2935449: size_t comp_length, size_t orig_length); 2935449: size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); 2935449: size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); 2935449: 2935449: int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); 2935449: EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); 2935449: EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); 2935449: int SSL_get_negotiated_client_cert_type(const SSL *s); 2935449: int SSL_get_negotiated_server_cert_type(const SSL *s); 2935449: 2935449: int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); 2935449: int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); 2935449: int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); 2935449: int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); 2935449: int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); 2935449: int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); 2935449: int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); 2935449: int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); 2935449: # 2923 "/usr/include/openssl/ssl.h" 3 4 2935449: int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); 2935449: int SSL_set_quic_tls_transport_params(SSL *s, 2935449: const unsigned char *params, 2935449: size_t params_len); 2935449: 2935449: int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); 2935449: 2935449: 2935449: } 2935449: # 26 "/<>/src/client/WFConsulClient.cc" 2 2935449: # 1 "/<>/_include/workflow/json_parser.h" 1 2935449: # 22 "/<>/_include/workflow/json_parser.h" 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 23 "/<>/_include/workflow/json_parser.h" 2 2935449: # 32 "/<>/_include/workflow/json_parser.h" 2935449: 2935449: # 32 "/<>/_include/workflow/json_parser.h" 2935449: typedef struct __json_value json_value_t; 2935449: typedef struct __json_object json_object_t; 2935449: typedef struct __json_array json_array_t; 2935449: 2935449: 2935449: extern "C" 2935449: { 2935449: 2935449: 2935449: json_value_t *json_value_parse(const char *json); 2935449: json_value_t *json_value_create(int type, ...); 2935449: json_value_t *json_value_copy(const json_value_t *val); 2935449: void json_value_destroy(json_value_t *val); 2935449: 2935449: int json_value_type(const json_value_t *val); 2935449: const char *json_value_string(const json_value_t *val); 2935449: double json_value_number(const json_value_t *val); 2935449: json_object_t *json_value_object(const json_value_t *val); 2935449: json_array_t *json_value_array(const json_value_t *val); 2935449: 2935449: const json_value_t *json_object_find(const char *name, 2935449: const json_object_t *obj); 2935449: size_t json_object_size(const json_object_t *obj); 2935449: const char *json_object_next_name(const char *name, 2935449: const json_object_t *obj); 2935449: const json_value_t *json_object_next_value(const json_value_t *val, 2935449: const json_object_t *obj); 2935449: const char *json_object_prev_name(const char *name, 2935449: const json_object_t *obj); 2935449: const json_value_t *json_object_prev_value(const json_value_t *val, 2935449: const json_object_t *obj); 2935449: const char *json_object_value_name(const json_value_t *val, 2935449: const json_object_t *obj); 2935449: const json_value_t *json_object_append(json_object_t *obj, 2935449: const char *name, 2935449: int type, ...); 2935449: const json_value_t *json_object_insert_after(const json_value_t *val, 2935449: json_object_t *obj, 2935449: const char *name, 2935449: int type, ...); 2935449: const json_value_t *json_object_insert_before(const json_value_t *val, 2935449: json_object_t *obj, 2935449: const char *name, 2935449: int type, ...); 2935449: json_value_t *json_object_remove(const json_value_t *val, 2935449: json_object_t *obj); 2935449: 2935449: size_t json_array_size(const json_array_t *arr); 2935449: const json_value_t *json_array_next_value(const json_value_t *val, 2935449: const json_array_t *arr); 2935449: const json_value_t *json_array_prev_value(const json_value_t *val, 2935449: const json_array_t *arr); 2935449: const json_value_t *json_array_append(json_array_t *arry, 2935449: int type, ...); 2935449: const json_value_t *json_array_insert_after(const json_value_t *val, 2935449: json_array_t *arr, 2935449: int type, ...); 2935449: const json_value_t *json_array_insert_before(const json_value_t *val, 2935449: json_array_t *arr, 2935449: int type, ...); 2935449: json_value_t *json_array_remove(const json_value_t *val, 2935449: json_array_t *arr); 2935449: 2935449: 2935449: } 2935449: # 27 "/<>/src/client/WFConsulClient.cc" 2 2935449: # 1 "/<>/_include/workflow/StringUtil.h" 1 2935449: # 31 "/<>/_include/workflow/StringUtil.h" 2935449: class StringUtil 2935449: { 2935449: public: 2935449: static void url_decode(std::string& str); 2935449: static std::string url_encode(const std::string& str); 2935449: static std::string url_encode_component(const std::string& str); 2935449: static std::vector split(const std::string& str, char sep); 2935449: static std::string strip(const std::string& str); 2935449: static bool start_with(const std::string& str, const std::string& prefix); 2935449: 2935449: 2935449: static std::vector split_filter_empty(const std::string& str, char sep); 2935449: }; 2935449: # 28 "/<>/src/client/WFConsulClient.cc" 2 2935449: # 1 "/<>/_include/workflow/URIParser.h" 1 2935449: # 23 "/<>/_include/workflow/URIParser.h" 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/stdlib.h" 1 3 2935449: # 24 "/<>/_include/workflow/URIParser.h" 2 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/map" 1 3 2935449: # 64 "/usr/arm-linux-gnueabi/include/c++/15/map" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 1 3 2935449: # 72 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/ext/aligned_buffer.h" 1 3 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/ext/aligned_buffer.h" 3 2935449: 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/ext/aligned_buffer.h" 3 2935449: namespace __gnu_cxx 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __aligned_membuf 2935449: { 2935449: # 60 "/usr/arm-linux-gnueabi/include/c++/15/ext/aligned_buffer.h" 3 2935449: alignas(_Tp) 2935449: 2935449: unsigned char _M_storage[sizeof(_Tp)]; 2935449: 2935449: __aligned_membuf() = default; 2935449: 2935449: 2935449: __aligned_membuf(std::nullptr_t) { } 2935449: 2935449: void* 2935449: _M_addr() noexcept 2935449: { return static_cast(&_M_storage); } 2935449: 2935449: const void* 2935449: _M_addr() const noexcept 2935449: { return static_cast(&_M_storage); } 2935449: 2935449: _Tp* 2935449: _M_ptr() noexcept 2935449: { return static_cast<_Tp*>(_M_addr()); } 2935449: 2935449: const _Tp* 2935449: _M_ptr() const noexcept 2935449: { return static_cast(_M_addr()); } 2935449: }; 2935449: # 95 "/usr/arm-linux-gnueabi/include/c++/15/ext/aligned_buffer.h" 3 2935449: template 2935449: struct __aligned_buffer 2935449: { 2935449: 2935449: alignas(__alignof__(_Tp)) unsigned char _M_storage[sizeof(_Tp)]; 2935449: 2935449: __aligned_buffer() = default; 2935449: 2935449: 2935449: __aligned_buffer(std::nullptr_t) { } 2935449: 2935449: void* 2935449: _M_addr() noexcept 2935449: { 2935449: return static_cast(&_M_storage); 2935449: } 2935449: 2935449: const void* 2935449: _M_addr() const noexcept 2935449: { 2935449: return static_cast(&_M_storage); 2935449: } 2935449: 2935449: _Tp* 2935449: _M_ptr() noexcept 2935449: { return static_cast<_Tp*>(_M_addr()); } 2935449: 2935449: const _Tp* 2935449: _M_ptr() const noexcept 2935449: { return static_cast(_M_addr()); } 2935449: }; 2935449: 2935449: 2935449: } 2935449: # 73 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 2 3 2935449: # 85 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 105 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: enum _Rb_tree_color { _S_red = false, _S_black = true }; 2935449: 2935449: struct _Rb_tree_node_base 2935449: { 2935449: typedef _Rb_tree_node_base* _Base_ptr; 2935449: 2935449: _Rb_tree_color _M_color; 2935449: _Base_ptr _M_parent; 2935449: _Base_ptr _M_left; 2935449: _Base_ptr _M_right; 2935449: 2935449: static _Base_ptr 2935449: _S_minimum(_Base_ptr __x) noexcept 2935449: { 2935449: while (__x->_M_left != 0) __x = __x->_M_left; 2935449: return __x; 2935449: } 2935449: 2935449: static _Base_ptr 2935449: _S_maximum(_Base_ptr __x) noexcept 2935449: { 2935449: while (__x->_M_right != 0) __x = __x->_M_right; 2935449: return __x; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: _Base_ptr 2935449: _M_base_ptr() const noexcept 2935449: { return const_cast<_Rb_tree_node_base*>(this); } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Rb_tree_key_compare 2935449: { 2935449: _Key_compare _M_key_compare; 2935449: 2935449: _Rb_tree_key_compare() 2935449: noexcept(is_nothrow_default_constructible<_Key_compare>::value) 2935449: 2935449: : _M_key_compare() 2935449: { } 2935449: 2935449: _Rb_tree_key_compare(const _Key_compare& __comp) 2935449: : _M_key_compare(__comp) 2935449: { } 2935449: 2935449: 2935449: 2935449: _Rb_tree_key_compare(const _Rb_tree_key_compare&) = default; 2935449: 2935449: _Rb_tree_key_compare(_Rb_tree_key_compare&& __x) 2935449: noexcept(is_nothrow_copy_constructible<_Key_compare>::value) 2935449: : _M_key_compare(__x._M_key_compare) 2935449: { } 2935449: 2935449: }; 2935449: 2935449: 2935449: struct _Rb_tree_header 2935449: { 2935449: _Rb_tree_node_base _M_header; 2935449: size_t _M_node_count; 2935449: 2935449: _Rb_tree_header() noexcept 2935449: { 2935449: _M_header._M_color = _S_red; 2935449: _M_reset(); 2935449: } 2935449: 2935449: 2935449: _Rb_tree_header(_Rb_tree_header&& __x) noexcept 2935449: { 2935449: if (__x._M_header._M_parent != nullptr) 2935449: _M_move_data(__x); 2935449: else 2935449: { 2935449: _M_header._M_color = _S_red; 2935449: _M_reset(); 2935449: } 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_move_data(_Rb_tree_header& __from) 2935449: { 2935449: _M_header._M_color = __from._M_header._M_color; 2935449: _M_header._M_parent = __from._M_header._M_parent; 2935449: _M_header._M_left = __from._M_header._M_left; 2935449: _M_header._M_right = __from._M_header._M_right; 2935449: _M_header._M_parent->_M_parent = &_M_header; 2935449: _M_node_count = __from._M_node_count; 2935449: 2935449: __from._M_reset(); 2935449: } 2935449: 2935449: void 2935449: _M_reset() 2935449: { 2935449: _M_header._M_parent = 0; 2935449: _M_header._M_left = &_M_header; 2935449: _M_header._M_right = &_M_header; 2935449: _M_node_count = 0; 2935449: } 2935449: }; 2935449: 2935449: template 2935449: struct _Rb_tree_node : public _Rb_tree_node_base 2935449: { 2935449: # 227 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: __gnu_cxx::__aligned_membuf<_Val> _M_storage; 2935449: 2935449: _Val* 2935449: _M_valptr() 2935449: { return _M_storage._M_ptr(); } 2935449: 2935449: const _Val* 2935449: _M_valptr() const 2935449: { return _M_storage._M_ptr(); } 2935449: 2935449: 2935449: _Rb_tree_node* 2935449: _M_node_ptr() noexcept 2935449: { return this; } 2935449: }; 2935449: 2935449: 2935449: namespace __rb_tree 2935449: { 2935449: template 2935449: struct _Node_base 2935449: { 2935449: using _Base_ptr = __ptr_rebind<_VoidPtr, _Node_base>; 2935449: 2935449: _Rb_tree_color _M_color; 2935449: _Base_ptr _M_parent; 2935449: _Base_ptr _M_left; 2935449: _Base_ptr _M_right; 2935449: 2935449: static _Base_ptr 2935449: _S_minimum(_Base_ptr __x) noexcept 2935449: { 2935449: while (__x->_M_left) __x = __x->_M_left; 2935449: return __x; 2935449: } 2935449: 2935449: static _Base_ptr 2935449: _S_maximum(_Base_ptr __x) noexcept 2935449: { 2935449: while (__x->_M_right) __x = __x->_M_right; 2935449: return __x; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: _Base_ptr 2935449: _M_base_ptr() const noexcept 2935449: { 2935449: return pointer_traits<_Base_ptr>::pointer_to 2935449: (*const_cast<_Node_base*>(this)); 2935449: } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Header 2935449: { 2935449: private: 2935449: using _Base_ptr = typename _NodeBase::_Base_ptr; 2935449: 2935449: public: 2935449: _NodeBase _M_header; 2935449: size_t _M_node_count; 2935449: 2935449: _Header() noexcept 2935449: { 2935449: _M_header._M_color = _S_red; 2935449: _M_reset(); 2935449: } 2935449: 2935449: _Header(_Header&& __x) noexcept 2935449: { 2935449: if (__x._M_header._M_parent) 2935449: _M_move_data(__x); 2935449: else 2935449: { 2935449: _M_header._M_color = _S_red; 2935449: _M_reset(); 2935449: } 2935449: } 2935449: 2935449: void 2935449: _M_move_data(_Header& __from) 2935449: { 2935449: _M_header._M_color = __from._M_header._M_color; 2935449: _M_header._M_parent = __from._M_header._M_parent; 2935449: _M_header._M_left = __from._M_header._M_left; 2935449: _M_header._M_right = __from._M_header._M_right; 2935449: _M_header._M_parent->_M_parent = _M_header._M_base_ptr(); 2935449: _M_node_count = __from._M_node_count; 2935449: 2935449: __from._M_reset(); 2935449: } 2935449: 2935449: void 2935449: _M_reset() 2935449: { 2935449: _M_header._M_parent = nullptr; 2935449: _M_header._M_left = _M_header._M_right = _M_header._M_base_ptr(); 2935449: _M_node_count = 0; 2935449: } 2935449: }; 2935449: 2935449: template 2935449: struct _Node : public __rb_tree::_Node_base<__ptr_rebind<_ValPtr, void>> 2935449: { 2935449: using value_type = typename pointer_traits<_ValPtr>::element_type; 2935449: using _Node_ptr = __ptr_rebind<_ValPtr, _Node>; 2935449: 2935449: _Node() noexcept { } 2935449: ~_Node() { } 2935449: _Node(_Node&&) = delete; 2935449: 2935449: union _Uninit_storage 2935449: { 2935449: _Uninit_storage() noexcept { } 2935449: ~_Uninit_storage() { } 2935449: 2935449: value_type _M_data; 2935449: }; 2935449: _Uninit_storage _M_u; 2935449: 2935449: value_type* 2935449: _M_valptr() 2935449: { return std::addressof(_M_u._M_data); } 2935449: 2935449: value_type const* 2935449: _M_valptr() const 2935449: { return std::addressof(_M_u._M_data); } 2935449: 2935449: _Node_ptr 2935449: _M_node_ptr() noexcept 2935449: { return pointer_traits<_Node_ptr>::pointer_to(*this); } 2935449: }; 2935449: } 2935449: 2935449: 2935449: __attribute__ ((__pure__)) _Rb_tree_node_base* 2935449: _Rb_tree_increment(_Rb_tree_node_base* __x) throw (); 2935449: 2935449: __attribute__ ((__pure__)) _Rb_tree_node_base* 2935449: _Rb_tree_decrement(_Rb_tree_node_base* __x) throw (); 2935449: 2935449: template 2935449: struct _Rb_tree_iterator 2935449: { 2935449: typedef _Tp value_type; 2935449: typedef _Tp& reference; 2935449: typedef _Tp* pointer; 2935449: 2935449: typedef bidirectional_iterator_tag iterator_category; 2935449: typedef ptrdiff_t difference_type; 2935449: 2935449: typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; 2935449: typedef _Rb_tree_node<_Tp>* _Node_ptr; 2935449: 2935449: _Rb_tree_iterator() noexcept 2935449: : _M_node() { } 2935449: 2935449: explicit 2935449: _Rb_tree_iterator(_Base_ptr __x) noexcept 2935449: : _M_node(__x) { } 2935449: 2935449: reference 2935449: operator*() const noexcept 2935449: { return *static_cast<_Node_ptr>(_M_node)->_M_valptr(); } 2935449: 2935449: pointer 2935449: operator->() const noexcept 2935449: { return static_cast<_Node_ptr>(_M_node)->_M_valptr(); } 2935449: 2935449: _Rb_tree_iterator& 2935449: operator++() noexcept 2935449: { 2935449: _M_node = _Rb_tree_increment(_M_node); 2935449: return *this; 2935449: } 2935449: 2935449: _Rb_tree_iterator 2935449: operator++(int) noexcept 2935449: { 2935449: _Rb_tree_iterator __tmp = *this; 2935449: _M_node = _Rb_tree_increment(_M_node); 2935449: return __tmp; 2935449: } 2935449: 2935449: _Rb_tree_iterator& 2935449: operator--() noexcept 2935449: { 2935449: _M_node = _Rb_tree_decrement(_M_node); 2935449: return *this; 2935449: } 2935449: 2935449: _Rb_tree_iterator 2935449: operator--(int) noexcept 2935449: { 2935449: _Rb_tree_iterator __tmp = *this; 2935449: _M_node = _Rb_tree_decrement(_M_node); 2935449: return __tmp; 2935449: } 2935449: 2935449: friend bool 2935449: operator==(const _Rb_tree_iterator& __x, 2935449: const _Rb_tree_iterator& __y) noexcept 2935449: { return __x._M_node == __y._M_node; } 2935449: 2935449: 2935449: friend bool 2935449: operator!=(const _Rb_tree_iterator& __x, 2935449: const _Rb_tree_iterator& __y) noexcept 2935449: { return __x._M_node != __y._M_node; } 2935449: 2935449: 2935449: _Base_ptr _M_node; 2935449: }; 2935449: 2935449: template 2935449: struct _Rb_tree_const_iterator 2935449: { 2935449: typedef _Tp value_type; 2935449: typedef const _Tp& reference; 2935449: typedef const _Tp* pointer; 2935449: 2935449: typedef _Rb_tree_iterator<_Tp> iterator; 2935449: 2935449: typedef bidirectional_iterator_tag iterator_category; 2935449: typedef ptrdiff_t difference_type; 2935449: 2935449: typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; 2935449: typedef const _Rb_tree_node<_Tp>* _Node_ptr; 2935449: 2935449: _Rb_tree_const_iterator() noexcept 2935449: : _M_node() { } 2935449: 2935449: explicit 2935449: _Rb_tree_const_iterator(_Base_ptr __x) noexcept 2935449: : _M_node(__x) { } 2935449: 2935449: _Rb_tree_const_iterator(const iterator& __it) noexcept 2935449: : _M_node(__it._M_node) { } 2935449: 2935449: reference 2935449: operator*() const noexcept 2935449: { return *static_cast<_Node_ptr>(_M_node)->_M_valptr(); } 2935449: 2935449: pointer 2935449: operator->() const noexcept 2935449: { return static_cast<_Node_ptr>(_M_node)->_M_valptr(); } 2935449: 2935449: _Rb_tree_const_iterator& 2935449: operator++() noexcept 2935449: { 2935449: _M_node = _Rb_tree_increment(_M_node); 2935449: return *this; 2935449: } 2935449: 2935449: _Rb_tree_const_iterator 2935449: operator++(int) noexcept 2935449: { 2935449: _Rb_tree_const_iterator __tmp = *this; 2935449: _M_node = _Rb_tree_increment(_M_node); 2935449: return __tmp; 2935449: } 2935449: 2935449: _Rb_tree_const_iterator& 2935449: operator--() noexcept 2935449: { 2935449: _M_node = _Rb_tree_decrement(_M_node); 2935449: return *this; 2935449: } 2935449: 2935449: _Rb_tree_const_iterator 2935449: operator--(int) noexcept 2935449: { 2935449: _Rb_tree_const_iterator __tmp = *this; 2935449: _M_node = _Rb_tree_decrement(_M_node); 2935449: return __tmp; 2935449: } 2935449: 2935449: friend bool 2935449: operator==(const _Rb_tree_const_iterator& __x, 2935449: const _Rb_tree_const_iterator& __y) noexcept 2935449: { return __x._M_node == __y._M_node; } 2935449: 2935449: 2935449: friend bool 2935449: operator!=(const _Rb_tree_const_iterator& __x, 2935449: const _Rb_tree_const_iterator& __y) noexcept 2935449: { return __x._M_node != __y._M_node; } 2935449: 2935449: 2935449: _Base_ptr _M_node; 2935449: }; 2935449: 2935449: __attribute__((__nonnull__)) 2935449: void 2935449: _Rb_tree_insert_and_rebalance(const bool __insert_left, 2935449: _Rb_tree_node_base* __x, 2935449: _Rb_tree_node_base* __p, 2935449: _Rb_tree_node_base& __header) throw (); 2935449: 2935449: __attribute__((__nonnull__,__returns_nonnull__)) 2935449: _Rb_tree_node_base* 2935449: _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, 2935449: _Rb_tree_node_base& __header) throw (); 2935449: 2935449: namespace __rb_tree 2935449: { 2935449: 2935449: template 2935449: struct _Iterator 2935449: { 2935449: template 2935449: using __maybe_const = __conditional_t<_Const, const _Tp, _Tp>; 2935449: 2935449: using __ptr_traits = pointer_traits<_ValPtr>; 2935449: using value_type = typename __ptr_traits::element_type; 2935449: using reference = __maybe_const&; 2935449: using pointer = __maybe_const*; 2935449: 2935449: using iterator_category = bidirectional_iterator_tag; 2935449: using difference_type = ptrdiff_t; 2935449: 2935449: using _Node = __rb_tree::_Node<_ValPtr>; 2935449: using _Node_base = __rb_tree::_Node_base<__ptr_rebind<_ValPtr, void>>; 2935449: using _Base_ptr = typename _Node_base::_Base_ptr; 2935449: 2935449: _Iterator() noexcept 2935449: : _M_node() { } 2935449: 2935449: constexpr explicit 2935449: _Iterator(_Base_ptr __x) noexcept 2935449: : _M_node(__x) { } 2935449: 2935449: _Iterator(const _Iterator&) = default; 2935449: _Iterator& operator=(const _Iterator&) = default; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template> 2935449: constexpr 2935449: _Iterator(const _Iterator<_OtherConst, _ValPtr>& __it) 2935449: 2935449: : _M_node(__it._M_node) { } 2935449: 2935449: [[__nodiscard__]] 2935449: reference 2935449: operator*() const noexcept 2935449: { return *static_cast<_Node&>(*_M_node)._M_valptr(); } 2935449: 2935449: [[__nodiscard__]] 2935449: pointer 2935449: operator->() const noexcept 2935449: { return static_cast<_Node&>(*_M_node)._M_valptr(); } 2935449: 2935449: _Iterator& 2935449: operator++() noexcept 2935449: { 2935449: if (_M_node->_M_right) 2935449: { 2935449: _M_node = _M_node->_M_right; 2935449: while (_M_node->_M_left) 2935449: _M_node = _M_node->_M_left; 2935449: } 2935449: else 2935449: { 2935449: _Base_ptr __y = _M_node->_M_parent; 2935449: while (_M_node == __y->_M_right) 2935449: { 2935449: _M_node = __y; 2935449: __y = __y->_M_parent; 2935449: } 2935449: if (_M_node->_M_right != __y) 2935449: _M_node = __y; 2935449: } 2935449: 2935449: return *this; 2935449: } 2935449: 2935449: _Iterator 2935449: operator++(int) noexcept 2935449: { 2935449: _Iterator __tmp(this->_M_node); 2935449: ++*this; 2935449: return __tmp; 2935449: } 2935449: 2935449: _Iterator& 2935449: operator--() noexcept 2935449: { 2935449: if (_M_node->_M_color == _S_red 2935449: && _M_node->_M_parent->_M_parent == _M_node) 2935449: _M_node = _M_node->_M_right; 2935449: else if (_M_node->_M_left) 2935449: { 2935449: _Base_ptr __y = _M_node->_M_left; 2935449: while (__y->_M_right) 2935449: __y = __y->_M_right; 2935449: _M_node = __y; 2935449: } 2935449: else 2935449: { 2935449: _Base_ptr __y = _M_node->_M_parent; 2935449: while (_M_node == __y->_M_left) 2935449: { 2935449: _M_node = __y; 2935449: __y = __y->_M_parent; 2935449: } 2935449: _M_node = __y; 2935449: } 2935449: return *this; 2935449: } 2935449: 2935449: _Iterator 2935449: operator--(int) noexcept 2935449: { 2935449: _Iterator __tmp(this->_M_node); 2935449: --*this; 2935449: return __tmp; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: friend bool 2935449: operator==(const _Iterator& __x, const _Iterator& __y) noexcept 2935449: { return __x._M_node == __y._M_node; } 2935449: 2935449: 2935449: [[__nodiscard__]] 2935449: friend bool 2935449: operator!=(const _Iterator& __x, const _Iterator& __y) noexcept 2935449: { return __x._M_node != __y._M_node; } 2935449: 2935449: 2935449: _Base_ptr _M_node; 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Node_traits; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Node_traits<_Val, _Val*> 2935449: { 2935449: typedef _Rb_tree_node<_Val> _Node; 2935449: typedef _Node* _Node_ptr; 2935449: typedef _Rb_tree_node_base _Node_base; 2935449: typedef _Node_base* _Base_ptr; 2935449: typedef _Rb_tree_header _Header_t; 2935449: typedef _Rb_tree_iterator<_Val> _Iterator; 2935449: typedef _Rb_tree_const_iterator<_Val> _Const_iterator; 2935449: 2935449: __attribute__((__nonnull__)) 2935449: static void 2935449: _S_insert_and_rebalance(const bool __insert_left, 2935449: _Node_base* __x, _Node_base* __p, 2935449: _Node_base& __header) noexcept 2935449: { 2935449: return _Rb_tree_insert_and_rebalance(__insert_left, __x, __p, __header); 2935449: } 2935449: 2935449: __attribute__((__nonnull__,__returns_nonnull__)) 2935449: static _Node_base* 2935449: _S_rebalance_for_erase(_Node_base* const __z, 2935449: _Node_base& __header) noexcept 2935449: { return _Rb_tree_rebalance_for_erase(__z, __header); } 2935449: }; 2935449: # 712 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: template 2935449: struct _Node_traits 2935449: { 2935449: using _Node = __rb_tree::_Node<_ValPtr>; 2935449: using _Node_ptr = __ptr_rebind<_ValPtr, _Node>; 2935449: using _Node_base = __rb_tree::_Node_base<__ptr_rebind<_ValPtr, void>>; 2935449: using _Base_ptr = __ptr_rebind<_ValPtr, _Node_base>; 2935449: using _Header_t = __rb_tree::_Header<_Node_base>; 2935449: using _Iterator = __rb_tree::_Iterator; 2935449: using _Const_iterator = __rb_tree::_Iterator; 2935449: 2935449: static void 2935449: _Rotate_left(_Base_ptr __x, _Base_ptr& __root) 2935449: { 2935449: const _Base_ptr __y = __x->_M_right; 2935449: 2935449: __x->_M_right = __y->_M_left; 2935449: if (__y->_M_left) 2935449: __y->_M_left->_M_parent = __x; 2935449: __y->_M_parent = __x->_M_parent; 2935449: 2935449: if (__x == __root) 2935449: __root = __y; 2935449: else if (__x == __x->_M_parent->_M_left) 2935449: __x->_M_parent->_M_left = __y; 2935449: else 2935449: __x->_M_parent->_M_right = __y; 2935449: __y->_M_left = __x; 2935449: __x->_M_parent = __y; 2935449: } 2935449: 2935449: static void 2935449: _Rotate_right(_Base_ptr __x, _Base_ptr& __root) 2935449: { 2935449: const _Base_ptr __y = __x->_M_left; 2935449: 2935449: __x->_M_left = __y->_M_right; 2935449: if (__y->_M_right) 2935449: __y->_M_right->_M_parent = __x; 2935449: __y->_M_parent = __x->_M_parent; 2935449: 2935449: if (__x == __root) 2935449: __root = __y; 2935449: else if (__x == __x->_M_parent->_M_right) 2935449: __x->_M_parent->_M_right = __y; 2935449: else 2935449: __x->_M_parent->_M_left = __y; 2935449: __y->_M_right = __x; 2935449: __x->_M_parent = __y; 2935449: } 2935449: 2935449: static void 2935449: _S_insert_and_rebalance(const bool __insert_left, 2935449: _Base_ptr __x, _Base_ptr __p, 2935449: _Node_base& __header) 2935449: { 2935449: _Base_ptr& __root = __header._M_parent; 2935449: 2935449: 2935449: __x->_M_parent = __p; 2935449: __x->_M_left = __x->_M_right = nullptr; 2935449: __x->_M_color = _S_red; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: if (__insert_left) 2935449: { 2935449: __p->_M_left = __x; 2935449: 2935449: if (std::__to_address(__p) == std::addressof(__header)) 2935449: { 2935449: __header._M_parent = __x; 2935449: __header._M_right = __x; 2935449: } 2935449: else if (__p == __header._M_left) 2935449: __header._M_left = __x; 2935449: } 2935449: else 2935449: { 2935449: __p->_M_right = __x; 2935449: 2935449: if (__p == __header._M_right) 2935449: __header._M_right = __x; 2935449: } 2935449: 2935449: while (__x != __root 2935449: && __x->_M_parent->_M_color == _S_red) 2935449: { 2935449: const _Base_ptr __xpp = __x->_M_parent->_M_parent; 2935449: 2935449: if (__x->_M_parent == __xpp->_M_left) 2935449: { 2935449: const _Base_ptr __y = __xpp->_M_right; 2935449: if (__y && __y->_M_color == _S_red) 2935449: { 2935449: __x->_M_parent->_M_color = _S_black; 2935449: __y->_M_color = _S_black; 2935449: __xpp->_M_color = _S_red; 2935449: __x = __xpp; 2935449: } 2935449: else 2935449: { 2935449: if (__x == __x->_M_parent->_M_right) 2935449: { 2935449: __x = __x->_M_parent; 2935449: _Rotate_left(__x, __root); 2935449: } 2935449: __x->_M_parent->_M_color = _S_black; 2935449: __xpp->_M_color = _S_red; 2935449: _Rotate_right(__xpp, __root); 2935449: } 2935449: } 2935449: else 2935449: { 2935449: const _Base_ptr __y = __xpp->_M_left; 2935449: if (__y && __y->_M_color == _S_red) 2935449: { 2935449: __x->_M_parent->_M_color = _S_black; 2935449: __y->_M_color = _S_black; 2935449: __xpp->_M_color = _S_red; 2935449: __x = __xpp; 2935449: } 2935449: else 2935449: { 2935449: if (__x == __x->_M_parent->_M_left) 2935449: { 2935449: __x = __x->_M_parent; 2935449: _Rotate_right(__x, __root); 2935449: } 2935449: __x->_M_parent->_M_color = _S_black; 2935449: __xpp->_M_color = _S_red; 2935449: _Rotate_left(__xpp, __root); 2935449: } 2935449: } 2935449: } 2935449: __root->_M_color = _S_black; 2935449: } 2935449: 2935449: static _Base_ptr 2935449: _S_rebalance_for_erase(_Base_ptr __z, _Node_base& __header) 2935449: { 2935449: _Base_ptr& __root = __header._M_parent; 2935449: _Base_ptr& __leftmost = __header._M_left; 2935449: _Base_ptr& __rightmost = __header._M_right; 2935449: _Base_ptr __y = __z; 2935449: _Base_ptr __x{}; 2935449: _Base_ptr __x_parent{}; 2935449: 2935449: if (!__y->_M_left) 2935449: __x = __y->_M_right; 2935449: else 2935449: if (!__y->_M_right) 2935449: __x = __y->_M_left; 2935449: else 2935449: { 2935449: 2935449: __y = __y->_M_right; 2935449: while (__y->_M_left) 2935449: __y = __y->_M_left; 2935449: __x = __y->_M_right; 2935449: } 2935449: if (__y != __z) 2935449: { 2935449: 2935449: __z->_M_left->_M_parent = __y; 2935449: __y->_M_left = __z->_M_left; 2935449: if (__y != __z->_M_right) 2935449: { 2935449: __x_parent = __y->_M_parent; 2935449: if (__x) 2935449: __x->_M_parent = __y->_M_parent; 2935449: __y->_M_parent->_M_left = __x; 2935449: __y->_M_right = __z->_M_right; 2935449: __z->_M_right->_M_parent = __y; 2935449: } 2935449: else 2935449: __x_parent = __y; 2935449: if (__root == __z) 2935449: __root = __y; 2935449: else if (__z->_M_parent->_M_left == __z) 2935449: __z->_M_parent->_M_left = __y; 2935449: else 2935449: __z->_M_parent->_M_right = __y; 2935449: __y->_M_parent = __z->_M_parent; 2935449: std::swap(__y->_M_color, __z->_M_color); 2935449: __y = __z; 2935449: 2935449: } 2935449: else 2935449: { 2935449: __x_parent = __y->_M_parent; 2935449: if (__x) 2935449: __x->_M_parent = __y->_M_parent; 2935449: if (__root == __z) 2935449: __root = __x; 2935449: else 2935449: if (__z->_M_parent->_M_left == __z) 2935449: __z->_M_parent->_M_left = __x; 2935449: else 2935449: __z->_M_parent->_M_right = __x; 2935449: if (__leftmost == __z) 2935449: { 2935449: if (!__z->_M_right) 2935449: __leftmost = __z->_M_parent; 2935449: 2935449: else 2935449: __leftmost = _Node_base::_S_minimum(__x); 2935449: } 2935449: if (__rightmost == __z) 2935449: { 2935449: if (__z->_M_left == 0) 2935449: __rightmost = __z->_M_parent; 2935449: 2935449: else 2935449: __rightmost = _Node_base::_S_maximum(__x); 2935449: } 2935449: } 2935449: if (__y->_M_color != _S_red) 2935449: { 2935449: while (__x != __root && (__x == 0 || __x->_M_color == _S_black)) 2935449: if (__x == __x_parent->_M_left) 2935449: { 2935449: _Base_ptr __w = __x_parent->_M_right; 2935449: if (__w->_M_color == _S_red) 2935449: { 2935449: __w->_M_color = _S_black; 2935449: __x_parent->_M_color = _S_red; 2935449: _Rotate_left(__x_parent, __root); 2935449: __w = __x_parent->_M_right; 2935449: } 2935449: if ((!__w->_M_left || __w->_M_left->_M_color == _S_black) && 2935449: (!__w->_M_right || __w->_M_right->_M_color == _S_black)) 2935449: { 2935449: __w->_M_color = _S_red; 2935449: __x = __x_parent; 2935449: __x_parent = __x_parent->_M_parent; 2935449: } 2935449: else 2935449: { 2935449: if (!__w->_M_right || __w->_M_right->_M_color == _S_black) 2935449: { 2935449: __w->_M_left->_M_color = _S_black; 2935449: __w->_M_color = _S_red; 2935449: _Rotate_right(__w, __root); 2935449: __w = __x_parent->_M_right; 2935449: } 2935449: __w->_M_color = __x_parent->_M_color; 2935449: __x_parent->_M_color = _S_black; 2935449: if (__w->_M_right) 2935449: __w->_M_right->_M_color = _S_black; 2935449: _Rotate_left(__x_parent, __root); 2935449: break; 2935449: } 2935449: } 2935449: else 2935449: { 2935449: 2935449: _Base_ptr __w = __x_parent->_M_left; 2935449: if (__w->_M_color == _S_red) 2935449: { 2935449: __w->_M_color = _S_black; 2935449: __x_parent->_M_color = _S_red; 2935449: _Rotate_right(__x_parent, __root); 2935449: __w = __x_parent->_M_left; 2935449: } 2935449: if ((!__w->_M_right || __w->_M_right->_M_color == _S_black) && 2935449: (!__w->_M_left || __w->_M_left->_M_color == _S_black)) 2935449: { 2935449: __w->_M_color = _S_red; 2935449: __x = __x_parent; 2935449: __x_parent = __x_parent->_M_parent; 2935449: } 2935449: else 2935449: { 2935449: if (!__w->_M_left || __w->_M_left->_M_color == _S_black) 2935449: { 2935449: __w->_M_right->_M_color = _S_black; 2935449: __w->_M_color = _S_red; 2935449: _Rotate_left(__w, __root); 2935449: __w = __x_parent->_M_left; 2935449: } 2935449: __w->_M_color = __x_parent->_M_color; 2935449: __x_parent->_M_color = _S_black; 2935449: if (__w->_M_left) 2935449: __w->_M_left->_M_color = _S_black; 2935449: _Rotate_right(__x_parent, __root); 2935449: break; 2935449: } 2935449: } 2935449: if (__x) 2935449: __x->_M_color = _S_black; 2935449: } 2935449: 2935449: return __y; 2935449: } 2935449: }; 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template > 2935449: class _Rb_tree 2935449: { 2935449: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 2935449: rebind<_Val>::other _Val_alloc_type; 2935449: 2935449: typedef __gnu_cxx::__alloc_traits<_Val_alloc_type> _Val_alloc_traits; 2935449: typedef typename _Val_alloc_traits::pointer _ValPtr; 2935449: typedef __rb_tree::_Node_traits<_Val, _ValPtr> _Node_traits; 2935449: 2935449: typedef typename _Node_traits::_Node_base _Node_base; 2935449: typedef typename _Node_traits::_Node _Node; 2935449: 2935449: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 2935449: rebind<_Node>::other _Node_allocator; 2935449: 2935449: typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Node_alloc_traits; 2935449: 2935449: protected: 2935449: typedef typename _Node_traits::_Base_ptr _Base_ptr; 2935449: typedef typename _Node_traits::_Node_ptr _Node_ptr; 2935449: 2935449: private: 2935449: 2935449: 2935449: struct _Reuse_or_alloc_node 2935449: { 2935449: _Reuse_or_alloc_node(_Rb_tree& __t) 2935449: : _M_root(__t._M_root()), _M_nodes(__t._M_rightmost()), _M_t(__t) 2935449: { 2935449: if (_M_root) 2935449: { 2935449: _M_root->_M_parent = _Base_ptr(); 2935449: 2935449: if (_M_nodes->_M_left) 2935449: _M_nodes = _M_nodes->_M_left; 2935449: } 2935449: else 2935449: _M_nodes = _Base_ptr(); 2935449: } 2935449: 2935449: 2935449: _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete; 2935449: 2935449: 2935449: ~_Reuse_or_alloc_node() 2935449: { 2935449: if (_M_root) 2935449: _M_t._M_erase(static_cast<_Node&>(*_M_root)._M_node_ptr()); 2935449: } 2935449: 2935449: template 2935449: _Node_ptr 2935449: operator()(_Arg&& __arg) 2935449: { 2935449: _Base_ptr __base = _M_extract(); 2935449: if (__base) 2935449: { 2935449: _Node_ptr __node = static_cast<_Node&>(*__base)._M_node_ptr(); 2935449: _M_t._M_destroy_node(__node); 2935449: _M_t._M_construct_node(__node, std::forward<_Arg>(__arg)); 2935449: return __node; 2935449: } 2935449: 2935449: return _M_t._M_create_node(std::forward<_Arg>(__arg)); 2935449: } 2935449: 2935449: private: 2935449: _Base_ptr 2935449: _M_extract() 2935449: { 2935449: if (!_M_nodes) 2935449: return _M_nodes; 2935449: 2935449: _Base_ptr __node = _M_nodes; 2935449: _M_nodes = _M_nodes->_M_parent; 2935449: if (_M_nodes) 2935449: { 2935449: if (_M_nodes->_M_right == __node) 2935449: { 2935449: _M_nodes->_M_right = _Base_ptr(); 2935449: 2935449: if (_M_nodes->_M_left) 2935449: { 2935449: _M_nodes = _M_nodes->_M_left; 2935449: 2935449: while (_M_nodes->_M_right) 2935449: _M_nodes = _M_nodes->_M_right; 2935449: 2935449: if (_M_nodes->_M_left) 2935449: _M_nodes = _M_nodes->_M_left; 2935449: } 2935449: } 2935449: else 2935449: _M_nodes->_M_left = _Base_ptr(); 2935449: } 2935449: else 2935449: _M_root = _Base_ptr(); 2935449: 2935449: return __node; 2935449: } 2935449: 2935449: _Base_ptr _M_root; 2935449: _Base_ptr _M_nodes; 2935449: _Rb_tree& _M_t; 2935449: }; 2935449: 2935449: 2935449: 2935449: struct _Alloc_node 2935449: { 2935449: _Alloc_node(_Rb_tree& __t) 2935449: : _M_t(__t) { } 2935449: 2935449: template 2935449: _Node_ptr 2935449: operator()(_Arg&& __arg) const 2935449: { return _M_t._M_create_node(std::forward<_Arg>(__arg)); } 2935449: 2935449: private: 2935449: _Rb_tree& _M_t; 2935449: }; 2935449: 2935449: public: 2935449: typedef _Key key_type; 2935449: typedef _Val value_type; 2935449: typedef value_type* pointer; 2935449: typedef const value_type* const_pointer; 2935449: typedef value_type& reference; 2935449: typedef const value_type& const_reference; 2935449: typedef size_t size_type; 2935449: typedef ptrdiff_t difference_type; 2935449: typedef _Alloc allocator_type; 2935449: 2935449: _Node_allocator& 2935449: _M_get_Node_allocator() noexcept 2935449: { return this->_M_impl; } 2935449: 2935449: const _Node_allocator& 2935449: _M_get_Node_allocator() const noexcept 2935449: { return this->_M_impl; } 2935449: 2935449: allocator_type 2935449: get_allocator() const noexcept 2935449: { return allocator_type(_M_get_Node_allocator()); } 2935449: 2935449: protected: 2935449: _Node_ptr 2935449: _M_get_node() 2935449: { 2935449: 2935449: return _Node_alloc_traits::allocate(_M_get_Node_allocator(), 1); 2935449: # 1185 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: } 2935449: 2935449: void 2935449: _M_put_node(_Node_ptr __p) noexcept 2935449: { 2935449: 2935449: _Node_alloc_traits::deallocate(_M_get_Node_allocator(), __p, 1); 2935449: # 1207 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: } 2935449: # 1230 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: template 2935449: void 2935449: _M_construct_node(_Node_ptr __node, _Args&&... __args) 2935449: { 2935449: if (true) 2935449: { 2935449: ::new(std::addressof(*__node)) _Node; 2935449: _Node_alloc_traits::construct(_M_get_Node_allocator(), 2935449: __node->_M_valptr(), 2935449: std::forward<_Args>(__args)...); 2935449: } 2935449: if (false) 2935449: { 2935449: __node->~_Node(); 2935449: _M_put_node(__node); 2935449: ; 2935449: } 2935449: } 2935449: 2935449: template 2935449: _Node_ptr 2935449: _M_create_node(_Args&&... __args) 2935449: { 2935449: _Node_ptr __tmp = _M_get_node(); 2935449: _M_construct_node(__tmp, std::forward<_Args>(__args)...); 2935449: return __tmp; 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_destroy_node(_Node_ptr __p) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: _Node_alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr()); 2935449: __p->~_Node(); 2935449: 2935449: } 2935449: 2935449: void 2935449: _M_drop_node(_Node_ptr __p) noexcept 2935449: { 2935449: _M_destroy_node(__p); 2935449: _M_put_node(__p); 2935449: } 2935449: 2935449: template 2935449: _Node_ptr 2935449: _M_clone_node(_Node_ptr __x, _NodeGen& __node_gen) 2935449: { 2935449: 2935449: using _Vp = __conditional_t<_MoveValue, 2935449: value_type&&, 2935449: const value_type&>; 2935449: 2935449: _Node_ptr __tmp 2935449: = __node_gen(std::forward<_Vp>(*__x->_M_valptr())); 2935449: __tmp->_M_color = __x->_M_color; 2935449: __tmp->_M_left = __tmp->_M_right = _Base_ptr(); 2935449: return __tmp; 2935449: } 2935449: 2935449: protected: 2935449: typedef typename _Node_traits::_Header_t _Header_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: 2935449: struct _Rb_tree_impl 2935449: : public _Node_allocator 2935449: , public _Rb_tree_key_compare<_Key_compare> 2935449: , public _Header_t 2935449: { 2935449: typedef _Rb_tree_key_compare<_Key_compare> _Base_key_compare; 2935449: 2935449: _Rb_tree_impl() 2935449: noexcept(is_nothrow_default_constructible<_Node_allocator>::value && is_nothrow_default_constructible<_Base_key_compare>::value) 2935449: 2935449: 2935449: : _Node_allocator() 2935449: { } 2935449: 2935449: _Rb_tree_impl(const _Rb_tree_impl& __x) 2935449: : _Node_allocator(_Node_alloc_traits::_S_select_on_copy(__x)) 2935449: , _Base_key_compare(__x._M_key_compare) 2935449: , _Header_t() 2935449: { } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: _Rb_tree_impl(_Rb_tree_impl&&) 2935449: noexcept( is_nothrow_move_constructible<_Base_key_compare>::value ) 2935449: = default; 2935449: 2935449: explicit 2935449: _Rb_tree_impl(_Node_allocator&& __a) 2935449: : _Node_allocator(std::move(__a)) 2935449: { } 2935449: 2935449: _Rb_tree_impl(_Rb_tree_impl&& __x, _Node_allocator&& __a) 2935449: : _Node_allocator(std::move(__a)), 2935449: _Base_key_compare(std::move(__x)), 2935449: _Header_t(std::move(__x)) 2935449: { } 2935449: 2935449: _Rb_tree_impl(const _Key_compare& __comp, _Node_allocator&& __a) 2935449: : _Node_allocator(std::move(__a)), _Base_key_compare(__comp) 2935449: { } 2935449: 2935449: }; 2935449: 2935449: _Rb_tree_impl<_Compare> _M_impl; 2935449: 2935449: protected: 2935449: _Base_ptr& 2935449: _M_root() noexcept 2935449: { return this->_M_impl._M_header._M_parent; } 2935449: 2935449: _Base_ptr 2935449: _M_root() const noexcept 2935449: { return this->_M_impl._M_header._M_parent; } 2935449: 2935449: _Base_ptr& 2935449: _M_leftmost() noexcept 2935449: { return this->_M_impl._M_header._M_left; } 2935449: 2935449: _Base_ptr 2935449: _M_leftmost() const noexcept 2935449: { return this->_M_impl._M_header._M_left; } 2935449: 2935449: _Base_ptr& 2935449: _M_rightmost() noexcept 2935449: { return this->_M_impl._M_header._M_right; } 2935449: 2935449: _Base_ptr 2935449: _M_rightmost() const noexcept 2935449: { return this->_M_impl._M_header._M_right; } 2935449: 2935449: _Base_ptr 2935449: _M_begin() const noexcept 2935449: { return this->_M_impl._M_header._M_parent; } 2935449: 2935449: _Node_ptr 2935449: _M_begin_node() const noexcept 2935449: { 2935449: _Base_ptr __begin = this->_M_impl._M_header._M_parent; 2935449: return __begin 2935449: ? static_cast<_Node&>(*__begin)._M_node_ptr() 2935449: : _Node_ptr(); 2935449: } 2935449: 2935449: _Base_ptr 2935449: _M_end() const noexcept 2935449: { return this->_M_impl._M_header._M_base_ptr(); } 2935449: 2935449: static const _Key& 2935449: _S_key(const _Node& __node) 2935449: { 2935449: 2935449: 2935449: 2935449: static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{}, 2935449: "comparison object must be invocable " 2935449: "with two arguments of key type"); 2935449: # 1412 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: return _KeyOfValue()(*__node._M_valptr()); 2935449: } 2935449: 2935449: static const _Key& 2935449: _S_key(_Base_ptr __x) 2935449: { return _S_key(static_cast(*__x)); } 2935449: 2935449: static const _Key& 2935449: _S_key(_Node_ptr __x) 2935449: { return _S_key(*__x); } 2935449: 2935449: static _Base_ptr 2935449: _S_left(_Base_ptr __x) noexcept 2935449: { return __x->_M_left; } 2935449: 2935449: static _Node_ptr 2935449: _S_left(_Node_ptr __x) 2935449: { 2935449: return __x->_M_left 2935449: ? static_cast<_Node&>(*__x->_M_left)._M_node_ptr() 2935449: : _Node_ptr(); 2935449: } 2935449: 2935449: static _Base_ptr 2935449: _S_right(_Base_ptr __x) noexcept 2935449: { return __x->_M_right; } 2935449: 2935449: static _Node_ptr 2935449: _S_right(_Node_ptr __x) noexcept 2935449: { 2935449: return __x->_M_right 2935449: ? static_cast<_Node&>(*__x->_M_right)._M_node_ptr() 2935449: : _Node_ptr(); 2935449: } 2935449: 2935449: public: 2935449: typedef typename _Node_traits::_Iterator iterator; 2935449: typedef typename _Node_traits::_Const_iterator const_iterator; 2935449: 2935449: typedef std::reverse_iterator reverse_iterator; 2935449: typedef std::reverse_iterator const_reverse_iterator; 2935449: # 1461 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: pair<_Base_ptr, _Base_ptr> 2935449: _M_get_insert_unique_pos(const key_type& __k); 2935449: 2935449: pair<_Base_ptr, _Base_ptr> 2935449: _M_get_insert_equal_pos(const key_type& __k); 2935449: 2935449: pair<_Base_ptr, _Base_ptr> 2935449: _M_get_insert_hint_unique_pos(const_iterator __pos, 2935449: const key_type& __k); 2935449: 2935449: pair<_Base_ptr, _Base_ptr> 2935449: _M_get_insert_hint_equal_pos(const_iterator __pos, 2935449: const key_type& __k); 2935449: 2935449: private: 2935449: 2935449: template 2935449: iterator 2935449: _M_insert_(_Base_ptr __x, _Base_ptr __y, _Arg&& __v, _NodeGen&); 2935449: 2935449: iterator 2935449: _M_insert_node(_Base_ptr __x, _Base_ptr __y, _Node_ptr __z); 2935449: 2935449: template 2935449: iterator 2935449: _M_insert_lower(_Base_ptr __y, _Arg&& __v); 2935449: 2935449: template 2935449: iterator 2935449: _M_insert_equal_lower(_Arg&& __x); 2935449: 2935449: iterator 2935449: _M_insert_lower_node(_Base_ptr __p, _Node_ptr __z); 2935449: 2935449: iterator 2935449: _M_insert_equal_lower_node(_Node_ptr __z); 2935449: # 1512 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: enum { __as_lvalue, __as_rvalue }; 2935449: 2935449: template 2935449: _Base_ptr 2935449: _M_copy(_Node_ptr, _Base_ptr, _NodeGen&); 2935449: 2935449: template 2935449: _Base_ptr 2935449: _M_copy(const _Rb_tree& __x, _NodeGen& __gen) 2935449: { 2935449: _Base_ptr __root = 2935449: _M_copy<_MoveValues>(__x._M_begin_node(), _M_end(), __gen); 2935449: _M_leftmost() = _Node_base::_S_minimum(__root); 2935449: _M_rightmost() = _Node_base::_S_maximum(__root); 2935449: _M_impl._M_node_count = __x._M_impl._M_node_count; 2935449: return __root; 2935449: } 2935449: 2935449: _Base_ptr 2935449: _M_copy(const _Rb_tree& __x) 2935449: { 2935449: _Alloc_node __an(*this); 2935449: return _M_copy<__as_lvalue>(__x, __an); 2935449: } 2935449: 2935449: void 2935449: _M_erase(_Node_ptr __x); 2935449: 2935449: _Base_ptr 2935449: _M_lower_bound(_Base_ptr __x, _Base_ptr __y, 2935449: const _Key& __k) const; 2935449: 2935449: _Base_ptr 2935449: _M_upper_bound(_Base_ptr __x, _Base_ptr __y, 2935449: const _Key& __k) const; 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: 2935449: _Rb_tree() = default; 2935449: 2935449: 2935449: _Rb_tree(const _Compare& __comp, 2935449: const allocator_type& __a = allocator_type()) 2935449: : _M_impl(__comp, _Node_allocator(__a)) { } 2935449: 2935449: _Rb_tree(const _Rb_tree& __x) 2935449: : _M_impl(__x._M_impl) 2935449: { 2935449: if (__x._M_root()) 2935449: _M_root() = _M_copy(__x); 2935449: } 2935449: 2935449: 2935449: _Rb_tree(const allocator_type& __a) 2935449: : _M_impl(_Node_allocator(__a)) 2935449: { } 2935449: 2935449: _Rb_tree(const _Rb_tree& __x, const allocator_type& __a) 2935449: : _M_impl(__x._M_impl._M_key_compare, _Node_allocator(__a)) 2935449: { 2935449: if (__x._M_root()) 2935449: _M_root() = _M_copy(__x); 2935449: } 2935449: 2935449: _Rb_tree(_Rb_tree&&) = default; 2935449: 2935449: _Rb_tree(_Rb_tree&& __x, const allocator_type& __a) 2935449: : _Rb_tree(std::move(__x), _Node_allocator(__a)) 2935449: { } 2935449: 2935449: private: 2935449: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a, true_type) 2935449: noexcept(is_nothrow_default_constructible<_Compare>::value) 2935449: : _M_impl(std::move(__x._M_impl), std::move(__a)) 2935449: { } 2935449: 2935449: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a, false_type) 2935449: : _M_impl(__x._M_impl._M_key_compare, std::move(__a)) 2935449: { 2935449: if (__x._M_root()) 2935449: _M_move_data(__x, false_type{}); 2935449: } 2935449: 2935449: public: 2935449: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a) 2935449: noexcept( noexcept( 2935449: _Rb_tree(std::declval<_Rb_tree&&>(), std::declval<_Node_allocator&&>(), 2935449: std::declval())) ) 2935449: : _Rb_tree(std::move(__x), std::move(__a), 2935449: typename _Node_alloc_traits::is_always_equal{}) 2935449: { } 2935449: 2935449: 2935449: ~_Rb_tree() noexcept 2935449: { _M_erase(_M_begin_node()); } 2935449: 2935449: _Rb_tree& 2935449: operator=(const _Rb_tree& __x); 2935449: 2935449: 2935449: _Compare 2935449: key_comp() const 2935449: { return _M_impl._M_key_compare; } 2935449: 2935449: iterator 2935449: begin() noexcept 2935449: { return iterator(this->_M_impl._M_header._M_left); } 2935449: 2935449: const_iterator 2935449: begin() const noexcept 2935449: { return const_iterator(this->_M_impl._M_header._M_left); } 2935449: 2935449: iterator 2935449: end() noexcept 2935449: { return iterator(_M_end()); } 2935449: 2935449: const_iterator 2935449: end() const noexcept 2935449: { return const_iterator(_M_end()); } 2935449: 2935449: reverse_iterator 2935449: rbegin() noexcept 2935449: { return reverse_iterator(end()); } 2935449: 2935449: const_reverse_iterator 2935449: rbegin() const noexcept 2935449: { return const_reverse_iterator(end()); } 2935449: 2935449: reverse_iterator 2935449: rend() noexcept 2935449: { return reverse_iterator(begin()); } 2935449: 2935449: const_reverse_iterator 2935449: rend() const noexcept 2935449: { return const_reverse_iterator(begin()); } 2935449: 2935449: [[__nodiscard__]] bool 2935449: empty() const noexcept 2935449: { return _M_impl._M_node_count == 0; } 2935449: 2935449: size_type 2935449: size() const noexcept 2935449: { return _M_impl._M_node_count; } 2935449: 2935449: size_type 2935449: max_size() const noexcept 2935449: { return _Node_alloc_traits::max_size(_M_get_Node_allocator()); } 2935449: 2935449: void 2935449: swap(_Rb_tree& __t) 2935449: noexcept(__is_nothrow_swappable<_Compare>::value); 2935449: 2935449: 2935449: 2935449: template 2935449: pair 2935449: _M_insert_unique(_Arg&& __x); 2935449: 2935449: template 2935449: iterator 2935449: _M_insert_equal(_Arg&& __x); 2935449: 2935449: template 2935449: iterator 2935449: _M_insert_unique_(const_iterator __pos, _Arg&& __x, _NodeGen&); 2935449: 2935449: template 2935449: iterator 2935449: _M_insert_unique_(const_iterator __pos, _Arg&& __x) 2935449: { 2935449: _Alloc_node __an(*this); 2935449: return _M_insert_unique_(__pos, std::forward<_Arg>(__x), __an); 2935449: } 2935449: 2935449: template 2935449: iterator 2935449: _M_insert_equal_(const_iterator __pos, _Arg&& __x, _NodeGen&); 2935449: 2935449: template 2935449: iterator 2935449: _M_insert_equal_(const_iterator __pos, _Arg&& __x) 2935449: { 2935449: _Alloc_node __an(*this); 2935449: return _M_insert_equal_(__pos, std::forward<_Arg>(__x), __an); 2935449: } 2935449: 2935449: template 2935449: pair 2935449: _M_emplace_unique(_Args&&... __args); 2935449: 2935449: template 2935449: iterator 2935449: _M_emplace_equal(_Args&&... __args); 2935449: 2935449: template 2935449: iterator 2935449: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args); 2935449: 2935449: template 2935449: iterator 2935449: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args); 2935449: 2935449: template 2935449: using __same_value_type 2935449: = is_same::value_type>; 2935449: 2935449: template 2935449: __enable_if_t<__same_value_type<_InputIterator>::value> 2935449: _M_insert_range_unique(_InputIterator __first, _InputIterator __last) 2935449: { 2935449: _Alloc_node __an(*this); 2935449: for (; __first != __last; ++__first) 2935449: _M_insert_unique_(end(), *__first, __an); 2935449: } 2935449: 2935449: template 2935449: __enable_if_t::value> 2935449: _M_insert_range_unique(_InputIterator __first, _InputIterator __last) 2935449: { 2935449: for (; __first != __last; ++__first) 2935449: _M_emplace_unique(*__first); 2935449: } 2935449: 2935449: template 2935449: __enable_if_t<__same_value_type<_InputIterator>::value> 2935449: _M_insert_range_equal(_InputIterator __first, _InputIterator __last) 2935449: { 2935449: _Alloc_node __an(*this); 2935449: for (; __first != __last; ++__first) 2935449: _M_insert_equal_(end(), *__first, __an); 2935449: } 2935449: 2935449: template 2935449: __enable_if_t::value> 2935449: _M_insert_range_equal(_InputIterator __first, _InputIterator __last) 2935449: { 2935449: for (; __first != __last; ++__first) 2935449: _M_emplace_equal(*__first); 2935449: } 2935449: # 1803 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: private: 2935449: void 2935449: _M_erase_aux(const_iterator __position); 2935449: 2935449: void 2935449: _M_erase_aux(const_iterator __first, const_iterator __last); 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: __attribute ((__abi_tag__ ("cxx11"))) 2935449: iterator 2935449: erase(const_iterator __position) 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__position != end())) std::__glibcxx_assert_fail(); } while (false); 2935449: const_iterator __result = __position; 2935449: ++__result; 2935449: _M_erase_aux(__position); 2935449: return iterator(__result._M_node); 2935449: } 2935449: 2935449: 2935449: __attribute ((__abi_tag__ ("cxx11"))) 2935449: iterator 2935449: erase(iterator __position) 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__position != end())) std::__glibcxx_assert_fail(); } while (false); 2935449: iterator __result = __position; 2935449: ++__result; 2935449: _M_erase_aux(__position); 2935449: return __result; 2935449: } 2935449: # 1852 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: size_type 2935449: erase(const key_type& __x); 2935449: 2935449: 2935449: 2935449: 2935449: __attribute ((__abi_tag__ ("cxx11"))) 2935449: iterator 2935449: erase(const_iterator __first, const_iterator __last) 2935449: { 2935449: _M_erase_aux(__first, __last); 2935449: return iterator(__last._M_node); 2935449: } 2935449: # 1875 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: void 2935449: clear() noexcept 2935449: { 2935449: _M_erase(_M_begin_node()); 2935449: _M_impl._M_reset(); 2935449: } 2935449: 2935449: 2935449: iterator 2935449: find(const key_type& __k); 2935449: 2935449: const_iterator 2935449: find(const key_type& __k) const; 2935449: 2935449: size_type 2935449: count(const key_type& __k) const; 2935449: 2935449: iterator 2935449: lower_bound(const key_type& __k) 2935449: { return iterator(_M_lower_bound(_M_begin(), _M_end(), __k)); } 2935449: 2935449: const_iterator 2935449: lower_bound(const key_type& __k) const 2935449: { 2935449: return const_iterator 2935449: (_M_lower_bound(_M_begin(), _M_end(), __k)); 2935449: } 2935449: 2935449: iterator 2935449: upper_bound(const key_type& __k) 2935449: { return iterator(_M_upper_bound(_M_begin(), _M_end(), __k)); } 2935449: 2935449: const_iterator 2935449: upper_bound(const key_type& __k) const 2935449: { 2935449: return const_iterator 2935449: (_M_upper_bound(_M_begin(), _M_end(), __k)); 2935449: } 2935449: 2935449: pair 2935449: equal_range(const key_type& __k); 2935449: 2935449: pair 2935449: equal_range(const key_type& __k) const; 2935449: # 2012 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: bool 2935449: __rb_verify() const; 2935449: 2935449: 2935449: _Rb_tree& 2935449: operator=(_Rb_tree&&) 2935449: noexcept(_Node_alloc_traits::_S_nothrow_move() 2935449: && is_nothrow_move_assignable<_Compare>::value); 2935449: 2935449: template 2935449: void 2935449: _M_assign_unique(_Iterator, _Iterator); 2935449: 2935449: template 2935449: void 2935449: _M_assign_equal(_Iterator, _Iterator); 2935449: 2935449: private: 2935449: 2935449: void 2935449: _M_move_data(_Rb_tree& __x, true_type) 2935449: { _M_impl._M_move_data(__x._M_impl); } 2935449: 2935449: 2935449: 2935449: void 2935449: _M_move_data(_Rb_tree&, false_type); 2935449: 2935449: 2935449: void 2935449: _M_move_assign(_Rb_tree&, true_type); 2935449: 2935449: 2935449: 2935449: void 2935449: _M_move_assign(_Rb_tree&, false_type); 2935449: # 2252 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: friend bool 2935449: operator==(const _Rb_tree& __x, const _Rb_tree& __y) 2935449: { 2935449: return __x.size() == __y.size() 2935449: && std::equal(__x.begin(), __x.end(), __y.begin()); 2935449: } 2935449: # 2269 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: friend bool 2935449: operator<(const _Rb_tree& __x, const _Rb_tree& __y) 2935449: { 2935449: return std::lexicographical_compare(__x.begin(), __x.end(), 2935449: __y.begin(), __y.end()); 2935449: } 2935449: 2935449: 2935449: private: 2935449: 2935449: 2935449: struct _Auto_node 2935449: { 2935449: template 2935449: _Auto_node(_Rb_tree& __t, _Args&&... __args) 2935449: : _M_t(__t), 2935449: _M_node(__t._M_create_node(std::forward<_Args>(__args)...)) 2935449: { } 2935449: 2935449: ~_Auto_node() 2935449: { 2935449: if (_M_node) 2935449: _M_t._M_drop_node(_M_node); 2935449: } 2935449: 2935449: _Auto_node(_Auto_node&& __n) 2935449: : _M_t(__n._M_t), _M_node(__n._M_node) 2935449: { __n._M_node = nullptr; } 2935449: 2935449: const _Key& 2935449: _M_key() const 2935449: { return _S_key(_M_node); } 2935449: 2935449: iterator 2935449: _M_insert(pair<_Base_ptr, _Base_ptr> __p) 2935449: { 2935449: auto __it = _M_t._M_insert_node(__p.first, __p.second, _M_node); 2935449: _M_node = nullptr; 2935449: return __it; 2935449: } 2935449: 2935449: iterator 2935449: _M_insert_equal_lower() 2935449: { 2935449: auto __it = _M_t._M_insert_equal_lower_node(_M_node); 2935449: _M_node = nullptr; 2935449: return __it; 2935449: } 2935449: 2935449: _Rb_tree& _M_t; 2935449: _Node_ptr _M_node; 2935449: }; 2935449: 2935449: }; 2935449: 2935449: template 2935449: inline void 2935449: swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 2935449: { __x.swap(__y); } 2935449: 2935449: 2935449: template 2935449: void 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_move_data(_Rb_tree& __x, false_type) 2935449: { 2935449: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 2935449: _M_move_data(__x, true_type()); 2935449: else 2935449: { 2935449: constexpr bool __move = !__move_if_noexcept_cond::value; 2935449: _Alloc_node __an(*this); 2935449: _M_root() = _M_copy<__move>(__x, __an); 2935449: if (__move) 2935449: __x.clear(); 2935449: } 2935449: } 2935449: 2935449: template 2935449: inline void 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_move_assign(_Rb_tree& __x, true_type) 2935449: { 2935449: clear(); 2935449: if (__x._M_root()) 2935449: _M_move_data(__x, true_type()); 2935449: std::__alloc_on_move(_M_get_Node_allocator(), 2935449: __x._M_get_Node_allocator()); 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_move_assign(_Rb_tree& __x, false_type) 2935449: { 2935449: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 2935449: return _M_move_assign(__x, true_type{}); 2935449: 2935449: 2935449: 2935449: _Reuse_or_alloc_node __roan(*this); 2935449: _M_impl._M_reset(); 2935449: if (__x._M_root()) 2935449: { 2935449: _M_root() = _M_copy<__as_rvalue>(__x, __roan); 2935449: __x.clear(); 2935449: } 2935449: } 2935449: 2935449: template 2935449: inline _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: operator=(_Rb_tree&& __x) 2935449: noexcept(_Node_alloc_traits::_S_nothrow_move() 2935449: && is_nothrow_move_assignable<_Compare>::value) 2935449: { 2935449: _M_impl._M_key_compare = std::move(__x._M_impl._M_key_compare); 2935449: _M_move_assign(__x, 2935449: __bool_constant<_Node_alloc_traits::_S_nothrow_move()>()); 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: template 2935449: void 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_assign_unique(_Iterator __first, _Iterator __last) 2935449: { 2935449: _Reuse_or_alloc_node __roan(*this); 2935449: _M_impl._M_reset(); 2935449: for (; __first != __last; ++__first) 2935449: _M_insert_unique_(end(), *__first, __roan); 2935449: } 2935449: 2935449: template 2935449: template 2935449: void 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_assign_equal(_Iterator __first, _Iterator __last) 2935449: { 2935449: _Reuse_or_alloc_node __roan(*this); 2935449: _M_impl._M_reset(); 2935449: for (; __first != __last; ++__first) 2935449: _M_insert_equal_(end(), *__first, __roan); 2935449: } 2935449: 2935449: 2935449: template 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: operator=(const _Rb_tree& __x) 2935449: { 2935449: if (this != std::__addressof(__x)) 2935449: { 2935449: 2935449: 2935449: if (_Node_alloc_traits::_S_propagate_on_copy_assign()) 2935449: { 2935449: auto& __this_alloc = this->_M_get_Node_allocator(); 2935449: auto& __that_alloc = __x._M_get_Node_allocator(); 2935449: if (!_Node_alloc_traits::_S_always_equal() 2935449: && __this_alloc != __that_alloc) 2935449: { 2935449: 2935449: 2935449: clear(); 2935449: std::__alloc_on_copy(__this_alloc, __that_alloc); 2935449: } 2935449: } 2935449: 2935449: 2935449: _Reuse_or_alloc_node __roan(*this); 2935449: _M_impl._M_reset(); 2935449: _M_impl._M_key_compare = __x._M_impl._M_key_compare; 2935449: if (__x._M_root()) 2935449: _M_root() = _M_copy<__as_lvalue>(__x, __roan); 2935449: } 2935449: 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: 2935449: template 2935449: 2935449: 2935449: 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_insert_(_Base_ptr __x, _Base_ptr __p, 2935449: 2935449: _Arg&& __v, 2935449: 2935449: 2935449: 2935449: _NodeGen& __node_gen) 2935449: { 2935449: bool __insert_left = (__x || __p == _M_end() 2935449: || _M_impl._M_key_compare(_KeyOfValue()(__v), 2935449: _S_key(__p))); 2935449: 2935449: _Base_ptr __z = 2935449: __node_gen(std::forward<_Arg>(__v))->_M_base_ptr(); 2935449: 2935449: _Node_traits::_S_insert_and_rebalance 2935449: (__insert_left, __z, __p, this->_M_impl._M_header); 2935449: ++_M_impl._M_node_count; 2935449: return iterator(__z); 2935449: } 2935449: 2935449: template 2935449: 2935449: template 2935449: 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: 2935449: _M_insert_lower(_Base_ptr __p, _Arg&& __v) 2935449: 2935449: 2935449: 2935449: { 2935449: bool __insert_left = (__p == _M_end() 2935449: || !_M_impl._M_key_compare(_S_key(__p), 2935449: _KeyOfValue()(__v))); 2935449: 2935449: _Base_ptr __z = 2935449: _M_create_node(std::forward<_Arg>(__v))->_M_base_ptr(); 2935449: _Node_traits::_S_insert_and_rebalance 2935449: (__insert_left, __z, __p, this->_M_impl._M_header); 2935449: ++_M_impl._M_node_count; 2935449: return iterator(__z); 2935449: } 2935449: 2935449: template 2935449: 2935449: template 2935449: 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: 2935449: _M_insert_equal_lower(_Arg&& __v) 2935449: 2935449: 2935449: 2935449: { 2935449: _Base_ptr __x = _M_begin(); 2935449: _Base_ptr __y = _M_end(); 2935449: while (__x) 2935449: { 2935449: __y = __x; 2935449: __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ? 2935449: _S_left(__x) : _S_right(__x); 2935449: } 2935449: return _M_insert_lower(__y, std::forward<_Arg>(__v)); 2935449: } 2935449: 2935449: template 2935449: template 2935449: typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Base_ptr 2935449: _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: 2935449: _M_copy(_Node_ptr __x, _Base_ptr __p, _NodeGen& __node_gen) 2935449: { 2935449: 2935449: _Node_ptr __top = _M_clone_node<_MoveValues>(__x, __node_gen); 2935449: _Base_ptr __top_base = __top->_M_base_ptr(); 2935449: __top->_M_parent = __p; 2935449: 2935449: if (true) 2935449: { 2935449: if (__x->_M_right) 2935449: __top->_M_right = 2935449: _M_copy<_MoveValues>(_S_right(__x), __top_base, __node_gen); 2935449: __p = __top_base; 2935449: __x = _S_left(__x); 2935449: 2935449: while (__x) 2935449: { 2935449: _Base_ptr __y = 2935449: _M_clone_node<_MoveValues>(__x, __node_gen)->_M_base_ptr(); 2935449: __p->_M_left = __y; 2935449: __y->_M_parent = __p; 2935449: if (__x->_M_right) 2935449: __y->_M_right = _M_copy<_MoveValues>(_S_right(__x), 2935449: __y, __node_gen); 2935449: __p = __y; 2935449: __x = _S_left(__x); 2935449: } 2935449: } 2935449: if (false) 2935449: { 2935449: _M_erase(__top); 2935449: ; 2935449: } 2935449: return __top_base; 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_erase(_Node_ptr __x) 2935449: { 2935449: 2935449: while (__x) 2935449: { 2935449: _M_erase(_S_right(__x)); 2935449: _Node_ptr __y = _S_left(__x); 2935449: _M_drop_node(__x); 2935449: __x = __y; 2935449: } 2935449: } 2935449: 2935449: template 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, 2935449: _Compare, _Alloc>::_Base_ptr 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_lower_bound(_Base_ptr __x, _Base_ptr __y, 2935449: const _Key& __k) const 2935449: { 2935449: while (__x) 2935449: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 2935449: __y = __x, __x = _S_left(__x); 2935449: else 2935449: __x = _S_right(__x); 2935449: return __y; 2935449: } 2935449: 2935449: template 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, 2935449: _Compare, _Alloc>::_Base_ptr 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_upper_bound(_Base_ptr __x, _Base_ptr __y, 2935449: const _Key& __k) const 2935449: { 2935449: while (__x) 2935449: if (_M_impl._M_key_compare(__k, _S_key(__x))) 2935449: __y = __x, __x = _S_left(__x); 2935449: else 2935449: __x = _S_right(__x); 2935449: return __y; 2935449: } 2935449: 2935449: template 2935449: pair::iterator, 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, 2935449: _Compare, _Alloc>::iterator> 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: equal_range(const _Key& __k) 2935449: { 2935449: typedef pair _Ret; 2935449: 2935449: _Base_ptr __x = _M_begin(); 2935449: _Base_ptr __y = _M_end(); 2935449: while (__x) 2935449: { 2935449: if (_M_impl._M_key_compare(_S_key(__x), __k)) 2935449: __x = _S_right(__x); 2935449: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 2935449: __y = __x, __x = _S_left(__x); 2935449: else 2935449: { 2935449: _Base_ptr __xu(__x); 2935449: _Base_ptr __yu(__y); 2935449: __y = __x, __x = _S_left(__x); 2935449: __xu = _S_right(__xu); 2935449: return _Ret(iterator(_M_lower_bound(__x, __y, __k)), 2935449: iterator(_M_upper_bound(__xu, __yu, __k))); 2935449: } 2935449: } 2935449: return _Ret(iterator(__y), iterator(__y)); 2935449: } 2935449: 2935449: template 2935449: pair::const_iterator, 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, 2935449: _Compare, _Alloc>::const_iterator> 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: equal_range(const _Key& __k) const 2935449: { 2935449: typedef pair _Ret; 2935449: 2935449: _Base_ptr __x = _M_begin(); 2935449: _Base_ptr __y = _M_end(); 2935449: while (__x) 2935449: { 2935449: if (_M_impl._M_key_compare(_S_key(__x), __k)) 2935449: __x = _S_right(__x); 2935449: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 2935449: __y = __x, __x = _S_left(__x); 2935449: else 2935449: { 2935449: _Base_ptr __xu(__x); 2935449: _Base_ptr __yu(__y); 2935449: __y = __x, __x = _S_left(__x); 2935449: __xu = _S_right(__xu); 2935449: return _Ret(const_iterator(_M_lower_bound(__x, __y, __k)), 2935449: const_iterator(_M_upper_bound(__xu, __yu, __k))); 2935449: } 2935449: } 2935449: return _Ret(const_iterator(__y), const_iterator(__y)); 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: swap(_Rb_tree& __t) 2935449: noexcept(__is_nothrow_swappable<_Compare>::value) 2935449: { 2935449: if (!_M_root()) 2935449: { 2935449: if (__t._M_root()) 2935449: _M_impl._M_move_data(__t._M_impl); 2935449: } 2935449: else if (!__t._M_root()) 2935449: __t._M_impl._M_move_data(_M_impl); 2935449: else 2935449: { 2935449: std::swap(_M_root(),__t._M_root()); 2935449: std::swap(_M_leftmost(),__t._M_leftmost()); 2935449: std::swap(_M_rightmost(),__t._M_rightmost()); 2935449: 2935449: _M_root()->_M_parent = _M_end(); 2935449: __t._M_root()->_M_parent = __t._M_end(); 2935449: std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); 2935449: } 2935449: 2935449: 2935449: using std::swap; 2935449: swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); 2935449: 2935449: _Node_alloc_traits::_S_on_swap(_M_get_Node_allocator(), 2935449: __t._M_get_Node_allocator()); 2935449: } 2935449: 2935449: template 2935449: pair::_Base_ptr, 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, 2935449: _Compare, _Alloc>::_Base_ptr> 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_get_insert_unique_pos(const key_type& __k) 2935449: { 2935449: typedef pair<_Base_ptr, _Base_ptr> _Res; 2935449: _Base_ptr __x = _M_begin(); 2935449: _Base_ptr __y = _M_end(); 2935449: bool __comp = true; 2935449: while (__x) 2935449: { 2935449: __y = __x; 2935449: __comp = _M_impl._M_key_compare(__k, _S_key(__x)); 2935449: __x = __comp ? _S_left(__x) : _S_right(__x); 2935449: } 2935449: iterator __j = iterator(__y); 2935449: if (__comp) 2935449: { 2935449: if (__j == begin()) 2935449: return _Res(__x, __y); 2935449: else 2935449: --__j; 2935449: } 2935449: if (_M_impl._M_key_compare(_S_key(__j._M_node), __k)) 2935449: return _Res(__x, __y); 2935449: return _Res(__j._M_node, _Base_ptr()); 2935449: } 2935449: 2935449: template 2935449: pair::_Base_ptr, 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, 2935449: _Compare, _Alloc>::_Base_ptr> 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_get_insert_equal_pos(const key_type& __k) 2935449: { 2935449: typedef pair<_Base_ptr, _Base_ptr> _Res; 2935449: _Base_ptr __x = _M_begin(); 2935449: _Base_ptr __y = _M_end(); 2935449: while (__x) 2935449: { 2935449: __y = __x; 2935449: __x = _M_impl._M_key_compare(__k, _S_key(__x)) ? 2935449: _S_left(__x) : _S_right(__x); 2935449: } 2935449: return _Res(__x, __y); 2935449: } 2935449: 2935449: template 2935449: 2935449: template 2935449: 2935449: pair::iterator, bool> 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: 2935449: _M_insert_unique(_Arg&& __v) 2935449: 2935449: 2935449: 2935449: { 2935449: typedef pair _Res; 2935449: pair<_Base_ptr, _Base_ptr> __res 2935449: = _M_get_insert_unique_pos(_KeyOfValue()(__v)); 2935449: 2935449: if (__res.second) 2935449: { 2935449: _Alloc_node __an(*this); 2935449: return _Res(_M_insert_(__res.first, __res.second, 2935449: std::forward<_Arg>(__v), __an), 2935449: true); 2935449: } 2935449: 2935449: return _Res(iterator(__res.first), false); 2935449: } 2935449: 2935449: template 2935449: 2935449: template 2935449: 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: 2935449: _M_insert_equal(_Arg&& __v) 2935449: 2935449: 2935449: 2935449: { 2935449: pair<_Base_ptr, _Base_ptr> __res 2935449: = _M_get_insert_equal_pos(_KeyOfValue()(__v)); 2935449: _Alloc_node __an(*this); 2935449: return _M_insert_(__res.first, __res.second, 2935449: std::forward<_Arg>(__v), __an); 2935449: } 2935449: 2935449: template 2935449: pair::_Base_ptr, 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, 2935449: _Compare, _Alloc>::_Base_ptr> 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_get_insert_hint_unique_pos(const_iterator __position, 2935449: const key_type& __k) 2935449: { 2935449: typedef pair<_Base_ptr, _Base_ptr> _Res; 2935449: 2935449: 2935449: if (__position._M_node == _M_end()) 2935449: { 2935449: if (size() > 0 2935449: && _M_impl._M_key_compare(_S_key(_M_rightmost()), __k)) 2935449: return _Res(_Base_ptr(), _M_rightmost()); 2935449: else 2935449: return _M_get_insert_unique_pos(__k); 2935449: } 2935449: else if (_M_impl._M_key_compare(__k, _S_key(__position._M_node))) 2935449: { 2935449: 2935449: iterator __before(__position._M_node); 2935449: if (__position._M_node == _M_leftmost()) 2935449: return _Res(_M_leftmost(), _M_leftmost()); 2935449: else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k)) 2935449: { 2935449: if (!_S_right(__before._M_node)) 2935449: return _Res(_Base_ptr(), __before._M_node); 2935449: else 2935449: return _Res(__position._M_node, __position._M_node); 2935449: } 2935449: else 2935449: return _M_get_insert_unique_pos(__k); 2935449: } 2935449: else if (_M_impl._M_key_compare(_S_key(__position._M_node), __k)) 2935449: { 2935449: 2935449: iterator __after(__position._M_node); 2935449: if (__position._M_node == _M_rightmost()) 2935449: return _Res(_Base_ptr(), _M_rightmost()); 2935449: else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node))) 2935449: { 2935449: if (!_S_right(__position._M_node)) 2935449: return _Res(_Base_ptr(), __position._M_node); 2935449: else 2935449: return _Res(__after._M_node, __after._M_node); 2935449: } 2935449: else 2935449: return _M_get_insert_unique_pos(__k); 2935449: } 2935449: else 2935449: 2935449: return _Res(__position._M_node, _Base_ptr()); 2935449: } 2935449: 2935449: template 2935449: 2935449: template 2935449: 2935449: 2935449: 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_insert_unique_(const_iterator __position, 2935449: 2935449: _Arg&& __v, 2935449: 2935449: 2935449: 2935449: _NodeGen& __node_gen) 2935449: { 2935449: pair<_Base_ptr, _Base_ptr> __res 2935449: = _M_get_insert_hint_unique_pos(__position, _KeyOfValue()(__v)); 2935449: 2935449: if (__res.second) 2935449: return _M_insert_(__res.first, __res.second, 2935449: std::forward<_Arg>(__v), 2935449: __node_gen); 2935449: return iterator(__res.first); 2935449: } 2935449: 2935449: template 2935449: pair::_Base_ptr, 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, 2935449: _Compare, _Alloc>::_Base_ptr> 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_get_insert_hint_equal_pos(const_iterator __position, const key_type& __k) 2935449: { 2935449: typedef pair<_Base_ptr, _Base_ptr> _Res; 2935449: 2935449: 2935449: if (__position._M_node == _M_end()) 2935449: { 2935449: if (size() > 0 2935449: && !_M_impl._M_key_compare(__k, _S_key(_M_rightmost()))) 2935449: return _Res(_Base_ptr(), _M_rightmost()); 2935449: else 2935449: return _M_get_insert_equal_pos(__k); 2935449: } 2935449: else if (!_M_impl._M_key_compare(_S_key(__position._M_node), __k)) 2935449: { 2935449: 2935449: iterator __before(__position._M_node); 2935449: if (__position._M_node == _M_leftmost()) 2935449: return _Res(_M_leftmost(), _M_leftmost()); 2935449: else if (!_M_impl._M_key_compare(__k, _S_key((--__before)._M_node))) 2935449: { 2935449: if (!_S_right(__before._M_node)) 2935449: return _Res(_Base_ptr(), __before._M_node); 2935449: else 2935449: return _Res(__position._M_node, __position._M_node); 2935449: } 2935449: else 2935449: return _M_get_insert_equal_pos(__k); 2935449: } 2935449: else 2935449: { 2935449: 2935449: iterator __after(__position._M_node); 2935449: if (__position._M_node == _M_rightmost()) 2935449: return _Res(_Base_ptr(), _M_rightmost()); 2935449: else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), __k)) 2935449: { 2935449: if (!_S_right(__position._M_node)) 2935449: return _Res(_Base_ptr(), __position._M_node); 2935449: else 2935449: return _Res(__after._M_node, __after._M_node); 2935449: } 2935449: else 2935449: return _Res(_Base_ptr(), _Base_ptr()); 2935449: } 2935449: } 2935449: 2935449: template 2935449: 2935449: template 2935449: 2935449: 2935449: 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_insert_equal_(const_iterator __position, 2935449: 2935449: _Arg&& __v, 2935449: 2935449: 2935449: 2935449: _NodeGen& __node_gen) 2935449: { 2935449: pair<_Base_ptr, _Base_ptr> __res 2935449: = _M_get_insert_hint_equal_pos(__position, _KeyOfValue()(__v)); 2935449: 2935449: if (__res.second) 2935449: return _M_insert_(__res.first, __res.second, 2935449: std::forward<_Arg>(__v), 2935449: __node_gen); 2935449: 2935449: return _M_insert_equal_lower(std::forward<_Arg>(__v)); 2935449: } 2935449: 2935449: 2935449: template 2935449: auto 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_insert_node(_Base_ptr __x, _Base_ptr __p, _Node_ptr __z) 2935449: -> iterator 2935449: { 2935449: bool __insert_left = (__x || __p == _M_end() 2935449: || _M_impl._M_key_compare(_S_key(__z), 2935449: _S_key(__p))); 2935449: 2935449: _Base_ptr __base_z = __z->_M_base_ptr(); 2935449: _Node_traits::_S_insert_and_rebalance 2935449: (__insert_left, __base_z, __p, this->_M_impl._M_header); 2935449: ++_M_impl._M_node_count; 2935449: return iterator(__base_z); 2935449: } 2935449: 2935449: template 2935449: auto 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_insert_lower_node(_Base_ptr __p, _Node_ptr __z) 2935449: -> iterator 2935449: { 2935449: bool __insert_left = (__p == _M_end() 2935449: || !_M_impl._M_key_compare(_S_key(__p), 2935449: _S_key(__z))); 2935449: 2935449: _Base_ptr __base_z = __z->_M_base_ptr(); 2935449: _Node_traits::_S_insert_and_rebalance 2935449: (__insert_left, __base_z, __p, this->_M_impl._M_header); 2935449: ++_M_impl._M_node_count; 2935449: return iterator(__base_z); 2935449: } 2935449: 2935449: template 2935449: auto 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_insert_equal_lower_node(_Node_ptr __z) 2935449: -> iterator 2935449: { 2935449: _Base_ptr __x = _M_begin(); 2935449: _Base_ptr __y = _M_end(); 2935449: while (__x) 2935449: { 2935449: __y = __x; 2935449: __x = !_M_impl._M_key_compare(_S_key(__x), _S_key(__z)) ? 2935449: _S_left(__x) : _S_right(__x); 2935449: } 2935449: return _M_insert_lower_node(__y, __z); 2935449: } 2935449: 2935449: template 2935449: template 2935449: auto 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_emplace_unique(_Args&&... __args) 2935449: -> pair 2935449: { 2935449: _Auto_node __z(*this, std::forward<_Args>(__args)...); 2935449: auto __res = _M_get_insert_unique_pos(__z._M_key()); 2935449: if (__res.second) 2935449: return {__z._M_insert(__res), true}; 2935449: return {iterator(__res.first), false}; 2935449: } 2935449: 2935449: template 2935449: template 2935449: auto 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_emplace_equal(_Args&&... __args) 2935449: -> iterator 2935449: { 2935449: _Auto_node __z(*this, std::forward<_Args>(__args)...); 2935449: auto __res = _M_get_insert_equal_pos(__z._M_key()); 2935449: return __z._M_insert(__res); 2935449: } 2935449: 2935449: template 2935449: template 2935449: auto 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args) 2935449: -> iterator 2935449: { 2935449: _Auto_node __z(*this, std::forward<_Args>(__args)...); 2935449: auto __res = _M_get_insert_hint_unique_pos(__pos, __z._M_key()); 2935449: if (__res.second) 2935449: return __z._M_insert(__res); 2935449: return iterator(__res.first); 2935449: } 2935449: 2935449: template 2935449: template 2935449: auto 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args) 2935449: -> iterator 2935449: { 2935449: _Auto_node __z(*this, std::forward<_Args>(__args)...); 2935449: auto __res = _M_get_insert_hint_equal_pos(__pos, __z._M_key()); 2935449: if (__res.second) 2935449: return __z._M_insert(__res); 2935449: return __z._M_insert_equal_lower(); 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: void 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_erase_aux(const_iterator __position) 2935449: { 2935449: _Base_ptr __y = _Node_traits::_S_rebalance_for_erase 2935449: (__position._M_node, this->_M_impl._M_header); 2935449: _M_drop_node(static_cast<_Node&>(*__y)._M_node_ptr()); 2935449: --_M_impl._M_node_count; 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: _M_erase_aux(const_iterator __first, const_iterator __last) 2935449: { 2935449: if (__first == begin() && __last == end()) 2935449: clear(); 2935449: else 2935449: while (__first != __last) 2935449: _M_erase_aux(__first++); 2935449: } 2935449: 2935449: template 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: erase(const _Key& __x) 2935449: { 2935449: pair __p = equal_range(__x); 2935449: const size_type __old_size = size(); 2935449: _M_erase_aux(__p.first, __p.second); 2935449: return __old_size - size(); 2935449: } 2935449: 2935449: template 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, 2935449: _Compare, _Alloc>::iterator 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: find(const _Key& __k) 2935449: { 2935449: iterator __j(_M_lower_bound(_M_begin(), _M_end(), __k)); 2935449: return (__j == end() 2935449: || _M_impl._M_key_compare(__k, 2935449: _S_key(__j._M_node))) ? end() : __j; 2935449: } 2935449: 2935449: template 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, 2935449: _Compare, _Alloc>::const_iterator 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: find(const _Key& __k) const 2935449: { 2935449: const_iterator __j(_M_lower_bound(_M_begin(), _M_end(), __k)); 2935449: return (__j == end() 2935449: || _M_impl._M_key_compare(__k, 2935449: _S_key(__j._M_node))) ? end() : __j; 2935449: } 2935449: 2935449: template 2935449: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 2935449: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 2935449: count(const _Key& __k) const 2935449: { 2935449: pair __p = equal_range(__k); 2935449: const size_type __n = std::distance(__p.first, __p.second); 2935449: return __n; 2935449: } 2935449: 2935449: __attribute__ ((__pure__)) unsigned int 2935449: _Rb_tree_black_count(const _Rb_tree_node_base* __node, 2935449: const _Rb_tree_node_base* __root) throw (); 2935449: 2935449: template 2935449: bool 2935449: _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const 2935449: { 2935449: if (_M_impl._M_node_count == 0 || begin() == end()) 2935449: return _M_impl._M_node_count == 0 && begin() == end() 2935449: && this->_M_impl._M_header._M_left == _M_end() 2935449: && this->_M_impl._M_header._M_right == _M_end(); 2935449: 2935449: unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); 2935449: for (const_iterator __it = begin(); __it != end(); ++__it) 2935449: { 2935449: _Base_ptr __x = __it._M_node; 2935449: _Base_ptr __L = _S_left(__x); 2935449: _Base_ptr __R = _S_right(__x); 2935449: 2935449: if (__x->_M_color == _S_red) 2935449: if ((__L && __L->_M_color == _S_red) 2935449: || (__R && __R->_M_color == _S_red)) 2935449: return false; 2935449: 2935449: if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L))) 2935449: return false; 2935449: if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x))) 2935449: return false; 2935449: 2935449: if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) 2935449: return false; 2935449: } 2935449: 2935449: if (_M_leftmost() != _Node_base::_S_minimum(_M_root())) 2935449: return false; 2935449: if (_M_rightmost() != _Node_base::_S_maximum(_M_root())) 2935449: return false; 2935449: return true; 2935449: } 2935449: # 3240 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_tree.h" 3 2935449: 2935449: } 2935449: # 65 "/usr/arm-linux-gnueabi/include/c++/15/map" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 1 3 2935449: # 69 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: template 2935449: class multimap; 2935449: # 103 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: template , 2935449: typename _Alloc = std::allocator > > 2935449: class map 2935449: { 2935449: public: 2935449: typedef _Key key_type; 2935449: typedef _Tp mapped_type; 2935449: typedef std::pair value_type; 2935449: typedef _Compare key_compare; 2935449: typedef _Alloc allocator_type; 2935449: 2935449: private: 2935449: # 128 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: static_assert(is_same::value, 2935449: "std::map must have the same value_type as its allocator"); 2935449: 2935449: 2935449: 2935449: public: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: class value_compare 2935449: : public std::binary_function 2935449: { 2935449: friend class map<_Key, _Tp, _Compare, _Alloc>; 2935449: protected: 2935449: _Compare comp; 2935449: 2935449: value_compare(_Compare __c) 2935449: : comp(__c) { } 2935449: 2935449: public: 2935449: bool operator()(const value_type& __x, const value_type& __y) const 2935449: { return comp(__x.first, __y.first); } 2935449: }; 2935449: #pragma GCC diagnostic pop 2935449: 2935449: private: 2935449: 2935449: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 2935449: rebind::other _Pair_alloc_type; 2935449: 2935449: typedef _Rb_tree, 2935449: key_compare, _Pair_alloc_type> _Rep_type; 2935449: 2935449: 2935449: _Rep_type _M_t; 2935449: 2935449: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 2935449: # 172 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: public: 2935449: 2935449: 2935449: typedef typename _Alloc_traits::pointer pointer; 2935449: typedef typename _Alloc_traits::const_pointer const_pointer; 2935449: typedef typename _Alloc_traits::reference reference; 2935449: typedef typename _Alloc_traits::const_reference const_reference; 2935449: typedef typename _Rep_type::iterator iterator; 2935449: typedef typename _Rep_type::const_iterator const_iterator; 2935449: typedef typename _Rep_type::size_type size_type; 2935449: typedef typename _Rep_type::difference_type difference_type; 2935449: typedef typename _Rep_type::reverse_iterator reverse_iterator; 2935449: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 2935449: # 200 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: map() = default; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: explicit 2935449: map(const _Compare& __comp, 2935449: const allocator_type& __a = allocator_type()) 2935449: : _M_t(__comp, _Pair_alloc_type(__a)) { } 2935449: # 222 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: map(const map&) = default; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: map(map&&) = default; 2935449: # 243 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: map(initializer_list __l, 2935449: const _Compare& __comp = _Compare(), 2935449: const allocator_type& __a = allocator_type()) 2935449: : _M_t(__comp, _Pair_alloc_type(__a)) 2935449: { _M_t._M_insert_range_unique(__l.begin(), __l.end()); } 2935449: 2935449: 2935449: explicit 2935449: map(const allocator_type& __a) 2935449: : _M_t(_Pair_alloc_type(__a)) { } 2935449: 2935449: 2935449: map(const map& __m, const __type_identity_t& __a) 2935449: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 2935449: 2935449: 2935449: map(map&& __m, const __type_identity_t& __a) 2935449: noexcept(is_nothrow_copy_constructible<_Compare>::value 2935449: && _Alloc_traits::_S_always_equal()) 2935449: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 2935449: 2935449: 2935449: map(initializer_list __l, const allocator_type& __a) 2935449: : _M_t(_Pair_alloc_type(__a)) 2935449: { _M_t._M_insert_range_unique(__l.begin(), __l.end()); } 2935449: 2935449: 2935449: template 2935449: map(_InputIterator __first, _InputIterator __last, 2935449: const allocator_type& __a) 2935449: : _M_t(_Pair_alloc_type(__a)) 2935449: { _M_t._M_insert_range_unique(__first, __last); } 2935449: # 287 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: template 2935449: map(_InputIterator __first, _InputIterator __last) 2935449: : _M_t() 2935449: { _M_t._M_insert_range_unique(__first, __last); } 2935449: # 304 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: template 2935449: map(_InputIterator __first, _InputIterator __last, 2935449: const _Compare& __comp, 2935449: const allocator_type& __a = allocator_type()) 2935449: : _M_t(__comp, _Pair_alloc_type(__a)) 2935449: { _M_t._M_insert_range_unique(__first, __last); } 2935449: # 337 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: ~map() = default; 2935449: # 353 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: map& 2935449: operator=(const map&) = default; 2935449: 2935449: 2935449: map& 2935449: operator=(map&&) = default; 2935449: # 371 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: map& 2935449: operator=(initializer_list __l) 2935449: { 2935449: _M_t._M_assign_unique(__l.begin(), __l.end()); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: allocator_type 2935449: get_allocator() const noexcept 2935449: { return allocator_type(_M_t.get_allocator()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: iterator 2935449: begin() noexcept 2935449: { return _M_t.begin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_iterator 2935449: begin() const noexcept 2935449: { return _M_t.begin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: iterator 2935449: end() noexcept 2935449: { return _M_t.end(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_iterator 2935449: end() const noexcept 2935449: { return _M_t.end(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: reverse_iterator 2935449: rbegin() noexcept 2935449: { return _M_t.rbegin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_reverse_iterator 2935449: rbegin() const noexcept 2935449: { return _M_t.rbegin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: reverse_iterator 2935449: rend() noexcept 2935449: { return _M_t.rend(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_reverse_iterator 2935449: rend() const noexcept 2935449: { return _M_t.rend(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_iterator 2935449: cbegin() const noexcept 2935449: { return _M_t.begin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_iterator 2935449: cend() const noexcept 2935449: { return _M_t.end(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_reverse_iterator 2935449: crbegin() const noexcept 2935449: { return _M_t.rbegin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_reverse_iterator 2935449: crend() const noexcept 2935449: { return _M_t.rend(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] bool 2935449: empty() const noexcept 2935449: { return _M_t.empty(); } 2935449: 2935449: 2935449: size_type 2935449: size() const noexcept 2935449: { return _M_t.size(); } 2935449: 2935449: 2935449: size_type 2935449: max_size() const noexcept 2935449: { return _M_t.max_size(); } 2935449: # 526 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: mapped_type& 2935449: operator[](const key_type& __k) 2935449: { 2935449: 2935449: 2935449: 2935449: iterator __i = lower_bound(__k); 2935449: 2935449: if (__i == end() || key_comp()(__k, (*__i).first)) 2935449: 2935449: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 2935449: std::tuple(__k), 2935449: std::tuple<>()); 2935449: 2935449: 2935449: 2935449: return (*__i).second; 2935449: } 2935449: 2935449: 2935449: mapped_type& 2935449: operator[](key_type&& __k) 2935449: { 2935449: 2935449: 2935449: 2935449: iterator __i = lower_bound(__k); 2935449: 2935449: if (__i == end() || key_comp()(__k, (*__i).first)) 2935449: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 2935449: std::forward_as_tuple(std::move(__k)), 2935449: std::tuple<>()); 2935449: return (*__i).second; 2935449: } 2935449: # 571 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: mapped_type& 2935449: at(const key_type& __k) 2935449: { 2935449: iterator __i = lower_bound(__k); 2935449: if (__i == end() || key_comp()(__k, (*__i).first)) 2935449: __throw_out_of_range(("map::at")); 2935449: return (*__i).second; 2935449: } 2935449: 2935449: const mapped_type& 2935449: at(const key_type& __k) const 2935449: { 2935449: const_iterator __i = lower_bound(__k); 2935449: if (__i == end() || key_comp()(__k, (*__i).first)) 2935449: __throw_out_of_range(("map::at")); 2935449: return (*__i).second; 2935449: } 2935449: # 609 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: template 2935449: std::pair 2935449: emplace(_Args&&... __args) 2935449: { 2935449: # 631 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); 2935449: } 2935449: # 659 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: template 2935449: iterator 2935449: emplace_hint(const_iterator __pos, _Args&&... __args) 2935449: { 2935449: return _M_t._M_emplace_hint_unique(__pos, 2935449: std::forward<_Args>(__args)...); 2935449: } 2935449: # 856 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: std::pair 2935449: insert(const value_type& __x) 2935449: { return _M_t._M_insert_unique(__x); } 2935449: 2935449: 2935449: 2935449: 2935449: std::pair 2935449: insert(value_type&& __x) 2935449: { return _M_t._M_insert_unique(std::move(__x)); } 2935449: 2935449: template 2935449: __enable_if_t::value, 2935449: pair> 2935449: insert(_Pair&& __x) 2935449: { 2935449: # 888 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: return _M_t._M_emplace_unique(std::forward<_Pair>(__x)); 2935449: } 2935449: # 901 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: void 2935449: insert(std::initializer_list __list) 2935449: { insert(__list.begin(), __list.end()); } 2935449: # 948 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: iterator 2935449: 2935449: insert(const_iterator __position, const value_type& __x) 2935449: 2935449: 2935449: 2935449: { return _M_t._M_insert_unique_(__position, __x); } 2935449: 2935449: 2935449: 2935449: 2935449: iterator 2935449: insert(const_iterator __position, value_type&& __x) 2935449: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 2935449: 2935449: template 2935449: __enable_if_t::value, iterator> 2935449: insert(const_iterator __position, _Pair&& __x) 2935449: { 2935449: return _M_t._M_emplace_hint_unique(__position, 2935449: std::forward<_Pair>(__x)); 2935449: } 2935449: # 981 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: template 2935449: void 2935449: insert(_InputIterator __first, _InputIterator __last) 2935449: { _M_t._M_insert_range_unique(__first, __last); } 2935449: # 1120 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: iterator 2935449: erase(const_iterator __position) 2935449: { return _M_t.erase(__position); } 2935449: 2935449: 2935449: __attribute ((__abi_tag__ ("cxx11"))) 2935449: iterator 2935449: erase(iterator __position) 2935449: { return _M_t.erase(__position); } 2935449: # 1157 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: size_type 2935449: erase(const key_type& __x) 2935449: { return _M_t.erase(__x); } 2935449: # 1177 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: iterator 2935449: erase(const_iterator __first, const_iterator __last) 2935449: { return _M_t.erase(__first, __last); } 2935449: # 1211 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: void 2935449: swap(map& __x) 2935449: noexcept(__is_nothrow_swappable<_Compare>::value) 2935449: { _M_t.swap(__x._M_t); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: clear() noexcept 2935449: { _M_t.clear(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: key_compare 2935449: key_comp() const 2935449: { return _M_t.key_comp(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: value_compare 2935449: value_comp() const 2935449: { return value_compare(_M_t.key_comp()); } 2935449: # 1258 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: iterator 2935449: find(const key_type& __x) 2935449: { return _M_t.find(__x); } 2935449: # 1283 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: const_iterator 2935449: find(const key_type& __x) const 2935449: { return _M_t.find(__x); } 2935449: # 1304 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: size_type 2935449: count(const key_type& __x) const 2935449: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 2935449: # 1347 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: iterator 2935449: lower_bound(const key_type& __x) 2935449: { return _M_t.lower_bound(__x); } 2935449: # 1372 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: const_iterator 2935449: lower_bound(const key_type& __x) const 2935449: { return _M_t.lower_bound(__x); } 2935449: # 1392 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: iterator 2935449: upper_bound(const key_type& __x) 2935449: { return _M_t.upper_bound(__x); } 2935449: # 1412 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: const_iterator 2935449: upper_bound(const key_type& __x) const 2935449: { return _M_t.upper_bound(__x); } 2935449: # 1441 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: std::pair 2935449: equal_range(const key_type& __x) 2935449: { return _M_t.equal_range(__x); } 2935449: # 1470 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: std::pair 2935449: equal_range(const key_type& __x) const 2935449: { return _M_t.equal_range(__x); } 2935449: # 1487 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: template 2935449: friend bool 2935449: operator==(const map<_K1, _T1, _C1, _A1>&, 2935449: const map<_K1, _T1, _C1, _A1>&); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: friend bool 2935449: operator<(const map<_K1, _T1, _C1, _A1>&, 2935449: const map<_K1, _T1, _C1, _A1>&); 2935449: 2935449: }; 2935449: # 1569 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: template 2935449: inline bool 2935449: operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: const map<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: { return __x._M_t == __y._M_t; } 2935449: # 1607 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: template 2935449: inline bool 2935449: operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: const map<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: { return __x._M_t < __y._M_t; } 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: const map<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: { return !(__x == __y); } 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: const map<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: { return __y < __x; } 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: const map<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: { return !(__y < __x); } 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: const map<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: { return !(__x < __y); } 2935449: 2935449: 2935449: 2935449: template 2935449: inline void 2935449: swap(map<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: map<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: noexcept(noexcept(__x.swap(__y))) 2935449: { __x.swap(__y); } 2935449: 2935449: 2935449: # 1673 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_map.h" 3 2935449: 2935449: } 2935449: # 66 "/usr/arm-linux-gnueabi/include/c++/15/map" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 1 3 2935449: # 67 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: template 2935449: class map; 2935449: # 101 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: template , 2935449: typename _Alloc = std::allocator > > 2935449: class multimap 2935449: { 2935449: public: 2935449: typedef _Key key_type; 2935449: typedef _Tp mapped_type; 2935449: typedef std::pair value_type; 2935449: typedef _Compare key_compare; 2935449: typedef _Alloc allocator_type; 2935449: 2935449: private: 2935449: # 127 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: static_assert(is_same::value, 2935449: "std::multimap must have the same value_type as its allocator"); 2935449: 2935449: 2935449: 2935449: public: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2935449: class value_compare 2935449: : public std::binary_function 2935449: { 2935449: friend class multimap<_Key, _Tp, _Compare, _Alloc>; 2935449: protected: 2935449: _Compare comp; 2935449: 2935449: value_compare(_Compare __c) 2935449: : comp(__c) { } 2935449: 2935449: public: 2935449: bool operator()(const value_type& __x, const value_type& __y) const 2935449: { return comp(__x.first, __y.first); } 2935449: }; 2935449: #pragma GCC diagnostic pop 2935449: 2935449: private: 2935449: 2935449: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 2935449: rebind::other _Pair_alloc_type; 2935449: 2935449: typedef _Rb_tree, 2935449: key_compare, _Pair_alloc_type> _Rep_type; 2935449: 2935449: _Rep_type _M_t; 2935449: 2935449: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 2935449: 2935449: public: 2935449: 2935449: 2935449: typedef typename _Alloc_traits::pointer pointer; 2935449: typedef typename _Alloc_traits::const_pointer const_pointer; 2935449: typedef typename _Alloc_traits::reference reference; 2935449: typedef typename _Alloc_traits::const_reference const_reference; 2935449: typedef typename _Rep_type::iterator iterator; 2935449: typedef typename _Rep_type::const_iterator const_iterator; 2935449: typedef typename _Rep_type::size_type size_type; 2935449: typedef typename _Rep_type::difference_type difference_type; 2935449: typedef typename _Rep_type::reverse_iterator reverse_iterator; 2935449: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 2935449: # 190 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: multimap() = default; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: explicit 2935449: multimap(const _Compare& __comp, 2935449: const allocator_type& __a = allocator_type()) 2935449: : _M_t(__comp, _Pair_alloc_type(__a)) { } 2935449: # 212 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: multimap(const multimap&) = default; 2935449: # 221 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: multimap(multimap&&) = default; 2935449: # 233 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: multimap(initializer_list __l, 2935449: const _Compare& __comp = _Compare(), 2935449: const allocator_type& __a = allocator_type()) 2935449: : _M_t(__comp, _Pair_alloc_type(__a)) 2935449: { _M_t._M_insert_range_equal(__l.begin(), __l.end()); } 2935449: 2935449: 2935449: explicit 2935449: multimap(const allocator_type& __a) 2935449: : _M_t(_Pair_alloc_type(__a)) { } 2935449: 2935449: 2935449: multimap(const multimap& __m, 2935449: const __type_identity_t& __a) 2935449: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 2935449: 2935449: 2935449: multimap(multimap&& __m, const __type_identity_t& __a) 2935449: noexcept(is_nothrow_copy_constructible<_Compare>::value 2935449: && _Alloc_traits::_S_always_equal()) 2935449: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 2935449: 2935449: 2935449: multimap(initializer_list __l, const allocator_type& __a) 2935449: : _M_t(_Pair_alloc_type(__a)) 2935449: { _M_t._M_insert_range_equal(__l.begin(), __l.end()); } 2935449: 2935449: 2935449: template 2935449: multimap(_InputIterator __first, _InputIterator __last, 2935449: const allocator_type& __a) 2935449: : _M_t(_Pair_alloc_type(__a)) 2935449: { _M_t._M_insert_range_equal(__first, __last); } 2935449: # 277 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: template 2935449: multimap(_InputIterator __first, _InputIterator __last) 2935449: : _M_t() 2935449: { _M_t._M_insert_range_equal(__first, __last); } 2935449: # 293 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: template 2935449: multimap(_InputIterator __first, _InputIterator __last, 2935449: const _Compare& __comp, 2935449: const allocator_type& __a = allocator_type()) 2935449: : _M_t(__comp, _Pair_alloc_type(__a)) 2935449: { _M_t._M_insert_range_equal(__first, __last); } 2935449: # 326 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: ~multimap() = default; 2935449: # 342 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: multimap& 2935449: operator=(const multimap&) = default; 2935449: 2935449: 2935449: multimap& 2935449: operator=(multimap&&) = default; 2935449: # 360 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: multimap& 2935449: operator=(initializer_list __l) 2935449: { 2935449: _M_t._M_assign_equal(__l.begin(), __l.end()); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: 2935449: allocator_type 2935449: get_allocator() const noexcept 2935449: { return allocator_type(_M_t.get_allocator()); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: iterator 2935449: begin() noexcept 2935449: { return _M_t.begin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_iterator 2935449: begin() const noexcept 2935449: { return _M_t.begin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: iterator 2935449: end() noexcept 2935449: { return _M_t.end(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_iterator 2935449: end() const noexcept 2935449: { return _M_t.end(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: reverse_iterator 2935449: rbegin() noexcept 2935449: { return _M_t.rbegin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_reverse_iterator 2935449: rbegin() const noexcept 2935449: { return _M_t.rbegin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: reverse_iterator 2935449: rend() noexcept 2935449: { return _M_t.rend(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_reverse_iterator 2935449: rend() const noexcept 2935449: { return _M_t.rend(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_iterator 2935449: cbegin() const noexcept 2935449: { return _M_t.begin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_iterator 2935449: cend() const noexcept 2935449: { return _M_t.end(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_reverse_iterator 2935449: crbegin() const noexcept 2935449: { return _M_t.rbegin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_reverse_iterator 2935449: crend() const noexcept 2935449: { return _M_t.rend(); } 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] bool 2935449: empty() const noexcept 2935449: { return _M_t.empty(); } 2935449: 2935449: 2935449: size_type 2935449: size() const noexcept 2935449: { return _M_t.size(); } 2935449: 2935449: 2935449: size_type 2935449: max_size() const noexcept 2935449: { return _M_t.max_size(); } 2935449: # 518 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: template 2935449: iterator 2935449: emplace(_Args&&... __args) 2935449: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 2935449: # 545 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: template 2935449: iterator 2935449: emplace_hint(const_iterator __pos, _Args&&... __args) 2935449: { 2935449: return _M_t._M_emplace_hint_equal(__pos, 2935449: std::forward<_Args>(__args)...); 2935449: } 2935449: # 567 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: iterator 2935449: insert(const value_type& __x) 2935449: { return _M_t._M_insert_equal(__x); } 2935449: 2935449: 2935449: 2935449: 2935449: iterator 2935449: insert(value_type&& __x) 2935449: { return _M_t._M_insert_equal(std::move(__x)); } 2935449: 2935449: template 2935449: __enable_if_t::value, iterator> 2935449: insert(_Pair&& __x) 2935449: { return _M_t._M_emplace_equal(std::forward<_Pair>(__x)); } 2935449: # 606 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: iterator 2935449: 2935449: insert(const_iterator __position, const value_type& __x) 2935449: 2935449: 2935449: 2935449: { return _M_t._M_insert_equal_(__position, __x); } 2935449: 2935449: 2935449: 2935449: 2935449: iterator 2935449: insert(const_iterator __position, value_type&& __x) 2935449: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 2935449: 2935449: template 2935449: __enable_if_t::value, iterator> 2935449: insert(const_iterator __position, _Pair&& __x) 2935449: { 2935449: return _M_t._M_emplace_hint_equal(__position, 2935449: std::forward<_Pair>(__x)); 2935449: } 2935449: # 640 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: template 2935449: void 2935449: insert(_InputIterator __first, _InputIterator __last) 2935449: { _M_t._M_insert_range_equal(__first, __last); } 2935449: # 653 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: void 2935449: insert(initializer_list __l) 2935449: { this->insert(__l.begin(), __l.end()); } 2935449: # 749 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: iterator 2935449: erase(const_iterator __position) 2935449: { return _M_t.erase(__position); } 2935449: 2935449: 2935449: __attribute ((__abi_tag__ ("cxx11"))) 2935449: iterator 2935449: erase(iterator __position) 2935449: { return _M_t.erase(__position); } 2935449: # 786 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: size_type 2935449: erase(const key_type& __x) 2935449: { return _M_t.erase(__x); } 2935449: # 807 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: iterator 2935449: erase(const_iterator __first, const_iterator __last) 2935449: { return _M_t.erase(__first, __last); } 2935449: # 844 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: void 2935449: swap(multimap& __x) 2935449: noexcept(__is_nothrow_swappable<_Compare>::value) 2935449: { _M_t.swap(__x._M_t); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: clear() noexcept 2935449: { _M_t.clear(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: key_compare 2935449: key_comp() const 2935449: { return _M_t.key_comp(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: value_compare 2935449: value_comp() const 2935449: { return value_compare(_M_t.key_comp()); } 2935449: # 890 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: iterator 2935449: find(const key_type& __x) 2935449: { return _M_t.find(__x); } 2935449: # 914 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: const_iterator 2935449: find(const key_type& __x) const 2935449: { return _M_t.find(__x); } 2935449: # 932 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: size_type 2935449: count(const key_type& __x) const 2935449: { return _M_t.count(__x); } 2935449: # 975 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: iterator 2935449: lower_bound(const key_type& __x) 2935449: { return _M_t.lower_bound(__x); } 2935449: # 1000 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: const_iterator 2935449: lower_bound(const key_type& __x) const 2935449: { return _M_t.lower_bound(__x); } 2935449: # 1020 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: iterator 2935449: upper_bound(const key_type& __x) 2935449: { return _M_t.upper_bound(__x); } 2935449: # 1040 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: const_iterator 2935449: upper_bound(const key_type& __x) const 2935449: { return _M_t.upper_bound(__x); } 2935449: # 1067 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: std::pair 2935449: equal_range(const key_type& __x) 2935449: { return _M_t.equal_range(__x); } 2935449: # 1094 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: std::pair 2935449: equal_range(const key_type& __x) const 2935449: { return _M_t.equal_range(__x); } 2935449: # 1111 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: template 2935449: friend bool 2935449: operator==(const multimap<_K1, _T1, _C1, _A1>&, 2935449: const multimap<_K1, _T1, _C1, _A1>&); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: friend bool 2935449: operator<(const multimap<_K1, _T1, _C1, _A1>&, 2935449: const multimap<_K1, _T1, _C1, _A1>&); 2935449: 2935449: }; 2935449: # 1192 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: template 2935449: inline bool 2935449: operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: { return __x._M_t == __y._M_t; } 2935449: # 1230 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: template 2935449: inline bool 2935449: operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: { return __x._M_t < __y._M_t; } 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: { return !(__x == __y); } 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: { return __y < __x; } 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: { return !(__y < __x); } 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: { return !(__x < __y); } 2935449: 2935449: 2935449: 2935449: template 2935449: inline void 2935449: swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x, 2935449: multimap<_Key, _Tp, _Compare, _Alloc>& __y) 2935449: noexcept(noexcept(__x.swap(__y))) 2935449: { __x.swap(__y); } 2935449: 2935449: 2935449: # 1296 "/usr/arm-linux-gnueabi/include/c++/15/bits/stl_multimap.h" 3 2935449: 2935449: } 2935449: # 67 "/usr/arm-linux-gnueabi/include/c++/15/map" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/erase_if.h" 1 3 2935449: # 69 "/usr/arm-linux-gnueabi/include/c++/15/map" 2 3 2935449: # 82 "/usr/arm-linux-gnueabi/include/c++/15/map" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 83 "/usr/arm-linux-gnueabi/include/c++/15/map" 2 3 2935449: # 27 "/<>/_include/workflow/URIParser.h" 2 2935449: # 39 "/<>/_include/workflow/URIParser.h" 2935449: 2935449: # 39 "/<>/_include/workflow/URIParser.h" 2935449: class ParsedURI 2935449: { 2935449: public: 2935449: char *scheme; 2935449: char *userinfo; 2935449: char *host; 2935449: char *port; 2935449: char *path; 2935449: char *query; 2935449: char *fragment; 2935449: int state; 2935449: int error; 2935449: 2935449: ParsedURI() { init(); } 2935449: virtual ~ParsedURI() { deinit(); } 2935449: 2935449: 2935449: ParsedURI(const ParsedURI& uri) { copy(uri); } 2935449: 2935449: ParsedURI& operator= (const ParsedURI& uri) 2935449: { 2935449: if (this != &uri) 2935449: { 2935449: deinit(); 2935449: copy(uri); 2935449: } 2935449: 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: ParsedURI(ParsedURI&& uri); 2935449: 2935449: ParsedURI& operator= (ParsedURI&& uri); 2935449: 2935449: private: 2935449: void init() 2935449: { 2935449: scheme = 2935449: # 77 "/<>/_include/workflow/URIParser.h" 3 4 2935449: __null 2935449: # 77 "/<>/_include/workflow/URIParser.h" 2935449: ; 2935449: userinfo = 2935449: # 78 "/<>/_include/workflow/URIParser.h" 3 4 2935449: __null 2935449: # 78 "/<>/_include/workflow/URIParser.h" 2935449: ; 2935449: host = 2935449: # 79 "/<>/_include/workflow/URIParser.h" 3 4 2935449: __null 2935449: # 79 "/<>/_include/workflow/URIParser.h" 2935449: ; 2935449: port = 2935449: # 80 "/<>/_include/workflow/URIParser.h" 3 4 2935449: __null 2935449: # 80 "/<>/_include/workflow/URIParser.h" 2935449: ; 2935449: path = 2935449: # 81 "/<>/_include/workflow/URIParser.h" 3 4 2935449: __null 2935449: # 81 "/<>/_include/workflow/URIParser.h" 2935449: ; 2935449: query = 2935449: # 82 "/<>/_include/workflow/URIParser.h" 3 4 2935449: __null 2935449: # 82 "/<>/_include/workflow/URIParser.h" 2935449: ; 2935449: fragment = 2935449: # 83 "/<>/_include/workflow/URIParser.h" 3 4 2935449: __null 2935449: # 83 "/<>/_include/workflow/URIParser.h" 2935449: ; 2935449: state = 0; 2935449: error = 0; 2935449: } 2935449: 2935449: void deinit() 2935449: { 2935449: free(scheme); 2935449: free(userinfo); 2935449: free(host); 2935449: free(port); 2935449: free(path); 2935449: free(query); 2935449: free(fragment); 2935449: } 2935449: 2935449: void copy(const ParsedURI& uri); 2935449: }; 2935449: 2935449: 2935449: class URIParser 2935449: { 2935449: public: 2935449: 2935449: static int parse(const char *str, ParsedURI& uri); 2935449: static int parse(const std::string& str, ParsedURI& uri) 2935449: { 2935449: return parse(str.c_str(), uri); 2935449: } 2935449: 2935449: static std::map> 2935449: split_query_strict(const std::string &query); 2935449: 2935449: static std::map 2935449: split_query(const std::string &query); 2935449: 2935449: static std::vector split_path(const std::string &path); 2935449: }; 2935449: # 29 "/<>/src/client/WFConsulClient.cc" 2 2935449: # 1 "/<>/_include/workflow/HttpUtil.h" 1 2935449: # 25 "/<>/_include/workflow/HttpUtil.h" 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/unordered_map" 1 3 2935449: # 43 "/usr/arm-linux-gnueabi/include/c++/15/unordered_map" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 1 3 2935449: # 33 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable.h" 1 3 2935449: # 37 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable_policy.h" 1 3 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable_policy.h" 3 2935449: 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable_policy.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: template 2935449: class _Hashtable; 2935449: 2935449: namespace __detail 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Hashtable_base; 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: 2935449: 2935449: template 2935449: inline typename std::iterator_traits<_Iterator>::difference_type 2935449: __distance_fw(_Iterator __first, _Iterator __last) 2935449: { 2935449: using _Cat = typename std::iterator_traits<_Iterator>::iterator_category; 2935449: if constexpr (is_convertible<_Cat, forward_iterator_tag>::value) 2935449: return std::distance(__first, __last); 2935449: else 2935449: return __first != __last ? 1 : 0; 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: struct _Identity 2935449: { 2935449: template 2935449: _Tp&& 2935449: operator()(_Tp&& __x) const noexcept 2935449: { return std::forward<_Tp>(__x); } 2935449: }; 2935449: 2935449: struct _Select1st 2935449: { 2935449: template 2935449: struct __1st_type; 2935449: 2935449: template 2935449: struct __1st_type> 2935449: { using type = _Tp; }; 2935449: 2935449: template 2935449: struct __1st_type> 2935449: { using type = const _Tp; }; 2935449: 2935449: template 2935449: struct __1st_type<_Pair&> 2935449: { using type = typename __1st_type<_Pair>::type&; }; 2935449: 2935449: template 2935449: typename __1st_type<_Tp>::type&& 2935449: operator()(_Tp&& __x) const noexcept 2935449: { return std::forward<_Tp>(__x).first; } 2935449: }; 2935449: 2935449: template 2935449: struct _NodeBuilder; 2935449: 2935449: template<> 2935449: struct _NodeBuilder<_Select1st> 2935449: { 2935449: template 2935449: static auto 2935449: _S_build(_Kt&& __k, _Arg&& __arg, _NodeGenerator& __node_gen) 2935449: -> typename _NodeGenerator::__node_ptr 2935449: { 2935449: return __node_gen(std::forward<_Kt>(__k), 2935449: std::forward<_Arg>(__arg).second); 2935449: } 2935449: }; 2935449: 2935449: template<> 2935449: struct _NodeBuilder<_Identity> 2935449: { 2935449: template 2935449: static auto 2935449: _S_build(_Kt&& __k, _Arg&&, _NodeGenerator& __node_gen) 2935449: -> typename _NodeGenerator::__node_ptr 2935449: { return __node_gen(std::forward<_Kt>(__k)); } 2935449: }; 2935449: 2935449: template 2935449: struct _NodePtrGuard 2935449: { 2935449: _HashtableAlloc& _M_h; 2935449: _NodePtr _M_ptr; 2935449: 2935449: ~_NodePtrGuard() 2935449: { 2935449: if (_M_ptr) 2935449: _M_h._M_deallocate_node_ptr(_M_ptr); 2935449: } 2935449: }; 2935449: 2935449: template 2935449: struct _Hashtable_alloc; 2935449: 2935449: 2935449: 2935449: template 2935449: struct _ReuseOrAllocNode 2935449: { 2935449: private: 2935449: using __node_alloc_type = _NodeAlloc; 2935449: using __hashtable_alloc = _Hashtable_alloc<__node_alloc_type>; 2935449: using __node_alloc_traits = 2935449: typename __hashtable_alloc::__node_alloc_traits; 2935449: 2935449: public: 2935449: using __node_ptr = typename __hashtable_alloc::__node_ptr; 2935449: 2935449: _ReuseOrAllocNode(__node_ptr __nodes, __hashtable_alloc& __h) 2935449: : _M_nodes(__nodes), _M_h(__h) { } 2935449: _ReuseOrAllocNode(const _ReuseOrAllocNode&) = delete; 2935449: 2935449: ~_ReuseOrAllocNode() 2935449: { _M_h._M_deallocate_nodes(_M_nodes); } 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: template 2935449: __node_ptr 2935449: operator()(_Arg&& __arg) 2935449: { 2935449: if (!_M_nodes) 2935449: return _M_h._M_allocate_node(std::forward<_Arg>(__arg)); 2935449: 2935449: using value_type = typename _NodeAlloc::value_type::value_type; 2935449: 2935449: __node_ptr __node = _M_nodes; 2935449: if constexpr (is_assignable::value) 2935449: { 2935449: __node->_M_v() = std::forward<_Arg>(__arg); 2935449: _M_nodes = _M_nodes->_M_next(); 2935449: __node->_M_nxt = nullptr; 2935449: } 2935449: else 2935449: { 2935449: _M_nodes = _M_nodes->_M_next(); 2935449: __node->_M_nxt = nullptr; 2935449: auto& __a = _M_h._M_node_allocator(); 2935449: __node_alloc_traits::destroy(__a, __node->_M_valptr()); 2935449: _NodePtrGuard<__hashtable_alloc, __node_ptr> 2935449: __guard{ _M_h, __node }; 2935449: __node_alloc_traits::construct(__a, __node->_M_valptr(), 2935449: std::forward<_Arg>(__arg)); 2935449: __guard._M_ptr = nullptr; 2935449: } 2935449: return __node; 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: private: 2935449: __node_ptr _M_nodes; 2935449: __hashtable_alloc& _M_h; 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct _AllocNode 2935449: { 2935449: private: 2935449: using __hashtable_alloc = _Hashtable_alloc<_NodeAlloc>; 2935449: 2935449: public: 2935449: using __node_ptr = typename __hashtable_alloc::__node_ptr; 2935449: 2935449: _AllocNode(__hashtable_alloc& __h) 2935449: : _M_h(__h) { } 2935449: 2935449: template 2935449: __node_ptr 2935449: operator()(_Args&&... __args) const 2935449: { return _M_h._M_allocate_node(std::forward<_Args>(__args)...); } 2935449: 2935449: private: 2935449: __hashtable_alloc& _M_h; 2935449: }; 2935449: # 262 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable_policy.h" 3 2935449: template 2935449: struct _Hashtable_traits 2935449: { 2935449: using __hash_cached = __bool_constant<_Cache_hash_code>; 2935449: using __constant_iterators = __bool_constant<_Constant_iterators>; 2935449: using __unique_keys = __bool_constant<_Unique_keys>; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Hashtable_hash_traits 2935449: { 2935449: static constexpr size_t 2935449: __small_size_threshold() noexcept 2935449: { return std::__is_fast_hash<_Hash>::value ? 0 : 20; } 2935449: }; 2935449: # 292 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable_policy.h" 3 2935449: struct _Hash_node_base 2935449: { 2935449: _Hash_node_base* _M_nxt; 2935449: 2935449: _Hash_node_base() noexcept : _M_nxt() { } 2935449: 2935449: _Hash_node_base(_Hash_node_base* __next) noexcept : _M_nxt(__next) { } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Hash_node_value_base 2935449: { 2935449: using value_type = _Value; 2935449: 2935449: __gnu_cxx::__aligned_buffer<_Value> _M_storage; 2935449: 2935449: 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: _Value* 2935449: _M_valptr() noexcept 2935449: { return _M_storage._M_ptr(); } 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: const _Value* 2935449: _M_valptr() const noexcept 2935449: { return _M_storage._M_ptr(); } 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: _Value& 2935449: _M_v() noexcept 2935449: { return *_M_valptr(); } 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: const _Value& 2935449: _M_v() const noexcept 2935449: { return *_M_valptr(); } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Hash_node_code_cache 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: template<> 2935449: struct _Hash_node_code_cache 2935449: { size_t _M_hash_code; }; 2935449: 2935449: template 2935449: struct _Hash_node_value 2935449: : _Hash_node_value_base<_Value> 2935449: , _Hash_node_code_cache<_Cache_hash_code> 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Hash_node 2935449: : _Hash_node_base 2935449: , _Hash_node_value<_Value, _Cache_hash_code> 2935449: { 2935449: _Hash_node* 2935449: _M_next() const noexcept 2935449: { return static_cast<_Hash_node*>(this->_M_nxt); } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Node_iterator_base 2935449: { 2935449: using __node_type = _Hash_node<_Value, _Cache_hash_code>; 2935449: 2935449: __node_type* _M_cur; 2935449: 2935449: _Node_iterator_base() : _M_cur(nullptr) { } 2935449: _Node_iterator_base(__node_type* __p) noexcept 2935449: : _M_cur(__p) { } 2935449: 2935449: void 2935449: _M_incr() noexcept 2935449: { _M_cur = _M_cur->_M_next(); } 2935449: 2935449: friend bool 2935449: operator==(const _Node_iterator_base& __x, const _Node_iterator_base& __y) 2935449: noexcept 2935449: { return __x._M_cur == __y._M_cur; } 2935449: 2935449: 2935449: friend bool 2935449: operator!=(const _Node_iterator_base& __x, const _Node_iterator_base& __y) 2935449: noexcept 2935449: { return __x._M_cur != __y._M_cur; } 2935449: 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Node_iterator 2935449: : public _Node_iterator_base<_Value, __cache> 2935449: { 2935449: private: 2935449: using __base_type = _Node_iterator_base<_Value, __cache>; 2935449: using __node_type = typename __base_type::__node_type; 2935449: 2935449: public: 2935449: using value_type = _Value; 2935449: using difference_type = ptrdiff_t; 2935449: using iterator_category = forward_iterator_tag; 2935449: 2935449: using pointer = __conditional_t<__constant_iterators, 2935449: const value_type*, value_type*>; 2935449: 2935449: using reference = __conditional_t<__constant_iterators, 2935449: const value_type&, value_type&>; 2935449: 2935449: _Node_iterator() = default; 2935449: 2935449: explicit 2935449: _Node_iterator(__node_type* __p) noexcept 2935449: : __base_type(__p) { } 2935449: 2935449: reference 2935449: operator*() const noexcept 2935449: { return this->_M_cur->_M_v(); } 2935449: 2935449: pointer 2935449: operator->() const noexcept 2935449: { return this->_M_cur->_M_valptr(); } 2935449: 2935449: _Node_iterator& 2935449: operator++() noexcept 2935449: { 2935449: this->_M_incr(); 2935449: return *this; 2935449: } 2935449: 2935449: _Node_iterator 2935449: operator++(int) noexcept 2935449: { 2935449: _Node_iterator __tmp(*this); 2935449: this->_M_incr(); 2935449: return __tmp; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: friend bool 2935449: operator==(const _Node_iterator& __x, const _Node_iterator& __y) noexcept 2935449: { 2935449: const __base_type& __bx = __x; 2935449: const __base_type& __by = __y; 2935449: return __bx == __by; 2935449: } 2935449: 2935449: friend bool 2935449: operator!=(const _Node_iterator& __x, const _Node_iterator& __y) noexcept 2935449: { return !(__x == __y); } 2935449: 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Node_const_iterator 2935449: : public _Node_iterator_base<_Value, __cache> 2935449: { 2935449: private: 2935449: using __base_type = _Node_iterator_base<_Value, __cache>; 2935449: using __node_type = typename __base_type::__node_type; 2935449: 2935449: 2935449: using __iterator 2935449: = _Node_iterator<_Value, __constant_iterators, __cache>; 2935449: 2935449: public: 2935449: using value_type = _Value; 2935449: using difference_type = ptrdiff_t; 2935449: using iterator_category = forward_iterator_tag; 2935449: 2935449: using pointer = const value_type*; 2935449: using reference = const value_type&; 2935449: 2935449: _Node_const_iterator() = default; 2935449: 2935449: explicit 2935449: _Node_const_iterator(__node_type* __p) noexcept 2935449: : __base_type(__p) { } 2935449: 2935449: _Node_const_iterator(const __iterator& __x) noexcept 2935449: : __base_type(__x._M_cur) { } 2935449: 2935449: reference 2935449: operator*() const noexcept 2935449: { return this->_M_cur->_M_v(); } 2935449: 2935449: pointer 2935449: operator->() const noexcept 2935449: { return this->_M_cur->_M_valptr(); } 2935449: 2935449: _Node_const_iterator& 2935449: operator++() noexcept 2935449: { 2935449: this->_M_incr(); 2935449: return *this; 2935449: } 2935449: 2935449: _Node_const_iterator 2935449: operator++(int) noexcept 2935449: { 2935449: _Node_const_iterator __tmp(*this); 2935449: this->_M_incr(); 2935449: return __tmp; 2935449: } 2935449: # 531 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable_policy.h" 3 2935449: friend bool 2935449: operator==(const _Node_const_iterator& __x, 2935449: const _Node_const_iterator& __y) noexcept 2935449: { 2935449: const __base_type& __bx = __x; 2935449: const __base_type& __by = __y; 2935449: return __bx == __by; 2935449: } 2935449: 2935449: friend bool 2935449: operator!=(const _Node_const_iterator& __x, 2935449: const _Node_const_iterator& __y) noexcept 2935449: { return !(__x == __y); } 2935449: 2935449: friend bool 2935449: operator==(const _Node_const_iterator& __x, 2935449: const __iterator& __y) noexcept 2935449: { 2935449: const __base_type& __bx = __x; 2935449: const __base_type& __by = __y; 2935449: return __bx == __by; 2935449: } 2935449: 2935449: friend bool 2935449: operator!=(const _Node_const_iterator& __x, 2935449: const __iterator& __y) noexcept 2935449: { return !(__x == __y); } 2935449: 2935449: friend bool 2935449: operator==(const __iterator& __x, 2935449: const _Node_const_iterator& __y) noexcept 2935449: { 2935449: const __base_type& __bx = __x; 2935449: const __base_type& __by = __y; 2935449: return __bx == __by; 2935449: } 2935449: 2935449: friend bool 2935449: operator!=(const __iterator& __x, 2935449: const _Node_const_iterator& __y) noexcept 2935449: { return !(__x == __y); } 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct _Mod_range_hashing 2935449: { 2935449: size_t 2935449: operator()(size_t __num, size_t __den) const noexcept 2935449: { return __num % __den; } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct _Default_ranged_hash { }; 2935449: 2935449: 2935449: 2935449: struct _Prime_rehash_policy 2935449: { 2935449: using __has_load_factor = true_type; 2935449: 2935449: _Prime_rehash_policy(float __z = 1.0) noexcept 2935449: : _M_max_load_factor(__z), _M_next_resize(0) { } 2935449: 2935449: float 2935449: max_load_factor() const noexcept 2935449: { return _M_max_load_factor; } 2935449: 2935449: 2935449: 2935449: size_t 2935449: _M_next_bkt(size_t __n) const; 2935449: 2935449: 2935449: size_t 2935449: _M_bkt_for_elements(size_t __n) const 2935449: { return __builtin_ceil(__n / (double)_M_max_load_factor); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: std::pair 2935449: _M_need_rehash(size_t __n_bkt, size_t __n_elt, 2935449: size_t __n_ins) const; 2935449: 2935449: using _State = size_t; 2935449: 2935449: _State 2935449: _M_state() const 2935449: { return _M_next_resize; } 2935449: 2935449: void 2935449: _M_reset() noexcept 2935449: { _M_next_resize = 0; } 2935449: 2935449: void 2935449: _M_reset(_State __state) 2935449: { _M_next_resize = __state; } 2935449: 2935449: static const size_t _S_growth_factor = 2; 2935449: 2935449: float _M_max_load_factor; 2935449: 2935449: 2935449: mutable size_t _M_next_resize; 2935449: }; 2935449: 2935449: 2935449: struct _Mask_range_hashing 2935449: { 2935449: size_t 2935449: operator()(size_t __num, size_t __den) const noexcept 2935449: { return __num & (__den - 1); } 2935449: }; 2935449: 2935449: 2935449: inline size_t 2935449: __clp2(size_t __n) noexcept 2935449: { 2935449: using __gnu_cxx::__int_traits; 2935449: 2935449: if (__n < 2) 2935449: return __n; 2935449: const unsigned __lz = sizeof(size_t) > sizeof(long) 2935449: ? __builtin_clzll(__n - 1ull) 2935449: : __builtin_clzl(__n - 1ul); 2935449: 2935449: return (size_t(1) << (__int_traits::__digits - __lz - 1)) << 1; 2935449: } 2935449: 2935449: 2935449: 2935449: struct _Power2_rehash_policy 2935449: { 2935449: using __has_load_factor = true_type; 2935449: 2935449: _Power2_rehash_policy(float __z = 1.0) noexcept 2935449: : _M_max_load_factor(__z), _M_next_resize(0) { } 2935449: 2935449: float 2935449: max_load_factor() const noexcept 2935449: { return _M_max_load_factor; } 2935449: 2935449: 2935449: 2935449: size_t 2935449: _M_next_bkt(size_t __n) noexcept 2935449: { 2935449: if (__n == 0) 2935449: 2935449: 2935449: 2935449: return 1; 2935449: 2935449: const auto __max_width = std::min(sizeof(size_t), 8); 2935449: const auto __max_bkt = size_t(1) << (__max_width * 8 - 1); 2935449: size_t __res = __clp2(__n); 2935449: 2935449: if (__res == 0) 2935449: __res = __max_bkt; 2935449: else if (__res == 1) 2935449: 2935449: 2935449: 2935449: __res = 2; 2935449: 2935449: if (__res == __max_bkt) 2935449: 2935449: 2935449: 2935449: _M_next_resize = size_t(-1); 2935449: else 2935449: _M_next_resize 2935449: = __builtin_floor(__res * (double)_M_max_load_factor); 2935449: 2935449: return __res; 2935449: } 2935449: 2935449: 2935449: size_t 2935449: _M_bkt_for_elements(size_t __n) const noexcept 2935449: { return __builtin_ceil(__n / (double)_M_max_load_factor); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: std::pair 2935449: _M_need_rehash(size_t __n_bkt, size_t __n_elt, size_t __n_ins) noexcept 2935449: { 2935449: if (__n_elt + __n_ins > _M_next_resize) 2935449: { 2935449: 2935449: 2935449: 2935449: double __min_bkts 2935449: = std::max(__n_elt + __n_ins, _M_next_resize ? 0 : 11) 2935449: / (double)_M_max_load_factor; 2935449: if (__min_bkts >= __n_bkt) 2935449: return { true, 2935449: _M_next_bkt(std::max(__builtin_floor(__min_bkts) + 1, 2935449: __n_bkt * _S_growth_factor)) }; 2935449: 2935449: _M_next_resize 2935449: = __builtin_floor(__n_bkt * (double)_M_max_load_factor); 2935449: return { false, 0 }; 2935449: } 2935449: else 2935449: return { false, 0 }; 2935449: } 2935449: 2935449: using _State = size_t; 2935449: 2935449: _State 2935449: _M_state() const noexcept 2935449: { return _M_next_resize; } 2935449: 2935449: void 2935449: _M_reset() noexcept 2935449: { _M_next_resize = 0; } 2935449: 2935449: void 2935449: _M_reset(_State __state) noexcept 2935449: { _M_next_resize = __state; } 2935449: 2935449: static const size_t _S_growth_factor = 2; 2935449: 2935449: float _M_max_load_factor; 2935449: size_t _M_next_resize; 2935449: }; 2935449: 2935449: template 2935449: struct _RehashStateGuard 2935449: { 2935449: _RehashPolicy* _M_guarded_obj; 2935449: typename _RehashPolicy::_State _M_prev_state; 2935449: 2935449: _RehashStateGuard(_RehashPolicy& __policy) 2935449: : _M_guarded_obj(std::__addressof(__policy)) 2935449: , _M_prev_state(__policy._M_state()) 2935449: { } 2935449: _RehashStateGuard(const _RehashStateGuard&) = delete; 2935449: 2935449: ~_RehashStateGuard() 2935449: { 2935449: if (_M_guarded_obj) 2935449: _M_guarded_obj->_M_reset(_M_prev_state); 2935449: } 2935449: }; 2935449: # 809 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable_policy.h" 3 2935449: template 2935449: struct _Map_base { }; 2935449: 2935449: 2935449: template 2935449: struct _Map_base<_Key, pair, _Alloc, _Select1st, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits, false> 2935449: { 2935449: using mapped_type = _Val; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Map_base<_Key, pair, _Alloc, _Select1st, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits, true> 2935449: { 2935449: private: 2935449: using __hashtable_base = _Hashtable_base<_Key, pair, 2935449: _Select1st, _Equal, _Hash, 2935449: _RangeHash, _Unused, 2935449: _Traits>; 2935449: 2935449: using __hashtable = _Hashtable<_Key, pair, _Alloc, 2935449: _Select1st, _Equal, _Hash, _RangeHash, 2935449: _Unused, _RehashPolicy, _Traits>; 2935449: 2935449: using __hash_code = typename __hashtable_base::__hash_code; 2935449: 2935449: public: 2935449: using key_type = typename __hashtable_base::key_type; 2935449: using mapped_type = _Val; 2935449: 2935449: mapped_type& 2935449: operator[](const key_type& __k); 2935449: 2935449: mapped_type& 2935449: operator[](key_type&& __k); 2935449: 2935449: 2935449: 2935449: mapped_type& 2935449: at(const key_type& __k) 2935449: { 2935449: auto __ite = static_cast<__hashtable*>(this)->find(__k); 2935449: if (!__ite._M_cur) 2935449: __throw_out_of_range(("unordered_map::at")); 2935449: return __ite->second; 2935449: } 2935449: 2935449: const mapped_type& 2935449: at(const key_type& __k) const 2935449: { 2935449: auto __ite = static_cast(this)->find(__k); 2935449: if (!__ite._M_cur) 2935449: __throw_out_of_range(("unordered_map::at")); 2935449: return __ite->second; 2935449: } 2935449: }; 2935449: 2935449: template 2935449: auto 2935449: _Map_base<_Key, pair, _Alloc, _Select1st, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits, true>:: 2935449: operator[](const key_type& __k) 2935449: -> mapped_type& 2935449: { 2935449: __hashtable* __h = static_cast<__hashtable*>(this); 2935449: __hash_code __code = __h->_M_hash_code(__k); 2935449: size_t __bkt = __h->_M_bucket_index(__code); 2935449: if (auto __node = __h->_M_find_node(__bkt, __k, __code)) 2935449: return __node->_M_v().second; 2935449: 2935449: typename __hashtable::_Scoped_node __node { 2935449: __h, 2935449: std::piecewise_construct, 2935449: std::tuple(__k), 2935449: std::tuple<>() 2935449: }; 2935449: auto __pos 2935449: = __h->_M_insert_unique_node(__bkt, __code, __node._M_node); 2935449: __node._M_node = nullptr; 2935449: return __pos->second; 2935449: } 2935449: 2935449: template 2935449: auto 2935449: _Map_base<_Key, pair, _Alloc, _Select1st, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits, true>:: 2935449: operator[](key_type&& __k) 2935449: -> mapped_type& 2935449: { 2935449: __hashtable* __h = static_cast<__hashtable*>(this); 2935449: __hash_code __code = __h->_M_hash_code(__k); 2935449: size_t __bkt = __h->_M_bucket_index(__code); 2935449: if (auto __node = __h->_M_find_node(__bkt, __k, __code)) 2935449: return __node->_M_v().second; 2935449: 2935449: typename __hashtable::_Scoped_node __node { 2935449: __h, 2935449: std::piecewise_construct, 2935449: std::forward_as_tuple(std::move(__k)), 2935449: std::tuple<>() 2935449: }; 2935449: auto __pos 2935449: = __h->_M_insert_unique_node(__bkt, __code, __node._M_node); 2935449: __node._M_node = nullptr; 2935449: return __pos->second; 2935449: } 2935449: 2935449: 2935449: template 2935449: struct _Map_base, 2935449: _Alloc, _Select1st, _Equal, _Hash, 2935449: _RangeHash, _Unused, _RehashPolicy, _Traits, __uniq> 2935449: : _Map_base<_Key, pair, _Alloc, _Select1st, _Equal, _Hash, 2935449: _RangeHash, _Unused, _RehashPolicy, _Traits, __uniq> 2935449: { }; 2935449: 2935449: template 2935449: using __has_load_factor = typename _Policy::__has_load_factor; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template> 2935449: struct _Rehash_base; 2935449: 2935449: 2935449: template 2935449: struct _Rehash_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits, 2935449: false_type > 2935449: { 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Rehash_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits, 2935449: true_type > 2935449: { 2935449: private: 2935449: using __hashtable = _Hashtable<_Key, _Value, _Alloc, _ExtractKey, 2935449: _Equal, _Hash, _RangeHash, _Unused, 2935449: _RehashPolicy, _Traits>; 2935449: 2935449: public: 2935449: float 2935449: max_load_factor() const noexcept 2935449: { 2935449: const __hashtable* __this = static_cast(this); 2935449: return __this->__rehash_policy().max_load_factor(); 2935449: } 2935449: 2935449: void 2935449: max_load_factor(float __z) 2935449: { 2935449: __hashtable* __this = static_cast<__hashtable*>(this); 2935449: __this->__rehash_policy(_RehashPolicy(__z)); 2935449: } 2935449: 2935449: void 2935449: reserve(size_t __n) 2935449: { 2935449: __hashtable* __this = static_cast<__hashtable*>(this); 2935449: __this->rehash(__this->__rehash_policy()._M_bkt_for_elements(__n)); 2935449: } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Hashtable_ebo_helper 2935449: { 2935449: [[__no_unique_address__]] _Tp _M_obj; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Hashtable_ebo_helper<_Tp, false> 2935449: { 2935449: _Tp _M_obj; 2935449: }; 2935449: # 1034 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable_policy.h" 3 2935449: template 2935449: struct _Local_iterator_base; 2935449: 2935449: 2935449: template 2935449: struct _Hash_code_base 2935449: { 2935449: 2935449: friend struct _Local_iterator_base<_Key, _Value, _ExtractKey, 2935449: _Hash, _RangeHash, _Unused, false>; 2935449: public: 2935449: using hasher = _Hash; 2935449: 2935449: hasher 2935449: hash_function() const 2935449: { return _M_hash._M_obj; } 2935449: 2935449: protected: 2935449: [[__no_unique_address__]] _Hashtable_ebo_helper<_Hash> _M_hash{}; 2935449: 2935449: using __hash_code = size_t; 2935449: 2935449: 2935449: 2935449: _Hash_code_base() = default; 2935449: 2935449: _Hash_code_base(const _Hash& __hash) : _M_hash{__hash} { } 2935449: 2935449: __hash_code 2935449: _M_hash_code(const _Key& __k) const 2935449: { 2935449: static_assert(__is_invocable{}, 2935449: "hash function must be invocable with an argument of key type"); 2935449: return _M_hash._M_obj(__k); 2935449: } 2935449: 2935449: template 2935449: __hash_code 2935449: _M_hash_code_tr(const _Kt& __k) const 2935449: { 2935449: static_assert(__is_invocable{}, 2935449: "hash function must be invocable with an argument of key type"); 2935449: return _M_hash._M_obj(__k); 2935449: } 2935449: 2935449: __hash_code 2935449: _M_hash_code(const _Hash_node_value<_Value, false>& __n) const 2935449: { return _M_hash_code(_ExtractKey{}(__n._M_v())); } 2935449: 2935449: __hash_code 2935449: _M_hash_code(const _Hash_node_value<_Value, true>& __n) const 2935449: { return __n._M_hash_code; } 2935449: 2935449: size_t 2935449: _M_bucket_index(__hash_code __c, size_t __bkt_count) const 2935449: { return _RangeHash{}(__c, __bkt_count); } 2935449: 2935449: size_t 2935449: _M_bucket_index(const _Hash_node_value<_Value, false>& __n, 2935449: size_t __bkt_count) const 2935449: noexcept( noexcept(declval()(declval())) ) 2935449: { 2935449: return _RangeHash{}(_M_hash_code(_ExtractKey{}(__n._M_v())), 2935449: __bkt_count); 2935449: } 2935449: 2935449: size_t 2935449: _M_bucket_index(const _Hash_node_value<_Value, true>& __n, 2935449: size_t __bkt_count) const noexcept 2935449: { return _RangeHash{}(__n._M_hash_code, __bkt_count); } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Local_iterator_base<_Key, _Value, _ExtractKey, 2935449: _Hash, _RangeHash, _Unused, true> 2935449: : public _Node_iterator_base<_Value, true> 2935449: { 2935449: protected: 2935449: using __base_node_iter = _Node_iterator_base<_Value, true>; 2935449: using __hash_code_base = _Hash_code_base<_Key, _Value, _ExtractKey, 2935449: _Hash, _RangeHash, _Unused, true>; 2935449: 2935449: _Local_iterator_base() = default; 2935449: 2935449: _Local_iterator_base(const __hash_code_base&, 2935449: _Hash_node<_Value, true>* __p, 2935449: size_t __bkt, size_t __bkt_count) 2935449: : __base_node_iter(__p), _M_bucket(__bkt), _M_bucket_count(__bkt_count) 2935449: { } 2935449: 2935449: void 2935449: _M_incr() 2935449: { 2935449: __base_node_iter::_M_incr(); 2935449: if (this->_M_cur) 2935449: { 2935449: size_t __bkt 2935449: = _RangeHash{}(this->_M_cur->_M_hash_code, _M_bucket_count); 2935449: if (__bkt != _M_bucket) 2935449: this->_M_cur = nullptr; 2935449: } 2935449: } 2935449: 2935449: size_t _M_bucket = 0; 2935449: size_t _M_bucket_count = 0; 2935449: 2935449: public: 2935449: size_t 2935449: _M_get_bucket() const { return _M_bucket; } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Hash_obj_storage 2935449: { 2935449: union _Uninit_storage 2935449: { 2935449: _Uninit_storage() noexcept { } 2935449: ~_Uninit_storage() { } 2935449: 2935449: [[__no_unique_address__]] _Hash _M_h; 2935449: }; 2935449: 2935449: [[__no_unique_address__]] _Uninit_storage _M_u; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Local_iterator_base<_Key, _Value, _ExtractKey, 2935449: _Hash, _RangeHash, _Unused, false> 2935449: : _Hash_obj_storage<_Hash>, _Node_iterator_base<_Value, false> 2935449: { 2935449: protected: 2935449: using __hash_code_base = _Hash_code_base<_Key, _Value, _ExtractKey, 2935449: _Hash, _RangeHash, _Unused, false>; 2935449: using __hash_obj_storage = _Hash_obj_storage<_Hash>; 2935449: using __node_iter_base = _Node_iterator_base<_Value, false>; 2935449: 2935449: _Local_iterator_base() = default; 2935449: 2935449: _Local_iterator_base(const __hash_code_base& __base, 2935449: _Hash_node<_Value, false>* __p, 2935449: size_t __bkt, size_t __bkt_count) 2935449: : __node_iter_base(__p), _M_bucket(__bkt), _M_bucket_count(__bkt_count) 2935449: { _M_init(__base._M_hash._M_obj); } 2935449: 2935449: ~_Local_iterator_base() 2935449: { 2935449: if (_M_bucket_count != size_t(-1)) 2935449: _M_destroy(); 2935449: } 2935449: 2935449: _Local_iterator_base(const _Local_iterator_base& __iter) 2935449: : __node_iter_base(__iter._M_cur), _M_bucket(__iter._M_bucket) 2935449: , _M_bucket_count(__iter._M_bucket_count) 2935449: { 2935449: if (_M_bucket_count != size_t(-1)) 2935449: _M_init(__iter._M_h()); 2935449: } 2935449: 2935449: _Local_iterator_base& 2935449: operator=(const _Local_iterator_base& __iter) 2935449: { 2935449: if (_M_bucket_count != size_t(-1)) 2935449: _M_destroy(); 2935449: this->_M_cur = __iter._M_cur; 2935449: _M_bucket = __iter._M_bucket; 2935449: _M_bucket_count = __iter._M_bucket_count; 2935449: if (_M_bucket_count != size_t(-1)) 2935449: _M_init(__iter._M_h()); 2935449: return *this; 2935449: } 2935449: 2935449: void 2935449: _M_incr() 2935449: { 2935449: __node_iter_base::_M_incr(); 2935449: if (this->_M_cur) 2935449: { 2935449: const auto __code = _M_h()(_ExtractKey{}(this->_M_cur->_M_v())); 2935449: size_t __bkt = _RangeHash{}(__code, _M_bucket_count); 2935449: if (__bkt != _M_bucket) 2935449: this->_M_cur = nullptr; 2935449: } 2935449: } 2935449: 2935449: size_t _M_bucket = 0; 2935449: size_t _M_bucket_count = -1; 2935449: 2935449: void 2935449: _M_init(const _Hash& __h) 2935449: { std::_Construct(std::__addressof(__hash_obj_storage::_M_u._M_h), __h); } 2935449: 2935449: void 2935449: _M_destroy() { __hash_obj_storage::_M_u._M_h.~_Hash(); } 2935449: 2935449: const _Hash& 2935449: _M_h() const { return __hash_obj_storage::_M_u._M_h; } 2935449: 2935449: public: 2935449: size_t 2935449: _M_get_bucket() const { return _M_bucket; } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Local_iterator 2935449: : public _Local_iterator_base<_Key, _Value, _ExtractKey, 2935449: _Hash, _RangeHash, _Unused, __cache> 2935449: { 2935449: private: 2935449: using __base_type = _Local_iterator_base<_Key, _Value, _ExtractKey, 2935449: _Hash, _RangeHash, _Unused, __cache>; 2935449: using __hash_code_base = typename __base_type::__hash_code_base; 2935449: 2935449: public: 2935449: using value_type = _Value; 2935449: using pointer = __conditional_t<__constant_iterators, 2935449: const value_type*, value_type*>; 2935449: using reference = __conditional_t<__constant_iterators, 2935449: const value_type&, value_type&>; 2935449: using difference_type = ptrdiff_t; 2935449: using iterator_category = forward_iterator_tag; 2935449: 2935449: _Local_iterator() = default; 2935449: 2935449: _Local_iterator(const __hash_code_base& __base, 2935449: _Hash_node<_Value, __cache>* __n, 2935449: size_t __bkt, size_t __bkt_count) 2935449: : __base_type(__base, __n, __bkt, __bkt_count) 2935449: { } 2935449: 2935449: reference 2935449: operator*() const 2935449: { return this->_M_cur->_M_v(); } 2935449: 2935449: pointer 2935449: operator->() const 2935449: { return this->_M_cur->_M_valptr(); } 2935449: 2935449: _Local_iterator& 2935449: operator++() 2935449: { 2935449: this->_M_incr(); 2935449: return *this; 2935449: } 2935449: 2935449: _Local_iterator 2935449: operator++(int) 2935449: { 2935449: _Local_iterator __tmp(*this); 2935449: this->_M_incr(); 2935449: return __tmp; 2935449: } 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct _Local_const_iterator 2935449: : public _Local_iterator_base<_Key, _Value, _ExtractKey, 2935449: _Hash, _RangeHash, _Unused, __cache> 2935449: { 2935449: private: 2935449: using __base_type = _Local_iterator_base<_Key, _Value, _ExtractKey, 2935449: _Hash, _RangeHash, _Unused, __cache>; 2935449: using __hash_code_base = typename __base_type::__hash_code_base; 2935449: 2935449: public: 2935449: using value_type = _Value; 2935449: using pointer = const value_type*; 2935449: using reference = const value_type&; 2935449: using difference_type = ptrdiff_t; 2935449: using iterator_category = forward_iterator_tag; 2935449: 2935449: _Local_const_iterator() = default; 2935449: 2935449: _Local_const_iterator(const __hash_code_base& __base, 2935449: _Hash_node<_Value, __cache>* __n, 2935449: size_t __bkt, size_t __bkt_count) 2935449: : __base_type(__base, __n, __bkt, __bkt_count) 2935449: { } 2935449: 2935449: _Local_const_iterator(const _Local_iterator<_Key, _Value, _ExtractKey, 2935449: _Hash, _RangeHash, _Unused, 2935449: __constant_iterators, 2935449: __cache>& __x) 2935449: : __base_type(__x) 2935449: { } 2935449: 2935449: reference 2935449: operator*() const 2935449: { return this->_M_cur->_M_v(); } 2935449: 2935449: pointer 2935449: operator->() const 2935449: { return this->_M_cur->_M_valptr(); } 2935449: 2935449: _Local_const_iterator& 2935449: operator++() 2935449: { 2935449: this->_M_incr(); 2935449: return *this; 2935449: } 2935449: 2935449: _Local_const_iterator 2935449: operator++(int) 2935449: { 2935449: _Local_const_iterator __tmp(*this); 2935449: this->_M_incr(); 2935449: return __tmp; 2935449: } 2935449: }; 2935449: # 1369 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable_policy.h" 3 2935449: template 2935449: struct _Hashtable_base 2935449: : public _Hash_code_base<_Key, _Value, _ExtractKey, _Hash, _RangeHash, 2935449: _Unused, _Traits::__hash_cached::value> 2935449: { 2935449: public: 2935449: using key_type = _Key; 2935449: using value_type = _Value; 2935449: using key_equal = _Equal; 2935449: using size_type = size_t; 2935449: using difference_type = ptrdiff_t; 2935449: 2935449: using __traits_type = _Traits; 2935449: using __hash_cached = typename __traits_type::__hash_cached; 2935449: 2935449: using __hash_code_base = _Hash_code_base<_Key, _Value, _ExtractKey, 2935449: _Hash, _RangeHash, _Unused, 2935449: __hash_cached::value>; 2935449: 2935449: using __hash_code = typename __hash_code_base::__hash_code; 2935449: 2935449: protected: 2935449: [[__no_unique_address__]] _Hashtable_ebo_helper<_Equal> _M_equal{}; 2935449: 2935449: _Hashtable_base() = default; 2935449: 2935449: _Hashtable_base(const _Hash& __hash, const _Equal& __eq) 2935449: : __hash_code_base(__hash), _M_equal{__eq} 2935449: { } 2935449: 2935449: bool 2935449: _M_key_equals(const _Key& __k, 2935449: const _Hash_node_value<_Value, 2935449: __hash_cached::value>& __n) const 2935449: { 2935449: static_assert(__is_invocable{}, 2935449: "key equality predicate must be invocable with two arguments of " 2935449: "key type"); 2935449: return _M_eq()(__k, _ExtractKey{}(__n._M_v())); 2935449: } 2935449: 2935449: template 2935449: bool 2935449: _M_key_equals_tr(const _Kt& __k, 2935449: const _Hash_node_value<_Value, 2935449: __hash_cached::value>& __n) const 2935449: { 2935449: static_assert( 2935449: __is_invocable{}, 2935449: "key equality predicate must be invocable with the argument type " 2935449: "and the key type"); 2935449: return _M_eq()(__k, _ExtractKey{}(__n._M_v())); 2935449: } 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: bool 2935449: _M_equals(const _Key& __k, __hash_code __c, 2935449: const _Hash_node_value<_Value, __hash_cached::value>& __n) const 2935449: { 2935449: if constexpr (__hash_cached::value) 2935449: if (__c != __n._M_hash_code) 2935449: return false; 2935449: 2935449: return _M_key_equals(__k, __n); 2935449: } 2935449: 2935449: template 2935449: bool 2935449: _M_equals_tr(const _Kt& __k, __hash_code __c, 2935449: const _Hash_node_value<_Value, 2935449: __hash_cached::value>& __n) const 2935449: { 2935449: if constexpr (__hash_cached::value) 2935449: if (__c != __n._M_hash_code) 2935449: return false; 2935449: 2935449: return _M_key_equals_tr(__k, __n); 2935449: } 2935449: 2935449: bool 2935449: _M_node_equals( 2935449: const _Hash_node_value<_Value, __hash_cached::value>& __lhn, 2935449: const _Hash_node_value<_Value, __hash_cached::value>& __rhn) const 2935449: { 2935449: if constexpr (__hash_cached::value) 2935449: if (__lhn._M_hash_code != __rhn._M_hash_code) 2935449: return false; 2935449: 2935449: return _M_key_equals(_ExtractKey{}(__lhn._M_v()), __rhn); 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: const _Equal& 2935449: _M_eq() const noexcept { return _M_equal._M_obj; } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Hashtable_alloc 2935449: { 2935449: private: 2935449: [[__no_unique_address__]] _Hashtable_ebo_helper<_NodeAlloc> _M_alloc{}; 2935449: 2935449: template 2935449: struct __get_value_type; 2935449: template 2935449: struct __get_value_type<_Hash_node<_Val, _Cache_hash_code>> 2935449: { using type = _Val; }; 2935449: 2935449: public: 2935449: using __node_type = typename _NodeAlloc::value_type; 2935449: using __node_alloc_type = _NodeAlloc; 2935449: 2935449: using __node_alloc_traits = __gnu_cxx::__alloc_traits<__node_alloc_type>; 2935449: 2935449: using __value_alloc_traits = typename __node_alloc_traits::template 2935449: rebind_traits::type>; 2935449: 2935449: using __node_ptr = __node_type*; 2935449: using __node_base = _Hash_node_base; 2935449: using __node_base_ptr = __node_base*; 2935449: using __buckets_alloc_type = 2935449: __alloc_rebind<__node_alloc_type, __node_base_ptr>; 2935449: using __buckets_alloc_traits = std::allocator_traits<__buckets_alloc_type>; 2935449: using __buckets_ptr = __node_base_ptr*; 2935449: 2935449: _Hashtable_alloc() = default; 2935449: _Hashtable_alloc(const _Hashtable_alloc&) = default; 2935449: _Hashtable_alloc(_Hashtable_alloc&&) = default; 2935449: 2935449: template 2935449: _Hashtable_alloc(_Alloc&& __a) 2935449: : _M_alloc{std::forward<_Alloc>(__a)} 2935449: { } 2935449: 2935449: __node_alloc_type& 2935449: _M_node_allocator() 2935449: { return _M_alloc._M_obj; } 2935449: 2935449: const __node_alloc_type& 2935449: _M_node_allocator() const 2935449: { return _M_alloc._M_obj; } 2935449: 2935449: 2935449: template 2935449: __node_ptr 2935449: _M_allocate_node(_Args&&... __args); 2935449: 2935449: 2935449: void 2935449: _M_deallocate_node(__node_ptr __n); 2935449: 2935449: 2935449: void 2935449: _M_deallocate_node_ptr(__node_ptr __n); 2935449: 2935449: 2935449: 2935449: void 2935449: _M_deallocate_nodes(__node_ptr __n); 2935449: 2935449: __buckets_ptr 2935449: _M_allocate_buckets(size_t __bkt_count); 2935449: 2935449: void 2935449: _M_deallocate_buckets(__buckets_ptr, size_t __bkt_count); 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: template 2935449: auto 2935449: _Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&... __args) 2935449: -> __node_ptr 2935449: { 2935449: auto& __alloc = _M_node_allocator(); 2935449: auto __nptr = __node_alloc_traits::allocate(__alloc, 1); 2935449: __node_ptr __n = std::__to_address(__nptr); 2935449: if (true) 2935449: { 2935449: ::new ((void*)__n) __node_type; 2935449: __node_alloc_traits::construct(__alloc, __n->_M_valptr(), 2935449: std::forward<_Args>(__args)...); 2935449: return __n; 2935449: } 2935449: if (false) 2935449: { 2935449: __n->~__node_type(); 2935449: __node_alloc_traits::deallocate(__alloc, __nptr, 1); 2935449: ; 2935449: } 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_ptr __n) 2935449: { 2935449: __node_alloc_traits::destroy(_M_node_allocator(), __n->_M_valptr()); 2935449: _M_deallocate_node_ptr(__n); 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Hashtable_alloc<_NodeAlloc>::_M_deallocate_node_ptr(__node_ptr __n) 2935449: { 2935449: using _Ptr = typename __node_alloc_traits::pointer; 2935449: auto __ptr = std::pointer_traits<_Ptr>::pointer_to(*__n); 2935449: __n->~__node_type(); 2935449: __node_alloc_traits::deallocate(_M_node_allocator(), __ptr, 1); 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Hashtable_alloc<_NodeAlloc>::_M_deallocate_nodes(__node_ptr __n) 2935449: { 2935449: while (__n) 2935449: { 2935449: __node_ptr __tmp = __n; 2935449: __n = __n->_M_next(); 2935449: _M_deallocate_node(__tmp); 2935449: } 2935449: } 2935449: 2935449: template 2935449: auto 2935449: _Hashtable_alloc<_NodeAlloc>::_M_allocate_buckets(size_t __bkt_count) 2935449: -> __buckets_ptr 2935449: { 2935449: __buckets_alloc_type __alloc(_M_node_allocator()); 2935449: 2935449: auto __ptr = __buckets_alloc_traits::allocate(__alloc, __bkt_count); 2935449: __buckets_ptr __p = std::__to_address(__ptr); 2935449: __builtin_memset(__p, 0, __bkt_count * sizeof(__node_base_ptr)); 2935449: return __p; 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Hashtable_alloc<_NodeAlloc>:: 2935449: _M_deallocate_buckets(__buckets_ptr __bkts, size_t __bkt_count) 2935449: { 2935449: using _Ptr = typename __buckets_alloc_traits::pointer; 2935449: auto __ptr = std::pointer_traits<_Ptr>::pointer_to(*__bkts); 2935449: __buckets_alloc_type __alloc(_M_node_allocator()); 2935449: __buckets_alloc_traits::deallocate(__alloc, __ptr, __bkt_count); 2935449: } 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: } 2935449: # 38 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/enable_special_members.h" 1 3 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/bits/enable_special_members.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: struct _Enable_default_constructor_tag 2935449: { 2935449: explicit constexpr _Enable_default_constructor_tag() = default; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Enable_default_constructor 2935449: { 2935449: constexpr _Enable_default_constructor() noexcept = default; 2935449: constexpr _Enable_default_constructor(_Enable_default_constructor const&) 2935449: noexcept = default; 2935449: constexpr _Enable_default_constructor(_Enable_default_constructor&&) 2935449: noexcept = default; 2935449: _Enable_default_constructor& 2935449: operator=(_Enable_default_constructor const&) noexcept = default; 2935449: _Enable_default_constructor& 2935449: operator=(_Enable_default_constructor&&) noexcept = default; 2935449: 2935449: 2935449: constexpr explicit 2935449: _Enable_default_constructor(_Enable_default_constructor_tag) { } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Enable_destructor { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Enable_copy_move { }; 2935449: # 98 "/usr/arm-linux-gnueabi/include/c++/15/bits/enable_special_members.h" 3 2935449: template 2935449: struct _Enable_special_members 2935449: : private _Enable_default_constructor<_Default, _Tag>, 2935449: private _Enable_destructor<_Destructor, _Tag>, 2935449: private _Enable_copy_move<_Copy, _CopyAssignment, 2935449: _Move, _MoveAssignment, 2935449: _Tag> 2935449: { }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct _Enable_default_constructor 2935449: { 2935449: constexpr _Enable_default_constructor() noexcept = delete; 2935449: constexpr _Enable_default_constructor(_Enable_default_constructor const&) 2935449: noexcept = default; 2935449: constexpr _Enable_default_constructor(_Enable_default_constructor&&) 2935449: noexcept = default; 2935449: _Enable_default_constructor& 2935449: operator=(_Enable_default_constructor const&) noexcept = default; 2935449: _Enable_default_constructor& 2935449: operator=(_Enable_default_constructor&&) noexcept = default; 2935449: 2935449: 2935449: constexpr explicit 2935449: _Enable_default_constructor(_Enable_default_constructor_tag) { } 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_destructor 2935449: { ~_Enable_destructor() noexcept = delete; }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = default; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = default; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = default; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = default; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = default; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = default; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = default; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = delete; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = delete; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = delete; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = delete; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = delete; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = default; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = delete; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = delete; 2935449: }; 2935449: 2935449: template 2935449: struct _Enable_copy_move 2935449: { 2935449: constexpr _Enable_copy_move() noexcept = default; 2935449: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 2935449: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move const&) noexcept = delete; 2935449: _Enable_copy_move& 2935449: operator=(_Enable_copy_move&&) noexcept = delete; 2935449: }; 2935449: 2935449: 2935449: 2935449: } 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++11-extensions" 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: template 2935449: using __cache_default 2935449: = __not_<__and_< 2935449: __is_fast_hash<_Hash>, 2935449: 2935449: __is_nothrow_invocable>>; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: using _Hashtable_enable_default_ctor 2935449: = _Enable_default_constructor<__and_, 2935449: is_default_constructible<_Hash>, 2935449: is_default_constructible<_Allocator>>{}, 2935449: __detail::_Hash_node_base>; 2935449: # 185 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable.h" 3 2935449: template 2935449: class _Hashtable 2935449: : public __detail::_Hashtable_base<_Key, _Value, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _Traits>, 2935449: public __detail::_Map_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, 2935449: _RehashPolicy, _Traits>, 2935449: public __detail::_Rehash_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, 2935449: _RehashPolicy, _Traits>, 2935449: private __detail::_Hashtable_alloc< 2935449: __alloc_rebind<_Alloc, 2935449: __detail::_Hash_node<_Value, 2935449: _Traits::__hash_cached::value>>>, 2935449: private _Hashtable_enable_default_ctor<_Equal, _Hash, _Alloc> 2935449: { 2935449: static_assert(is_same::type, _Value>::value, 2935449: "unordered container must have a non-const, non-volatile value_type"); 2935449: 2935449: static_assert(is_same{}, 2935449: "unordered container must have the same value_type as its allocator"); 2935449: 2935449: static_assert(is_copy_constructible<_Hash>::value, 2935449: "hash function must be copy constructible"); 2935449: 2935449: using __traits_type = _Traits; 2935449: using __hash_cached = typename __traits_type::__hash_cached; 2935449: using __constant_iterators = typename __traits_type::__constant_iterators; 2935449: using __node_type = __detail::_Hash_node<_Value, __hash_cached::value>; 2935449: using __node_alloc_type = __alloc_rebind<_Alloc, __node_type>; 2935449: 2935449: using __hashtable_alloc = __detail::_Hashtable_alloc<__node_alloc_type>; 2935449: 2935449: using __node_value_type = 2935449: __detail::_Hash_node_value<_Value, __hash_cached::value>; 2935449: using __node_ptr = typename __hashtable_alloc::__node_ptr; 2935449: using __value_alloc_traits = 2935449: typename __hashtable_alloc::__value_alloc_traits; 2935449: using __node_alloc_traits = 2935449: typename __hashtable_alloc::__node_alloc_traits; 2935449: using __node_base = typename __hashtable_alloc::__node_base; 2935449: using __node_base_ptr = typename __hashtable_alloc::__node_base_ptr; 2935449: using __buckets_ptr = typename __hashtable_alloc::__buckets_ptr; 2935449: 2935449: using __enable_default_ctor 2935449: = _Hashtable_enable_default_ctor<_Equal, _Hash, _Alloc>; 2935449: using __rehash_guard_t 2935449: = __detail::_RehashStateGuard<_RehashPolicy>; 2935449: 2935449: public: 2935449: typedef _Key key_type; 2935449: typedef _Value value_type; 2935449: typedef _Alloc allocator_type; 2935449: typedef _Equal key_equal; 2935449: 2935449: 2935449: 2935449: typedef typename __value_alloc_traits::pointer pointer; 2935449: typedef typename __value_alloc_traits::const_pointer const_pointer; 2935449: typedef value_type& reference; 2935449: typedef const value_type& const_reference; 2935449: 2935449: using iterator 2935449: = __detail::_Node_iterator<_Value, __constant_iterators::value, 2935449: __hash_cached::value>; 2935449: 2935449: using const_iterator 2935449: = __detail::_Node_const_iterator<_Value, __constant_iterators::value, 2935449: __hash_cached::value>; 2935449: 2935449: using local_iterator = __detail::_Local_iterator; 2935449: 2935449: using const_local_iterator = __detail::_Local_const_iterator< 2935449: key_type, _Value, 2935449: _ExtractKey, _Hash, _RangeHash, _Unused, 2935449: __constant_iterators::value, __hash_cached::value>; 2935449: 2935449: private: 2935449: using __rehash_type = _RehashPolicy; 2935449: 2935449: using __unique_keys = typename __traits_type::__unique_keys; 2935449: 2935449: using __hashtable_base = __detail:: 2935449: _Hashtable_base<_Key, _Value, _ExtractKey, 2935449: _Equal, _Hash, _RangeHash, _Unused, _Traits>; 2935449: 2935449: using __hash_code_base = typename __hashtable_base::__hash_code_base; 2935449: using __hash_code = typename __hashtable_base::__hash_code; 2935449: using __ireturn_type = __conditional_t<__unique_keys::value, 2935449: std::pair, 2935449: iterator>; 2935449: 2935449: using __map_base = __detail::_Map_base<_Key, _Value, _Alloc, _ExtractKey, 2935449: _Equal, _Hash, _RangeHash, _Unused, 2935449: _RehashPolicy, _Traits>; 2935449: 2935449: using __rehash_base = __detail::_Rehash_base<_Key, _Value, _Alloc, 2935449: _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, 2935449: _RehashPolicy, _Traits>; 2935449: 2935449: using __node_builder_t = __detail::_NodeBuilder<_ExtractKey>; 2935449: 2935449: 2935449: struct _Scoped_node 2935449: { 2935449: 2935449: _Scoped_node(__node_ptr __n, __hashtable_alloc* __h) 2935449: : _M_h(__h), _M_node(__n) { } 2935449: 2935449: 2935449: template 2935449: _Scoped_node(__hashtable_alloc* __h, _Args&&... __args) 2935449: : _M_h(__h), 2935449: _M_node(__h->_M_allocate_node(std::forward<_Args>(__args)...)) 2935449: { } 2935449: 2935449: 2935449: ~_Scoped_node() { if (_M_node) _M_h->_M_deallocate_node(_M_node); }; 2935449: 2935449: _Scoped_node(const _Scoped_node&) = delete; 2935449: _Scoped_node& operator=(const _Scoped_node&) = delete; 2935449: 2935449: __hashtable_alloc* _M_h; 2935449: __node_ptr _M_node; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct __hash_code_base_access : __hash_code_base 2935449: { using __hash_code_base::_M_bucket_index; }; 2935449: 2935449: 2935449: static_assert(is_nothrow_default_constructible<_RangeHash>::value, 2935449: "Functor used to map hash code to bucket index" 2935449: " must be nothrow default constructible"); 2935449: static_assert(noexcept( 2935449: std::declval()((std::size_t)0, (std::size_t)0)), 2935449: "Functor used to map hash code to bucket index must be" 2935449: " noexcept"); 2935449: 2935449: 2935449: static_assert(is_nothrow_default_constructible<_ExtractKey>::value, 2935449: "_ExtractKey must be nothrow default constructible"); 2935449: static_assert(noexcept( 2935449: std::declval()(std::declval<_Value>())), 2935449: "_ExtractKey functor must be noexcept invocable"); 2935449: 2935449: template 2935449: friend struct __detail::_Map_base; 2935449: 2935449: public: 2935449: using size_type = typename __hashtable_base::size_type; 2935449: using difference_type = typename __hashtable_base::difference_type; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: private: 2935449: __buckets_ptr _M_buckets = &_M_single_bucket; 2935449: size_type _M_bucket_count = 1; 2935449: __node_base _M_before_begin; 2935449: size_type _M_element_count = 0; 2935449: _RehashPolicy _M_rehash_policy; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __node_base_ptr _M_single_bucket = nullptr; 2935449: 2935449: void 2935449: _M_update_bbegin() 2935449: { 2935449: if (auto __begin = _M_begin()) 2935449: _M_buckets[_M_bucket_index(*__begin)] = &_M_before_begin; 2935449: } 2935449: 2935449: void 2935449: _M_update_bbegin(__node_ptr __n) 2935449: { 2935449: _M_before_begin._M_nxt = __n; 2935449: _M_update_bbegin(); 2935449: } 2935449: 2935449: bool 2935449: _M_uses_single_bucket(__buckets_ptr __bkts) const 2935449: { return __builtin_expect(__bkts == &_M_single_bucket, false); } 2935449: 2935449: bool 2935449: _M_uses_single_bucket() const 2935449: { return _M_uses_single_bucket(_M_buckets); } 2935449: 2935449: static constexpr size_t 2935449: __small_size_threshold() noexcept 2935449: { 2935449: return 2935449: __detail::_Hashtable_hash_traits<_Hash>::__small_size_threshold(); 2935449: } 2935449: 2935449: __hashtable_alloc& 2935449: _M_base_alloc() { return *this; } 2935449: 2935449: __buckets_ptr 2935449: _M_allocate_buckets(size_type __bkt_count) 2935449: { 2935449: if (__builtin_expect(__bkt_count == 1, false)) 2935449: { 2935449: _M_single_bucket = nullptr; 2935449: return &_M_single_bucket; 2935449: } 2935449: 2935449: return __hashtable_alloc::_M_allocate_buckets(__bkt_count); 2935449: } 2935449: 2935449: void 2935449: _M_deallocate_buckets(__buckets_ptr __bkts, size_type __bkt_count) 2935449: { 2935449: if (_M_uses_single_bucket(__bkts)) 2935449: return; 2935449: 2935449: __hashtable_alloc::_M_deallocate_buckets(__bkts, __bkt_count); 2935449: } 2935449: 2935449: void 2935449: _M_deallocate_buckets() 2935449: { _M_deallocate_buckets(_M_buckets, _M_bucket_count); } 2935449: 2935449: 2935449: 2935449: __node_ptr 2935449: _M_bucket_begin(size_type __bkt) const 2935449: { 2935449: __node_base_ptr __n = _M_buckets[__bkt]; 2935449: return __n ? static_cast<__node_ptr>(__n->_M_nxt) : nullptr; 2935449: } 2935449: 2935449: __node_ptr 2935449: _M_begin() const 2935449: { return static_cast<__node_ptr>(_M_before_begin._M_nxt); } 2935449: 2935449: 2935449: 2935449: template 2935449: void 2935449: _M_assign_elements(_Ht&&); 2935449: 2935449: template 2935449: void 2935449: _M_assign(_Ht&& __ht) 2935449: { 2935449: __detail::_AllocNode<__node_alloc_type> __alloc_node_gen(*this); 2935449: _M_assign(std::forward<_Ht>(__ht), __alloc_node_gen); 2935449: } 2935449: 2935449: template 2935449: void 2935449: _M_assign(_Ht&&, _NodeGenerator&); 2935449: 2935449: void 2935449: _M_move_assign(_Hashtable&&, true_type); 2935449: 2935449: void 2935449: _M_move_assign(_Hashtable&&, false_type); 2935449: 2935449: void 2935449: _M_reset() noexcept; 2935449: 2935449: _Hashtable(const _Hash& __h, const _Equal& __eq, 2935449: const allocator_type& __a) 2935449: : __hashtable_base(__h, __eq), 2935449: __hashtable_alloc(__node_alloc_type(__a)), 2935449: __enable_default_ctor(_Enable_default_constructor_tag{}) 2935449: { } 2935449: 2935449: template 2935449: static constexpr bool 2935449: _S_nothrow_move() 2935449: { 2935449: 2935449: return __and_<__bool_constant<_No_realloc>, 2935449: is_nothrow_copy_constructible<_Hash>, 2935449: is_nothrow_copy_constructible<_Equal>>::value; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: _Hashtable(_Hashtable&& __ht, __node_alloc_type&& __a, 2935449: true_type ) 2935449: noexcept(_S_nothrow_move()); 2935449: 2935449: _Hashtable(_Hashtable&&, __node_alloc_type&&, 2935449: false_type ); 2935449: 2935449: template 2935449: _Hashtable(_InputIterator __first, _InputIterator __last, 2935449: size_type __bkt_count_hint, 2935449: const _Hash&, const _Equal&, const allocator_type&, 2935449: true_type __uks); 2935449: 2935449: template 2935449: _Hashtable(_InputIterator __first, _InputIterator __last, 2935449: size_type __bkt_count_hint, 2935449: const _Hash&, const _Equal&, const allocator_type&, 2935449: false_type __uks); 2935449: 2935449: public: 2935449: 2935449: _Hashtable() = default; 2935449: 2935449: _Hashtable(const _Hashtable&); 2935449: 2935449: _Hashtable(const _Hashtable&, const allocator_type&); 2935449: 2935449: explicit 2935449: _Hashtable(size_type __bkt_count_hint, 2935449: const _Hash& __hf = _Hash(), 2935449: const key_equal& __eql = key_equal(), 2935449: const allocator_type& __a = allocator_type()); 2935449: 2935449: 2935449: _Hashtable(_Hashtable&& __ht) 2935449: noexcept(_S_nothrow_move()) 2935449: : _Hashtable(std::move(__ht), std::move(__ht._M_node_allocator()), 2935449: true_type{}) 2935449: { } 2935449: 2935449: _Hashtable(_Hashtable&& __ht, const allocator_type& __a) 2935449: noexcept(_S_nothrow_move<__node_alloc_traits::_S_always_equal()>()) 2935449: : _Hashtable(std::move(__ht), __node_alloc_type(__a), 2935449: typename __node_alloc_traits::is_always_equal{}) 2935449: { } 2935449: 2935449: explicit 2935449: _Hashtable(const allocator_type& __a) 2935449: : __hashtable_alloc(__node_alloc_type(__a)), 2935449: __enable_default_ctor(_Enable_default_constructor_tag{}) 2935449: { } 2935449: 2935449: template 2935449: _Hashtable(_InputIterator __f, _InputIterator __l, 2935449: size_type __bkt_count_hint = 0, 2935449: const _Hash& __hf = _Hash(), 2935449: const key_equal& __eql = key_equal(), 2935449: const allocator_type& __a = allocator_type()) 2935449: : _Hashtable(__f, __l, __bkt_count_hint, __hf, __eql, __a, 2935449: __unique_keys{}) 2935449: { } 2935449: 2935449: _Hashtable(initializer_list __l, 2935449: size_type __bkt_count_hint = 0, 2935449: const _Hash& __hf = _Hash(), 2935449: const key_equal& __eql = key_equal(), 2935449: const allocator_type& __a = allocator_type()) 2935449: : _Hashtable(__l.begin(), __l.end(), __bkt_count_hint, 2935449: __hf, __eql, __a, __unique_keys{}) 2935449: { } 2935449: 2935449: _Hashtable& 2935449: operator=(const _Hashtable& __ht); 2935449: 2935449: _Hashtable& 2935449: operator=(_Hashtable&& __ht) 2935449: noexcept(__node_alloc_traits::_S_nothrow_move() 2935449: && is_nothrow_move_assignable<_Hash>::value 2935449: && is_nothrow_move_assignable<_Equal>::value) 2935449: { 2935449: constexpr bool __move_storage = 2935449: __node_alloc_traits::_S_propagate_on_move_assign() 2935449: || __node_alloc_traits::_S_always_equal(); 2935449: _M_move_assign(std::move(__ht), __bool_constant<__move_storage>()); 2935449: return *this; 2935449: } 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: _Hashtable& 2935449: operator=(initializer_list __l) 2935449: { 2935449: using __reuse_or_alloc_node_gen_t = 2935449: __detail::_ReuseOrAllocNode<__node_alloc_type>; 2935449: 2935449: __reuse_or_alloc_node_gen_t __roan(_M_begin(), *this); 2935449: _M_before_begin._M_nxt = nullptr; 2935449: clear(); 2935449: 2935449: 2935449: auto __l_bkt_count = _M_rehash_policy._M_bkt_for_elements(__l.size()); 2935449: 2935449: 2935449: 2935449: if (_M_bucket_count < __l_bkt_count) 2935449: rehash(__l_bkt_count); 2935449: 2935449: __hash_code __code; 2935449: size_type __bkt; 2935449: for (auto& __e : __l) 2935449: { 2935449: const key_type& __k = _ExtractKey{}(__e); 2935449: 2935449: if constexpr (__unique_keys::value) 2935449: { 2935449: if (auto __loc = _M_locate(__k)) 2935449: continue; 2935449: else 2935449: { 2935449: __code = __loc._M_hash_code; 2935449: __bkt = __loc._M_bucket_index; 2935449: } 2935449: } 2935449: else 2935449: { 2935449: __code = this->_M_hash_code(__k); 2935449: __bkt = _M_bucket_index(__code); 2935449: } 2935449: 2935449: _M_insert_unique_node(__bkt, __code, __roan(__e)); 2935449: } 2935449: 2935449: return *this; 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: ~_Hashtable() noexcept; 2935449: 2935449: void 2935449: swap(_Hashtable&) 2935449: noexcept(__and_<__is_nothrow_swappable<_Hash>, 2935449: __is_nothrow_swappable<_Equal>>::value); 2935449: 2935449: 2935449: iterator 2935449: begin() noexcept 2935449: { return iterator(_M_begin()); } 2935449: 2935449: const_iterator 2935449: begin() const noexcept 2935449: { return const_iterator(_M_begin()); } 2935449: 2935449: iterator 2935449: end() noexcept 2935449: { return iterator(nullptr); } 2935449: 2935449: const_iterator 2935449: end() const noexcept 2935449: { return const_iterator(nullptr); } 2935449: 2935449: const_iterator 2935449: cbegin() const noexcept 2935449: { return const_iterator(_M_begin()); } 2935449: 2935449: const_iterator 2935449: cend() const noexcept 2935449: { return const_iterator(nullptr); } 2935449: 2935449: size_type 2935449: size() const noexcept 2935449: { return _M_element_count; } 2935449: 2935449: [[__nodiscard__]] bool 2935449: empty() const noexcept 2935449: { return size() == 0; } 2935449: 2935449: allocator_type 2935449: get_allocator() const noexcept 2935449: { return allocator_type(this->_M_node_allocator()); } 2935449: 2935449: size_type 2935449: max_size() const noexcept 2935449: { return __node_alloc_traits::max_size(this->_M_node_allocator()); } 2935449: 2935449: 2935449: key_equal 2935449: key_eq() const 2935449: { return this->_M_eq(); } 2935449: 2935449: 2935449: 2935449: 2935449: size_type 2935449: bucket_count() const noexcept 2935449: { return _M_bucket_count; } 2935449: 2935449: size_type 2935449: max_bucket_count() const noexcept 2935449: { return max_size(); } 2935449: 2935449: size_type 2935449: bucket_size(size_type __bkt) const 2935449: { return std::distance(begin(__bkt), end(__bkt)); } 2935449: 2935449: size_type 2935449: bucket(const key_type& __k) const 2935449: { return _M_bucket_index(this->_M_hash_code(__k)); } 2935449: 2935449: local_iterator 2935449: begin(size_type __bkt) 2935449: { 2935449: return local_iterator(*this, _M_bucket_begin(__bkt), 2935449: __bkt, _M_bucket_count); 2935449: } 2935449: 2935449: local_iterator 2935449: end(size_type __bkt) 2935449: { return local_iterator(*this, nullptr, __bkt, _M_bucket_count); } 2935449: 2935449: const_local_iterator 2935449: begin(size_type __bkt) const 2935449: { 2935449: return const_local_iterator(*this, _M_bucket_begin(__bkt), 2935449: __bkt, _M_bucket_count); 2935449: } 2935449: 2935449: const_local_iterator 2935449: end(size_type __bkt) const 2935449: { return const_local_iterator(*this, nullptr, __bkt, _M_bucket_count); } 2935449: 2935449: 2935449: const_local_iterator 2935449: cbegin(size_type __bkt) const 2935449: { 2935449: return const_local_iterator(*this, _M_bucket_begin(__bkt), 2935449: __bkt, _M_bucket_count); 2935449: } 2935449: 2935449: const_local_iterator 2935449: cend(size_type __bkt) const 2935449: { return const_local_iterator(*this, nullptr, __bkt, _M_bucket_count); } 2935449: 2935449: float 2935449: load_factor() const noexcept 2935449: { 2935449: return static_cast(size()) / static_cast(bucket_count()); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const _RehashPolicy& 2935449: __rehash_policy() const 2935449: { return _M_rehash_policy; } 2935449: 2935449: void 2935449: __rehash_policy(const _RehashPolicy& __pol) 2935449: { _M_rehash_policy = __pol; } 2935449: 2935449: 2935449: iterator 2935449: find(const key_type& __k); 2935449: 2935449: const_iterator 2935449: find(const key_type& __k) const; 2935449: 2935449: size_type 2935449: count(const key_type& __k) const; 2935449: 2935449: std::pair 2935449: equal_range(const key_type& __k); 2935449: 2935449: std::pair 2935449: equal_range(const key_type& __k) const; 2935449: # 801 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable.h" 3 2935449: void _M_rehash_insert(size_type __n); 2935449: 2935449: private: 2935449: 2935449: size_type 2935449: _M_bucket_index(const __node_value_type& __n) const noexcept 2935449: { return __hash_code_base::_M_bucket_index(__n, _M_bucket_count); } 2935449: 2935449: size_type 2935449: _M_bucket_index(__hash_code __c) const 2935449: { return __hash_code_base::_M_bucket_index(__c, _M_bucket_count); } 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: 2935449: 2935449: 2935449: __hash_code 2935449: _M_hash_code_ext(const __node_value_type& __from) const 2935449: { 2935449: if constexpr (__and_<__hash_cached, is_empty<_Hash>>::value) 2935449: return __from._M_hash_code; 2935449: else 2935449: return this->_M_hash_code(_ExtractKey{}(__from._M_v())); 2935449: } 2935449: 2935449: 2935449: 2935449: size_type 2935449: _M_bucket_index_ext(const __node_value_type& __from) const 2935449: { return _RangeHash{}(_M_hash_code_ext(__from), _M_bucket_count); } 2935449: 2935449: void 2935449: _M_copy_code(__node_value_type& __to, 2935449: const __node_value_type& __from) const 2935449: { 2935449: if constexpr (__hash_cached::value) 2935449: __to._M_hash_code = _M_hash_code_ext(__from); 2935449: } 2935449: 2935449: void 2935449: _M_store_code(__node_value_type& __to, __hash_code __code) const 2935449: { 2935449: if constexpr (__hash_cached::value) 2935449: __to._M_hash_code = __code; 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: 2935449: 2935449: __node_base_ptr 2935449: _M_find_before_node(size_type, const key_type&, __hash_code) const; 2935449: 2935449: template 2935449: __node_base_ptr 2935449: _M_find_before_node_tr(size_type, const _Kt&, __hash_code) const; 2935449: 2935449: 2935449: 2935449: struct __location_type 2935449: { 2935449: 2935449: explicit operator bool() const noexcept 2935449: { return static_cast(_M_before); } 2935449: 2935449: 2935449: explicit operator iterator() const noexcept 2935449: { return iterator(_M_node()); } 2935449: 2935449: 2935449: explicit operator const_iterator() const noexcept 2935449: { return const_iterator(_M_node()); } 2935449: 2935449: 2935449: __node_ptr _M_node() const 2935449: { 2935449: if (_M_before) 2935449: return static_cast<__node_ptr>(_M_before->_M_nxt); 2935449: return __node_ptr(); 2935449: } 2935449: 2935449: __node_base_ptr _M_before{}; 2935449: __hash_code _M_hash_code{}; 2935449: size_type _M_bucket_index = size_type(-1); 2935449: }; 2935449: # 902 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable.h" 3 2935449: __location_type 2935449: _M_locate(const key_type& __k) const; 2935449: 2935449: __node_ptr 2935449: _M_find_node(size_type __bkt, const key_type& __key, 2935449: __hash_code __c) const 2935449: { 2935449: if (__node_base_ptr __before_n = _M_find_before_node(__bkt, __key, __c)) 2935449: return static_cast<__node_ptr>(__before_n->_M_nxt); 2935449: return nullptr; 2935449: } 2935449: 2935449: template 2935449: __node_ptr 2935449: _M_find_node_tr(size_type __bkt, const _Kt& __key, 2935449: __hash_code __c) const 2935449: { 2935449: if (auto __before_n = _M_find_before_node_tr(__bkt, __key, __c)) 2935449: return static_cast<__node_ptr>(__before_n->_M_nxt); 2935449: return nullptr; 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_insert_bucket_begin(size_type __bkt, __node_ptr __node) 2935449: { 2935449: if (_M_buckets[__bkt]) 2935449: { 2935449: 2935449: 2935449: __node->_M_nxt = _M_buckets[__bkt]->_M_nxt; 2935449: _M_buckets[__bkt]->_M_nxt = __node; 2935449: } 2935449: else 2935449: { 2935449: 2935449: 2935449: 2935449: __node->_M_nxt = _M_before_begin._M_nxt; 2935449: _M_before_begin._M_nxt = __node; 2935449: 2935449: if (__node->_M_nxt) 2935449: 2935449: 2935449: _M_buckets[_M_bucket_index(*__node->_M_next())] = __node; 2935449: 2935449: _M_buckets[__bkt] = &_M_before_begin; 2935449: } 2935449: } 2935449: 2935449: 2935449: void 2935449: _M_remove_bucket_begin(size_type __bkt, __node_ptr __next_n, 2935449: size_type __next_bkt) 2935449: { 2935449: if (!__next_n) 2935449: _M_buckets[__bkt] = nullptr; 2935449: else if (__next_bkt != __bkt) 2935449: { 2935449: _M_buckets[__next_bkt] = _M_buckets[__bkt]; 2935449: _M_buckets[__bkt] = nullptr; 2935449: } 2935449: } 2935449: 2935449: 2935449: __node_base_ptr 2935449: _M_get_previous_node(size_type __bkt, __node_ptr __n); 2935449: 2935449: pair<__node_ptr, __hash_code> 2935449: _M_compute_hash_code(__node_ptr __hint, const key_type& __k) const; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: iterator 2935449: _M_insert_unique_node(size_type __bkt, __hash_code, 2935449: __node_ptr __n, size_type __n_elt = 1); 2935449: 2935449: 2935449: 2935449: iterator 2935449: _M_insert_multi_node(__node_ptr __hint, 2935449: __hash_code __code, __node_ptr __n); 2935449: 2935449: template 2935449: std::pair 2935449: _M_emplace_uniq(_Args&&... __args); 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++14-extensions" 2935449: template, 2935449: typename = _ExtractKey> 2935449: static constexpr bool __is_key_type = false; 2935449: 2935449: template 2935449: static constexpr bool 2935449: __is_key_type<_Arg, key_type, __detail::_Identity> = true; 2935449: 2935449: template 2935449: static constexpr bool 2935449: __is_key_type<_Arg, pair<_Arg1, _Arg2>, __detail::_Select1st> 2935449: = is_same<__remove_cvref_t<_Arg1>, key_type>::value; 2935449: #pragma GCC diagnostic pop 2935449: 2935449: template 2935449: iterator 2935449: _M_emplace_multi(const_iterator, _Args&&... __args); 2935449: 2935449: iterator 2935449: _M_erase(size_type __bkt, __node_base_ptr __prev_n, __node_ptr __n); 2935449: 2935449: template 2935449: void 2935449: _M_insert_range_multi(_InputIterator __first, _InputIterator __last); 2935449: 2935449: public: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: 2935449: template 2935449: __ireturn_type 2935449: emplace(_Args&&... __args) 2935449: { 2935449: if constexpr (__unique_keys::value) 2935449: return _M_emplace_uniq(std::forward<_Args>(__args)...); 2935449: else 2935449: return _M_emplace_multi(cend(), std::forward<_Args>(__args)...); 2935449: } 2935449: 2935449: template 2935449: iterator 2935449: emplace_hint(const_iterator __hint, _Args&&... __args) 2935449: { 2935449: if constexpr (__unique_keys::value) 2935449: return _M_emplace_uniq(std::forward<_Args>(__args)...).first; 2935449: else 2935449: return _M_emplace_multi(__hint, std::forward<_Args>(__args)...); 2935449: } 2935449: 2935449: 2935449: __ireturn_type 2935449: insert(const value_type& __v) 2935449: { 2935449: if constexpr (__unique_keys::value) 2935449: return _M_emplace_uniq(__v); 2935449: else 2935449: return _M_emplace_multi(cend(), __v); 2935449: } 2935449: 2935449: iterator 2935449: insert(const_iterator __hint, const value_type& __v) 2935449: { 2935449: if constexpr (__unique_keys::value) 2935449: return _M_emplace_uniq(__v).first; 2935449: else 2935449: return _M_emplace_multi(__hint, __v); 2935449: } 2935449: 2935449: __ireturn_type 2935449: insert(value_type&& __v) 2935449: { 2935449: if constexpr (__unique_keys::value) 2935449: return _M_emplace_uniq(std::move(__v)); 2935449: else 2935449: return _M_emplace_multi(cend(), std::move(__v)); 2935449: } 2935449: 2935449: iterator 2935449: insert(const_iterator __hint, value_type&& __v) 2935449: { 2935449: if constexpr (__unique_keys::value) 2935449: return _M_emplace_uniq(std::move(__v)).first; 2935449: else 2935449: return _M_emplace_multi(__hint, std::move(__v)); 2935449: } 2935449: # 1108 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable.h" 3 2935449: void 2935449: insert(initializer_list __l) 2935449: { this->insert(__l.begin(), __l.end()); } 2935449: 2935449: template 2935449: void 2935449: insert(_InputIterator __first, _InputIterator __last) 2935449: { 2935449: if constexpr (__unique_keys::value) 2935449: for (; __first != __last; ++__first) 2935449: _M_emplace_uniq(*__first); 2935449: else 2935449: return _M_insert_range_multi(__first, __last); 2935449: } 2935449: 2935449: 2935449: template>, 2935449: is_constructible>> 2935449: __ireturn_type 2935449: insert(_Pair&& __v) 2935449: { 2935449: if constexpr (__unique_keys::value) 2935449: return _M_emplace_uniq(std::forward<_Pair>(__v)); 2935449: else 2935449: return _M_emplace_multi(cend(), std::forward<_Pair>(__v)); 2935449: } 2935449: 2935449: 2935449: template>, 2935449: is_constructible>> 2935449: iterator 2935449: insert(const_iterator __hint, _Pair&& __v) 2935449: { 2935449: if constexpr (__unique_keys::value) 2935449: return _M_emplace_uniq(std::forward<_Pair>(__v)); 2935449: else 2935449: return _M_emplace_multi(__hint, std::forward<_Pair>(__v)); 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: 2935449: iterator 2935449: erase(const_iterator); 2935449: 2935449: 2935449: 2935449: iterator 2935449: erase(iterator __it) 2935449: { return erase(const_iterator(__it)); } 2935449: 2935449: size_type 2935449: erase(const key_type& __k); 2935449: 2935449: iterator 2935449: erase(const_iterator, const_iterator); 2935449: 2935449: void 2935449: clear() noexcept; 2935449: 2935449: 2935449: 2935449: void rehash(size_type __bkt_count); 2935449: # 1403 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable.h" 3 2935449: bool 2935449: _M_equal(const _Hashtable& __other) const; 2935449: 2935449: private: 2935449: 2935449: void _M_rehash(size_type __bkt_count, true_type __uks); 2935449: 2935449: 2935449: void _M_rehash(size_type __bkt_count, false_type __uks); 2935449: }; 2935449: 2935449: 2935449: template 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _Hashtable(size_type __bkt_count_hint, 2935449: const _Hash& __h, const _Equal& __eq, const allocator_type& __a) 2935449: : _Hashtable(__h, __eq, __a) 2935449: { 2935449: auto __bkt_count = _M_rehash_policy._M_next_bkt(__bkt_count_hint); 2935449: if (__bkt_count > _M_bucket_count) 2935449: { 2935449: _M_buckets = _M_allocate_buckets(__bkt_count); 2935449: _M_bucket_count = __bkt_count; 2935449: } 2935449: } 2935449: 2935449: template 2935449: template 2935449: inline 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _Hashtable(_InputIterator __f, _InputIterator __l, 2935449: size_type __bkt_count_hint, 2935449: const _Hash& __h, const _Equal& __eq, 2935449: const allocator_type& __a, true_type ) 2935449: : _Hashtable(__bkt_count_hint, __h, __eq, __a) 2935449: { this->insert(__f, __l); } 2935449: 2935449: template 2935449: template 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _Hashtable(_InputIterator __f, _InputIterator __l, 2935449: size_type __bkt_count_hint, 2935449: const _Hash& __h, const _Equal& __eq, 2935449: const allocator_type& __a, false_type __uks) 2935449: : _Hashtable(__h, __eq, __a) 2935449: { 2935449: auto __nb_elems = __detail::__distance_fw(__f, __l); 2935449: auto __bkt_count = 2935449: _M_rehash_policy._M_next_bkt( 2935449: std::max(_M_rehash_policy._M_bkt_for_elements(__nb_elems), 2935449: __bkt_count_hint)); 2935449: 2935449: if (__bkt_count > _M_bucket_count) 2935449: { 2935449: _M_buckets = _M_allocate_buckets(__bkt_count); 2935449: _M_bucket_count = __bkt_count; 2935449: } 2935449: 2935449: for (; __f != __l; ++__f) 2935449: _M_emplace_multi(cend(), *__f); 2935449: } 2935449: 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: operator=(const _Hashtable& __ht) 2935449: -> _Hashtable& 2935449: { 2935449: if (&__ht == this) 2935449: return *this; 2935449: 2935449: if (__node_alloc_traits::_S_propagate_on_copy_assign()) 2935449: { 2935449: auto& __this_alloc = this->_M_node_allocator(); 2935449: auto& __that_alloc = __ht._M_node_allocator(); 2935449: if (!__node_alloc_traits::_S_always_equal() 2935449: && __this_alloc != __that_alloc) 2935449: { 2935449: 2935449: this->_M_deallocate_nodes(_M_begin()); 2935449: _M_before_begin._M_nxt = nullptr; 2935449: _M_deallocate_buckets(); 2935449: _M_buckets = nullptr; 2935449: std::__alloc_on_copy(__this_alloc, __that_alloc); 2935449: __hashtable_base::operator=(__ht); 2935449: _M_bucket_count = __ht._M_bucket_count; 2935449: _M_element_count = __ht._M_element_count; 2935449: _M_rehash_policy = __ht._M_rehash_policy; 2935449: 2935449: struct _Guard 2935449: { 2935449: ~_Guard() { if (_M_ht) _M_ht->_M_reset(); } 2935449: _Hashtable* _M_ht; 2935449: }; 2935449: 2935449: 2935449: _Guard __guard{this}; 2935449: _M_assign(__ht); 2935449: __guard._M_ht = nullptr; 2935449: return *this; 2935449: } 2935449: std::__alloc_on_copy(__this_alloc, __that_alloc); 2935449: } 2935449: 2935449: 2935449: _M_assign_elements(__ht); 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: template 2935449: void 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_assign_elements(_Ht&& __ht) 2935449: { 2935449: using __reuse_or_alloc_node_gen_t = 2935449: __detail::_ReuseOrAllocNode<__node_alloc_type>; 2935449: 2935449: __buckets_ptr __former_buckets = nullptr; 2935449: std::size_t __former_bucket_count = _M_bucket_count; 2935449: __rehash_guard_t __rehash_guard(_M_rehash_policy); 2935449: 2935449: if (_M_bucket_count != __ht._M_bucket_count) 2935449: { 2935449: __former_buckets = _M_buckets; 2935449: _M_buckets = _M_allocate_buckets(__ht._M_bucket_count); 2935449: _M_bucket_count = __ht._M_bucket_count; 2935449: } 2935449: else 2935449: std::fill_n(_M_buckets, _M_bucket_count, nullptr); 2935449: 2935449: if (true) 2935449: { 2935449: __hashtable_base::operator=(std::forward<_Ht>(__ht)); 2935449: _M_element_count = __ht._M_element_count; 2935449: _M_rehash_policy = __ht._M_rehash_policy; 2935449: __reuse_or_alloc_node_gen_t __roan(_M_begin(), *this); 2935449: _M_before_begin._M_nxt = nullptr; 2935449: _M_assign(std::forward<_Ht>(__ht), __roan); 2935449: if (__former_buckets) 2935449: _M_deallocate_buckets(__former_buckets, __former_bucket_count); 2935449: __rehash_guard._M_guarded_obj = nullptr; 2935449: } 2935449: if (false) 2935449: { 2935449: if (__former_buckets) 2935449: { 2935449: 2935449: _M_deallocate_buckets(); 2935449: _M_buckets = __former_buckets; 2935449: _M_bucket_count = __former_bucket_count; 2935449: } 2935449: std::fill_n(_M_buckets, _M_bucket_count, nullptr); 2935449: ; 2935449: } 2935449: } 2935449: 2935449: template 2935449: template 2935449: void 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_assign(_Ht&& __ht, _NodeGenerator& __node_gen) 2935449: { 2935449: struct _Guard 2935449: { 2935449: ~_Guard() 2935449: { 2935449: if (_M_ht) 2935449: { 2935449: _M_ht->clear(); 2935449: if (_M_dealloc_buckets) 2935449: _M_ht->_M_deallocate_buckets(); 2935449: } 2935449: } 2935449: _Hashtable* _M_ht = nullptr; 2935449: bool _M_dealloc_buckets = false; 2935449: }; 2935449: _Guard __guard; 2935449: 2935449: if (!_M_buckets) 2935449: { 2935449: _M_buckets = _M_allocate_buckets(_M_bucket_count); 2935449: __guard._M_dealloc_buckets = true; 2935449: } 2935449: 2935449: if (!__ht._M_before_begin._M_nxt) 2935449: return; 2935449: 2935449: __guard._M_ht = this; 2935449: 2935449: using _FromVal = __conditional_t::value, 2935449: const value_type&, value_type&&>; 2935449: 2935449: 2935449: 2935449: __node_ptr __ht_n = __ht._M_begin(); 2935449: __node_ptr __this_n 2935449: = __node_gen(static_cast<_FromVal>(__ht_n->_M_v())); 2935449: _M_copy_code(*__this_n, *__ht_n); 2935449: _M_update_bbegin(__this_n); 2935449: 2935449: 2935449: __node_ptr __prev_n = __this_n; 2935449: for (__ht_n = __ht_n->_M_next(); __ht_n; __ht_n = __ht_n->_M_next()) 2935449: { 2935449: __this_n = __node_gen(static_cast<_FromVal>(__ht_n->_M_v())); 2935449: __prev_n->_M_nxt = __this_n; 2935449: _M_copy_code(*__this_n, *__ht_n); 2935449: size_type __bkt = _M_bucket_index(*__this_n); 2935449: if (!_M_buckets[__bkt]) 2935449: _M_buckets[__bkt] = __prev_n; 2935449: __prev_n = __this_n; 2935449: } 2935449: __guard._M_ht = nullptr; 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_reset() noexcept 2935449: { 2935449: _M_rehash_policy._M_reset(); 2935449: _M_bucket_count = 1; 2935449: _M_single_bucket = nullptr; 2935449: _M_buckets = &_M_single_bucket; 2935449: _M_before_begin._M_nxt = nullptr; 2935449: _M_element_count = 0; 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_move_assign(_Hashtable&& __ht, true_type) 2935449: { 2935449: if (__builtin_expect(std::__addressof(__ht) == this, false)) 2935449: return; 2935449: 2935449: this->_M_deallocate_nodes(_M_begin()); 2935449: _M_deallocate_buckets(); 2935449: __hashtable_base::operator=(std::move(__ht)); 2935449: _M_rehash_policy = __ht._M_rehash_policy; 2935449: if (!__ht._M_uses_single_bucket()) 2935449: _M_buckets = __ht._M_buckets; 2935449: else 2935449: { 2935449: _M_buckets = &_M_single_bucket; 2935449: _M_single_bucket = __ht._M_single_bucket; 2935449: } 2935449: 2935449: _M_bucket_count = __ht._M_bucket_count; 2935449: _M_before_begin._M_nxt = __ht._M_before_begin._M_nxt; 2935449: _M_element_count = __ht._M_element_count; 2935449: std::__alloc_on_move(this->_M_node_allocator(), __ht._M_node_allocator()); 2935449: 2935449: 2935449: _M_update_bbegin(); 2935449: __ht._M_reset(); 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_move_assign(_Hashtable&& __ht, false_type) 2935449: { 2935449: if (__ht._M_node_allocator() == this->_M_node_allocator()) 2935449: _M_move_assign(std::move(__ht), true_type{}); 2935449: else 2935449: { 2935449: 2935449: _M_assign_elements(std::move(__ht)); 2935449: __ht.clear(); 2935449: } 2935449: } 2935449: 2935449: template 2935449: inline 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _Hashtable(const _Hashtable& __ht) 2935449: : __hashtable_base(__ht), 2935449: __map_base(__ht), 2935449: __rehash_base(__ht), 2935449: __hashtable_alloc( 2935449: __node_alloc_traits::_S_select_on_copy(__ht._M_node_allocator())), 2935449: __enable_default_ctor(__ht), 2935449: _M_buckets(nullptr), 2935449: _M_bucket_count(__ht._M_bucket_count), 2935449: _M_element_count(__ht._M_element_count), 2935449: _M_rehash_policy(__ht._M_rehash_policy) 2935449: { 2935449: _M_assign(__ht); 2935449: } 2935449: 2935449: template 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _Hashtable(_Hashtable&& __ht, __node_alloc_type&& __a, 2935449: true_type ) 2935449: noexcept(_S_nothrow_move()) 2935449: : __hashtable_base(__ht), 2935449: __map_base(__ht), 2935449: __rehash_base(__ht), 2935449: __hashtable_alloc(std::move(__a)), 2935449: __enable_default_ctor(__ht), 2935449: _M_buckets(__ht._M_buckets), 2935449: _M_bucket_count(__ht._M_bucket_count), 2935449: _M_before_begin(__ht._M_before_begin._M_nxt), 2935449: _M_element_count(__ht._M_element_count), 2935449: _M_rehash_policy(__ht._M_rehash_policy) 2935449: { 2935449: 2935449: if (__ht._M_uses_single_bucket()) 2935449: { 2935449: _M_buckets = &_M_single_bucket; 2935449: _M_single_bucket = __ht._M_single_bucket; 2935449: } 2935449: 2935449: 2935449: _M_update_bbegin(); 2935449: 2935449: __ht._M_reset(); 2935449: } 2935449: 2935449: template 2935449: inline 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _Hashtable(const _Hashtable& __ht, const allocator_type& __a) 2935449: : __hashtable_base(__ht), 2935449: __map_base(__ht), 2935449: __rehash_base(__ht), 2935449: __hashtable_alloc(__node_alloc_type(__a)), 2935449: __enable_default_ctor(__ht), 2935449: _M_buckets(), 2935449: _M_bucket_count(__ht._M_bucket_count), 2935449: _M_element_count(__ht._M_element_count), 2935449: _M_rehash_policy(__ht._M_rehash_policy) 2935449: { 2935449: _M_assign(__ht); 2935449: } 2935449: 2935449: template 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _Hashtable(_Hashtable&& __ht, __node_alloc_type&& __a, 2935449: false_type ) 2935449: : __hashtable_base(__ht), 2935449: __map_base(__ht), 2935449: __rehash_base(__ht), 2935449: __hashtable_alloc(std::move(__a)), 2935449: __enable_default_ctor(__ht), 2935449: _M_buckets(nullptr), 2935449: _M_bucket_count(__ht._M_bucket_count), 2935449: _M_element_count(__ht._M_element_count), 2935449: _M_rehash_policy(__ht._M_rehash_policy) 2935449: { 2935449: if (__ht._M_node_allocator() == this->_M_node_allocator()) 2935449: { 2935449: if (__ht._M_uses_single_bucket()) 2935449: { 2935449: _M_buckets = &_M_single_bucket; 2935449: _M_single_bucket = __ht._M_single_bucket; 2935449: } 2935449: else 2935449: _M_buckets = __ht._M_buckets; 2935449: 2935449: 2935449: 2935449: _M_update_bbegin(__ht._M_begin()); 2935449: 2935449: __ht._M_reset(); 2935449: } 2935449: else 2935449: { 2935449: using _Fwd_Ht = __conditional_t< 2935449: __move_if_noexcept_cond::value, 2935449: const _Hashtable&, _Hashtable&&>; 2935449: _M_assign(std::forward<_Fwd_Ht>(__ht)); 2935449: __ht.clear(); 2935449: } 2935449: } 2935449: 2935449: template 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: ~_Hashtable() noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static_assert(noexcept(declval() 2935449: ._M_bucket_index(declval(), 2935449: (std::size_t)0)), 2935449: "Cache the hash code or qualify your functors involved" 2935449: " in hash code and bucket index computation with noexcept"); 2935449: 2935449: this->_M_deallocate_nodes(_M_begin()); 2935449: _M_deallocate_buckets(); 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: swap(_Hashtable& __x) 2935449: noexcept(__and_<__is_nothrow_swappable<_Hash>, 2935449: __is_nothrow_swappable<_Equal>>::value) 2935449: { 2935449: using std::swap; 2935449: swap(__hash_code_base::_M_hash._M_obj, 2935449: __x.__hash_code_base::_M_hash._M_obj); 2935449: swap(__hashtable_base::_M_equal._M_obj, 2935449: __x.__hashtable_base::_M_equal._M_obj); 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: if constexpr (__node_alloc_traits::propagate_on_container_swap::value) 2935449: swap(this->_M_node_allocator(), __x._M_node_allocator()); 2935449: #pragma GCC diagnostic pop 2935449: 2935449: std::swap(_M_rehash_policy, __x._M_rehash_policy); 2935449: 2935449: 2935449: if (this->_M_uses_single_bucket()) 2935449: { 2935449: if (!__x._M_uses_single_bucket()) 2935449: { 2935449: _M_buckets = __x._M_buckets; 2935449: __x._M_buckets = &__x._M_single_bucket; 2935449: } 2935449: } 2935449: else if (__x._M_uses_single_bucket()) 2935449: { 2935449: __x._M_buckets = _M_buckets; 2935449: _M_buckets = &_M_single_bucket; 2935449: } 2935449: else 2935449: std::swap(_M_buckets, __x._M_buckets); 2935449: 2935449: std::swap(_M_bucket_count, __x._M_bucket_count); 2935449: std::swap(_M_before_begin._M_nxt, __x._M_before_begin._M_nxt); 2935449: std::swap(_M_element_count, __x._M_element_count); 2935449: std::swap(_M_single_bucket, __x._M_single_bucket); 2935449: 2935449: 2935449: 2935449: _M_update_bbegin(); 2935449: __x._M_update_bbegin(); 2935449: } 2935449: 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: find(const key_type& __k) 2935449: -> iterator 2935449: { return iterator(_M_locate(__k)); } 2935449: 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: find(const key_type& __k) const 2935449: -> const_iterator 2935449: { return const_iterator(_M_locate(__k)); } 2935449: # 1981 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable.h" 3 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: count(const key_type& __k) const 2935449: -> size_type 2935449: { 2935449: auto __it = find(__k); 2935449: if (!__it._M_cur) 2935449: return 0; 2935449: 2935449: if (__unique_keys::value) 2935449: return 1; 2935449: 2935449: size_type __result = 1; 2935449: for (auto __ref = __it++; 2935449: __it._M_cur && this->_M_node_equals(*__ref._M_cur, *__it._M_cur); 2935449: ++__it) 2935449: ++__result; 2935449: 2935449: return __result; 2935449: } 2935449: # 2054 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable.h" 3 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: equal_range(const key_type& __k) 2935449: -> pair 2935449: { 2935449: auto __ite = find(__k); 2935449: if (!__ite._M_cur) 2935449: return { __ite, __ite }; 2935449: 2935449: auto __beg = __ite++; 2935449: if (__unique_keys::value) 2935449: return { __beg, __ite }; 2935449: 2935449: while (__ite._M_cur && this->_M_node_equals(*__beg._M_cur, *__ite._M_cur)) 2935449: ++__ite; 2935449: 2935449: return { __beg, __ite }; 2935449: } 2935449: 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: equal_range(const key_type& __k) const 2935449: -> pair 2935449: { 2935449: auto __ite = find(__k); 2935449: if (!__ite._M_cur) 2935449: return { __ite, __ite }; 2935449: 2935449: auto __beg = __ite++; 2935449: if (__unique_keys::value) 2935449: return { __beg, __ite }; 2935449: 2935449: while (__ite._M_cur && this->_M_node_equals(*__beg._M_cur, *__ite._M_cur)) 2935449: ++__ite; 2935449: 2935449: return { __beg, __ite }; 2935449: } 2935449: # 2194 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable.h" 3 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_find_before_node(size_type __bkt, const key_type& __k, 2935449: __hash_code __code) const 2935449: -> __node_base_ptr 2935449: { 2935449: __node_base_ptr __prev_p = _M_buckets[__bkt]; 2935449: if (!__prev_p) 2935449: return nullptr; 2935449: 2935449: for (__node_ptr __p = static_cast<__node_ptr>(__prev_p->_M_nxt);; 2935449: __p = __p->_M_next()) 2935449: { 2935449: if (this->_M_equals(__k, __code, *__p)) 2935449: return __prev_p; 2935449: 2935449: if (__builtin_expect (!__p->_M_nxt || _M_bucket_index(*__p->_M_next()) != __bkt, 0)) 2935449: break; 2935449: __prev_p = __p; 2935449: } 2935449: 2935449: return nullptr; 2935449: } 2935449: 2935449: template 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_find_before_node_tr(size_type __bkt, const _Kt& __k, 2935449: __hash_code __code) const 2935449: -> __node_base_ptr 2935449: { 2935449: __node_base_ptr __prev_p = _M_buckets[__bkt]; 2935449: if (!__prev_p) 2935449: return nullptr; 2935449: 2935449: for (__node_ptr __p = static_cast<__node_ptr>(__prev_p->_M_nxt);; 2935449: __p = __p->_M_next()) 2935449: { 2935449: if (this->_M_equals_tr(__k, __code, *__p)) 2935449: return __prev_p; 2935449: 2935449: if (__builtin_expect (!__p->_M_nxt || _M_bucket_index(*__p->_M_next()) != __bkt, 0)) 2935449: break; 2935449: __prev_p = __p; 2935449: } 2935449: 2935449: return nullptr; 2935449: } 2935449: 2935449: template 2935449: inline auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_locate(const key_type& __k) const 2935449: -> __location_type 2935449: { 2935449: __location_type __loc; 2935449: const auto __size = size(); 2935449: 2935449: if (__size <= __small_size_threshold()) 2935449: { 2935449: __loc._M_before = pointer_traits<__node_base_ptr>:: 2935449: pointer_to(const_cast<__node_base&>(_M_before_begin)); 2935449: while (__loc._M_before->_M_nxt) 2935449: { 2935449: if (this->_M_key_equals(__k, *__loc._M_node())) 2935449: return __loc; 2935449: __loc._M_before = __loc._M_before->_M_nxt; 2935449: } 2935449: __loc._M_before = nullptr; 2935449: } 2935449: 2935449: __loc._M_hash_code = this->_M_hash_code(__k); 2935449: __loc._M_bucket_index = _M_bucket_index(__loc._M_hash_code); 2935449: 2935449: if (__size > __small_size_threshold()) 2935449: __loc._M_before = _M_find_before_node(__loc._M_bucket_index, __k, 2935449: __loc._M_hash_code); 2935449: 2935449: return __loc; 2935449: } 2935449: 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_get_previous_node(size_type __bkt, __node_ptr __n) 2935449: -> __node_base_ptr 2935449: { 2935449: __node_base_ptr __prev_n = _M_buckets[__bkt]; 2935449: while (__prev_n->_M_nxt != __n) 2935449: __prev_n = __prev_n->_M_nxt; 2935449: return __prev_n; 2935449: } 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: template 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_emplace_uniq(_Args&&... __args) 2935449: -> pair 2935449: { 2935449: const key_type* __kp = nullptr; 2935449: 2935449: if constexpr (sizeof...(_Args) == 1) 2935449: { 2935449: if constexpr (__is_key_type<_Args...>) 2935449: { 2935449: const auto& __key = _ExtractKey{}(__args...); 2935449: __kp = std::__addressof(__key); 2935449: } 2935449: } 2935449: else if constexpr (sizeof...(_Args) == 2) 2935449: { 2935449: if constexpr (__is_key_type>) 2935449: { 2935449: pair __refs(__args...); 2935449: const auto& __key = _ExtractKey{}(__refs); 2935449: __kp = std::__addressof(__key); 2935449: } 2935449: } 2935449: 2935449: _Scoped_node __node { __node_ptr(), this }; 2935449: __hash_code __code = 0; 2935449: size_type __bkt = 0; 2935449: 2935449: if (__kp == nullptr) 2935449: { 2935449: 2935449: __node._M_node 2935449: = this->_M_allocate_node(std::forward<_Args>(__args)...); 2935449: const key_type& __key = _ExtractKey{}(__node._M_node->_M_v()); 2935449: __kp = std::__addressof(__key); 2935449: } 2935449: 2935449: if (auto __loc = _M_locate(*__kp)) 2935449: 2935449: return { iterator(__loc), false }; 2935449: else 2935449: { 2935449: __code = __loc._M_hash_code; 2935449: __bkt = __loc._M_bucket_index; 2935449: } 2935449: 2935449: if (!__node._M_node) 2935449: __node._M_node 2935449: = this->_M_allocate_node(std::forward<_Args>(__args)...); 2935449: 2935449: 2935449: auto __pos = _M_insert_unique_node(__bkt, __code, __node._M_node); 2935449: __node._M_node = nullptr; 2935449: return { __pos, true }; 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: template 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_emplace_multi(const_iterator __hint, _Args&&... __args) 2935449: -> iterator 2935449: { 2935449: 2935449: _Scoped_node __node { this, std::forward<_Args>(__args)... }; 2935449: const key_type& __k = _ExtractKey{}(__node._M_node->_M_v()); 2935449: 2935449: auto __res = this->_M_compute_hash_code(__hint._M_cur, __k); 2935449: auto __pos 2935449: = _M_insert_multi_node(__res.first, __res.second, __node._M_node); 2935449: __node._M_node = nullptr; 2935449: return __pos; 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_rehash_insert(size_type __n) 2935449: { 2935449: using __pair_type = std::pair; 2935449: if (__n == 0) 2935449: return; 2935449: 2935449: __rehash_guard_t __rehash_guard(_M_rehash_policy); 2935449: __pair_type __do_rehash 2935449: = _M_rehash_policy._M_need_rehash(_M_bucket_count, _M_element_count, __n); 2935449: 2935449: if (__do_rehash.first) 2935449: _M_rehash(__do_rehash.second, false_type{}); 2935449: 2935449: __rehash_guard._M_guarded_obj = nullptr; 2935449: } 2935449: 2935449: 2935449: template 2935449: template 2935449: void 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_insert_range_multi(_InputIterator __first, _InputIterator __last) 2935449: { 2935449: _M_rehash_insert(__detail::__distance_fw(__first, __last)); 2935449: for (; __first != __last; ++__first) 2935449: _M_emplace_multi(cend(), *__first); 2935449: } 2935449: 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_compute_hash_code(__node_ptr __hint, const key_type& __k) const 2935449: -> pair<__node_ptr, __hash_code> 2935449: { 2935449: if (size() <= __small_size_threshold()) 2935449: { 2935449: if (__hint) 2935449: { 2935449: for (auto __it = __hint; __it; __it = __it->_M_next()) 2935449: if (this->_M_key_equals(__k, *__it)) 2935449: return { __it, this->_M_hash_code(*__it) }; 2935449: } 2935449: 2935449: for (auto __it = _M_begin(); __it != __hint; __it = __it->_M_next()) 2935449: if (this->_M_key_equals(__k, *__it)) 2935449: return { __it, this->_M_hash_code(*__it) }; 2935449: 2935449: __hint = nullptr; 2935449: } 2935449: 2935449: return { __hint, this->_M_hash_code(__k) }; 2935449: } 2935449: 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_insert_unique_node(size_type __bkt, __hash_code __code, 2935449: __node_ptr __node, size_type __n_elt) 2935449: -> iterator 2935449: { 2935449: __rehash_guard_t __rehash_guard(_M_rehash_policy); 2935449: std::pair __do_rehash 2935449: = _M_rehash_policy._M_need_rehash(_M_bucket_count, _M_element_count, 2935449: __n_elt); 2935449: 2935449: if (__do_rehash.first) 2935449: { 2935449: _M_rehash(__do_rehash.second, true_type{}); 2935449: __bkt = _M_bucket_index(__code); 2935449: } 2935449: 2935449: __rehash_guard._M_guarded_obj = nullptr; 2935449: _M_store_code(*__node, __code); 2935449: 2935449: 2935449: _M_insert_bucket_begin(__bkt, __node); 2935449: ++_M_element_count; 2935449: return iterator(__node); 2935449: } 2935449: 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_insert_multi_node(__node_ptr __hint, 2935449: __hash_code __code, __node_ptr __node) 2935449: -> iterator 2935449: { 2935449: __rehash_guard_t __rehash_guard(_M_rehash_policy); 2935449: std::pair __do_rehash 2935449: = _M_rehash_policy._M_need_rehash(_M_bucket_count, _M_element_count, 1); 2935449: 2935449: if (__do_rehash.first) 2935449: _M_rehash(__do_rehash.second, false_type{}); 2935449: 2935449: __rehash_guard._M_guarded_obj = nullptr; 2935449: _M_store_code(*__node, __code); 2935449: const key_type& __k = _ExtractKey{}(__node->_M_v()); 2935449: size_type __bkt = _M_bucket_index(__code); 2935449: 2935449: 2935449: 2935449: __node_base_ptr __prev 2935449: = __builtin_expect(__hint != nullptr, false) 2935449: && this->_M_equals(__k, __code, *__hint) 2935449: ? __hint 2935449: : _M_find_before_node(__bkt, __k, __code); 2935449: 2935449: if (__prev) 2935449: { 2935449: 2935449: __node->_M_nxt = __prev->_M_nxt; 2935449: __prev->_M_nxt = __node; 2935449: if (__builtin_expect(__prev == __hint, false)) 2935449: 2935449: 2935449: if (__node->_M_nxt 2935449: && !this->_M_equals(__k, __code, *__node->_M_next())) 2935449: { 2935449: size_type __next_bkt = _M_bucket_index(*__node->_M_next()); 2935449: if (__next_bkt != __bkt) 2935449: _M_buckets[__next_bkt] = __node; 2935449: } 2935449: } 2935449: else 2935449: 2935449: 2935449: 2935449: _M_insert_bucket_begin(__bkt, __node); 2935449: ++_M_element_count; 2935449: return iterator(__node); 2935449: } 2935449: 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: erase(const_iterator __it) 2935449: -> iterator 2935449: { 2935449: __node_ptr __n = __it._M_cur; 2935449: std::size_t __bkt = _M_bucket_index(*__n); 2935449: 2935449: 2935449: 2935449: 2935449: __node_base_ptr __prev_n = _M_get_previous_node(__bkt, __n); 2935449: return _M_erase(__bkt, __prev_n, __n); 2935449: } 2935449: 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_erase(size_type __bkt, __node_base_ptr __prev_n, __node_ptr __n) 2935449: -> iterator 2935449: { 2935449: if (__prev_n == _M_buckets[__bkt]) 2935449: _M_remove_bucket_begin(__bkt, __n->_M_next(), 2935449: __n->_M_nxt ? _M_bucket_index(*__n->_M_next()) : 0); 2935449: else if (__n->_M_nxt) 2935449: { 2935449: size_type __next_bkt = _M_bucket_index(*__n->_M_next()); 2935449: if (__next_bkt != __bkt) 2935449: _M_buckets[__next_bkt] = __prev_n; 2935449: } 2935449: 2935449: __prev_n->_M_nxt = __n->_M_nxt; 2935449: iterator __result(__n->_M_next()); 2935449: this->_M_deallocate_node(__n); 2935449: --_M_element_count; 2935449: 2935449: return __result; 2935449: } 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: erase(const key_type& __k) 2935449: -> size_type 2935449: { 2935449: auto __loc = _M_locate(__k); 2935449: if (!__loc) 2935449: return 0; 2935449: 2935449: __node_base_ptr __prev_n = __loc._M_before; 2935449: __node_ptr __n = __loc._M_node(); 2935449: auto __bkt = __loc._M_bucket_index; 2935449: if (__bkt == size_type(-1)) 2935449: __bkt = _M_bucket_index(*__n); 2935449: 2935449: if constexpr (__unique_keys::value) 2935449: { 2935449: _M_erase(__bkt, __prev_n, __n); 2935449: return 1; 2935449: } 2935449: else 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __node_ptr __n_last = __n->_M_next(); 2935449: while (__n_last && this->_M_node_equals(*__n, *__n_last)) 2935449: __n_last = __n_last->_M_next(); 2935449: 2935449: std::size_t __n_last_bkt 2935449: = __n_last ? _M_bucket_index(*__n_last) : __bkt; 2935449: 2935449: 2935449: size_type __result = 0; 2935449: do 2935449: { 2935449: __node_ptr __p = __n->_M_next(); 2935449: this->_M_deallocate_node(__n); 2935449: __n = __p; 2935449: ++__result; 2935449: } 2935449: while (__n != __n_last); 2935449: 2935449: _M_element_count -= __result; 2935449: if (__prev_n == _M_buckets[__bkt]) 2935449: _M_remove_bucket_begin(__bkt, __n_last, __n_last_bkt); 2935449: else if (__n_last_bkt != __bkt) 2935449: _M_buckets[__n_last_bkt] = __prev_n; 2935449: __prev_n->_M_nxt = __n_last; 2935449: return __result; 2935449: } 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: 2935449: template 2935449: auto 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: erase(const_iterator __first, const_iterator __last) 2935449: -> iterator 2935449: { 2935449: __node_ptr __n = __first._M_cur; 2935449: __node_ptr __last_n = __last._M_cur; 2935449: if (__n == __last_n) 2935449: return iterator(__n); 2935449: 2935449: std::size_t __bkt = _M_bucket_index(*__n); 2935449: 2935449: __node_base_ptr __prev_n = _M_get_previous_node(__bkt, __n); 2935449: bool __is_bucket_begin = __n == _M_bucket_begin(__bkt); 2935449: std::size_t __n_bkt = __bkt; 2935449: for (;;) 2935449: { 2935449: do 2935449: { 2935449: __node_ptr __tmp = __n; 2935449: __n = __n->_M_next(); 2935449: this->_M_deallocate_node(__tmp); 2935449: --_M_element_count; 2935449: if (!__n) 2935449: break; 2935449: __n_bkt = _M_bucket_index(*__n); 2935449: } 2935449: while (__n != __last_n && __n_bkt == __bkt); 2935449: if (__is_bucket_begin) 2935449: _M_remove_bucket_begin(__bkt, __n, __n_bkt); 2935449: if (__n == __last_n) 2935449: break; 2935449: __is_bucket_begin = true; 2935449: __bkt = __n_bkt; 2935449: } 2935449: 2935449: if (__n && (__n_bkt != __bkt || __is_bucket_begin)) 2935449: _M_buckets[__n_bkt] = __prev_n; 2935449: __prev_n->_M_nxt = __n; 2935449: return iterator(__n); 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: clear() noexcept 2935449: { 2935449: this->_M_deallocate_nodes(_M_begin()); 2935449: std::fill_n(_M_buckets, _M_bucket_count, nullptr); 2935449: _M_element_count = 0; 2935449: _M_before_begin._M_nxt = nullptr; 2935449: } 2935449: 2935449: template 2935449: void 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: rehash(size_type __bkt_count) 2935449: { 2935449: __rehash_guard_t __rehash_guard(_M_rehash_policy); 2935449: __bkt_count 2935449: = std::max(_M_rehash_policy._M_bkt_for_elements(_M_element_count + 1), 2935449: __bkt_count); 2935449: __bkt_count = _M_rehash_policy._M_next_bkt(__bkt_count); 2935449: 2935449: if (__bkt_count != _M_bucket_count) 2935449: { 2935449: _M_rehash(__bkt_count, __unique_keys{}); 2935449: __rehash_guard._M_guarded_obj = nullptr; 2935449: } 2935449: } 2935449: 2935449: 2935449: template 2935449: void 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_rehash(size_type __bkt_count, true_type ) 2935449: { 2935449: __buckets_ptr __new_buckets = _M_allocate_buckets(__bkt_count); 2935449: __node_ptr __p = _M_begin(); 2935449: _M_before_begin._M_nxt = nullptr; 2935449: std::size_t __bbegin_bkt = 0; 2935449: while (__p) 2935449: { 2935449: __node_ptr __next = __p->_M_next(); 2935449: std::size_t __bkt 2935449: = __hash_code_base::_M_bucket_index(*__p, __bkt_count); 2935449: if (!__new_buckets[__bkt]) 2935449: { 2935449: __p->_M_nxt = _M_before_begin._M_nxt; 2935449: _M_before_begin._M_nxt = __p; 2935449: __new_buckets[__bkt] = &_M_before_begin; 2935449: if (__p->_M_nxt) 2935449: __new_buckets[__bbegin_bkt] = __p; 2935449: __bbegin_bkt = __bkt; 2935449: } 2935449: else 2935449: { 2935449: __p->_M_nxt = __new_buckets[__bkt]->_M_nxt; 2935449: __new_buckets[__bkt]->_M_nxt = __p; 2935449: } 2935449: 2935449: __p = __next; 2935449: } 2935449: 2935449: _M_deallocate_buckets(); 2935449: _M_bucket_count = __bkt_count; 2935449: _M_buckets = __new_buckets; 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: void 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_rehash(size_type __bkt_count, false_type ) 2935449: { 2935449: __buckets_ptr __new_buckets = _M_allocate_buckets(__bkt_count); 2935449: __node_ptr __p = _M_begin(); 2935449: _M_before_begin._M_nxt = nullptr; 2935449: std::size_t __bbegin_bkt = 0; 2935449: std::size_t __prev_bkt = 0; 2935449: __node_ptr __prev_p = nullptr; 2935449: bool __check_bucket = false; 2935449: 2935449: while (__p) 2935449: { 2935449: __node_ptr __next = __p->_M_next(); 2935449: std::size_t __bkt 2935449: = __hash_code_base::_M_bucket_index(*__p, __bkt_count); 2935449: 2935449: if (__prev_p && __prev_bkt == __bkt) 2935449: { 2935449: 2935449: 2935449: 2935449: __p->_M_nxt = __prev_p->_M_nxt; 2935449: __prev_p->_M_nxt = __p; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: __check_bucket = true; 2935449: } 2935449: else 2935449: { 2935449: if (__check_bucket) 2935449: { 2935449: 2935449: 2935449: if (__prev_p->_M_nxt) 2935449: { 2935449: std::size_t __next_bkt 2935449: = __hash_code_base::_M_bucket_index( 2935449: *__prev_p->_M_next(), __bkt_count); 2935449: if (__next_bkt != __prev_bkt) 2935449: __new_buckets[__next_bkt] = __prev_p; 2935449: } 2935449: __check_bucket = false; 2935449: } 2935449: 2935449: if (!__new_buckets[__bkt]) 2935449: { 2935449: __p->_M_nxt = _M_before_begin._M_nxt; 2935449: _M_before_begin._M_nxt = __p; 2935449: __new_buckets[__bkt] = &_M_before_begin; 2935449: if (__p->_M_nxt) 2935449: __new_buckets[__bbegin_bkt] = __p; 2935449: __bbegin_bkt = __bkt; 2935449: } 2935449: else 2935449: { 2935449: __p->_M_nxt = __new_buckets[__bkt]->_M_nxt; 2935449: __new_buckets[__bkt]->_M_nxt = __p; 2935449: } 2935449: } 2935449: __prev_p = __p; 2935449: __prev_bkt = __bkt; 2935449: __p = __next; 2935449: } 2935449: 2935449: if (__check_bucket && __prev_p->_M_nxt) 2935449: { 2935449: std::size_t __next_bkt 2935449: = __hash_code_base::_M_bucket_index(*__prev_p->_M_next(), 2935449: __bkt_count); 2935449: if (__next_bkt != __prev_bkt) 2935449: __new_buckets[__next_bkt] = __prev_p; 2935449: } 2935449: 2935449: _M_deallocate_buckets(); 2935449: _M_bucket_count = __bkt_count; 2935449: _M_buckets = __new_buckets; 2935449: } 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: bool 2935449: _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, 2935449: _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>:: 2935449: _M_equal(const _Hashtable& __other) const 2935449: { 2935449: if (size() != __other.size()) 2935449: return false; 2935449: 2935449: if constexpr (__unique_keys::value) 2935449: for (auto __x_n = _M_begin(); __x_n; __x_n = __x_n->_M_next()) 2935449: { 2935449: std::size_t __ybkt = __other._M_bucket_index_ext(*__x_n); 2935449: auto __prev_n = __other._M_buckets[__ybkt]; 2935449: if (!__prev_n) 2935449: return false; 2935449: 2935449: for (__node_ptr __n = static_cast<__node_ptr>(__prev_n->_M_nxt);; 2935449: __n = __n->_M_next()) 2935449: { 2935449: if (__n->_M_v() == __x_n->_M_v()) 2935449: break; 2935449: 2935449: if (!__n->_M_nxt 2935449: || __other._M_bucket_index(*__n->_M_next()) != __ybkt) 2935449: return false; 2935449: } 2935449: } 2935449: else 2935449: for (auto __x_n = _M_begin(); __x_n;) 2935449: { 2935449: std::size_t __x_count = 1; 2935449: auto __x_n_end = __x_n->_M_next(); 2935449: for (; __x_n_end 2935449: && key_eq()(_ExtractKey{}(__x_n->_M_v()), 2935449: _ExtractKey{}(__x_n_end->_M_v())); 2935449: __x_n_end = __x_n_end->_M_next()) 2935449: ++__x_count; 2935449: 2935449: std::size_t __ybkt = __other._M_bucket_index_ext(*__x_n); 2935449: auto __y_prev_n = __other._M_buckets[__ybkt]; 2935449: if (!__y_prev_n) 2935449: return false; 2935449: 2935449: __node_ptr __y_n = static_cast<__node_ptr>(__y_prev_n->_M_nxt); 2935449: for (;;) 2935449: { 2935449: if (key_eq()(_ExtractKey{}(__y_n->_M_v()), 2935449: _ExtractKey{}(__x_n->_M_v()))) 2935449: break; 2935449: 2935449: auto __y_ref_n = __y_n; 2935449: for (__y_n = __y_n->_M_next(); __y_n; __y_n = __y_n->_M_next()) 2935449: if (!__other._M_node_equals(*__y_ref_n, *__y_n)) 2935449: break; 2935449: 2935449: if (!__y_n || __other._M_bucket_index(*__y_n) != __ybkt) 2935449: return false; 2935449: } 2935449: 2935449: auto __y_n_end = __y_n; 2935449: for (; __y_n_end; __y_n_end = __y_n_end->_M_next()) 2935449: if (--__x_count == 0) 2935449: break; 2935449: 2935449: if (__x_count != 0) 2935449: return false; 2935449: 2935449: const_iterator __itx(__x_n), __itx_end(__x_n_end); 2935449: const_iterator __ity(__y_n); 2935449: if (!std::is_permutation(__itx, __itx_end, __ity)) 2935449: return false; 2935449: 2935449: __x_n = __x_n_end; 2935449: } 2935449: 2935449: return true; 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: # 2978 "/usr/arm-linux-gnueabi/include/c++/15/bits/hashtable.h" 3 2935449: 2935449: } 2935449: 2935449: #pragma GCC diagnostic pop 2935449: # 34 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: using __umap_traits = __detail::_Hashtable_traits<_Cache, false, true>; 2935449: 2935449: template, 2935449: typename _Pred = std::equal_to<_Key>, 2935449: typename _Alloc = std::allocator >, 2935449: typename _Tr = __umap_traits<__cache_default<_Key, _Hash>::value>> 2935449: using __umap_hashtable = _Hashtable<_Key, std::pair, 2935449: _Alloc, __detail::_Select1st, 2935449: _Pred, _Hash, 2935449: __detail::_Mod_range_hashing, 2935449: __detail::_Default_ranged_hash, 2935449: __detail::_Prime_rehash_policy, _Tr>; 2935449: 2935449: 2935449: template 2935449: using __ummap_traits = __detail::_Hashtable_traits<_Cache, false, false>; 2935449: 2935449: template, 2935449: typename _Pred = std::equal_to<_Key>, 2935449: typename _Alloc = std::allocator >, 2935449: typename _Tr = __ummap_traits<__cache_default<_Key, _Hash>::value>> 2935449: using __ummap_hashtable = _Hashtable<_Key, std::pair, 2935449: _Alloc, __detail::_Select1st, 2935449: _Pred, _Hash, 2935449: __detail::_Mod_range_hashing, 2935449: __detail::_Default_ranged_hash, 2935449: __detail::_Prime_rehash_policy, _Tr>; 2935449: 2935449: template 2935449: class unordered_multimap; 2935449: # 108 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: template, 2935449: typename _Pred = equal_to<_Key>, 2935449: typename _Alloc = allocator>> 2935449: class unordered_map 2935449: { 2935449: typedef __umap_hashtable<_Key, _Tp, _Hash, _Pred, _Alloc> _Hashtable; 2935449: _Hashtable _M_h; 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: typedef typename _Hashtable::key_type key_type; 2935449: typedef typename _Hashtable::value_type value_type; 2935449: typedef typename _Hashtable::mapped_type mapped_type; 2935449: typedef typename _Hashtable::hasher hasher; 2935449: typedef typename _Hashtable::key_equal key_equal; 2935449: typedef typename _Hashtable::allocator_type allocator_type; 2935449: 2935449: 2935449: 2935449: 2935449: typedef typename _Hashtable::pointer pointer; 2935449: typedef typename _Hashtable::const_pointer const_pointer; 2935449: typedef typename _Hashtable::reference reference; 2935449: typedef typename _Hashtable::const_reference const_reference; 2935449: typedef typename _Hashtable::iterator iterator; 2935449: typedef typename _Hashtable::const_iterator const_iterator; 2935449: typedef typename _Hashtable::local_iterator local_iterator; 2935449: typedef typename _Hashtable::const_local_iterator const_local_iterator; 2935449: typedef typename _Hashtable::size_type size_type; 2935449: typedef typename _Hashtable::difference_type difference_type; 2935449: # 151 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: unordered_map() = default; 2935449: # 160 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: explicit 2935449: unordered_map(size_type __n, 2935449: const hasher& __hf = hasher(), 2935449: const key_equal& __eql = key_equal(), 2935449: const allocator_type& __a = allocator_type()) 2935449: : _M_h(__n, __hf, __eql, __a) 2935449: { } 2935449: # 181 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: template 2935449: unordered_map(_InputIterator __first, _InputIterator __last, 2935449: size_type __n = 0, 2935449: const hasher& __hf = hasher(), 2935449: const key_equal& __eql = key_equal(), 2935449: const allocator_type& __a = allocator_type()) 2935449: : _M_h(__first, __last, __n, __hf, __eql, __a) 2935449: { } 2935449: 2935449: 2935449: unordered_map(const unordered_map&) = default; 2935449: 2935449: 2935449: unordered_map(unordered_map&&) = default; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: explicit 2935449: unordered_map(const allocator_type& __a) 2935449: : _M_h(__a) 2935449: { } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: unordered_map(const unordered_map& __umap, 2935449: const allocator_type& __a) 2935449: : _M_h(__umap._M_h, __a) 2935449: { } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: unordered_map(unordered_map&& __umap, 2935449: const allocator_type& __a) 2935449: noexcept( noexcept(_Hashtable(std::move(__umap._M_h), __a)) ) 2935449: : _M_h(std::move(__umap._M_h), __a) 2935449: { } 2935449: # 237 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: unordered_map(initializer_list __l, 2935449: size_type __n = 0, 2935449: const hasher& __hf = hasher(), 2935449: const key_equal& __eql = key_equal(), 2935449: const allocator_type& __a = allocator_type()) 2935449: : _M_h(__l, __n, __hf, __eql, __a) 2935449: { } 2935449: 2935449: unordered_map(size_type __n, const allocator_type& __a) 2935449: : unordered_map(__n, hasher(), key_equal(), __a) 2935449: { } 2935449: 2935449: unordered_map(size_type __n, const hasher& __hf, 2935449: const allocator_type& __a) 2935449: : unordered_map(__n, __hf, key_equal(), __a) 2935449: { } 2935449: 2935449: template 2935449: unordered_map(_InputIterator __first, _InputIterator __last, 2935449: size_type __n, 2935449: const allocator_type& __a) 2935449: : unordered_map(__first, __last, __n, hasher(), key_equal(), __a) 2935449: { } 2935449: 2935449: template 2935449: unordered_map(_InputIterator __first, _InputIterator __last, 2935449: size_type __n, const hasher& __hf, 2935449: const allocator_type& __a) 2935449: : unordered_map(__first, __last, __n, __hf, key_equal(), __a) 2935449: { } 2935449: 2935449: unordered_map(initializer_list __l, 2935449: size_type __n, 2935449: const allocator_type& __a) 2935449: : unordered_map(__l, __n, hasher(), key_equal(), __a) 2935449: { } 2935449: 2935449: unordered_map(initializer_list __l, 2935449: size_type __n, const hasher& __hf, 2935449: const allocator_type& __a) 2935449: : unordered_map(__l, __n, __hf, key_equal(), __a) 2935449: { } 2935449: # 324 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: unordered_map& 2935449: operator=(const unordered_map&) = default; 2935449: 2935449: 2935449: unordered_map& 2935449: operator=(unordered_map&&) = default; 2935449: # 342 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: unordered_map& 2935449: operator=(initializer_list __l) 2935449: { 2935449: _M_h = __l; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: allocator_type 2935449: get_allocator() const noexcept 2935449: { return _M_h.get_allocator(); } 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] bool 2935449: empty() const noexcept 2935449: { return _M_h.empty(); } 2935449: 2935449: 2935449: size_type 2935449: size() const noexcept 2935449: { return _M_h.size(); } 2935449: 2935449: 2935449: size_type 2935449: max_size() const noexcept 2935449: { return _M_h.max_size(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: iterator 2935449: begin() noexcept 2935449: { return _M_h.begin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_iterator 2935449: begin() const noexcept 2935449: { return _M_h.begin(); } 2935449: 2935449: const_iterator 2935449: cbegin() const noexcept 2935449: { return _M_h.begin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: iterator 2935449: end() noexcept 2935449: { return _M_h.end(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_iterator 2935449: end() const noexcept 2935449: { return _M_h.end(); } 2935449: 2935449: const_iterator 2935449: cend() const noexcept 2935449: { return _M_h.end(); } 2935449: # 439 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: template 2935449: std::pair 2935449: emplace(_Args&&... __args) 2935449: { return _M_h.emplace(std::forward<_Args>(__args)...); } 2935449: # 470 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: template 2935449: iterator 2935449: emplace_hint(const_iterator __pos, _Args&&... __args) 2935449: { return _M_h.emplace_hint(__pos, std::forward<_Args>(__args)...); } 2935449: # 604 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: std::pair 2935449: insert(const value_type& __x) 2935449: { return _M_h.insert(__x); } 2935449: 2935449: 2935449: 2935449: std::pair 2935449: insert(value_type&& __x) 2935449: { return _M_h.insert(std::move(__x)); } 2935449: 2935449: template 2935449: __enable_if_t::value, 2935449: pair> 2935449: insert(_Pair&& __x) 2935449: { return _M_h.emplace(std::forward<_Pair>(__x)); } 2935449: # 643 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: iterator 2935449: insert(const_iterator __hint, const value_type& __x) 2935449: { return _M_h.insert(__hint, __x); } 2935449: 2935449: 2935449: 2935449: iterator 2935449: insert(const_iterator __hint, value_type&& __x) 2935449: { return _M_h.insert(__hint, std::move(__x)); } 2935449: 2935449: template 2935449: __enable_if_t::value, iterator> 2935449: insert(const_iterator __hint, _Pair&& __x) 2935449: { return _M_h.emplace_hint(__hint, std::forward<_Pair>(__x)); } 2935449: # 668 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: template 2935449: void 2935449: insert(_InputIterator __first, _InputIterator __last) 2935449: { _M_h.insert(__first, __last); } 2935449: # 680 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: void 2935449: insert(initializer_list __l) 2935449: { _M_h.insert(__l); } 2935449: # 810 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: iterator 2935449: erase(const_iterator __position) 2935449: { return _M_h.erase(__position); } 2935449: 2935449: 2935449: iterator 2935449: erase(iterator __position) 2935449: { return _M_h.erase(__position); } 2935449: # 832 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: size_type 2935449: erase(const key_type& __x) 2935449: { return _M_h.erase(__x); } 2935449: # 850 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: iterator 2935449: erase(const_iterator __first, const_iterator __last) 2935449: { return _M_h.erase(__first, __last); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: clear() noexcept 2935449: { _M_h.clear(); } 2935449: # 874 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: void 2935449: swap(unordered_map& __x) 2935449: noexcept( noexcept(_M_h.swap(__x._M_h)) ) 2935449: { _M_h.swap(__x._M_h); } 2935449: # 921 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: hasher 2935449: hash_function() const 2935449: { return _M_h.hash_function(); } 2935449: 2935449: 2935449: 2935449: key_equal 2935449: key_eq() const 2935449: { return _M_h.key_eq(); } 2935449: # 945 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: iterator 2935449: find(const key_type& __x) 2935449: { return _M_h.find(__x); } 2935449: # 956 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: const_iterator 2935449: find(const key_type& __x) const 2935449: { return _M_h.find(__x); } 2935449: # 978 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: size_type 2935449: count(const key_type& __x) const 2935449: { return _M_h.count(__x); } 2935449: # 1018 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: std::pair 2935449: equal_range(const key_type& __x) 2935449: { return _M_h.equal_range(__x); } 2935449: # 1030 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: std::pair 2935449: equal_range(const key_type& __x) const 2935449: { return _M_h.equal_range(__x); } 2935449: # 1056 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: mapped_type& 2935449: operator[](const key_type& __k) 2935449: { return _M_h[__k]; } 2935449: 2935449: mapped_type& 2935449: operator[](key_type&& __k) 2935449: { return _M_h[std::move(__k)]; } 2935449: # 1073 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: mapped_type& 2935449: at(const key_type& __k) 2935449: { return _M_h.at(__k); } 2935449: 2935449: const mapped_type& 2935449: at(const key_type& __k) const 2935449: { return _M_h.at(__k); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: size_type 2935449: bucket_count() const noexcept 2935449: { return _M_h.bucket_count(); } 2935449: 2935449: 2935449: size_type 2935449: max_bucket_count() const noexcept 2935449: { return _M_h.max_bucket_count(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: size_type 2935449: bucket_size(size_type __n) const 2935449: { return _M_h.bucket_size(__n); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: size_type 2935449: bucket(const key_type& __key) const 2935449: { return _M_h.bucket(__key); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: local_iterator 2935449: begin(size_type __n) 2935449: { return _M_h.begin(__n); } 2935449: # 1129 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: const_local_iterator 2935449: begin(size_type __n) const 2935449: { return _M_h.begin(__n); } 2935449: 2935449: const_local_iterator 2935449: cbegin(size_type __n) const 2935449: { return _M_h.cbegin(__n); } 2935449: # 1144 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: local_iterator 2935449: end(size_type __n) 2935449: { return _M_h.end(__n); } 2935449: # 1155 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: const_local_iterator 2935449: end(size_type __n) const 2935449: { return _M_h.end(__n); } 2935449: 2935449: const_local_iterator 2935449: cend(size_type __n) const 2935449: { return _M_h.cend(__n); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: float 2935449: load_factor() const noexcept 2935449: { return _M_h.load_factor(); } 2935449: 2935449: 2935449: 2935449: float 2935449: max_load_factor() const noexcept 2935449: { return _M_h.max_load_factor(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: max_load_factor(float __z) 2935449: { _M_h.max_load_factor(__z); } 2935449: # 1192 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: void 2935449: rehash(size_type __n) 2935449: { _M_h.rehash(__n); } 2935449: # 1203 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: void 2935449: reserve(size_type __n) 2935449: { _M_h.reserve(__n); } 2935449: 2935449: template 2935449: friend bool 2935449: operator==(const unordered_map<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>&, 2935449: const unordered_map<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>&); 2935449: }; 2935449: # 1362 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: template, 2935449: typename _Pred = equal_to<_Key>, 2935449: typename _Alloc = allocator>> 2935449: class unordered_multimap 2935449: { 2935449: typedef __ummap_hashtable<_Key, _Tp, _Hash, _Pred, _Alloc> _Hashtable; 2935449: _Hashtable _M_h; 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: typedef typename _Hashtable::key_type key_type; 2935449: typedef typename _Hashtable::value_type value_type; 2935449: typedef typename _Hashtable::mapped_type mapped_type; 2935449: typedef typename _Hashtable::hasher hasher; 2935449: typedef typename _Hashtable::key_equal key_equal; 2935449: typedef typename _Hashtable::allocator_type allocator_type; 2935449: 2935449: 2935449: 2935449: 2935449: typedef typename _Hashtable::pointer pointer; 2935449: typedef typename _Hashtable::const_pointer const_pointer; 2935449: typedef typename _Hashtable::reference reference; 2935449: typedef typename _Hashtable::const_reference const_reference; 2935449: typedef typename _Hashtable::iterator iterator; 2935449: typedef typename _Hashtable::const_iterator const_iterator; 2935449: typedef typename _Hashtable::local_iterator local_iterator; 2935449: typedef typename _Hashtable::const_local_iterator const_local_iterator; 2935449: typedef typename _Hashtable::size_type size_type; 2935449: typedef typename _Hashtable::difference_type difference_type; 2935449: # 1404 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: unordered_multimap() = default; 2935449: # 1413 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: explicit 2935449: unordered_multimap(size_type __n, 2935449: const hasher& __hf = hasher(), 2935449: const key_equal& __eql = key_equal(), 2935449: const allocator_type& __a = allocator_type()) 2935449: : _M_h(__n, __hf, __eql, __a) 2935449: { } 2935449: # 1434 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: template 2935449: unordered_multimap(_InputIterator __first, _InputIterator __last, 2935449: size_type __n = 0, 2935449: const hasher& __hf = hasher(), 2935449: const key_equal& __eql = key_equal(), 2935449: const allocator_type& __a = allocator_type()) 2935449: : _M_h(__first, __last, __n, __hf, __eql, __a) 2935449: { } 2935449: 2935449: 2935449: unordered_multimap(const unordered_multimap&) = default; 2935449: 2935449: 2935449: unordered_multimap(unordered_multimap&&) = default; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: explicit 2935449: unordered_multimap(const allocator_type& __a) 2935449: : _M_h(__a) 2935449: { } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: unordered_multimap(const unordered_multimap& __ummap, 2935449: const allocator_type& __a) 2935449: : _M_h(__ummap._M_h, __a) 2935449: { } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: unordered_multimap(unordered_multimap&& __ummap, 2935449: const allocator_type& __a) 2935449: noexcept( noexcept(_Hashtable(std::move(__ummap._M_h), __a)) ) 2935449: : _M_h(std::move(__ummap._M_h), __a) 2935449: { } 2935449: # 1490 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: unordered_multimap(initializer_list __l, 2935449: size_type __n = 0, 2935449: const hasher& __hf = hasher(), 2935449: const key_equal& __eql = key_equal(), 2935449: const allocator_type& __a = allocator_type()) 2935449: : _M_h(__l, __n, __hf, __eql, __a) 2935449: { } 2935449: 2935449: unordered_multimap(size_type __n, const allocator_type& __a) 2935449: : unordered_multimap(__n, hasher(), key_equal(), __a) 2935449: { } 2935449: 2935449: unordered_multimap(size_type __n, const hasher& __hf, 2935449: const allocator_type& __a) 2935449: : unordered_multimap(__n, __hf, key_equal(), __a) 2935449: { } 2935449: 2935449: template 2935449: unordered_multimap(_InputIterator __first, _InputIterator __last, 2935449: size_type __n, 2935449: const allocator_type& __a) 2935449: : unordered_multimap(__first, __last, __n, hasher(), key_equal(), __a) 2935449: { } 2935449: 2935449: template 2935449: unordered_multimap(_InputIterator __first, _InputIterator __last, 2935449: size_type __n, const hasher& __hf, 2935449: const allocator_type& __a) 2935449: : unordered_multimap(__first, __last, __n, __hf, key_equal(), __a) 2935449: { } 2935449: 2935449: unordered_multimap(initializer_list __l, 2935449: size_type __n, 2935449: const allocator_type& __a) 2935449: : unordered_multimap(__l, __n, hasher(), key_equal(), __a) 2935449: { } 2935449: 2935449: unordered_multimap(initializer_list __l, 2935449: size_type __n, const hasher& __hf, 2935449: const allocator_type& __a) 2935449: : unordered_multimap(__l, __n, __hf, key_equal(), __a) 2935449: { } 2935449: # 1577 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: unordered_multimap& 2935449: operator=(const unordered_multimap&) = default; 2935449: 2935449: 2935449: unordered_multimap& 2935449: operator=(unordered_multimap&&) = default; 2935449: # 1595 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: unordered_multimap& 2935449: operator=(initializer_list __l) 2935449: { 2935449: _M_h = __l; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: allocator_type 2935449: get_allocator() const noexcept 2935449: { return _M_h.get_allocator(); } 2935449: 2935449: 2935449: 2935449: 2935449: [[__nodiscard__]] bool 2935449: empty() const noexcept 2935449: { return _M_h.empty(); } 2935449: 2935449: 2935449: size_type 2935449: size() const noexcept 2935449: { return _M_h.size(); } 2935449: 2935449: 2935449: size_type 2935449: max_size() const noexcept 2935449: { return _M_h.max_size(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: iterator 2935449: begin() noexcept 2935449: { return _M_h.begin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_iterator 2935449: begin() const noexcept 2935449: { return _M_h.begin(); } 2935449: 2935449: const_iterator 2935449: cbegin() const noexcept 2935449: { return _M_h.begin(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: iterator 2935449: end() noexcept 2935449: { return _M_h.end(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: const_iterator 2935449: end() const noexcept 2935449: { return _M_h.end(); } 2935449: 2935449: const_iterator 2935449: cend() const noexcept 2935449: { return _M_h.end(); } 2935449: # 1687 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: template 2935449: iterator 2935449: emplace(_Args&&... __args) 2935449: { return _M_h.emplace(std::forward<_Args>(__args)...); } 2935449: # 1714 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: template 2935449: iterator 2935449: emplace_hint(const_iterator __pos, _Args&&... __args) 2935449: { return _M_h.emplace_hint(__pos, std::forward<_Args>(__args)...); } 2935449: # 1729 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: iterator 2935449: insert(const value_type& __x) 2935449: { return _M_h.insert(__x); } 2935449: 2935449: iterator 2935449: insert(value_type&& __x) 2935449: { return _M_h.insert(std::move(__x)); } 2935449: 2935449: template 2935449: __enable_if_t::value, iterator> 2935449: insert(_Pair&& __x) 2935449: { return _M_h.emplace(std::forward<_Pair>(__x)); } 2935449: # 1763 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: iterator 2935449: insert(const_iterator __hint, const value_type& __x) 2935449: { return _M_h.insert(__hint, __x); } 2935449: 2935449: 2935449: 2935449: iterator 2935449: insert(const_iterator __hint, value_type&& __x) 2935449: { return _M_h.insert(__hint, std::move(__x)); } 2935449: 2935449: template 2935449: __enable_if_t::value, iterator> 2935449: insert(const_iterator __hint, _Pair&& __x) 2935449: { return _M_h.emplace_hint(__hint, std::forward<_Pair>(__x)); } 2935449: # 1788 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: template 2935449: void 2935449: insert(_InputIterator __first, _InputIterator __last) 2935449: { _M_h.insert(__first, __last); } 2935449: # 1801 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: void 2935449: insert(initializer_list __l) 2935449: { _M_h.insert(__l); } 2935449: # 1870 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: iterator 2935449: erase(const_iterator __position) 2935449: { return _M_h.erase(__position); } 2935449: 2935449: 2935449: iterator 2935449: erase(iterator __position) 2935449: { return _M_h.erase(__position); } 2935449: # 1891 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: size_type 2935449: erase(const key_type& __x) 2935449: { return _M_h.erase(__x); } 2935449: # 1910 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: iterator 2935449: erase(const_iterator __first, const_iterator __last) 2935449: { return _M_h.erase(__first, __last); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: clear() noexcept 2935449: { _M_h.clear(); } 2935449: # 1934 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: void 2935449: swap(unordered_multimap& __x) 2935449: noexcept( noexcept(_M_h.swap(__x._M_h)) ) 2935449: { _M_h.swap(__x._M_h); } 2935449: # 1984 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: hasher 2935449: hash_function() const 2935449: { return _M_h.hash_function(); } 2935449: 2935449: 2935449: 2935449: key_equal 2935449: key_eq() const 2935449: { return _M_h.key_eq(); } 2935449: # 2008 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: iterator 2935449: find(const key_type& __x) 2935449: { return _M_h.find(__x); } 2935449: # 2019 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: const_iterator 2935449: find(const key_type& __x) const 2935449: { return _M_h.find(__x); } 2935449: # 2037 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: size_type 2935449: count(const key_type& __x) const 2935449: { return _M_h.count(__x); } 2935449: # 2075 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: std::pair 2935449: equal_range(const key_type& __x) 2935449: { return _M_h.equal_range(__x); } 2935449: # 2087 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: std::pair 2935449: equal_range(const key_type& __x) const 2935449: { return _M_h.equal_range(__x); } 2935449: # 2103 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: size_type 2935449: bucket_count() const noexcept 2935449: { return _M_h.bucket_count(); } 2935449: 2935449: 2935449: size_type 2935449: max_bucket_count() const noexcept 2935449: { return _M_h.max_bucket_count(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: size_type 2935449: bucket_size(size_type __n) const 2935449: { return _M_h.bucket_size(__n); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: size_type 2935449: bucket(const key_type& __key) const 2935449: { return _M_h.bucket(__key); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: local_iterator 2935449: begin(size_type __n) 2935449: { return _M_h.begin(__n); } 2935449: # 2147 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: const_local_iterator 2935449: begin(size_type __n) const 2935449: { return _M_h.begin(__n); } 2935449: 2935449: const_local_iterator 2935449: cbegin(size_type __n) const 2935449: { return _M_h.cbegin(__n); } 2935449: # 2162 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: local_iterator 2935449: end(size_type __n) 2935449: { return _M_h.end(__n); } 2935449: # 2173 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: const_local_iterator 2935449: end(size_type __n) const 2935449: { return _M_h.end(__n); } 2935449: 2935449: const_local_iterator 2935449: cend(size_type __n) const 2935449: { return _M_h.cend(__n); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: float 2935449: load_factor() const noexcept 2935449: { return _M_h.load_factor(); } 2935449: 2935449: 2935449: 2935449: float 2935449: max_load_factor() const noexcept 2935449: { return _M_h.max_load_factor(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: max_load_factor(float __z) 2935449: { _M_h.max_load_factor(__z); } 2935449: # 2210 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: void 2935449: rehash(size_type __n) 2935449: { _M_h.rehash(__n); } 2935449: # 2221 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: void 2935449: reserve(size_type __n) 2935449: { _M_h.reserve(__n); } 2935449: 2935449: template 2935449: friend bool 2935449: operator==(const unordered_multimap<_Key1, _Tp1, 2935449: _Hash1, _Pred1, _Alloc1>&, 2935449: const unordered_multimap<_Key1, _Tp1, 2935449: _Hash1, _Pred1, _Alloc1>&); 2935449: }; 2935449: # 2360 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: template 2935449: inline void 2935449: swap(unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 2935449: unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 2935449: noexcept(noexcept(__x.swap(__y))) 2935449: { __x.swap(__y); } 2935449: 2935449: template 2935449: inline void 2935449: swap(unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 2935449: unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 2935449: noexcept(noexcept(__x.swap(__y))) 2935449: { __x.swap(__y); } 2935449: 2935449: template 2935449: inline bool 2935449: operator==(const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 2935449: const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 2935449: { return __x._M_h._M_equal(__y._M_h); } 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator!=(const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 2935449: const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 2935449: { return !(__x == __y); } 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator==(const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 2935449: const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 2935449: { return __x._M_h._M_equal(__y._M_h); } 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: operator!=(const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 2935449: const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 2935449: { return !(__x == __y); } 2935449: 2935449: 2935449: 2935449: # 2454 "/usr/arm-linux-gnueabi/include/c++/15/bits/unordered_map.h" 3 2935449: 2935449: } 2935449: # 44 "/usr/arm-linux-gnueabi/include/c++/15/unordered_map" 2 3 2935449: # 59 "/usr/arm-linux-gnueabi/include/c++/15/unordered_map" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 60 "/usr/arm-linux-gnueabi/include/c++/15/unordered_map" 2 3 2935449: # 26 "/<>/_include/workflow/HttpUtil.h" 2 2935449: # 1 "/<>/_include/workflow/http_parser.h" 1 2935449: # 22 "/<>/_include/workflow/http_parser.h" 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 23 "/<>/_include/workflow/http_parser.h" 2 2935449: # 1 "/<>/_include/workflow/list.h" 1 2935449: # 14 "/<>/_include/workflow/list.h" 2935449: 2935449: # 14 "/<>/_include/workflow/list.h" 2935449: struct list_head { 2935449: struct list_head *next, *prev; 2935449: }; 2935449: # 30 "/<>/_include/workflow/list.h" 2935449: static inline void INIT_LIST_HEAD(struct list_head *list) 2935449: { 2935449: list->next = list; 2935449: list->prev = list; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static inline void __list_add(struct list_head *entry, 2935449: struct list_head *prev, 2935449: struct list_head *next) 2935449: { 2935449: next->prev = entry; 2935449: entry->next = next; 2935449: entry->prev = prev; 2935449: prev->next = entry; 2935449: } 2935449: # 60 "/<>/_include/workflow/list.h" 2935449: static inline void list_add(struct list_head *entry, struct list_head *head) 2935449: { 2935449: __list_add(entry, head, head->next); 2935449: } 2935449: # 73 "/<>/_include/workflow/list.h" 2935449: static inline void list_add_tail(struct list_head *entry, 2935449: struct list_head *head) 2935449: { 2935449: __list_add(entry, head->prev, head); 2935449: } 2935449: # 86 "/<>/_include/workflow/list.h" 2935449: static inline void __list_del(struct list_head *prev, struct list_head *next) 2935449: { 2935449: next->prev = prev; 2935449: prev->next = next; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static inline void list_del(struct list_head *entry) 2935449: { 2935449: __list_del(entry->prev, entry->next); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static inline void list_move(struct list_head *entry, struct list_head *head) 2935449: { 2935449: __list_del(entry->prev, entry->next); 2935449: list_add(entry, head); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static inline void list_move_tail(struct list_head *entry, 2935449: struct list_head *head) 2935449: { 2935449: __list_del(entry->prev, entry->next); 2935449: list_add_tail(entry, head); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static inline int list_empty(const struct list_head *head) 2935449: { 2935449: return head->next == head; 2935449: } 2935449: 2935449: static inline void __list_splice(const struct list_head *list, 2935449: struct list_head *prev, 2935449: struct list_head *next) 2935449: { 2935449: struct list_head *first = list->next; 2935449: struct list_head *last = list->prev; 2935449: 2935449: first->prev = prev; 2935449: prev->next = first; 2935449: 2935449: last->next = next; 2935449: next->prev = last; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static inline void list_splice(const struct list_head *list, 2935449: struct list_head *head) 2935449: { 2935449: if (!list_empty(list)) 2935449: __list_splice(list, head, head->next); 2935449: } 2935449: # 168 "/<>/_include/workflow/list.h" 2935449: static inline void list_splice_init(struct list_head *list, 2935449: struct list_head *head) 2935449: { 2935449: if (!list_empty(list)) { 2935449: __list_splice(list, head, head->next); 2935449: INIT_LIST_HEAD(list); 2935449: } 2935449: } 2935449: # 227 "/<>/_include/workflow/list.h" 2935449: struct slist_node { 2935449: struct slist_node *next; 2935449: }; 2935449: 2935449: struct slist_head { 2935449: struct slist_node first, *last; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static inline void INIT_SLIST_HEAD(struct slist_head *list) 2935449: { 2935449: list->first.next = (struct slist_node *)0; 2935449: list->last = &list->first; 2935449: } 2935449: 2935449: static inline void slist_add_after(struct slist_node *entry, 2935449: struct slist_node *prev, 2935449: struct slist_head *list) 2935449: { 2935449: entry->next = prev->next; 2935449: prev->next = entry; 2935449: if (!entry->next) 2935449: list->last = entry; 2935449: } 2935449: 2935449: static inline void slist_add_head(struct slist_node *entry, 2935449: struct slist_head *list) 2935449: { 2935449: slist_add_after(entry, &list->first, list); 2935449: } 2935449: 2935449: static inline void slist_add_tail(struct slist_node *entry, 2935449: struct slist_head *list) 2935449: { 2935449: entry->next = (struct slist_node *)0; 2935449: list->last->next = entry; 2935449: list->last = entry; 2935449: } 2935449: 2935449: static inline void slist_del_after(struct slist_node *prev, 2935449: struct slist_head *list) 2935449: { 2935449: prev->next = prev->next->next; 2935449: if (!prev->next) 2935449: list->last = prev; 2935449: } 2935449: 2935449: static inline void slist_del_head(struct slist_head *list) 2935449: { 2935449: slist_del_after(&list->first, list); 2935449: } 2935449: 2935449: static inline int slist_empty(const struct slist_head *list) 2935449: { 2935449: return !list->first.next; 2935449: } 2935449: 2935449: static inline void __slist_splice(const struct slist_head *list, 2935449: struct slist_node *prev, 2935449: struct slist_head *head) 2935449: { 2935449: list->last->next = prev->next; 2935449: prev->next = list->first.next; 2935449: if (!list->last->next) 2935449: head->last = list->last; 2935449: } 2935449: 2935449: static inline void slist_splice(const struct slist_head *list, 2935449: struct slist_node *prev, 2935449: struct slist_head *head) 2935449: { 2935449: if (!slist_empty(list)) 2935449: __slist_splice(list, prev, head); 2935449: } 2935449: 2935449: static inline void slist_splice_init(struct slist_head *list, 2935449: struct slist_node *prev, 2935449: struct slist_head *head) 2935449: { 2935449: if (!slist_empty(list)) { 2935449: __slist_splice(list, prev, head); 2935449: INIT_SLIST_HEAD(list); 2935449: } 2935449: } 2935449: # 24 "/<>/_include/workflow/http_parser.h" 2 2935449: 2935449: 2935449: 2935449: typedef struct __http_parser 2935449: { 2935449: int header_state; 2935449: int chunk_state; 2935449: size_t header_offset; 2935449: size_t chunk_offset; 2935449: size_t content_length; 2935449: size_t transfer_length; 2935449: char *version; 2935449: char *method; 2935449: char *uri; 2935449: char *code; 2935449: char *phrase; 2935449: struct list_head header_list; 2935449: char namebuf[64]; 2935449: void *msgbuf; 2935449: size_t msgsize; 2935449: size_t bufsize; 2935449: char has_connection; 2935449: char has_content_length; 2935449: char has_keep_alive; 2935449: char expect_continue; 2935449: char keep_alive; 2935449: char chunked; 2935449: char complete; 2935449: char is_resp; 2935449: } http_parser_t; 2935449: 2935449: typedef struct __http_header_cursor 2935449: { 2935449: const struct list_head *head; 2935449: const struct list_head *next; 2935449: } http_header_cursor_t; 2935449: 2935449: 2935449: extern "C" 2935449: { 2935449: 2935449: 2935449: void http_parser_init(int is_resp, http_parser_t *parser); 2935449: int http_parser_append_message(const void *buf, size_t *n, 2935449: http_parser_t *parser); 2935449: int http_parser_get_body(const void **body, size_t *size, 2935449: const http_parser_t *parser); 2935449: int http_parser_header_complete(const http_parser_t *parser); 2935449: int http_parser_set_method(const char *method, http_parser_t *parser); 2935449: int http_parser_set_uri(const char *uri, http_parser_t *parser); 2935449: int http_parser_set_version(const char *version, http_parser_t *parser); 2935449: int http_parser_set_code(const char *code, http_parser_t *parser); 2935449: int http_parser_set_phrase(const char *phrase, http_parser_t *parser); 2935449: int http_parser_add_header(const void *name, size_t name_len, 2935449: const void *value, size_t value_len, 2935449: http_parser_t *parser); 2935449: int http_parser_set_header(const void *name, size_t name_len, 2935449: const void *value, size_t value_len, 2935449: http_parser_t *parser); 2935449: void http_parser_deinit(http_parser_t *parser); 2935449: 2935449: int http_header_cursor_next(const void **name, size_t *name_len, 2935449: const void **value, size_t *value_len, 2935449: http_header_cursor_t *cursor); 2935449: int http_header_cursor_find(const void *name, size_t name_len, 2935449: const void **value, size_t *value_len, 2935449: http_header_cursor_t *cursor); 2935449: int http_header_cursor_erase(http_header_cursor_t *cursor); 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: static inline const char *http_parser_get_method(const http_parser_t *parser) 2935449: { 2935449: return parser->method; 2935449: } 2935449: 2935449: static inline const char *http_parser_get_uri(const http_parser_t *parser) 2935449: { 2935449: return parser->uri; 2935449: } 2935449: 2935449: static inline const char *http_parser_get_version(const http_parser_t *parser) 2935449: { 2935449: return parser->version; 2935449: } 2935449: 2935449: static inline const char *http_parser_get_code(const http_parser_t *parser) 2935449: { 2935449: return parser->code; 2935449: } 2935449: 2935449: static inline const char *http_parser_get_phrase(const http_parser_t *parser) 2935449: { 2935449: return parser->phrase; 2935449: } 2935449: 2935449: static inline int http_parser_chunked(const http_parser_t *parser) 2935449: { 2935449: return parser->chunked; 2935449: } 2935449: 2935449: static inline int http_parser_keep_alive(const http_parser_t *parser) 2935449: { 2935449: return parser->keep_alive; 2935449: } 2935449: 2935449: static inline int http_parser_has_connection(const http_parser_t *parser) 2935449: { 2935449: return parser->has_connection; 2935449: } 2935449: 2935449: static inline int http_parser_has_content_length(const http_parser_t *parser) 2935449: { 2935449: return parser->has_content_length; 2935449: } 2935449: 2935449: static inline int http_parser_has_keep_alive(const http_parser_t *parser) 2935449: { 2935449: return parser->has_keep_alive; 2935449: } 2935449: 2935449: static inline void http_parser_close_message(http_parser_t *parser) 2935449: { 2935449: parser->complete = 1; 2935449: } 2935449: 2935449: static inline void http_header_cursor_init(http_header_cursor_t *cursor, 2935449: const http_parser_t *parser) 2935449: { 2935449: cursor->head = &parser->header_list; 2935449: cursor->next = cursor->head; 2935449: } 2935449: 2935449: static inline void http_header_cursor_rewind(http_header_cursor_t *cursor) 2935449: { 2935449: cursor->next = cursor->head; 2935449: } 2935449: 2935449: static inline void http_header_cursor_deinit(http_header_cursor_t *cursor) 2935449: { 2935449: } 2935449: # 27 "/<>/_include/workflow/HttpUtil.h" 2 2935449: # 1 "/<>/_include/workflow/HttpMessage.h" 1 2935449: # 22 "/<>/_include/workflow/HttpMessage.h" 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/stdlib.h" 1 3 2935449: # 23 "/<>/_include/workflow/HttpMessage.h" 2 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/<>/_include/workflow/ProtocolMessage.h" 1 2935449: # 23 "/<>/_include/workflow/ProtocolMessage.h" 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 24 "/<>/_include/workflow/ProtocolMessage.h" 2 2935449: 2935449: # 1 "/<>/_include/workflow/Communicator.h" 1 2935449: # 23 "/<>/_include/workflow/Communicator.h" 2935449: # 1 "/usr/arm-linux-gnueabi/include/sys/socket.h" 1 3 2935449: # 24 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: 2935449: # 24 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: extern "C" { 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/struct_iovec.h" 1 3 2935449: # 23 "/usr/arm-linux-gnueabi/include/bits/types/struct_iovec.h" 3 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 24 "/usr/arm-linux-gnueabi/include/bits/types/struct_iovec.h" 2 3 2935449: 2935449: 2935449: struct iovec 2935449: { 2935449: void *iov_base; 2935449: size_t iov_len; 2935449: }; 2935449: # 27 "/usr/arm-linux-gnueabi/include/sys/socket.h" 2 3 2935449: 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 29 "/usr/arm-linux-gnueabi/include/sys/socket.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/socket.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/bits/socket.h" 3 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 28 "/usr/arm-linux-gnueabi/include/bits/socket.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef __socklen_t socklen_t; 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/socket_type.h" 1 3 2935449: # 24 "/usr/arm-linux-gnueabi/include/bits/socket_type.h" 3 2935449: enum __socket_type 2935449: { 2935449: SOCK_STREAM = 1, 2935449: 2935449: 2935449: SOCK_DGRAM = 2, 2935449: 2935449: 2935449: SOCK_RAW = 3, 2935449: 2935449: SOCK_RDM = 4, 2935449: 2935449: SOCK_SEQPACKET = 5, 2935449: 2935449: 2935449: SOCK_DCCP = 6, 2935449: 2935449: SOCK_PACKET = 10, 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: SOCK_CLOEXEC = 02000000, 2935449: 2935449: 2935449: SOCK_NONBLOCK = 00004000 2935449: 2935449: 2935449: }; 2935449: # 39 "/usr/arm-linux-gnueabi/include/bits/socket.h" 2 3 2935449: # 181 "/usr/arm-linux-gnueabi/include/bits/socket.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/sockaddr.h" 1 3 2935449: # 28 "/usr/arm-linux-gnueabi/include/bits/sockaddr.h" 3 2935449: typedef unsigned short int sa_family_t; 2935449: # 182 "/usr/arm-linux-gnueabi/include/bits/socket.h" 2 3 2935449: 2935449: 2935449: struct __attribute__ ((__may_alias__)) sockaddr 2935449: { 2935449: sa_family_t sa_family; 2935449: char sa_data[14]; 2935449: }; 2935449: # 197 "/usr/arm-linux-gnueabi/include/bits/socket.h" 3 2935449: struct __attribute__ ((__may_alias__)) sockaddr_storage 2935449: { 2935449: sa_family_t ss_family; 2935449: char __ss_padding[(128 - (sizeof (unsigned short int)) - sizeof (unsigned long int))]; 2935449: unsigned long int __ss_align; 2935449: }; 2935449: 2935449: 2935449: 2935449: enum 2935449: { 2935449: MSG_OOB = 0x01, 2935449: 2935449: MSG_PEEK = 0x02, 2935449: 2935449: MSG_DONTROUTE = 0x04, 2935449: 2935449: 2935449: 2935449: MSG_TRYHARD = MSG_DONTROUTE, 2935449: 2935449: 2935449: MSG_CTRUNC = 0x08, 2935449: 2935449: MSG_PROXY = 0x10, 2935449: 2935449: MSG_TRUNC = 0x20, 2935449: 2935449: MSG_DONTWAIT = 0x40, 2935449: 2935449: MSG_EOR = 0x80, 2935449: 2935449: MSG_WAITALL = 0x100, 2935449: 2935449: MSG_FIN = 0x200, 2935449: 2935449: MSG_SYN = 0x400, 2935449: 2935449: MSG_CONFIRM = 0x800, 2935449: 2935449: MSG_RST = 0x1000, 2935449: 2935449: MSG_ERRQUEUE = 0x2000, 2935449: 2935449: MSG_NOSIGNAL = 0x4000, 2935449: 2935449: MSG_MORE = 0x8000, 2935449: 2935449: MSG_WAITFORONE = 0x10000, 2935449: 2935449: MSG_BATCH = 0x40000, 2935449: 2935449: MSG_SOCK_DEVMEM = 0x2000000, 2935449: 2935449: MSG_ZEROCOPY = 0x4000000, 2935449: 2935449: MSG_FASTOPEN = 0x20000000, 2935449: 2935449: 2935449: MSG_CMSG_CLOEXEC = 0x40000000 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: struct msghdr 2935449: { 2935449: void *msg_name; 2935449: socklen_t msg_namelen; 2935449: 2935449: struct iovec *msg_iov; 2935449: size_t msg_iovlen; 2935449: 2935449: void *msg_control; 2935449: size_t msg_controllen; 2935449: 2935449: 2935449: 2935449: 2935449: int msg_flags; 2935449: }; 2935449: 2935449: 2935449: struct cmsghdr 2935449: { 2935449: size_t cmsg_len; 2935449: 2935449: 2935449: 2935449: 2935449: int cmsg_level; 2935449: int cmsg_type; 2935449: 2935449: __extension__ unsigned char __cmsg_data []; 2935449: 2935449: }; 2935449: # 319 "/usr/arm-linux-gnueabi/include/bits/socket.h" 3 2935449: extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, 2935449: struct cmsghdr *__cmsg) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: extern __inline __attribute__ ((__gnu_inline__)) struct cmsghdr * 2935449: __attribute__ ((__leaf__)) __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) noexcept (true) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: unsigned char * __msg_control_ptr = (unsigned char *) __mhdr->msg_control; 2935449: unsigned char * __cmsg_ptr = (unsigned char *) __cmsg; 2935449: 2935449: size_t __size_needed = sizeof (struct cmsghdr) 2935449: + ((sizeof (size_t) - ((__cmsg->cmsg_len) & (sizeof (size_t) - 1))) & (sizeof (size_t) - 1)); 2935449: 2935449: 2935449: if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) 2935449: return (struct cmsghdr *) 0; 2935449: 2935449: 2935449: 2935449: if (((size_t) 2935449: (__msg_control_ptr + __mhdr->msg_controllen - __cmsg_ptr) 2935449: < __size_needed) 2935449: || ((size_t) 2935449: (__msg_control_ptr + __mhdr->msg_controllen - __cmsg_ptr 2935449: - __size_needed) 2935449: < __cmsg->cmsg_len)) 2935449: 2935449: return (struct cmsghdr *) 0; 2935449: 2935449: 2935449: __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg 2935449: + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))); 2935449: return __cmsg; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: enum 2935449: { 2935449: SCM_RIGHTS = 0x01 2935449: 2935449: 2935449: , SCM_CREDENTIALS = 0x02 2935449: 2935449: , SCM_SECURITY = 0x03 2935449: 2935449: , SCM_PIDFD = 0x04 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: struct ucred 2935449: { 2935449: pid_t pid; 2935449: uid_t uid; 2935449: gid_t gid; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm/socket.h" 1 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm-generic/socket.h" 1 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm/sockios.h" 1 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/asm-generic/sockios.h" 1 3 2935449: # 2 "/usr/arm-linux-gnueabi/include/asm/sockios.h" 2 3 2935449: # 7 "/usr/arm-linux-gnueabi/include/asm-generic/socket.h" 2 3 2935449: # 2 "/usr/arm-linux-gnueabi/include/asm/socket.h" 2 3 2935449: # 393 "/usr/arm-linux-gnueabi/include/bits/socket.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct linger 2935449: { 2935449: int l_onoff; 2935449: int l_linger; 2935449: }; 2935449: # 34 "/usr/arm-linux-gnueabi/include/sys/socket.h" 2 3 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/struct_osockaddr.h" 1 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct osockaddr 2935449: { 2935449: unsigned short int sa_family; 2935449: unsigned char sa_data[14]; 2935449: }; 2935449: # 37 "/usr/arm-linux-gnueabi/include/sys/socket.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: enum 2935449: { 2935449: SHUT_RD = 0, 2935449: 2935449: SHUT_WR, 2935449: 2935449: SHUT_RDWR 2935449: 2935449: }; 2935449: # 90 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: struct mmsghdr 2935449: { 2935449: struct msghdr msg_hdr; 2935449: unsigned int msg_len; 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int socket (int __domain, int __type, int __protocol) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int socketpair (int __domain, int __type, int __protocol, 2935449: int __fds[2]) noexcept (true); 2935449: 2935449: 2935449: extern int bind (int __fd, const struct sockaddr * __addr, socklen_t __len) 2935449: noexcept (true); 2935449: 2935449: 2935449: extern int getsockname (int __fd, struct sockaddr *__restrict __addr, 2935449: socklen_t *__restrict __len) noexcept (true); 2935449: # 126 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: extern int connect (int __fd, const struct sockaddr * __addr, socklen_t __len); 2935449: 2935449: 2935449: 2935449: extern int getpeername (int __fd, struct sockaddr *__restrict __addr, 2935449: socklen_t *__restrict __len) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern ssize_t send (int __fd, const void *__buf, size_t __n, int __flags); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern ssize_t sendto (int __fd, const void *__buf, size_t __n, 2935449: int __flags, const struct sockaddr * __addr, 2935449: socklen_t __addr_len); 2935449: # 163 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n, 2935449: int __flags, struct sockaddr *__restrict __addr, 2935449: socklen_t *__restrict __addr_len); 2935449: # 178 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: extern ssize_t sendmsg (int __fd, const struct msghdr *__message, int __flags) __asm__ ("" "__sendmsg64") 2935449: 2935449: ; 2935449: # 199 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: extern int sendmmsg (int __fd, struct mmsghdr *__vmessages, unsigned int __vlen, int __flags) __asm__ ("" "__sendmmsg64") 2935449: 2935449: ; 2935449: # 219 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags) __asm__ ("" "__recvmsg64") 2935449: 2935449: ; 2935449: # 240 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: extern int recvmmsg (int __fd, struct mmsghdr *__vmessages, unsigned int __vlen, int __flags, struct timespec *__tmo) __asm__ ("" "__recvmmsg64") 2935449: 2935449: 2935449: ; 2935449: # 260 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: extern int getsockopt (int __fd, int __level, int __optname, void *__restrict __optval, socklen_t *__restrict __optlen) noexcept (true) __asm__ ("" "__getsockopt64") 2935449: 2935449: 2935449: 2935449: ; 2935449: # 281 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: extern int setsockopt (int __fd, int __level, int __optname, const void *__optval, socklen_t __optlen) noexcept (true) __asm__ ("" "__setsockopt64") 2935449: 2935449: 2935449: ; 2935449: # 296 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: extern int listen (int __fd, int __n) noexcept (true); 2935449: # 306 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: extern int accept (int __fd, struct sockaddr *__restrict __addr, 2935449: socklen_t *__restrict __addr_len); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int accept4 (int __fd, struct sockaddr *__restrict __addr, 2935449: socklen_t *__restrict __addr_len, int __flags); 2935449: # 324 "/usr/arm-linux-gnueabi/include/sys/socket.h" 3 2935449: extern int shutdown (int __fd, int __how) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: extern int sockatmark (int __fd) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int isfdtype (int __fd, int __fdtype) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/socket2.h" 1 3 2935449: # 23 "/usr/arm-linux-gnueabi/include/bits/socket2.h" 3 2935449: extern ssize_t __recv_chk (int __fd, void *__buf, size_t __n, size_t __buflen, 2935449: int __flags); 2935449: extern ssize_t __recv_alias (int __fd, void *__buf, size_t __n, int __flags) __asm__ ("" "recv") 2935449: ; 2935449: extern ssize_t __recv_chk_warn (int __fd, void *__buf, size_t __n, size_t __buflen, int __flags) __asm__ ("" "__recv_chk") 2935449: 2935449: 2935449: __attribute__((__warning__ ("recv called with bigger length than size of destination " "buffer"))) 2935449: ; 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) ssize_t 2935449: recv (int __fd, void * __buf, size_t __n, 2935449: int __flags) 2935449: 2935449: 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__buf, 0); 2935449: if (((__builtin_constant_p (__sz) && (__sz) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__sz)) / ((sizeof (char))))) && (((unsigned int) (__n)) <= ((__sz)) / ((sizeof (char))))))) 2935449: return __recv_alias (__fd, __buf, __n, __flags); 2935449: 2935449: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__sz) / (sizeof (char)))) && !(((unsigned int) (__n)) <= (__sz) / (sizeof (char))))) 2935449: return __recv_chk_warn (__fd, __buf, __n, __sz, __flags); 2935449: 2935449: return __recv_chk (__fd, __buf, __n, __sz, __flags); 2935449: } 2935449: 2935449: extern ssize_t __recvfrom_chk (int __fd, void *__restrict __buf, size_t __n, 2935449: size_t __buflen, int __flags, 2935449: struct sockaddr *__restrict __addr, 2935449: socklen_t *__restrict __addr_len); 2935449: extern ssize_t __recvfrom_alias (int __fd, void *__restrict __buf, size_t __n, int __flags, struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len) __asm__ ("" "recvfrom") 2935449: 2935449: 2935449: ; 2935449: extern ssize_t __recvfrom_chk_warn (int __fd, void *__restrict __buf, size_t __n, size_t __buflen, int __flags, struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len) __asm__ ("" "__recvfrom_chk") 2935449: 2935449: 2935449: 2935449: 2935449: __attribute__((__warning__ ("recvfrom called with bigger length than size of " "destination buffer"))) 2935449: ; 2935449: 2935449: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) ssize_t 2935449: recvfrom (int __fd, void * __restrict __buf, 2935449: size_t __n, int __flags, 2935449: struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len) 2935449: 2935449: 2935449: 2935449: { 2935449: size_t __sz = __builtin_object_size (__buf, 0); 2935449: if (((__builtin_constant_p (__sz) && (__sz) == (unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= ((__sz)) / ((sizeof (char))))) && (((unsigned int) (__n)) <= ((__sz)) / ((sizeof (char))))))) 2935449: return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len); 2935449: 2935449: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((unsigned int) (__n)) <= (__sz) / (sizeof (char)))) && !(((unsigned int) (__n)) <= (__sz) / (sizeof (char))))) 2935449: return __recvfrom_chk_warn (__fd, __buf, __n, __sz, __flags, __addr, 2935449: __addr_len); 2935449: 2935449: return __recvfrom_chk (__fd, __buf, __n, __sz, __flags, __addr, __addr_len); 2935449: } 2935449: # 344 "/usr/arm-linux-gnueabi/include/sys/socket.h" 2 3 2935449: 2935449: 2935449: } 2935449: # 24 "/<>/_include/workflow/Communicator.h" 2 2935449: # 1 "/usr/arm-linux-gnueabi/include/sys/uio.h" 1 3 2935449: # 31 "/usr/arm-linux-gnueabi/include/sys/uio.h" 3 2935449: extern "C" { 2935449: # 41 "/usr/arm-linux-gnueabi/include/sys/uio.h" 3 2935449: extern ssize_t readv (int __fd, const struct iovec *__iovec, int __count) 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__read_only__, 2, 3))); 2935449: # 52 "/usr/arm-linux-gnueabi/include/sys/uio.h" 3 2935449: extern ssize_t writev (int __fd, const struct iovec *__iovec, int __count) 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__read_only__, 2, 3))); 2935449: # 86 "/usr/arm-linux-gnueabi/include/sys/uio.h" 3 2935449: extern ssize_t preadv (int __fd, const struct iovec *__iovec, int __count, __off64_t __offset) __asm__ ("" "preadv64") 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__read_only__, 2, 3))); 2935449: extern ssize_t pwritev (int __fd, const struct iovec *__iovec, int __count, __off64_t __offset) __asm__ ("" "pwritev64") 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__read_only__, 2, 3))); 2935449: # 110 "/usr/arm-linux-gnueabi/include/sys/uio.h" 3 2935449: extern ssize_t preadv64 (int __fd, const struct iovec *__iovec, int __count, 2935449: __off64_t __offset) 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__read_only__, 2, 3))); 2935449: # 123 "/usr/arm-linux-gnueabi/include/sys/uio.h" 3 2935449: extern ssize_t pwritev64 (int __fd, const struct iovec *__iovec, int __count, 2935449: __off64_t __offset) 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__read_only__, 2, 3))); 2935449: # 143 "/usr/arm-linux-gnueabi/include/sys/uio.h" 3 2935449: extern ssize_t pwritev2 (int __fd, const struct iovec *__iovec, int __count, __off64_t __offset, int __flags) __asm__ ("" "pwritev64v2") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__read_only__, 2, 3))); 2935449: extern ssize_t preadv2 (int __fd, const struct iovec *__iovec, int __count, __off64_t __offset, int __flags) __asm__ ("" "preadv64v2") 2935449: 2935449: 2935449: 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__read_only__, 2, 3))); 2935449: # 161 "/usr/arm-linux-gnueabi/include/sys/uio.h" 3 2935449: extern ssize_t preadv64v2 (int __fp, const struct iovec *__iovec, 2935449: int __count, __off64_t __offset, 2935449: int ___flags) 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__read_only__, 2, 3))); 2935449: 2935449: 2935449: extern ssize_t pwritev64v2 (int __fd, const struct iovec *__iodev, 2935449: int __count, __off64_t __offset, 2935449: int __flags) 2935449: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__read_only__, 2, 3))); 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/uio-ext.h" 1 3 2935449: # 26 "/usr/arm-linux-gnueabi/include/bits/uio-ext.h" 3 2935449: extern "C" { 2935449: 2935449: 2935449: extern ssize_t process_vm_readv (pid_t __pid, const struct iovec *__lvec, 2935449: unsigned long int __liovcnt, 2935449: const struct iovec *__rvec, 2935449: unsigned long int __riovcnt, 2935449: unsigned long int __flags) 2935449: noexcept (true); 2935449: 2935449: 2935449: extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec, 2935449: unsigned long int __liovcnt, 2935449: const struct iovec *__rvec, 2935449: unsigned long int __riovcnt, 2935449: unsigned long int __flags) 2935449: noexcept (true); 2935449: # 54 "/usr/arm-linux-gnueabi/include/bits/uio-ext.h" 3 2935449: } 2935449: # 180 "/usr/arm-linux-gnueabi/include/sys/uio.h" 2 3 2935449: # 25 "/<>/_include/workflow/Communicator.h" 2 2935449: 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 27 "/<>/_include/workflow/Communicator.h" 2 2935449: 2935449: 2935449: 2935449: # 1 "/<>/_include/workflow/poller.h" 1 2935449: # 27 "/<>/_include/workflow/poller.h" 2935449: 2935449: # 27 "/<>/_include/workflow/poller.h" 2935449: typedef struct __poller poller_t; 2935449: typedef struct __poller_message poller_message_t; 2935449: 2935449: struct __poller_message 2935449: { 2935449: int (*append)(const void *, size_t *, poller_message_t *); 2935449: char data[0]; 2935449: }; 2935449: 2935449: struct poller_data 2935449: { 2935449: # 51 "/<>/_include/workflow/poller.h" 2935449: short operation; 2935449: unsigned short iovcnt; 2935449: int fd; 2935449: SSL *ssl; 2935449: union 2935449: { 2935449: poller_message_t *(*create_message)(void *); 2935449: int (*partial_written)(size_t, void *); 2935449: void *(*accept)(const struct sockaddr *, socklen_t, int, void *); 2935449: void *(*recvfrom)(const struct sockaddr *, socklen_t, 2935449: const void *, size_t, void *); 2935449: void *(*event)(void *); 2935449: void *(*notify)(void *, void *); 2935449: }; 2935449: void *context; 2935449: union 2935449: { 2935449: poller_message_t *message; 2935449: struct iovec *write_iov; 2935449: void *result; 2935449: }; 2935449: }; 2935449: 2935449: struct poller_result 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int state; 2935449: int error; 2935449: struct poller_data data; 2935449: 2935449: }; 2935449: 2935449: struct poller_params 2935449: { 2935449: size_t max_open_files; 2935449: void (*callback)(struct poller_result *, void *); 2935449: void *context; 2935449: }; 2935449: 2935449: 2935449: extern "C" 2935449: { 2935449: 2935449: 2935449: poller_t *poller_create(const struct poller_params *params); 2935449: int poller_start(poller_t *poller); 2935449: int poller_add(const struct poller_data *data, int timeout, poller_t *poller); 2935449: int poller_del(int fd, poller_t *poller); 2935449: int poller_mod(const struct poller_data *data, int timeout, poller_t *poller); 2935449: int poller_set_timeout(int fd, int timeout, poller_t *poller); 2935449: int poller_add_timer(const struct timespec *value, void *context, void **timer, 2935449: poller_t *poller); 2935449: int poller_del_timer(void *timer, poller_t *poller); 2935449: void poller_set_callback(void (*callback)(struct poller_result *, void *), 2935449: poller_t *poller); 2935449: void poller_stop(poller_t *poller); 2935449: void poller_destroy(poller_t *poller); 2935449: 2935449: 2935449: } 2935449: # 31 "/<>/_include/workflow/Communicator.h" 2 2935449: 2935449: class CommConnection 2935449: { 2935449: public: 2935449: virtual ~CommConnection() { } 2935449: }; 2935449: 2935449: class CommTarget 2935449: { 2935449: public: 2935449: int init(const struct sockaddr *addr, socklen_t addrlen, 2935449: int connect_timeout, int response_timeout); 2935449: void deinit(); 2935449: 2935449: public: 2935449: void get_addr(const struct sockaddr **addr, socklen_t *addrlen) const 2935449: { 2935449: *addr = this->addr; 2935449: *addrlen = this->addrlen; 2935449: } 2935449: 2935449: int has_idle_conn() const { return !list_empty(&this->idle_list); } 2935449: 2935449: protected: 2935449: void set_ssl(SSL_CTX *ssl_ctx, int ssl_connect_timeout) 2935449: { 2935449: this->ssl_ctx = ssl_ctx; 2935449: this->ssl_connect_timeout = ssl_connect_timeout; 2935449: } 2935449: 2935449: SSL_CTX *get_ssl_ctx() const { return this->ssl_ctx; } 2935449: 2935449: private: 2935449: virtual int create_connect_fd() 2935449: { 2935449: return socket(this->addr->sa_family, 2935449: # 66 "/<>/_include/workflow/Communicator.h" 3 2935449: SOCK_STREAM 2935449: # 66 "/<>/_include/workflow/Communicator.h" 2935449: , 0); 2935449: } 2935449: 2935449: virtual CommConnection *new_connection(int connect_fd) 2935449: { 2935449: return new CommConnection; 2935449: } 2935449: 2935449: virtual int init_ssl(SSL *ssl) { return 0; } 2935449: 2935449: public: 2935449: virtual void release() { } 2935449: 2935449: private: 2935449: struct sockaddr *addr; 2935449: socklen_t addrlen; 2935449: int connect_timeout; 2935449: int response_timeout; 2935449: int ssl_connect_timeout; 2935449: SSL_CTX *ssl_ctx; 2935449: 2935449: private: 2935449: struct list_head idle_list; 2935449: pthread_mutex_t mutex; 2935449: 2935449: public: 2935449: virtual ~CommTarget() { } 2935449: friend class CommServiceTarget; 2935449: friend class Communicator; 2935449: }; 2935449: 2935449: class CommMessageOut 2935449: { 2935449: private: 2935449: virtual int encode(struct iovec vectors[], int max) = 0; 2935449: 2935449: public: 2935449: virtual ~CommMessageOut() { } 2935449: friend class Communicator; 2935449: }; 2935449: 2935449: class CommMessageIn : private poller_message_t 2935449: { 2935449: private: 2935449: virtual int append(const void *buf, size_t *size) = 0; 2935449: 2935449: protected: 2935449: 2935449: virtual int feedback(const void *buf, size_t size); 2935449: 2935449: 2935449: virtual void renew(); 2935449: 2935449: 2935449: virtual CommMessageIn *inner() { return this; } 2935449: 2935449: private: 2935449: struct CommConnEntry *entry; 2935449: 2935449: public: 2935449: virtual ~CommMessageIn() { } 2935449: friend class Communicator; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: class CommSession 2935449: { 2935449: private: 2935449: virtual CommMessageOut *message_out() = 0; 2935449: virtual CommMessageIn *message_in() = 0; 2935449: virtual int send_timeout() { return -1; } 2935449: virtual int receive_timeout() { return -1; } 2935449: virtual int keep_alive_timeout() { return 0; } 2935449: virtual int first_timeout() { return 0; } 2935449: virtual void handle(int state, int error) = 0; 2935449: 2935449: protected: 2935449: CommTarget *get_target() const { return this->target; } 2935449: CommConnection *get_connection() const { return this->conn; } 2935449: CommMessageOut *get_message_out() const { return this->out; } 2935449: CommMessageIn *get_message_in() const { return this->in; } 2935449: long long get_seq() const { return this->seq; } 2935449: 2935449: private: 2935449: CommTarget *target; 2935449: CommConnection *conn; 2935449: CommMessageOut *out; 2935449: CommMessageIn *in; 2935449: long long seq; 2935449: 2935449: private: 2935449: struct timespec begin_time; 2935449: int timeout; 2935449: int passive; 2935449: 2935449: public: 2935449: CommSession() { this->passive = 0; } 2935449: virtual ~CommSession(); 2935449: friend class CommMessageIn; 2935449: friend class Communicator; 2935449: }; 2935449: 2935449: class CommService 2935449: { 2935449: public: 2935449: int init(const struct sockaddr *bind_addr, socklen_t addrlen, 2935449: int listen_timeout, int response_timeout); 2935449: void deinit(); 2935449: 2935449: int drain(int max); 2935449: 2935449: public: 2935449: void get_addr(const struct sockaddr **addr, socklen_t *addrlen) const 2935449: { 2935449: *addr = this->bind_addr; 2935449: *addrlen = this->addrlen; 2935449: } 2935449: 2935449: protected: 2935449: void set_ssl(SSL_CTX *ssl_ctx, int ssl_accept_timeout) 2935449: { 2935449: this->ssl_ctx = ssl_ctx; 2935449: this->ssl_accept_timeout = ssl_accept_timeout; 2935449: } 2935449: 2935449: SSL_CTX *get_ssl_ctx() const { return this->ssl_ctx; } 2935449: 2935449: private: 2935449: virtual CommSession *new_session(long long seq, CommConnection *conn) = 0; 2935449: virtual void handle_stop(int error) { } 2935449: virtual void handle_unbound() = 0; 2935449: 2935449: private: 2935449: virtual int create_listen_fd() 2935449: { 2935449: return socket(this->bind_addr->sa_family, 2935449: # 205 "/<>/_include/workflow/Communicator.h" 3 2935449: SOCK_STREAM 2935449: # 205 "/<>/_include/workflow/Communicator.h" 2935449: , 0); 2935449: } 2935449: 2935449: virtual CommConnection *new_connection(int accept_fd) 2935449: { 2935449: return new CommConnection; 2935449: } 2935449: 2935449: virtual int init_ssl(SSL *ssl) { return 0; } 2935449: 2935449: private: 2935449: struct sockaddr *bind_addr; 2935449: socklen_t addrlen; 2935449: int listen_timeout; 2935449: int response_timeout; 2935449: int ssl_accept_timeout; 2935449: SSL_CTX *ssl_ctx; 2935449: 2935449: private: 2935449: void incref(); 2935449: void decref(); 2935449: 2935449: private: 2935449: int reliable; 2935449: int listen_fd; 2935449: int ref; 2935449: 2935449: private: 2935449: struct list_head keep_alive_list; 2935449: pthread_mutex_t mutex; 2935449: 2935449: public: 2935449: virtual ~CommService() { } 2935449: friend class CommServiceTarget; 2935449: friend class Communicator; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: class SleepSession 2935449: { 2935449: private: 2935449: virtual int duration(struct timespec *value) = 0; 2935449: virtual void handle(int state, int error) = 0; 2935449: 2935449: private: 2935449: void *timer; 2935449: int index; 2935449: 2935449: public: 2935449: virtual ~SleepSession() { } 2935449: friend class Communicator; 2935449: }; 2935449: 2935449: 2935449: # 1 "/<>/_include/workflow/IOService_linux.h" 1 2935449: # 23 "/<>/_include/workflow/IOService_linux.h" 2935449: # 1 "/usr/arm-linux-gnueabi/include/sys/eventfd.h" 1 3 2935449: # 24 "/usr/arm-linux-gnueabi/include/sys/eventfd.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/eventfd.h" 1 3 2935449: # 23 "/usr/arm-linux-gnueabi/include/bits/eventfd.h" 3 2935449: 2935449: # 23 "/usr/arm-linux-gnueabi/include/bits/eventfd.h" 3 2935449: enum 2935449: { 2935449: EFD_SEMAPHORE = 00000001, 2935449: 2935449: EFD_CLOEXEC = 02000000, 2935449: 2935449: EFD_NONBLOCK = 00004000 2935449: 2935449: }; 2935449: # 25 "/usr/arm-linux-gnueabi/include/sys/eventfd.h" 2 3 2935449: 2935449: 2935449: typedef uint64_t eventfd_t; 2935449: 2935449: 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: extern int eventfd (unsigned int __count, int __flags) noexcept (true); 2935449: 2935449: 2935449: extern int eventfd_read (int __fd, eventfd_t *__value); 2935449: 2935449: 2935449: extern int eventfd_write (int __fd, eventfd_t __value); 2935449: 2935449: } 2935449: # 24 "/<>/_include/workflow/IOService_linux.h" 2 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 25 "/<>/_include/workflow/IOService_linux.h" 2 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 31 "/<>/_include/workflow/IOService_linux.h" 2935449: class IOSession 2935449: { 2935449: private: 2935449: virtual int prepare() = 0; 2935449: virtual void handle(int state, int error) = 0; 2935449: 2935449: protected: 2935449: 2935449: void prep_pread(int fd, void *buf, size_t count, long long offset); 2935449: void prep_pwrite(int fd, void *buf, size_t count, long long offset); 2935449: void prep_preadv(int fd, const struct iovec *iov, int iovcnt, 2935449: long long offset); 2935449: void prep_pwritev(int fd, const struct iovec *iov, int iovcnt, 2935449: long long offset); 2935449: void prep_fsync(int fd); 2935449: void prep_fdsync(int fd); 2935449: 2935449: protected: 2935449: long get_res() const { return this->res; } 2935449: 2935449: private: 2935449: char iocb_buf[64]; 2935449: long res; 2935449: 2935449: private: 2935449: struct list_head list; 2935449: 2935449: public: 2935449: virtual ~IOSession() { } 2935449: friend class IOService; 2935449: friend class Communicator; 2935449: }; 2935449: 2935449: class IOService 2935449: { 2935449: public: 2935449: int init(int maxevents); 2935449: void deinit(); 2935449: 2935449: int request(IOSession *session); 2935449: 2935449: private: 2935449: virtual void handle_stop(int error) { } 2935449: virtual void handle_unbound() = 0; 2935449: 2935449: private: 2935449: virtual int create_event_fd() 2935449: { 2935449: return eventfd(0, 0); 2935449: } 2935449: 2935449: private: 2935449: struct io_context *io_ctx; 2935449: 2935449: private: 2935449: void incref(); 2935449: void decref(); 2935449: 2935449: private: 2935449: int event_fd; 2935449: int ref; 2935449: 2935449: private: 2935449: struct list_head session_list; 2935449: pthread_mutex_t mutex; 2935449: 2935449: private: 2935449: static void *aio_finish(void *context); 2935449: 2935449: public: 2935449: virtual ~IOService() { } 2935449: friend class Communicator; 2935449: }; 2935449: # 263 "/<>/_include/workflow/Communicator.h" 2 2935449: 2935449: 2935449: 2935449: 2935449: class CommEventHandler 2935449: { 2935449: private: 2935449: virtual void schedule(void (*routine)(void *), void *context) = 0; 2935449: virtual void wait() = 0; 2935449: 2935449: public: 2935449: virtual ~CommEventHandler() { } 2935449: friend class Communicator; 2935449: }; 2935449: 2935449: class Communicator 2935449: { 2935449: public: 2935449: int init(size_t poller_threads, size_t handler_threads); 2935449: void deinit(); 2935449: 2935449: int request(CommSession *session, CommTarget *target); 2935449: int reply(CommSession *session); 2935449: 2935449: int push(const void *buf, size_t size, CommSession *session); 2935449: 2935449: int shutdown(CommSession *session); 2935449: 2935449: int bind(CommService *service); 2935449: void unbind(CommService *service); 2935449: 2935449: int sleep(SleepSession *session); 2935449: int unsleep(SleepSession *session); 2935449: 2935449: int io_bind(IOService *service); 2935449: void io_unbind(IOService *service); 2935449: 2935449: public: 2935449: int is_handler_thread() const; 2935449: 2935449: int increase_handler_thread(); 2935449: int decrease_handler_thread(); 2935449: 2935449: public: 2935449: void customize_event_handler(CommEventHandler *handler); 2935449: 2935449: private: 2935449: struct __mpoller *mpoller; 2935449: struct __msgqueue *msgqueue; 2935449: struct __thrdpool *thrdpool; 2935449: int stop_flag; 2935449: 2935449: private: 2935449: CommEventHandler *event_handler; 2935449: 2935449: private: 2935449: int create_poller(size_t poller_threads); 2935449: 2935449: int create_handler_threads(size_t handler_threads); 2935449: 2935449: void shutdown_service(CommService *service); 2935449: 2935449: void shutdown_io_service(IOService *service); 2935449: 2935449: int send_message_sync(struct iovec vectors[], int cnt, 2935449: struct CommConnEntry *entry); 2935449: int send_message_async(struct iovec vectors[], int cnt, 2935449: struct CommConnEntry *entry); 2935449: 2935449: int send_message(struct CommConnEntry *entry); 2935449: 2935449: int request_new_conn(CommSession *session, CommTarget *target); 2935449: int request_idle_conn(CommSession *session, CommTarget *target); 2935449: 2935449: int reply_message_unreliable(struct CommConnEntry *entry); 2935449: 2935449: int reply_reliable(CommSession *session, CommTarget *target); 2935449: int reply_unreliable(CommSession *session, CommTarget *target); 2935449: 2935449: void handle_poller_result(struct poller_result *res); 2935449: 2935449: void handle_incoming_request(struct poller_result *res); 2935449: void handle_incoming_reply(struct poller_result *res); 2935449: 2935449: void handle_request_result(struct poller_result *res); 2935449: void handle_reply_result(struct poller_result *res); 2935449: 2935449: void handle_write_result(struct poller_result *res); 2935449: void handle_read_result(struct poller_result *res); 2935449: 2935449: void handle_connect_result(struct poller_result *res); 2935449: void handle_listen_result(struct poller_result *res); 2935449: 2935449: void handle_recvfrom_result(struct poller_result *res); 2935449: 2935449: void handle_ssl_accept_result(struct poller_result *res); 2935449: 2935449: void handle_sleep_result(struct poller_result *res); 2935449: 2935449: void handle_aio_result(struct poller_result *res); 2935449: 2935449: static void handler_thread_routine(void *context); 2935449: 2935449: static int nonblock_connect(CommTarget *target); 2935449: static int nonblock_listen(CommService *service); 2935449: 2935449: static struct CommConnEntry *launch_conn(CommSession *session, 2935449: CommTarget *target); 2935449: static struct CommConnEntry *accept_conn(class CommServiceTarget *target, 2935449: CommService *service); 2935449: 2935449: static int first_timeout(CommSession *session); 2935449: static int next_timeout(CommSession *session); 2935449: 2935449: static int first_timeout_send(CommSession *session); 2935449: static int first_timeout_recv(CommSession *session); 2935449: 2935449: static int append_message(const void *buf, size_t *size, 2935449: poller_message_t *msg); 2935449: 2935449: static poller_message_t *create_request(void *context); 2935449: static poller_message_t *create_reply(void *context); 2935449: 2935449: static int recv_request(const void *buf, size_t size, 2935449: struct CommConnEntry *entry); 2935449: 2935449: static int partial_written(size_t n, void *context); 2935449: 2935449: static void *accept(const struct sockaddr *addr, socklen_t addrlen, 2935449: int sockfd, void *context); 2935449: 2935449: static void *recvfrom(const struct sockaddr *addr, socklen_t addrlen, 2935449: const void *buf, size_t size, void *context); 2935449: 2935449: static void callback(struct poller_result *res, void *context); 2935449: 2935449: private: 2935449: static void event_handler_routine(void *context); 2935449: 2935449: static void callback_custom(struct poller_result *res, void *context); 2935449: 2935449: public: 2935449: virtual ~Communicator() { } 2935449: }; 2935449: # 26 "/<>/_include/workflow/ProtocolMessage.h" 2 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: namespace protocol 2935449: { 2935449: 2935449: class ProtocolMessage : public CommMessageOut, public CommMessageIn 2935449: { 2935449: protected: 2935449: virtual int encode(struct iovec vectors[], int max) 2935449: { 2935449: 2935449: # 40 "/<>/_include/workflow/ProtocolMessage.h" 3 2935449: (*__errno_location ()) 2935449: # 40 "/<>/_include/workflow/ProtocolMessage.h" 2935449: = 2935449: # 40 "/<>/_include/workflow/ProtocolMessage.h" 3 2935449: 38 2935449: # 40 "/<>/_include/workflow/ProtocolMessage.h" 2935449: ; 2935449: return -1; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: virtual int append(const void *buf, size_t *size) 2935449: { 2935449: return this->append(buf, *size); 2935449: } 2935449: 2935449: 2935449: 2935449: virtual int append(const void *buf, size_t size) 2935449: { 2935449: 2935449: # 57 "/<>/_include/workflow/ProtocolMessage.h" 3 2935449: (*__errno_location ()) 2935449: # 57 "/<>/_include/workflow/ProtocolMessage.h" 2935449: = 2935449: # 57 "/<>/_include/workflow/ProtocolMessage.h" 3 2935449: 38 2935449: # 57 "/<>/_include/workflow/ProtocolMessage.h" 2935449: ; 2935449: return -1; 2935449: } 2935449: 2935449: public: 2935449: void set_size_limit(size_t limit) { this->size_limit = limit; } 2935449: size_t get_size_limit() const { return this->size_limit; } 2935449: 2935449: public: 2935449: class Attachment 2935449: { 2935449: public: 2935449: virtual ~Attachment() { } 2935449: }; 2935449: 2935449: void set_attachment(Attachment *att) { this->attachment = att; } 2935449: Attachment *get_attachment() { return this->attachment; } 2935449: const Attachment *get_attachment() const { return this->attachment; } 2935449: 2935449: protected: 2935449: virtual int feedback(const void *buf, size_t size) 2935449: { 2935449: if (this->wrapper) 2935449: return this->wrapper->feedback(buf, size); 2935449: else 2935449: return this->CommMessageIn::feedback(buf, size); 2935449: } 2935449: 2935449: virtual void renew() 2935449: { 2935449: if (this->wrapper) 2935449: return this->wrapper->renew(); 2935449: else 2935449: return this->CommMessageIn::renew(); 2935449: } 2935449: 2935449: virtual ProtocolMessage *inner() { return this; } 2935449: 2935449: protected: 2935449: size_t size_limit; 2935449: 2935449: private: 2935449: Attachment *attachment; 2935449: ProtocolMessage *wrapper; 2935449: 2935449: public: 2935449: ProtocolMessage() 2935449: { 2935449: this->size_limit = (size_t)-1; 2935449: this->attachment = 2935449: # 106 "/<>/_include/workflow/ProtocolMessage.h" 3 4 2935449: __null 2935449: # 106 "/<>/_include/workflow/ProtocolMessage.h" 2935449: ; 2935449: this->wrapper = 2935449: # 107 "/<>/_include/workflow/ProtocolMessage.h" 3 4 2935449: __null 2935449: # 107 "/<>/_include/workflow/ProtocolMessage.h" 2935449: ; 2935449: } 2935449: 2935449: virtual ~ProtocolMessage() { delete this->attachment; } 2935449: 2935449: public: 2935449: ProtocolMessage(ProtocolMessage&& message) 2935449: { 2935449: this->size_limit = message.size_limit; 2935449: this->attachment = message.attachment; 2935449: message.attachment = 2935449: # 117 "/<>/_include/workflow/ProtocolMessage.h" 3 4 2935449: __null 2935449: # 117 "/<>/_include/workflow/ProtocolMessage.h" 2935449: ; 2935449: this->wrapper = 2935449: # 118 "/<>/_include/workflow/ProtocolMessage.h" 3 4 2935449: __null 2935449: # 118 "/<>/_include/workflow/ProtocolMessage.h" 2935449: ; 2935449: } 2935449: 2935449: ProtocolMessage& operator = (ProtocolMessage&& message) 2935449: { 2935449: if (&message != this) 2935449: { 2935449: this->size_limit = message.size_limit; 2935449: delete this->attachment; 2935449: this->attachment = message.attachment; 2935449: message.attachment = 2935449: # 128 "/<>/_include/workflow/ProtocolMessage.h" 3 4 2935449: __null 2935449: # 128 "/<>/_include/workflow/ProtocolMessage.h" 2935449: ; 2935449: } 2935449: 2935449: return *this; 2935449: } 2935449: 2935449: friend class ProtocolWrapper; 2935449: }; 2935449: 2935449: class ProtocolWrapper : public ProtocolMessage 2935449: { 2935449: protected: 2935449: virtual int encode(struct iovec vectors[], int max) 2935449: { 2935449: return this->message->encode(vectors, max); 2935449: } 2935449: 2935449: virtual int append(const void *buf, size_t *size) 2935449: { 2935449: return this->message->append(buf, size); 2935449: } 2935449: 2935449: protected: 2935449: virtual ProtocolMessage *inner() 2935449: { 2935449: return this->message->inner(); 2935449: } 2935449: 2935449: protected: 2935449: void set_message(ProtocolMessage *message) 2935449: { 2935449: this->message = message; 2935449: if (message) 2935449: message->wrapper = this; 2935449: } 2935449: 2935449: protected: 2935449: ProtocolMessage *message; 2935449: 2935449: public: 2935449: ProtocolWrapper(ProtocolMessage *message) 2935449: { 2935449: this->set_message(message); 2935449: } 2935449: 2935449: public: 2935449: ProtocolWrapper(ProtocolWrapper&& wrapper) : 2935449: ProtocolMessage(std::move(wrapper)) 2935449: { 2935449: this->set_message(wrapper.message); 2935449: wrapper.message = 2935449: # 178 "/<>/_include/workflow/ProtocolMessage.h" 3 4 2935449: __null 2935449: # 178 "/<>/_include/workflow/ProtocolMessage.h" 2935449: ; 2935449: } 2935449: 2935449: ProtocolWrapper& operator = (ProtocolWrapper&& wrapper) 2935449: { 2935449: if (&wrapper != this) 2935449: { 2935449: *(ProtocolMessage *)this = std::move(wrapper); 2935449: this->set_message(wrapper.message); 2935449: wrapper.message = 2935449: # 187 "/<>/_include/workflow/ProtocolMessage.h" 3 4 2935449: __null 2935449: # 187 "/<>/_include/workflow/ProtocolMessage.h" 2935449: ; 2935449: } 2935449: 2935449: return *this; 2935449: } 2935449: }; 2935449: 2935449: } 2935449: # 28 "/<>/_include/workflow/HttpMessage.h" 2 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: namespace protocol 2935449: { 2935449: 2935449: struct HttpMessageHeader 2935449: { 2935449: const void *name; 2935449: size_t name_len; 2935449: const void *value; 2935449: size_t value_len; 2935449: }; 2935449: 2935449: class HttpMessage : public ProtocolMessage 2935449: { 2935449: public: 2935449: const char *get_http_version() const 2935449: { 2935449: return http_parser_get_version(this->parser); 2935449: } 2935449: 2935449: bool set_http_version(const char *version) 2935449: { 2935449: return http_parser_set_version(version, this->parser) == 0; 2935449: } 2935449: 2935449: bool is_chunked() const 2935449: { 2935449: return http_parser_chunked(this->parser); 2935449: } 2935449: 2935449: bool is_keep_alive() const 2935449: { 2935449: return http_parser_keep_alive(this->parser); 2935449: } 2935449: 2935449: bool add_header(const struct HttpMessageHeader *header) 2935449: { 2935449: return http_parser_add_header(header->name, header->name_len, 2935449: header->value, header->value_len, 2935449: this->parser) == 0; 2935449: } 2935449: 2935449: bool add_header_pair(const char *name, const char *value) 2935449: { 2935449: if(strcmp(name, "Server") == 0) { 2935449: std::string append = value; 2935449: append += " - powered by Workflow v0.10"; 2935449: return http_parser_add_header(name, strlen(name), 2935449: append.c_str(), append.length(), 2935449: this->parser) == 0; 2935449: } else { 2935449: return http_parser_add_header(name, strlen(name), 2935449: value, strlen(value), 2935449: this->parser) == 0; 2935449: } 2935449: } 2935449: 2935449: bool set_header(const struct HttpMessageHeader *header) 2935449: { 2935449: return http_parser_set_header(header->name, header->name_len, 2935449: header->value, header->value_len, 2935449: this->parser) == 0; 2935449: } 2935449: 2935449: bool set_header_pair(const char *name, const char *value) 2935449: { 2935449: return http_parser_set_header(name, strlen(name), 2935449: value, strlen(value), 2935449: this->parser) == 0; 2935449: } 2935449: 2935449: bool get_parsed_body(const void **body, size_t *size) const 2935449: { 2935449: return http_parser_get_body(body, size, this->parser) == 0; 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: bool append_output_body(const void *buf, size_t size); 2935449: 2935449: bool append_output_body(const char *buf) 2935449: { 2935449: return this->append_output_body(buf, strlen(buf)); 2935449: } 2935449: 2935449: bool append_output_body_nocopy(const void *buf, size_t size); 2935449: 2935449: bool append_output_body_nocopy(const char *buf) 2935449: { 2935449: return this->append_output_body_nocopy(buf, strlen(buf)); 2935449: } 2935449: 2935449: size_t get_output_body_size() const 2935449: { 2935449: return this->output_body_size; 2935449: } 2935449: 2935449: size_t get_output_body_blocks(const void *buf[], size_t size[], 2935449: size_t max) const; 2935449: 2935449: bool get_output_body_merged(void *buf, size_t *size) const; 2935449: 2935449: void clear_output_body(); 2935449: 2935449: 2935449: public: 2935449: bool get_http_version(std::string& version) const 2935449: { 2935449: const char *str = this->get_http_version(); 2935449: 2935449: if (str) 2935449: { 2935449: version.assign(str); 2935449: return true; 2935449: } 2935449: 2935449: return false; 2935449: } 2935449: 2935449: bool set_http_version(const std::string& version) 2935449: { 2935449: return this->set_http_version(version.c_str()); 2935449: } 2935449: 2935449: bool add_header_pair(const std::string& name, const std::string& value) 2935449: { 2935449: if(strcmp(name.c_str(), "Server") == 0) { 2935449: std::string append = value; 2935449: append += " - powered by Workflow v0.10"; 2935449: return http_parser_add_header(name.c_str(), name.size(), 2935449: append.c_str(), append.size(), 2935449: this->parser) == 0; 2935449: } else { 2935449: return http_parser_add_header(name.c_str(), name.size(), 2935449: value.c_str(), value.size(), 2935449: this->parser) == 0; 2935449: } 2935449: } 2935449: 2935449: bool set_header_pair(const std::string& name, const std::string& value) 2935449: { 2935449: return http_parser_set_header(name.c_str(), name.size(), 2935449: value.c_str(), value.size(), 2935449: this->parser) == 0; 2935449: } 2935449: 2935449: bool append_output_body(const std::string& buf) 2935449: { 2935449: return this->append_output_body(buf.c_str(), buf.size()); 2935449: } 2935449: 2935449: bool append_output_body_nocopy(const std::string& buf) 2935449: { 2935449: return this->append_output_body_nocopy(buf.c_str(), buf.size()); 2935449: } 2935449: 2935449: bool get_output_body_merged(std::string& body) const 2935449: { 2935449: size_t size = this->output_body_size; 2935449: body.resize(size); 2935449: return this->get_output_body_merged((void *)body.data(), &size); 2935449: } 2935449: 2935449: 2935449: public: 2935449: bool is_header_complete() const 2935449: { 2935449: return http_parser_header_complete(this->parser); 2935449: } 2935449: 2935449: bool has_connection_header() const 2935449: { 2935449: return http_parser_has_connection(this->parser); 2935449: } 2935449: 2935449: bool has_content_length_header() const 2935449: { 2935449: return http_parser_has_content_length(this->parser); 2935449: } 2935449: 2935449: bool has_keep_alive_header() const 2935449: { 2935449: return http_parser_has_keep_alive(this->parser); 2935449: } 2935449: 2935449: void end_parsing() 2935449: { 2935449: http_parser_close_message(this->parser); 2935449: } 2935449: 2935449: 2935449: const http_parser_t *get_parser() const 2935449: { 2935449: return this->parser; 2935449: } 2935449: 2935449: protected: 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: virtual int append(const void *buf, size_t *size); 2935449: 2935449: protected: 2935449: http_parser_t *parser; 2935449: size_t cur_size; 2935449: 2935449: private: 2935449: struct list_head *combine_from(struct list_head *pos, size_t size); 2935449: 2935449: private: 2935449: struct list_head output_body; 2935449: size_t output_body_size; 2935449: 2935449: public: 2935449: HttpMessage(bool is_resp) : parser(new http_parser_t) 2935449: { 2935449: http_parser_init(is_resp, this->parser); 2935449: INIT_LIST_HEAD(&this->output_body); 2935449: this->output_body_size = 0; 2935449: this->cur_size = 0; 2935449: } 2935449: 2935449: virtual ~HttpMessage() 2935449: { 2935449: this->clear_output_body(); 2935449: if (this->parser) 2935449: { 2935449: http_parser_deinit(this->parser); 2935449: delete this->parser; 2935449: } 2935449: } 2935449: 2935449: public: 2935449: HttpMessage(HttpMessage&& msg); 2935449: HttpMessage& operator = (HttpMessage&& msg); 2935449: }; 2935449: 2935449: class HttpRequest : public HttpMessage 2935449: { 2935449: public: 2935449: const char *get_method() const 2935449: { 2935449: return http_parser_get_method(this->parser); 2935449: } 2935449: 2935449: const char *get_request_uri() const 2935449: { 2935449: return http_parser_get_uri(this->parser); 2935449: } 2935449: 2935449: bool set_method(const char *method) 2935449: { 2935449: return http_parser_set_method(method, this->parser) == 0; 2935449: } 2935449: 2935449: bool set_request_uri(const char *uri) 2935449: { 2935449: return http_parser_set_uri(uri, this->parser) == 0; 2935449: } 2935449: 2935449: 2935449: public: 2935449: bool get_method(std::string& method) const 2935449: { 2935449: const char *str = this->get_method(); 2935449: 2935449: if (str) 2935449: { 2935449: method.assign(str); 2935449: return true; 2935449: } 2935449: 2935449: return false; 2935449: } 2935449: 2935449: bool get_request_uri(std::string& uri) const 2935449: { 2935449: const char *str = this->get_request_uri(); 2935449: 2935449: if (str) 2935449: { 2935449: uri.assign(str); 2935449: return true; 2935449: } 2935449: 2935449: return false; 2935449: } 2935449: 2935449: bool set_method(const std::string& method) 2935449: { 2935449: return this->set_method(method.c_str()); 2935449: } 2935449: 2935449: bool set_request_uri(const std::string& uri) 2935449: { 2935449: return this->set_request_uri(uri.c_str()); 2935449: } 2935449: 2935449: protected: 2935449: virtual int append(const void *buf, size_t *size); 2935449: 2935449: private: 2935449: int handle_expect_continue(); 2935449: 2935449: public: 2935449: HttpRequest() : HttpMessage(false) { } 2935449: 2935449: public: 2935449: HttpRequest(HttpRequest&& req) = default; 2935449: HttpRequest& operator = (HttpRequest&& req) = default; 2935449: }; 2935449: 2935449: class HttpResponse : public HttpMessage 2935449: { 2935449: public: 2935449: const char *get_status_code() const 2935449: { 2935449: return http_parser_get_code(this->parser); 2935449: } 2935449: 2935449: const char *get_reason_phrase() const 2935449: { 2935449: return http_parser_get_phrase(this->parser); 2935449: } 2935449: 2935449: bool set_status_code(const char *code) 2935449: { 2935449: return http_parser_set_code(code, this->parser) == 0; 2935449: } 2935449: 2935449: bool set_reason_phrase(const char *phrase) 2935449: { 2935449: return http_parser_set_phrase(phrase, this->parser) == 0; 2935449: } 2935449: 2935449: 2935449: public: 2935449: bool get_status_code(std::string& code) const 2935449: { 2935449: const char *str = this->get_status_code(); 2935449: 2935449: if (str) 2935449: { 2935449: code.assign(str); 2935449: return true; 2935449: } 2935449: 2935449: return false; 2935449: } 2935449: 2935449: bool get_reason_phrase(std::string& phrase) const 2935449: { 2935449: const char *str = this->get_reason_phrase(); 2935449: 2935449: if (str) 2935449: { 2935449: phrase.assign(str); 2935449: return true; 2935449: } 2935449: 2935449: return false; 2935449: } 2935449: 2935449: bool set_status_code(const std::string& code) 2935449: { 2935449: return this->set_status_code(code.c_str()); 2935449: } 2935449: 2935449: bool set_reason_phrase(const std::string& phrase) 2935449: { 2935449: return this->set_reason_phrase(phrase.c_str()); 2935449: } 2935449: 2935449: public: 2935449: 2935449: void parse_zero_body() 2935449: { 2935449: this->parser->transfer_length = 0; 2935449: } 2935449: 2935449: protected: 2935449: virtual int append(const void *buf, size_t *size); 2935449: 2935449: public: 2935449: HttpResponse() : HttpMessage(true) { } 2935449: 2935449: public: 2935449: HttpResponse(HttpResponse&& resp) = default; 2935449: HttpResponse& operator = (HttpResponse&& resp) = default; 2935449: }; 2935449: 2935449: class HttpMessageChunk : public ProtocolMessage 2935449: { 2935449: public: 2935449: bool get_chunk_data(const void **chunk_data, size_t *size) const; 2935449: bool move_chunk_data(void **chunk_data, size_t *size); 2935449: bool set_chunk_data(const void *chunk_data, size_t size); 2935449: 2935449: protected: 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: virtual int append(const void *buf, size_t *size); 2935449: 2935449: private: 2935449: int append_chunk_line(const void *buf, size_t size); 2935449: 2935449: private: 2935449: char chunk_line[32]; 2935449: void *chunk_data; 2935449: size_t chunk_size; 2935449: size_t nreceived; 2935449: 2935449: public: 2935449: HttpMessageChunk() 2935449: { 2935449: this->chunk_data = 2935449: # 447 "/<>/_include/workflow/HttpMessage.h" 3 4 2935449: __null 2935449: # 447 "/<>/_include/workflow/HttpMessage.h" 2935449: ; 2935449: this->nreceived = 0; 2935449: } 2935449: 2935449: virtual ~HttpMessageChunk() 2935449: { 2935449: free(this->chunk_data); 2935449: } 2935449: 2935449: public: 2935449: HttpMessageChunk(HttpMessageChunk&& msg); 2935449: HttpMessageChunk& operator = (HttpMessageChunk&& msg); 2935449: }; 2935449: 2935449: } 2935449: # 28 "/<>/_include/workflow/HttpUtil.h" 2 2935449: # 44 "/<>/_include/workflow/HttpUtil.h" 2935449: enum 2935449: { 2935449: HttpStatusContinue = 100, 2935449: HttpStatusSwitchingProtocols = 101, 2935449: HttpStatusProcessing = 102, 2935449: 2935449: HttpStatusOK = 200, 2935449: HttpStatusCreated = 201, 2935449: HttpStatusAccepted = 202, 2935449: HttpStatusNonAuthoritativeInfo = 203, 2935449: HttpStatusNoContent = 204, 2935449: HttpStatusResetContent = 205, 2935449: HttpStatusPartialContent = 206, 2935449: HttpStatusMultiStatus = 207, 2935449: HttpStatusAlreadyReported = 208, 2935449: HttpStatusIMUsed = 226, 2935449: 2935449: HttpStatusMultipleChoices = 300, 2935449: HttpStatusMovedPermanently = 301, 2935449: HttpStatusFound = 302, 2935449: HttpStatusSeeOther = 303, 2935449: HttpStatusNotModified = 304, 2935449: HttpStatusUseProxy = 305, 2935449: 2935449: HttpStatusTemporaryRedirect = 307, 2935449: HttpStatusPermanentRedirect = 308, 2935449: 2935449: HttpStatusBadRequest = 400, 2935449: HttpStatusUnauthorized = 401, 2935449: HttpStatusPaymentRequired = 402, 2935449: HttpStatusForbidden = 403, 2935449: HttpStatusNotFound = 404, 2935449: HttpStatusMethodNotAllowed = 405, 2935449: HttpStatusNotAcceptable = 406, 2935449: HttpStatusProxyAuthRequired = 407, 2935449: HttpStatusRequestTimeout = 408, 2935449: HttpStatusConflict = 409, 2935449: HttpStatusGone = 410, 2935449: HttpStatusLengthRequired = 411, 2935449: HttpStatusPreconditionFailed = 412, 2935449: HttpStatusRequestEntityTooLarge = 413, 2935449: HttpStatusRequestURITooLong = 414, 2935449: HttpStatusUnsupportedMediaType = 415, 2935449: HttpStatusRequestedRangeNotSatisfiable = 416, 2935449: HttpStatusExpectationFailed = 417, 2935449: HttpStatusTeapot = 418, 2935449: HttpStatusEnhanceYourCaim = 420, 2935449: HttpStatusMisdirectedRequest = 421, 2935449: HttpStatusUnprocessableEntity = 422, 2935449: HttpStatusLocked = 423, 2935449: HttpStatusFailedDependency = 424, 2935449: HttpStatusTooEarly = 425, 2935449: HttpStatusUpgradeRequired = 426, 2935449: HttpStatusPreconditionRequired = 428, 2935449: HttpStatusTooManyRequests = 429, 2935449: HttpStatusRequestHeaderFieldsTooLarge = 431, 2935449: HttpStatusNoResponse = 444, 2935449: HttpStatusBlocked = 450, 2935449: HttpStatusUnavailableForLegalReasons = 451, 2935449: HttpStatusTooLargeForNginx = 494, 2935449: 2935449: HttpStatusInternalServerError = 500, 2935449: HttpStatusNotImplemented = 501, 2935449: HttpStatusBadGateway = 502, 2935449: HttpStatusServiceUnavailable = 503, 2935449: HttpStatusGatewayTimeout = 504, 2935449: HttpStatusHTTPVersionNotSupported = 505, 2935449: HttpStatusVariantAlsoNegotiates = 506, 2935449: HttpStatusInsufficientStorage = 507, 2935449: HttpStatusLoopDetected = 508, 2935449: HttpStatusNotExtended = 510, 2935449: HttpStatusNetworkAuthenticationRequired = 511, 2935449: }; 2935449: 2935449: namespace protocol 2935449: { 2935449: 2935449: 2935449: class HttpUtil 2935449: { 2935449: public: 2935449: static void set_response_status(HttpResponse *resp, int status_code); 2935449: static std::string decode_chunked_body(const HttpMessage *msg); 2935449: }; 2935449: 2935449: class HttpHeaderMap 2935449: { 2935449: public: 2935449: HttpHeaderMap(const HttpMessage *message); 2935449: 2935449: bool key_exists(std::string key); 2935449: std::string get(std::string key); 2935449: bool get(std::string key, std::string& value); 2935449: std::vector get_strict(std::string key); 2935449: bool get_strict(std::string key, std::vector& values); 2935449: 2935449: private: 2935449: std::unordered_map> header_map_; 2935449: }; 2935449: 2935449: class HttpHeaderCursor 2935449: { 2935449: public: 2935449: HttpHeaderCursor(const HttpMessage *message); 2935449: virtual ~HttpHeaderCursor(); 2935449: 2935449: public: 2935449: bool next(struct HttpMessageHeader *header); 2935449: bool find(struct HttpMessageHeader *header); 2935449: bool erase(); 2935449: bool find_and_erase(struct HttpMessageHeader *header); 2935449: void rewind(); 2935449: 2935449: 2935449: public: 2935449: bool next(std::string& name, std::string& value); 2935449: bool find(const std::string& name, std::string& value); 2935449: bool find_and_erase(const std::string& name); 2935449: 2935449: protected: 2935449: http_header_cursor_t cursor; 2935449: }; 2935449: 2935449: class HttpChunkCursor 2935449: { 2935449: public: 2935449: HttpChunkCursor(const HttpMessage *message); 2935449: virtual ~HttpChunkCursor() { } 2935449: 2935449: public: 2935449: bool next(const void **chunk, size_t *size); 2935449: void rewind(); 2935449: 2935449: protected: 2935449: const void *body; 2935449: size_t body_len; 2935449: const void *pos; 2935449: bool chunked; 2935449: bool end; 2935449: }; 2935449: 2935449: 2935449: 2935449: inline HttpHeaderCursor::HttpHeaderCursor(const HttpMessage *message) 2935449: { 2935449: http_header_cursor_init(&this->cursor, message->get_parser()); 2935449: } 2935449: 2935449: inline HttpHeaderCursor::~HttpHeaderCursor() 2935449: { 2935449: http_header_cursor_deinit(&this->cursor); 2935449: } 2935449: 2935449: inline bool HttpHeaderCursor::next(struct HttpMessageHeader *header) 2935449: { 2935449: return http_header_cursor_next(&header->name, &header->name_len, 2935449: &header->value, &header->value_len, 2935449: &this->cursor) == 0; 2935449: } 2935449: 2935449: inline bool HttpHeaderCursor::find(struct HttpMessageHeader *header) 2935449: { 2935449: return http_header_cursor_find(header->name, header->name_len, 2935449: &header->value, &header->value_len, 2935449: &this->cursor) == 0; 2935449: } 2935449: 2935449: inline bool HttpHeaderCursor::erase() 2935449: { 2935449: return http_header_cursor_erase(&this->cursor) == 0; 2935449: } 2935449: 2935449: inline bool HttpHeaderCursor::find_and_erase(struct HttpMessageHeader *header) 2935449: { 2935449: if (this->find(header)) 2935449: return this->erase(); 2935449: 2935449: return false; 2935449: } 2935449: 2935449: inline void HttpHeaderCursor::rewind() 2935449: { 2935449: http_header_cursor_rewind(&this->cursor); 2935449: } 2935449: 2935449: } 2935449: # 30 "/<>/src/client/WFConsulClient.cc" 2 2935449: # 1 "/<>/src/client/WFConsulClient.h" 1 2935449: # 27 "/<>/src/client/WFConsulClient.h" 2935449: # 1 "/<>/_include/workflow/HttpMessage.h" 1 2935449: # 28 "/<>/src/client/WFConsulClient.h" 2 2935449: # 1 "/<>/_include/workflow/WFTaskFactory.h" 1 2935449: # 29 "/<>/_include/workflow/WFTaskFactory.h" 2935449: # 1 "/<>/_include/workflow/URIParser.h" 1 2935449: # 30 "/<>/_include/workflow/WFTaskFactory.h" 2 2935449: # 1 "/<>/_include/workflow/RedisMessage.h" 1 2935449: # 27 "/<>/_include/workflow/RedisMessage.h" 2935449: # 1 "/<>/_include/workflow/redis_parser.h" 1 2935449: # 22 "/<>/_include/workflow/redis_parser.h" 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 23 "/<>/_include/workflow/redis_parser.h" 2 2935449: # 35 "/<>/_include/workflow/redis_parser.h" 2935449: typedef struct __redis_reply { 2935449: int type; 2935449: long long integer; 2935449: size_t len; 2935449: char *str; 2935449: size_t elements; 2935449: struct __redis_reply **element; 2935449: } redis_reply_t; 2935449: 2935449: typedef struct __redis_parser 2935449: { 2935449: int parse_succ; 2935449: int status; 2935449: char *msgbuf; 2935449: size_t msgsize; 2935449: size_t bufsize; 2935449: redis_reply_t *cur; 2935449: struct list_head read_list; 2935449: size_t msgidx; 2935449: size_t findidx; 2935449: int nleft; 2935449: int nchar; 2935449: char cmd; 2935449: redis_reply_t reply; 2935449: } redis_parser_t; 2935449: 2935449: 2935449: extern "C" 2935449: { 2935449: 2935449: 2935449: void redis_parser_init(redis_parser_t *parser); 2935449: void redis_parser_deinit(redis_parser_t *parser); 2935449: int redis_parser_append_message(const void *buf, size_t *size, 2935449: redis_parser_t *parser); 2935449: 2935449: void redis_reply_deinit(redis_reply_t *reply); 2935449: 2935449: int redis_reply_set_array(size_t size, redis_reply_t *reply); 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: static inline void redis_reply_init(redis_reply_t *reply) 2935449: { 2935449: reply->type = 4; 2935449: reply->integer = 0; 2935449: reply->len = 0; 2935449: reply->str = 2935449: # 84 "/<>/_include/workflow/redis_parser.h" 3 4 2935449: __null 2935449: # 84 "/<>/_include/workflow/redis_parser.h" 2935449: ; 2935449: reply->elements = 0; 2935449: reply->element = 2935449: # 86 "/<>/_include/workflow/redis_parser.h" 3 4 2935449: __null 2935449: # 86 "/<>/_include/workflow/redis_parser.h" 2935449: ; 2935449: } 2935449: 2935449: static inline void redis_reply_set_string(const char *str, size_t len, 2935449: redis_reply_t *reply) 2935449: { 2935449: reply->type = 1; 2935449: reply->len = len; 2935449: reply->str = (char *)str; 2935449: } 2935449: 2935449: static inline void redis_reply_set_integer(long long intv, redis_reply_t *reply) 2935449: { 2935449: reply->type = 3; 2935449: reply->integer = intv; 2935449: } 2935449: 2935449: static inline void redis_reply_set_null(redis_reply_t *reply) 2935449: { 2935449: reply->type = 4; 2935449: } 2935449: 2935449: static inline void redis_reply_set_error(const char *err, size_t len, 2935449: redis_reply_t *reply) 2935449: { 2935449: reply->type = 6; 2935449: reply->len = len; 2935449: reply->str = (char *)err; 2935449: } 2935449: 2935449: static inline void redis_reply_set_status(const char *str, size_t len, 2935449: redis_reply_t *reply) 2935449: { 2935449: reply->type = 5; 2935449: reply->len = len; 2935449: reply->str = (char *)str; 2935449: } 2935449: # 28 "/<>/_include/workflow/RedisMessage.h" 2 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: namespace protocol 2935449: { 2935449: 2935449: class RedisValue 2935449: { 2935449: public: 2935449: 2935449: RedisValue(); 2935449: virtual ~RedisValue(); 2935449: 2935449: 2935449: RedisValue(const RedisValue& copy); 2935449: 2935449: RedisValue& operator= (const RedisValue& copy); 2935449: 2935449: RedisValue(RedisValue&& move); 2935449: 2935449: RedisValue& operator= (RedisValue&& move); 2935449: 2935449: 2935449: void set_nil(); 2935449: void set_int(int64_t intv); 2935449: void set_string(const std::string& strv); 2935449: void set_status(const std::string& strv); 2935449: void set_error(const std::string& strv); 2935449: void set_string(const char *str, size_t len); 2935449: void set_status(const char *str, size_t len); 2935449: void set_error(const char *str, size_t len); 2935449: void set_string(const char *str); 2935449: void set_status(const char *str); 2935449: void set_error(const char *str); 2935449: 2935449: void set_array(size_t new_size); 2935449: 2935449: void set(const redis_reply_t *reply); 2935449: 2935449: 2935449: bool is_ok() const; 2935449: 2935449: bool is_error() const; 2935449: 2935449: bool is_nil() const; 2935449: 2935449: bool is_int() const; 2935449: 2935449: bool is_array() const; 2935449: 2935449: bool is_string() const; 2935449: 2935449: int get_type() const; 2935449: 2935449: 2935449: std::string string_value() const; 2935449: 2935449: const std::string *string_view() const; 2935449: 2935449: int64_t int_value() const; 2935449: 2935449: size_t arr_size() const; 2935449: 2935449: void arr_clear(); 2935449: 2935449: void arr_resize(size_t new_size); 2935449: 2935449: RedisValue& arr_at(size_t pos) const; 2935449: 2935449: RedisValue& operator[] (size_t pos) const; 2935449: 2935449: 2935449: bool transform(redis_reply_t *reply) const; 2935449: 2935449: void clear(); 2935449: 2935449: std::string debug_string() const; 2935449: 2935449: private: 2935449: void free_data(); 2935449: void only_set_string_data(const std::string& strv); 2935449: void only_set_string_data(const char *str, size_t len); 2935449: void only_set_string_data(const char *str); 2935449: 2935449: int type_; 2935449: void *data_; 2935449: }; 2935449: 2935449: class RedisMessage : public ProtocolMessage 2935449: { 2935449: public: 2935449: RedisMessage(); 2935449: virtual ~RedisMessage(); 2935449: 2935449: RedisMessage(RedisMessage&& move); 2935449: 2935449: RedisMessage& operator= (RedisMessage&& move); 2935449: 2935449: public: 2935449: 2935449: 2935449: bool parse_success() const; 2935449: bool is_asking() const; 2935449: void set_asking(bool asking); 2935449: 2935449: protected: 2935449: redis_parser_t *parser_; 2935449: 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: virtual int append(const void *buf, size_t *size); 2935449: bool encode_reply(redis_reply_t *reply); 2935449: 2935449: class EncodeStream *stream_; 2935449: 2935449: private: 2935449: size_t cur_size_; 2935449: bool asking_; 2935449: }; 2935449: 2935449: class RedisRequest : public RedisMessage 2935449: { 2935449: public: 2935449: RedisRequest() = default; 2935449: 2935449: RedisRequest(RedisRequest&& move) = default; 2935449: 2935449: RedisRequest& operator= (RedisRequest&& move) = default; 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: 2935449: void set_request(const std::string& command, 2935449: const std::vector& params); 2935449: 2935449: bool get_command(std::string& command) const; 2935449: bool get_params(std::vector& params) const; 2935449: 2935449: protected: 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: virtual int append(const void *buf, size_t *size); 2935449: 2935449: private: 2935449: std::vector user_request_; 2935449: }; 2935449: 2935449: class RedisResponse : public RedisMessage 2935449: { 2935449: public: 2935449: RedisResponse() = default; 2935449: 2935449: RedisResponse(RedisResponse&& move) = default; 2935449: 2935449: RedisResponse& operator= (RedisResponse&& move) = default; 2935449: 2935449: public: 2935449: 2935449: void get_result(RedisValue& value) const; 2935449: 2935449: 2935449: bool set_result(const RedisValue& value); 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: redis_reply_t *result_ptr(); 2935449: 2935449: protected: 2935449: virtual int append(const void *buf, size_t *size); 2935449: 2935449: private: 2935449: RedisValue value_; 2935449: }; 2935449: 2935449: 2935449: 2935449: inline RedisValue::RedisValue(): 2935449: type_(4), 2935449: data_( 2935449: # 214 "/<>/_include/workflow/RedisMessage.h" 3 4 2935449: __null 2935449: # 214 "/<>/_include/workflow/RedisMessage.h" 2935449: ) 2935449: { 2935449: } 2935449: 2935449: inline RedisValue::RedisValue(const RedisValue& copy): 2935449: type_(4), 2935449: data_( 2935449: # 220 "/<>/_include/workflow/RedisMessage.h" 3 4 2935449: __null 2935449: # 220 "/<>/_include/workflow/RedisMessage.h" 2935449: ) 2935449: { 2935449: this->operator= (copy); 2935449: } 2935449: 2935449: inline RedisValue::RedisValue(RedisValue&& move): 2935449: type_(4), 2935449: data_( 2935449: # 227 "/<>/_include/workflow/RedisMessage.h" 3 4 2935449: __null 2935449: # 227 "/<>/_include/workflow/RedisMessage.h" 2935449: ) 2935449: { 2935449: this->operator= (std::move(move)); 2935449: } 2935449: 2935449: inline bool RedisValue::is_ok() const { return type_ != 6; } 2935449: inline bool RedisValue::is_error() const { return type_ == 6; } 2935449: inline bool RedisValue::is_nil() const { return type_ == 4; } 2935449: inline bool RedisValue::is_int() const { return type_ == 3; } 2935449: inline bool RedisValue::is_array() const { return type_ == 2; } 2935449: inline int RedisValue::get_type() const { return type_; } 2935449: 2935449: inline bool RedisValue::is_string() const 2935449: { 2935449: return type_ == 1 || type_ == 5; 2935449: } 2935449: 2935449: inline std::string RedisValue::string_value() const 2935449: { 2935449: if (type_ == 1 || 2935449: type_ == 5 || 2935449: type_ == 6) 2935449: return *((std::string *)data_); 2935449: else 2935449: return ""; 2935449: } 2935449: 2935449: inline const std::string *RedisValue::string_view() const 2935449: { 2935449: if (type_ == 1 || 2935449: type_ == 5 || 2935449: type_ == 6) 2935449: return ((std::string *)data_); 2935449: else 2935449: return 2935449: # 261 "/<>/_include/workflow/RedisMessage.h" 3 4 2935449: __null 2935449: # 261 "/<>/_include/workflow/RedisMessage.h" 2935449: ; 2935449: } 2935449: 2935449: inline int64_t RedisValue::int_value() const 2935449: { 2935449: if (type_ == 3) 2935449: return *((int64_t *)data_); 2935449: else 2935449: return 0; 2935449: } 2935449: 2935449: inline size_t RedisValue::arr_size() const 2935449: { 2935449: if (type_ == 2) 2935449: return ((std::vector *)data_)->size(); 2935449: else 2935449: return 0; 2935449: } 2935449: 2935449: inline RedisValue& RedisValue::arr_at(size_t pos) const 2935449: { 2935449: return ((std::vector *)data_)->at(pos); 2935449: } 2935449: 2935449: inline RedisValue& RedisValue::operator[] (size_t pos) const 2935449: { 2935449: return (*((std::vector *)data_))[pos]; 2935449: } 2935449: 2935449: inline void RedisValue::set_nil() 2935449: { 2935449: free_data(); 2935449: type_ = 4; 2935449: } 2935449: 2935449: inline void RedisValue::clear() 2935449: { 2935449: set_nil(); 2935449: } 2935449: 2935449: inline bool RedisMessage::parse_success() const { return parser_->parse_succ; } 2935449: 2935449: inline bool RedisMessage::is_asking() const { return asking_; } 2935449: 2935449: inline void RedisMessage::set_asking(bool asking) { asking_ = asking; } 2935449: 2935449: inline redis_reply_t *RedisResponse::result_ptr() 2935449: { 2935449: return &parser_->reply; 2935449: } 2935449: 2935449: inline void RedisResponse::get_result(RedisValue& value) const 2935449: { 2935449: if (parser_->parse_succ) 2935449: value.set(&parser_->reply); 2935449: else 2935449: value.set_nil(); 2935449: } 2935449: 2935449: } 2935449: # 31 "/<>/_include/workflow/WFTaskFactory.h" 2 2935449: 2935449: # 1 "/<>/_include/workflow/MySQLMessage.h" 1 2935449: # 25 "/<>/_include/workflow/MySQLMessage.h" 2935449: # 1 "/<>/_include/workflow/mysql_stream.h" 1 2935449: # 22 "/<>/_include/workflow/mysql_stream.h" 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/stdlib.h" 1 3 2935449: # 23 "/<>/_include/workflow/mysql_stream.h" 2 2935449: 2935449: typedef struct __mysql_stream 2935449: { 2935449: unsigned char head[4]; 2935449: unsigned char head_left; 2935449: unsigned char sequence_id; 2935449: int payload_length; 2935449: int payload_left; 2935449: void *buf; 2935449: size_t length; 2935449: size_t bufsize; 2935449: int (*write)(const void *, size_t *, struct __mysql_stream *); 2935449: } mysql_stream_t; 2935449: 2935449: 2935449: extern "C" 2935449: { 2935449: 2935449: 2935449: void mysql_stream_init(mysql_stream_t *stream); 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: static inline int mysql_stream_write(const void *buf, size_t *n, 2935449: mysql_stream_t *stream) 2935449: { 2935449: return stream->write(buf, n, stream); 2935449: } 2935449: 2935449: static inline int mysql_stream_get_seq(mysql_stream_t *stream) 2935449: { 2935449: return stream->sequence_id; 2935449: } 2935449: 2935449: static inline void mysql_stream_get_buf(const void **buf, size_t *length, 2935449: mysql_stream_t *stream) 2935449: { 2935449: *buf = stream->buf; 2935449: *length = stream->length; 2935449: } 2935449: 2935449: static inline void mysql_stream_deinit(mysql_stream_t *stream) 2935449: { 2935449: free(stream->buf); 2935449: } 2935449: # 26 "/<>/_include/workflow/MySQLMessage.h" 2 2935449: # 1 "/<>/_include/workflow/mysql_parser.h" 1 2935449: # 22 "/<>/_include/workflow/mysql_parser.h" 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 23 "/<>/_include/workflow/mysql_parser.h" 2 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: enum 2935449: { 2935449: MYSQL_PACKET_HEADER_OK = 0, 2935449: MYSQL_PACKET_HEADER_NULL = 251, 2935449: MYSQL_PACKET_HEADER_EOF = 254, 2935449: MYSQL_PACKET_HEADER_ERROR = 255, 2935449: }; 2935449: 2935449: typedef struct __mysql_field 2935449: { 2935449: size_t name_offset; 2935449: size_t org_name_offset; 2935449: size_t table_offset; 2935449: size_t org_table_offset; 2935449: size_t db_offset; 2935449: size_t catalog_offset; 2935449: size_t def_offset; 2935449: int length; 2935449: int name_length; 2935449: int org_name_length; 2935449: int table_length; 2935449: int org_table_length; 2935449: int db_length; 2935449: int catalog_length; 2935449: int def_length; 2935449: int flags; 2935449: int decimals; 2935449: int charsetnr; 2935449: int data_type; 2935449: 2935449: } mysql_field_t; 2935449: 2935449: struct __mysql_result_set 2935449: { 2935449: struct list_head list; 2935449: int type; 2935449: int server_status; 2935449: 2935449: int field_count; 2935449: int row_count; 2935449: size_t rows_begin_offset; 2935449: size_t rows_end_offset; 2935449: mysql_field_t **fields; 2935449: 2935449: unsigned long long affected_rows; 2935449: unsigned long long insert_id; 2935449: int warning_count; 2935449: size_t info_offset; 2935449: int info_len; 2935449: }; 2935449: 2935449: typedef struct __mysql_result_set_cursor 2935449: { 2935449: const struct list_head *head; 2935449: const struct list_head *current; 2935449: } mysql_result_set_cursor_t; 2935449: 2935449: typedef struct __mysql_parser 2935449: { 2935449: size_t offset; 2935449: int cmd; 2935449: int packet_type; 2935449: int (*parse)(const void *, size_t, struct __mysql_parser *); 2935449: 2935449: size_t net_state_offset; 2935449: size_t err_msg_offset; 2935449: int err_msg_len; 2935449: 2935449: size_t local_inline_offset; 2935449: int local_inline_length; 2935449: const void *buf; 2935449: int error; 2935449: 2935449: int result_set_count; 2935449: struct list_head result_set_list; 2935449: struct __mysql_result_set *current_result_set; 2935449: int current_field_count; 2935449: } mysql_parser_t; 2935449: 2935449: 2935449: extern "C" 2935449: { 2935449: 2935449: 2935449: void mysql_parser_init(mysql_parser_t *parser); 2935449: void mysql_parser_deinit(mysql_parser_t *parser); 2935449: void mysql_parser_get_info(const char **info_str, 2935449: size_t *info_len, 2935449: mysql_parser_t *parser); 2935449: void mysql_parser_get_net_state(const char **net_state_str, 2935449: size_t *net_state_len, 2935449: mysql_parser_t *parser); 2935449: void mysql_parser_get_err_msg(const char **err_msg_str, 2935449: size_t *err_msg_len, 2935449: mysql_parser_t *parser); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int mysql_parser_parse(const void *buf, size_t len, mysql_parser_t *parser); 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: static inline void mysql_parser_set_command(int cmd, mysql_parser_t *parser) 2935449: { 2935449: parser->cmd = cmd; 2935449: } 2935449: 2935449: static inline void mysql_parser_get_local_inline(const char **local_inline_name, 2935449: size_t *local_inline_len, 2935449: mysql_parser_t *parser) 2935449: { 2935449: *local_inline_name = (const char *)parser->buf + parser->local_inline_offset; 2935449: *local_inline_len = parser->local_inline_length; 2935449: } 2935449: 2935449: static inline void mysql_result_set_cursor_init(mysql_result_set_cursor_t *cursor, 2935449: mysql_parser_t *parser) 2935449: { 2935449: cursor->head = &parser->result_set_list; 2935449: cursor->current = cursor->head; 2935449: } 2935449: 2935449: static inline void mysql_result_set_cursor_rewind(mysql_result_set_cursor_t *cursor) 2935449: { 2935449: cursor->current = cursor->head; 2935449: } 2935449: 2935449: static inline void mysql_result_set_cursor_deinit(mysql_result_set_cursor_t *cursor) 2935449: { 2935449: } 2935449: 2935449: static inline int mysql_result_set_cursor_next(struct __mysql_result_set **result_set, 2935449: mysql_result_set_cursor_t *cursor) 2935449: { 2935449: if (cursor->current->next != cursor->head) 2935449: { 2935449: cursor->current = cursor->current->next; 2935449: *result_set = ((struct __mysql_result_set *)((char *)(cursor->current)-(unsigned long)(&((struct __mysql_result_set *)0)->list))); 2935449: return 0; 2935449: } 2935449: return 1; 2935449: } 2935449: # 27 "/<>/_include/workflow/MySQLMessage.h" 2 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: namespace protocol 2935449: { 2935449: 2935449: class MySQLMessage : public ProtocolMessage 2935449: { 2935449: public: 2935449: mysql_parser_t *get_parser() const; 2935449: int get_seqid() const; 2935449: void set_seqid(int seqid); 2935449: int get_command() const; 2935449: 2935449: protected: 2935449: virtual int append(const void *buf, size_t *size); 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: virtual int decode_packet(const unsigned char *buf, size_t buflen) { return 1; } 2935449: 2935449: void set_command(int cmd) const; 2935449: 2935449: 2935449: mysql_stream_t *stream_; 2935449: mysql_parser_t *parser_; 2935449: 2935449: 2935449: unsigned char heads_[256][4]; 2935449: uint8_t seqid_; 2935449: std::string buf_; 2935449: size_t cur_size_; 2935449: 2935449: public: 2935449: MySQLMessage(); 2935449: virtual ~MySQLMessage(); 2935449: 2935449: MySQLMessage(MySQLMessage&& move); 2935449: 2935449: MySQLMessage& operator= (MySQLMessage&& move); 2935449: }; 2935449: 2935449: class MySQLRequest : public MySQLMessage 2935449: { 2935449: public: 2935449: void set_query(const char *query); 2935449: void set_query(const std::string& query); 2935449: void set_query(const char *query, size_t length); 2935449: 2935449: std::string get_query() const; 2935449: bool query_is_unset() const; 2935449: 2935449: public: 2935449: MySQLRequest() = default; 2935449: 2935449: MySQLRequest(MySQLRequest&& move) = default; 2935449: 2935449: MySQLRequest& operator= (MySQLRequest&& move) = default; 2935449: }; 2935449: 2935449: class MySQLResponse : public MySQLMessage 2935449: { 2935449: public: 2935449: bool is_ok_packet() const; 2935449: bool is_error_packet() const; 2935449: int get_packet_type() const; 2935449: 2935449: unsigned long long get_affected_rows() const; 2935449: unsigned long long get_last_insert_id() const; 2935449: int get_warnings() const; 2935449: int get_error_code() const; 2935449: std::string get_error_msg() const; 2935449: std::string get_sql_state() const; 2935449: std::string get_info() const; 2935449: 2935449: void set_ok_packet(); 2935449: 2935449: public: 2935449: MySQLResponse() = default; 2935449: 2935449: MySQLResponse(MySQLResponse&& move) = default; 2935449: 2935449: MySQLResponse& operator= (MySQLResponse&& move) = default; 2935449: 2935449: protected: 2935449: virtual int decode_packet(const unsigned char *buf, size_t buflen); 2935449: }; 2935449: 2935449: } 2935449: 2935449: 2935449: # 1 "/<>/_include/workflow/MySQLMessage.inl" 1 2935449: # 25 "/<>/_include/workflow/MySQLMessage.inl" 2935449: # 1 "/<>/_include/workflow/SSLWrapper.h" 1 2935449: # 25 "/<>/_include/workflow/SSLWrapper.h" 2935449: namespace protocol 2935449: { 2935449: 2935449: class SSLHandshaker : public ProtocolMessage 2935449: { 2935449: public: 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: virtual int append(const void *buf, size_t *size); 2935449: 2935449: protected: 2935449: SSL *ssl; 2935449: 2935449: public: 2935449: SSLHandshaker(SSL *ssl) 2935449: { 2935449: this->ssl = ssl; 2935449: } 2935449: 2935449: public: 2935449: SSLHandshaker(SSLHandshaker&& handshaker) = default; 2935449: SSLHandshaker& operator = (SSLHandshaker&& handshaker) = default; 2935449: }; 2935449: 2935449: class SSLWrapper : public ProtocolWrapper 2935449: { 2935449: protected: 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: virtual int append(const void *buf, size_t *size); 2935449: 2935449: protected: 2935449: virtual int feedback(const void *buf, size_t size); 2935449: 2935449: protected: 2935449: int append_message(); 2935449: 2935449: protected: 2935449: SSL *ssl; 2935449: 2935449: public: 2935449: SSLWrapper(ProtocolMessage *message, SSL *ssl) : 2935449: ProtocolWrapper(message) 2935449: { 2935449: this->ssl = ssl; 2935449: } 2935449: 2935449: public: 2935449: SSLWrapper(SSLWrapper&& wrapper) = default; 2935449: SSLWrapper& operator = (SSLWrapper&& wrapper) = default; 2935449: }; 2935449: 2935449: class ServerSSLWrapper : public SSLWrapper 2935449: { 2935449: protected: 2935449: virtual int append(const void *buf, size_t *size); 2935449: 2935449: public: 2935449: ServerSSLWrapper(ProtocolMessage *message, SSL *ssl) : 2935449: SSLWrapper(message, ssl) 2935449: { 2935449: } 2935449: 2935449: public: 2935449: ServerSSLWrapper(ServerSSLWrapper&& wrapper) = default; 2935449: ServerSSLWrapper& operator = (ServerSSLWrapper&& wrapper) = default; 2935449: }; 2935449: 2935449: } 2935449: # 26 "/<>/_include/workflow/MySQLMessage.inl" 2 2935449: 2935449: namespace protocol 2935449: { 2935449: 2935449: class MySQLHandshakeRequest : public MySQLRequest 2935449: { 2935449: private: 2935449: virtual int encode(struct iovec vectors[], int max) { return 0; } 2935449: }; 2935449: 2935449: class MySQLHandshakeResponse : public MySQLResponse 2935449: { 2935449: public: 2935449: std::string get_server_version() const { return server_version_; } 2935449: std::string get_auth_plugin_name() const { return auth_plugin_name_; } 2935449: 2935449: void get_seed(unsigned char seed[20]) const 2935449: { 2935449: memcpy(seed, auth_plugin_data_, 20); 2935449: } 2935449: 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: 2935449: void server_set(uint8_t protocol_version, const std::string server_version, 2935449: uint32_t connection_id, const unsigned char seed[20], 2935449: uint32_t capability_flags, uint8_t character_set, 2935449: uint16_t status_flags) 2935449: { 2935449: protocol_version_ = protocol_version; 2935449: server_version_ = server_version; 2935449: connection_id_ = connection_id; 2935449: memcpy(auth_plugin_data_, seed, 20); 2935449: capability_flags_ = capability_flags; 2935449: character_set_ = character_set; 2935449: status_flags_ = status_flags; 2935449: } 2935449: 2935449: bool host_disallowed() const { return disallowed_; } 2935449: uint32_t get_capability_flags() const { return capability_flags_; } 2935449: uint16_t get_status_flags() const { return status_flags_; } 2935449: 2935449: private: 2935449: virtual int decode_packet(const unsigned char *buf, size_t buflen); 2935449: 2935449: std::string server_version_; 2935449: std::string auth_plugin_name_; 2935449: unsigned char auth_plugin_data_[20]; 2935449: uint32_t connection_id_; 2935449: uint32_t capability_flags_; 2935449: uint16_t status_flags_; 2935449: uint8_t character_set_; 2935449: uint8_t auth_plugin_data_len_; 2935449: uint8_t protocol_version_; 2935449: bool disallowed_; 2935449: 2935449: public: 2935449: MySQLHandshakeResponse() : disallowed_(false) { } 2935449: 2935449: MySQLHandshakeResponse(MySQLHandshakeResponse&& move) = default; 2935449: 2935449: MySQLHandshakeResponse& operator= (MySQLHandshakeResponse&& move) = default; 2935449: }; 2935449: 2935449: class MySQLSSLRequest : public MySQLRequest 2935449: { 2935449: private: 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: 2935449: 2935449: virtual int decode_packet(const unsigned char *buf, size_t buflen) 2935449: { 2935449: return -2; 2935449: } 2935449: 2935449: private: 2935449: int character_set_; 2935449: SSLHandshaker ssl_handshaker_; 2935449: 2935449: public: 2935449: MySQLSSLRequest(int character_set, SSL *ssl) : ssl_handshaker_(ssl) 2935449: { 2935449: character_set_ = character_set; 2935449: } 2935449: 2935449: MySQLSSLRequest(MySQLSSLRequest&& move) = default; 2935449: MySQLSSLRequest& operator= (MySQLSSLRequest&& move) = default; 2935449: }; 2935449: 2935449: class MySQLAuthRequest : public MySQLRequest 2935449: { 2935449: public: 2935449: void set_auth(const std::string username, 2935449: const std::string password, 2935449: const std::string db, 2935449: int character_set) 2935449: { 2935449: username_ = std::move(username); 2935449: password_ = std::move(password); 2935449: db_ = std::move(db); 2935449: character_set_ = character_set; 2935449: } 2935449: 2935449: void set_auth_plugin_name(std::string name) 2935449: { 2935449: auth_plugin_name_ = std::move(name); 2935449: } 2935449: 2935449: void set_seed(const unsigned char seed[20]) 2935449: { 2935449: memcpy(seed_, seed, 20); 2935449: } 2935449: 2935449: private: 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: virtual int decode_packet(const unsigned char *buf, size_t buflen); 2935449: 2935449: std::string username_; 2935449: std::string password_; 2935449: std::string db_; 2935449: std::string auth_plugin_name_; 2935449: unsigned char seed_[20]; 2935449: int character_set_; 2935449: 2935449: public: 2935449: MySQLAuthRequest() : character_set_(33) { } 2935449: 2935449: MySQLAuthRequest(MySQLAuthRequest&& move) = default; 2935449: 2935449: MySQLAuthRequest& operator= (MySQLAuthRequest&& move) = default; 2935449: }; 2935449: 2935449: class MySQLAuthResponse : public MySQLResponse 2935449: { 2935449: public: 2935449: std::string get_auth_plugin_name() const { return auth_plugin_name_; } 2935449: 2935449: void get_seed(unsigned char seed[20]) const 2935449: { 2935449: memcpy(seed, seed_, 20); 2935449: } 2935449: 2935449: bool is_continue() const 2935449: { 2935449: return continue_; 2935449: } 2935449: 2935449: private: 2935449: virtual int decode_packet(const unsigned char *buf, size_t buflen); 2935449: 2935449: private: 2935449: std::string auth_plugin_name_; 2935449: unsigned char seed_[20]; 2935449: bool continue_; 2935449: 2935449: public: 2935449: MySQLAuthResponse() : continue_(false) { } 2935449: 2935449: MySQLAuthResponse(MySQLAuthResponse&& move) = default; 2935449: 2935449: MySQLAuthResponse& operator= (MySQLAuthResponse&& move) = default; 2935449: }; 2935449: 2935449: class MySQLAuthSwitchRequest : public MySQLRequest 2935449: { 2935449: public: 2935449: void set_password(std::string password) 2935449: { 2935449: password_ = std::move(password); 2935449: } 2935449: 2935449: void set_auth_plugin_name(std::string name) 2935449: { 2935449: auth_plugin_name_ = std::move(name); 2935449: } 2935449: 2935449: void set_seed(const unsigned char seed[20]) 2935449: { 2935449: memcpy(seed_, seed, 20); 2935449: } 2935449: 2935449: private: 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: 2935449: 2935449: virtual int decode_packet(const unsigned char *buf, size_t buflen) 2935449: { 2935449: return -2; 2935449: } 2935449: 2935449: std::string password_; 2935449: std::string auth_plugin_name_; 2935449: unsigned char seed_[20]; 2935449: 2935449: public: 2935449: MySQLAuthSwitchRequest() { } 2935449: 2935449: MySQLAuthSwitchRequest(MySQLAuthSwitchRequest&& move) = default; 2935449: 2935449: MySQLAuthSwitchRequest& operator= (MySQLAuthSwitchRequest&& move) = default; 2935449: }; 2935449: 2935449: class MySQLPublicKeyRequest : public MySQLRequest 2935449: { 2935449: public: 2935449: void set_caching_sha2() { byte_ = 0x02; } 2935449: void set_sha256() { byte_ = 0x01; } 2935449: 2935449: private: 2935449: virtual int encode(struct iovec vectors[], int max) 2935449: { 2935449: buf_.assign(&byte_, 1); 2935449: return MySQLRequest::encode(vectors, max); 2935449: } 2935449: 2935449: 2935449: virtual int decode_packet(const unsigned char *buf, size_t buflen) 2935449: { 2935449: return -2; 2935449: } 2935449: 2935449: char byte_; 2935449: 2935449: public: 2935449: MySQLPublicKeyRequest() : byte_(0x01) { } 2935449: 2935449: MySQLPublicKeyRequest(MySQLPublicKeyRequest&& move) = default; 2935449: 2935449: MySQLPublicKeyRequest& operator= (MySQLPublicKeyRequest&& move) = default; 2935449: }; 2935449: 2935449: class MySQLPublicKeyResponse : public MySQLResponse 2935449: { 2935449: public: 2935449: std::string get_public_key() const 2935449: { 2935449: return public_key_; 2935449: } 2935449: 2935449: void set_public_key(std::string key) 2935449: { 2935449: public_key_ = std::move(key); 2935449: } 2935449: 2935449: private: 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: virtual int decode_packet(const unsigned char *buf, size_t buflen); 2935449: 2935449: std::string public_key_; 2935449: 2935449: public: 2935449: MySQLPublicKeyResponse() { } 2935449: 2935449: MySQLPublicKeyResponse(MySQLPublicKeyResponse&& move) = default; 2935449: 2935449: MySQLPublicKeyResponse& operator= (MySQLPublicKeyResponse&& move) = default; 2935449: }; 2935449: 2935449: class MySQLRSAAuthRequest : public MySQLRequest 2935449: { 2935449: public: 2935449: void set_password(std::string password) 2935449: { 2935449: password_ = std::move(password); 2935449: } 2935449: 2935449: void set_public_key(std::string key) 2935449: { 2935449: public_key_ = std::move(key); 2935449: } 2935449: 2935449: void set_seed(const unsigned char seed[20]) 2935449: { 2935449: memcpy(seed_, seed, 20); 2935449: } 2935449: 2935449: private: 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: 2935449: 2935449: virtual int decode_packet(const unsigned char *buf, size_t buflen) 2935449: { 2935449: return -2; 2935449: } 2935449: 2935449: int rsa_encrypt(void *ctx); 2935449: 2935449: std::string password_; 2935449: std::string public_key_; 2935449: unsigned char seed_[20]; 2935449: 2935449: public: 2935449: MySQLRSAAuthRequest() { } 2935449: 2935449: MySQLRSAAuthRequest(MySQLRSAAuthRequest&& move) = default; 2935449: 2935449: MySQLRSAAuthRequest& operator= (MySQLRSAAuthRequest&& move) = default; 2935449: }; 2935449: 2935449: 2935449: 2935449: inline mysql_parser_t *MySQLMessage::get_parser() const 2935449: { 2935449: return parser_; 2935449: } 2935449: 2935449: inline int MySQLMessage::get_seqid() const 2935449: { 2935449: return seqid_; 2935449: } 2935449: 2935449: inline void MySQLMessage::set_seqid(int seqid) 2935449: { 2935449: seqid_ = seqid; 2935449: } 2935449: 2935449: inline int MySQLMessage::get_command() const 2935449: { 2935449: return parser_->cmd; 2935449: } 2935449: 2935449: inline void MySQLMessage::set_command(int cmd) const 2935449: { 2935449: mysql_parser_set_command(cmd, parser_); 2935449: } 2935449: 2935449: inline MySQLMessage::MySQLMessage(): 2935449: stream_(new mysql_stream_t), 2935449: parser_(new mysql_parser_t), 2935449: seqid_(0), 2935449: cur_size_(0) 2935449: { 2935449: mysql_stream_init(stream_); 2935449: mysql_parser_init(parser_); 2935449: } 2935449: 2935449: inline bool MySQLRequest::query_is_unset() const 2935449: { 2935449: return buf_.empty(); 2935449: } 2935449: 2935449: inline void MySQLRequest::set_query(const char *query) 2935449: { 2935449: set_query(query, strlen(query)); 2935449: } 2935449: 2935449: inline void MySQLRequest::set_query(const std::string& query) 2935449: { 2935449: set_query(query.c_str(), query.size()); 2935449: } 2935449: 2935449: inline int MySQLResponse::get_packet_type() const 2935449: { 2935449: return parser_->packet_type; 2935449: } 2935449: 2935449: inline int MySQLResponse::get_error_code() const 2935449: { 2935449: return is_error_packet() ? parser_->error : 0; 2935449: } 2935449: 2935449: inline std::string MySQLResponse::get_error_msg() const 2935449: { 2935449: if (is_error_packet()) 2935449: { 2935449: const char *s; 2935449: size_t slen; 2935449: 2935449: mysql_parser_get_err_msg(&s, &slen, parser_); 2935449: if (slen > 0) 2935449: return std::string(s, slen); 2935449: } 2935449: 2935449: return std::string(); 2935449: } 2935449: 2935449: inline std::string MySQLResponse::get_sql_state() const 2935449: { 2935449: if (is_error_packet()) 2935449: { 2935449: const char *s; 2935449: size_t slen; 2935449: 2935449: mysql_parser_get_net_state(&s, &slen, parser_); 2935449: if (slen > 0) 2935449: return std::string(s, slen); 2935449: } 2935449: 2935449: return std::string(); 2935449: } 2935449: 2935449: } 2935449: # 120 "/<>/_include/workflow/MySQLMessage.h" 2 2935449: # 33 "/<>/_include/workflow/WFTaskFactory.h" 2 2935449: # 1 "/<>/_include/workflow/DnsMessage.h" 1 2935449: # 30 "/<>/_include/workflow/DnsMessage.h" 2935449: # 1 "/<>/_include/workflow/dns_parser.h" 1 2935449: # 31 "/<>/_include/workflow/dns_parser.h" 2935449: #pragma pack(1) 2935449: struct dns_header 2935449: { 2935449: uint16_t id; 2935449: 2935449: uint8_t rd : 1; 2935449: uint8_t tc : 1; 2935449: uint8_t aa : 1; 2935449: uint8_t opcode : 4; 2935449: uint8_t qr : 1; 2935449: uint8_t rcode : 4; 2935449: uint8_t z : 3; 2935449: uint8_t ra : 1; 2935449: # 56 "/<>/_include/workflow/dns_parser.h" 2935449: uint16_t qdcount; 2935449: uint16_t ancount; 2935449: uint16_t nscount; 2935449: uint16_t arcount; 2935449: }; 2935449: #pragma pack() 2935449: 2935449: struct dns_question 2935449: { 2935449: char *qname; 2935449: uint16_t qtype; 2935449: uint16_t qclass; 2935449: }; 2935449: 2935449: struct dns_record_soa 2935449: { 2935449: char *mname; 2935449: char *rname; 2935449: uint32_t serial; 2935449: int32_t refresh; 2935449: int32_t retry; 2935449: int32_t expire; 2935449: uint32_t minimum; 2935449: }; 2935449: 2935449: struct dns_record_srv 2935449: { 2935449: uint16_t priority; 2935449: uint16_t weight; 2935449: uint16_t port; 2935449: char *target; 2935449: }; 2935449: 2935449: struct dns_record_mx 2935449: { 2935449: int16_t preference; 2935449: char *exchange; 2935449: }; 2935449: 2935449: struct dns_record 2935449: { 2935449: char *name; 2935449: uint16_t type; 2935449: uint16_t rclass; 2935449: uint32_t ttl; 2935449: uint16_t rdlength; 2935449: void *rdata; 2935449: }; 2935449: 2935449: typedef struct __dns_parser 2935449: { 2935449: void *msgbuf; 2935449: void *msgbase; 2935449: const char *cur; 2935449: size_t msgsize; 2935449: size_t bufsize; 2935449: char complete; 2935449: char single_packet; 2935449: struct dns_header header; 2935449: struct dns_question question; 2935449: struct list_head answer_list; 2935449: struct list_head authority_list; 2935449: struct list_head additional_list; 2935449: } dns_parser_t; 2935449: 2935449: typedef struct __dns_record_cursor 2935449: { 2935449: const struct list_head *head; 2935449: const struct list_head *next; 2935449: } dns_record_cursor_t; 2935449: 2935449: 2935449: extern "C" 2935449: { 2935449: 2935449: 2935449: void dns_parser_init(dns_parser_t *parser); 2935449: 2935449: void dns_parser_set_id(uint16_t id, dns_parser_t *parser); 2935449: int dns_parser_set_question(const char *name, 2935449: uint16_t qtype, 2935449: uint16_t qclass, 2935449: dns_parser_t *parser); 2935449: int dns_parser_set_question_name(const char *name, 2935449: dns_parser_t *parser); 2935449: 2935449: int dns_parser_parse_all(dns_parser_t *parser); 2935449: int dns_parser_append_message(const void *buf, size_t *n, 2935449: dns_parser_t *parser); 2935449: 2935449: void dns_parser_deinit(dns_parser_t *parser); 2935449: 2935449: int dns_record_cursor_next(struct dns_record **record, 2935449: dns_record_cursor_t *cursor); 2935449: 2935449: int dns_record_cursor_find_cname(const char *name, 2935449: const char **cname, 2935449: dns_record_cursor_t *cursor); 2935449: 2935449: int dns_add_raw_record(const char *name, uint16_t type, uint16_t rclass, 2935449: uint32_t ttl, uint16_t rlen, const void *rdata, 2935449: struct list_head *list); 2935449: 2935449: int dns_add_str_record(const char *name, uint16_t type, uint16_t rclass, 2935449: uint32_t ttl, const char *rdata, 2935449: struct list_head *list); 2935449: 2935449: int dns_add_soa_record(const char *name, uint16_t rclass, uint32_t ttl, 2935449: const char *mname, const char *rname, 2935449: uint32_t serial, int32_t refresh, 2935449: int32_t retry, int32_t expire, uint32_t minimum, 2935449: struct list_head *list); 2935449: 2935449: int dns_add_srv_record(const char *name, uint16_t rclass, uint32_t ttl, 2935449: uint16_t priority, uint16_t weight, 2935449: uint16_t port, const char *target, 2935449: struct list_head *list); 2935449: 2935449: int dns_add_mx_record(const char *name, uint16_t rclass, uint32_t ttl, 2935449: int16_t preference, const char *exchange, 2935449: struct list_head *list); 2935449: 2935449: const char *dns_type2str(int type); 2935449: const char *dns_class2str(int dnsclass); 2935449: const char *dns_opcode2str(int opcode); 2935449: const char *dns_rcode2str(int rcode); 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: static inline void dns_answer_cursor_init(dns_record_cursor_t *cursor, 2935449: const dns_parser_t *parser) 2935449: { 2935449: cursor->head = &parser->answer_list; 2935449: cursor->next = cursor->head; 2935449: } 2935449: 2935449: static inline void dns_authority_cursor_init(dns_record_cursor_t *cursor, 2935449: const dns_parser_t *parser) 2935449: { 2935449: cursor->head = &parser->authority_list; 2935449: cursor->next = cursor->head; 2935449: } 2935449: 2935449: static inline void dns_additional_cursor_init(dns_record_cursor_t *cursor, 2935449: const dns_parser_t *parser) 2935449: { 2935449: cursor->head = &parser->additional_list; 2935449: cursor->next = cursor->head; 2935449: } 2935449: 2935449: static inline void dns_record_cursor_deinit(dns_record_cursor_t *cursor) 2935449: { 2935449: } 2935449: # 31 "/<>/_include/workflow/DnsMessage.h" 2 2935449: 2935449: namespace protocol 2935449: { 2935449: 2935449: class DnsMessage : public ProtocolMessage 2935449: { 2935449: protected: 2935449: virtual int encode(struct iovec vectors[], int max); 2935449: virtual int append(const void *buf, size_t *size); 2935449: 2935449: public: 2935449: int get_id() const 2935449: { 2935449: return parser->header.id; 2935449: } 2935449: int get_qr() const 2935449: { 2935449: return parser->header.qr; 2935449: } 2935449: int get_opcode() const 2935449: { 2935449: return parser->header.opcode; 2935449: } 2935449: int get_aa() const 2935449: { 2935449: return parser->header.aa; 2935449: } 2935449: int get_tc() const 2935449: { 2935449: return parser->header.tc; 2935449: } 2935449: int get_rd() const 2935449: { 2935449: return parser->header.rd; 2935449: } 2935449: int get_ra() const 2935449: { 2935449: return parser->header.ra; 2935449: } 2935449: int get_rcode() const 2935449: { 2935449: return parser->header.rcode; 2935449: } 2935449: int get_qdcount() const 2935449: { 2935449: return parser->header.qdcount; 2935449: } 2935449: int get_ancount() const 2935449: { 2935449: return parser->header.ancount; 2935449: } 2935449: int get_nscount() const 2935449: { 2935449: return parser->header.nscount; 2935449: } 2935449: int get_arcount() const 2935449: { 2935449: return parser->header.arcount; 2935449: } 2935449: 2935449: void set_id(int id) 2935449: { 2935449: parser->header.id = id; 2935449: } 2935449: void set_qr(int qr) 2935449: { 2935449: parser->header.qr = qr; 2935449: } 2935449: void set_opcode(int opcode) 2935449: { 2935449: parser->header.opcode = opcode; 2935449: } 2935449: void set_aa(int aa) 2935449: { 2935449: parser->header.aa = aa; 2935449: } 2935449: void set_tc(int tc) 2935449: { 2935449: parser->header.tc = tc; 2935449: } 2935449: void set_rd(int rd) 2935449: { 2935449: parser->header.rd = rd; 2935449: } 2935449: void set_ra(int ra) 2935449: { 2935449: parser->header.ra = ra; 2935449: } 2935449: void set_rcode(int rcode) 2935449: { 2935449: parser->header.rcode = rcode; 2935449: } 2935449: 2935449: int get_question_type() const 2935449: { 2935449: return parser->question.qtype; 2935449: } 2935449: int get_question_class() const 2935449: { 2935449: return parser->question.qclass; 2935449: } 2935449: std::string get_question_name() const 2935449: { 2935449: const char *name = parser->question.qname; 2935449: if (name == 2935449: # 135 "/<>/_include/workflow/DnsMessage.h" 3 4 2935449: __null 2935449: # 135 "/<>/_include/workflow/DnsMessage.h" 2935449: ) 2935449: return ""; 2935449: return name; 2935449: } 2935449: void set_question_type(int qtype) 2935449: { 2935449: parser->question.qtype = qtype; 2935449: } 2935449: void set_question_class(int qclass) 2935449: { 2935449: parser->question.qclass = qclass; 2935449: } 2935449: void set_question_name(const std::string& name) 2935449: { 2935449: char *pname = parser->question.qname; 2935449: if (pname != 2935449: # 150 "/<>/_include/workflow/DnsMessage.h" 3 4 2935449: __null 2935449: # 150 "/<>/_include/workflow/DnsMessage.h" 2935449: ) 2935449: free(pname); 2935449: parser->question.qname = strdup(name.c_str()); 2935449: } 2935449: 2935449: int add_a_record(int section, const char *name, 2935449: uint16_t rclass, uint32_t ttl, 2935449: const void *data); 2935449: 2935449: int add_aaaa_record(int section, const char *name, 2935449: uint16_t rclass, uint32_t ttl, 2935449: const void *data); 2935449: 2935449: int add_ns_record(int section, const char *name, 2935449: uint16_t rclass, uint32_t ttl, 2935449: const char *data); 2935449: 2935449: int add_cname_record(int section, const char *name, 2935449: uint16_t rclass, uint32_t ttl, 2935449: const char *data); 2935449: 2935449: int add_ptr_record(int section, const char *name, 2935449: uint16_t rclass, uint32_t ttl, 2935449: const char *data); 2935449: 2935449: int add_soa_record(int section, const char *name, 2935449: uint16_t rclass, uint32_t ttl, 2935449: const char *mname, const char *rname, 2935449: uint32_t serial, int32_t refresh, 2935449: int32_t retry, int32_t expire, uint32_t minimum); 2935449: 2935449: int add_srv_record(int section, const char *name, 2935449: uint16_t rclass, uint32_t ttl, 2935449: uint16_t priority, uint16_t weight, 2935449: uint16_t port, const char *target); 2935449: 2935449: int add_mx_record(int section, const char *name, 2935449: uint16_t rclass, uint32_t ttl, 2935449: int16_t preference, const char *exchange); 2935449: 2935449: int add_raw_record(int section, const char *name, uint16_t type, 2935449: uint16_t rclass, uint32_t ttl, 2935449: const void *data, uint16_t dlen); 2935449: 2935449: 2935449: bool is_single_packet() const 2935449: { 2935449: return parser->single_packet; 2935449: } 2935449: void set_single_packet(bool single) 2935449: { 2935449: parser->single_packet = single; 2935449: } 2935449: 2935449: public: 2935449: DnsMessage() : 2935449: parser(new dns_parser_t) 2935449: { 2935449: dns_parser_init(parser); 2935449: this->cur_size = 0; 2935449: } 2935449: 2935449: virtual ~DnsMessage() 2935449: { 2935449: if (this->parser) 2935449: { 2935449: dns_parser_deinit(parser); 2935449: delete this->parser; 2935449: } 2935449: } 2935449: 2935449: DnsMessage(DnsMessage&& msg); 2935449: DnsMessage& operator = (DnsMessage&& msg); 2935449: 2935449: protected: 2935449: dns_parser_t *parser; 2935449: std::string msgbuf; 2935449: size_t cur_size; 2935449: 2935449: private: 2935449: int encode_reply(); 2935449: int encode_truncation_reply(); 2935449: struct list_head *get_section(int section); 2935449: 2935449: 2935449: uint16_t msgsize; 2935449: }; 2935449: 2935449: class DnsRequest : public DnsMessage 2935449: { 2935449: public: 2935449: DnsRequest() = default; 2935449: DnsRequest(DnsRequest&& req) = default; 2935449: DnsRequest& operator = (DnsRequest&& req) = default; 2935449: 2935449: void set_question(const char *host, uint16_t qtype, uint16_t qclass) 2935449: { 2935449: dns_parser_set_question(host, qtype, qclass, this->parser); 2935449: } 2935449: }; 2935449: 2935449: class DnsResponse : public DnsMessage 2935449: { 2935449: public: 2935449: DnsResponse() 2935449: { 2935449: this->request_id = 0; 2935449: } 2935449: 2935449: DnsResponse(DnsResponse&& req) = default; 2935449: DnsResponse& operator = (DnsResponse&& req) = default; 2935449: 2935449: const dns_parser_t *get_parser() const 2935449: { 2935449: return this->parser; 2935449: } 2935449: 2935449: void set_request_id(uint16_t id) 2935449: { 2935449: this->request_id = id; 2935449: } 2935449: 2935449: void set_request_name(const std::string& name) 2935449: { 2935449: std::string& req_name = this->request_name; 2935449: 2935449: req_name = name; 2935449: while (req_name.size() > 1 && req_name.back() == '.') 2935449: req_name.pop_back(); 2935449: } 2935449: 2935449: protected: 2935449: virtual int append(const void *buf, size_t *size); 2935449: 2935449: private: 2935449: uint16_t request_id; 2935449: std::string request_name; 2935449: }; 2935449: 2935449: } 2935449: # 34 "/<>/_include/workflow/WFTaskFactory.h" 2 2935449: # 1 "/<>/_include/workflow/Workflow.h" 1 2935449: # 22 "/<>/_include/workflow/Workflow.h" 2935449: # 1 "/usr/arm-linux-gnueabi/include/assert.h" 1 3 2935449: # 66 "/usr/arm-linux-gnueabi/include/assert.h" 3 2935449: 2935449: # 66 "/usr/arm-linux-gnueabi/include/assert.h" 3 2935449: extern "C" { 2935449: 2935449: 2935449: extern void __assert_fail (const char *__assertion, const char *__file, 2935449: unsigned int __line, const char *__function) 2935449: noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); 2935449: 2935449: 2935449: extern void __assert_perror_fail (int __errnum, const char *__file, 2935449: unsigned int __line, const char *__function) 2935449: noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); 2935449: 2935449: 2935449: 2935449: 2935449: extern void __assert (const char *__assertion, const char *__file, int __line) 2935449: noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); 2935449: 2935449: 2935449: } 2935449: # 23 "/<>/_include/workflow/Workflow.h" 2 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 24 "/<>/_include/workflow/Workflow.h" 2 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 1 3 2935449: # 45 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 1 3 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/ratio" 1 3 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/ratio" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/cstdint" 1 3 2935449: # 50 "/usr/arm-linux-gnueabi/include/c++/15/cstdint" 3 2935449: namespace std 2935449: { 2935449: 2935449: using ::int8_t; 2935449: using ::int16_t; 2935449: using ::int32_t; 2935449: using ::int64_t; 2935449: 2935449: using ::int_fast8_t; 2935449: using ::int_fast16_t; 2935449: using ::int_fast32_t; 2935449: using ::int_fast64_t; 2935449: 2935449: using ::int_least8_t; 2935449: using ::int_least16_t; 2935449: using ::int_least32_t; 2935449: using ::int_least64_t; 2935449: 2935449: using ::intmax_t; 2935449: using ::intptr_t; 2935449: 2935449: using ::uint8_t; 2935449: using ::uint16_t; 2935449: using ::uint32_t; 2935449: using ::uint64_t; 2935449: 2935449: using ::uint_fast8_t; 2935449: using ::uint_fast16_t; 2935449: using ::uint_fast32_t; 2935449: using ::uint_fast64_t; 2935449: 2935449: using ::uint_least8_t; 2935449: using ::uint_least16_t; 2935449: using ::uint_least32_t; 2935449: using ::uint_least64_t; 2935449: 2935449: using ::uintmax_t; 2935449: using ::uintptr_t; 2935449: # 144 "/usr/arm-linux-gnueabi/include/c++/15/cstdint" 3 2935449: } 2935449: # 43 "/usr/arm-linux-gnueabi/include/c++/15/ratio" 2 3 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 46 "/usr/arm-linux-gnueabi/include/c++/15/ratio" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 61 "/usr/arm-linux-gnueabi/include/c++/15/ratio" 3 2935449: template 2935449: struct __static_sign 2935449: : integral_constant 2935449: { }; 2935449: 2935449: template 2935449: struct __static_abs 2935449: : integral_constant::value> 2935449: { }; 2935449: 2935449: template 2935449: struct __static_gcd 2935449: : __static_gcd<_Qn, (_Pn % _Qn)> 2935449: { }; 2935449: 2935449: template 2935449: struct __static_gcd<_Pn, 0> 2935449: : integral_constant::value> 2935449: { }; 2935449: 2935449: template 2935449: struct __static_gcd<0, _Qn> 2935449: : integral_constant::value> 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __safe_multiply 2935449: { 2935449: private: 2935449: static const uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 2935449: 2935449: static const uintmax_t __a0 = __static_abs<_Pn>::value % __c; 2935449: static const uintmax_t __a1 = __static_abs<_Pn>::value / __c; 2935449: static const uintmax_t __b0 = __static_abs<_Qn>::value % __c; 2935449: static const uintmax_t __b1 = __static_abs<_Qn>::value / __c; 2935449: 2935449: static_assert(__a1 == 0 || __b1 == 0, 2935449: "overflow in multiplication"); 2935449: static_assert(__a0 * __b1 + __b0 * __a1 < (__c >> 1), 2935449: "overflow in multiplication"); 2935449: static_assert(__b0 * __a0 <= 0x7fffffffffffffffLL, 2935449: "overflow in multiplication"); 2935449: static_assert((__a0 * __b1 + __b0 * __a1) * __c 2935449: <= 0x7fffffffffffffffLL - __b0 * __a0, 2935449: "overflow in multiplication"); 2935449: 2935449: public: 2935449: static const intmax_t value = _Pn * _Qn; 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __big_less 2935449: : integral_constant 2935449: { }; 2935449: 2935449: template 2935449: struct __big_add 2935449: { 2935449: static constexpr uintmax_t __lo = __lo1 + __lo2; 2935449: static constexpr uintmax_t __hi = (__hi1 + __hi2 + 2935449: (__lo1 + __lo2 < __lo1)); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __big_sub 2935449: { 2935449: static_assert(!__big_less<__hi1, __lo1, __hi2, __lo2>::value, 2935449: "Internal library error"); 2935449: static constexpr uintmax_t __lo = __lo1 - __lo2; 2935449: static constexpr uintmax_t __hi = (__hi1 - __hi2 - 2935449: (__lo1 < __lo2)); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __big_mul 2935449: { 2935449: private: 2935449: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 2935449: static constexpr uintmax_t __x0 = __x % __c; 2935449: static constexpr uintmax_t __x1 = __x / __c; 2935449: static constexpr uintmax_t __y0 = __y % __c; 2935449: static constexpr uintmax_t __y1 = __y / __c; 2935449: static constexpr uintmax_t __x0y0 = __x0 * __y0; 2935449: static constexpr uintmax_t __x0y1 = __x0 * __y1; 2935449: static constexpr uintmax_t __x1y0 = __x1 * __y0; 2935449: static constexpr uintmax_t __x1y1 = __x1 * __y1; 2935449: static constexpr uintmax_t __mix = __x0y1 + __x1y0; 2935449: static constexpr uintmax_t __mix_lo = __mix * __c; 2935449: static constexpr uintmax_t __mix_hi 2935449: = __mix / __c + ((__mix < __x0y1) ? __c : 0); 2935449: typedef __big_add<__mix_hi, __mix_lo, __x1y1, __x0y0> _Res; 2935449: public: 2935449: static constexpr uintmax_t __hi = _Res::__hi; 2935449: static constexpr uintmax_t __lo = _Res::__lo; 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __big_div_impl 2935449: { 2935449: private: 2935449: static_assert(__d >= (uintmax_t(1) << (sizeof(intmax_t) * 8 - 1)), 2935449: "Internal library error"); 2935449: static_assert(__n1 < __d, "Internal library error"); 2935449: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 2935449: static constexpr uintmax_t __d1 = __d / __c; 2935449: static constexpr uintmax_t __d0 = __d % __c; 2935449: 2935449: static constexpr uintmax_t __q1x = __n1 / __d1; 2935449: static constexpr uintmax_t __r1x = __n1 % __d1; 2935449: static constexpr uintmax_t __m = __q1x * __d0; 2935449: static constexpr uintmax_t __r1y = __r1x * __c + __n0 / __c; 2935449: static constexpr uintmax_t __r1z = __r1y + __d; 2935449: static constexpr uintmax_t __r1 2935449: = ((__r1y < __m) ? ((__r1z >= __d) && (__r1z < __m)) 2935449: ? (__r1z + __d) : __r1z : __r1y) - __m; 2935449: static constexpr uintmax_t __q1 2935449: = __q1x - ((__r1y < __m) 2935449: ? ((__r1z >= __d) && (__r1z < __m)) ? 2 : 1 : 0); 2935449: static constexpr uintmax_t __q0x = __r1 / __d1; 2935449: static constexpr uintmax_t __r0x = __r1 % __d1; 2935449: static constexpr uintmax_t __n = __q0x * __d0; 2935449: static constexpr uintmax_t __r0y = __r0x * __c + __n0 % __c; 2935449: static constexpr uintmax_t __r0z = __r0y + __d; 2935449: static constexpr uintmax_t __r0 2935449: = ((__r0y < __n) ? ((__r0z >= __d) && (__r0z < __n)) 2935449: ? (__r0z + __d) : __r0z : __r0y) - __n; 2935449: static constexpr uintmax_t __q0 2935449: = __q0x - ((__r0y < __n) ? ((__r0z >= __d) 2935449: && (__r0z < __n)) ? 2 : 1 : 0); 2935449: 2935449: public: 2935449: static constexpr uintmax_t __quot = __q1 * __c + __q0; 2935449: static constexpr uintmax_t __rem = __r0; 2935449: 2935449: private: 2935449: typedef __big_mul<__quot, __d> _Prod; 2935449: typedef __big_add<_Prod::__hi, _Prod::__lo, 0, __rem> _Sum; 2935449: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 2935449: "Internal library error"); 2935449: }; 2935449: 2935449: template 2935449: struct __big_div 2935449: { 2935449: private: 2935449: static_assert(__d != 0, "Internal library error"); 2935449: static_assert(sizeof (uintmax_t) == sizeof (unsigned long long), 2935449: "This library calls __builtin_clzll on uintmax_t, which " 2935449: "is unsafe on your platform. Please complain to " 2935449: "http://gcc.gnu.org/bugzilla/"); 2935449: static constexpr int __shift = __builtin_clzll(__d); 2935449: static constexpr int __coshift_ = sizeof(uintmax_t) * 8 - __shift; 2935449: static constexpr int __coshift = (__shift != 0) ? __coshift_ : 0; 2935449: static constexpr uintmax_t __c1 = uintmax_t(1) << __shift; 2935449: static constexpr uintmax_t __c2 = uintmax_t(1) << __coshift; 2935449: static constexpr uintmax_t __new_d = __d * __c1; 2935449: static constexpr uintmax_t __new_n0 = __n0 * __c1; 2935449: static constexpr uintmax_t __n1_shifted = (__n1 % __d) * __c1; 2935449: static constexpr uintmax_t __n0_top = (__shift != 0) ? (__n0 / __c2) : 0; 2935449: static constexpr uintmax_t __new_n1 = __n1_shifted + __n0_top; 2935449: typedef __big_div_impl<__new_n1, __new_n0, __new_d> _Res; 2935449: 2935449: public: 2935449: static constexpr uintmax_t __quot_hi = __n1 / __d; 2935449: static constexpr uintmax_t __quot_lo = _Res::__quot; 2935449: static constexpr uintmax_t __rem = _Res::__rem / __c1; 2935449: 2935449: private: 2935449: typedef __big_mul<__quot_lo, __d> _P0; 2935449: typedef __big_mul<__quot_hi, __d> _P1; 2935449: typedef __big_add<_P0::__hi, _P0::__lo, _P1::__lo, __rem> _Sum; 2935449: 2935449: static_assert(_P1::__hi == 0, "Internal library error"); 2935449: static_assert(_Sum::__hi >= _P0::__hi, "Internal library error"); 2935449: 2935449: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 2935449: "Internal library error"); 2935449: static_assert(__rem < __d, "Internal library error"); 2935449: }; 2935449: # 270 "/usr/arm-linux-gnueabi/include/c++/15/ratio" 3 2935449: template 2935449: struct ratio 2935449: { 2935449: static_assert(_Den != 0, "denominator cannot be zero"); 2935449: static_assert(_Num >= -0x7fffffffffffffffLL && _Den >= -0x7fffffffffffffffLL, 2935449: "out of range"); 2935449: 2935449: 2935449: static constexpr intmax_t num = 2935449: _Num * __static_sign<_Den>::value / __static_gcd<_Num, _Den>::value; 2935449: 2935449: static constexpr intmax_t den = 2935449: __static_abs<_Den>::value / __static_gcd<_Num, _Den>::value; 2935449: 2935449: typedef ratio type; 2935449: }; 2935449: 2935449: 2935449: template 2935449: constexpr intmax_t ratio<_Num, _Den>::num; 2935449: 2935449: template 2935449: constexpr intmax_t ratio<_Num, _Den>::den; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __is_ratio 2935449: : std::false_type 2935449: { }; 2935449: 2935449: template 2935449: struct __is_ratio> 2935449: : std::true_type 2935449: { }; 2935449: # 314 "/usr/arm-linux-gnueabi/include/c++/15/ratio" 3 2935449: template 2935449: constexpr bool 2935449: __are_both_ratios() noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: return __and_<__is_ratio<_R1>, __is_ratio<_R2>>::value; 2935449: 2935449: } 2935449: 2935449: template 2935449: struct __ratio_multiply 2935449: { 2935449: static_assert(std::__are_both_ratios<_R1, _R2>(), 2935449: "both template arguments must be a std::ratio"); 2935449: 2935449: private: 2935449: static const intmax_t __gcd1 = 2935449: __static_gcd<_R1::num, _R2::den>::value; 2935449: static const intmax_t __gcd2 = 2935449: __static_gcd<_R2::num, _R1::den>::value; 2935449: 2935449: public: 2935449: typedef ratio< 2935449: __safe_multiply<(_R1::num / __gcd1), 2935449: (_R2::num / __gcd2)>::value, 2935449: __safe_multiply<(_R1::den / __gcd2), 2935449: (_R2::den / __gcd1)>::value> type; 2935449: 2935449: static constexpr intmax_t num = type::num; 2935449: static constexpr intmax_t den = type::den; 2935449: }; 2935449: 2935449: 2935449: template 2935449: constexpr intmax_t __ratio_multiply<_R1, _R2>::num; 2935449: 2935449: template 2935449: constexpr intmax_t __ratio_multiply<_R1, _R2>::den; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: using ratio_multiply = typename __ratio_multiply<_R1, _R2>::type; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __ratio_divide 2935449: { 2935449: static_assert(_R2::num != 0, "division by 0"); 2935449: 2935449: typedef typename __ratio_multiply< 2935449: _R1, 2935449: ratio<_R2::den, _R2::num>>::type type; 2935449: 2935449: static constexpr intmax_t num = type::num; 2935449: static constexpr intmax_t den = type::den; 2935449: }; 2935449: 2935449: 2935449: template 2935449: constexpr intmax_t __ratio_divide<_R1, _R2>::num; 2935449: 2935449: template 2935449: constexpr intmax_t __ratio_divide<_R1, _R2>::den; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: using ratio_divide = typename __ratio_divide<_R1, _R2>::type; 2935449: 2935449: 2935449: template 2935449: struct ratio_equal 2935449: : integral_constant 2935449: { 2935449: static_assert(std::__are_both_ratios<_R1, _R2>(), 2935449: "both template arguments must be a std::ratio"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct ratio_not_equal 2935449: : integral_constant::value> 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: template, 2935449: typename _Right = __big_mul<_R2::num,_R1::den> > 2935449: struct __ratio_less_impl_1 2935449: : integral_constant::value> 2935449: { }; 2935449: 2935449: template::value 2935449: != __static_sign<_R2::num>::value)), 2935449: bool = (__static_sign<_R1::num>::value == -1 2935449: && __static_sign<_R2::num>::value == -1)> 2935449: struct __ratio_less_impl 2935449: : __ratio_less_impl_1<_R1, _R2>::type 2935449: { }; 2935449: 2935449: template 2935449: struct __ratio_less_impl<_R1, _R2, true, false> 2935449: : integral_constant 2935449: { }; 2935449: 2935449: template 2935449: struct __ratio_less_impl<_R1, _R2, false, true> 2935449: : __ratio_less_impl_1, 2935449: ratio<-_R1::num, _R1::den> >::type 2935449: { }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct ratio_less 2935449: : __ratio_less_impl<_R1, _R2>::type 2935449: { 2935449: static_assert(std::__are_both_ratios<_R1, _R2>(), 2935449: "both template arguments must be a std::ratio"); 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct ratio_less_equal 2935449: : integral_constant::value> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct ratio_greater 2935449: : integral_constant::value> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct ratio_greater_equal 2935449: : integral_constant::value> 2935449: { }; 2935449: # 489 "/usr/arm-linux-gnueabi/include/c++/15/ratio" 3 2935449: template= 0), 2935449: bool = (_R2::num >= 0), 2935449: bool = ratio_less::value, _R1::den>, 2935449: ratio<__static_abs<_R2::num>::value, _R2::den> >::value> 2935449: struct __ratio_add_impl 2935449: { 2935449: private: 2935449: typedef typename __ratio_add_impl< 2935449: ratio<-_R1::num, _R1::den>, 2935449: ratio<-_R2::num, _R2::den> >::type __t; 2935449: public: 2935449: typedef ratio<-__t::num, __t::den> type; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct __ratio_add_impl<_R1, _R2, true, true, __b> 2935449: { 2935449: private: 2935449: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 2935449: static constexpr uintmax_t __d2 = _R2::den / __g; 2935449: typedef __big_mul<_R1::den, __d2> __d; 2935449: typedef __big_mul<_R1::num, _R2::den / __g> __x; 2935449: typedef __big_mul<_R2::num, _R1::den / __g> __y; 2935449: typedef __big_add<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 2935449: static_assert(__n::__hi >= __x::__hi, "Internal library error"); 2935449: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 2935449: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 2935449: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 2935449: static_assert(__n_final::__rem == 0, "Internal library error"); 2935449: static_assert(__n_final::__quot_hi == 0 && 2935449: __n_final::__quot_lo <= 0x7fffffffffffffffLL, "overflow in addition"); 2935449: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 2935449: static_assert(__d_final::__hi == 0 && 2935449: __d_final::__lo <= 0x7fffffffffffffffLL, "overflow in addition"); 2935449: public: 2935449: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 2935449: }; 2935449: 2935449: template 2935449: struct __ratio_add_impl<_R1, _R2, false, true, true> 2935449: : __ratio_add_impl<_R2, _R1> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct __ratio_add_impl<_R1, _R2, true, false, false> 2935449: { 2935449: private: 2935449: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 2935449: static constexpr uintmax_t __d2 = _R2::den / __g; 2935449: typedef __big_mul<_R1::den, __d2> __d; 2935449: typedef __big_mul<_R1::num, _R2::den / __g> __x; 2935449: typedef __big_mul<-_R2::num, _R1::den / __g> __y; 2935449: typedef __big_sub<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 2935449: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 2935449: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 2935449: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 2935449: static_assert(__n_final::__rem == 0, "Internal library error"); 2935449: static_assert(__n_final::__quot_hi == 0 && 2935449: __n_final::__quot_lo <= 0x7fffffffffffffffLL, "overflow in addition"); 2935449: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 2935449: static_assert(__d_final::__hi == 0 && 2935449: __d_final::__lo <= 0x7fffffffffffffffLL, "overflow in addition"); 2935449: public: 2935449: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 2935449: }; 2935449: 2935449: template 2935449: struct __ratio_add 2935449: { 2935449: static_assert(std::__are_both_ratios<_R1, _R2>(), 2935449: "both template arguments must be a std::ratio"); 2935449: 2935449: typedef typename __ratio_add_impl<_R1, _R2>::type type; 2935449: static constexpr intmax_t num = type::num; 2935449: static constexpr intmax_t den = type::den; 2935449: }; 2935449: 2935449: 2935449: template 2935449: constexpr intmax_t __ratio_add<_R1, _R2>::num; 2935449: 2935449: template 2935449: constexpr intmax_t __ratio_add<_R1, _R2>::den; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: using ratio_add = typename __ratio_add<_R1, _R2>::type; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __ratio_subtract 2935449: { 2935449: typedef typename __ratio_add< 2935449: _R1, 2935449: ratio<-_R2::num, _R2::den>>::type type; 2935449: 2935449: static constexpr intmax_t num = type::num; 2935449: static constexpr intmax_t den = type::den; 2935449: }; 2935449: 2935449: 2935449: template 2935449: constexpr intmax_t __ratio_subtract<_R1, _R2>::num; 2935449: 2935449: template 2935449: constexpr intmax_t __ratio_subtract<_R1, _R2>::den; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: using ratio_subtract = typename __ratio_subtract<_R1, _R2>::type; 2935449: # 620 "/usr/arm-linux-gnueabi/include/c++/15/ratio" 3 2935449: using atto = ratio< 1, 1000000000000000000>; 2935449: using femto = ratio< 1, 1000000000000000>; 2935449: using pico = ratio< 1, 1000000000000>; 2935449: using nano = ratio< 1, 1000000000>; 2935449: using micro = ratio< 1, 1000000>; 2935449: using milli = ratio< 1, 1000>; 2935449: using centi = ratio< 1, 100>; 2935449: using deci = ratio< 1, 10>; 2935449: using deca = ratio< 10, 1>; 2935449: using hecto = ratio< 100, 1>; 2935449: using kilo = ratio< 1000, 1>; 2935449: using mega = ratio< 1000000, 1>; 2935449: using giga = ratio< 1000000000, 1>; 2935449: using tera = ratio< 1000000000000, 1>; 2935449: using peta = ratio< 1000000000000000, 1>; 2935449: using exa = ratio< 1000000000000000000, 1>; 2935449: # 648 "/usr/arm-linux-gnueabi/include/c++/15/ratio" 3 2935449: 2935449: } 2935449: # 40 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/limits" 1 3 2935449: # 44 "/usr/arm-linux-gnueabi/include/c++/15/limits" 3 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wpedantic" 2935449: #pragma GCC diagnostic ignored "-Wlong-long" 2935449: #pragma GCC diagnostic ignored "-Wc++23-extensions" 2935449: # 165 "/usr/arm-linux-gnueabi/include/c++/15/limits" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: enum float_round_style 2935449: { 2935449: round_indeterminate = -1, 2935449: round_toward_zero = 0, 2935449: round_to_nearest = 1, 2935449: round_toward_infinity = 2, 2935449: round_toward_neg_infinity = 3 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: enum float_denorm_style 2935449: { 2935449: 2935449: denorm_indeterminate = -1, 2935449: 2935449: denorm_absent = 0, 2935449: 2935449: denorm_present = 1 2935449: }; 2935449: # 209 "/usr/arm-linux-gnueabi/include/c++/15/limits" 3 2935449: struct __numeric_limits_base 2935449: { 2935449: 2935449: 2935449: static constexpr bool is_specialized = false; 2935449: 2935449: 2935449: 2935449: 2935449: static constexpr int digits = 0; 2935449: 2935449: 2935449: static constexpr int digits10 = 0; 2935449: 2935449: 2935449: 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: 2935449: 2935449: static constexpr bool is_signed = false; 2935449: 2935449: 2935449: static constexpr bool is_integer = false; 2935449: 2935449: 2935449: 2935449: 2935449: static constexpr bool is_exact = false; 2935449: 2935449: 2935449: 2935449: static constexpr int radix = 0; 2935449: 2935449: 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: 2935449: 2935449: 2935449: static constexpr int min_exponent10 = 0; 2935449: 2935449: 2935449: 2935449: 2935449: static constexpr int max_exponent = 0; 2935449: 2935449: 2935449: 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: 2935449: 2935449: 2935449: static constexpr bool has_quiet_NaN = false; 2935449: 2935449: 2935449: 2935449: static constexpr bool has_signaling_NaN = false; 2935449: 2935449: 2935449: static constexpr float_denorm_style has_denorm = denorm_absent; 2935449: 2935449: 2935449: 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: 2935449: 2935449: 2935449: 2935449: static constexpr bool is_bounded = false; 2935449: # 295 "/usr/arm-linux-gnueabi/include/c++/15/limits" 3 2935449: static constexpr bool is_modulo = false; 2935449: 2935449: 2935449: static constexpr bool traps = false; 2935449: 2935449: 2935449: static constexpr bool tinyness_before = false; 2935449: 2935449: 2935449: 2935449: 2935449: static constexpr float_round_style round_style = 2935449: round_toward_zero; 2935449: }; 2935449: # 318 "/usr/arm-linux-gnueabi/include/c++/15/limits" 3 2935449: template 2935449: struct numeric_limits : public __numeric_limits_base 2935449: { 2935449: 2935449: 2935449: static constexpr _Tp 2935449: min() noexcept { return _Tp(); } 2935449: 2935449: 2935449: static constexpr _Tp 2935449: max() noexcept { return _Tp(); } 2935449: 2935449: 2935449: 2935449: 2935449: static constexpr _Tp 2935449: lowest() noexcept { return _Tp(); } 2935449: 2935449: 2935449: 2935449: 2935449: static constexpr _Tp 2935449: epsilon() noexcept { return _Tp(); } 2935449: 2935449: 2935449: static constexpr _Tp 2935449: round_error() noexcept { return _Tp(); } 2935449: 2935449: 2935449: static constexpr _Tp 2935449: infinity() noexcept { return _Tp(); } 2935449: 2935449: 2935449: 2935449: static constexpr _Tp 2935449: quiet_NaN() noexcept { return _Tp(); } 2935449: 2935449: 2935449: 2935449: static constexpr _Tp 2935449: signaling_NaN() noexcept { return _Tp(); } 2935449: 2935449: 2935449: 2935449: 2935449: static constexpr _Tp 2935449: denorm_min() noexcept { return _Tp(); } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct numeric_limits 2935449: : public numeric_limits<_Tp> { }; 2935449: 2935449: template 2935449: struct numeric_limits 2935449: : public numeric_limits<_Tp> { }; 2935449: 2935449: template 2935449: struct numeric_limits 2935449: : public numeric_limits<_Tp> { }; 2935449: # 390 "/usr/arm-linux-gnueabi/include/c++/15/limits" 3 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr bool 2935449: min() noexcept { return false; } 2935449: 2935449: static constexpr bool 2935449: max() noexcept { return true; } 2935449: 2935449: 2935449: static constexpr bool 2935449: lowest() noexcept { return min(); } 2935449: 2935449: static constexpr int digits = 1; 2935449: static constexpr int digits10 = 0; 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: static constexpr bool is_signed = false; 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr bool 2935449: epsilon() noexcept { return false; } 2935449: 2935449: static constexpr bool 2935449: round_error() noexcept { return false; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm 2935449: = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr bool 2935449: infinity() noexcept { return false; } 2935449: 2935449: static constexpr bool 2935449: quiet_NaN() noexcept { return false; } 2935449: 2935449: static constexpr bool 2935449: signaling_NaN() noexcept { return false; } 2935449: 2935449: static constexpr bool 2935449: denorm_min() noexcept { return false; } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = false; 2935449: 2935449: 2935449: 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style 2935449: = round_toward_zero; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr char 2935449: min() noexcept { return (((char)(-1) < 0) ? -(((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0) - 1 : (char)0); } 2935449: 2935449: static constexpr char 2935449: max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } 2935449: 2935449: 2935449: static constexpr char 2935449: lowest() noexcept { return min(); } 2935449: 2935449: 2935449: static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); 2935449: static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: static constexpr bool is_signed = ((char)(-1) < 0); 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr char 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr char 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm 2935449: = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr 2935449: char infinity() noexcept { return char(); } 2935449: 2935449: static constexpr char 2935449: quiet_NaN() noexcept { return char(); } 2935449: 2935449: static constexpr char 2935449: signaling_NaN() noexcept { return char(); } 2935449: 2935449: static constexpr char 2935449: denorm_min() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = !is_signed; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style 2935449: = round_toward_zero; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr signed char 2935449: min() noexcept { return -0x7f - 1; } 2935449: 2935449: static constexpr signed char 2935449: max() noexcept { return 0x7f; } 2935449: 2935449: 2935449: static constexpr signed char 2935449: lowest() noexcept { return min(); } 2935449: 2935449: 2935449: static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); 2935449: static constexpr int digits10 2935449: = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: static constexpr bool is_signed = true; 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr signed char 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr signed char 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm 2935449: = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr signed char 2935449: infinity() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr signed char 2935449: quiet_NaN() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr signed char 2935449: signaling_NaN() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr signed char 2935449: denorm_min() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = false; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style 2935449: = round_toward_zero; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr unsigned char 2935449: min() noexcept { return 0; } 2935449: 2935449: static constexpr unsigned char 2935449: max() noexcept { return 0x7f * 2U + 1; } 2935449: 2935449: 2935449: static constexpr unsigned char 2935449: lowest() noexcept { return min(); } 2935449: 2935449: 2935449: static constexpr int digits 2935449: = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); 2935449: static constexpr int digits10 2935449: = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: static constexpr bool is_signed = false; 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr unsigned char 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr unsigned char 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm 2935449: = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr unsigned char 2935449: infinity() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned char 2935449: quiet_NaN() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned char 2935449: signaling_NaN() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned char 2935449: denorm_min() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = true; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style 2935449: = round_toward_zero; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr wchar_t 2935449: min() noexcept { return (((wchar_t)(-1) < 0) ? -(((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0) - 1 : (wchar_t)0); } 2935449: 2935449: static constexpr wchar_t 2935449: max() noexcept { return (((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0); } 2935449: 2935449: 2935449: static constexpr wchar_t 2935449: lowest() noexcept { return min(); } 2935449: 2935449: 2935449: static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); 2935449: static constexpr int digits10 2935449: = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: static constexpr bool is_signed = ((wchar_t)(-1) < 0); 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr wchar_t 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr wchar_t 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm 2935449: = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr wchar_t 2935449: infinity() noexcept { return wchar_t(); } 2935449: 2935449: static constexpr wchar_t 2935449: quiet_NaN() noexcept { return wchar_t(); } 2935449: 2935449: static constexpr wchar_t 2935449: signaling_NaN() noexcept { return wchar_t(); } 2935449: 2935449: static constexpr wchar_t 2935449: denorm_min() noexcept { return wchar_t(); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = !is_signed; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style 2935449: = round_toward_zero; 2935449: }; 2935449: # 803 "/usr/arm-linux-gnueabi/include/c++/15/limits" 3 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr char16_t 2935449: min() noexcept { return (((char16_t)(-1) < 0) ? -(((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0) - 1 : (char16_t)0); } 2935449: 2935449: static constexpr char16_t 2935449: max() noexcept { return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); } 2935449: 2935449: static constexpr char16_t 2935449: lowest() noexcept { return min(); } 2935449: 2935449: static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); 2935449: static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); 2935449: static constexpr int max_digits10 = 0; 2935449: static constexpr bool is_signed = ((char16_t)(-1) < 0); 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr char16_t 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr char16_t 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr char16_t 2935449: infinity() noexcept { return char16_t(); } 2935449: 2935449: static constexpr char16_t 2935449: quiet_NaN() noexcept { return char16_t(); } 2935449: 2935449: static constexpr char16_t 2935449: signaling_NaN() noexcept { return char16_t(); } 2935449: 2935449: static constexpr char16_t 2935449: denorm_min() noexcept { return char16_t(); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = !is_signed; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style = round_toward_zero; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr char32_t 2935449: min() noexcept { return (((char32_t)(-1) < 0) ? -(((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0) - 1 : (char32_t)0); } 2935449: 2935449: static constexpr char32_t 2935449: max() noexcept { return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); } 2935449: 2935449: static constexpr char32_t 2935449: lowest() noexcept { return min(); } 2935449: 2935449: static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); 2935449: static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); 2935449: static constexpr int max_digits10 = 0; 2935449: static constexpr bool is_signed = ((char32_t)(-1) < 0); 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr char32_t 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr char32_t 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr char32_t 2935449: infinity() noexcept { return char32_t(); } 2935449: 2935449: static constexpr char32_t 2935449: quiet_NaN() noexcept { return char32_t(); } 2935449: 2935449: static constexpr char32_t 2935449: signaling_NaN() noexcept { return char32_t(); } 2935449: 2935449: static constexpr char32_t 2935449: denorm_min() noexcept { return char32_t(); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = !is_signed; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style = round_toward_zero; 2935449: }; 2935449: 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr short 2935449: min() noexcept { return -0x7fff - 1; } 2935449: 2935449: static constexpr short 2935449: max() noexcept { return 0x7fff; } 2935449: 2935449: 2935449: static constexpr short 2935449: lowest() noexcept { return min(); } 2935449: 2935449: 2935449: static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); 2935449: static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: static constexpr bool is_signed = true; 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr short 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr short 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm 2935449: = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr short 2935449: infinity() noexcept { return short(); } 2935449: 2935449: static constexpr short 2935449: quiet_NaN() noexcept { return short(); } 2935449: 2935449: static constexpr short 2935449: signaling_NaN() noexcept { return short(); } 2935449: 2935449: static constexpr short 2935449: denorm_min() noexcept { return short(); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = false; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style 2935449: = round_toward_zero; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr unsigned short 2935449: min() noexcept { return 0; } 2935449: 2935449: static constexpr unsigned short 2935449: max() noexcept { return 0x7fff * 2U + 1; } 2935449: 2935449: 2935449: static constexpr unsigned short 2935449: lowest() noexcept { return min(); } 2935449: 2935449: 2935449: static constexpr int digits 2935449: = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); 2935449: static constexpr int digits10 2935449: = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: static constexpr bool is_signed = false; 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr unsigned short 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr unsigned short 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm 2935449: = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr unsigned short 2935449: infinity() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned short 2935449: quiet_NaN() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned short 2935449: signaling_NaN() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned short 2935449: denorm_min() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = true; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style 2935449: = round_toward_zero; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr int 2935449: min() noexcept { return -0x7fffffff - 1; } 2935449: 2935449: static constexpr int 2935449: max() noexcept { return 0x7fffffff; } 2935449: 2935449: 2935449: static constexpr int 2935449: lowest() noexcept { return min(); } 2935449: 2935449: 2935449: static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); 2935449: static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: static constexpr bool is_signed = true; 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr int 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr int 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm 2935449: = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr int 2935449: infinity() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr int 2935449: quiet_NaN() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr int 2935449: signaling_NaN() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr int 2935449: denorm_min() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = false; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style 2935449: = round_toward_zero; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr unsigned int 2935449: min() noexcept { return 0; } 2935449: 2935449: static constexpr unsigned int 2935449: max() noexcept { return 0x7fffffff * 2U + 1; } 2935449: 2935449: 2935449: static constexpr unsigned int 2935449: lowest() noexcept { return min(); } 2935449: 2935449: 2935449: static constexpr int digits 2935449: = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); 2935449: static constexpr int digits10 2935449: = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: static constexpr bool is_signed = false; 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr unsigned int 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr unsigned int 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm 2935449: = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr unsigned int 2935449: infinity() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr unsigned int 2935449: quiet_NaN() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned int 2935449: signaling_NaN() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned int 2935449: denorm_min() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = true; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style 2935449: = round_toward_zero; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr long 2935449: min() noexcept { return -0x7fffffffL - 1; } 2935449: 2935449: static constexpr long 2935449: max() noexcept { return 0x7fffffffL; } 2935449: 2935449: 2935449: static constexpr long 2935449: lowest() noexcept { return min(); } 2935449: 2935449: 2935449: static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); 2935449: static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: static constexpr bool is_signed = true; 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr long 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr long 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm 2935449: = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr long 2935449: infinity() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr long 2935449: quiet_NaN() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr long 2935449: signaling_NaN() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr long 2935449: denorm_min() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = false; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style 2935449: = round_toward_zero; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr unsigned long 2935449: min() noexcept { return 0; } 2935449: 2935449: static constexpr unsigned long 2935449: max() noexcept { return 0x7fffffffL * 2UL + 1; } 2935449: 2935449: 2935449: static constexpr unsigned long 2935449: lowest() noexcept { return min(); } 2935449: 2935449: 2935449: static constexpr int digits 2935449: = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); 2935449: static constexpr int digits10 2935449: = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: static constexpr bool is_signed = false; 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr unsigned long 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr unsigned long 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm 2935449: = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr unsigned long 2935449: infinity() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned long 2935449: quiet_NaN() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned long 2935449: signaling_NaN() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned long 2935449: denorm_min() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = true; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style 2935449: = round_toward_zero; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr long long 2935449: min() noexcept { return -0x7fffffffffffffffLL - 1; } 2935449: 2935449: static constexpr long long 2935449: max() noexcept { return 0x7fffffffffffffffLL; } 2935449: 2935449: 2935449: static constexpr long long 2935449: lowest() noexcept { return min(); } 2935449: 2935449: 2935449: static constexpr int digits 2935449: = (sizeof(long long) * 8 - ((long long)(-1) < 0)); 2935449: static constexpr int digits10 2935449: = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: static constexpr bool is_signed = true; 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr long long 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr long long 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm 2935449: = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr long long 2935449: infinity() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr long long 2935449: quiet_NaN() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr long long 2935449: signaling_NaN() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr long long 2935449: denorm_min() noexcept { return static_cast(0); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = false; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style 2935449: = round_toward_zero; 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr unsigned long long 2935449: min() noexcept { return 0; } 2935449: 2935449: static constexpr unsigned long long 2935449: max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } 2935449: 2935449: 2935449: static constexpr unsigned long long 2935449: lowest() noexcept { return min(); } 2935449: 2935449: 2935449: static constexpr int digits 2935449: = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); 2935449: static constexpr int digits10 2935449: = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); 2935449: 2935449: static constexpr int max_digits10 = 0; 2935449: 2935449: static constexpr bool is_signed = false; 2935449: static constexpr bool is_integer = true; 2935449: static constexpr bool is_exact = true; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr unsigned long long 2935449: epsilon() noexcept { return 0; } 2935449: 2935449: static constexpr unsigned long long 2935449: round_error() noexcept { return 0; } 2935449: 2935449: static constexpr int min_exponent = 0; 2935449: static constexpr int min_exponent10 = 0; 2935449: static constexpr int max_exponent = 0; 2935449: static constexpr int max_exponent10 = 0; 2935449: 2935449: static constexpr bool has_infinity = false; 2935449: static constexpr bool has_quiet_NaN = false; 2935449: static constexpr bool has_signaling_NaN = false; 2935449: static constexpr float_denorm_style has_denorm 2935449: = denorm_absent; 2935449: static constexpr bool has_denorm_loss = false; 2935449: 2935449: static constexpr unsigned long long 2935449: infinity() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned long long 2935449: quiet_NaN() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned long long 2935449: signaling_NaN() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr unsigned long long 2935449: denorm_min() noexcept 2935449: { return static_cast(0); } 2935449: 2935449: static constexpr bool is_iec559 = false; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = true; 2935449: 2935449: static constexpr bool traps = true; 2935449: static constexpr bool tinyness_before = false; 2935449: static constexpr float_round_style round_style 2935449: = round_toward_zero; 2935449: }; 2935449: # 1676 "/usr/arm-linux-gnueabi/include/c++/15/limits" 3 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr float 2935449: min() noexcept { return 1.1754943508222875e-38F; } 2935449: 2935449: static constexpr float 2935449: max() noexcept { return 3.4028234663852886e+38F; } 2935449: 2935449: 2935449: static constexpr float 2935449: lowest() noexcept { return -3.4028234663852886e+38F; } 2935449: 2935449: 2935449: static constexpr int digits = 24; 2935449: static constexpr int digits10 = 6; 2935449: 2935449: static constexpr int max_digits10 2935449: = (2 + (24) * 643L / 2136); 2935449: 2935449: static constexpr bool is_signed = true; 2935449: static constexpr bool is_integer = false; 2935449: static constexpr bool is_exact = false; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr float 2935449: epsilon() noexcept { return 1.1920928955078125e-7F; } 2935449: 2935449: static constexpr float 2935449: round_error() noexcept { return 0.5F; } 2935449: 2935449: static constexpr int min_exponent = (-125); 2935449: static constexpr int min_exponent10 = (-37); 2935449: static constexpr int max_exponent = 128; 2935449: static constexpr int max_exponent10 = 38; 2935449: 2935449: static constexpr bool has_infinity = 1; 2935449: static constexpr bool has_quiet_NaN = 1; 2935449: static constexpr bool has_signaling_NaN = has_quiet_NaN; 2935449: static constexpr float_denorm_style has_denorm 2935449: = bool(1) ? denorm_present : denorm_absent; 2935449: static constexpr bool has_denorm_loss 2935449: = false; 2935449: 2935449: static constexpr float 2935449: infinity() noexcept { return __builtin_huge_valf(); } 2935449: 2935449: static constexpr float 2935449: quiet_NaN() noexcept { return __builtin_nanf(""); } 2935449: 2935449: static constexpr float 2935449: signaling_NaN() noexcept { return __builtin_nansf(""); } 2935449: 2935449: static constexpr float 2935449: denorm_min() noexcept { return 1.4012984643248171e-45F; } 2935449: 2935449: static constexpr bool is_iec559 2935449: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = false; 2935449: 2935449: static constexpr bool traps = false; 2935449: static constexpr bool tinyness_before 2935449: = false; 2935449: static constexpr float_round_style round_style 2935449: = round_to_nearest; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr double 2935449: min() noexcept { return double(2.2250738585072014e-308L); } 2935449: 2935449: static constexpr double 2935449: max() noexcept { return double(1.7976931348623157e+308L); } 2935449: 2935449: 2935449: static constexpr double 2935449: lowest() noexcept { return -double(1.7976931348623157e+308L); } 2935449: 2935449: 2935449: static constexpr int digits = 53; 2935449: static constexpr int digits10 = 15; 2935449: 2935449: static constexpr int max_digits10 2935449: = (2 + (53) * 643L / 2136); 2935449: 2935449: static constexpr bool is_signed = true; 2935449: static constexpr bool is_integer = false; 2935449: static constexpr bool is_exact = false; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr double 2935449: epsilon() noexcept { return double(2.2204460492503131e-16L); } 2935449: 2935449: static constexpr double 2935449: round_error() noexcept { return 0.5; } 2935449: 2935449: static constexpr int min_exponent = (-1021); 2935449: static constexpr int min_exponent10 = (-307); 2935449: static constexpr int max_exponent = 1024; 2935449: static constexpr int max_exponent10 = 308; 2935449: 2935449: static constexpr bool has_infinity = 1; 2935449: static constexpr bool has_quiet_NaN = 1; 2935449: static constexpr bool has_signaling_NaN = has_quiet_NaN; 2935449: static constexpr float_denorm_style has_denorm 2935449: = bool(1) ? denorm_present : denorm_absent; 2935449: static constexpr bool has_denorm_loss 2935449: = false; 2935449: 2935449: static constexpr double 2935449: infinity() noexcept { return __builtin_huge_val(); } 2935449: 2935449: static constexpr double 2935449: quiet_NaN() noexcept { return __builtin_nan(""); } 2935449: 2935449: static constexpr double 2935449: signaling_NaN() noexcept { return __builtin_nans(""); } 2935449: 2935449: static constexpr double 2935449: denorm_min() noexcept { return double(4.9406564584124654e-324L); } 2935449: 2935449: static constexpr bool is_iec559 2935449: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = false; 2935449: 2935449: static constexpr bool traps = false; 2935449: static constexpr bool tinyness_before 2935449: = false; 2935449: static constexpr float_round_style round_style 2935449: = round_to_nearest; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template<> 2935449: struct numeric_limits 2935449: { 2935449: static constexpr bool is_specialized = true; 2935449: 2935449: static constexpr long double 2935449: min() noexcept { return 2.2250738585072014e-308L; } 2935449: 2935449: static constexpr long double 2935449: max() noexcept { return 1.7976931348623157e+308L; } 2935449: 2935449: 2935449: static constexpr long double 2935449: lowest() noexcept { return -1.7976931348623157e+308L; } 2935449: 2935449: 2935449: static constexpr int digits = 53; 2935449: static constexpr int digits10 = 15; 2935449: 2935449: static constexpr int max_digits10 2935449: = (2 + (53) * 643L / 2136); 2935449: 2935449: static constexpr bool is_signed = true; 2935449: static constexpr bool is_integer = false; 2935449: static constexpr bool is_exact = false; 2935449: static constexpr int radix = 2; 2935449: 2935449: static constexpr long double 2935449: epsilon() noexcept { return 2.2204460492503131e-16L; } 2935449: 2935449: static constexpr long double 2935449: round_error() noexcept { return 0.5L; } 2935449: 2935449: static constexpr int min_exponent = (-1021); 2935449: static constexpr int min_exponent10 = (-307); 2935449: static constexpr int max_exponent = 1024; 2935449: static constexpr int max_exponent10 = 308; 2935449: 2935449: static constexpr bool has_infinity = 1; 2935449: static constexpr bool has_quiet_NaN = 1; 2935449: static constexpr bool has_signaling_NaN = has_quiet_NaN; 2935449: static constexpr float_denorm_style has_denorm 2935449: = bool(1) ? denorm_present : denorm_absent; 2935449: static constexpr bool has_denorm_loss 2935449: = false; 2935449: 2935449: static constexpr long double 2935449: infinity() noexcept { return __builtin_huge_vall(); } 2935449: 2935449: static constexpr long double 2935449: quiet_NaN() noexcept { return __builtin_nanl(""); } 2935449: 2935449: static constexpr long double 2935449: signaling_NaN() noexcept { return __builtin_nansl(""); } 2935449: 2935449: static constexpr long double 2935449: denorm_min() noexcept { return 4.9406564584124654e-324L; } 2935449: 2935449: static constexpr bool is_iec559 2935449: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 2935449: static constexpr bool is_bounded = true; 2935449: static constexpr bool is_modulo = false; 2935449: 2935449: static constexpr bool traps = false; 2935449: static constexpr bool tinyness_before = 2935449: false; 2935449: static constexpr float_round_style round_style = 2935449: round_to_nearest; 2935449: }; 2935449: # 1996 "/usr/arm-linux-gnueabi/include/c++/15/limits" 3 2935449: __extension__ template<> struct numeric_limits<_Float32> { static constexpr bool is_specialized = true; static constexpr _Float32 min() noexcept { return 1.1754943508222875e-38F32; } static constexpr _Float32 max() noexcept { return 3.4028234663852886e+38F32; } static constexpr _Float32 lowest() noexcept { return -3.4028234663852886e+38F32; } static constexpr int digits = 24; static constexpr int digits10 = 6; static constexpr int max_digits10 = (2 + (24) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float32 epsilon() noexcept { return 1.1920928955078125e-7F32; } static constexpr _Float32 round_error() noexcept { return 0.5F32; } static constexpr int min_exponent = (-125); static constexpr int min_exponent10 = (-37); static constexpr int max_exponent = 128; static constexpr int max_exponent10 = 38; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float32 infinity() noexcept { return __builtin_huge_valf32(); } static constexpr _Float32 quiet_NaN() noexcept { return __builtin_nanf32(""); } static constexpr _Float32 signaling_NaN() noexcept { return __builtin_nansf32(""); } static constexpr _Float32 denorm_min() noexcept { return 1.4012984643248171e-45F32; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; 2935449: 2935449: 2935449: __extension__ template<> struct numeric_limits<_Float64> { static constexpr bool is_specialized = true; static constexpr _Float64 min() noexcept { return 2.2250738585072014e-308F64; } static constexpr _Float64 max() noexcept { return 1.7976931348623157e+308F64; } static constexpr _Float64 lowest() noexcept { return -1.7976931348623157e+308F64; } static constexpr int digits = 53; static constexpr int digits10 = 15; static constexpr int max_digits10 = (2 + (53) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float64 epsilon() noexcept { return 2.2204460492503131e-16F64; } static constexpr _Float64 round_error() noexcept { return 0.5F64; } static constexpr int min_exponent = (-1021); static constexpr int min_exponent10 = (-307); static constexpr int max_exponent = 1024; static constexpr int max_exponent10 = 308; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float64 infinity() noexcept { return __builtin_huge_valf64(); } static constexpr _Float64 quiet_NaN() noexcept { return __builtin_nanf64(""); } static constexpr _Float64 signaling_NaN() noexcept { return __builtin_nansf64(""); } static constexpr _Float64 denorm_min() noexcept { return 4.9406564584124654e-324F64; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; 2935449: # 2229 "/usr/arm-linux-gnueabi/include/c++/15/limits" 3 2935449: 2935449: } 2935449: # 2239 "/usr/arm-linux-gnueabi/include/c++/15/limits" 3 2935449: #pragma GCC diagnostic pop 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/ctime" 1 3 2935449: # 60 "/usr/arm-linux-gnueabi/include/c++/15/ctime" 3 2935449: namespace std 2935449: { 2935449: using ::clock_t; 2935449: using ::time_t; 2935449: using ::tm; 2935449: 2935449: using ::clock; 2935449: using ::difftime; 2935449: using ::mktime; 2935449: using ::time; 2935449: using ::asctime; 2935449: using ::ctime; 2935449: using ::gmtime; 2935449: using ::localtime; 2935449: using ::strftime; 2935449: } 2935449: # 44 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/parse_numbers.h" 1 3 2935449: # 46 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 52 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: namespace chrono 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: template> 2935449: class duration; 2935449: 2935449: 2935449: template 2935449: class time_point; 2935449: 2935449: } 2935449: # 83 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: template 2935449: struct __duration_common_type 2935449: { }; 2935449: 2935449: template 2935449: struct __duration_common_type<_CT, _Period1, _Period2, 2935449: __void_t> 2935449: { 2935449: private: 2935449: using __gcd_num = __static_gcd<_Period1::num, _Period2::num>; 2935449: using __gcd_den = __static_gcd<_Period1::den, _Period2::den>; 2935449: using __cr = typename _CT::type; 2935449: using __r = ratio<__gcd_num::value, 2935449: (_Period1::den / __gcd_den::value) * _Period2::den>; 2935449: 2935449: public: 2935449: using type = chrono::duration<__cr, typename __r::type>; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct common_type, 2935449: chrono::duration<_Rep2, _Period2>> 2935449: : __duration_common_type, 2935449: typename _Period1::type, 2935449: typename _Period2::type> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct common_type, 2935449: chrono::duration<_Rep, _Period>> 2935449: { 2935449: using type = chrono::duration::type, 2935449: typename _Period::type>; 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct common_type> 2935449: { 2935449: using type = chrono::duration::type, 2935449: typename _Period::type>; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __timepoint_common_type 2935449: { }; 2935449: 2935449: template 2935449: struct __timepoint_common_type<_CT, _Clock, __void_t> 2935449: { 2935449: using type = chrono::time_point<_Clock, typename _CT::type>; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct common_type, 2935449: chrono::time_point<_Clock, _Duration2>> 2935449: : __timepoint_common_type, _Clock> 2935449: { }; 2935449: 2935449: 2935449: template 2935449: struct common_type, 2935449: chrono::time_point<_Clock, _Duration>> 2935449: { using type = chrono::time_point<_Clock, _Duration>; }; 2935449: 2935449: 2935449: template 2935449: struct common_type> 2935449: { using type = chrono::time_point<_Clock, _Duration>; }; 2935449: 2935449: 2935449: 2935449: 2935449: namespace chrono 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct __duration_cast_impl 2935449: { 2935449: template 2935449: static constexpr _ToDur 2935449: __cast(const duration<_Rep, _Period>& __d) 2935449: { 2935449: typedef typename _ToDur::rep __to_rep; 2935449: return _ToDur(static_cast<__to_rep>(static_cast<_CR>(__d.count()) 2935449: * static_cast<_CR>(_CF::num) 2935449: / static_cast<_CR>(_CF::den))); 2935449: } 2935449: }; 2935449: 2935449: template 2935449: struct __duration_cast_impl<_ToDur, _CF, _CR, true, true> 2935449: { 2935449: template 2935449: static constexpr _ToDur 2935449: __cast(const duration<_Rep, _Period>& __d) 2935449: { 2935449: typedef typename _ToDur::rep __to_rep; 2935449: return _ToDur(static_cast<__to_rep>(__d.count())); 2935449: } 2935449: }; 2935449: 2935449: template 2935449: struct __duration_cast_impl<_ToDur, _CF, _CR, true, false> 2935449: { 2935449: template 2935449: static constexpr _ToDur 2935449: __cast(const duration<_Rep, _Period>& __d) 2935449: { 2935449: typedef typename _ToDur::rep __to_rep; 2935449: return _ToDur(static_cast<__to_rep>( 2935449: static_cast<_CR>(__d.count()) / static_cast<_CR>(_CF::den))); 2935449: } 2935449: }; 2935449: 2935449: template 2935449: struct __duration_cast_impl<_ToDur, _CF, _CR, false, true> 2935449: { 2935449: template 2935449: static constexpr _ToDur 2935449: __cast(const duration<_Rep, _Period>& __d) 2935449: { 2935449: typedef typename _ToDur::rep __to_rep; 2935449: return _ToDur(static_cast<__to_rep>( 2935449: static_cast<_CR>(__d.count()) * static_cast<_CR>(_CF::num))); 2935449: } 2935449: }; 2935449: 2935449: template 2935449: struct __is_duration 2935449: : std::false_type 2935449: { }; 2935449: 2935449: template 2935449: struct __is_duration> 2935449: : std::true_type 2935449: { }; 2935449: 2935449: template 2935449: using __enable_if_is_duration 2935449: = typename enable_if<__is_duration<_Tp>::value, _Tp>::type; 2935449: 2935449: template 2935449: using __disable_if_is_duration 2935449: = typename enable_if::value, _Tp>::type; 2935449: # 276 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: constexpr __enable_if_is_duration<_ToDur> 2935449: duration_cast(const duration<_Rep, _Period>& __d) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: using __to_period = typename _ToDur::period; 2935449: using __to_rep = typename _ToDur::rep; 2935449: using __cf = ratio_divide<_Period, __to_period>; 2935449: using __cr = typename common_type<__to_rep, _Rep, intmax_t>::type; 2935449: using __dc = __duration_cast_impl<_ToDur, __cf, __cr, 2935449: __cf::num == 1, __cf::den == 1>; 2935449: return __dc::__cast(__d); 2935449: 2935449: 2935449: 2935449: } 2935449: # 310 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: template 2935449: struct treat_as_floating_point 2935449: : is_floating_point<_Rep> 2935449: { }; 2935449: # 478 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: namespace __detail 2935449: { 2935449: template 2935449: constexpr _Tp 2935449: __ceil_impl(const _Tp& __t, const _Up& __u) 2935449: { 2935449: return (__t < __u) ? (__t + _Tp{1}) : __t; 2935449: } 2935449: 2935449: 2935449: template 2935449: constexpr _ToDur 2935449: ceil(const duration<_Rep, _Period>& __d) 2935449: { 2935449: return __detail::__ceil_impl(chrono::duration_cast<_ToDur>(__d), __d); 2935449: } 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: struct duration_values 2935449: { 2935449: static constexpr _Rep 2935449: zero() noexcept 2935449: { return _Rep(0); } 2935449: 2935449: static constexpr _Rep 2935449: max() noexcept 2935449: { return numeric_limits<_Rep>::max(); } 2935449: 2935449: static constexpr _Rep 2935449: min() noexcept 2935449: { return numeric_limits<_Rep>::lowest(); } 2935449: }; 2935449: 2935449: template 2935449: class duration 2935449: { 2935449: static_assert(!__is_duration<_Rep>::value, 2935449: "rep cannot be a std::chrono::duration"); 2935449: static_assert(__is_ratio<_Period>::value, 2935449: "period must be a specialization of std::ratio"); 2935449: static_assert(_Period::num > 0, "period must be positive"); 2935449: 2935449: template 2935449: using __is_float = treat_as_floating_point<_Rep2>; 2935449: 2935449: static constexpr intmax_t 2935449: _S_gcd(intmax_t __m, intmax_t __n) noexcept 2935449: { 2935449: # 543 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: return (__n == 0) ? __m : _S_gcd(__n, __m % __n); 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: using __divide = ratio<(_R1::num / __gcd1) * (_R2::den / __gcd2), 2935449: (_R1::den / __gcd2) * (_R2::num / __gcd1)>; 2935449: 2935449: 2935449: template 2935449: using __is_harmonic 2935449: = __bool_constant<__divide<_Period2, _Period>::den == 1>; 2935449: 2935449: public: 2935449: 2935449: using rep = _Rep; 2935449: using period = typename _Period::type; 2935449: 2935449: 2935449: constexpr duration() = default; 2935449: 2935449: duration(const duration&) = default; 2935449: 2935449: 2935449: 2935449: template, 2935449: __or_<__is_float, __not_<__is_float<_Rep2>>>>> 2935449: constexpr explicit duration(const _Rep2& __rep) 2935449: : __r(static_cast(__rep)) { } 2935449: 2935449: template, 2935449: __or_<__is_float, 2935449: __and_<__is_harmonic<_Period2>, 2935449: __not_<__is_float<_Rep2>>>>>> 2935449: constexpr duration(const duration<_Rep2, _Period2>& __d) 2935449: : __r(duration_cast(__d).count()) { } 2935449: 2935449: ~duration() = default; 2935449: duration& operator=(const duration&) = default; 2935449: 2935449: 2935449: constexpr rep 2935449: count() const 2935449: { return __r; } 2935449: 2935449: 2935449: 2935449: constexpr duration::type, period> 2935449: operator+() const 2935449: { return duration::type, period>(__r); } 2935449: 2935449: constexpr duration::type, period> 2935449: operator-() const 2935449: { return duration::type, period>(-__r); } 2935449: 2935449: duration& 2935449: operator++() 2935449: { 2935449: ++__r; 2935449: return *this; 2935449: } 2935449: 2935449: duration 2935449: operator++(int) 2935449: { return duration(__r++); } 2935449: 2935449: duration& 2935449: operator--() 2935449: { 2935449: --__r; 2935449: return *this; 2935449: } 2935449: 2935449: duration 2935449: operator--(int) 2935449: { return duration(__r--); } 2935449: 2935449: duration& 2935449: operator+=(const duration& __d) 2935449: { 2935449: __r += __d.count(); 2935449: return *this; 2935449: } 2935449: 2935449: duration& 2935449: operator-=(const duration& __d) 2935449: { 2935449: __r -= __d.count(); 2935449: return *this; 2935449: } 2935449: 2935449: duration& 2935449: operator*=(const rep& __rhs) 2935449: { 2935449: __r *= __rhs; 2935449: return *this; 2935449: } 2935449: 2935449: duration& 2935449: operator/=(const rep& __rhs) 2935449: { 2935449: __r /= __rhs; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: template 2935449: 2935449: __enable_if_t::value, duration&> 2935449: operator%=(const rep& __rhs) 2935449: { 2935449: __r %= __rhs; 2935449: return *this; 2935449: } 2935449: 2935449: template 2935449: 2935449: __enable_if_t::value, duration&> 2935449: operator%=(const duration& __d) 2935449: { 2935449: __r %= __d.count(); 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: static constexpr duration 2935449: zero() noexcept 2935449: { return duration(duration_values::zero()); } 2935449: 2935449: static constexpr duration 2935449: min() noexcept 2935449: { return duration(duration_values::min()); } 2935449: 2935449: static constexpr duration 2935449: max() noexcept 2935449: { return duration(duration_values::max()); } 2935449: 2935449: private: 2935449: rep __r; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: constexpr typename common_type, 2935449: duration<_Rep2, _Period2>>::type 2935449: operator+(const duration<_Rep1, _Period1>& __lhs, 2935449: const duration<_Rep2, _Period2>& __rhs) 2935449: { 2935449: typedef duration<_Rep1, _Period1> __dur1; 2935449: typedef duration<_Rep2, _Period2> __dur2; 2935449: typedef typename common_type<__dur1,__dur2>::type __cd; 2935449: return __cd(__cd(__lhs).count() + __cd(__rhs).count()); 2935449: } 2935449: 2935449: 2935449: template 2935449: constexpr typename common_type, 2935449: duration<_Rep2, _Period2>>::type 2935449: operator-(const duration<_Rep1, _Period1>& __lhs, 2935449: const duration<_Rep2, _Period2>& __rhs) 2935449: { 2935449: typedef duration<_Rep1, _Period1> __dur1; 2935449: typedef duration<_Rep2, _Period2> __dur2; 2935449: typedef typename common_type<__dur1,__dur2>::type __cd; 2935449: return __cd(__cd(__lhs).count() - __cd(__rhs).count()); 2935449: } 2935449: # 731 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: template::type> 2935449: using __common_rep_t = typename 2935449: enable_if::value, _CRep>::type; 2935449: # 743 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: template 2935449: constexpr duration<__common_rep_t<_Rep1, _Rep2>, _Period> 2935449: operator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 2935449: { 2935449: typedef duration::type, _Period> 2935449: __cd; 2935449: return __cd(__cd(__d).count() * __s); 2935449: } 2935449: 2935449: template 2935449: constexpr duration<__common_rep_t<_Rep2, _Rep1>, _Period> 2935449: operator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d) 2935449: { return __d * __s; } 2935449: 2935449: template 2935449: constexpr 2935449: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 2935449: operator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 2935449: { 2935449: typedef duration::type, _Period> 2935449: __cd; 2935449: return __cd(__cd(__d).count() / __s); 2935449: } 2935449: 2935449: template 2935449: constexpr typename common_type<_Rep1, _Rep2>::type 2935449: operator/(const duration<_Rep1, _Period1>& __lhs, 2935449: const duration<_Rep2, _Period2>& __rhs) 2935449: { 2935449: typedef duration<_Rep1, _Period1> __dur1; 2935449: typedef duration<_Rep2, _Period2> __dur2; 2935449: typedef typename common_type<__dur1,__dur2>::type __cd; 2935449: return __cd(__lhs).count() / __cd(__rhs).count(); 2935449: } 2935449: 2935449: 2935449: template 2935449: constexpr 2935449: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 2935449: operator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 2935449: { 2935449: typedef duration::type, _Period> 2935449: __cd; 2935449: return __cd(__cd(__d).count() % __s); 2935449: } 2935449: 2935449: template 2935449: constexpr typename common_type, 2935449: duration<_Rep2, _Period2>>::type 2935449: operator%(const duration<_Rep1, _Period1>& __lhs, 2935449: const duration<_Rep2, _Period2>& __rhs) 2935449: { 2935449: typedef duration<_Rep1, _Period1> __dur1; 2935449: typedef duration<_Rep2, _Period2> __dur2; 2935449: typedef typename common_type<__dur1,__dur2>::type __cd; 2935449: return __cd(__cd(__lhs).count() % __cd(__rhs).count()); 2935449: } 2935449: # 811 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: template 2935449: constexpr bool 2935449: operator==(const duration<_Rep1, _Period1>& __lhs, 2935449: const duration<_Rep2, _Period2>& __rhs) 2935449: { 2935449: typedef duration<_Rep1, _Period1> __dur1; 2935449: typedef duration<_Rep2, _Period2> __dur2; 2935449: typedef typename common_type<__dur1,__dur2>::type __ct; 2935449: return __ct(__lhs).count() == __ct(__rhs).count(); 2935449: } 2935449: 2935449: template 2935449: constexpr bool 2935449: operator<(const duration<_Rep1, _Period1>& __lhs, 2935449: const duration<_Rep2, _Period2>& __rhs) 2935449: { 2935449: typedef duration<_Rep1, _Period1> __dur1; 2935449: typedef duration<_Rep2, _Period2> __dur2; 2935449: typedef typename common_type<__dur1,__dur2>::type __ct; 2935449: return __ct(__lhs).count() < __ct(__rhs).count(); 2935449: } 2935449: # 848 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: template 2935449: constexpr bool 2935449: operator!=(const duration<_Rep1, _Period1>& __lhs, 2935449: const duration<_Rep2, _Period2>& __rhs) 2935449: { return !(__lhs == __rhs); } 2935449: 2935449: 2935449: template 2935449: constexpr bool 2935449: operator<=(const duration<_Rep1, _Period1>& __lhs, 2935449: const duration<_Rep2, _Period2>& __rhs) 2935449: { return !(__rhs < __lhs); } 2935449: 2935449: template 2935449: constexpr bool 2935449: operator>(const duration<_Rep1, _Period1>& __lhs, 2935449: const duration<_Rep2, _Period2>& __rhs) 2935449: { return __rhs < __lhs; } 2935449: 2935449: template 2935449: constexpr bool 2935449: operator>=(const duration<_Rep1, _Period1>& __lhs, 2935449: const duration<_Rep2, _Period2>& __rhs) 2935449: { return !(__lhs < __rhs); } 2935449: # 892 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: using nanoseconds = duration; 2935449: 2935449: 2935449: using microseconds = duration; 2935449: 2935449: 2935449: using milliseconds = duration; 2935449: 2935449: 2935449: using seconds = duration; 2935449: 2935449: 2935449: using minutes = duration>; 2935449: 2935449: 2935449: using hours = duration>; 2935449: # 925 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: template 2935449: class time_point 2935449: { 2935449: static_assert(__is_duration<_Dur>::value, 2935449: "duration must be a specialization of std::chrono::duration"); 2935449: 2935449: public: 2935449: typedef _Clock clock; 2935449: typedef _Dur duration; 2935449: typedef typename duration::rep rep; 2935449: typedef typename duration::period period; 2935449: 2935449: constexpr time_point() : __d(duration::zero()) 2935449: { } 2935449: 2935449: constexpr explicit time_point(const duration& __dur) 2935449: : __d(__dur) 2935449: { } 2935449: 2935449: 2935449: template>> 2935449: constexpr time_point(const time_point& __t) 2935449: : __d(__t.time_since_epoch()) 2935449: { } 2935449: 2935449: 2935449: constexpr duration 2935449: time_since_epoch() const 2935449: { return __d; } 2935449: # 981 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: time_point& 2935449: operator+=(const duration& __dur) 2935449: { 2935449: __d += __dur; 2935449: return *this; 2935449: } 2935449: 2935449: time_point& 2935449: operator-=(const duration& __dur) 2935449: { 2935449: __d -= __dur; 2935449: return *this; 2935449: } 2935449: 2935449: 2935449: static constexpr time_point 2935449: min() noexcept 2935449: { return time_point(duration::min()); } 2935449: 2935449: static constexpr time_point 2935449: max() noexcept 2935449: { return time_point(duration::max()); } 2935449: 2935449: private: 2935449: duration __d; 2935449: }; 2935449: # 1020 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: template 2935449: [[__nodiscard__]] constexpr 2935449: __enable_if_t<__is_duration<_ToDur>::value, time_point<_Clock, _ToDur>> 2935449: time_point_cast(const time_point<_Clock, _Dur>& __t) 2935449: { 2935449: typedef time_point<_Clock, _ToDur> __time_point; 2935449: return __time_point(duration_cast<_ToDur>(__t.time_since_epoch())); 2935449: } 2935449: # 1101 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: template 2935449: constexpr time_point<_Clock, 2935449: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 2935449: operator+(const time_point<_Clock, _Dur1>& __lhs, 2935449: const duration<_Rep2, _Period2>& __rhs) 2935449: { 2935449: typedef duration<_Rep2, _Period2> __dur2; 2935449: typedef typename common_type<_Dur1,__dur2>::type __ct; 2935449: typedef time_point<_Clock, __ct> __time_point; 2935449: return __time_point(__lhs.time_since_epoch() + __rhs); 2935449: } 2935449: 2935449: 2935449: template 2935449: constexpr time_point<_Clock, 2935449: typename common_type, _Dur2>::type> 2935449: operator+(const duration<_Rep1, _Period1>& __lhs, 2935449: const time_point<_Clock, _Dur2>& __rhs) 2935449: { 2935449: typedef duration<_Rep1, _Period1> __dur1; 2935449: typedef typename common_type<__dur1,_Dur2>::type __ct; 2935449: typedef time_point<_Clock, __ct> __time_point; 2935449: return __time_point(__rhs.time_since_epoch() + __lhs); 2935449: } 2935449: 2935449: 2935449: template 2935449: constexpr time_point<_Clock, 2935449: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 2935449: operator-(const time_point<_Clock, _Dur1>& __lhs, 2935449: const duration<_Rep2, _Period2>& __rhs) 2935449: { 2935449: typedef duration<_Rep2, _Period2> __dur2; 2935449: typedef typename common_type<_Dur1,__dur2>::type __ct; 2935449: typedef time_point<_Clock, __ct> __time_point; 2935449: return __time_point(__lhs.time_since_epoch() -__rhs); 2935449: } 2935449: 2935449: 2935449: template 2935449: constexpr typename common_type<_Dur1, _Dur2>::type 2935449: operator-(const time_point<_Clock, _Dur1>& __lhs, 2935449: const time_point<_Clock, _Dur2>& __rhs) 2935449: { return __lhs.time_since_epoch() - __rhs.time_since_epoch(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: constexpr bool 2935449: operator==(const time_point<_Clock, _Dur1>& __lhs, 2935449: const time_point<_Clock, _Dur2>& __rhs) 2935449: { return __lhs.time_since_epoch() == __rhs.time_since_epoch(); } 2935449: # 1169 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: template 2935449: constexpr bool 2935449: operator!=(const time_point<_Clock, _Dur1>& __lhs, 2935449: const time_point<_Clock, _Dur2>& __rhs) 2935449: { return !(__lhs == __rhs); } 2935449: 2935449: 2935449: template 2935449: constexpr bool 2935449: operator<(const time_point<_Clock, _Dur1>& __lhs, 2935449: const time_point<_Clock, _Dur2>& __rhs) 2935449: { return __lhs.time_since_epoch() < __rhs.time_since_epoch(); } 2935449: 2935449: template 2935449: constexpr bool 2935449: operator<=(const time_point<_Clock, _Dur1>& __lhs, 2935449: const time_point<_Clock, _Dur2>& __rhs) 2935449: { return !(__rhs < __lhs); } 2935449: 2935449: template 2935449: constexpr bool 2935449: operator>(const time_point<_Clock, _Dur1>& __lhs, 2935449: const time_point<_Clock, _Dur2>& __rhs) 2935449: { return __rhs < __lhs; } 2935449: 2935449: template 2935449: constexpr bool 2935449: operator>=(const time_point<_Clock, _Dur1>& __lhs, 2935449: const time_point<_Clock, _Dur2>& __rhs) 2935449: { return !(__lhs < __rhs); } 2935449: # 1222 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: inline namespace _V2 { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct system_clock 2935449: { 2935449: typedef chrono::nanoseconds duration; 2935449: typedef duration::rep rep; 2935449: typedef duration::period period; 2935449: typedef chrono::time_point time_point; 2935449: 2935449: static_assert(system_clock::duration::min() 2935449: < system_clock::duration::zero(), 2935449: "a clock's minimum duration cannot be less than its epoch"); 2935449: 2935449: static constexpr bool is_steady = false; 2935449: 2935449: static time_point 2935449: now() noexcept; 2935449: 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: static std::time_t 2935449: to_time_t(const time_point& __t) noexcept 2935449: { 2935449: return std::time_t(duration_cast 2935449: (__t.time_since_epoch()).count()); 2935449: } 2935449: 2935449: [[__gnu__::__always_inline__]] 2935449: static time_point 2935449: from_time_t(std::time_t __t) noexcept 2935449: { 2935449: typedef chrono::time_point __from; 2935449: return time_point_cast 2935449: (__from(chrono::seconds(__t))); 2935449: } 2935449: }; 2935449: # 1272 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: struct steady_clock 2935449: { 2935449: typedef chrono::nanoseconds duration; 2935449: typedef duration::rep rep; 2935449: typedef duration::period period; 2935449: typedef chrono::time_point time_point; 2935449: 2935449: static constexpr bool is_steady = true; 2935449: 2935449: static time_point 2935449: now() noexcept; 2935449: }; 2935449: # 1294 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: using high_resolution_clock = system_clock; 2935449: 2935449: } 2935449: # 1329 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: } 2935449: # 1518 "/usr/arm-linux-gnueabi/include/c++/15/bits/chrono.h" 3 2935449: 2935449: } 2935449: # 46 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 2 3 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_mutex.h" 1 3 2935449: # 43 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_mutex.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/gthr.h" 1 3 2935449: # 30 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/gthr.h" 3 2935449: #pragma GCC visibility push(default) 2935449: # 157 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/gthr.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/gthr-default.h" 1 3 2935449: # 62 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/gthr-default.h" 3 2935449: typedef pthread_t __gthread_t; 2935449: typedef pthread_key_t __gthread_key_t; 2935449: typedef pthread_once_t __gthread_once_t; 2935449: typedef pthread_mutex_t __gthread_mutex_t; 2935449: 2935449: 2935449: 2935449: typedef pthread_mutex_t __gthread_recursive_mutex_t; 2935449: typedef pthread_cond_t __gthread_cond_t; 2935449: typedef struct timespec __gthread_time_t; 2935449: # 123 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/gthr-default.h" 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 345 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/gthr-default.h" 3 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_active_p (void) 2935449: { 2935449: return 1; 2935449: } 2935449: # 705 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/gthr-default.h" 3 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_create (__gthread_t *__threadid, void *(*__func) (void*), 2935449: void *__args) 2935449: { 2935449: return pthread_create (__threadid, __null, __func, __args); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_join (__gthread_t __threadid, void **__value_ptr) 2935449: { 2935449: return pthread_join (__threadid, __value_ptr); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_detach (__gthread_t __threadid) 2935449: { 2935449: return pthread_detach (__threadid); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_equal (__gthread_t __t1, __gthread_t __t2) 2935449: { 2935449: return pthread_equal (__t1, __t2); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) __gthread_t 2935449: __gthread_self (void) 2935449: { 2935449: return pthread_self (); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_yield (void) 2935449: { 2935449: return sched_yield (); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_once (__gthread_once_t *__once, void (*__func) (void)) 2935449: { 2935449: if (__gthread_active_p ()) 2935449: return pthread_once (__once, __func); 2935449: else 2935449: return -1; 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) 2935449: { 2935449: return pthread_key_create (__key, __dtor); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_key_delete (__gthread_key_t __key) 2935449: { 2935449: return pthread_key_delete (__key); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) void * 2935449: __gthread_getspecific (__gthread_key_t __key) 2935449: { 2935449: return pthread_getspecific (__key); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_setspecific (__gthread_key_t __key, const void *__ptr) 2935449: { 2935449: return pthread_setspecific (__key, __ptr); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) void 2935449: __gthread_mutex_init_function (__gthread_mutex_t *__mutex) 2935449: { 2935449: if (__gthread_active_p ()) 2935449: pthread_mutex_init (__mutex, __null); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_mutex_destroy (__gthread_mutex_t *__mutex) 2935449: { 2935449: if (__gthread_active_p ()) 2935449: return pthread_mutex_destroy (__mutex); 2935449: else 2935449: return 0; 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_mutex_lock (__gthread_mutex_t *__mutex) 2935449: { 2935449: if (__gthread_active_p ()) 2935449: return pthread_mutex_lock (__mutex); 2935449: else 2935449: return 0; 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_mutex_trylock (__gthread_mutex_t *__mutex) 2935449: { 2935449: if (__gthread_active_p ()) 2935449: return pthread_mutex_trylock (__mutex); 2935449: else 2935449: return 0; 2935449: } 2935449: 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, 2935449: const __gthread_time_t *__abs_timeout) 2935449: { 2935449: if (__gthread_active_p ()) 2935449: return pthread_mutex_timedlock (__mutex, __abs_timeout); 2935449: else 2935449: return 0; 2935449: } 2935449: 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_mutex_unlock (__gthread_mutex_t *__mutex) 2935449: { 2935449: if (__gthread_active_p ()) 2935449: return pthread_mutex_unlock (__mutex); 2935449: else 2935449: return 0; 2935449: } 2935449: # 854 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/gthr-default.h" 3 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) 2935449: { 2935449: return __gthread_mutex_lock (__mutex); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) 2935449: { 2935449: return __gthread_mutex_trylock (__mutex); 2935449: } 2935449: 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, 2935449: const __gthread_time_t *__abs_timeout) 2935449: { 2935449: return __gthread_mutex_timedlock (__mutex, __abs_timeout); 2935449: } 2935449: 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) 2935449: { 2935449: return __gthread_mutex_unlock (__mutex); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) 2935449: { 2935449: return __gthread_mutex_destroy (__mutex); 2935449: } 2935449: # 896 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/gthr-default.h" 3 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_cond_broadcast (__gthread_cond_t *__cond) 2935449: { 2935449: return pthread_cond_broadcast (__cond); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_cond_signal (__gthread_cond_t *__cond) 2935449: { 2935449: return pthread_cond_signal (__cond); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) 2935449: { 2935449: return pthread_cond_wait (__cond, __mutex); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, 2935449: const __gthread_time_t *__abs_timeout) 2935449: { 2935449: return pthread_cond_timedwait (__cond, __mutex, __abs_timeout); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_cond_wait_recursive (__gthread_cond_t *__cond, 2935449: __gthread_recursive_mutex_t *__mutex) 2935449: { 2935449: return __gthread_cond_wait (__cond, __mutex); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) int 2935449: __gthread_cond_destroy (__gthread_cond_t* __cond) 2935449: { 2935449: return pthread_cond_destroy (__cond); 2935449: } 2935449: # 158 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/gthr.h" 2 3 2935449: 2935449: 2935449: #pragma GCC visibility pop 2935449: # 44 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_mutex.h" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 61 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_mutex.h" 3 2935449: class __mutex_base 2935449: { 2935449: protected: 2935449: typedef __gthread_mutex_t __native_type; 2935449: 2935449: 2935449: __native_type _M_mutex = { { 0, 0, 0, PTHREAD_MUTEX_TIMED_NP, 0, { 0 } } }; 2935449: 2935449: constexpr __mutex_base() noexcept = default; 2935449: # 82 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_mutex.h" 3 2935449: __mutex_base(const __mutex_base&) = delete; 2935449: __mutex_base& operator=(const __mutex_base&) = delete; 2935449: }; 2935449: # 98 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_mutex.h" 3 2935449: class mutex : private __mutex_base 2935449: { 2935449: public: 2935449: typedef __native_type* native_handle_type; 2935449: 2935449: 2935449: constexpr 2935449: 2935449: mutex() noexcept = default; 2935449: ~mutex() = default; 2935449: 2935449: mutex(const mutex&) = delete; 2935449: mutex& operator=(const mutex&) = delete; 2935449: 2935449: void 2935449: lock() 2935449: { 2935449: int __e = __gthread_mutex_lock(&_M_mutex); 2935449: 2935449: 2935449: if (__e) 2935449: __throw_system_error(__e); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: bool 2935449: try_lock() noexcept 2935449: { 2935449: 2935449: return !__gthread_mutex_trylock(&_M_mutex); 2935449: } 2935449: 2935449: void 2935449: unlock() 2935449: { 2935449: 2935449: __gthread_mutex_unlock(&_M_mutex); 2935449: } 2935449: 2935449: native_handle_type 2935449: native_handle() noexcept 2935449: { return &_M_mutex; } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: class __condvar 2935449: { 2935449: using timespec = __gthread_time_t; 2935449: 2935449: public: 2935449: __condvar() noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: ~__condvar() 2935449: { 2935449: int __e __attribute__((__unused__)) = __gthread_cond_destroy(&_M_cond); 2935449: do { if (std::__is_constant_evaluated() && !bool(__e != 16)) std::__glibcxx_assert_fail(); } while (false); 2935449: } 2935449: 2935449: __condvar(const __condvar&) = delete; 2935449: __condvar& operator=(const __condvar&) = delete; 2935449: 2935449: __gthread_cond_t* native_handle() noexcept { return &_M_cond; } 2935449: 2935449: 2935449: void 2935449: wait(mutex& __m) 2935449: { 2935449: int __e __attribute__((__unused__)) 2935449: = __gthread_cond_wait(&_M_cond, __m.native_handle()); 2935449: do { if (std::__is_constant_evaluated() && !bool(__e == 0)) std::__glibcxx_assert_fail(); } while (false); 2935449: } 2935449: 2935449: void 2935449: wait_until(mutex& __m, timespec& __abs_time) 2935449: { 2935449: __gthread_cond_timedwait(&_M_cond, __m.native_handle(), &__abs_time); 2935449: } 2935449: 2935449: 2935449: void 2935449: wait_until(mutex& __m, clockid_t __clock, timespec& __abs_time) 2935449: { 2935449: pthread_cond_clockwait(&_M_cond, __m.native_handle(), __clock, 2935449: &__abs_time); 2935449: } 2935449: 2935449: 2935449: void 2935449: notify_one() noexcept 2935449: { 2935449: int __e __attribute__((__unused__)) = __gthread_cond_signal(&_M_cond); 2935449: do { if (std::__is_constant_evaluated() && !bool(__e == 0)) std::__glibcxx_assert_fail(); } while (false); 2935449: } 2935449: 2935449: void 2935449: notify_all() noexcept 2935449: { 2935449: int __e __attribute__((__unused__)) = __gthread_cond_broadcast(&_M_cond); 2935449: do { if (std::__is_constant_evaluated() && !bool(__e == 0)) std::__glibcxx_assert_fail(); } while (false); 2935449: } 2935449: 2935449: protected: 2935449: 2935449: __gthread_cond_t _M_cond = { { {0}, {0}, {0, 0}, 0, 0, {0, 0}, 0, 0 } }; 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct defer_lock_t { explicit defer_lock_t() = default; }; 2935449: 2935449: 2935449: struct try_to_lock_t { explicit try_to_lock_t() = default; }; 2935449: 2935449: 2935449: 2935449: struct adopt_lock_t { explicit adopt_lock_t() = default; }; 2935449: 2935449: 2935449: constexpr defer_lock_t defer_lock { }; 2935449: 2935449: 2935449: constexpr try_to_lock_t try_to_lock { }; 2935449: 2935449: 2935449: constexpr adopt_lock_t adopt_lock { }; 2935449: # 244 "/usr/arm-linux-gnueabi/include/c++/15/bits/std_mutex.h" 3 2935449: template 2935449: class lock_guard 2935449: { 2935449: public: 2935449: typedef _Mutex mutex_type; 2935449: 2935449: [[__nodiscard__]] 2935449: explicit lock_guard(mutex_type& __m) : _M_device(__m) 2935449: { _M_device.lock(); } 2935449: 2935449: [[__nodiscard__]] 2935449: lock_guard(mutex_type& __m, adopt_lock_t) noexcept : _M_device(__m) 2935449: { } 2935449: 2935449: ~lock_guard() 2935449: { _M_device.unlock(); } 2935449: 2935449: lock_guard(const lock_guard&) = delete; 2935449: lock_guard& operator=(const lock_guard&) = delete; 2935449: 2935449: private: 2935449: mutex_type& _M_device; 2935449: }; 2935449: 2935449: 2935449: 2935449: } 2935449: # 50 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/unique_lock.h" 1 3 2935449: # 42 "/usr/arm-linux-gnueabi/include/c++/15/bits/unique_lock.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/error_constants.h" 1 3 2935449: # 36 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/error_constants.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: enum class errc 2935449: { 2935449: address_family_not_supported = 97, 2935449: address_in_use = 98, 2935449: address_not_available = 99, 2935449: already_connected = 106, 2935449: argument_list_too_long = 7, 2935449: argument_out_of_domain = 33, 2935449: bad_address = 14, 2935449: bad_file_descriptor = 9, 2935449: 2935449: 2935449: bad_message = 74, 2935449: 2935449: 2935449: broken_pipe = 32, 2935449: connection_aborted = 103, 2935449: connection_already_in_progress = 114, 2935449: connection_refused = 111, 2935449: connection_reset = 104, 2935449: cross_device_link = 18, 2935449: destination_address_required = 89, 2935449: device_or_resource_busy = 16, 2935449: directory_not_empty = 39, 2935449: executable_format_error = 8, 2935449: file_exists = 17, 2935449: file_too_large = 27, 2935449: filename_too_long = 36, 2935449: function_not_supported = 38, 2935449: host_unreachable = 113, 2935449: 2935449: 2935449: identifier_removed = 43, 2935449: 2935449: 2935449: illegal_byte_sequence = 84, 2935449: inappropriate_io_control_operation = 25, 2935449: interrupted = 4, 2935449: invalid_argument = 22, 2935449: invalid_seek = 29, 2935449: io_error = 5, 2935449: is_a_directory = 21, 2935449: message_size = 90, 2935449: network_down = 100, 2935449: network_reset = 102, 2935449: network_unreachable = 101, 2935449: no_buffer_space = 105, 2935449: no_child_process = 10, 2935449: 2935449: 2935449: no_link = 67, 2935449: 2935449: 2935449: no_lock_available = 37, 2935449: 2935449: 2935449: no_message_available = 61, 2935449: 2935449: 2935449: no_message = 42, 2935449: no_protocol_option = 92, 2935449: no_space_on_device = 28, 2935449: 2935449: 2935449: no_stream_resources = 63, 2935449: 2935449: 2935449: no_such_device_or_address = 6, 2935449: no_such_device = 19, 2935449: no_such_file_or_directory = 2, 2935449: no_such_process = 3, 2935449: not_a_directory = 20, 2935449: not_a_socket = 88, 2935449: 2935449: 2935449: not_a_stream = 60, 2935449: 2935449: 2935449: not_connected = 107, 2935449: not_enough_memory = 12, 2935449: 2935449: 2935449: not_supported = 95, 2935449: 2935449: 2935449: 2935449: operation_canceled = 125, 2935449: 2935449: 2935449: operation_in_progress = 115, 2935449: operation_not_permitted = 1, 2935449: operation_not_supported = 95, 2935449: operation_would_block = 11, 2935449: 2935449: 2935449: owner_dead = 130, 2935449: 2935449: 2935449: permission_denied = 13, 2935449: 2935449: 2935449: protocol_error = 71, 2935449: 2935449: 2935449: protocol_not_supported = 93, 2935449: read_only_file_system = 30, 2935449: resource_deadlock_would_occur = 35, 2935449: resource_unavailable_try_again = 11, 2935449: result_out_of_range = 34, 2935449: 2935449: 2935449: state_not_recoverable = 131, 2935449: 2935449: 2935449: 2935449: stream_timeout = 62, 2935449: 2935449: 2935449: 2935449: text_file_busy = 26, 2935449: 2935449: 2935449: timed_out = 110, 2935449: too_many_files_open_in_system = 23, 2935449: too_many_files_open = 24, 2935449: too_many_links = 31, 2935449: too_many_symbolic_link_levels = 40, 2935449: 2935449: 2935449: value_too_large = 75, 2935449: 2935449: 2935449: 2935449: 2935449: wrong_protocol_type = 91 2935449: }; 2935449: 2935449: 2935449: } 2935449: # 43 "/usr/arm-linux-gnueabi/include/c++/15/bits/unique_lock.h" 2 3 2935449: 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 61 "/usr/arm-linux-gnueabi/include/c++/15/bits/unique_lock.h" 3 2935449: template 2935449: class unique_lock 2935449: { 2935449: public: 2935449: typedef _Mutex mutex_type; 2935449: 2935449: unique_lock() noexcept 2935449: : _M_device(0), _M_owns(false) 2935449: { } 2935449: 2935449: [[__nodiscard__]] 2935449: explicit unique_lock(mutex_type& __m) 2935449: : _M_device(std::__addressof(__m)), _M_owns(false) 2935449: { 2935449: lock(); 2935449: _M_owns = true; 2935449: } 2935449: 2935449: unique_lock(mutex_type& __m, defer_lock_t) noexcept 2935449: : _M_device(std::__addressof(__m)), _M_owns(false) 2935449: { } 2935449: 2935449: [[__nodiscard__]] 2935449: unique_lock(mutex_type& __m, try_to_lock_t) 2935449: : _M_device(std::__addressof(__m)), _M_owns(_M_device->try_lock()) 2935449: { } 2935449: 2935449: [[__nodiscard__]] 2935449: unique_lock(mutex_type& __m, adopt_lock_t) noexcept 2935449: : _M_device(std::__addressof(__m)), _M_owns(true) 2935449: { 2935449: 2935449: } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: unique_lock(mutex_type& __m, 2935449: const chrono::time_point<_Clock, _Duration>& __atime) 2935449: : _M_device(std::__addressof(__m)), 2935449: _M_owns(_M_device->try_lock_until(__atime)) 2935449: { } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: unique_lock(mutex_type& __m, 2935449: const chrono::duration<_Rep, _Period>& __rtime) 2935449: : _M_device(std::__addressof(__m)), 2935449: _M_owns(_M_device->try_lock_for(__rtime)) 2935449: { } 2935449: 2935449: ~unique_lock() 2935449: { 2935449: if (_M_owns) 2935449: unlock(); 2935449: } 2935449: 2935449: unique_lock(const unique_lock&) = delete; 2935449: unique_lock& operator=(const unique_lock&) = delete; 2935449: 2935449: unique_lock(unique_lock&& __u) noexcept 2935449: : _M_device(__u._M_device), _M_owns(__u._M_owns) 2935449: { 2935449: __u._M_device = 0; 2935449: __u._M_owns = false; 2935449: } 2935449: 2935449: unique_lock& operator=(unique_lock&& __u) noexcept 2935449: { 2935449: 2935449: 2935449: unique_lock(std::move(__u)).swap(*this); 2935449: return *this; 2935449: } 2935449: 2935449: void 2935449: lock() 2935449: { 2935449: if (!_M_device) 2935449: __throw_system_error(int(errc::operation_not_permitted)); 2935449: else if (_M_owns) 2935449: __throw_system_error(int(errc::resource_deadlock_would_occur)); 2935449: else 2935449: { 2935449: _M_device->lock(); 2935449: _M_owns = true; 2935449: } 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: bool 2935449: try_lock() 2935449: { 2935449: if (!_M_device) 2935449: __throw_system_error(int(errc::operation_not_permitted)); 2935449: else if (_M_owns) 2935449: __throw_system_error(int(errc::resource_deadlock_would_occur)); 2935449: else 2935449: { 2935449: _M_owns = _M_device->try_lock(); 2935449: return _M_owns; 2935449: } 2935449: } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: bool 2935449: try_lock_until(const chrono::time_point<_Clock, _Duration>& __atime) 2935449: { 2935449: if (!_M_device) 2935449: __throw_system_error(int(errc::operation_not_permitted)); 2935449: else if (_M_owns) 2935449: __throw_system_error(int(errc::resource_deadlock_would_occur)); 2935449: else 2935449: { 2935449: _M_owns = _M_device->try_lock_until(__atime); 2935449: return _M_owns; 2935449: } 2935449: } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: bool 2935449: try_lock_for(const chrono::duration<_Rep, _Period>& __rtime) 2935449: { 2935449: if (!_M_device) 2935449: __throw_system_error(int(errc::operation_not_permitted)); 2935449: else if (_M_owns) 2935449: __throw_system_error(int(errc::resource_deadlock_would_occur)); 2935449: else 2935449: { 2935449: _M_owns = _M_device->try_lock_for(__rtime); 2935449: return _M_owns; 2935449: } 2935449: } 2935449: 2935449: void 2935449: unlock() 2935449: { 2935449: if (!_M_owns) 2935449: __throw_system_error(int(errc::operation_not_permitted)); 2935449: else if (_M_device) 2935449: { 2935449: _M_device->unlock(); 2935449: _M_owns = false; 2935449: } 2935449: } 2935449: 2935449: void 2935449: swap(unique_lock& __u) noexcept 2935449: { 2935449: std::swap(_M_device, __u._M_device); 2935449: std::swap(_M_owns, __u._M_owns); 2935449: } 2935449: 2935449: mutex_type* 2935449: release() noexcept 2935449: { 2935449: mutex_type* __ret = _M_device; 2935449: _M_device = 0; 2935449: _M_owns = false; 2935449: return __ret; 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: bool 2935449: owns_lock() const noexcept 2935449: { return _M_owns; } 2935449: 2935449: explicit operator bool() const noexcept 2935449: { return owns_lock(); } 2935449: 2935449: [[__nodiscard__]] 2935449: mutex_type* 2935449: mutex() const noexcept 2935449: { return _M_device; } 2935449: 2935449: private: 2935449: mutex_type* _M_device; 2935449: bool _M_owns; 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: inline void 2935449: swap(unique_lock<_Mutex>& __x, unique_lock<_Mutex>& __y) noexcept 2935449: { __x.swap(__y); } 2935449: 2935449: 2935449: } 2935449: # 51 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/ext/atomicity.h" 1 3 2935449: # 38 "/usr/arm-linux-gnueabi/include/c++/15/ext/atomicity.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/atomic_word.h" 1 3 2935449: # 32 "/usr/arm-linux-gnueabi/include/c++/15/arm-linux-gnueabi/bits/atomic_word.h" 3 2935449: typedef int _Atomic_word; 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/ext/atomicity.h" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/sys/single_threaded.h" 1 3 2935449: # 24 "/usr/arm-linux-gnueabi/include/sys/single_threaded.h" 3 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: 2935449: extern char __libc_single_threaded; 2935449: 2935449: } 2935449: # 41 "/usr/arm-linux-gnueabi/include/c++/15/ext/atomicity.h" 2 3 2935449: 2935449: 2935449: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: __attribute__((__always_inline__)) 2935449: inline bool 2935449: __is_single_threaded() noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return ::__libc_single_threaded; 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: inline _Atomic_word 2935449: __attribute__((__always_inline__)) 2935449: __exchange_and_add(volatile _Atomic_word* __mem, int __val) 2935449: { return __atomic_fetch_add(__mem, __val, 4); } 2935449: 2935449: inline void 2935449: __attribute__((__always_inline__)) 2935449: __atomic_add(volatile _Atomic_word* __mem, int __val) 2935449: { __atomic_fetch_add(__mem, __val, 4); } 2935449: # 82 "/usr/arm-linux-gnueabi/include/c++/15/ext/atomicity.h" 3 2935449: inline _Atomic_word 2935449: __attribute__((__always_inline__)) 2935449: __exchange_and_add_single(_Atomic_word* __mem, int __val) 2935449: { 2935449: _Atomic_word __result = *__mem; 2935449: *__mem += __val; 2935449: return __result; 2935449: } 2935449: 2935449: inline void 2935449: __attribute__((__always_inline__)) 2935449: __atomic_add_single(_Atomic_word* __mem, int __val) 2935449: { *__mem += __val; } 2935449: 2935449: inline _Atomic_word 2935449: __attribute__ ((__always_inline__)) 2935449: __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) 2935449: { 2935449: if (__is_single_threaded()) 2935449: return __exchange_and_add_single(__mem, __val); 2935449: else 2935449: return __exchange_and_add(__mem, __val); 2935449: } 2935449: 2935449: inline void 2935449: __attribute__ ((__always_inline__)) 2935449: __atomic_add_dispatch(_Atomic_word* __mem, int __val) 2935449: { 2935449: if (__is_single_threaded()) 2935449: __atomic_add_single(__mem, __val); 2935449: else 2935449: __atomic_add(__mem, __val); 2935449: } 2935449: 2935449: 2935449: } 2935449: # 56 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 63 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 2 3 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 77 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: class __recursive_mutex_base 2935449: { 2935449: protected: 2935449: typedef __gthread_recursive_mutex_t __native_type; 2935449: 2935449: __recursive_mutex_base(const __recursive_mutex_base&) = delete; 2935449: __recursive_mutex_base& operator=(const __recursive_mutex_base&) = delete; 2935449: 2935449: 2935449: __native_type _M_mutex = { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0 } } }; 2935449: 2935449: __recursive_mutex_base() = default; 2935449: # 101 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: }; 2935449: # 113 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: class recursive_mutex : private __recursive_mutex_base 2935449: { 2935449: public: 2935449: typedef __native_type* native_handle_type; 2935449: 2935449: recursive_mutex() = default; 2935449: ~recursive_mutex() = default; 2935449: 2935449: recursive_mutex(const recursive_mutex&) = delete; 2935449: recursive_mutex& operator=(const recursive_mutex&) = delete; 2935449: 2935449: void 2935449: lock() 2935449: { 2935449: int __e = __gthread_recursive_mutex_lock(&_M_mutex); 2935449: 2935449: 2935449: if (__e) 2935449: __throw_system_error(__e); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: bool 2935449: try_lock() noexcept 2935449: { 2935449: 2935449: return !__gthread_recursive_mutex_trylock(&_M_mutex); 2935449: } 2935449: 2935449: void 2935449: unlock() 2935449: { 2935449: 2935449: __gthread_recursive_mutex_unlock(&_M_mutex); 2935449: } 2935449: 2935449: native_handle_type 2935449: native_handle() noexcept 2935449: { return &_M_mutex; } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: class __timed_mutex_impl 2935449: { 2935449: protected: 2935449: template 2935449: bool 2935449: _M_try_lock_for(const chrono::duration<_Rep, _Period>& __rtime) 2935449: { 2935449: 2935449: using __clock = chrono::steady_clock; 2935449: 2935449: 2935449: 2935449: 2935449: auto __rt = chrono::duration_cast<__clock::duration>(__rtime); 2935449: if (ratio_greater<__clock::period, _Period>()) 2935449: ++__rt; 2935449: return _M_try_lock_until(__clock::now() + __rt); 2935449: } 2935449: 2935449: template 2935449: bool 2935449: _M_try_lock_until(const chrono::time_point& __atime) 2935449: { 2935449: auto __s = chrono::time_point_cast(__atime); 2935449: auto __ns = chrono::duration_cast(__atime - __s); 2935449: 2935449: __gthread_time_t __ts = { 2935449: static_cast(__s.time_since_epoch().count()), 2935449: static_cast(__ns.count()) 2935449: }; 2935449: 2935449: return static_cast<_Derived*>(this)->_M_timedlock(__ts); 2935449: } 2935449: 2935449: 2935449: template 2935449: bool 2935449: _M_try_lock_until(const chrono::time_point& __atime) 2935449: { 2935449: auto __s = chrono::time_point_cast(__atime); 2935449: auto __ns = chrono::duration_cast(__atime - __s); 2935449: 2935449: __gthread_time_t __ts = { 2935449: static_cast(__s.time_since_epoch().count()), 2935449: static_cast(__ns.count()) 2935449: }; 2935449: 2935449: return static_cast<_Derived*>(this)->_M_clocklock(1, 2935449: __ts); 2935449: } 2935449: 2935449: 2935449: template 2935449: bool 2935449: _M_try_lock_until(const chrono::time_point<_Clock, _Duration>& __atime) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: auto __now = _Clock::now(); 2935449: do { 2935449: auto __rtime = __atime - __now; 2935449: if (_M_try_lock_for(__rtime)) 2935449: return true; 2935449: __now = _Clock::now(); 2935449: } while (__atime > __now); 2935449: return false; 2935449: } 2935449: }; 2935449: # 242 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: class timed_mutex 2935449: : private __mutex_base, public __timed_mutex_impl 2935449: { 2935449: public: 2935449: typedef __native_type* native_handle_type; 2935449: 2935449: timed_mutex() = default; 2935449: ~timed_mutex() = default; 2935449: 2935449: timed_mutex(const timed_mutex&) = delete; 2935449: timed_mutex& operator=(const timed_mutex&) = delete; 2935449: 2935449: void 2935449: lock() 2935449: { 2935449: int __e = __gthread_mutex_lock(&_M_mutex); 2935449: 2935449: 2935449: if (__e) 2935449: __throw_system_error(__e); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: bool 2935449: try_lock() noexcept 2935449: { 2935449: 2935449: return !__gthread_mutex_trylock(&_M_mutex); 2935449: } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: bool 2935449: try_lock_for(const chrono::duration<_Rep, _Period>& __rtime) 2935449: { return _M_try_lock_for(__rtime); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: bool 2935449: try_lock_until(const chrono::time_point<_Clock, _Duration>& __atime) 2935449: { return _M_try_lock_until(__atime); } 2935449: 2935449: void 2935449: unlock() 2935449: { 2935449: 2935449: __gthread_mutex_unlock(&_M_mutex); 2935449: } 2935449: 2935449: native_handle_type 2935449: native_handle() noexcept 2935449: { return &_M_mutex; } 2935449: 2935449: private: 2935449: friend class __timed_mutex_impl; 2935449: 2935449: bool 2935449: _M_timedlock(const __gthread_time_t& __ts) 2935449: { return !__gthread_mutex_timedlock(&_M_mutex, &__ts); } 2935449: 2935449: 2935449: bool 2935449: _M_clocklock(clockid_t __clockid, const __gthread_time_t& __ts) 2935449: { return !pthread_mutex_clocklock(&_M_mutex, __clockid, &__ts); } 2935449: 2935449: }; 2935449: # 319 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: class recursive_timed_mutex 2935449: : private __recursive_mutex_base, 2935449: public __timed_mutex_impl 2935449: { 2935449: public: 2935449: typedef __native_type* native_handle_type; 2935449: 2935449: recursive_timed_mutex() = default; 2935449: ~recursive_timed_mutex() = default; 2935449: 2935449: recursive_timed_mutex(const recursive_timed_mutex&) = delete; 2935449: recursive_timed_mutex& operator=(const recursive_timed_mutex&) = delete; 2935449: 2935449: void 2935449: lock() 2935449: { 2935449: int __e = __gthread_recursive_mutex_lock(&_M_mutex); 2935449: 2935449: 2935449: if (__e) 2935449: __throw_system_error(__e); 2935449: } 2935449: 2935449: [[__nodiscard__]] 2935449: bool 2935449: try_lock() noexcept 2935449: { 2935449: 2935449: return !__gthread_recursive_mutex_trylock(&_M_mutex); 2935449: } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: bool 2935449: try_lock_for(const chrono::duration<_Rep, _Period>& __rtime) 2935449: { return _M_try_lock_for(__rtime); } 2935449: 2935449: template 2935449: [[__nodiscard__]] 2935449: bool 2935449: try_lock_until(const chrono::time_point<_Clock, _Duration>& __atime) 2935449: { return _M_try_lock_until(__atime); } 2935449: 2935449: void 2935449: unlock() 2935449: { 2935449: 2935449: __gthread_recursive_mutex_unlock(&_M_mutex); 2935449: } 2935449: 2935449: native_handle_type 2935449: native_handle() noexcept 2935449: { return &_M_mutex; } 2935449: 2935449: private: 2935449: friend class __timed_mutex_impl; 2935449: 2935449: bool 2935449: _M_timedlock(const __gthread_time_t& __ts) 2935449: { return !__gthread_recursive_mutex_timedlock(&_M_mutex, &__ts); } 2935449: 2935449: 2935449: bool 2935449: _M_clocklock(clockid_t __clockid, const __gthread_time_t& __ts) 2935449: { return !pthread_mutex_clocklock(&_M_mutex, __clockid, &__ts); } 2935449: 2935449: }; 2935449: # 566 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: namespace __detail 2935449: { 2935449: 2935449: template 2935449: inline int 2935449: __try_lock_impl(_Lockable& __l) 2935449: { 2935449: if (unique_lock<_Lockable> __lock{__l, try_to_lock}) 2935449: { 2935449: __lock.release(); 2935449: return -1; 2935449: } 2935449: else 2935449: return 0; 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: inline int 2935449: __try_lock_impl(_L0& __l0, _Lockables&... __lockables) 2935449: { 2935449: # 611 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: if (unique_lock<_L0> __lock{__l0, try_to_lock}) 2935449: { 2935449: int __idx = __detail::__try_lock_impl(__lockables...); 2935449: if (__idx == -1) 2935449: { 2935449: __lock.release(); 2935449: return -1; 2935449: } 2935449: return __idx + 1; 2935449: } 2935449: else 2935449: return 0; 2935449: } 2935449: 2935449: } 2935449: # 638 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: template 2935449: [[__nodiscard__]] 2935449: inline int 2935449: try_lock(_L1& __l1, _L2& __l2, _L3&... __l3) 2935449: { 2935449: return __detail::__try_lock_impl(__l1, __l2, __l3...); 2935449: } 2935449: 2935449: 2935449: namespace __detail 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: void 2935449: __lock_impl(int& __i, int __depth, _L0& __l0, _L1&... __l1) 2935449: { 2935449: while (__i >= __depth) 2935449: { 2935449: if (__i == __depth) 2935449: { 2935449: int __failed = 1; 2935449: { 2935449: unique_lock<_L0> __first(__l0); 2935449: __failed += __detail::__try_lock_impl(__l1...); 2935449: if (!__failed) 2935449: { 2935449: __i = -1; 2935449: __first.release(); 2935449: return; 2935449: } 2935449: } 2935449: 2935449: __gthread_yield(); 2935449: 2935449: constexpr auto __n = 1 + sizeof...(_L1); 2935449: __i = (__depth + __failed) % __n; 2935449: } 2935449: else 2935449: __detail::__lock_impl(__i, __depth + 1, __l1..., __l0); 2935449: } 2935449: } 2935449: 2935449: } 2935449: # 698 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: template 2935449: void 2935449: lock(_L1& __l1, _L2& __l2, _L3&... __l3) 2935449: { 2935449: # 730 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: { 2935449: int __i = 0; 2935449: __detail::__lock_impl(__i, 0, __l1, __l2, __l3...); 2935449: } 2935449: } 2935449: # 809 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: struct once_flag 2935449: { 2935449: constexpr once_flag() noexcept = default; 2935449: 2935449: 2935449: once_flag(const once_flag&) = delete; 2935449: 2935449: once_flag& operator=(const once_flag&) = delete; 2935449: 2935449: private: 2935449: 2935449: 2935449: __gthread_once_t _M_once = 0; 2935449: 2935449: struct _Prepare_execution; 2935449: 2935449: template 2935449: friend void 2935449: call_once(once_flag& __once, _Callable&& __f, _Args&&... __args); 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern __thread void* __once_callable; 2935449: extern __thread void (*__once_call)(); 2935449: 2935449: 2935449: struct once_flag::_Prepare_execution 2935449: { 2935449: template 2935449: explicit 2935449: _Prepare_execution(_Callable& __c) 2935449: { 2935449: 2935449: __once_callable = std::__addressof(__c); 2935449: 2935449: __once_call = [] { (*static_cast<_Callable*>(__once_callable))(); }; 2935449: } 2935449: 2935449: ~_Prepare_execution() 2935449: { 2935449: 2935449: __once_callable = nullptr; 2935449: __once_call = nullptr; 2935449: } 2935449: 2935449: _Prepare_execution(const _Prepare_execution&) = delete; 2935449: _Prepare_execution& operator=(const _Prepare_execution&) = delete; 2935449: }; 2935449: # 902 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: extern "C" void __once_proxy(void); 2935449: 2935449: 2935449: template 2935449: void 2935449: call_once(once_flag& __once, _Callable&& __f, _Args&&... __args) 2935449: { 2935449: 2935449: auto __callable = [&] { 2935449: std::__invoke(std::forward<_Callable>(__f), 2935449: std::forward<_Args>(__args)...); 2935449: }; 2935449: 2935449: once_flag::_Prepare_execution __exec(__callable); 2935449: 2935449: 2935449: if (int __e = __gthread_once(&__once._M_once, &__once_proxy)) 2935449: __throw_system_error(__e); 2935449: } 2935449: # 1023 "/usr/arm-linux-gnueabi/include/c++/15/mutex" 3 2935449: 2935449: } 2935449: # 27 "/<>/_include/workflow/Workflow.h" 2 2935449: # 1 "/<>/_include/workflow/SubTask.h" 1 2935449: # 22 "/<>/_include/workflow/SubTask.h" 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 23 "/<>/_include/workflow/SubTask.h" 2 2935449: 2935449: 2935449: # 24 "/<>/_include/workflow/SubTask.h" 2935449: class SubTask 2935449: { 2935449: public: 2935449: virtual void dispatch() = 0; 2935449: 2935449: private: 2935449: virtual SubTask *done() = 0; 2935449: 2935449: protected: 2935449: void subtask_done(); 2935449: 2935449: public: 2935449: void *get_pointer() const { return this->pointer; } 2935449: void set_pointer(void *pointer) { this->pointer = pointer; } 2935449: 2935449: private: 2935449: class ParallelTask *parent; 2935449: void *pointer; 2935449: 2935449: public: 2935449: SubTask() 2935449: { 2935449: this->parent = 2935449: # 46 "/<>/_include/workflow/SubTask.h" 3 4 2935449: __null 2935449: # 46 "/<>/_include/workflow/SubTask.h" 2935449: ; 2935449: this->pointer = 2935449: # 47 "/<>/_include/workflow/SubTask.h" 3 4 2935449: __null 2935449: # 47 "/<>/_include/workflow/SubTask.h" 2935449: ; 2935449: } 2935449: 2935449: virtual ~SubTask() { } 2935449: friend class ParallelTask; 2935449: }; 2935449: 2935449: class ParallelTask : public SubTask 2935449: { 2935449: public: 2935449: virtual void dispatch(); 2935449: 2935449: protected: 2935449: SubTask **subtasks; 2935449: size_t subtasks_nr; 2935449: 2935449: private: 2935449: size_t nleft; 2935449: 2935449: public: 2935449: ParallelTask(SubTask **subtasks, size_t n) 2935449: { 2935449: this->subtasks = subtasks; 2935449: this->subtasks_nr = n; 2935449: } 2935449: 2935449: virtual ~ParallelTask() { } 2935449: friend class SubTask; 2935449: }; 2935449: # 28 "/<>/_include/workflow/Workflow.h" 2 2935449: 2935449: class SeriesWork; 2935449: class ParallelWork; 2935449: 2935449: using series_callback_t = std::function; 2935449: using parallel_callback_t = std::function; 2935449: 2935449: class Workflow 2935449: { 2935449: public: 2935449: static SeriesWork * 2935449: create_series_work(SubTask *first, series_callback_t callback); 2935449: 2935449: static void 2935449: start_series_work(SubTask *first, series_callback_t callback); 2935449: 2935449: static ParallelWork * 2935449: create_parallel_work(parallel_callback_t callback); 2935449: 2935449: static ParallelWork * 2935449: create_parallel_work(SeriesWork *const all_series[], size_t n, 2935449: parallel_callback_t callback); 2935449: 2935449: static void 2935449: start_parallel_work(SeriesWork *const all_series[], size_t n, 2935449: parallel_callback_t callback); 2935449: 2935449: public: 2935449: static SeriesWork * 2935449: create_series_work(SubTask *first, SubTask *last, 2935449: series_callback_t callback); 2935449: 2935449: static void 2935449: start_series_work(SubTask *first, SubTask *last, 2935449: series_callback_t callback); 2935449: }; 2935449: 2935449: class SeriesWork 2935449: { 2935449: public: 2935449: void start() 2935449: { 2935449: 2935449: # 70 "/<>/_include/workflow/Workflow.h" 3 2935449: (static_cast ( 2935449: # 70 "/<>/_include/workflow/Workflow.h" 2935449: !this->in_parallel 2935449: # 70 "/<>/_include/workflow/Workflow.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 70 "/<>/_include/workflow/Workflow.h" 2935449: "!this->in_parallel" 2935449: # 70 "/<>/_include/workflow/Workflow.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 70 "/<>/_include/workflow/Workflow.h" 2935449: ; 2935449: this->first->dispatch(); 2935449: } 2935449: 2935449: 2935449: 2935449: void dismiss() 2935449: { 2935449: 2935449: # 78 "/<>/_include/workflow/Workflow.h" 3 2935449: (static_cast ( 2935449: # 78 "/<>/_include/workflow/Workflow.h" 2935449: !this->in_parallel 2935449: # 78 "/<>/_include/workflow/Workflow.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 78 "/<>/_include/workflow/Workflow.h" 2935449: "!this->in_parallel" 2935449: # 78 "/<>/_include/workflow/Workflow.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 78 "/<>/_include/workflow/Workflow.h" 2935449: ; 2935449: this->dismiss_recursive(); 2935449: } 2935449: 2935449: public: 2935449: void push_back(SubTask *task); 2935449: void push_front(SubTask *task); 2935449: 2935449: public: 2935449: void *get_context() const { return this->context; } 2935449: void set_context(void *context) { this->context = context; } 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: 2935449: virtual void cancel() { this->canceled = true; } 2935449: 2935449: 2935449: 2935449: bool is_canceled() const { return this->canceled; } 2935449: 2935449: 2935449: bool is_finished() const { return this->finished; } 2935449: 2935449: public: 2935449: void set_callback(series_callback_t callback) 2935449: { 2935449: this->callback = std::move(callback); 2935449: } 2935449: 2935449: public: 2935449: virtual void *get_specific(const char *key) { return 2935449: # 111 "/<>/_include/workflow/Workflow.h" 3 4 2935449: __null 2935449: # 111 "/<>/_include/workflow/Workflow.h" 2935449: ; } 2935449: 2935449: public: 2935449: 2935449: SubTask *pop(); 2935449: 2935449: SubTask *get_last_task() const { return this->last; } 2935449: 2935449: void set_last_task(SubTask *last) 2935449: { 2935449: last->set_pointer(this); 2935449: this->last = last; 2935449: } 2935449: 2935449: void unset_last_task() { this->last = 2935449: # 125 "/<>/_include/workflow/Workflow.h" 3 4 2935449: __null 2935449: # 125 "/<>/_include/workflow/Workflow.h" 2935449: ; } 2935449: 2935449: const ParallelTask *get_in_parallel() const { return this->in_parallel; } 2935449: 2935449: protected: 2935449: void set_in_parallel(const ParallelTask *task) { this->in_parallel = task; } 2935449: 2935449: void dismiss_recursive(); 2935449: 2935449: protected: 2935449: void *context; 2935449: series_callback_t callback; 2935449: 2935449: private: 2935449: SubTask *pop_task(); 2935449: void expand_queue(); 2935449: 2935449: private: 2935449: SubTask *buf[4]; 2935449: SubTask *first; 2935449: SubTask *last; 2935449: SubTask **queue; 2935449: int queue_size; 2935449: int front; 2935449: int back; 2935449: bool canceled; 2935449: bool finished; 2935449: const ParallelTask *in_parallel; 2935449: std::mutex mutex; 2935449: 2935449: protected: 2935449: SeriesWork(SubTask *first, series_callback_t&& callback); 2935449: virtual ~SeriesWork(); 2935449: friend class ParallelWork; 2935449: friend class Workflow; 2935449: }; 2935449: 2935449: static inline SeriesWork *series_of(const SubTask *task) 2935449: { 2935449: return (SeriesWork *)task->get_pointer(); 2935449: } 2935449: 2935449: static inline SeriesWork& operator *(const SubTask& task) 2935449: { 2935449: return *series_of(&task); 2935449: } 2935449: 2935449: static inline SeriesWork& operator << (SeriesWork& series, SubTask *task) 2935449: { 2935449: series.push_back(task); 2935449: return series; 2935449: } 2935449: 2935449: inline SeriesWork * 2935449: Workflow::create_series_work(SubTask *first, series_callback_t callback) 2935449: { 2935449: return new SeriesWork(first, std::move(callback)); 2935449: } 2935449: 2935449: inline void 2935449: Workflow::start_series_work(SubTask *first, series_callback_t callback) 2935449: { 2935449: new SeriesWork(first, std::move(callback)); 2935449: first->dispatch(); 2935449: } 2935449: 2935449: inline SeriesWork * 2935449: Workflow::create_series_work(SubTask *first, SubTask *last, 2935449: series_callback_t callback) 2935449: { 2935449: SeriesWork *series = new SeriesWork(first, std::move(callback)); 2935449: series->set_last_task(last); 2935449: return series; 2935449: } 2935449: 2935449: inline void 2935449: Workflow::start_series_work(SubTask *first, SubTask *last, 2935449: series_callback_t callback) 2935449: { 2935449: SeriesWork *series = new SeriesWork(first, std::move(callback)); 2935449: series->set_last_task(last); 2935449: first->dispatch(); 2935449: } 2935449: 2935449: class ParallelWork : public ParallelTask 2935449: { 2935449: public: 2935449: void start() 2935449: { 2935449: 2935449: # 214 "/<>/_include/workflow/Workflow.h" 3 2935449: (static_cast ( 2935449: # 214 "/<>/_include/workflow/Workflow.h" 2935449: !series_of(this) 2935449: # 214 "/<>/_include/workflow/Workflow.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 214 "/<>/_include/workflow/Workflow.h" 2935449: "!series_of(this)" 2935449: # 214 "/<>/_include/workflow/Workflow.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 214 "/<>/_include/workflow/Workflow.h" 2935449: ; 2935449: Workflow::start_series_work(this, nullptr); 2935449: } 2935449: 2935449: void dismiss() 2935449: { 2935449: 2935449: # 220 "/<>/_include/workflow/Workflow.h" 3 2935449: (static_cast ( 2935449: # 220 "/<>/_include/workflow/Workflow.h" 2935449: !series_of(this) 2935449: # 220 "/<>/_include/workflow/Workflow.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 220 "/<>/_include/workflow/Workflow.h" 2935449: "!series_of(this)" 2935449: # 220 "/<>/_include/workflow/Workflow.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 220 "/<>/_include/workflow/Workflow.h" 2935449: ; 2935449: delete this; 2935449: } 2935449: 2935449: public: 2935449: void add_series(SeriesWork *series); 2935449: 2935449: public: 2935449: void *get_context() const { return this->context; } 2935449: void set_context(void *context) { this->context = context; } 2935449: 2935449: public: 2935449: SeriesWork *series_at(size_t index) 2935449: { 2935449: if (index < this->subtasks_nr) 2935449: return this->all_series[index]; 2935449: else 2935449: return 2935449: # 237 "/<>/_include/workflow/Workflow.h" 3 4 2935449: __null 2935449: # 237 "/<>/_include/workflow/Workflow.h" 2935449: ; 2935449: } 2935449: 2935449: const SeriesWork *series_at(size_t index) const 2935449: { 2935449: if (index < this->subtasks_nr) 2935449: return this->all_series[index]; 2935449: else 2935449: return 2935449: # 245 "/<>/_include/workflow/Workflow.h" 3 4 2935449: __null 2935449: # 245 "/<>/_include/workflow/Workflow.h" 2935449: ; 2935449: } 2935449: 2935449: SeriesWork& operator[] (size_t index) 2935449: { 2935449: return *this->series_at(index); 2935449: } 2935449: 2935449: const SeriesWork& operator[] (size_t index) const 2935449: { 2935449: return *this->series_at(index); 2935449: } 2935449: 2935449: size_t size() const { return this->subtasks_nr; } 2935449: 2935449: public: 2935449: void set_callback(parallel_callback_t callback) 2935449: { 2935449: this->callback = std::move(callback); 2935449: } 2935449: 2935449: protected: 2935449: virtual SubTask *done(); 2935449: 2935449: protected: 2935449: void *context; 2935449: parallel_callback_t callback; 2935449: 2935449: private: 2935449: void expand_buf(); 2935449: 2935449: private: 2935449: size_t buf_size; 2935449: SeriesWork **all_series; 2935449: 2935449: protected: 2935449: ParallelWork(parallel_callback_t&& callback); 2935449: ParallelWork(SeriesWork *const all_series[], size_t n, 2935449: parallel_callback_t&& callback); 2935449: virtual ~ParallelWork(); 2935449: friend class Workflow; 2935449: }; 2935449: 2935449: inline ParallelWork * 2935449: Workflow::create_parallel_work(parallel_callback_t callback) 2935449: { 2935449: return new ParallelWork(std::move(callback)); 2935449: } 2935449: 2935449: inline ParallelWork * 2935449: Workflow::create_parallel_work(SeriesWork *const all_series[], size_t n, 2935449: parallel_callback_t callback) 2935449: { 2935449: return new ParallelWork(all_series, n, std::move(callback)); 2935449: } 2935449: 2935449: inline void 2935449: Workflow::start_parallel_work(SeriesWork *const all_series[], size_t n, 2935449: parallel_callback_t callback) 2935449: { 2935449: ParallelWork *p = new ParallelWork(all_series, n, std::move(callback)); 2935449: Workflow::start_series_work(p, nullptr); 2935449: } 2935449: # 35 "/<>/_include/workflow/WFTaskFactory.h" 2 2935449: # 1 "/<>/_include/workflow/WFTask.h" 1 2935449: # 24 "/<>/_include/workflow/WFTask.h" 2935449: # 1 "/usr/arm-linux-gnueabi/include/assert.h" 1 3 2935449: # 25 "/<>/_include/workflow/WFTask.h" 2 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 1 3 2935449: # 50 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 51 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 1 3 2935449: # 39 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_lockfree_defines.h" 1 3 2935449: # 40 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 2 3 2935449: # 50 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/c++/15/bits/version.h" 1 3 2935449: # 51 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 2 3 2935449: 2935449: 2935449: # 52 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 3 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: # 82 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 3 2935449: enum memory_order : int 2935449: { 2935449: memory_order_relaxed, 2935449: memory_order_consume, 2935449: memory_order_acquire, 2935449: memory_order_release, 2935449: memory_order_acq_rel, 2935449: memory_order_seq_cst 2935449: }; 2935449: 2935449: 2935449: 2935449: enum __memory_order_modifier 2935449: { 2935449: __memory_order_mask = 0x0ffff, 2935449: __memory_order_modifier_mask = 0xffff0000, 2935449: __memory_order_hle_acquire = 0x10000, 2935449: __memory_order_hle_release = 0x20000 2935449: }; 2935449: 2935449: 2935449: constexpr memory_order 2935449: operator|(memory_order __m, __memory_order_modifier __mod) noexcept 2935449: { 2935449: return memory_order(int(__m) | int(__mod)); 2935449: } 2935449: 2935449: constexpr memory_order 2935449: operator&(memory_order __m, __memory_order_modifier __mod) noexcept 2935449: { 2935449: return memory_order(int(__m) & int(__mod)); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: constexpr memory_order 2935449: __cmpexch_failure_order2(memory_order __m) noexcept 2935449: { 2935449: return __m == memory_order_acq_rel ? memory_order_acquire 2935449: : __m == memory_order_release ? memory_order_relaxed : __m; 2935449: } 2935449: 2935449: constexpr memory_order 2935449: __cmpexch_failure_order(memory_order __m) noexcept 2935449: { 2935449: return memory_order(__cmpexch_failure_order2(__m & __memory_order_mask) 2935449: | __memory_order_modifier(__m & __memory_order_modifier_mask)); 2935449: } 2935449: 2935449: constexpr bool 2935449: __is_valid_cmpexch_failure_order(memory_order __m) noexcept 2935449: { 2935449: return (__m & __memory_order_mask) != memory_order_release 2935449: && (__m & __memory_order_mask) != memory_order_acq_rel; 2935449: } 2935449: 2935449: 2935449: template 2935449: struct __atomic_base; 2935449: 2935449: 2935449: 2935449: inline __attribute__((__always_inline__)) void 2935449: atomic_thread_fence(memory_order __m) noexcept 2935449: { __atomic_thread_fence(int(__m)); } 2935449: 2935449: inline __attribute__((__always_inline__)) void 2935449: atomic_signal_fence(memory_order __m) noexcept 2935449: { __atomic_signal_fence(int(__m)); } 2935449: 2935449: 2935449: template 2935449: inline _Tp 2935449: kill_dependency(_Tp __y) noexcept 2935449: { 2935449: _Tp __ret(__y); 2935449: return __ret; 2935449: } 2935449: # 172 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 3 2935449: template 2935449: struct atomic; 2935449: 2935449: template 2935449: struct atomic<_Tp*>; 2935449: 2935449: 2935449: 2935449: typedef bool __atomic_flag_data_type; 2935449: # 197 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 3 2935449: extern "C" { 2935449: 2935449: struct __atomic_flag_base 2935449: { 2935449: __atomic_flag_data_type _M_i ; 2935449: }; 2935449: 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct atomic_flag : public __atomic_flag_base 2935449: { 2935449: atomic_flag() noexcept = default; 2935449: ~atomic_flag() noexcept = default; 2935449: atomic_flag(const atomic_flag&) = delete; 2935449: atomic_flag& operator=(const atomic_flag&) = delete; 2935449: atomic_flag& operator=(const atomic_flag&) volatile = delete; 2935449: 2935449: 2935449: constexpr atomic_flag(bool __i) noexcept 2935449: : __atomic_flag_base{ _S_init(__i) } 2935449: { } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: test_and_set(memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: return __atomic_test_and_set (&_M_i, int(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: return __atomic_test_and_set (&_M_i, int(__m)); 2935449: } 2935449: # 281 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 3 2935449: inline __attribute__((__always_inline__)) void 2935449: clear(memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: memory_order __b __attribute__ ((__unused__)) 2935449: = __m & __memory_order_mask; 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_consume)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acquire)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: __atomic_clear (&_M_i, int(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) void 2935449: clear(memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: memory_order __b __attribute__ ((__unused__)) 2935449: = __m & __memory_order_mask; 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_consume)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acquire)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: __atomic_clear (&_M_i, int(__m)); 2935449: } 2935449: 2935449: private: 2935449: static constexpr __atomic_flag_data_type 2935449: _S_init(bool __i) 2935449: { return __i ? 1 : 0; } 2935449: }; 2935449: # 337 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 3 2935449: template 2935449: struct __atomic_base 2935449: { 2935449: using value_type = _ITp; 2935449: using difference_type = value_type; 2935449: 2935449: private: 2935449: typedef _ITp __int_type; 2935449: 2935449: static constexpr int _S_alignment = 2935449: sizeof(_ITp) > alignof(_ITp) ? sizeof(_ITp) : alignof(_ITp); 2935449: 2935449: alignas(_S_alignment) __int_type _M_i ; 2935449: 2935449: public: 2935449: __atomic_base() noexcept = default; 2935449: ~__atomic_base() noexcept = default; 2935449: __atomic_base(const __atomic_base&) = delete; 2935449: __atomic_base& operator=(const __atomic_base&) = delete; 2935449: __atomic_base& operator=(const __atomic_base&) volatile = delete; 2935449: 2935449: constexpr __atomic_base(__int_type __i) noexcept : _M_i (__i) { } 2935449: 2935449: operator __int_type() const noexcept 2935449: { return load(); } 2935449: 2935449: operator __int_type() const volatile noexcept 2935449: { return load(); } 2935449: 2935449: __int_type 2935449: operator=(__int_type __i) noexcept 2935449: { 2935449: store(__i); 2935449: return __i; 2935449: } 2935449: 2935449: __int_type 2935449: operator=(__int_type __i) volatile noexcept 2935449: { 2935449: store(__i); 2935449: return __i; 2935449: } 2935449: 2935449: __int_type 2935449: operator++(int) noexcept 2935449: { return fetch_add(1); } 2935449: 2935449: __int_type 2935449: operator++(int) volatile noexcept 2935449: { return fetch_add(1); } 2935449: 2935449: __int_type 2935449: operator--(int) noexcept 2935449: { return fetch_sub(1); } 2935449: 2935449: __int_type 2935449: operator--(int) volatile noexcept 2935449: { return fetch_sub(1); } 2935449: 2935449: __int_type 2935449: operator++() noexcept 2935449: { return __atomic_add_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 2935449: 2935449: __int_type 2935449: operator++() volatile noexcept 2935449: { return __atomic_add_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 2935449: 2935449: __int_type 2935449: operator--() noexcept 2935449: { return __atomic_sub_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 2935449: 2935449: __int_type 2935449: operator--() volatile noexcept 2935449: { return __atomic_sub_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 2935449: 2935449: __int_type 2935449: operator+=(__int_type __i) noexcept 2935449: { return __atomic_add_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 2935449: 2935449: __int_type 2935449: operator+=(__int_type __i) volatile noexcept 2935449: { return __atomic_add_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 2935449: 2935449: __int_type 2935449: operator-=(__int_type __i) noexcept 2935449: { return __atomic_sub_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 2935449: 2935449: __int_type 2935449: operator-=(__int_type __i) volatile noexcept 2935449: { return __atomic_sub_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 2935449: 2935449: __int_type 2935449: operator&=(__int_type __i) noexcept 2935449: { return __atomic_and_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 2935449: 2935449: __int_type 2935449: operator&=(__int_type __i) volatile noexcept 2935449: { return __atomic_and_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 2935449: 2935449: __int_type 2935449: operator|=(__int_type __i) noexcept 2935449: { return __atomic_or_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 2935449: 2935449: __int_type 2935449: operator|=(__int_type __i) volatile noexcept 2935449: { return __atomic_or_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 2935449: 2935449: __int_type 2935449: operator^=(__int_type __i) noexcept 2935449: { return __atomic_xor_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 2935449: 2935449: __int_type 2935449: operator^=(__int_type __i) volatile noexcept 2935449: { return __atomic_xor_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 2935449: 2935449: bool 2935449: is_lock_free() const noexcept 2935449: { 2935449: 2935449: return __atomic_is_lock_free(sizeof(_M_i), 2935449: reinterpret_cast(-_S_alignment)); 2935449: } 2935449: 2935449: bool 2935449: is_lock_free() const volatile noexcept 2935449: { 2935449: 2935449: return __atomic_is_lock_free(sizeof(_M_i), 2935449: reinterpret_cast(-_S_alignment)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) void 2935449: store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: memory_order __b __attribute__ ((__unused__)) 2935449: = __m & __memory_order_mask; 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acquire)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_consume)) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: __atomic_store_n(&_M_i, __i, int(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) void 2935449: store(__int_type __i, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: memory_order __b __attribute__ ((__unused__)) 2935449: = __m & __memory_order_mask; 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acquire)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_consume)) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: __atomic_store_n(&_M_i, __i, int(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: load(memory_order __m = memory_order_seq_cst) const noexcept 2935449: { 2935449: memory_order __b __attribute__ ((__unused__)) 2935449: = __m & __memory_order_mask; 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_release)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: return __atomic_load_n(&_M_i, int(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 2935449: { 2935449: memory_order __b __attribute__ ((__unused__)) 2935449: = __m & __memory_order_mask; 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_release)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: return __atomic_load_n(&_M_i, int(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: exchange(__int_type __i, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: return __atomic_exchange_n(&_M_i, __i, int(__m)); 2935449: } 2935449: 2935449: 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: exchange(__int_type __i, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: return __atomic_exchange_n(&_M_i, __i, int(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: compare_exchange_weak(__int_type& __i1, __int_type __i2, 2935449: memory_order __m1, memory_order __m2) noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, 2935449: int(__m1), int(__m2)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: compare_exchange_weak(__int_type& __i1, __int_type __i2, 2935449: memory_order __m1, 2935449: memory_order __m2) volatile noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, 2935449: int(__m1), int(__m2)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: compare_exchange_weak(__int_type& __i1, __int_type __i2, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: return compare_exchange_weak(__i1, __i2, __m, 2935449: __cmpexch_failure_order(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: compare_exchange_weak(__int_type& __i1, __int_type __i2, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: return compare_exchange_weak(__i1, __i2, __m, 2935449: __cmpexch_failure_order(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: compare_exchange_strong(__int_type& __i1, __int_type __i2, 2935449: memory_order __m1, memory_order __m2) noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, 2935449: int(__m1), int(__m2)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: compare_exchange_strong(__int_type& __i1, __int_type __i2, 2935449: memory_order __m1, 2935449: memory_order __m2) volatile noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, 2935449: int(__m1), int(__m2)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: compare_exchange_strong(__int_type& __i1, __int_type __i2, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: return compare_exchange_strong(__i1, __i2, __m, 2935449: __cmpexch_failure_order(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: compare_exchange_strong(__int_type& __i1, __int_type __i2, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: return compare_exchange_strong(__i1, __i2, __m, 2935449: __cmpexch_failure_order(__m)); 2935449: } 2935449: # 628 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 3 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: fetch_add(__int_type __i, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { return __atomic_fetch_add(&_M_i, __i, int(__m)); } 2935449: 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: fetch_add(__int_type __i, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return __atomic_fetch_add(&_M_i, __i, int(__m)); } 2935449: 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: fetch_sub(__int_type __i, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { return __atomic_fetch_sub(&_M_i, __i, int(__m)); } 2935449: 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: fetch_sub(__int_type __i, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return __atomic_fetch_sub(&_M_i, __i, int(__m)); } 2935449: 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: fetch_and(__int_type __i, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { return __atomic_fetch_and(&_M_i, __i, int(__m)); } 2935449: 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: fetch_and(__int_type __i, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return __atomic_fetch_and(&_M_i, __i, int(__m)); } 2935449: 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: fetch_or(__int_type __i, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { return __atomic_fetch_or(&_M_i, __i, int(__m)); } 2935449: 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: fetch_or(__int_type __i, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return __atomic_fetch_or(&_M_i, __i, int(__m)); } 2935449: 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: fetch_xor(__int_type __i, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { return __atomic_fetch_xor(&_M_i, __i, int(__m)); } 2935449: 2935449: inline __attribute__((__always_inline__)) __int_type 2935449: fetch_xor(__int_type __i, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return __atomic_fetch_xor(&_M_i, __i, int(__m)); } 2935449: }; 2935449: 2935449: 2935449: 2935449: template 2935449: struct __atomic_base<_PTp*> 2935449: { 2935449: private: 2935449: typedef _PTp* __pointer_type; 2935449: 2935449: __pointer_type _M_p ; 2935449: 2935449: static constexpr ptrdiff_t 2935449: _S_type_size(ptrdiff_t __d) 2935449: { return __d * sizeof(_PTp); } 2935449: 2935449: public: 2935449: __atomic_base() noexcept = default; 2935449: ~__atomic_base() noexcept = default; 2935449: __atomic_base(const __atomic_base&) = delete; 2935449: __atomic_base& operator=(const __atomic_base&) = delete; 2935449: __atomic_base& operator=(const __atomic_base&) volatile = delete; 2935449: 2935449: 2935449: constexpr __atomic_base(__pointer_type __p) noexcept : _M_p (__p) { } 2935449: 2935449: operator __pointer_type() const noexcept 2935449: { return load(); } 2935449: 2935449: operator __pointer_type() const volatile noexcept 2935449: { return load(); } 2935449: 2935449: __pointer_type 2935449: operator=(__pointer_type __p) noexcept 2935449: { 2935449: store(__p); 2935449: return __p; 2935449: } 2935449: 2935449: __pointer_type 2935449: operator=(__pointer_type __p) volatile noexcept 2935449: { 2935449: store(__p); 2935449: return __p; 2935449: } 2935449: 2935449: __pointer_type 2935449: operator++(int) noexcept 2935449: { return fetch_add(1); } 2935449: 2935449: __pointer_type 2935449: operator++(int) volatile noexcept 2935449: { return fetch_add(1); } 2935449: 2935449: __pointer_type 2935449: operator--(int) noexcept 2935449: { return fetch_sub(1); } 2935449: 2935449: __pointer_type 2935449: operator--(int) volatile noexcept 2935449: { return fetch_sub(1); } 2935449: 2935449: __pointer_type 2935449: operator++() noexcept 2935449: { return __atomic_add_fetch(&_M_p, _S_type_size(1), 2935449: int(memory_order_seq_cst)); } 2935449: 2935449: __pointer_type 2935449: operator++() volatile noexcept 2935449: { return __atomic_add_fetch(&_M_p, _S_type_size(1), 2935449: int(memory_order_seq_cst)); } 2935449: 2935449: __pointer_type 2935449: operator--() noexcept 2935449: { return __atomic_sub_fetch(&_M_p, _S_type_size(1), 2935449: int(memory_order_seq_cst)); } 2935449: 2935449: __pointer_type 2935449: operator--() volatile noexcept 2935449: { return __atomic_sub_fetch(&_M_p, _S_type_size(1), 2935449: int(memory_order_seq_cst)); } 2935449: 2935449: __pointer_type 2935449: operator+=(ptrdiff_t __d) noexcept 2935449: { return __atomic_add_fetch(&_M_p, _S_type_size(__d), 2935449: int(memory_order_seq_cst)); } 2935449: 2935449: __pointer_type 2935449: operator+=(ptrdiff_t __d) volatile noexcept 2935449: { return __atomic_add_fetch(&_M_p, _S_type_size(__d), 2935449: int(memory_order_seq_cst)); } 2935449: 2935449: __pointer_type 2935449: operator-=(ptrdiff_t __d) noexcept 2935449: { return __atomic_sub_fetch(&_M_p, _S_type_size(__d), 2935449: int(memory_order_seq_cst)); } 2935449: 2935449: __pointer_type 2935449: operator-=(ptrdiff_t __d) volatile noexcept 2935449: { return __atomic_sub_fetch(&_M_p, _S_type_size(__d), 2935449: int(memory_order_seq_cst)); } 2935449: 2935449: bool 2935449: is_lock_free() const noexcept 2935449: { 2935449: 2935449: return __atomic_is_lock_free(sizeof(_M_p), 2935449: reinterpret_cast(-__alignof(_M_p))); 2935449: } 2935449: 2935449: bool 2935449: is_lock_free() const volatile noexcept 2935449: { 2935449: 2935449: return __atomic_is_lock_free(sizeof(_M_p), 2935449: reinterpret_cast(-__alignof(_M_p))); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) void 2935449: store(__pointer_type __p, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: memory_order __b __attribute__ ((__unused__)) 2935449: = __m & __memory_order_mask; 2935449: 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acquire)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_consume)) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: __atomic_store_n(&_M_p, __p, int(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) void 2935449: store(__pointer_type __p, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: memory_order __b __attribute__ ((__unused__)) 2935449: = __m & __memory_order_mask; 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acquire)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_consume)) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: __atomic_store_n(&_M_p, __p, int(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) __pointer_type 2935449: load(memory_order __m = memory_order_seq_cst) const noexcept 2935449: { 2935449: memory_order __b __attribute__ ((__unused__)) 2935449: = __m & __memory_order_mask; 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_release)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: return __atomic_load_n(&_M_p, int(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) __pointer_type 2935449: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 2935449: { 2935449: memory_order __b __attribute__ ((__unused__)) 2935449: = __m & __memory_order_mask; 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_release)) std::__glibcxx_assert_fail(); } while (false); 2935449: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: return __atomic_load_n(&_M_p, int(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) __pointer_type 2935449: exchange(__pointer_type __p, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: return __atomic_exchange_n(&_M_p, __p, int(__m)); 2935449: } 2935449: 2935449: 2935449: inline __attribute__((__always_inline__)) __pointer_type 2935449: exchange(__pointer_type __p, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: return __atomic_exchange_n(&_M_p, __p, int(__m)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 2935449: memory_order __m1, 2935449: memory_order __m2) noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 1, 2935449: int(__m1), int(__m2)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 2935449: memory_order __m1, 2935449: memory_order __m2) volatile noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 1, 2935449: int(__m1), int(__m2)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 2935449: memory_order __m1, 2935449: memory_order __m2) noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, 2935449: int(__m1), int(__m2)); 2935449: } 2935449: 2935449: inline __attribute__((__always_inline__)) bool 2935449: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 2935449: memory_order __m1, 2935449: memory_order __m2) volatile noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, 2935449: int(__m1), int(__m2)); 2935449: } 2935449: # 928 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 3 2935449: inline __attribute__((__always_inline__)) __pointer_type 2935449: fetch_add(ptrdiff_t __d, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { return __atomic_fetch_add(&_M_p, _S_type_size(__d), int(__m)); } 2935449: 2935449: inline __attribute__((__always_inline__)) __pointer_type 2935449: fetch_add(ptrdiff_t __d, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return __atomic_fetch_add(&_M_p, _S_type_size(__d), int(__m)); } 2935449: 2935449: inline __attribute__((__always_inline__)) __pointer_type 2935449: fetch_sub(ptrdiff_t __d, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { return __atomic_fetch_sub(&_M_p, _S_type_size(__d), int(__m)); } 2935449: 2935449: inline __attribute__((__always_inline__)) __pointer_type 2935449: fetch_sub(ptrdiff_t __d, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return __atomic_fetch_sub(&_M_p, _S_type_size(__d), int(__m)); } 2935449: }; 2935449: 2935449: namespace __atomic_impl 2935449: { 2935449: 2935449: 2935449: template 2935449: constexpr bool 2935449: __maybe_has_padding() 2935449: { 2935449: 2935449: 2935449: 2935449: return !__has_unique_object_representations(_Tp) 2935449: && !is_same<_Tp, float>::value && !is_same<_Tp, double>::value; 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: template 2935449: inline __attribute__((__always_inline__)) _Tp* 2935449: __clear_padding(_Tp& __val) noexcept 2935449: { 2935449: auto* __ptr = std::__addressof(__val); 2935449: 2935449: if (__atomic_impl::__maybe_has_padding<_Tp>()) 2935449: __builtin_clear_padding(__ptr); 2935449: 2935449: return __ptr; 2935449: } 2935449: 2935449: 2935449: template 2935449: using _Val = typename remove_volatile<_Tp>::type; 2935449: 2935449: #pragma GCC diagnostic push 2935449: #pragma GCC diagnostic ignored "-Wc++17-extensions" 2935449: 2935449: template 2935449: inline __attribute__((__always_inline__)) bool 2935449: __compare_exchange(_Tp& __val, _Val<_Tp>& __e, _Val<_Tp>& __i, 2935449: bool __is_weak, 2935449: memory_order __s, memory_order __f) noexcept 2935449: { 2935449: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__f))) std::__glibcxx_assert_fail(); } while (false); 2935449: 2935449: using _Vp = _Val<_Tp>; 2935449: _Tp* const __pval = std::__addressof(__val); 2935449: 2935449: if constexpr (!__atomic_impl::__maybe_has_padding<_Vp>()) 2935449: { 2935449: return __atomic_compare_exchange(__pval, std::__addressof(__e), 2935449: std::__addressof(__i), __is_weak, 2935449: int(__s), int(__f)); 2935449: } 2935449: else if constexpr (!_AtomicRef) 2935449: { 2935449: 2935449: _Vp* const __pi = __atomic_impl::__clear_padding(__i); 2935449: 2935449: _Vp __exp = __e; 2935449: 2935449: _Vp* const __pexp = __atomic_impl::__clear_padding(__exp); 2935449: 2935449: 2935449: 2935449: if (__atomic_compare_exchange(__pval, __pexp, __pi, 2935449: __is_weak, int(__s), int(__f))) 2935449: return true; 2935449: 2935449: __builtin_memcpy(std::__addressof(__e), __pexp, sizeof(_Vp)); 2935449: return false; 2935449: } 2935449: else 2935449: { 2935449: 2935449: _Vp* const __pi = __atomic_impl::__clear_padding(__i); 2935449: 2935449: 2935449: _Vp __exp = __e; 2935449: 2935449: 2935449: _Vp* const __pexp = __atomic_impl::__clear_padding(__exp); 2935449: # 1042 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 3 2935449: while (true) 2935449: { 2935449: 2935449: _Vp __orig = __exp; 2935449: 2935449: if (__atomic_compare_exchange(__pval, __pexp, __pi, 2935449: __is_weak, int(__s), int(__f))) 2935449: return true; 2935449: 2935449: 2935449: _Vp __curr = __exp; 2935449: 2935449: 2935449: if (__builtin_memcmp(__atomic_impl::__clear_padding(__orig), 2935449: __atomic_impl::__clear_padding(__curr), 2935449: sizeof(_Vp))) 2935449: { 2935449: 2935449: __builtin_memcpy(std::__addressof(__e), __pexp, 2935449: sizeof(_Vp)); 2935449: return false; 2935449: } 2935449: } 2935449: } 2935449: } 2935449: #pragma GCC diagnostic pop 2935449: } 2935449: # 2105 "/usr/arm-linux-gnueabi/include/c++/15/bits/atomic_base.h" 3 2935449: 2935449: } 2935449: # 53 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 2 3 2935449: 2935449: 2935449: 2935449: namespace std __attribute__ ((__visibility__ ("default"))) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct atomic; 2935449: 2935449: 2935449: 2935449: template<> 2935449: struct atomic 2935449: { 2935449: using value_type = bool; 2935449: 2935449: private: 2935449: __atomic_base _M_base; 2935449: 2935449: public: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(bool __i) noexcept : _M_base(__i) { } 2935449: 2935449: bool 2935449: operator=(bool __i) noexcept 2935449: { return _M_base.operator=(__i); } 2935449: 2935449: bool 2935449: operator=(bool __i) volatile noexcept 2935449: { return _M_base.operator=(__i); } 2935449: 2935449: operator bool() const noexcept 2935449: { return _M_base.load(); } 2935449: 2935449: operator bool() const volatile noexcept 2935449: { return _M_base.load(); } 2935449: 2935449: bool 2935449: is_lock_free() const noexcept { return _M_base.is_lock_free(); } 2935449: 2935449: bool 2935449: is_lock_free() const volatile noexcept { return _M_base.is_lock_free(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: store(bool __i, memory_order __m = memory_order_seq_cst) noexcept 2935449: { _M_base.store(__i, __m); } 2935449: 2935449: void 2935449: store(bool __i, memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { _M_base.store(__i, __m); } 2935449: 2935449: bool 2935449: load(memory_order __m = memory_order_seq_cst) const noexcept 2935449: { return _M_base.load(__m); } 2935449: 2935449: bool 2935449: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 2935449: { return _M_base.load(__m); } 2935449: 2935449: bool 2935449: exchange(bool __i, memory_order __m = memory_order_seq_cst) noexcept 2935449: { return _M_base.exchange(__i, __m); } 2935449: 2935449: bool 2935449: exchange(bool __i, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return _M_base.exchange(__i, __m); } 2935449: 2935449: bool 2935449: compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1, 2935449: memory_order __m2) noexcept 2935449: { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); } 2935449: 2935449: bool 2935449: compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1, 2935449: memory_order __m2) volatile noexcept 2935449: { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); } 2935449: 2935449: bool 2935449: compare_exchange_weak(bool& __i1, bool __i2, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { return _M_base.compare_exchange_weak(__i1, __i2, __m); } 2935449: 2935449: bool 2935449: compare_exchange_weak(bool& __i1, bool __i2, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return _M_base.compare_exchange_weak(__i1, __i2, __m); } 2935449: 2935449: bool 2935449: compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1, 2935449: memory_order __m2) noexcept 2935449: { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); } 2935449: 2935449: bool 2935449: compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1, 2935449: memory_order __m2) volatile noexcept 2935449: { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); } 2935449: 2935449: bool 2935449: compare_exchange_strong(bool& __i1, bool __i2, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { return _M_base.compare_exchange_strong(__i1, __i2, __m); } 2935449: 2935449: bool 2935449: compare_exchange_strong(bool& __i1, bool __i2, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return _M_base.compare_exchange_strong(__i1, __i2, __m); } 2935449: # 191 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 3 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: struct atomic 2935449: { 2935449: using value_type = _Tp; 2935449: 2935449: private: 2935449: 2935449: static constexpr int _S_min_alignment 2935449: = (sizeof(_Tp) & (sizeof(_Tp) - 1)) || sizeof(_Tp) > 16 2935449: ? 0 : sizeof(_Tp); 2935449: 2935449: static constexpr int _S_alignment 2935449: = _S_min_alignment > alignof(_Tp) ? _S_min_alignment : alignof(_Tp); 2935449: 2935449: alignas(_S_alignment) _Tp _M_i; 2935449: 2935449: static_assert(__is_trivially_copyable(_Tp), 2935449: "std::atomic requires a trivially copyable type"); 2935449: 2935449: static_assert(sizeof(_Tp) > 0, 2935449: "Incomplete or zero-sized types are not supported"); 2935449: # 227 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 3 2935449: public: 2935449: # 236 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 3 2935449: atomic() = default; 2935449: 2935449: 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(_Tp __i) noexcept : _M_i(__i) 2935449: { 2935449: 2935449: 2935449: 2935449: 2935449: } 2935449: 2935449: operator _Tp() const noexcept 2935449: { return load(); } 2935449: 2935449: operator _Tp() const volatile noexcept 2935449: { return load(); } 2935449: 2935449: _Tp 2935449: operator=(_Tp __i) noexcept 2935449: { store(__i); return __i; } 2935449: 2935449: _Tp 2935449: operator=(_Tp __i) volatile noexcept 2935449: { store(__i); return __i; } 2935449: 2935449: bool 2935449: is_lock_free() const noexcept 2935449: { 2935449: 2935449: return __atomic_is_lock_free(sizeof(_M_i), 2935449: reinterpret_cast(-_S_alignment)); 2935449: } 2935449: 2935449: bool 2935449: is_lock_free() const volatile noexcept 2935449: { 2935449: 2935449: return __atomic_is_lock_free(sizeof(_M_i), 2935449: reinterpret_cast(-_S_alignment)); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: store(_Tp __i, memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: __atomic_store(std::__addressof(_M_i), 2935449: __atomic_impl::__clear_padding(__i), 2935449: int(__m)); 2935449: } 2935449: 2935449: void 2935449: store(_Tp __i, memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: __atomic_store(std::__addressof(_M_i), 2935449: __atomic_impl::__clear_padding(__i), 2935449: int(__m)); 2935449: } 2935449: 2935449: _Tp 2935449: load(memory_order __m = memory_order_seq_cst) const noexcept 2935449: { 2935449: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 2935449: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 2935449: __atomic_load(std::__addressof(_M_i), __ptr, int(__m)); 2935449: return *__ptr; 2935449: } 2935449: 2935449: _Tp 2935449: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 2935449: { 2935449: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 2935449: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 2935449: __atomic_load(std::__addressof(_M_i), __ptr, int(__m)); 2935449: return *__ptr; 2935449: } 2935449: 2935449: _Tp 2935449: exchange(_Tp __i, memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 2935449: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 2935449: __atomic_exchange(std::__addressof(_M_i), 2935449: __atomic_impl::__clear_padding(__i), 2935449: __ptr, int(__m)); 2935449: return *__ptr; 2935449: } 2935449: 2935449: _Tp 2935449: exchange(_Tp __i, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 2935449: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 2935449: __atomic_exchange(std::__addressof(_M_i), 2935449: __atomic_impl::__clear_padding(__i), 2935449: __ptr, int(__m)); 2935449: return *__ptr; 2935449: } 2935449: 2935449: bool 2935449: compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 2935449: memory_order __f) noexcept 2935449: { 2935449: return __atomic_impl::__compare_exchange(_M_i, __e, __i, true, 2935449: __s, __f); 2935449: } 2935449: 2935449: bool 2935449: compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 2935449: memory_order __f) volatile noexcept 2935449: { 2935449: return __atomic_impl::__compare_exchange(_M_i, __e, __i, true, 2935449: __s, __f); 2935449: } 2935449: 2935449: bool 2935449: compare_exchange_weak(_Tp& __e, _Tp __i, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { return compare_exchange_weak(__e, __i, __m, 2935449: __cmpexch_failure_order(__m)); } 2935449: 2935449: bool 2935449: compare_exchange_weak(_Tp& __e, _Tp __i, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return compare_exchange_weak(__e, __i, __m, 2935449: __cmpexch_failure_order(__m)); } 2935449: 2935449: bool 2935449: compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 2935449: memory_order __f) noexcept 2935449: { 2935449: return __atomic_impl::__compare_exchange(_M_i, __e, __i, false, 2935449: __s, __f); 2935449: } 2935449: 2935449: bool 2935449: compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 2935449: memory_order __f) volatile noexcept 2935449: { 2935449: return __atomic_impl::__compare_exchange(_M_i, __e, __i, false, 2935449: __s, __f); 2935449: } 2935449: 2935449: bool 2935449: compare_exchange_strong(_Tp& __e, _Tp __i, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { return compare_exchange_strong(__e, __i, __m, 2935449: __cmpexch_failure_order(__m)); } 2935449: 2935449: bool 2935449: compare_exchange_strong(_Tp& __e, _Tp __i, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return compare_exchange_strong(__e, __i, __m, 2935449: __cmpexch_failure_order(__m)); } 2935449: # 419 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 3 2935449: }; 2935449: 2935449: 2935449: template 2935449: struct atomic<_Tp*> 2935449: { 2935449: using value_type = _Tp*; 2935449: using difference_type = ptrdiff_t; 2935449: 2935449: typedef _Tp* __pointer_type; 2935449: typedef __atomic_base<_Tp*> __base_type; 2935449: __base_type _M_b; 2935449: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__pointer_type __p) noexcept : _M_b(__p) { } 2935449: 2935449: operator __pointer_type() const noexcept 2935449: { return __pointer_type(_M_b); } 2935449: 2935449: operator __pointer_type() const volatile noexcept 2935449: { return __pointer_type(_M_b); } 2935449: 2935449: __pointer_type 2935449: operator=(__pointer_type __p) noexcept 2935449: { return _M_b.operator=(__p); } 2935449: 2935449: __pointer_type 2935449: operator=(__pointer_type __p) volatile noexcept 2935449: { return _M_b.operator=(__p); } 2935449: 2935449: __pointer_type 2935449: operator++(int) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return _M_b++; 2935449: } 2935449: 2935449: __pointer_type 2935449: operator++(int) volatile noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return _M_b++; 2935449: } 2935449: 2935449: __pointer_type 2935449: operator--(int) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return _M_b--; 2935449: } 2935449: 2935449: __pointer_type 2935449: operator--(int) volatile noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return _M_b--; 2935449: } 2935449: 2935449: __pointer_type 2935449: operator++() noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return ++_M_b; 2935449: } 2935449: 2935449: __pointer_type 2935449: operator++() volatile noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return ++_M_b; 2935449: } 2935449: 2935449: __pointer_type 2935449: operator--() noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return --_M_b; 2935449: } 2935449: 2935449: __pointer_type 2935449: operator--() volatile noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return --_M_b; 2935449: } 2935449: 2935449: __pointer_type 2935449: operator+=(ptrdiff_t __d) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return _M_b.operator+=(__d); 2935449: } 2935449: 2935449: __pointer_type 2935449: operator+=(ptrdiff_t __d) volatile noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return _M_b.operator+=(__d); 2935449: } 2935449: 2935449: __pointer_type 2935449: operator-=(ptrdiff_t __d) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return _M_b.operator-=(__d); 2935449: } 2935449: 2935449: __pointer_type 2935449: operator-=(ptrdiff_t __d) volatile noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return _M_b.operator-=(__d); 2935449: } 2935449: 2935449: bool 2935449: is_lock_free() const noexcept 2935449: { return _M_b.is_lock_free(); } 2935449: 2935449: bool 2935449: is_lock_free() const volatile noexcept 2935449: { return _M_b.is_lock_free(); } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: void 2935449: store(__pointer_type __p, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { return _M_b.store(__p, __m); } 2935449: 2935449: void 2935449: store(__pointer_type __p, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return _M_b.store(__p, __m); } 2935449: 2935449: __pointer_type 2935449: load(memory_order __m = memory_order_seq_cst) const noexcept 2935449: { return _M_b.load(__m); } 2935449: 2935449: __pointer_type 2935449: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 2935449: { return _M_b.load(__m); } 2935449: 2935449: __pointer_type 2935449: exchange(__pointer_type __p, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { return _M_b.exchange(__p, __m); } 2935449: 2935449: __pointer_type 2935449: exchange(__pointer_type __p, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { return _M_b.exchange(__p, __m); } 2935449: 2935449: bool 2935449: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 2935449: memory_order __m1, memory_order __m2) noexcept 2935449: { return _M_b.compare_exchange_weak(__p1, __p2, __m1, __m2); } 2935449: 2935449: bool 2935449: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 2935449: memory_order __m1, 2935449: memory_order __m2) volatile noexcept 2935449: { return _M_b.compare_exchange_weak(__p1, __p2, __m1, __m2); } 2935449: 2935449: bool 2935449: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: return compare_exchange_weak(__p1, __p2, __m, 2935449: __cmpexch_failure_order(__m)); 2935449: } 2935449: 2935449: bool 2935449: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: return compare_exchange_weak(__p1, __p2, __m, 2935449: __cmpexch_failure_order(__m)); 2935449: } 2935449: 2935449: bool 2935449: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 2935449: memory_order __m1, memory_order __m2) noexcept 2935449: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 2935449: 2935449: bool 2935449: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 2935449: memory_order __m1, 2935449: memory_order __m2) volatile noexcept 2935449: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 2935449: 2935449: bool 2935449: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: return _M_b.compare_exchange_strong(__p1, __p2, __m, 2935449: __cmpexch_failure_order(__m)); 2935449: } 2935449: 2935449: bool 2935449: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: return _M_b.compare_exchange_strong(__p1, __p2, __m, 2935449: __cmpexch_failure_order(__m)); 2935449: } 2935449: # 673 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 3 2935449: __pointer_type 2935449: fetch_add(ptrdiff_t __d, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return _M_b.fetch_add(__d, __m); 2935449: } 2935449: 2935449: __pointer_type 2935449: fetch_add(ptrdiff_t __d, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return _M_b.fetch_add(__d, __m); 2935449: } 2935449: 2935449: __pointer_type 2935449: fetch_sub(ptrdiff_t __d, 2935449: memory_order __m = memory_order_seq_cst) noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return _M_b.fetch_sub(__d, __m); 2935449: } 2935449: 2935449: __pointer_type 2935449: fetch_sub(ptrdiff_t __d, 2935449: memory_order __m = memory_order_seq_cst) volatile noexcept 2935449: { 2935449: 2935449: 2935449: 2935449: return _M_b.fetch_sub(__d, __m); 2935449: } 2935449: }; 2935449: 2935449: 2935449: 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef char __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef signed char __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept= default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef unsigned char __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept= default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef short __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef unsigned short __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef int __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef unsigned int __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef long __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef unsigned long __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef long long __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef unsigned long long __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef wchar_t __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: # 1018 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 3 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef char16_t __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: template<> 2935449: struct atomic : __atomic_base 2935449: { 2935449: typedef char32_t __integral_type; 2935449: typedef __atomic_base __base_type; 2935449: 2935449: atomic() noexcept = default; 2935449: ~atomic() noexcept = default; 2935449: atomic(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) = delete; 2935449: atomic& operator=(const atomic&) volatile = delete; 2935449: 2935449: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 2935449: 2935449: using __base_type::operator __integral_type; 2935449: using __base_type::operator=; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: typedef atomic atomic_bool; 2935449: 2935449: 2935449: typedef atomic atomic_char; 2935449: 2935449: 2935449: typedef atomic atomic_schar; 2935449: 2935449: 2935449: typedef atomic atomic_uchar; 2935449: 2935449: 2935449: typedef atomic atomic_short; 2935449: 2935449: 2935449: typedef atomic atomic_ushort; 2935449: 2935449: 2935449: typedef atomic atomic_int; 2935449: 2935449: 2935449: typedef atomic atomic_uint; 2935449: 2935449: 2935449: typedef atomic atomic_long; 2935449: 2935449: 2935449: typedef atomic atomic_ulong; 2935449: 2935449: 2935449: typedef atomic atomic_llong; 2935449: 2935449: 2935449: typedef atomic atomic_ullong; 2935449: 2935449: 2935449: typedef atomic atomic_wchar_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef atomic atomic_char16_t; 2935449: 2935449: 2935449: typedef atomic atomic_char32_t; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: typedef atomic atomic_int8_t; 2935449: 2935449: 2935449: typedef atomic atomic_uint8_t; 2935449: 2935449: 2935449: typedef atomic atomic_int16_t; 2935449: 2935449: 2935449: typedef atomic atomic_uint16_t; 2935449: 2935449: 2935449: typedef atomic atomic_int32_t; 2935449: 2935449: 2935449: typedef atomic atomic_uint32_t; 2935449: 2935449: 2935449: typedef atomic atomic_int64_t; 2935449: 2935449: 2935449: typedef atomic atomic_uint64_t; 2935449: 2935449: 2935449: 2935449: typedef atomic atomic_int_least8_t; 2935449: 2935449: 2935449: typedef atomic atomic_uint_least8_t; 2935449: 2935449: 2935449: typedef atomic atomic_int_least16_t; 2935449: 2935449: 2935449: typedef atomic atomic_uint_least16_t; 2935449: 2935449: 2935449: typedef atomic atomic_int_least32_t; 2935449: 2935449: 2935449: typedef atomic atomic_uint_least32_t; 2935449: 2935449: 2935449: typedef atomic atomic_int_least64_t; 2935449: 2935449: 2935449: typedef atomic atomic_uint_least64_t; 2935449: 2935449: 2935449: 2935449: typedef atomic atomic_int_fast8_t; 2935449: 2935449: 2935449: typedef atomic atomic_uint_fast8_t; 2935449: 2935449: 2935449: typedef atomic atomic_int_fast16_t; 2935449: 2935449: 2935449: typedef atomic atomic_uint_fast16_t; 2935449: 2935449: 2935449: typedef atomic atomic_int_fast32_t; 2935449: 2935449: 2935449: typedef atomic atomic_uint_fast32_t; 2935449: 2935449: 2935449: typedef atomic atomic_int_fast64_t; 2935449: 2935449: 2935449: typedef atomic atomic_uint_fast64_t; 2935449: 2935449: 2935449: 2935449: typedef atomic atomic_intptr_t; 2935449: 2935449: 2935449: typedef atomic atomic_uintptr_t; 2935449: 2935449: 2935449: typedef atomic atomic_size_t; 2935449: 2935449: 2935449: typedef atomic atomic_ptrdiff_t; 2935449: 2935449: 2935449: typedef atomic atomic_intmax_t; 2935449: 2935449: 2935449: typedef atomic atomic_uintmax_t; 2935449: 2935449: 2935449: inline bool 2935449: atomic_flag_test_and_set_explicit(atomic_flag* __a, 2935449: memory_order __m) noexcept 2935449: { return __a->test_and_set(__m); } 2935449: 2935449: inline bool 2935449: atomic_flag_test_and_set_explicit(volatile atomic_flag* __a, 2935449: memory_order __m) noexcept 2935449: { return __a->test_and_set(__m); } 2935449: # 1244 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 3 2935449: inline void 2935449: atomic_flag_clear_explicit(atomic_flag* __a, memory_order __m) noexcept 2935449: { __a->clear(__m); } 2935449: 2935449: inline void 2935449: atomic_flag_clear_explicit(volatile atomic_flag* __a, 2935449: memory_order __m) noexcept 2935449: { __a->clear(__m); } 2935449: 2935449: inline bool 2935449: atomic_flag_test_and_set(atomic_flag* __a) noexcept 2935449: { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } 2935449: 2935449: inline bool 2935449: atomic_flag_test_and_set(volatile atomic_flag* __a) noexcept 2935449: { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } 2935449: 2935449: inline void 2935449: atomic_flag_clear(atomic_flag* __a) noexcept 2935449: { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } 2935449: 2935449: inline void 2935449: atomic_flag_clear(volatile atomic_flag* __a) noexcept 2935449: { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } 2935449: # 1291 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 3 2935449: template 2935449: using __atomic_val_t = __type_identity_t<_Tp>; 2935449: template 2935449: using __atomic_diff_t = typename atomic<_Tp>::difference_type; 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: inline bool 2935449: atomic_is_lock_free(const atomic<_ITp>* __a) noexcept 2935449: { return __a->is_lock_free(); } 2935449: 2935449: template 2935449: inline bool 2935449: atomic_is_lock_free(const volatile atomic<_ITp>* __a) noexcept 2935449: { return __a->is_lock_free(); } 2935449: 2935449: template 2935449: inline void 2935449: atomic_init(atomic<_ITp>* __a, __atomic_val_t<_ITp> __i) noexcept 2935449: { __a->store(__i, memory_order_relaxed); } 2935449: 2935449: template 2935449: inline void 2935449: atomic_init(volatile atomic<_ITp>* __a, __atomic_val_t<_ITp> __i) noexcept 2935449: { __a->store(__i, memory_order_relaxed); } 2935449: 2935449: template 2935449: inline void 2935449: atomic_store_explicit(atomic<_ITp>* __a, __atomic_val_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { __a->store(__i, __m); } 2935449: 2935449: template 2935449: inline void 2935449: atomic_store_explicit(volatile atomic<_ITp>* __a, __atomic_val_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { __a->store(__i, __m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_load_explicit(const atomic<_ITp>* __a, memory_order __m) noexcept 2935449: { return __a->load(__m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_load_explicit(const volatile atomic<_ITp>* __a, 2935449: memory_order __m) noexcept 2935449: { return __a->load(__m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_exchange_explicit(atomic<_ITp>* __a, __atomic_val_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { return __a->exchange(__i, __m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_exchange_explicit(volatile atomic<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { return __a->exchange(__i, __m); } 2935449: 2935449: template 2935449: inline bool 2935449: atomic_compare_exchange_weak_explicit(atomic<_ITp>* __a, 2935449: __atomic_val_t<_ITp>* __i1, 2935449: __atomic_val_t<_ITp> __i2, 2935449: memory_order __m1, 2935449: memory_order __m2) noexcept 2935449: { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } 2935449: 2935449: template 2935449: inline bool 2935449: atomic_compare_exchange_weak_explicit(volatile atomic<_ITp>* __a, 2935449: __atomic_val_t<_ITp>* __i1, 2935449: __atomic_val_t<_ITp> __i2, 2935449: memory_order __m1, 2935449: memory_order __m2) noexcept 2935449: { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } 2935449: 2935449: template 2935449: inline bool 2935449: atomic_compare_exchange_strong_explicit(atomic<_ITp>* __a, 2935449: __atomic_val_t<_ITp>* __i1, 2935449: __atomic_val_t<_ITp> __i2, 2935449: memory_order __m1, 2935449: memory_order __m2) noexcept 2935449: { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); } 2935449: 2935449: template 2935449: inline bool 2935449: atomic_compare_exchange_strong_explicit(volatile atomic<_ITp>* __a, 2935449: __atomic_val_t<_ITp>* __i1, 2935449: __atomic_val_t<_ITp> __i2, 2935449: memory_order __m1, 2935449: memory_order __m2) noexcept 2935449: { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); } 2935449: 2935449: 2935449: template 2935449: inline void 2935449: atomic_store(atomic<_ITp>* __a, __atomic_val_t<_ITp> __i) noexcept 2935449: { atomic_store_explicit(__a, __i, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline void 2935449: atomic_store(volatile atomic<_ITp>* __a, __atomic_val_t<_ITp> __i) noexcept 2935449: { atomic_store_explicit(__a, __i, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_load(const atomic<_ITp>* __a) noexcept 2935449: { return atomic_load_explicit(__a, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_load(const volatile atomic<_ITp>* __a) noexcept 2935449: { return atomic_load_explicit(__a, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_exchange(atomic<_ITp>* __a, __atomic_val_t<_ITp> __i) noexcept 2935449: { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_exchange(volatile atomic<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i) noexcept 2935449: { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline bool 2935449: atomic_compare_exchange_weak(atomic<_ITp>* __a, 2935449: __atomic_val_t<_ITp>* __i1, 2935449: __atomic_val_t<_ITp> __i2) noexcept 2935449: { 2935449: return atomic_compare_exchange_weak_explicit(__a, __i1, __i2, 2935449: memory_order_seq_cst, 2935449: memory_order_seq_cst); 2935449: } 2935449: 2935449: template 2935449: inline bool 2935449: atomic_compare_exchange_weak(volatile atomic<_ITp>* __a, 2935449: __atomic_val_t<_ITp>* __i1, 2935449: __atomic_val_t<_ITp> __i2) noexcept 2935449: { 2935449: return atomic_compare_exchange_weak_explicit(__a, __i1, __i2, 2935449: memory_order_seq_cst, 2935449: memory_order_seq_cst); 2935449: } 2935449: 2935449: template 2935449: inline bool 2935449: atomic_compare_exchange_strong(atomic<_ITp>* __a, 2935449: __atomic_val_t<_ITp>* __i1, 2935449: __atomic_val_t<_ITp> __i2) noexcept 2935449: { 2935449: return atomic_compare_exchange_strong_explicit(__a, __i1, __i2, 2935449: memory_order_seq_cst, 2935449: memory_order_seq_cst); 2935449: } 2935449: 2935449: template 2935449: inline bool 2935449: atomic_compare_exchange_strong(volatile atomic<_ITp>* __a, 2935449: __atomic_val_t<_ITp>* __i1, 2935449: __atomic_val_t<_ITp> __i2) noexcept 2935449: { 2935449: return atomic_compare_exchange_strong_explicit(__a, __i1, __i2, 2935449: memory_order_seq_cst, 2935449: memory_order_seq_cst); 2935449: } 2935449: # 1497 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 3 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_add_explicit(atomic<_ITp>* __a, 2935449: __atomic_diff_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { return __a->fetch_add(__i, __m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_add_explicit(volatile atomic<_ITp>* __a, 2935449: __atomic_diff_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { return __a->fetch_add(__i, __m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_sub_explicit(atomic<_ITp>* __a, 2935449: __atomic_diff_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { return __a->fetch_sub(__i, __m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_sub_explicit(volatile atomic<_ITp>* __a, 2935449: __atomic_diff_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { return __a->fetch_sub(__i, __m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_and_explicit(__atomic_base<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { return __a->fetch_and(__i, __m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_and_explicit(volatile __atomic_base<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { return __a->fetch_and(__i, __m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_or_explicit(__atomic_base<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { return __a->fetch_or(__i, __m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_or_explicit(volatile __atomic_base<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { return __a->fetch_or(__i, __m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_xor_explicit(__atomic_base<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { return __a->fetch_xor(__i, __m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_xor_explicit(volatile __atomic_base<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i, 2935449: memory_order __m) noexcept 2935449: { return __a->fetch_xor(__i, __m); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_add(atomic<_ITp>* __a, 2935449: __atomic_diff_t<_ITp> __i) noexcept 2935449: { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_add(volatile atomic<_ITp>* __a, 2935449: __atomic_diff_t<_ITp> __i) noexcept 2935449: { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_sub(atomic<_ITp>* __a, 2935449: __atomic_diff_t<_ITp> __i) noexcept 2935449: { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_sub(volatile atomic<_ITp>* __a, 2935449: __atomic_diff_t<_ITp> __i) noexcept 2935449: { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_and(__atomic_base<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i) noexcept 2935449: { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_and(volatile __atomic_base<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i) noexcept 2935449: { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_or(__atomic_base<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i) noexcept 2935449: { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_or(volatile __atomic_base<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i) noexcept 2935449: { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_xor(__atomic_base<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i) noexcept 2935449: { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); } 2935449: 2935449: template 2935449: inline _ITp 2935449: atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, 2935449: __atomic_val_t<_ITp> __i) noexcept 2935449: { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); } 2935449: # 1798 "/usr/arm-linux-gnueabi/include/c++/15/atomic" 3 2935449: 2935449: } 2935449: # 26 "/<>/_include/workflow/WFTask.h" 2 2935449: 2935449: 2935449: # 1 "/<>/_include/workflow/Executor.h" 1 2935449: # 22 "/<>/_include/workflow/Executor.h" 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 23 "/<>/_include/workflow/Executor.h" 2 2935449: 2935449: 2935449: 2935449: 2935449: # 26 "/<>/_include/workflow/Executor.h" 2935449: class ExecQueue 2935449: { 2935449: public: 2935449: int init(); 2935449: void deinit(); 2935449: 2935449: private: 2935449: struct list_head session_list; 2935449: pthread_mutex_t mutex; 2935449: 2935449: public: 2935449: virtual ~ExecQueue() { } 2935449: friend class Executor; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: class ExecSession 2935449: { 2935449: private: 2935449: virtual void execute() = 0; 2935449: virtual void handle(int state, int error) = 0; 2935449: 2935449: protected: 2935449: ExecQueue *get_queue() const { return this->queue; } 2935449: 2935449: private: 2935449: ExecQueue *queue; 2935449: 2935449: public: 2935449: virtual ~ExecSession() { } 2935449: friend class Executor; 2935449: }; 2935449: 2935449: class Executor 2935449: { 2935449: public: 2935449: int init(size_t nthreads); 2935449: void deinit(); 2935449: 2935449: int request(ExecSession *session, ExecQueue *queue); 2935449: 2935449: public: 2935449: int increase_thread(); 2935449: int decrease_thread(); 2935449: 2935449: private: 2935449: struct __thrdpool *thrdpool; 2935449: 2935449: private: 2935449: static void executor_thread_routine(void *context); 2935449: static void executor_cancel(const struct thrdpool_task *task); 2935449: 2935449: public: 2935449: virtual ~Executor() { } 2935449: }; 2935449: # 29 "/<>/_include/workflow/WFTask.h" 2 2935449: # 1 "/<>/_include/workflow/ExecRequest.h" 1 2935449: # 25 "/<>/_include/workflow/ExecRequest.h" 2935449: class ExecRequest : public SubTask, public ExecSession 2935449: { 2935449: public: 2935449: ExecRequest(ExecQueue *queue, Executor *executor) 2935449: { 2935449: this->executor = executor; 2935449: this->queue = queue; 2935449: } 2935449: 2935449: ExecQueue *get_request_queue() const { return this->queue; } 2935449: void set_request_queue(ExecQueue *queue) { this->queue = queue; } 2935449: 2935449: public: 2935449: virtual void dispatch() 2935449: { 2935449: if (this->executor->request(this, this->queue) < 0) 2935449: this->handle(1, 2935449: # 41 "/<>/_include/workflow/ExecRequest.h" 3 2935449: (*__errno_location ()) 2935449: # 41 "/<>/_include/workflow/ExecRequest.h" 2935449: ); 2935449: } 2935449: 2935449: protected: 2935449: int state; 2935449: int error; 2935449: 2935449: protected: 2935449: ExecQueue *queue; 2935449: Executor *executor; 2935449: 2935449: protected: 2935449: virtual void handle(int state, int error) 2935449: { 2935449: this->state = state; 2935449: this->error = error; 2935449: this->subtask_done(); 2935449: } 2935449: }; 2935449: # 30 "/<>/_include/workflow/WFTask.h" 2 2935449: 2935449: # 1 "/<>/_include/workflow/CommScheduler.h" 1 2935449: # 28 "/<>/_include/workflow/CommScheduler.h" 2935449: class CommSchedObject 2935449: { 2935449: public: 2935449: size_t get_max_load() const { return this->max_load; } 2935449: size_t get_cur_load() const { return this->cur_load; } 2935449: 2935449: private: 2935449: virtual CommTarget *acquire(int wait_timeout) = 0; 2935449: 2935449: protected: 2935449: size_t max_load; 2935449: size_t cur_load; 2935449: 2935449: public: 2935449: virtual ~CommSchedObject() { } 2935449: friend class CommScheduler; 2935449: }; 2935449: 2935449: class CommSchedGroup; 2935449: 2935449: class CommSchedTarget : public CommSchedObject, public CommTarget 2935449: { 2935449: public: 2935449: int init(const struct sockaddr *addr, socklen_t addrlen, 2935449: int connect_timeout, int response_timeout, 2935449: size_t max_connections); 2935449: void deinit(); 2935449: 2935449: public: 2935449: int init(const struct sockaddr *addr, socklen_t addrlen, SSL_CTX *ssl_ctx, 2935449: int connect_timeout, int ssl_connect_timeout, int response_timeout, 2935449: size_t max_connections) 2935449: { 2935449: int ret = this->init(addr, addrlen, connect_timeout, response_timeout, 2935449: max_connections); 2935449: 2935449: if (ret >= 0) 2935449: this->set_ssl(ssl_ctx, ssl_connect_timeout); 2935449: 2935449: return ret; 2935449: } 2935449: 2935449: private: 2935449: virtual CommTarget *acquire(int wait_timeout); 2935449: virtual void release(); 2935449: 2935449: private: 2935449: CommSchedGroup *group; 2935449: int index; 2935449: int wait_cnt; 2935449: pthread_mutex_t mutex; 2935449: pthread_cond_t cond; 2935449: friend class CommSchedGroup; 2935449: }; 2935449: 2935449: class CommSchedGroup : public CommSchedObject 2935449: { 2935449: public: 2935449: int init(); 2935449: void deinit(); 2935449: int add(CommSchedTarget *target); 2935449: int remove(CommSchedTarget *target); 2935449: 2935449: private: 2935449: virtual CommTarget *acquire(int wait_timeout); 2935449: 2935449: private: 2935449: CommSchedTarget **tg_heap; 2935449: int heap_size; 2935449: int heap_buf_size; 2935449: int wait_cnt; 2935449: pthread_mutex_t mutex; 2935449: pthread_cond_t cond; 2935449: 2935449: private: 2935449: static int target_cmp(CommSchedTarget *target1, CommSchedTarget *target2); 2935449: void heapify(int top); 2935449: void heap_adjust(int index, int swap_on_equal); 2935449: int heap_insert(CommSchedTarget *target); 2935449: void heap_remove(int index); 2935449: friend class CommSchedTarget; 2935449: }; 2935449: 2935449: class CommScheduler 2935449: { 2935449: public: 2935449: int init(size_t poller_threads, size_t handler_threads) 2935449: { 2935449: return this->comm.init(poller_threads, handler_threads); 2935449: } 2935449: 2935449: void deinit() 2935449: { 2935449: this->comm.deinit(); 2935449: } 2935449: 2935449: 2935449: int request(CommSession *session, CommSchedObject *object, 2935449: int wait_timeout, CommTarget **target) 2935449: { 2935449: int ret = -1; 2935449: 2935449: *target = object->acquire(wait_timeout); 2935449: if (*target) 2935449: { 2935449: ret = this->comm.request(session, *target); 2935449: if (ret < 0) 2935449: (*target)->release(); 2935449: } 2935449: 2935449: return ret; 2935449: } 2935449: 2935449: 2935449: int reply(CommSession *session) 2935449: { 2935449: return this->comm.reply(session); 2935449: } 2935449: 2935449: int shutdown(CommSession *session) 2935449: { 2935449: return this->comm.shutdown(session); 2935449: } 2935449: 2935449: int push(const void *buf, size_t size, CommSession *session) 2935449: { 2935449: return this->comm.push(buf, size, session); 2935449: } 2935449: 2935449: int bind(CommService *service) 2935449: { 2935449: return this->comm.bind(service); 2935449: } 2935449: 2935449: void unbind(CommService *service) 2935449: { 2935449: this->comm.unbind(service); 2935449: } 2935449: 2935449: 2935449: int sleep(SleepSession *session) 2935449: { 2935449: return this->comm.sleep(session); 2935449: } 2935449: 2935449: 2935449: int unsleep(SleepSession *session) 2935449: { 2935449: return this->comm.unsleep(session); 2935449: } 2935449: 2935449: 2935449: int io_bind(IOService *service) 2935449: { 2935449: return this->comm.io_bind(service); 2935449: } 2935449: 2935449: void io_unbind(IOService *service) 2935449: { 2935449: this->comm.io_unbind(service); 2935449: } 2935449: 2935449: public: 2935449: int is_handler_thread() const 2935449: { 2935449: return this->comm.is_handler_thread(); 2935449: } 2935449: 2935449: int increase_handler_thread() 2935449: { 2935449: return this->comm.increase_handler_thread(); 2935449: } 2935449: 2935449: int decrease_handler_thread() 2935449: { 2935449: return this->comm.decrease_handler_thread(); 2935449: } 2935449: 2935449: public: 2935449: void customize_event_handler(CommEventHandler *handler) 2935449: { 2935449: this->comm.customize_event_handler(handler); 2935449: } 2935449: 2935449: private: 2935449: Communicator comm; 2935449: 2935449: public: 2935449: virtual ~CommScheduler() { } 2935449: }; 2935449: # 32 "/<>/_include/workflow/WFTask.h" 2 2935449: # 1 "/<>/_include/workflow/CommRequest.h" 1 2935449: # 23 "/<>/_include/workflow/CommRequest.h" 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 24 "/<>/_include/workflow/CommRequest.h" 2 2935449: 2935449: 2935449: 2935449: 2935449: class CommRequest : public SubTask, public CommSession 2935449: { 2935449: public: 2935449: CommRequest(CommSchedObject *object, CommScheduler *scheduler) 2935449: { 2935449: this->scheduler = scheduler; 2935449: this->object = object; 2935449: this->wait_timeout = 0; 2935449: } 2935449: 2935449: CommSchedObject *get_request_object() const { return this->object; } 2935449: void set_request_object(CommSchedObject *object) { this->object = object; } 2935449: int get_wait_timeout() const { return this->wait_timeout; } 2935449: void set_wait_timeout(int timeout) { this->wait_timeout = timeout; } 2935449: 2935449: public: 2935449: virtual void dispatch() 2935449: { 2935449: if (this->scheduler->request(this, this->object, this->wait_timeout, 2935449: &this->target) < 0) 2935449: { 2935449: this->handle(1, 2935449: # 49 "/<>/_include/workflow/CommRequest.h" 3 2935449: (*__errno_location ()) 2935449: # 49 "/<>/_include/workflow/CommRequest.h" 2935449: ); 2935449: } 2935449: } 2935449: 2935449: protected: 2935449: int state; 2935449: int error; 2935449: 2935449: protected: 2935449: CommTarget *target; 2935449: 2935449: 2935449: 2935449: 2935449: int timeout_reason; 2935449: 2935449: protected: 2935449: int wait_timeout; 2935449: CommSchedObject *object; 2935449: CommScheduler *scheduler; 2935449: 2935449: protected: 2935449: virtual void handle(int state, int error); 2935449: }; 2935449: # 33 "/<>/_include/workflow/WFTask.h" 2 2935449: # 1 "/<>/_include/workflow/SleepRequest.h" 1 2935449: # 27 "/<>/_include/workflow/SleepRequest.h" 2935449: class SleepRequest : public SubTask, public SleepSession 2935449: { 2935449: public: 2935449: SleepRequest(CommScheduler *scheduler) 2935449: { 2935449: this->scheduler = scheduler; 2935449: } 2935449: 2935449: public: 2935449: virtual void dispatch() 2935449: { 2935449: if (this->scheduler->sleep(this) < 0) 2935449: this->handle(1, 2935449: # 39 "/<>/_include/workflow/SleepRequest.h" 3 2935449: (*__errno_location ()) 2935449: # 39 "/<>/_include/workflow/SleepRequest.h" 2935449: ); 2935449: } 2935449: 2935449: protected: 2935449: int cancel() 2935449: { 2935449: return this->scheduler->unsleep(this); 2935449: } 2935449: 2935449: protected: 2935449: int state; 2935449: int error; 2935449: 2935449: protected: 2935449: CommScheduler *scheduler; 2935449: 2935449: protected: 2935449: virtual void handle(int state, int error) 2935449: { 2935449: this->state = state; 2935449: this->error = error; 2935449: this->subtask_done(); 2935449: } 2935449: }; 2935449: # 34 "/<>/_include/workflow/WFTask.h" 2 2935449: # 1 "/<>/_include/workflow/IORequest.h" 1 2935449: # 26 "/<>/_include/workflow/IORequest.h" 2935449: class IORequest : public SubTask, public IOSession 2935449: { 2935449: public: 2935449: IORequest(IOService *service) 2935449: { 2935449: this->service = service; 2935449: } 2935449: 2935449: public: 2935449: virtual void dispatch() 2935449: { 2935449: if (this->service->request(this) < 0) 2935449: this->handle(1, 2935449: # 38 "/<>/_include/workflow/IORequest.h" 3 2935449: (*__errno_location ()) 2935449: # 38 "/<>/_include/workflow/IORequest.h" 2935449: ); 2935449: } 2935449: 2935449: protected: 2935449: int state; 2935449: int error; 2935449: 2935449: protected: 2935449: IOService *service; 2935449: 2935449: protected: 2935449: virtual void handle(int state, int error) 2935449: { 2935449: this->state = state; 2935449: this->error = error; 2935449: this->subtask_done(); 2935449: } 2935449: }; 2935449: # 35 "/<>/_include/workflow/WFTask.h" 2 2935449: 2935449: # 1 "/<>/_include/workflow/WFConnection.h" 1 2935449: # 27 "/<>/_include/workflow/WFConnection.h" 2935449: class WFConnection : public CommConnection 2935449: { 2935449: public: 2935449: void *get_context() const 2935449: { 2935449: return this->context; 2935449: } 2935449: 2935449: void set_context(void *context, std::function deleter) 2935449: { 2935449: this->context = context; 2935449: this->deleter = std::move(deleter); 2935449: } 2935449: 2935449: void set_context(void *context) 2935449: { 2935449: this->context = context; 2935449: } 2935449: 2935449: void *test_set_context(void *test_context, void *new_context, 2935449: std::function deleter) 2935449: { 2935449: if (this->context.compare_exchange_strong(test_context, new_context)) 2935449: { 2935449: this->deleter = std::move(deleter); 2935449: return new_context; 2935449: } 2935449: 2935449: return test_context; 2935449: } 2935449: 2935449: void *test_set_context(void *test_context, void *new_context) 2935449: { 2935449: if (this->context.compare_exchange_strong(test_context, new_context)) 2935449: return new_context; 2935449: 2935449: return test_context; 2935449: } 2935449: 2935449: private: 2935449: std::atomic context; 2935449: std::function deleter; 2935449: 2935449: public: 2935449: WFConnection() : context( 2935449: # 71 "/<>/_include/workflow/WFConnection.h" 3 4 2935449: __null 2935449: # 71 "/<>/_include/workflow/WFConnection.h" 2935449: ) { } 2935449: 2935449: protected: 2935449: virtual ~WFConnection() 2935449: { 2935449: if (this->deleter) 2935449: this->deleter(this->context); 2935449: } 2935449: }; 2935449: # 37 "/<>/_include/workflow/WFTask.h" 2 2935449: 2935449: enum 2935449: { 2935449: WFT_STATE_UNDEFINED = -1, 2935449: WFT_STATE_SUCCESS = 0, 2935449: WFT_STATE_TOREPLY = 3, 2935449: WFT_STATE_NOREPLY = 3 + 1, 2935449: WFT_STATE_SYS_ERROR = 1, 2935449: WFT_STATE_SSL_ERROR = 65, 2935449: WFT_STATE_DNS_ERROR = 66, 2935449: WFT_STATE_TASK_ERROR = 67, 2935449: WFT_STATE_ABORTED = 2 2935449: }; 2935449: 2935449: template 2935449: class WFThreadTask : public ExecRequest 2935449: { 2935449: public: 2935449: void start() 2935449: { 2935449: 2935449: # 57 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 57 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 57 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 57 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 57 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 57 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: Workflow::start_series_work(this, nullptr); 2935449: } 2935449: 2935449: void dismiss() 2935449: { 2935449: 2935449: # 63 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 63 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 63 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 63 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 63 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 63 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: delete this; 2935449: } 2935449: 2935449: public: 2935449: INPUT *get_input() { return &this->input; } 2935449: OUTPUT *get_output() { return &this->output; } 2935449: 2935449: public: 2935449: void *user_data; 2935449: 2935449: public: 2935449: int get_state() const { return this->state; } 2935449: int get_error() const { return this->error; } 2935449: 2935449: public: 2935449: void set_callback(std::function *)> cb) 2935449: { 2935449: this->callback = std::move(cb); 2935449: } 2935449: 2935449: protected: 2935449: virtual SubTask *done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: delete this; 2935449: return series->pop(); 2935449: } 2935449: 2935449: protected: 2935449: INPUT input; 2935449: OUTPUT output; 2935449: std::function *)> callback; 2935449: 2935449: public: 2935449: WFThreadTask(ExecQueue *queue, Executor *executor, 2935449: std::function *)>&& cb) : 2935449: ExecRequest(queue, executor), 2935449: callback(std::move(cb)) 2935449: { 2935449: this->user_data = 2935449: # 107 "/<>/_include/workflow/WFTask.h" 3 4 2935449: __null 2935449: # 107 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: this->state = WFT_STATE_UNDEFINED; 2935449: this->error = 0; 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFThreadTask() { } 2935449: }; 2935449: 2935449: template 2935449: class WFNetworkTask : public CommRequest 2935449: { 2935449: public: 2935449: 2935449: void start() 2935449: { 2935449: 2935449: # 123 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 123 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 123 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 123 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 123 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 123 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: Workflow::start_series_work(this, nullptr); 2935449: } 2935449: 2935449: void dismiss() 2935449: { 2935449: 2935449: # 129 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 129 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 129 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 129 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 129 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 129 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: delete this; 2935449: } 2935449: 2935449: public: 2935449: REQ *get_req() { return &this->req; } 2935449: RESP *get_resp() { return &this->resp; } 2935449: 2935449: public: 2935449: void *user_data; 2935449: 2935449: public: 2935449: int get_state() const { return this->state; } 2935449: int get_error() const { return this->error; } 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: int get_timeout_reason() const { return this->timeout_reason; } 2935449: 2935449: 2935449: long long get_task_seq() const 2935449: { 2935449: if (!this->target) 2935449: { 2935449: 2935449: # 155 "/<>/_include/workflow/WFTask.h" 3 2935449: (*__errno_location ()) 2935449: # 155 "/<>/_include/workflow/WFTask.h" 2935449: = 2935449: # 155 "/<>/_include/workflow/WFTask.h" 3 2935449: 107 2935449: # 155 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: return -1; 2935449: } 2935449: 2935449: return this->get_seq(); 2935449: } 2935449: 2935449: int get_peer_addr(struct sockaddr *addr, socklen_t *addrlen) const; 2935449: 2935449: virtual WFConnection *get_connection() const = 0; 2935449: 2935449: public: 2935449: 2935449: void set_send_timeout(int timeout) { this->send_timeo = timeout; } 2935449: void set_receive_timeout(int timeout) { this->receive_timeo = timeout; } 2935449: void set_keep_alive(int timeout) { this->keep_alive_timeo = timeout; } 2935449: void set_watch_timeout(int timeout) { this->watch_timeo = timeout; } 2935449: 2935449: public: 2935449: 2935449: void noreply() 2935449: { 2935449: if (this->state == WFT_STATE_TOREPLY) 2935449: this->state = WFT_STATE_NOREPLY; 2935449: } 2935449: 2935449: 2935449: virtual int push(const void *buf, size_t size) 2935449: { 2935449: if (this->state != WFT_STATE_TOREPLY && 2935449: this->state != WFT_STATE_NOREPLY) 2935449: { 2935449: 2935449: # 187 "/<>/_include/workflow/WFTask.h" 3 2935449: (*__errno_location ()) 2935449: # 187 "/<>/_include/workflow/WFTask.h" 2935449: = 2935449: # 187 "/<>/_include/workflow/WFTask.h" 3 2935449: 2 2935449: # 187 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: return -1; 2935449: } 2935449: 2935449: return this->scheduler->push(buf, size, this); 2935449: } 2935449: 2935449: 2935449: 2935449: bool closed() const 2935449: { 2935449: switch (this->state) 2935449: { 2935449: case WFT_STATE_UNDEFINED: 2935449: return false; 2935449: case WFT_STATE_TOREPLY: 2935449: case WFT_STATE_NOREPLY: 2935449: return !this->target->has_idle_conn(); 2935449: default: 2935449: return true; 2935449: } 2935449: } 2935449: 2935449: public: 2935449: void set_prepare(std::function *)> prep) 2935449: { 2935449: this->prepare = std::move(prep); 2935449: } 2935449: 2935449: public: 2935449: void set_callback(std::function *)> cb) 2935449: { 2935449: this->callback = std::move(cb); 2935449: } 2935449: 2935449: protected: 2935449: virtual int send_timeout() { return this->send_timeo; } 2935449: virtual int receive_timeout() { return this->receive_timeo; } 2935449: virtual int keep_alive_timeout() { return this->keep_alive_timeo; } 2935449: virtual int first_timeout() { return this->watch_timeo; } 2935449: 2935449: protected: 2935449: int send_timeo; 2935449: int receive_timeo; 2935449: int keep_alive_timeo; 2935449: int watch_timeo; 2935449: REQ req; 2935449: RESP resp; 2935449: std::function *)> prepare; 2935449: std::function *)> callback; 2935449: 2935449: protected: 2935449: WFNetworkTask(CommSchedObject *object, CommScheduler *scheduler, 2935449: std::function *)>&& cb) : 2935449: CommRequest(object, scheduler), 2935449: callback(std::move(cb)) 2935449: { 2935449: this->send_timeo = -1; 2935449: this->receive_timeo = -1; 2935449: this->keep_alive_timeo = 0; 2935449: this->watch_timeo = 0; 2935449: this->target = 2935449: # 248 "/<>/_include/workflow/WFTask.h" 3 4 2935449: __null 2935449: # 248 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: this->timeout_reason = 0; 2935449: this->user_data = 2935449: # 250 "/<>/_include/workflow/WFTask.h" 3 4 2935449: __null 2935449: # 250 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: this->state = WFT_STATE_UNDEFINED; 2935449: this->error = 0; 2935449: } 2935449: 2935449: virtual ~WFNetworkTask() { } 2935449: }; 2935449: 2935449: class WFTimerTask : public SleepRequest 2935449: { 2935449: public: 2935449: void start() 2935449: { 2935449: 2935449: # 263 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 263 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 263 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 263 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 263 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 263 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: Workflow::start_series_work(this, nullptr); 2935449: } 2935449: 2935449: void dismiss() 2935449: { 2935449: 2935449: # 269 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 269 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 269 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 269 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 269 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 269 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: delete this; 2935449: } 2935449: 2935449: public: 2935449: void *user_data; 2935449: 2935449: public: 2935449: int get_state() const { return this->state; } 2935449: int get_error() const { return this->error; } 2935449: 2935449: public: 2935449: void set_callback(std::function cb) 2935449: { 2935449: this->callback = std::move(cb); 2935449: } 2935449: 2935449: protected: 2935449: virtual SubTask *done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: delete this; 2935449: return series->pop(); 2935449: } 2935449: 2935449: protected: 2935449: std::function callback; 2935449: 2935449: public: 2935449: WFTimerTask(CommScheduler *scheduler, 2935449: std::function cb) : 2935449: SleepRequest(scheduler), 2935449: callback(std::move(cb)) 2935449: { 2935449: this->user_data = 2935449: # 307 "/<>/_include/workflow/WFTask.h" 3 4 2935449: __null 2935449: # 307 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: this->state = WFT_STATE_UNDEFINED; 2935449: this->error = 0; 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFTimerTask() { } 2935449: }; 2935449: 2935449: template 2935449: class WFFileTask : public IORequest 2935449: { 2935449: public: 2935449: void start() 2935449: { 2935449: 2935449: # 322 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 322 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 322 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 322 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 322 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 322 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: Workflow::start_series_work(this, nullptr); 2935449: } 2935449: 2935449: void dismiss() 2935449: { 2935449: 2935449: # 328 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 328 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 328 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 328 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 328 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 328 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: delete this; 2935449: } 2935449: 2935449: public: 2935449: ARGS *get_args() { return &this->args; } 2935449: 2935449: long get_retval() const 2935449: { 2935449: if (this->state == WFT_STATE_SUCCESS) 2935449: return this->get_res(); 2935449: else 2935449: return -1; 2935449: } 2935449: 2935449: public: 2935449: void *user_data; 2935449: 2935449: public: 2935449: int get_state() const { return this->state; } 2935449: int get_error() const { return this->error; } 2935449: 2935449: public: 2935449: void set_callback(std::function *)> cb) 2935449: { 2935449: this->callback = std::move(cb); 2935449: } 2935449: 2935449: protected: 2935449: virtual SubTask *done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: delete this; 2935449: return series->pop(); 2935449: } 2935449: 2935449: protected: 2935449: ARGS args; 2935449: std::function *)> callback; 2935449: 2935449: public: 2935449: WFFileTask(IOService *service, 2935449: std::function *)>&& cb) : 2935449: IORequest(service), 2935449: callback(std::move(cb)) 2935449: { 2935449: this->user_data = 2935449: # 378 "/<>/_include/workflow/WFTask.h" 3 4 2935449: __null 2935449: # 378 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: this->state = WFT_STATE_UNDEFINED; 2935449: this->error = 0; 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFFileTask() { } 2935449: }; 2935449: 2935449: class WFGenericTask : public SubTask 2935449: { 2935449: public: 2935449: void start() 2935449: { 2935449: 2935449: # 392 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 392 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 392 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 392 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 392 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 392 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: Workflow::start_series_work(this, nullptr); 2935449: } 2935449: 2935449: void dismiss() 2935449: { 2935449: 2935449: # 398 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 398 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 398 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 398 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 398 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 398 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: delete this; 2935449: } 2935449: 2935449: public: 2935449: void *user_data; 2935449: 2935449: public: 2935449: int get_state() const { return this->state; } 2935449: int get_error() const { return this->error; } 2935449: 2935449: protected: 2935449: virtual void dispatch() 2935449: { 2935449: this->subtask_done(); 2935449: } 2935449: 2935449: virtual SubTask *done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: delete this; 2935449: return series->pop(); 2935449: } 2935449: 2935449: protected: 2935449: int state; 2935449: int error; 2935449: 2935449: public: 2935449: WFGenericTask() 2935449: { 2935449: this->user_data = 2935449: # 429 "/<>/_include/workflow/WFTask.h" 3 4 2935449: __null 2935449: # 429 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: this->state = WFT_STATE_UNDEFINED; 2935449: this->error = 0; 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFGenericTask() { } 2935449: }; 2935449: 2935449: class WFCounterTask : public WFGenericTask 2935449: { 2935449: public: 2935449: virtual void count() 2935449: { 2935449: if (--this->value == 0) 2935449: { 2935449: this->state = WFT_STATE_SUCCESS; 2935449: this->subtask_done(); 2935449: } 2935449: } 2935449: 2935449: public: 2935449: void set_callback(std::function cb) 2935449: { 2935449: this->callback = std::move(cb); 2935449: } 2935449: 2935449: protected: 2935449: virtual void dispatch() 2935449: { 2935449: this->WFCounterTask::count(); 2935449: } 2935449: 2935449: virtual SubTask *done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: delete this; 2935449: return series->pop(); 2935449: } 2935449: 2935449: protected: 2935449: std::atomic value; 2935449: std::function callback; 2935449: 2935449: public: 2935449: WFCounterTask(unsigned int target_value, 2935449: std::function&& cb) : 2935449: value(target_value + 1), 2935449: callback(std::move(cb)) 2935449: { 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFCounterTask() { } 2935449: }; 2935449: 2935449: class WFMailboxTask : public WFGenericTask 2935449: { 2935449: public: 2935449: virtual void send(void *msg) 2935449: { 2935449: *this->mailbox = msg; 2935449: if (this->flag.exchange(true)) 2935449: { 2935449: this->state = WFT_STATE_SUCCESS; 2935449: this->subtask_done(); 2935449: } 2935449: } 2935449: 2935449: void **get_mailbox() const { return this->mailbox; } 2935449: 2935449: public: 2935449: void set_callback(std::function cb) 2935449: { 2935449: this->callback = std::move(cb); 2935449: } 2935449: 2935449: protected: 2935449: virtual void dispatch() 2935449: { 2935449: if (this->flag.exchange(true)) 2935449: { 2935449: this->state = WFT_STATE_SUCCESS; 2935449: this->subtask_done(); 2935449: } 2935449: } 2935449: 2935449: virtual SubTask *done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: delete this; 2935449: return series->pop(); 2935449: } 2935449: 2935449: protected: 2935449: void **mailbox; 2935449: std::atomic flag; 2935449: std::function callback; 2935449: 2935449: public: 2935449: WFMailboxTask(void **mailbox, 2935449: std::function&& cb) : 2935449: flag(false), 2935449: callback(std::move(cb)) 2935449: { 2935449: this->mailbox = mailbox; 2935449: } 2935449: 2935449: WFMailboxTask(std::function&& cb) : 2935449: flag(false), 2935449: callback(std::move(cb)) 2935449: { 2935449: this->mailbox = &this->user_data; 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFMailboxTask() { } 2935449: }; 2935449: 2935449: class WFSelectorTask : public WFGenericTask 2935449: { 2935449: public: 2935449: virtual int submit(void *msg) 2935449: { 2935449: void *tmp = 2935449: # 561 "/<>/_include/workflow/WFTask.h" 3 4 2935449: __null 2935449: # 561 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: int ret = 0; 2935449: 2935449: if (this->message.compare_exchange_strong(tmp, msg) && msg) 2935449: { 2935449: ret = 1; 2935449: if (this->flag.exchange(true)) 2935449: { 2935449: this->state = WFT_STATE_SUCCESS; 2935449: this->subtask_done(); 2935449: } 2935449: } 2935449: 2935449: if (--this->nleft == 0) 2935449: { 2935449: if (!this->message) 2935449: { 2935449: this->state = WFT_STATE_SYS_ERROR; 2935449: this->error = 2935449: # 579 "/<>/_include/workflow/WFTask.h" 3 2935449: 42 2935449: # 579 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: this->subtask_done(); 2935449: } 2935449: 2935449: delete this; 2935449: } 2935449: 2935449: return ret; 2935449: } 2935449: 2935449: void *get_message() const { return this->message; } 2935449: 2935449: public: 2935449: void set_callback(std::function cb) 2935449: { 2935449: this->callback = std::move(cb); 2935449: } 2935449: 2935449: protected: 2935449: virtual void dispatch() 2935449: { 2935449: if (this->flag.exchange(true)) 2935449: { 2935449: this->state = WFT_STATE_SUCCESS; 2935449: this->subtask_done(); 2935449: } 2935449: 2935449: if (--this->nleft == 0) 2935449: { 2935449: if (!this->message) 2935449: { 2935449: this->state = WFT_STATE_SYS_ERROR; 2935449: this->error = 2935449: # 611 "/<>/_include/workflow/WFTask.h" 3 2935449: 42 2935449: # 611 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: this->subtask_done(); 2935449: } 2935449: 2935449: delete this; 2935449: } 2935449: } 2935449: 2935449: virtual SubTask *done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: return series->pop(); 2935449: } 2935449: 2935449: protected: 2935449: std::atomic message; 2935449: std::atomic flag; 2935449: std::atomic nleft; 2935449: std::function callback; 2935449: 2935449: public: 2935449: WFSelectorTask(size_t candidates, 2935449: std::function&& cb) : 2935449: message( 2935449: # 638 "/<>/_include/workflow/WFTask.h" 3 4 2935449: __null 2935449: # 638 "/<>/_include/workflow/WFTask.h" 2935449: ), 2935449: flag(false), 2935449: nleft(candidates + 1), 2935449: callback(std::move(cb)) 2935449: { 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFSelectorTask() { } 2935449: }; 2935449: 2935449: class WFConditional : public WFGenericTask 2935449: { 2935449: public: 2935449: virtual void signal(void *msg) 2935449: { 2935449: *this->msgbuf = msg; 2935449: if (this->flag.exchange(true)) 2935449: this->subtask_done(); 2935449: } 2935449: 2935449: protected: 2935449: virtual void dispatch() 2935449: { 2935449: series_of(this)->push_front(this->task); 2935449: this->task = 2935449: # 663 "/<>/_include/workflow/WFTask.h" 3 4 2935449: __null 2935449: # 663 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: if (this->flag.exchange(true)) 2935449: this->subtask_done(); 2935449: } 2935449: 2935449: protected: 2935449: std::atomic flag; 2935449: SubTask *task; 2935449: void **msgbuf; 2935449: 2935449: public: 2935449: WFConditional(SubTask *task, void **msgbuf) : 2935449: flag(false) 2935449: { 2935449: this->task = task; 2935449: this->msgbuf = msgbuf; 2935449: } 2935449: 2935449: WFConditional(SubTask *task) : 2935449: flag(false) 2935449: { 2935449: this->task = task; 2935449: this->msgbuf = &this->user_data; 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFConditional() 2935449: { 2935449: delete this->task; 2935449: } 2935449: }; 2935449: 2935449: class WFGoTask : public ExecRequest 2935449: { 2935449: public: 2935449: void start() 2935449: { 2935449: 2935449: # 700 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 700 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 700 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 700 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 700 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 700 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: Workflow::start_series_work(this, nullptr); 2935449: } 2935449: 2935449: void dismiss() 2935449: { 2935449: 2935449: # 706 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 706 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 706 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 706 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 706 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 706 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: delete this; 2935449: } 2935449: 2935449: public: 2935449: void *user_data; 2935449: 2935449: public: 2935449: int get_state() const { return this->state; } 2935449: int get_error() const { return this->error; } 2935449: 2935449: public: 2935449: void set_callback(std::function cb) 2935449: { 2935449: this->callback = std::move(cb); 2935449: } 2935449: 2935449: protected: 2935449: virtual SubTask *done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: delete this; 2935449: return series->pop(); 2935449: } 2935449: 2935449: protected: 2935449: std::function callback; 2935449: 2935449: public: 2935449: WFGoTask(ExecQueue *queue, Executor *executor) : 2935449: ExecRequest(queue, executor) 2935449: { 2935449: this->user_data = 2935449: # 742 "/<>/_include/workflow/WFTask.h" 3 4 2935449: __null 2935449: # 742 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: this->state = WFT_STATE_UNDEFINED; 2935449: this->error = 0; 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFGoTask() { } 2935449: }; 2935449: 2935449: class WFRepeaterTask : public WFGenericTask 2935449: { 2935449: public: 2935449: void set_create(std::function create) 2935449: { 2935449: this->create = std::move(create); 2935449: } 2935449: 2935449: public: 2935449: void set_callback(std::function cb) 2935449: { 2935449: this->callback = std::move(cb); 2935449: } 2935449: 2935449: protected: 2935449: virtual void dispatch() 2935449: { 2935449: SubTask *task = this->create(this); 2935449: 2935449: if (task) 2935449: { 2935449: series_of(this)->push_front(this); 2935449: series_of(this)->push_front(task); 2935449: } 2935449: else 2935449: this->state = WFT_STATE_SUCCESS; 2935449: 2935449: this->subtask_done(); 2935449: } 2935449: 2935449: virtual SubTask *done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (this->state != WFT_STATE_UNDEFINED) 2935449: { 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: delete this; 2935449: } 2935449: 2935449: return series->pop(); 2935449: } 2935449: 2935449: protected: 2935449: std::function create; 2935449: std::function callback; 2935449: 2935449: public: 2935449: WFRepeaterTask(std::function&& create, 2935449: std::function&& cb) : 2935449: create(std::move(create)), 2935449: callback(std::move(cb)) 2935449: { 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFRepeaterTask() { } 2935449: }; 2935449: 2935449: class WFModuleTask : public ParallelTask, protected SeriesWork 2935449: { 2935449: public: 2935449: void start() 2935449: { 2935449: 2935449: # 817 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 817 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 817 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 817 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 817 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 817 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: Workflow::start_series_work(this, nullptr); 2935449: } 2935449: 2935449: void dismiss() 2935449: { 2935449: 2935449: # 823 "/<>/_include/workflow/WFTask.h" 3 2935449: (static_cast ( 2935449: # 823 "/<>/_include/workflow/WFTask.h" 2935449: !series_of(this) 2935449: # 823 "/<>/_include/workflow/WFTask.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 823 "/<>/_include/workflow/WFTask.h" 2935449: "!series_of(this)" 2935449: # 823 "/<>/_include/workflow/WFTask.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 823 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: delete this; 2935449: } 2935449: 2935449: public: 2935449: SeriesWork *sub_series() { return this; } 2935449: 2935449: const SeriesWork *sub_series() const { return this; } 2935449: 2935449: public: 2935449: void *user_data; 2935449: 2935449: public: 2935449: void set_callback(std::function cb) 2935449: { 2935449: this->callback = std::move(cb); 2935449: } 2935449: 2935449: protected: 2935449: virtual SubTask *done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: delete this; 2935449: return series->pop(); 2935449: } 2935449: 2935449: protected: 2935449: SubTask *first; 2935449: std::function callback; 2935449: 2935449: public: 2935449: WFModuleTask(SubTask *first, 2935449: std::function&& cb) : 2935449: ParallelTask(&this->first, 1), 2935449: SeriesWork(first, nullptr), 2935449: callback(std::move(cb)) 2935449: { 2935449: this->first = first; 2935449: this->set_in_parallel(this); 2935449: this->user_data = 2935449: # 866 "/<>/_include/workflow/WFTask.h" 3 4 2935449: __null 2935449: # 866 "/<>/_include/workflow/WFTask.h" 2935449: ; 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFModuleTask() 2935449: { 2935449: if (!this->is_finished()) 2935449: this->dismiss_recursive(); 2935449: } 2935449: }; 2935449: 2935449: # 1 "/<>/_include/workflow/WFTask.inl" 1 2935449: # 19 "/<>/_include/workflow/WFTask.inl" 2935449: template 2935449: int WFNetworkTask::get_peer_addr(struct sockaddr *addr, 2935449: socklen_t *addrlen) const 2935449: { 2935449: const struct sockaddr *p; 2935449: socklen_t len; 2935449: 2935449: if (this->target) 2935449: { 2935449: this->target->get_addr(&p, &len); 2935449: if (*addrlen >= len) 2935449: { 2935449: memcpy(addr, p, len); 2935449: *addrlen = len; 2935449: return 0; 2935449: } 2935449: 2935449: 2935449: # 36 "/<>/_include/workflow/WFTask.inl" 3 2935449: (*__errno_location ()) 2935449: # 36 "/<>/_include/workflow/WFTask.inl" 2935449: = 2935449: # 36 "/<>/_include/workflow/WFTask.inl" 3 2935449: 105 2935449: # 36 "/<>/_include/workflow/WFTask.inl" 2935449: ; 2935449: } 2935449: else 2935449: 2935449: # 39 "/<>/_include/workflow/WFTask.inl" 3 2935449: (*__errno_location ()) 2935449: # 39 "/<>/_include/workflow/WFTask.inl" 2935449: = 2935449: # 39 "/<>/_include/workflow/WFTask.inl" 3 2935449: 107 2935449: # 39 "/<>/_include/workflow/WFTask.inl" 2935449: ; 2935449: 2935449: return -1; 2935449: } 2935449: 2935449: template 2935449: class WFClientTask : public WFNetworkTask 2935449: { 2935449: protected: 2935449: virtual CommMessageOut *message_out() 2935449: { 2935449: 2935449: 2935449: if (this->prepare) 2935449: this->prepare(this); 2935449: 2935449: return &this->req; 2935449: } 2935449: 2935449: virtual CommMessageIn *message_in() { return &this->resp; } 2935449: 2935449: protected: 2935449: virtual WFConnection *get_connection() const 2935449: { 2935449: CommConnection *conn; 2935449: 2935449: if (this->target) 2935449: { 2935449: conn = this->CommSession::get_connection(); 2935449: if (conn) 2935449: return (WFConnection *)conn; 2935449: } 2935449: 2935449: 2935449: # 72 "/<>/_include/workflow/WFTask.inl" 3 2935449: (*__errno_location ()) 2935449: # 72 "/<>/_include/workflow/WFTask.inl" 2935449: = 2935449: # 72 "/<>/_include/workflow/WFTask.inl" 3 2935449: 107 2935449: # 72 "/<>/_include/workflow/WFTask.inl" 2935449: ; 2935449: return 2935449: # 73 "/<>/_include/workflow/WFTask.inl" 3 4 2935449: __null 2935449: # 73 "/<>/_include/workflow/WFTask.inl" 2935449: ; 2935449: } 2935449: 2935449: protected: 2935449: virtual SubTask *done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (this->state == WFT_STATE_SYS_ERROR && this->error < 0) 2935449: { 2935449: this->state = WFT_STATE_SSL_ERROR; 2935449: this->error = -this->error; 2935449: } 2935449: 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: delete this; 2935449: return series->pop(); 2935449: } 2935449: 2935449: public: 2935449: WFClientTask(CommSchedObject *object, CommScheduler *scheduler, 2935449: std::function *)>&& cb) : 2935449: WFNetworkTask(object, scheduler, std::move(cb)) 2935449: { 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFClientTask() { } 2935449: }; 2935449: 2935449: template 2935449: class WFServerTask : public WFNetworkTask 2935449: { 2935449: protected: 2935449: virtual CommMessageOut *message_out() 2935449: { 2935449: 2935449: 2935449: if (this->prepare) 2935449: this->prepare(this); 2935449: 2935449: return &this->resp; 2935449: } 2935449: 2935449: virtual CommMessageIn *message_in() { return &this->req; } 2935449: virtual void handle(int state, int error); 2935449: 2935449: protected: 2935449: 2935449: 2935449: 2935449: 2935449: virtual WFConnection *get_connection() const 2935449: { 2935449: if (this->processor.task) 2935449: return (WFConnection *)this->CommSession::get_connection(); 2935449: 2935449: 2935449: # 132 "/<>/_include/workflow/WFTask.inl" 3 2935449: (*__errno_location ()) 2935449: # 132 "/<>/_include/workflow/WFTask.inl" 2935449: = 2935449: # 132 "/<>/_include/workflow/WFTask.inl" 3 2935449: 1 2935449: # 132 "/<>/_include/workflow/WFTask.inl" 2935449: ; 2935449: return 2935449: # 133 "/<>/_include/workflow/WFTask.inl" 3 4 2935449: __null 2935449: # 133 "/<>/_include/workflow/WFTask.inl" 2935449: ; 2935449: } 2935449: 2935449: protected: 2935449: virtual void dispatch() 2935449: { 2935449: if (this->state == WFT_STATE_TOREPLY) 2935449: { 2935449: 2935449: this->processor.task = this; 2935449: if (this->scheduler->reply(this) >= 0) 2935449: return; 2935449: 2935449: this->state = WFT_STATE_SYS_ERROR; 2935449: this->error = 2935449: # 147 "/<>/_include/workflow/WFTask.inl" 3 2935449: (*__errno_location ()) 2935449: # 147 "/<>/_include/workflow/WFTask.inl" 2935449: ; 2935449: this->processor.task = 2935449: # 148 "/<>/_include/workflow/WFTask.inl" 3 4 2935449: __null 2935449: # 148 "/<>/_include/workflow/WFTask.inl" 2935449: ; 2935449: } 2935449: else 2935449: this->scheduler->shutdown(this); 2935449: 2935449: this->subtask_done(); 2935449: } 2935449: 2935449: virtual SubTask *done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (this->state == WFT_STATE_SYS_ERROR && this->error < 0) 2935449: { 2935449: this->state = WFT_STATE_SSL_ERROR; 2935449: this->error = -this->error; 2935449: } 2935449: 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: 2935449: return series->pop(); 2935449: } 2935449: 2935449: protected: 2935449: class Processor : public SubTask 2935449: { 2935449: public: 2935449: Processor(WFServerTask *task, 2935449: std::function *)>& proc) : 2935449: process(proc) 2935449: { 2935449: this->task = task; 2935449: } 2935449: 2935449: virtual void dispatch() 2935449: { 2935449: this->process(this->task); 2935449: this->task = 2935449: # 187 "/<>/_include/workflow/WFTask.inl" 3 4 2935449: __null 2935449: # 187 "/<>/_include/workflow/WFTask.inl" 2935449: ; 2935449: this->subtask_done(); 2935449: } 2935449: 2935449: virtual SubTask *done() 2935449: { 2935449: return series_of(this)->pop(); 2935449: } 2935449: 2935449: std::function *)>& process; 2935449: WFServerTask *task; 2935449: } processor; 2935449: 2935449: class Series : public SeriesWork 2935449: { 2935449: public: 2935449: Series(WFServerTask *task) : 2935449: SeriesWork(&task->processor, nullptr) 2935449: { 2935449: this->set_last_task(task); 2935449: this->task = task; 2935449: } 2935449: 2935449: virtual ~Series() 2935449: { 2935449: delete this->task; 2935449: } 2935449: 2935449: WFServerTask *task; 2935449: }; 2935449: 2935449: public: 2935449: WFServerTask(CommService *service, CommScheduler *scheduler, 2935449: std::function *)>& proc) : 2935449: WFNetworkTask( 2935449: # 221 "/<>/_include/workflow/WFTask.inl" 3 4 2935449: __null 2935449: # 221 "/<>/_include/workflow/WFTask.inl" 2935449: , scheduler, nullptr), 2935449: processor(this, proc) 2935449: { 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFServerTask() 2935449: { 2935449: if (this->target) 2935449: ((Series *)series_of(&this->processor))->task = 2935449: # 230 "/<>/_include/workflow/WFTask.inl" 3 4 2935449: __null 2935449: # 230 "/<>/_include/workflow/WFTask.inl" 2935449: ; 2935449: } 2935449: }; 2935449: 2935449: template 2935449: void WFServerTask::handle(int state, int error) 2935449: { 2935449: if (state == WFT_STATE_TOREPLY) 2935449: { 2935449: this->state = WFT_STATE_TOREPLY; 2935449: this->target = this->get_target(); 2935449: new Series(this); 2935449: this->processor.dispatch(); 2935449: } 2935449: else if (this->state == WFT_STATE_TOREPLY) 2935449: { 2935449: this->state = state; 2935449: this->error = error; 2935449: if (error == 2935449: # 248 "/<>/_include/workflow/WFTask.inl" 3 2935449: 110 2935449: # 248 "/<>/_include/workflow/WFTask.inl" 2935449: ) 2935449: this->timeout_reason = 3; 2935449: 2935449: this->subtask_done(); 2935449: } 2935449: else 2935449: delete this; 2935449: } 2935449: # 878 "/<>/_include/workflow/WFTask.h" 2 2935449: # 36 "/<>/_include/workflow/WFTaskFactory.h" 2 2935449: # 1 "/<>/_include/workflow/WFGraphTask.h" 1 2935449: # 28 "/<>/_include/workflow/WFGraphTask.h" 2935449: class WFGraphNode : protected WFCounterTask 2935449: { 2935449: public: 2935449: void precede(WFGraphNode& node) 2935449: { 2935449: node.value++; 2935449: this->successors.push_back(&node); 2935449: } 2935449: 2935449: void succeed(WFGraphNode& node) 2935449: { 2935449: node.precede(*this); 2935449: } 2935449: 2935449: protected: 2935449: virtual SubTask *done(); 2935449: 2935449: protected: 2935449: std::vector successors; 2935449: 2935449: protected: 2935449: WFGraphNode() : WFCounterTask(0, nullptr) { } 2935449: virtual ~WFGraphNode(); 2935449: friend class WFGraphTask; 2935449: }; 2935449: 2935449: static inline WFGraphNode& operator --(WFGraphNode& node, int) 2935449: { 2935449: return node; 2935449: } 2935449: 2935449: static inline WFGraphNode& operator > (WFGraphNode& prec, WFGraphNode& succ) 2935449: { 2935449: prec.precede(succ); 2935449: return succ; 2935449: } 2935449: 2935449: static inline WFGraphNode& operator < (WFGraphNode& succ, WFGraphNode& prec) 2935449: { 2935449: succ.succeed(prec); 2935449: return prec; 2935449: } 2935449: 2935449: static inline WFGraphNode& operator --(WFGraphNode& node) 2935449: { 2935449: return node; 2935449: } 2935449: 2935449: class WFGraphTask : public WFGenericTask 2935449: { 2935449: public: 2935449: WFGraphNode& create_graph_node(SubTask *task); 2935449: 2935449: public: 2935449: void set_callback(std::function cb) 2935449: { 2935449: this->callback = std::move(cb); 2935449: } 2935449: 2935449: protected: 2935449: virtual void dispatch(); 2935449: virtual SubTask *done(); 2935449: 2935449: protected: 2935449: ParallelWork *parallel; 2935449: std::function callback; 2935449: 2935449: public: 2935449: WFGraphTask(std::function&& cb) : 2935449: callback(std::move(cb)) 2935449: { 2935449: this->parallel = Workflow::create_parallel_work(nullptr); 2935449: } 2935449: 2935449: protected: 2935449: virtual ~WFGraphTask(); 2935449: }; 2935449: # 37 "/<>/_include/workflow/WFTaskFactory.h" 2 2935449: # 1 "/<>/_include/workflow/EndpointParams.h" 1 2935449: # 30 "/<>/_include/workflow/EndpointParams.h" 2935449: enum TransportType 2935449: { 2935449: TT_TCP, 2935449: TT_UDP, 2935449: TT_SCTP, 2935449: TT_TCP_SSL, 2935449: TT_SCTP_SSL, 2935449: }; 2935449: 2935449: struct EndpointParams 2935449: { 2935449: int address_family; 2935449: size_t max_connections; 2935449: int connect_timeout; 2935449: int response_timeout; 2935449: int ssl_connect_timeout; 2935449: bool use_tls_sni; 2935449: }; 2935449: 2935449: static constexpr struct EndpointParams ENDPOINT_PARAMS_DEFAULT = 2935449: { 2935449: .address_family = 2935449: # 51 "/<>/_include/workflow/EndpointParams.h" 3 2935449: 0 2935449: # 51 "/<>/_include/workflow/EndpointParams.h" 2935449: , 2935449: .max_connections = 200, 2935449: .connect_timeout = 10 * 1000, 2935449: .response_timeout = 10 * 1000, 2935449: .ssl_connect_timeout = 10 * 1000, 2935449: .use_tls_sni = false, 2935449: }; 2935449: # 38 "/<>/_include/workflow/WFTaskFactory.h" 2 2935449: 2935449: 2935449: 2935449: using WFHttpTask = WFNetworkTask; 2935449: using http_callback_t = std::function; 2935449: 2935449: using WFRedisTask = WFNetworkTask; 2935449: using redis_callback_t = std::function; 2935449: 2935449: using WFMySQLTask = WFNetworkTask; 2935449: using mysql_callback_t = std::function; 2935449: 2935449: using WFDnsTask = WFNetworkTask; 2935449: using dns_callback_t = std::function; 2935449: 2935449: 2935449: 2935449: struct FileIOArgs 2935449: { 2935449: int fd; 2935449: void *buf; 2935449: size_t count; 2935449: off_t offset; 2935449: }; 2935449: 2935449: struct FileVIOArgs 2935449: { 2935449: int fd; 2935449: const struct iovec *iov; 2935449: int iovcnt; 2935449: off_t offset; 2935449: }; 2935449: 2935449: struct FileSyncArgs 2935449: { 2935449: int fd; 2935449: }; 2935449: 2935449: using WFFileIOTask = WFFileTask; 2935449: using fio_callback_t = std::function; 2935449: 2935449: using WFFileVIOTask = WFFileTask; 2935449: using fvio_callback_t = std::function; 2935449: 2935449: using WFFileSyncTask = WFFileTask; 2935449: using fsync_callback_t = std::function; 2935449: 2935449: 2935449: using timer_callback_t = std::function; 2935449: using counter_callback_t = std::function; 2935449: 2935449: using mailbox_callback_t = std::function; 2935449: 2935449: using selector_callback_t = std::function; 2935449: 2935449: 2935449: using graph_callback_t = std::function; 2935449: 2935449: using WFEmptyTask = WFGenericTask; 2935449: 2935449: using WFDynamicTask = WFGenericTask; 2935449: using dynamic_create_t = std::function; 2935449: 2935449: using repeated_create_t = std::function; 2935449: using repeater_callback_t = std::function; 2935449: 2935449: using module_callback_t = std::function; 2935449: 2935449: class WFTaskFactory 2935449: { 2935449: public: 2935449: static WFHttpTask *create_http_task(const std::string& url, 2935449: int redirect_max, 2935449: int retry_max, 2935449: http_callback_t callback); 2935449: 2935449: static WFHttpTask *create_http_task(const ParsedURI& uri, 2935449: int redirect_max, 2935449: int retry_max, 2935449: http_callback_t callback); 2935449: 2935449: static WFHttpTask *create_http_task(const std::string& url, 2935449: const std::string& proxy_url, 2935449: int redirect_max, 2935449: int retry_max, 2935449: http_callback_t callback); 2935449: 2935449: static WFHttpTask *create_http_task(const ParsedURI& uri, 2935449: const ParsedURI& proxy_uri, 2935449: int redirect_max, 2935449: int retry_max, 2935449: http_callback_t callback); 2935449: 2935449: static WFRedisTask *create_redis_task(const std::string& url, 2935449: int retry_max, 2935449: redis_callback_t callback); 2935449: 2935449: static WFRedisTask *create_redis_task(const ParsedURI& uri, 2935449: int retry_max, 2935449: redis_callback_t callback); 2935449: 2935449: static WFMySQLTask *create_mysql_task(const std::string& url, 2935449: int retry_max, 2935449: mysql_callback_t callback); 2935449: 2935449: static WFMySQLTask *create_mysql_task(const ParsedURI& uri, 2935449: int retry_max, 2935449: mysql_callback_t callback); 2935449: 2935449: static WFDnsTask *create_dns_task(const std::string& url, 2935449: int retry_max, 2935449: dns_callback_t callback); 2935449: 2935449: static WFDnsTask *create_dns_task(const ParsedURI& uri, 2935449: int retry_max, 2935449: dns_callback_t callback); 2935449: 2935449: public: 2935449: static WFFileIOTask *create_pread_task(int fd, 2935449: void *buf, 2935449: size_t count, 2935449: off_t offset, 2935449: fio_callback_t callback); 2935449: 2935449: static WFFileIOTask *create_pwrite_task(int fd, 2935449: const void *buf, 2935449: size_t count, 2935449: off_t offset, 2935449: fio_callback_t callback); 2935449: 2935449: static WFFileVIOTask *create_preadv_task(int fd, 2935449: const struct iovec *iov, 2935449: int iovcnt, 2935449: off_t offset, 2935449: fvio_callback_t callback); 2935449: 2935449: static WFFileVIOTask *create_pwritev_task(int fd, 2935449: const struct iovec *iov, 2935449: int iovcnt, 2935449: off_t offset, 2935449: fvio_callback_t callback); 2935449: 2935449: static WFFileSyncTask *create_fsync_task(int fd, 2935449: fsync_callback_t callback); 2935449: 2935449: 2935449: 2935449: static WFFileSyncTask *create_fdsync_task(int fd, 2935449: fsync_callback_t callback); 2935449: 2935449: 2935449: public: 2935449: static WFFileIOTask *create_pread_task(const std::string& path, 2935449: void *buf, 2935449: size_t count, 2935449: off_t offset, 2935449: fio_callback_t callback); 2935449: 2935449: static WFFileIOTask *create_pwrite_task(const std::string& path, 2935449: const void *buf, 2935449: size_t count, 2935449: off_t offset, 2935449: fio_callback_t callback); 2935449: 2935449: static WFFileVIOTask *create_preadv_task(const std::string& path, 2935449: const struct iovec *iov, 2935449: int iovcnt, 2935449: off_t offset, 2935449: fvio_callback_t callback); 2935449: 2935449: static WFFileVIOTask *create_pwritev_task(const std::string& path, 2935449: const struct iovec *iov, 2935449: int iovcnt, 2935449: off_t offset, 2935449: fvio_callback_t callback); 2935449: 2935449: public: 2935449: static WFTimerTask *create_timer_task(time_t seconds, long nanoseconds, 2935449: timer_callback_t callback); 2935449: 2935449: 2935449: static WFTimerTask *create_timer_task(const std::string& timer_name, 2935449: time_t seconds, long nanoseconds, 2935449: timer_callback_t callback); 2935449: 2935449: 2935449: static int cancel_by_name(const std::string& timer_name) 2935449: { 2935449: return WFTaskFactory::cancel_by_name(timer_name, (size_t)-1); 2935449: } 2935449: 2935449: 2935449: static int cancel_by_name(const std::string& timer_name, size_t max); 2935449: 2935449: 2935449: static WFTimerTask *create_timer_task(unsigned int microseconds, 2935449: timer_callback_t callback); 2935449: 2935449: public: 2935449: 2935449: 2935449: static WFCounterTask *create_counter_task(unsigned int target_value, 2935449: counter_callback_t callback) 2935449: { 2935449: return new WFCounterTask(target_value, std::move(callback)); 2935449: } 2935449: 2935449: 2935449: static WFCounterTask *create_counter_task(const std::string& counter_name, 2935449: unsigned int target_value, 2935449: counter_callback_t callback); 2935449: 2935449: 2935449: 2935449: 2935449: static int count_by_name(const std::string& counter_name) 2935449: { 2935449: return WFTaskFactory::count_by_name(counter_name, 1); 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: static int count_by_name(const std::string& counter_name, unsigned int n); 2935449: 2935449: public: 2935449: static WFMailboxTask *create_mailbox_task(void **mailbox, 2935449: mailbox_callback_t callback) 2935449: { 2935449: return new WFMailboxTask(mailbox, std::move(callback)); 2935449: } 2935449: 2935449: 2935449: static WFMailboxTask *create_mailbox_task(mailbox_callback_t callback) 2935449: { 2935449: return new WFMailboxTask(std::move(callback)); 2935449: } 2935449: 2935449: static WFMailboxTask *create_mailbox_task(const std::string& mailbox_name, 2935449: void **mailbox, 2935449: mailbox_callback_t callback); 2935449: 2935449: static WFMailboxTask *create_mailbox_task(const std::string& mailbox_name, 2935449: mailbox_callback_t callback); 2935449: 2935449: 2935449: 2935449: static int send_by_name(const std::string& mailbox_name, void *msg) 2935449: { 2935449: return WFTaskFactory::send_by_name(mailbox_name, msg, (size_t)-1); 2935449: } 2935449: 2935449: static int send_by_name(const std::string& mailbox_name, void *msg, 2935449: size_t max); 2935449: 2935449: template 2935449: static int send_by_name(const std::string& mailbox_name, T *const msg[], 2935449: size_t max); 2935449: 2935449: public: 2935449: static WFSelectorTask *create_selector_task(size_t candidates, 2935449: selector_callback_t callback) 2935449: { 2935449: return new WFSelectorTask(candidates, std::move(callback)); 2935449: } 2935449: 2935449: public: 2935449: static WFConditional *create_conditional(SubTask *task, void **msgbuf) 2935449: { 2935449: return new WFConditional(task, msgbuf); 2935449: } 2935449: 2935449: static WFConditional *create_conditional(SubTask *task) 2935449: { 2935449: return new WFConditional(task); 2935449: } 2935449: 2935449: static WFConditional *create_conditional(const std::string& cond_name, 2935449: SubTask *task, void **msgbuf); 2935449: 2935449: static WFConditional *create_conditional(const std::string& cond_name, 2935449: SubTask *task); 2935449: 2935449: static int signal_by_name(const std::string& cond_name, void *msg) 2935449: { 2935449: return WFTaskFactory::signal_by_name(cond_name, msg, (size_t)-1); 2935449: } 2935449: 2935449: static int signal_by_name(const std::string& cond_name, void *msg, 2935449: size_t max); 2935449: 2935449: template 2935449: static int signal_by_name(const std::string& cond_name, T *const msg[], 2935449: size_t max); 2935449: 2935449: public: 2935449: static WFConditional *create_guard(const std::string& resource_name, 2935449: SubTask *task); 2935449: 2935449: static WFConditional *create_guard(const std::string& resource_name, 2935449: SubTask *task, void **msgbuf); 2935449: 2935449: 2935449: 2935449: 2935449: static int release_guard(const std::string& resource_name, void *msg); 2935449: 2935449: static int release_guard_safe(const std::string& resource_name, void *msg); 2935449: 2935449: public: 2935449: template 2935449: static WFGoTask *create_go_task(const std::string& queue_name, 2935449: FUNC&& func, ARGS&&... args); 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: static WFGoTask *create_timedgo_task(time_t seconds, long nanoseconds, 2935449: const std::string& queue_name, 2935449: FUNC&& func, ARGS&&... args); 2935449: 2935449: 2935449: template 2935449: static WFGoTask *create_go_task(ExecQueue *queue, Executor *executor, 2935449: FUNC&& func, ARGS&&... args); 2935449: 2935449: template 2935449: static WFGoTask *create_timedgo_task(time_t seconds, long nanoseconds, 2935449: ExecQueue *queue, Executor *executor, 2935449: FUNC&& func, ARGS&&... args); 2935449: 2935449: 2935449: template 2935449: static void reset_go_task(WFGoTask *task, FUNC&& func, ARGS&&... args); 2935449: 2935449: public: 2935449: static WFGraphTask *create_graph_task(graph_callback_t callback) 2935449: { 2935449: return new WFGraphTask(std::move(callback)); 2935449: } 2935449: 2935449: public: 2935449: static WFEmptyTask *create_empty_task() 2935449: { 2935449: return new WFEmptyTask; 2935449: } 2935449: 2935449: static WFDynamicTask *create_dynamic_task(dynamic_create_t create); 2935449: 2935449: static WFRepeaterTask *create_repeater_task(repeated_create_t create, 2935449: repeater_callback_t callback) 2935449: { 2935449: return new WFRepeaterTask(std::move(create), std::move(callback)); 2935449: } 2935449: 2935449: public: 2935449: static WFModuleTask *create_module_task(SubTask *first, 2935449: module_callback_t callback) 2935449: { 2935449: return new WFModuleTask(first, std::move(callback)); 2935449: } 2935449: 2935449: static WFModuleTask *create_module_task(SubTask *first, SubTask *last, 2935449: module_callback_t callback) 2935449: { 2935449: WFModuleTask *task = new WFModuleTask(first, std::move(callback)); 2935449: task->sub_series()->set_last_task(last); 2935449: return task; 2935449: } 2935449: }; 2935449: 2935449: template 2935449: class WFNetworkTaskFactory 2935449: { 2935449: private: 2935449: using T = WFNetworkTask; 2935449: 2935449: public: 2935449: static T *create_client_task(enum TransportType type, 2935449: const std::string& host, 2935449: unsigned short port, 2935449: int retry_max, 2935449: std::function callback); 2935449: 2935449: static T *create_client_task(enum TransportType type, 2935449: const std::string& url, 2935449: int retry_max, 2935449: std::function callback); 2935449: 2935449: static T *create_client_task(enum TransportType type, 2935449: const ParsedURI& uri, 2935449: int retry_max, 2935449: std::function callback); 2935449: 2935449: static T *create_client_task(enum TransportType type, 2935449: const struct sockaddr *addr, 2935449: socklen_t addrlen, 2935449: int retry_max, 2935449: std::function callback); 2935449: 2935449: static T *create_client_task(enum TransportType type, 2935449: const struct sockaddr *addr, 2935449: socklen_t addrlen, 2935449: SSL_CTX *ssl_ctx, 2935449: int retry_max, 2935449: std::function callback); 2935449: public: 2935449: static T *create_server_task(CommService *service, 2935449: std::function& process); 2935449: }; 2935449: 2935449: template 2935449: class WFThreadTaskFactory 2935449: { 2935449: private: 2935449: using T = WFThreadTask; 2935449: 2935449: public: 2935449: static T *create_thread_task(const std::string& queue_name, 2935449: std::function routine, 2935449: std::function callback); 2935449: 2935449: 2935449: static T *create_thread_task(time_t seconds, long nanoseconds, 2935449: const std::string& queue_name, 2935449: std::function routine, 2935449: std::function callback); 2935449: 2935449: public: 2935449: 2935449: static T *create_thread_task(ExecQueue *queue, Executor *executor, 2935449: std::function routine, 2935449: std::function callback); 2935449: 2935449: 2935449: static T *create_thread_task(time_t seconds, long nanoseconds, 2935449: ExecQueue *queue, Executor *executor, 2935449: std::function routine, 2935449: std::function callback); 2935449: }; 2935449: 2935449: # 1 "/<>/_include/workflow/WFTaskFactory.inl" 1 2935449: # 25 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: # 1 "/usr/arm-linux-gnueabi/include/netdb.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/netinet/in.h" 1 3 2935449: # 27 "/usr/arm-linux-gnueabi/include/netinet/in.h" 3 2935449: 2935449: # 27 "/usr/arm-linux-gnueabi/include/netinet/in.h" 3 2935449: extern "C" { 2935449: 2935449: 2935449: typedef uint32_t in_addr_t; 2935449: struct in_addr 2935449: { 2935449: in_addr_t s_addr; 2935449: }; 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/in.h" 1 3 2935449: # 145 "/usr/arm-linux-gnueabi/include/bits/in.h" 3 2935449: struct ip_opts 2935449: { 2935449: struct in_addr ip_dst; 2935449: char ip_opts[40]; 2935449: }; 2935449: 2935449: 2935449: struct in_pktinfo 2935449: { 2935449: int ipi_ifindex; 2935449: struct in_addr ipi_spec_dst; 2935449: struct in_addr ipi_addr; 2935449: }; 2935449: # 38 "/usr/arm-linux-gnueabi/include/netinet/in.h" 2 3 2935449: 2935449: 2935449: enum 2935449: { 2935449: IPPROTO_IP = 0, 2935449: 2935449: IPPROTO_ICMP = 1, 2935449: 2935449: IPPROTO_IGMP = 2, 2935449: 2935449: IPPROTO_IPIP = 4, 2935449: 2935449: IPPROTO_TCP = 6, 2935449: 2935449: IPPROTO_EGP = 8, 2935449: 2935449: IPPROTO_PUP = 12, 2935449: 2935449: IPPROTO_UDP = 17, 2935449: 2935449: IPPROTO_IDP = 22, 2935449: 2935449: IPPROTO_TP = 29, 2935449: 2935449: IPPROTO_DCCP = 33, 2935449: 2935449: IPPROTO_IPV6 = 41, 2935449: 2935449: IPPROTO_RSVP = 46, 2935449: 2935449: IPPROTO_GRE = 47, 2935449: 2935449: IPPROTO_ESP = 50, 2935449: 2935449: IPPROTO_AH = 51, 2935449: 2935449: IPPROTO_MTP = 92, 2935449: 2935449: IPPROTO_BEETPH = 94, 2935449: 2935449: IPPROTO_ENCAP = 98, 2935449: 2935449: IPPROTO_PIM = 103, 2935449: 2935449: IPPROTO_COMP = 108, 2935449: 2935449: IPPROTO_L2TP = 115, 2935449: 2935449: IPPROTO_SCTP = 132, 2935449: 2935449: IPPROTO_UDPLITE = 136, 2935449: 2935449: IPPROTO_MPLS = 137, 2935449: 2935449: IPPROTO_ETHERNET = 143, 2935449: 2935449: IPPROTO_RAW = 255, 2935449: 2935449: IPPROTO_SMC = 256, 2935449: 2935449: IPPROTO_MPTCP = 262, 2935449: 2935449: IPPROTO_MAX 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: enum 2935449: { 2935449: IPPROTO_HOPOPTS = 0, 2935449: 2935449: IPPROTO_ROUTING = 43, 2935449: 2935449: IPPROTO_FRAGMENT = 44, 2935449: 2935449: IPPROTO_ICMPV6 = 58, 2935449: 2935449: IPPROTO_NONE = 59, 2935449: 2935449: IPPROTO_DSTOPTS = 60, 2935449: 2935449: IPPROTO_MH = 135 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: typedef uint16_t in_port_t; 2935449: 2935449: 2935449: enum 2935449: { 2935449: IPPORT_ECHO = 7, 2935449: IPPORT_DISCARD = 9, 2935449: IPPORT_SYSTAT = 11, 2935449: IPPORT_DAYTIME = 13, 2935449: IPPORT_NETSTAT = 15, 2935449: IPPORT_FTP = 21, 2935449: IPPORT_TELNET = 23, 2935449: IPPORT_SMTP = 25, 2935449: IPPORT_TIMESERVER = 37, 2935449: IPPORT_NAMESERVER = 42, 2935449: IPPORT_WHOIS = 43, 2935449: IPPORT_MTP = 57, 2935449: 2935449: IPPORT_TFTP = 69, 2935449: IPPORT_RJE = 77, 2935449: IPPORT_FINGER = 79, 2935449: IPPORT_TTYLINK = 87, 2935449: IPPORT_SUPDUP = 95, 2935449: 2935449: 2935449: IPPORT_EXECSERVER = 512, 2935449: IPPORT_LOGINSERVER = 513, 2935449: IPPORT_CMDSERVER = 514, 2935449: IPPORT_EFSSERVER = 520, 2935449: 2935449: 2935449: IPPORT_BIFFUDP = 512, 2935449: IPPORT_WHOSERVER = 513, 2935449: IPPORT_ROUTESERVER = 520, 2935449: 2935449: 2935449: IPPORT_RESERVED = 1024, 2935449: 2935449: 2935449: IPPORT_USERRESERVED = 5000 2935449: }; 2935449: # 223 "/usr/arm-linux-gnueabi/include/netinet/in.h" 3 2935449: struct in6_addr 2935449: { 2935449: union 2935449: { 2935449: uint8_t __u6_addr8[16]; 2935449: uint16_t __u6_addr16[8]; 2935449: uint32_t __u6_addr32[4]; 2935449: } __in6_u; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: extern const struct in6_addr in6addr_any; 2935449: extern const struct in6_addr in6addr_loopback; 2935449: # 249 "/usr/arm-linux-gnueabi/include/netinet/in.h" 3 2935449: struct __attribute__ ((__may_alias__)) sockaddr_in 2935449: { 2935449: sa_family_t sin_family; 2935449: in_port_t sin_port; 2935449: struct in_addr sin_addr; 2935449: 2935449: 2935449: unsigned char sin_zero[sizeof (struct sockaddr) 2935449: - (sizeof (unsigned short int)) 2935449: - sizeof (in_port_t) 2935449: - sizeof (struct in_addr)]; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct __attribute__ ((__may_alias__)) sockaddr_in6 2935449: { 2935449: sa_family_t sin6_family; 2935449: in_port_t sin6_port; 2935449: uint32_t sin6_flowinfo; 2935449: struct in6_addr sin6_addr; 2935449: uint32_t sin6_scope_id; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: struct ip_mreq 2935449: { 2935449: 2935449: struct in_addr imr_multiaddr; 2935449: 2935449: 2935449: struct in_addr imr_interface; 2935449: }; 2935449: 2935449: 2935449: struct ip_mreqn 2935449: { 2935449: 2935449: struct in_addr imr_multiaddr; 2935449: 2935449: 2935449: struct in_addr imr_address; 2935449: 2935449: 2935449: int imr_ifindex; 2935449: }; 2935449: 2935449: struct ip_mreq_source 2935449: { 2935449: 2935449: struct in_addr imr_multiaddr; 2935449: 2935449: 2935449: struct in_addr imr_interface; 2935449: 2935449: 2935449: struct in_addr imr_sourceaddr; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: struct ipv6_mreq 2935449: { 2935449: 2935449: struct in6_addr ipv6mr_multiaddr; 2935449: 2935449: 2935449: unsigned int ipv6mr_interface; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: struct group_req 2935449: { 2935449: 2935449: uint32_t gr_interface; 2935449: 2935449: 2935449: struct sockaddr_storage gr_group; 2935449: }; 2935449: 2935449: struct group_source_req 2935449: { 2935449: 2935449: uint32_t gsr_interface; 2935449: 2935449: 2935449: struct sockaddr_storage gsr_group; 2935449: 2935449: 2935449: struct sockaddr_storage gsr_source; 2935449: }; 2935449: 2935449: 2935449: 2935449: struct ip_msfilter 2935449: { 2935449: 2935449: struct in_addr imsf_multiaddr; 2935449: 2935449: 2935449: struct in_addr imsf_interface; 2935449: 2935449: 2935449: uint32_t imsf_fmode; 2935449: 2935449: 2935449: uint32_t imsf_numsrc; 2935449: 2935449: struct in_addr imsf_slist[1]; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct group_filter 2935449: { 2935449: 2935449: uint32_t gf_interface; 2935449: 2935449: 2935449: struct sockaddr_storage gf_group; 2935449: 2935449: 2935449: uint32_t gf_fmode; 2935449: 2935449: 2935449: uint32_t gf_numsrc; 2935449: 2935449: struct sockaddr_storage gf_slist[1]; 2935449: }; 2935449: # 401 "/usr/arm-linux-gnueabi/include/netinet/in.h" 3 2935449: extern uint32_t ntohl (uint32_t __netlong) noexcept (true) __attribute__ ((__const__)); 2935449: extern uint16_t ntohs (uint16_t __netshort) 2935449: noexcept (true) __attribute__ ((__const__)); 2935449: extern uint32_t htonl (uint32_t __hostlong) 2935449: noexcept (true) __attribute__ ((__const__)); 2935449: extern uint16_t htons (uint16_t __hostshort) 2935449: noexcept (true) __attribute__ ((__const__)); 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/byteswap.h" 1 3 2935449: # 413 "/usr/arm-linux-gnueabi/include/netinet/in.h" 2 3 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/uintn-identity.h" 1 3 2935449: # 414 "/usr/arm-linux-gnueabi/include/netinet/in.h" 2 3 2935449: # 529 "/usr/arm-linux-gnueabi/include/netinet/in.h" 3 2935449: extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) noexcept (true); 2935449: 2935449: 2935449: extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) 2935449: noexcept (true); 2935449: # 559 "/usr/arm-linux-gnueabi/include/netinet/in.h" 3 2935449: struct cmsghdr; 2935449: 2935449: 2935449: 2935449: struct in6_pktinfo 2935449: { 2935449: struct in6_addr ipi6_addr; 2935449: unsigned int ipi6_ifindex; 2935449: }; 2935449: 2935449: 2935449: struct ip6_mtuinfo 2935449: { 2935449: struct sockaddr_in6 ip6m_addr; 2935449: uint32_t ip6m_mtu; 2935449: }; 2935449: 2935449: 2935449: 2935449: extern int inet6_option_space (int __nbytes) 2935449: noexcept (true) __attribute__ ((__deprecated__)); 2935449: extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp, 2935449: int __type) noexcept (true) __attribute__ ((__deprecated__)); 2935449: extern int inet6_option_append (struct cmsghdr *__cmsg, 2935449: const uint8_t *__typep, int __multx, 2935449: int __plusy) noexcept (true) __attribute__ ((__deprecated__)); 2935449: extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen, 2935449: int __multx, int __plusy) 2935449: noexcept (true) __attribute__ ((__deprecated__)); 2935449: extern int inet6_option_next (const struct cmsghdr *__cmsg, 2935449: uint8_t **__tptrp) 2935449: noexcept (true) __attribute__ ((__deprecated__)); 2935449: extern int inet6_option_find (const struct cmsghdr *__cmsg, 2935449: uint8_t **__tptrp, int __type) 2935449: noexcept (true) __attribute__ ((__deprecated__)); 2935449: 2935449: 2935449: 2935449: extern int inet6_opt_init (void *__extbuf, socklen_t __extlen) noexcept (true); 2935449: extern int inet6_opt_append (void *__extbuf, socklen_t __extlen, int __offset, 2935449: uint8_t __type, socklen_t __len, uint8_t __align, 2935449: void **__databufp) noexcept (true); 2935449: extern int inet6_opt_finish (void *__extbuf, socklen_t __extlen, int __offset) 2935449: noexcept (true); 2935449: extern int inet6_opt_set_val (void *__databuf, int __offset, void *__val, 2935449: socklen_t __vallen) noexcept (true); 2935449: extern int inet6_opt_next (void *__extbuf, socklen_t __extlen, int __offset, 2935449: uint8_t *__typep, socklen_t *__lenp, 2935449: void **__databufp) noexcept (true); 2935449: extern int inet6_opt_find (void *__extbuf, socklen_t __extlen, int __offset, 2935449: uint8_t __type, socklen_t *__lenp, 2935449: void **__databufp) noexcept (true); 2935449: extern int inet6_opt_get_val (void *__databuf, int __offset, void *__val, 2935449: socklen_t __vallen) noexcept (true); 2935449: 2935449: 2935449: 2935449: extern socklen_t inet6_rth_space (int __type, int __segments) noexcept (true); 2935449: extern void *inet6_rth_init (void *__bp, socklen_t __bp_len, int __type, 2935449: int __segments) noexcept (true); 2935449: extern int inet6_rth_add (void *__bp, const struct in6_addr *__addr) noexcept (true); 2935449: extern int inet6_rth_reverse (const void *__in, void *__out) noexcept (true); 2935449: extern int inet6_rth_segments (const void *__bp) noexcept (true); 2935449: extern struct in6_addr *inet6_rth_getaddr (const void *__bp, int __index) 2935449: noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr, 2935449: struct in_addr __group, uint32_t *__fmode, 2935449: uint32_t *__numsrc, struct in_addr *__slist) 2935449: noexcept (true); 2935449: 2935449: 2935449: extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr, 2935449: struct in_addr __group, uint32_t __fmode, 2935449: uint32_t __numsrc, 2935449: const struct in_addr *__slist) 2935449: noexcept (true); 2935449: 2935449: 2935449: 2935449: extern int getsourcefilter (int __s, uint32_t __interface_addr, 2935449: const struct sockaddr *__group, 2935449: socklen_t __grouplen, uint32_t *__fmode, 2935449: uint32_t *__numsrc, 2935449: struct sockaddr_storage *__slist) noexcept (true); 2935449: 2935449: 2935449: extern int setsourcefilter (int __s, uint32_t __interface_addr, 2935449: const struct sockaddr *__group, 2935449: socklen_t __grouplen, uint32_t __fmode, 2935449: uint32_t __numsrc, 2935449: const struct sockaddr_storage *__slist) noexcept (true); 2935449: 2935449: 2935449: } 2935449: # 28 "/usr/arm-linux-gnueabi/include/netdb.h" 2 3 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/rpc/netdb.h" 1 3 2935449: # 42 "/usr/arm-linux-gnueabi/include/rpc/netdb.h" 3 2935449: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabi/15/include/stddef.h" 1 3 4 2935449: # 43 "/usr/arm-linux-gnueabi/include/rpc/netdb.h" 2 3 2935449: 2935449: extern "C" { 2935449: 2935449: struct rpcent 2935449: { 2935449: char *r_name; 2935449: char **r_aliases; 2935449: int r_number; 2935449: }; 2935449: 2935449: extern void setrpcent (int __stayopen) noexcept (true); 2935449: extern void endrpcent (void) noexcept (true); 2935449: extern struct rpcent *getrpcbyname (const char *__name) noexcept (true); 2935449: extern struct rpcent *getrpcbynumber (int __number) noexcept (true); 2935449: extern struct rpcent *getrpcent (void) noexcept (true); 2935449: 2935449: 2935449: extern int getrpcbyname_r (const char *__name, struct rpcent *__result_buf, 2935449: char *__buffer, size_t __buflen, 2935449: struct rpcent **__result) noexcept (true); 2935449: 2935449: extern int getrpcbynumber_r (int __number, struct rpcent *__result_buf, 2935449: char *__buffer, size_t __buflen, 2935449: struct rpcent **__result) noexcept (true); 2935449: 2935449: extern int getrpcent_r (struct rpcent *__result_buf, char *__buffer, 2935449: size_t __buflen, struct rpcent **__result) noexcept (true); 2935449: 2935449: 2935449: } 2935449: # 33 "/usr/arm-linux-gnueabi/include/netdb.h" 2 3 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/sigevent_t.h" 1 3 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/wordsize.h" 1 3 2935449: # 5 "/usr/arm-linux-gnueabi/include/bits/types/sigevent_t.h" 2 3 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/types/__sigval_t.h" 1 3 2935449: # 24 "/usr/arm-linux-gnueabi/include/bits/types/__sigval_t.h" 3 2935449: union sigval 2935449: { 2935449: int sival_int; 2935449: void *sival_ptr; 2935449: }; 2935449: 2935449: typedef union sigval __sigval_t; 2935449: # 7 "/usr/arm-linux-gnueabi/include/bits/types/sigevent_t.h" 2 3 2935449: # 22 "/usr/arm-linux-gnueabi/include/bits/types/sigevent_t.h" 3 2935449: typedef struct sigevent 2935449: { 2935449: __sigval_t sigev_value; 2935449: int sigev_signo; 2935449: int sigev_notify; 2935449: 2935449: union 2935449: { 2935449: int _pad[((64 / sizeof (int)) - 3)]; 2935449: 2935449: 2935449: 2935449: __pid_t _tid; 2935449: 2935449: struct 2935449: { 2935449: void (*_function) (__sigval_t); 2935449: pthread_attr_t *_attribute; 2935449: } _sigev_thread; 2935449: } _sigev_un; 2935449: } sigevent_t; 2935449: # 37 "/usr/arm-linux-gnueabi/include/netdb.h" 2 3 2935449: 2935449: 2935449: 2935449: # 1 "/usr/arm-linux-gnueabi/include/bits/netdb.h" 1 3 2935449: # 26 "/usr/arm-linux-gnueabi/include/bits/netdb.h" 3 2935449: struct netent 2935449: { 2935449: char *n_name; 2935449: char **n_aliases; 2935449: int n_addrtype; 2935449: uint32_t n_net; 2935449: }; 2935449: # 41 "/usr/arm-linux-gnueabi/include/netdb.h" 2 3 2935449: # 51 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern "C" { 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int *__h_errno_location (void) noexcept (true) __attribute__ ((__const__)); 2935449: # 90 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern void herror (const char *__str) noexcept (true); 2935449: 2935449: 2935449: extern const char *hstrerror (int __err_num) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: struct hostent 2935449: { 2935449: char *h_name; 2935449: char **h_aliases; 2935449: int h_addrtype; 2935449: int h_length; 2935449: char **h_addr_list; 2935449: 2935449: 2935449: 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void sethostent (int __stay_open); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void endhostent (void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern struct hostent *gethostent (void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern struct hostent *gethostbyaddr (const void *__addr, __socklen_t __len, 2935449: int __type); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern struct hostent *gethostbyname (const char *__name); 2935449: # 153 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern struct hostent *gethostbyname2 (const char *__name, int __af); 2935449: # 165 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int gethostent_r (struct hostent *__restrict __result_buf, 2935449: char *__restrict __buf, size_t __buflen, 2935449: struct hostent **__restrict __result, 2935449: int *__restrict __h_errnop); 2935449: 2935449: extern int gethostbyaddr_r (const void *__restrict __addr, __socklen_t __len, 2935449: int __type, 2935449: struct hostent *__restrict __result_buf, 2935449: char *__restrict __buf, size_t __buflen, 2935449: struct hostent **__restrict __result, 2935449: int *__restrict __h_errnop); 2935449: 2935449: extern int gethostbyname_r (const char *__restrict __name, 2935449: struct hostent *__restrict __result_buf, 2935449: char *__restrict __buf, size_t __buflen, 2935449: struct hostent **__restrict __result, 2935449: int *__restrict __h_errnop); 2935449: 2935449: extern int gethostbyname2_r (const char *__restrict __name, int __af, 2935449: struct hostent *__restrict __result_buf, 2935449: char *__restrict __buf, size_t __buflen, 2935449: struct hostent **__restrict __result, 2935449: int *__restrict __h_errnop); 2935449: # 196 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern void setnetent (int __stay_open); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void endnetent (void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern struct netent *getnetent (void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern struct netent *getnetbyaddr (uint32_t __net, int __type); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern struct netent *getnetbyname (const char *__name); 2935449: # 235 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int getnetent_r (struct netent *__restrict __result_buf, 2935449: char *__restrict __buf, size_t __buflen, 2935449: struct netent **__restrict __result, 2935449: int *__restrict __h_errnop); 2935449: 2935449: extern int getnetbyaddr_r (uint32_t __net, int __type, 2935449: struct netent *__restrict __result_buf, 2935449: char *__restrict __buf, size_t __buflen, 2935449: struct netent **__restrict __result, 2935449: int *__restrict __h_errnop); 2935449: 2935449: extern int getnetbyname_r (const char *__restrict __name, 2935449: struct netent *__restrict __result_buf, 2935449: char *__restrict __buf, size_t __buflen, 2935449: struct netent **__restrict __result, 2935449: int *__restrict __h_errnop); 2935449: 2935449: 2935449: 2935449: 2935449: struct servent 2935449: { 2935449: char *s_name; 2935449: char **s_aliases; 2935449: int s_port; 2935449: char *s_proto; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void setservent (int __stay_open); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void endservent (void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern struct servent *getservent (void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern struct servent *getservbyname (const char *__name, const char *__proto); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern struct servent *getservbyport (int __port, const char *__proto); 2935449: # 306 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int getservent_r (struct servent *__restrict __result_buf, 2935449: char *__restrict __buf, size_t __buflen, 2935449: struct servent **__restrict __result); 2935449: 2935449: extern int getservbyname_r (const char *__restrict __name, 2935449: const char *__restrict __proto, 2935449: struct servent *__restrict __result_buf, 2935449: char *__restrict __buf, size_t __buflen, 2935449: struct servent **__restrict __result); 2935449: 2935449: extern int getservbyport_r (int __port, const char *__restrict __proto, 2935449: struct servent *__restrict __result_buf, 2935449: char *__restrict __buf, size_t __buflen, 2935449: struct servent **__restrict __result); 2935449: 2935449: 2935449: 2935449: 2935449: struct protoent 2935449: { 2935449: char *p_name; 2935449: char **p_aliases; 2935449: int p_proto; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void setprotoent (int __stay_open); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void endprotoent (void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern struct protoent *getprotoent (void); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern struct protoent *getprotobyname (const char *__name); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern struct protoent *getprotobynumber (int __proto); 2935449: # 372 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int getprotoent_r (struct protoent *__restrict __result_buf, 2935449: char *__restrict __buf, size_t __buflen, 2935449: struct protoent **__restrict __result); 2935449: 2935449: extern int getprotobyname_r (const char *__restrict __name, 2935449: struct protoent *__restrict __result_buf, 2935449: char *__restrict __buf, size_t __buflen, 2935449: struct protoent **__restrict __result); 2935449: 2935449: extern int getprotobynumber_r (int __proto, 2935449: struct protoent *__restrict __result_buf, 2935449: char *__restrict __buf, size_t __buflen, 2935449: struct protoent **__restrict __result); 2935449: # 393 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int setnetgrent (const char *__netgroup); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void endnetgrent (void); 2935449: # 410 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int getnetgrent (char **__restrict __hostp, 2935449: char **__restrict __userp, 2935449: char **__restrict __domainp); 2935449: # 421 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int innetgr (const char *__netgroup, const char *__host, 2935449: const char *__user, const char *__domain); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int getnetgrent_r (char **__restrict __hostp, 2935449: char **__restrict __userp, 2935449: char **__restrict __domainp, 2935449: char *__restrict __buffer, size_t __buflen); 2935449: # 449 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int rcmd (char **__restrict __ahost, unsigned short int __rport, 2935449: const char *__restrict __locuser, 2935449: const char *__restrict __remuser, 2935449: const char *__restrict __cmd, int *__restrict __fd2p); 2935449: # 461 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int rcmd_af (char **__restrict __ahost, unsigned short int __rport, 2935449: const char *__restrict __locuser, 2935449: const char *__restrict __remuser, 2935449: const char *__restrict __cmd, int *__restrict __fd2p, 2935449: sa_family_t __af); 2935449: # 477 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int rexec (char **__restrict __ahost, int __rport, 2935449: const char *__restrict __name, 2935449: const char *__restrict __pass, 2935449: const char *__restrict __cmd, int *__restrict __fd2p); 2935449: # 489 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int rexec_af (char **__restrict __ahost, int __rport, 2935449: const char *__restrict __name, 2935449: const char *__restrict __pass, 2935449: const char *__restrict __cmd, int *__restrict __fd2p, 2935449: sa_family_t __af); 2935449: # 503 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int ruserok (const char *__rhost, int __suser, 2935449: const char *__remuser, const char *__locuser); 2935449: # 513 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int ruserok_af (const char *__rhost, int __suser, 2935449: const char *__remuser, const char *__locuser, 2935449: sa_family_t __af); 2935449: # 526 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int iruserok (uint32_t __raddr, int __suser, 2935449: const char *__remuser, const char *__locuser); 2935449: # 537 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int iruserok_af (const void *__raddr, int __suser, 2935449: const char *__remuser, const char *__locuser, 2935449: sa_family_t __af); 2935449: # 549 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int rresvport (int *__alport); 2935449: # 558 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int rresvport_af (int *__alport, sa_family_t __af); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: struct addrinfo 2935449: { 2935449: int ai_flags; 2935449: int ai_family; 2935449: int ai_socktype; 2935449: int ai_protocol; 2935449: socklen_t ai_addrlen; 2935449: struct sockaddr *ai_addr; 2935449: char *ai_canonname; 2935449: struct addrinfo *ai_next; 2935449: }; 2935449: 2935449: 2935449: 2935449: struct gaicb 2935449: { 2935449: const char *ar_name; 2935449: const char *ar_service; 2935449: const struct addrinfo *ar_request; 2935449: struct addrinfo *ar_result; 2935449: 2935449: int __return; 2935449: int __glibc_reserved[5]; 2935449: }; 2935449: # 660 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int getaddrinfo (const char *__restrict __name, 2935449: const char *__restrict __service, 2935449: const struct addrinfo *__restrict __req, 2935449: struct addrinfo **__restrict __pai); 2935449: 2935449: 2935449: extern void freeaddrinfo (struct addrinfo *__ai) noexcept (true); 2935449: 2935449: 2935449: extern const char *gai_strerror (int __ecode) noexcept (true); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int getnameinfo (const struct sockaddr *__restrict __sa, 2935449: socklen_t __salen, char *__restrict __host, 2935449: socklen_t __hostlen, char *__restrict __serv, 2935449: socklen_t __servlen, int __flags); 2935449: # 690 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int getaddrinfo_a (int __mode, struct gaicb *__list[], 2935449: int __ent, struct sigevent *__restrict __sig); 2935449: # 701 "/usr/arm-linux-gnueabi/include/netdb.h" 3 2935449: extern int gai_suspend (const struct gaicb *const __list[], int __ent, 2935449: const struct timespec *__timeout); 2935449: 2935449: 2935449: 2935449: extern int gai_suspend (const struct gaicb *const __list[], int __ent, const struct timespec *__timeout) __asm__ ("" "__gai_suspend_time64") 2935449: 2935449: 2935449: ; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern int gai_error (struct gaicb *__req) noexcept (true); 2935449: 2935449: 2935449: extern int gai_cancel (struct gaicb *__gaicbp) noexcept (true); 2935449: 2935449: 2935449: } 2935449: # 26 "/<>/_include/workflow/WFTaskFactory.inl" 2 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/<>/_include/workflow/WFGlobal.h" 1 2935449: # 30 "/<>/_include/workflow/WFGlobal.h" 2935449: # 1 "/<>/_include/workflow/DnsCache.h" 1 2935449: # 27 "/<>/_include/workflow/DnsCache.h" 2935449: # 1 "/<>/_include/workflow/LRUCache.h" 1 2935449: # 23 "/<>/_include/workflow/LRUCache.h" 2935449: # 1 "/usr/arm-linux-gnueabi/include/assert.h" 1 3 2935449: # 24 "/<>/_include/workflow/LRUCache.h" 2 2935449: 2935449: # 1 "/<>/_include/workflow/rbtree.h" 1 2935449: # 97 "/<>/_include/workflow/rbtree.h" 2935449: #pragma pack(1) 2935449: 2935449: # 98 "/<>/_include/workflow/rbtree.h" 2935449: struct rb_node 2935449: { 2935449: struct rb_node *rb_parent; 2935449: struct rb_node *rb_right; 2935449: struct rb_node *rb_left; 2935449: char rb_color; 2935449: 2935449: 2935449: }; 2935449: #pragma pack() 2935449: 2935449: struct rb_root 2935449: { 2935449: struct rb_node *rb_node; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern "C" 2935449: { 2935449: 2935449: 2935449: extern void rb_insert_color(struct rb_node *node, struct rb_root *root); 2935449: extern void rb_erase(struct rb_node *node, struct rb_root *root); 2935449: 2935449: 2935449: extern struct rb_node *rb_next(struct rb_node *); 2935449: extern struct rb_node *rb_prev(struct rb_node *); 2935449: extern struct rb_node *rb_first(struct rb_root *); 2935449: extern struct rb_node *rb_last(struct rb_root *); 2935449: 2935449: 2935449: extern void rb_replace_node(struct rb_node *victim, struct rb_node *newnode, 2935449: struct rb_root *root); 2935449: 2935449: 2935449: } 2935449: 2935449: 2935449: static inline void rb_link_node(struct rb_node *node, struct rb_node *parent, 2935449: struct rb_node **link) 2935449: { 2935449: node->rb_parent = parent; 2935449: node->rb_color = 0; 2935449: node->rb_left = node->rb_right = (struct rb_node *)0; 2935449: 2935449: *link = node; 2935449: } 2935449: # 26 "/<>/_include/workflow/LRUCache.h" 2 2935449: # 35 "/<>/_include/workflow/LRUCache.h" 2935449: template 2935449: class LRUHandle 2935449: { 2935449: public: 2935449: VALUE value; 2935449: 2935449: private: 2935449: LRUHandle(const KEY& k, const VALUE& v) : 2935449: value(v), key(k) 2935449: { 2935449: } 2935449: 2935449: KEY key; 2935449: struct list_head list; 2935449: struct rb_node rb; 2935449: bool in_cache; 2935449: int ref; 2935449: 2935449: template friend class LRUCache; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: template 2935449: class LRUCache 2935449: { 2935449: protected: 2935449: typedef LRUHandle Handle; 2935449: 2935449: public: 2935449: LRUCache() 2935449: { 2935449: INIT_LIST_HEAD(&this->not_use); 2935449: INIT_LIST_HEAD(&this->in_use); 2935449: this->cache_map.rb_node = 2935449: # 71 "/<>/_include/workflow/LRUCache.h" 3 4 2935449: __null 2935449: # 71 "/<>/_include/workflow/LRUCache.h" 2935449: ; 2935449: this->max_size = 0; 2935449: this->size = 0; 2935449: } 2935449: 2935449: ~LRUCache() 2935449: { 2935449: struct list_head *pos, *tmp; 2935449: Handle *e; 2935449: 2935449: 2935449: 2935449: # 82 "/<>/_include/workflow/LRUCache.h" 3 2935449: (static_cast ( 2935449: # 82 "/<>/_include/workflow/LRUCache.h" 2935449: list_empty(&this->in_use) 2935449: # 82 "/<>/_include/workflow/LRUCache.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 82 "/<>/_include/workflow/LRUCache.h" 2935449: "list_empty(&this->in_use)" 2935449: # 82 "/<>/_include/workflow/LRUCache.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 82 "/<>/_include/workflow/LRUCache.h" 2935449: ; 2935449: for (pos = (&this->not_use)->next, tmp = pos->next; pos != (&this->not_use); pos = tmp, tmp = pos->next) 2935449: { 2935449: e = ((Handle *)((char *)(pos)-(unsigned long)(&((Handle *)0)->list))); 2935449: 2935449: # 86 "/<>/_include/workflow/LRUCache.h" 3 2935449: (static_cast ( 2935449: # 86 "/<>/_include/workflow/LRUCache.h" 2935449: e->in_cache 2935449: # 86 "/<>/_include/workflow/LRUCache.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 86 "/<>/_include/workflow/LRUCache.h" 2935449: "e->in_cache" 2935449: # 86 "/<>/_include/workflow/LRUCache.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 86 "/<>/_include/workflow/LRUCache.h" 2935449: ; 2935449: e->in_cache = false; 2935449: 2935449: # 88 "/<>/_include/workflow/LRUCache.h" 3 2935449: (static_cast ( 2935449: # 88 "/<>/_include/workflow/LRUCache.h" 2935449: e->ref == 1 2935449: # 88 "/<>/_include/workflow/LRUCache.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 88 "/<>/_include/workflow/LRUCache.h" 2935449: "e->ref == 1" 2935449: # 88 "/<>/_include/workflow/LRUCache.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 88 "/<>/_include/workflow/LRUCache.h" 2935449: ; 2935449: this->unref(e); 2935449: } 2935449: } 2935449: 2935449: 2935449: 2935449: void set_max_size(size_t max_size) 2935449: { 2935449: this->max_size = max_size; 2935449: } 2935449: 2935449: 2935449: void prune() 2935449: { 2935449: struct list_head *pos, *tmp; 2935449: Handle *e; 2935449: 2935449: for (pos = (&this->not_use)->next, tmp = pos->next; pos != (&this->not_use); pos = tmp, tmp = pos->next) 2935449: { 2935449: e = ((Handle *)((char *)(pos)-(unsigned long)(&((Handle *)0)->list))); 2935449: 2935449: # 109 "/<>/_include/workflow/LRUCache.h" 3 2935449: (static_cast ( 2935449: # 109 "/<>/_include/workflow/LRUCache.h" 2935449: e->ref == 1 2935449: # 109 "/<>/_include/workflow/LRUCache.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 109 "/<>/_include/workflow/LRUCache.h" 2935449: "e->ref == 1" 2935449: # 109 "/<>/_include/workflow/LRUCache.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 109 "/<>/_include/workflow/LRUCache.h" 2935449: ; 2935449: rb_erase(&e->rb, &this->cache_map); 2935449: this->erase_node(e); 2935449: } 2935449: } 2935449: 2935449: 2935449: void release(const Handle *handle) 2935449: { 2935449: this->unref(const_cast(handle)); 2935449: } 2935449: 2935449: 2935449: 2935449: const Handle *get(const KEY& key) 2935449: { 2935449: struct rb_node *p = this->cache_map.rb_node; 2935449: Handle *bound = 2935449: # 126 "/<>/_include/workflow/LRUCache.h" 3 4 2935449: __null 2935449: # 126 "/<>/_include/workflow/LRUCache.h" 2935449: ; 2935449: Handle *e; 2935449: 2935449: while (p) 2935449: { 2935449: e = ((Handle *)((char *)(p)-(unsigned long)(&((Handle *)0)->rb))); 2935449: if (!(e->key < key)) 2935449: { 2935449: bound = e; 2935449: p = p->rb_left; 2935449: } 2935449: else 2935449: p = p->rb_right; 2935449: } 2935449: 2935449: if (bound && !(key < bound->key)) 2935449: { 2935449: this->ref(bound); 2935449: return bound; 2935449: } 2935449: 2935449: return 2935449: # 147 "/<>/_include/workflow/LRUCache.h" 3 4 2935449: __null 2935449: # 147 "/<>/_include/workflow/LRUCache.h" 2935449: ; 2935449: } 2935449: 2935449: 2935449: 2935449: const Handle *put(const KEY& key, VALUE value) 2935449: { 2935449: struct rb_node **p = &this->cache_map.rb_node; 2935449: struct rb_node *parent = 2935449: # 155 "/<>/_include/workflow/LRUCache.h" 3 4 2935449: __null 2935449: # 155 "/<>/_include/workflow/LRUCache.h" 2935449: ; 2935449: Handle *bound = 2935449: # 156 "/<>/_include/workflow/LRUCache.h" 3 4 2935449: __null 2935449: # 156 "/<>/_include/workflow/LRUCache.h" 2935449: ; 2935449: Handle *e; 2935449: 2935449: while (*p) 2935449: { 2935449: parent = *p; 2935449: e = ((Handle *)((char *)(*p)-(unsigned long)(&((Handle *)0)->rb))); 2935449: if (!(e->key < key)) 2935449: { 2935449: bound = e; 2935449: p = &(*p)->rb_left; 2935449: } 2935449: else 2935449: p = &(*p)->rb_right; 2935449: } 2935449: 2935449: e = new Handle(key, value); 2935449: e->in_cache = true; 2935449: e->ref = 2; 2935449: list_add_tail(&e->list, &this->in_use); 2935449: this->size++; 2935449: 2935449: if (bound && !(key < bound->key)) 2935449: { 2935449: rb_replace_node(&bound->rb, &e->rb, &this->cache_map); 2935449: this->erase_node(bound); 2935449: } 2935449: else 2935449: { 2935449: rb_link_node(&e->rb, parent, p); 2935449: rb_insert_color(&e->rb, &this->cache_map); 2935449: } 2935449: 2935449: if (this->max_size > 0) 2935449: { 2935449: while (this->size > this->max_size && !list_empty(&this->not_use)) 2935449: { 2935449: Handle *tmp = ((Handle *)((char *)(this->not_use.next)-(unsigned long)(&((Handle *)0)->list))); 2935449: 2935449: # 194 "/<>/_include/workflow/LRUCache.h" 3 2935449: (static_cast ( 2935449: # 194 "/<>/_include/workflow/LRUCache.h" 2935449: tmp->ref == 1 2935449: # 194 "/<>/_include/workflow/LRUCache.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 194 "/<>/_include/workflow/LRUCache.h" 2935449: "tmp->ref == 1" 2935449: # 194 "/<>/_include/workflow/LRUCache.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 194 "/<>/_include/workflow/LRUCache.h" 2935449: ; 2935449: rb_erase(&tmp->rb, &this->cache_map); 2935449: this->erase_node(tmp); 2935449: } 2935449: } 2935449: 2935449: return e; 2935449: } 2935449: 2935449: 2935449: void del(const KEY& key) 2935449: { 2935449: Handle *e = const_cast(this->get(key)); 2935449: 2935449: if (e) 2935449: { 2935449: this->unref(e); 2935449: rb_erase(&e->rb, &this->cache_map); 2935449: this->erase_node(e); 2935449: } 2935449: } 2935449: 2935449: private: 2935449: void ref(Handle *e) 2935449: { 2935449: if (e->in_cache && e->ref == 1) 2935449: list_move_tail(&e->list, &this->in_use); 2935449: 2935449: e->ref++; 2935449: } 2935449: 2935449: void unref(Handle *e) 2935449: { 2935449: 2935449: # 227 "/<>/_include/workflow/LRUCache.h" 3 2935449: (static_cast ( 2935449: # 227 "/<>/_include/workflow/LRUCache.h" 2935449: e->ref > 0 2935449: # 227 "/<>/_include/workflow/LRUCache.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 227 "/<>/_include/workflow/LRUCache.h" 2935449: "e->ref > 0" 2935449: # 227 "/<>/_include/workflow/LRUCache.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 227 "/<>/_include/workflow/LRUCache.h" 2935449: ; 2935449: if (--e->ref == 0) 2935449: { 2935449: 2935449: # 230 "/<>/_include/workflow/LRUCache.h" 3 2935449: (static_cast ( 2935449: # 230 "/<>/_include/workflow/LRUCache.h" 2935449: !e->in_cache 2935449: # 230 "/<>/_include/workflow/LRUCache.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 230 "/<>/_include/workflow/LRUCache.h" 2935449: "!e->in_cache" 2935449: # 230 "/<>/_include/workflow/LRUCache.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 230 "/<>/_include/workflow/LRUCache.h" 2935449: ; 2935449: this->value_deleter(e->value); 2935449: delete e; 2935449: } 2935449: else if (e->in_cache && e->ref == 1) 2935449: list_move_tail(&e->list, &this->not_use); 2935449: } 2935449: 2935449: void erase_node(Handle *e) 2935449: { 2935449: 2935449: # 240 "/<>/_include/workflow/LRUCache.h" 3 2935449: (static_cast ( 2935449: # 240 "/<>/_include/workflow/LRUCache.h" 2935449: e->in_cache 2935449: # 240 "/<>/_include/workflow/LRUCache.h" 3 2935449: ) ? void (0) : __assert_fail ( 2935449: # 240 "/<>/_include/workflow/LRUCache.h" 2935449: "e->in_cache" 2935449: # 240 "/<>/_include/workflow/LRUCache.h" 3 2935449: , __builtin_FILE (), __builtin_LINE (), __extension__ __PRETTY_FUNCTION__)) 2935449: # 240 "/<>/_include/workflow/LRUCache.h" 2935449: ; 2935449: list_del(&e->list); 2935449: e->in_cache = false; 2935449: this->size--; 2935449: this->unref(e); 2935449: } 2935449: 2935449: size_t max_size; 2935449: size_t size; 2935449: 2935449: struct list_head not_use; 2935449: struct list_head in_use; 2935449: struct rb_root cache_map; 2935449: 2935449: ValueDeleter value_deleter; 2935449: }; 2935449: # 28 "/<>/_include/workflow/DnsCache.h" 2 2935449: # 1 "/<>/_include/workflow/DnsUtil.h" 1 2935449: # 30 "/<>/_include/workflow/DnsUtil.h" 2935449: namespace protocol 2935449: { 2935449: 2935449: class DnsUtil 2935449: { 2935449: public: 2935449: static int getaddrinfo(const DnsResponse *resp, 2935449: unsigned short port, 2935449: struct addrinfo **res); 2935449: static void freeaddrinfo(struct addrinfo *ai); 2935449: }; 2935449: 2935449: class DnsResultCursor 2935449: { 2935449: public: 2935449: DnsResultCursor(const DnsResponse *resp) : 2935449: parser(resp->get_parser()) 2935449: { 2935449: dns_answer_cursor_init(&cursor, parser); 2935449: record = 2935449: # 49 "/<>/_include/workflow/DnsUtil.h" 3 4 2935449: __null 2935449: # 49 "/<>/_include/workflow/DnsUtil.h" 2935449: ; 2935449: } 2935449: 2935449: DnsResultCursor(DnsResultCursor&& move) = delete; 2935449: DnsResultCursor& operator=(DnsResultCursor&& move) = delete; 2935449: 2935449: virtual ~DnsResultCursor() { } 2935449: 2935449: void reset_answer_cursor() 2935449: { 2935449: dns_answer_cursor_init(&cursor, parser); 2935449: } 2935449: 2935449: void reset_authority_cursor() 2935449: { 2935449: dns_authority_cursor_init(&cursor, parser); 2935449: } 2935449: 2935449: void reset_additional_cursor() 2935449: { 2935449: dns_additional_cursor_init(&cursor, parser); 2935449: } 2935449: 2935449: bool next(struct dns_record **next_record) 2935449: { 2935449: int ret = dns_record_cursor_next(&record, &cursor); 2935449: if (ret != 0) 2935449: record = 2935449: # 76 "/<>/_include/workflow/DnsUtil.h" 3 4 2935449: __null 2935449: # 76 "/<>/_include/workflow/DnsUtil.h" 2935449: ; 2935449: else 2935449: *next_record = record; 2935449: 2935449: return ret == 0; 2935449: } 2935449: 2935449: bool find_cname(const char *name, const char **cname) 2935449: { 2935449: return dns_record_cursor_find_cname(name, cname, &cursor) == 0; 2935449: } 2935449: 2935449: private: 2935449: const dns_parser_t *parser; 2935449: dns_record_cursor_t cursor; 2935449: struct dns_record *record; 2935449: }; 2935449: 2935449: } 2935449: # 29 "/<>/_include/workflow/DnsCache.h" 2 2935449: 2935449: 2935449: 2935449: 2935449: struct DnsCacheValue 2935449: { 2935449: struct addrinfo *addrinfo; 2935449: int64_t confident_time; 2935449: int64_t expire_time; 2935449: 2935449: bool delayed() const 2935449: { 2935449: return addrinfo->ai_flags & 2; 2935449: } 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: class DnsCache 2935449: { 2935449: public: 2935449: using HostPort = std::pair; 2935449: using DnsHandle = LRUHandle; 2935449: 2935449: public: 2935449: 2935449: 2935449: 2935449: const DnsHandle *get(const HostPort& host_port); 2935449: 2935449: const DnsHandle *get(const std::string& host, unsigned short port) 2935449: { 2935449: return get(HostPort(host, port)); 2935449: } 2935449: 2935449: const DnsHandle *get(const char *host, unsigned short port) 2935449: { 2935449: return get(std::string(host), port); 2935449: } 2935449: 2935449: const DnsHandle *get_ttl(const HostPort& host_port) 2935449: { 2935449: return get_inner(host_port, 0); 2935449: } 2935449: 2935449: const DnsHandle *get_ttl(const std::string& host, unsigned short port) 2935449: { 2935449: return get_ttl(HostPort(host, port)); 2935449: } 2935449: 2935449: const DnsHandle *get_ttl(const char *host, unsigned short port) 2935449: { 2935449: return get_ttl(std::string(host), port); 2935449: } 2935449: 2935449: const DnsHandle *get_confident(const HostPort& host_port) 2935449: { 2935449: return get_inner(host_port, 1); 2935449: } 2935449: 2935449: const DnsHandle *get_confident(const std::string& host, unsigned short port) 2935449: { 2935449: return get_confident(HostPort(host, port)); 2935449: } 2935449: 2935449: const DnsHandle *get_confident(const char *host, unsigned short port) 2935449: { 2935449: return get_confident(std::string(host), port); 2935449: } 2935449: 2935449: const DnsHandle *put(const HostPort& host_port, 2935449: struct addrinfo *addrinfo, 2935449: unsigned int dns_ttl_default, 2935449: unsigned int dns_ttl_min); 2935449: 2935449: const DnsHandle *put(const std::string& host, 2935449: unsigned short port, 2935449: struct addrinfo *addrinfo, 2935449: unsigned int dns_ttl_default, 2935449: unsigned int dns_ttl_min) 2935449: { 2935449: return put(HostPort(host, port), addrinfo, dns_ttl_default, dns_ttl_min); 2935449: } 2935449: 2935449: const DnsHandle *put(const char *host, 2935449: unsigned short port, 2935449: struct addrinfo *addrinfo, 2935449: unsigned int dns_ttl_default, 2935449: unsigned int dns_ttl_min) 2935449: { 2935449: return put(std::string(host), port, addrinfo, dns_ttl_default, dns_ttl_min); 2935449: } 2935449: 2935449: 2935449: void release(const DnsHandle *handle); 2935449: 2935449: 2935449: void del(const HostPort& key); 2935449: 2935449: void del(const std::string& host, unsigned short port) 2935449: { 2935449: del(HostPort(host, port)); 2935449: } 2935449: 2935449: void del(const char *host, unsigned short port) 2935449: { 2935449: del(std::string(host), port); 2935449: } 2935449: 2935449: private: 2935449: const DnsHandle *get_inner(const HostPort& host_port, int type); 2935449: 2935449: std::mutex mutex_; 2935449: 2935449: class ValueDeleter 2935449: { 2935449: public: 2935449: void operator() (const DnsCacheValue& value) const 2935449: { 2935449: struct addrinfo *ai = value.addrinfo; 2935449: 2935449: if (ai) 2935449: { 2935449: if (ai->ai_flags & 1) 2935449: freeaddrinfo(ai); 2935449: else 2935449: protocol::DnsUtil::freeaddrinfo(ai); 2935449: } 2935449: } 2935449: }; 2935449: 2935449: LRUCache cache_pool_; 2935449: 2935449: public: 2935449: 2935449: DnsCache(); 2935449: ~DnsCache(); 2935449: }; 2935449: # 31 "/<>/_include/workflow/WFGlobal.h" 2 2935449: # 1 "/<>/_include/workflow/RouteManager.h" 1 2935449: # 33 "/<>/_include/workflow/RouteManager.h" 2935449: class RouteManager 2935449: { 2935449: public: 2935449: class RouteResult 2935449: { 2935449: public: 2935449: void *cookie; 2935449: CommSchedObject *request_object; 2935449: 2935449: public: 2935449: RouteResult(): cookie( 2935449: # 43 "/<>/_include/workflow/RouteManager.h" 3 4 2935449: __null 2935449: # 43 "/<>/_include/workflow/RouteManager.h" 2935449: ), request_object( 2935449: # 43 "/<>/_include/workflow/RouteManager.h" 3 4 2935449: __null 2935449: # 43 "/<>/_include/workflow/RouteManager.h" 2935449: ) { } 2935449: void clear() { cookie = 2935449: # 44 "/<>/_include/workflow/RouteManager.h" 3 4 2935449: __null 2935449: # 44 "/<>/_include/workflow/RouteManager.h" 2935449: ; request_object = 2935449: # 44 "/<>/_include/workflow/RouteManager.h" 3 4 2935449: __null 2935449: # 44 "/<>/_include/workflow/RouteManager.h" 2935449: ; } 2935449: }; 2935449: 2935449: class RouteTarget : public CommSchedTarget 2935449: { 2935449: 2935449: public: 2935449: int init(const struct sockaddr *addr, socklen_t addrlen, SSL_CTX *ssl_ctx, 2935449: int connect_timeout, int ssl_connect_timeout, int response_timeout, 2935449: size_t max_connections) 2935449: { 2935449: int ret = this->CommSchedTarget::init(addr, addrlen, ssl_ctx, 2935449: connect_timeout, ssl_connect_timeout, 2935449: response_timeout, max_connections); 2935449: 2935449: if (ret >= 0 && ssl_ctx) 2935449: SSL_CTX_up_ref(ssl_ctx); 2935449: 2935449: return ret; 2935449: } 2935449: 2935449: void deinit() 2935449: { 2935449: SSL_CTX *ssl_ctx = this->get_ssl_ctx(); 2935449: 2935449: this->CommSchedTarget::deinit(); 2935449: if (ssl_ctx) 2935449: SSL_CTX_free(ssl_ctx); 2935449: } 2935449: 2935449: 2935449: public: 2935449: int state; 2935449: 2935449: private: 2935449: virtual WFConnection *new_connection(int connect_fd) 2935449: { 2935449: return new WFConnection; 2935449: } 2935449: 2935449: public: 2935449: RouteTarget() : state(0) { } 2935449: }; 2935449: 2935449: public: 2935449: int get(enum TransportType type, 2935449: const struct addrinfo *addrinfo, 2935449: const std::string& other_info, 2935449: const struct EndpointParams *ep_params, 2935449: const std::string& hostname, SSL_CTX *ssl_ctx, 2935449: RouteResult& result); 2935449: 2935449: RouteManager() 2935449: { 2935449: cache_.rb_node = 2935449: # 98 "/<>/_include/workflow/RouteManager.h" 3 4 2935449: __null 2935449: # 98 "/<>/_include/workflow/RouteManager.h" 2935449: ; 2935449: } 2935449: 2935449: ~RouteManager(); 2935449: 2935449: private: 2935449: std::mutex mutex_; 2935449: struct rb_root cache_; 2935449: 2935449: public: 2935449: static void notify_unavailable(void *cookie, CommTarget *target); 2935449: static void notify_available(void *cookie, CommTarget *target); 2935449: }; 2935449: # 32 "/<>/_include/workflow/WFGlobal.h" 2 2935449: 2935449: 2935449: # 1 "/<>/_include/workflow/WFResourcePool.h" 1 2935449: # 27 "/<>/_include/workflow/WFResourcePool.h" 2935449: class WFResourcePool 2935449: { 2935449: public: 2935449: WFConditional *get(SubTask *task, void **resbuf); 2935449: WFConditional *get(SubTask *task); 2935449: void post(void *res); 2935449: 2935449: public: 2935449: struct Data 2935449: { 2935449: void *pop() { return this->pool->pop(); } 2935449: void push(void *res) { this->pool->push(res); } 2935449: 2935449: void **res; 2935449: long value; 2935449: size_t index; 2935449: struct list_head wait_list; 2935449: std::mutex mutex; 2935449: WFResourcePool *pool; 2935449: }; 2935449: 2935449: protected: 2935449: virtual void *pop() 2935449: { 2935449: return this->data.res[this->data.index++]; 2935449: } 2935449: 2935449: virtual void push(void *res) 2935449: { 2935449: this->data.res[--this->data.index] = res; 2935449: } 2935449: 2935449: protected: 2935449: struct Data data; 2935449: 2935449: private: 2935449: void create(size_t n); 2935449: 2935449: public: 2935449: WFResourcePool(void *const *res, size_t n); 2935449: WFResourcePool(size_t n); 2935449: virtual ~WFResourcePool() { delete []this->data.res; } 2935449: }; 2935449: # 35 "/<>/_include/workflow/WFGlobal.h" 2 2935449: # 1 "/<>/_include/workflow/WFNameService.h" 1 2935449: # 33 "/<>/_include/workflow/WFNameService.h" 2935449: class WFRouterTask : public WFGenericTask 2935449: { 2935449: public: 2935449: RouteManager::RouteResult *get_result() { return &this->result; } 2935449: 2935449: public: 2935449: void set_state(int state) { this->state = state; } 2935449: void set_error(int error) { this->error = error; } 2935449: 2935449: protected: 2935449: RouteManager::RouteResult result; 2935449: std::function callback; 2935449: 2935449: protected: 2935449: virtual SubTask *done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: delete this; 2935449: return series->pop(); 2935449: } 2935449: 2935449: public: 2935449: WFRouterTask(std::function&& cb) : 2935449: callback(std::move(cb)) 2935449: { 2935449: } 2935449: }; 2935449: 2935449: class WFNSTracing 2935449: { 2935449: public: 2935449: void *data; 2935449: void (*deleter)(void *); 2935449: 2935449: public: 2935449: WFNSTracing() 2935449: { 2935449: this->data = 2935449: # 74 "/<>/_include/workflow/WFNameService.h" 3 4 2935449: __null 2935449: # 74 "/<>/_include/workflow/WFNameService.h" 2935449: ; 2935449: this->deleter = 2935449: # 75 "/<>/_include/workflow/WFNameService.h" 3 4 2935449: __null 2935449: # 75 "/<>/_include/workflow/WFNameService.h" 2935449: ; 2935449: } 2935449: }; 2935449: 2935449: struct WFNSParams 2935449: { 2935449: enum TransportType type; 2935449: ParsedURI& uri; 2935449: const char *info; 2935449: SSL_CTX *ssl_ctx; 2935449: bool fixed_addr; 2935449: bool fixed_conn; 2935449: int retry_times; 2935449: WFNSTracing *tracing; 2935449: }; 2935449: 2935449: using router_callback_t = std::function; 2935449: 2935449: class WFNSPolicy 2935449: { 2935449: public: 2935449: virtual WFRouterTask *create_router_task(const struct WFNSParams *params, 2935449: router_callback_t callback) = 0; 2935449: 2935449: virtual void success(RouteManager::RouteResult *result, 2935449: WFNSTracing *tracing, 2935449: CommTarget *target) 2935449: { 2935449: RouteManager::notify_available(result->cookie, target); 2935449: } 2935449: 2935449: virtual void failed(RouteManager::RouteResult *result, 2935449: WFNSTracing *tracing, 2935449: CommTarget *target) 2935449: { 2935449: if (target) 2935449: RouteManager::notify_unavailable(result->cookie, target); 2935449: } 2935449: 2935449: public: 2935449: virtual ~WFNSPolicy() { } 2935449: }; 2935449: 2935449: class WFNameService 2935449: { 2935449: public: 2935449: int add_policy(const char *name, WFNSPolicy *policy); 2935449: WFNSPolicy *get_policy(const char *name); 2935449: WFNSPolicy *del_policy(const char *name); 2935449: 2935449: public: 2935449: WFNSPolicy *get_default_policy() const 2935449: { 2935449: return this->default_policy; 2935449: } 2935449: 2935449: void set_default_policy(WFNSPolicy *policy) 2935449: { 2935449: this->default_policy = policy; 2935449: } 2935449: 2935449: private: 2935449: WFNSPolicy *default_policy; 2935449: struct rb_root root; 2935449: pthread_rwlock_t rwlock; 2935449: 2935449: private: 2935449: struct WFNSPolicyEntry *get_policy_entry(const char *name); 2935449: 2935449: public: 2935449: WFNameService(WFNSPolicy *default_policy) : 2935449: rwlock( 2935449: # 146 "/<>/_include/workflow/WFNameService.h" 3 4 2935449: { { 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_DEFAULT_NP, 0, 0, 0, 0 } } 2935449: # 146 "/<>/_include/workflow/WFNameService.h" 2935449: ) 2935449: { 2935449: this->root.rb_node = 2935449: # 148 "/<>/_include/workflow/WFNameService.h" 3 4 2935449: __null 2935449: # 148 "/<>/_include/workflow/WFNameService.h" 2935449: ; 2935449: this->default_policy = default_policy; 2935449: } 2935449: 2935449: virtual ~WFNameService(); 2935449: }; 2935449: # 36 "/<>/_include/workflow/WFGlobal.h" 2 2935449: # 1 "/<>/_include/workflow/WFDnsResolver.h" 1 2935449: # 27 "/<>/_include/workflow/WFDnsResolver.h" 2935449: class WFResolverTask : public WFRouterTask 2935449: { 2935449: public: 2935449: WFResolverTask(const struct WFNSParams *ns_params, 2935449: unsigned int dns_ttl_default, unsigned int dns_ttl_min, 2935449: const struct EndpointParams *ep_params, 2935449: router_callback_t&& cb) : 2935449: WFRouterTask(std::move(cb)), 2935449: ns_params_(*ns_params), 2935449: ep_params_(*ep_params) 2935449: { 2935449: if (ns_params_.fixed_conn) 2935449: ep_params_.max_connections = 1; 2935449: 2935449: dns_ttl_default_ = dns_ttl_default; 2935449: dns_ttl_min_ = dns_ttl_min; 2935449: has_next_ = false; 2935449: in_guard_ = false; 2935449: msg_ = 2935449: # 45 "/<>/_include/workflow/WFDnsResolver.h" 3 4 2935449: __null 2935449: # 45 "/<>/_include/workflow/WFDnsResolver.h" 2935449: ; 2935449: } 2935449: 2935449: WFResolverTask(const struct WFNSParams *ns_params, 2935449: router_callback_t&& cb) : 2935449: WFRouterTask(std::move(cb)), 2935449: ns_params_(*ns_params) 2935449: { 2935449: if (ns_params_.fixed_conn) 2935449: ep_params_.max_connections = 1; 2935449: 2935449: has_next_ = false; 2935449: in_guard_ = false; 2935449: msg_ = 2935449: # 58 "/<>/_include/workflow/WFDnsResolver.h" 3 4 2935449: __null 2935449: # 58 "/<>/_include/workflow/WFDnsResolver.h" 2935449: ; 2935449: } 2935449: 2935449: protected: 2935449: virtual void dispatch(); 2935449: virtual SubTask *done(); 2935449: void set_has_next() { has_next_ = true; } 2935449: 2935449: private: 2935449: void thread_dns_callback(void *thrd_dns_task); 2935449: void dns_single_callback(void *net_dns_task); 2935449: static void dns_partial_callback(void *net_dns_task); 2935449: void dns_parallel_callback(const void *parallel); 2935449: void dns_callback_internal(void *thrd_dns_output, 2935449: unsigned int ttl_default, 2935449: unsigned int ttl_min); 2935449: 2935449: void request_dns(); 2935449: void task_callback(); 2935449: 2935449: protected: 2935449: struct WFNSParams ns_params_; 2935449: unsigned int dns_ttl_default_; 2935449: unsigned int dns_ttl_min_; 2935449: struct EndpointParams ep_params_; 2935449: 2935449: private: 2935449: const char *host_; 2935449: unsigned short port_; 2935449: bool has_next_; 2935449: bool in_guard_; 2935449: void *msg_; 2935449: }; 2935449: 2935449: class WFDnsResolver : public WFNSPolicy 2935449: { 2935449: public: 2935449: virtual WFRouterTask *create_router_task(const struct WFNSParams *params, 2935449: router_callback_t callback); 2935449: }; 2935449: # 37 "/<>/_include/workflow/WFGlobal.h" 2 2935449: # 48 "/<>/_include/workflow/WFGlobal.h" 2935449: struct WFGlobalSettings 2935449: { 2935449: struct EndpointParams endpoint_params; 2935449: struct EndpointParams dns_server_params; 2935449: unsigned int dns_ttl_default; 2935449: unsigned int dns_ttl_min; 2935449: int dns_threads; 2935449: int poller_threads; 2935449: int handler_threads; 2935449: int compute_threads; 2935449: int fio_max_events; 2935449: const char *resolv_conf_path; 2935449: const char *hosts_path; 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: static constexpr struct WFGlobalSettings GLOBAL_SETTINGS_DEFAULT = 2935449: { 2935449: .endpoint_params = ENDPOINT_PARAMS_DEFAULT, 2935449: .dns_server_params = ENDPOINT_PARAMS_DEFAULT, 2935449: .dns_ttl_default = 3600, 2935449: .dns_ttl_min = 60, 2935449: .dns_threads = 4, 2935449: .poller_threads = 4, 2935449: .handler_threads = 20, 2935449: .compute_threads = -1, 2935449: .fio_max_events = 4096, 2935449: .resolv_conf_path = "/etc/resolv.conf", 2935449: .hosts_path = "/etc/hosts", 2935449: }; 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: extern void WORKFLOW_library_init(const struct WFGlobalSettings *settings); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: class WFGlobal 2935449: { 2935449: public: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static void register_scheme_port(const std::string& scheme, 2935449: unsigned short port); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static const char *get_default_port(const std::string& scheme); 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: static const struct WFGlobalSettings *get_global_settings() 2935449: { 2935449: return &settings_; 2935449: } 2935449: 2935449: static void set_global_settings(const struct WFGlobalSettings *settings) 2935449: { 2935449: settings_ = *settings; 2935449: } 2935449: 2935449: static const char *get_error_string(int state, int error); 2935449: 2935449: static bool increase_handler_thread() 2935449: { 2935449: return WFGlobal::get_scheduler()->increase_handler_thread() == 0; 2935449: } 2935449: 2935449: static bool decrease_handler_thread() 2935449: { 2935449: return WFGlobal::get_scheduler()->decrease_handler_thread() == 0; 2935449: } 2935449: 2935449: static bool increase_compute_thread() 2935449: { 2935449: return WFGlobal::get_compute_executor()->increase_thread() == 0; 2935449: } 2935449: 2935449: static bool decrease_compute_thread() 2935449: { 2935449: return WFGlobal::get_compute_executor()->decrease_thread() == 0; 2935449: } 2935449: 2935449: 2935449: public: 2935449: static bool is_scheduler_created(); 2935449: static class CommScheduler *get_scheduler(); 2935449: static SSL_CTX *get_ssl_client_ctx(); 2935449: static SSL_CTX *new_ssl_server_ctx(); 2935449: static class ExecQueue *get_exec_queue(const std::string& queue_name); 2935449: static class Executor *get_compute_executor(); 2935449: static class IOService *get_io_service(); 2935449: static class ExecQueue *get_dns_queue(); 2935449: static class Executor *get_dns_executor(); 2935449: static class WFDnsClient *get_dns_client(); 2935449: static class WFResourcePool *get_dns_respool(); 2935449: 2935449: static class RouteManager *get_route_manager() 2935449: { 2935449: return &route_manager_; 2935449: } 2935449: 2935449: static class DnsCache *get_dns_cache() 2935449: { 2935449: return &dns_cache_; 2935449: } 2935449: 2935449: static class WFDnsResolver *get_dns_resolver() 2935449: { 2935449: return &dns_resolver_; 2935449: } 2935449: 2935449: static class WFNameService *get_name_service() 2935449: { 2935449: return &name_service_; 2935449: } 2935449: 2935449: public: 2935449: static int sync_operation_begin(); 2935449: static void sync_operation_end(int cookie); 2935449: 2935449: private: 2935449: static struct WFGlobalSettings settings_; 2935449: static RouteManager route_manager_; 2935449: static DnsCache dns_cache_; 2935449: static WFDnsResolver dns_resolver_; 2935449: static WFNameService name_service_; 2935449: }; 2935449: # 33 "/<>/_include/workflow/WFTaskFactory.inl" 2 2935449: 2935449: 2935449: 2935449: 2935449: # 1 "/<>/_include/workflow/WFTaskError.h" 1 2935449: # 31 "/<>/_include/workflow/WFTaskError.h" 2935449: enum 2935449: { 2935449: 2935449: WFT_ERR_URI_PARSE_FAILED = 1001, 2935449: WFT_ERR_URI_SCHEME_INVALID = 1002, 2935449: WFT_ERR_URI_PORT_INVALID = 1003, 2935449: WFT_ERR_UPSTREAM_UNAVAILABLE = 1004, 2935449: 2935449: 2935449: WFT_ERR_HTTP_BAD_REDIRECT_HEADER = 2001, 2935449: WFT_ERR_HTTP_PROXY_CONNECT_FAILED = 2002, 2935449: 2935449: 2935449: WFT_ERR_REDIS_ACCESS_DENIED = 3001, 2935449: WFT_ERR_REDIS_COMMAND_DISALLOWED = 3002, 2935449: 2935449: 2935449: WFT_ERR_MYSQL_HOST_NOT_ALLOWED = 4001, 2935449: WFT_ERR_MYSQL_ACCESS_DENIED = 4002, 2935449: WFT_ERR_MYSQL_INVALID_CHARACTER_SET = 4003, 2935449: WFT_ERR_MYSQL_COMMAND_DISALLOWED = 4004, 2935449: WFT_ERR_MYSQL_QUERY_NOT_SET = 4005, 2935449: WFT_ERR_MYSQL_SSL_NOT_SUPPORTED = 4006, 2935449: 2935449: 2935449: WFT_ERR_KAFKA_PARSE_RESPONSE_FAILED = 5001, 2935449: WFT_ERR_KAFKA_PRODUCE_FAILED = 5002, 2935449: WFT_ERR_KAFKA_FETCH_FAILED = 5003, 2935449: WFT_ERR_KAFKA_CGROUP_FAILED = 5004, 2935449: WFT_ERR_KAFKA_COMMIT_FAILED = 5005, 2935449: WFT_ERR_KAFKA_META_FAILED = 5006, 2935449: WFT_ERR_KAFKA_LEAVEGROUP_FAILED = 5007, 2935449: WFT_ERR_KAFKA_API_UNKNOWN = 5008, 2935449: WFT_ERR_KAFKA_VERSION_DISALLOWED = 5009, 2935449: WFT_ERR_KAFKA_SASL_DISALLOWED = 5010, 2935449: WFT_ERR_KAFKA_ARRANGE_FAILED = 5011, 2935449: WFT_ERR_KAFKA_LIST_OFFSETS_FAILED = 5012, 2935449: WFT_ERR_KAFKA_CGROUP_ASSIGN_FAILED = 5013, 2935449: 2935449: 2935449: WFT_ERR_CONSUL_API_UNKNOWN = 6001, 2935449: WFT_ERR_CONSUL_CHECK_RESPONSE_FAILED = 6002, 2935449: }; 2935449: # 38 "/<>/_include/workflow/WFTaskFactory.inl" 2 2935449: 2935449: 2935449: 2935449: class __WFDynamicTask : public WFDynamicTask 2935449: { 2935449: protected: 2935449: virtual void dispatch() 2935449: { 2935449: series_of(this)->push_front(this->create(this)); 2935449: this->WFDynamicTask::dispatch(); 2935449: } 2935449: 2935449: protected: 2935449: std::function create; 2935449: 2935449: public: 2935449: __WFDynamicTask(std::function&& create) : 2935449: create(std::move(create)) 2935449: { 2935449: } 2935449: }; 2935449: 2935449: inline WFDynamicTask * 2935449: WFTaskFactory::create_dynamic_task(dynamic_create_t create) 2935449: { 2935449: return new __WFDynamicTask(std::move(create)); 2935449: } 2935449: 2935449: template<> 2935449: int WFTaskFactory::send_by_name(const std::string&, void *const *, size_t); 2935449: 2935449: template 2935449: int WFTaskFactory::send_by_name(const std::string& mailbox_name, T *const msg[], 2935449: size_t max) 2935449: { 2935449: return WFTaskFactory::send_by_name(mailbox_name, (void *const *)msg, max); 2935449: } 2935449: 2935449: template<> 2935449: int WFTaskFactory::signal_by_name(const std::string&, void *const *, size_t); 2935449: 2935449: template 2935449: int WFTaskFactory::signal_by_name(const std::string& cond_name, T *const msg[], 2935449: size_t max) 2935449: { 2935449: return WFTaskFactory::signal_by_name(cond_name, (void *const *)msg, max); 2935449: } 2935449: 2935449: template 2935449: class WFComplexClientTask : public WFClientTask 2935449: { 2935449: protected: 2935449: using task_callback_t = std::function *)>; 2935449: 2935449: public: 2935449: WFComplexClientTask(int retry_max, task_callback_t&& cb): 2935449: WFClientTask( 2935449: # 94 "/<>/_include/workflow/WFTaskFactory.inl" 3 4 2935449: __null 2935449: # 94 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: , WFGlobal::get_scheduler(), std::move(cb)) 2935449: { 2935449: type_ = TT_TCP; 2935449: ssl_ctx_ = 2935449: # 97 "/<>/_include/workflow/WFTaskFactory.inl" 3 4 2935449: __null 2935449: # 97 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: fixed_addr_ = false; 2935449: fixed_conn_ = false; 2935449: retry_max_ = retry_max; 2935449: retry_times_ = 0; 2935449: redirect_ = false; 2935449: ns_policy_ = 2935449: # 103 "/<>/_include/workflow/WFTaskFactory.inl" 3 4 2935449: __null 2935449: # 103 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: router_task_ = 2935449: # 104 "/<>/_include/workflow/WFTaskFactory.inl" 3 4 2935449: __null 2935449: # 104 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: } 2935449: 2935449: protected: 2935449: 2935449: virtual bool init_success() { return true; } 2935449: virtual void init_failed() {} 2935449: virtual bool check_request() { return true; } 2935449: virtual WFRouterTask *route(); 2935449: virtual bool finish_once() { return true; } 2935449: 2935449: public: 2935449: void init(const ParsedURI& uri) 2935449: { 2935449: uri_ = uri; 2935449: init_with_uri(); 2935449: } 2935449: 2935449: void init(ParsedURI&& uri) 2935449: { 2935449: uri_ = std::move(uri); 2935449: init_with_uri(); 2935449: } 2935449: 2935449: void init(enum TransportType type, 2935449: const struct sockaddr *addr, 2935449: socklen_t addrlen, 2935449: const std::string& info); 2935449: 2935449: void set_transport_type(enum TransportType type) 2935449: { 2935449: type_ = type; 2935449: } 2935449: 2935449: enum TransportType get_transport_type() const { return type_; } 2935449: 2935449: void set_ssl_ctx(SSL_CTX *ssl_ctx) { ssl_ctx_ = ssl_ctx; } 2935449: 2935449: virtual const ParsedURI *get_current_uri() const { return &uri_; } 2935449: 2935449: void set_redirect(const ParsedURI& uri) 2935449: { 2935449: redirect_ = true; 2935449: init(uri); 2935449: } 2935449: 2935449: void set_redirect(enum TransportType type, const struct sockaddr *addr, 2935449: socklen_t addrlen, const std::string& info) 2935449: { 2935449: redirect_ = true; 2935449: init(type, addr, addrlen, info); 2935449: } 2935449: 2935449: bool is_fixed_addr() const { return this->fixed_addr_; } 2935449: 2935449: bool is_fixed_conn() const { return this->fixed_conn_; } 2935449: 2935449: protected: 2935449: void set_fixed_addr(int fixed) { this->fixed_addr_ = fixed; } 2935449: 2935449: void set_fixed_conn(int fixed) { this->fixed_conn_ = fixed; } 2935449: 2935449: void set_info(const std::string& info) 2935449: { 2935449: info_.assign(info); 2935449: } 2935449: 2935449: void set_info(const char *info) 2935449: { 2935449: info_.assign(info); 2935449: } 2935449: 2935449: protected: 2935449: virtual void dispatch(); 2935449: virtual SubTask *done(); 2935449: 2935449: void clear_resp() 2935449: { 2935449: protocol::ProtocolMessage head(std::move(this->resp)); 2935449: this->resp.~RESP(); 2935449: new(&this->resp) RESP; 2935449: *(protocol::ProtocolMessage *)&this->resp = std::move(head); 2935449: } 2935449: 2935449: void disable_retry() 2935449: { 2935449: retry_times_ = retry_max_; 2935449: } 2935449: 2935449: protected: 2935449: enum TransportType type_; 2935449: ParsedURI uri_; 2935449: std::string info_; 2935449: SSL_CTX *ssl_ctx_; 2935449: bool fixed_addr_; 2935449: bool fixed_conn_; 2935449: bool redirect_; 2935449: CTX ctx_; 2935449: int retry_max_; 2935449: int retry_times_; 2935449: WFNSPolicy *ns_policy_; 2935449: WFRouterTask *router_task_; 2935449: RouteManager::RouteResult route_result_; 2935449: WFNSTracing tracing_; 2935449: 2935449: public: 2935449: CTX *get_mutable_ctx() { return &ctx_; } 2935449: 2935449: private: 2935449: void clear_prev_state(); 2935449: void init_with_uri(); 2935449: bool set_port(); 2935449: void router_callback(void *t); 2935449: void switch_callback(void *t); 2935449: }; 2935449: 2935449: template 2935449: void WFComplexClientTask::clear_prev_state() 2935449: { 2935449: ns_policy_ = 2935449: # 223 "/<>/_include/workflow/WFTaskFactory.inl" 3 4 2935449: __null 2935449: # 223 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: route_result_.clear(); 2935449: if (tracing_.deleter) 2935449: { 2935449: tracing_.deleter(tracing_.data); 2935449: tracing_.deleter = 2935449: # 228 "/<>/_include/workflow/WFTaskFactory.inl" 3 4 2935449: __null 2935449: # 228 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: } 2935449: tracing_.data = 2935449: # 230 "/<>/_include/workflow/WFTaskFactory.inl" 3 4 2935449: __null 2935449: # 230 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: retry_times_ = 0; 2935449: this->state = WFT_STATE_UNDEFINED; 2935449: this->error = 0; 2935449: this->timeout_reason = 0; 2935449: } 2935449: 2935449: template 2935449: void WFComplexClientTask::init(enum TransportType type, 2935449: const struct sockaddr *addr, 2935449: socklen_t addrlen, 2935449: const std::string& info) 2935449: { 2935449: if (redirect_) 2935449: clear_prev_state(); 2935449: 2935449: auto params = WFGlobal::get_global_settings()->endpoint_params; 2935449: struct addrinfo addrinfo = { }; 2935449: addrinfo.ai_family = addr->sa_family; 2935449: addrinfo.ai_addr = (struct sockaddr *)addr; 2935449: addrinfo.ai_addrlen = addrlen; 2935449: 2935449: type_ = type; 2935449: info_.assign(info); 2935449: params.use_tls_sni = false; 2935449: if (WFGlobal::get_route_manager()->get(type, &addrinfo, info_, ¶ms, 2935449: "", ssl_ctx_, route_result_) < 0) 2935449: { 2935449: this->state = WFT_STATE_SYS_ERROR; 2935449: this->error = 2935449: # 259 "/<>/_include/workflow/WFTaskFactory.inl" 3 2935449: (*__errno_location ()) 2935449: # 259 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: } 2935449: else if (this->init_success()) 2935449: return; 2935449: 2935449: this->init_failed(); 2935449: } 2935449: 2935449: template 2935449: bool WFComplexClientTask::set_port() 2935449: { 2935449: if (uri_.port) 2935449: { 2935449: int port = atoi(uri_.port); 2935449: 2935449: if (port <= 0 || port > 65535) 2935449: { 2935449: this->state = WFT_STATE_TASK_ERROR; 2935449: this->error = WFT_ERR_URI_PORT_INVALID; 2935449: return false; 2935449: } 2935449: 2935449: return true; 2935449: } 2935449: 2935449: if (uri_.scheme) 2935449: { 2935449: const char *port_str = WFGlobal::get_default_port(uri_.scheme); 2935449: 2935449: if (port_str) 2935449: { 2935449: uri_.port = strdup(port_str); 2935449: if (uri_.port) 2935449: return true; 2935449: 2935449: this->state = WFT_STATE_SYS_ERROR; 2935449: this->error = 2935449: # 295 "/<>/_include/workflow/WFTaskFactory.inl" 3 2935449: (*__errno_location ()) 2935449: # 295 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: return false; 2935449: } 2935449: } 2935449: 2935449: this->state = WFT_STATE_TASK_ERROR; 2935449: this->error = WFT_ERR_URI_SCHEME_INVALID; 2935449: return false; 2935449: } 2935449: 2935449: template 2935449: void WFComplexClientTask::init_with_uri() 2935449: { 2935449: if (redirect_) 2935449: { 2935449: clear_prev_state(); 2935449: ns_policy_ = WFGlobal::get_dns_resolver(); 2935449: } 2935449: 2935449: if (uri_.state == 1) 2935449: { 2935449: if (this->set_port()) 2935449: { 2935449: if (this->init_success()) 2935449: return; 2935449: } 2935449: } 2935449: else if (uri_.state == 3) 2935449: { 2935449: this->state = WFT_STATE_SYS_ERROR; 2935449: this->error = uri_.error; 2935449: } 2935449: else 2935449: { 2935449: this->state = WFT_STATE_TASK_ERROR; 2935449: this->error = WFT_ERR_URI_PARSE_FAILED; 2935449: } 2935449: 2935449: this->init_failed(); 2935449: } 2935449: 2935449: template 2935449: WFRouterTask *WFComplexClientTask::route() 2935449: { 2935449: auto&& cb = std::bind(&WFComplexClientTask::router_callback, 2935449: this, 2935449: std::placeholders::_1); 2935449: struct WFNSParams params = { 2935449: .type = type_, 2935449: .uri = uri_, 2935449: .info = info_.c_str(), 2935449: .ssl_ctx = ssl_ctx_, 2935449: .fixed_addr = fixed_addr_, 2935449: .fixed_conn = fixed_conn_, 2935449: .retry_times = retry_times_, 2935449: .tracing = &tracing_, 2935449: }; 2935449: 2935449: if (!ns_policy_) 2935449: { 2935449: WFNameService *ns = WFGlobal::get_name_service(); 2935449: ns_policy_ = ns->get_policy(uri_.host ? uri_.host : ""); 2935449: } 2935449: 2935449: return ns_policy_->create_router_task(¶ms, std::move(cb)); 2935449: } 2935449: 2935449: template 2935449: void WFComplexClientTask::router_callback(void *t) 2935449: { 2935449: WFRouterTask *task = (WFRouterTask *)t; 2935449: 2935449: this->state = task->get_state(); 2935449: if (this->state == WFT_STATE_SUCCESS) 2935449: route_result_ = std::move(*task->get_result()); 2935449: else if (this->state == WFT_STATE_UNDEFINED) 2935449: { 2935449: 2935449: this->state = WFT_STATE_SYS_ERROR; 2935449: this->error = 2935449: # 374 "/<>/_include/workflow/WFTaskFactory.inl" 3 2935449: 38 2935449: # 374 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: } 2935449: else 2935449: this->error = task->get_error(); 2935449: } 2935449: 2935449: template 2935449: void WFComplexClientTask::dispatch() 2935449: { 2935449: switch (this->state) 2935449: { 2935449: case WFT_STATE_UNDEFINED: 2935449: if (this->check_request()) 2935449: { 2935449: if (this->route_result_.request_object) 2935449: { 2935449: case WFT_STATE_SUCCESS: 2935449: this->set_request_object(route_result_.request_object); 2935449: this->WFClientTask::dispatch(); 2935449: return; 2935449: } 2935449: 2935449: router_task_ = this->route(); 2935449: series_of(this)->push_front(this); 2935449: series_of(this)->push_front(router_task_); 2935449: } 2935449: 2935449: default: 2935449: break; 2935449: } 2935449: 2935449: this->subtask_done(); 2935449: } 2935449: 2935449: template 2935449: void WFComplexClientTask::switch_callback(void *t) 2935449: { 2935449: if (!redirect_) 2935449: { 2935449: if (this->state == WFT_STATE_SYS_ERROR && this->error < 0) 2935449: { 2935449: this->state = WFT_STATE_SSL_ERROR; 2935449: this->error = -this->error; 2935449: } 2935449: 2935449: if (tracing_.deleter) 2935449: { 2935449: tracing_.deleter(tracing_.data); 2935449: tracing_.deleter = 2935449: # 422 "/<>/_include/workflow/WFTaskFactory.inl" 3 4 2935449: __null 2935449: # 422 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: } 2935449: 2935449: if (this->callback) 2935449: this->callback(this); 2935449: } 2935449: 2935449: if (redirect_) 2935449: { 2935449: redirect_ = false; 2935449: clear_resp(); 2935449: this->target = 2935449: # 433 "/<>/_include/workflow/WFTaskFactory.inl" 3 4 2935449: __null 2935449: # 433 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: series_of(this)->push_front(this); 2935449: } 2935449: else 2935449: delete this; 2935449: } 2935449: 2935449: template 2935449: SubTask *WFComplexClientTask::done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (router_task_) 2935449: { 2935449: router_task_ = 2935449: # 447 "/<>/_include/workflow/WFTaskFactory.inl" 3 4 2935449: __null 2935449: # 447 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: return series->pop(); 2935449: } 2935449: 2935449: bool is_user_request = this->finish_once(); 2935449: 2935449: if (ns_policy_) 2935449: { 2935449: if (this->state == WFT_STATE_SYS_ERROR || 2935449: this->state == WFT_STATE_DNS_ERROR) 2935449: { 2935449: ns_policy_->failed(&route_result_, &tracing_, this->target); 2935449: } 2935449: else if (route_result_.request_object) 2935449: { 2935449: ns_policy_->success(&route_result_, &tracing_, this->target); 2935449: } 2935449: } 2935449: 2935449: if (this->state == WFT_STATE_SUCCESS) 2935449: { 2935449: if (!is_user_request) 2935449: return this; 2935449: } 2935449: else if (this->state == WFT_STATE_SYS_ERROR) 2935449: { 2935449: if (retry_times_ < retry_max_) 2935449: { 2935449: redirect_ = true; 2935449: if (ns_policy_) 2935449: route_result_.clear(); 2935449: 2935449: this->state = WFT_STATE_UNDEFINED; 2935449: this->error = 0; 2935449: this->timeout_reason = 0; 2935449: retry_times_++; 2935449: } 2935449: } 2935449: 2935449: 2935449: 2935449: 2935449: if (!this->target || !this->CommSession::get_connection()) 2935449: { 2935449: auto&& cb = std::bind(&WFComplexClientTask::switch_callback, 2935449: this, 2935449: std::placeholders::_1); 2935449: WFTimerTask *timer; 2935449: 2935449: timer = WFTaskFactory::create_timer_task(0, 0, std::move(cb)); 2935449: series->push_front(timer); 2935449: } 2935449: else 2935449: this->switch_callback( 2935449: # 500 "/<>/_include/workflow/WFTaskFactory.inl" 3 4 2935449: __null 2935449: # 500 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ); 2935449: 2935449: return series->pop(); 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: WFNetworkTask * 2935449: WFNetworkTaskFactory::create_client_task(enum TransportType type, 2935449: const std::string& host, 2935449: unsigned short port, 2935449: int retry_max, 2935449: std::function *)> callback) 2935449: { 2935449: auto *task = new WFComplexClientTask(retry_max, std::move(callback)); 2935449: ParsedURI uri; 2935449: char buf[32]; 2935449: 2935449: sprintf(buf, "%u", port); 2935449: uri.scheme = strdup("scheme"); 2935449: uri.host = strdup(host.c_str()); 2935449: uri.port = strdup(buf); 2935449: if (!uri.scheme || !uri.host || !uri.port) 2935449: { 2935449: uri.state = 3; 2935449: uri.error = 2935449: # 526 "/<>/_include/workflow/WFTaskFactory.inl" 3 2935449: (*__errno_location ()) 2935449: # 526 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: } 2935449: else 2935449: uri.state = 1; 2935449: 2935449: task->init(std::move(uri)); 2935449: task->set_transport_type(type); 2935449: return task; 2935449: } 2935449: 2935449: template 2935449: WFNetworkTask * 2935449: WFNetworkTaskFactory::create_client_task(enum TransportType type, 2935449: const std::string& url, 2935449: int retry_max, 2935449: std::function *)> callback) 2935449: { 2935449: auto *task = new WFComplexClientTask(retry_max, std::move(callback)); 2935449: ParsedURI uri; 2935449: 2935449: URIParser::parse(url, uri); 2935449: task->init(std::move(uri)); 2935449: task->set_transport_type(type); 2935449: return task; 2935449: } 2935449: 2935449: template 2935449: WFNetworkTask * 2935449: WFNetworkTaskFactory::create_client_task(enum TransportType type, 2935449: const ParsedURI& uri, 2935449: int retry_max, 2935449: std::function *)> callback) 2935449: { 2935449: auto *task = new WFComplexClientTask(retry_max, std::move(callback)); 2935449: 2935449: task->init(uri); 2935449: task->set_transport_type(type); 2935449: return task; 2935449: } 2935449: 2935449: template 2935449: WFNetworkTask * 2935449: WFNetworkTaskFactory::create_client_task(enum TransportType type, 2935449: const struct sockaddr *addr, 2935449: socklen_t addrlen, 2935449: int retry_max, 2935449: std::function *)> callback) 2935449: { 2935449: auto *task = new WFComplexClientTask(retry_max, std::move(callback)); 2935449: 2935449: task->init(type, addr, addrlen, ""); 2935449: return task; 2935449: } 2935449: 2935449: template 2935449: WFNetworkTask * 2935449: WFNetworkTaskFactory::create_client_task(enum TransportType type, 2935449: const struct sockaddr *addr, 2935449: socklen_t addrlen, 2935449: SSL_CTX *ssl_ctx, 2935449: int retry_max, 2935449: std::function *)> callback) 2935449: { 2935449: auto *task = new WFComplexClientTask(retry_max, std::move(callback)); 2935449: 2935449: task->set_ssl_ctx(ssl_ctx); 2935449: task->init(type, addr, addrlen, ""); 2935449: return task; 2935449: } 2935449: 2935449: template 2935449: WFNetworkTask * 2935449: WFNetworkTaskFactory::create_server_task(CommService *service, 2935449: std::function *)>& process) 2935449: { 2935449: return new WFServerTask(service, WFGlobal::get_scheduler(), process); 2935449: } 2935449: 2935449: 2935449: 2935449: class WFServerTaskFactory 2935449: { 2935449: public: 2935449: static WFDnsTask *create_dns_task(CommService *service, 2935449: std::function& process); 2935449: 2935449: static WFHttpTask *create_http_task(CommService *service, 2935449: std::function& process); 2935449: 2935449: static WFMySQLTask *create_mysql_task(CommService *service, 2935449: std::function& process); 2935449: }; 2935449: 2935449: 2935449: 2935449: class __WFGoTask : public WFGoTask 2935449: { 2935449: public: 2935449: void set_go_func(std::function func) 2935449: { 2935449: this->go = std::move(func); 2935449: } 2935449: 2935449: protected: 2935449: virtual void execute() 2935449: { 2935449: this->go(); 2935449: } 2935449: 2935449: protected: 2935449: std::function go; 2935449: 2935449: public: 2935449: __WFGoTask(ExecQueue *queue, Executor *executor, 2935449: std::function&& func) : 2935449: WFGoTask(queue, executor), 2935449: go(std::move(func)) 2935449: { 2935449: } 2935449: }; 2935449: 2935449: class __WFTimedGoTask : public __WFGoTask 2935449: { 2935449: protected: 2935449: virtual void dispatch(); 2935449: virtual SubTask *done(); 2935449: 2935449: protected: 2935449: virtual void handle(int state, int error); 2935449: 2935449: protected: 2935449: static void timer_callback(WFTimerTask *timer); 2935449: 2935449: protected: 2935449: time_t seconds; 2935449: long nanoseconds; 2935449: std::atomic ref; 2935449: 2935449: public: 2935449: __WFTimedGoTask(time_t seconds, long nanoseconds, 2935449: ExecQueue *queue, Executor *executor, 2935449: std::function&& func) : 2935449: __WFGoTask(queue, executor, std::move(func)), 2935449: ref(4) 2935449: { 2935449: this->seconds = seconds; 2935449: this->nanoseconds = nanoseconds; 2935449: } 2935449: }; 2935449: 2935449: template 2935449: WFGoTask *WFTaskFactory::create_go_task(const std::string& queue_name, 2935449: FUNC&& func, ARGS&&... args) 2935449: { 2935449: auto&& tmp = std::bind(std::forward(func), 2935449: std::forward(args)...); 2935449: return new __WFGoTask(WFGlobal::get_exec_queue(queue_name), 2935449: WFGlobal::get_compute_executor(), 2935449: std::move(tmp)); 2935449: } 2935449: 2935449: template 2935449: WFGoTask *WFTaskFactory::create_timedgo_task(time_t seconds, long nanoseconds, 2935449: const std::string& queue_name, 2935449: FUNC&& func, ARGS&&... args) 2935449: { 2935449: auto&& tmp = std::bind(std::forward(func), 2935449: std::forward(args)...); 2935449: return new __WFTimedGoTask(seconds, nanoseconds, 2935449: WFGlobal::get_exec_queue(queue_name), 2935449: WFGlobal::get_compute_executor(), 2935449: std::move(tmp)); 2935449: } 2935449: 2935449: template 2935449: WFGoTask *WFTaskFactory::create_go_task(ExecQueue *queue, Executor *executor, 2935449: FUNC&& func, ARGS&&... args) 2935449: { 2935449: auto&& tmp = std::bind(std::forward(func), 2935449: std::forward(args)...); 2935449: return new __WFGoTask(queue, executor, std::move(tmp)); 2935449: } 2935449: 2935449: template 2935449: WFGoTask *WFTaskFactory::create_timedgo_task(time_t seconds, long nanoseconds, 2935449: ExecQueue *queue, Executor *executor, 2935449: FUNC&& func, ARGS&&... args) 2935449: { 2935449: auto&& tmp = std::bind(std::forward(func), 2935449: std::forward(args)...); 2935449: return new __WFTimedGoTask(seconds, nanoseconds, 2935449: queue, executor, 2935449: std::move(tmp)); 2935449: } 2935449: 2935449: template 2935449: void WFTaskFactory::reset_go_task(WFGoTask *task, FUNC&& func, ARGS&&... args) 2935449: { 2935449: auto&& tmp = std::bind(std::forward(func), 2935449: std::forward(args)...); 2935449: ((__WFGoTask *)task)->set_go_func(std::move(tmp)); 2935449: } 2935449: 2935449: 2935449: 2935449: template<> inline 2935449: WFGoTask *WFTaskFactory::create_go_task(const std::string& queue_name, 2935449: std::nullptr_t&&) 2935449: { 2935449: return new __WFGoTask(WFGlobal::get_exec_queue(queue_name), 2935449: WFGlobal::get_compute_executor(), 2935449: nullptr); 2935449: } 2935449: 2935449: template<> inline 2935449: WFGoTask *WFTaskFactory::create_timedgo_task(time_t seconds, long nanoseconds, 2935449: const std::string& queue_name, 2935449: std::nullptr_t&&) 2935449: { 2935449: return new __WFTimedGoTask(seconds, nanoseconds, 2935449: WFGlobal::get_exec_queue(queue_name), 2935449: WFGlobal::get_compute_executor(), 2935449: nullptr); 2935449: } 2935449: 2935449: template<> inline 2935449: WFGoTask *WFTaskFactory::create_go_task(ExecQueue *queue, Executor *executor, 2935449: std::nullptr_t&&) 2935449: { 2935449: return new __WFGoTask(queue, executor, nullptr); 2935449: } 2935449: 2935449: template<> inline 2935449: WFGoTask *WFTaskFactory::create_timedgo_task(time_t seconds, long nanoseconds, 2935449: ExecQueue *queue, Executor *executor, 2935449: std::nullptr_t&&) 2935449: { 2935449: return new __WFTimedGoTask(seconds, nanoseconds, queue, executor, nullptr); 2935449: } 2935449: 2935449: template<> inline 2935449: void WFTaskFactory::reset_go_task(WFGoTask *task, std::nullptr_t&&) 2935449: { 2935449: ((__WFGoTask *)task)->set_go_func(nullptr); 2935449: } 2935449: 2935449: 2935449: 2935449: template 2935449: class __WFThreadTask : public WFThreadTask 2935449: { 2935449: protected: 2935449: virtual void execute() 2935449: { 2935449: this->routine(&this->input, &this->output); 2935449: } 2935449: 2935449: protected: 2935449: std::function routine; 2935449: 2935449: public: 2935449: __WFThreadTask(ExecQueue *queue, Executor *executor, 2935449: std::function&& rt, 2935449: std::function *)>&& cb) : 2935449: WFThreadTask(queue, executor, std::move(cb)), 2935449: routine(std::move(rt)) 2935449: { 2935449: } 2935449: }; 2935449: 2935449: template 2935449: class __WFTimedThreadTask : public __WFThreadTask 2935449: { 2935449: protected: 2935449: virtual void dispatch(); 2935449: virtual SubTask *done(); 2935449: 2935449: protected: 2935449: virtual void handle(int state, int error); 2935449: 2935449: protected: 2935449: static void timer_callback(WFTimerTask *timer); 2935449: 2935449: protected: 2935449: time_t seconds; 2935449: long nanoseconds; 2935449: std::atomic ref; 2935449: 2935449: public: 2935449: __WFTimedThreadTask(time_t seconds, long nanoseconds, 2935449: ExecQueue *queue, Executor *executor, 2935449: std::function&& rt, 2935449: std::function *)>&& cb) : 2935449: __WFThreadTask(queue, executor, std::move(rt), std::move(cb)), 2935449: ref(4) 2935449: { 2935449: this->seconds = seconds; 2935449: this->nanoseconds = nanoseconds; 2935449: } 2935449: }; 2935449: 2935449: template 2935449: void __WFTimedThreadTask::dispatch() 2935449: { 2935449: WFTimerTask *timer; 2935449: 2935449: timer = WFTaskFactory::create_timer_task(this->seconds, this->nanoseconds, 2935449: __WFTimedThreadTask::timer_callback); 2935449: timer->user_data = this; 2935449: 2935449: this->__WFThreadTask::dispatch(); 2935449: timer->start(); 2935449: } 2935449: 2935449: template 2935449: SubTask *__WFTimedThreadTask::done() 2935449: { 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: return series_of(this)->pop(); 2935449: } 2935449: 2935449: template 2935449: void __WFTimedThreadTask::handle(int state, int error) 2935449: { 2935449: if (--this->ref == 3) 2935449: { 2935449: this->state = state; 2935449: this->error = error; 2935449: this->subtask_done(); 2935449: } 2935449: 2935449: if (--this->ref == 0) 2935449: delete this; 2935449: } 2935449: 2935449: template 2935449: void __WFTimedThreadTask::timer_callback(WFTimerTask *timer) 2935449: { 2935449: auto *task = (__WFTimedThreadTask *)timer->user_data; 2935449: 2935449: if (--task->ref == 3) 2935449: { 2935449: if (timer->get_state() == WFT_STATE_SUCCESS) 2935449: { 2935449: task->state = WFT_STATE_SYS_ERROR; 2935449: task->error = 2935449: # 873 "/<>/_include/workflow/WFTaskFactory.inl" 3 2935449: 110 2935449: # 873 "/<>/_include/workflow/WFTaskFactory.inl" 2935449: ; 2935449: } 2935449: else 2935449: { 2935449: task->state = timer->get_state(); 2935449: task->error = timer->get_error(); 2935449: } 2935449: 2935449: task->subtask_done(); 2935449: } 2935449: 2935449: if (--task->ref == 0) 2935449: delete task; 2935449: } 2935449: 2935449: template 2935449: WFThreadTask * 2935449: WFThreadTaskFactory::create_thread_task(const std::string& queue_name, 2935449: std::function routine, 2935449: std::function *)> callback) 2935449: { 2935449: return new __WFThreadTask(WFGlobal::get_exec_queue(queue_name), 2935449: WFGlobal::get_compute_executor(), 2935449: std::move(routine), 2935449: std::move(callback)); 2935449: } 2935449: 2935449: template 2935449: WFThreadTask * 2935449: WFThreadTaskFactory::create_thread_task(time_t seconds, long nanoseconds, 2935449: const std::string& queue_name, 2935449: std::function routine, 2935449: std::function *)> callback) 2935449: { 2935449: return new __WFTimedThreadTask(seconds, nanoseconds, 2935449: WFGlobal::get_exec_queue(queue_name), 2935449: WFGlobal::get_compute_executor(), 2935449: std::move(routine), 2935449: std::move(callback)); 2935449: } 2935449: 2935449: template 2935449: WFThreadTask * 2935449: WFThreadTaskFactory::create_thread_task(ExecQueue *queue, Executor *executor, 2935449: std::function routine, 2935449: std::function *)> callback) 2935449: { 2935449: return new __WFThreadTask(queue, executor, 2935449: std::move(routine), 2935449: std::move(callback)); 2935449: } 2935449: 2935449: template 2935449: WFThreadTask * 2935449: WFThreadTaskFactory::create_thread_task(time_t seconds, long nanoseconds, 2935449: ExecQueue *queue, Executor *executor, 2935449: std::function routine, 2935449: std::function *)> callback) 2935449: { 2935449: return new __WFTimedThreadTask(seconds, nanoseconds, 2935449: queue, executor, 2935449: std::move(routine), 2935449: std::move(callback)); 2935449: } 2935449: # 485 "/<>/_include/workflow/WFTaskFactory.h" 2 2935449: # 29 "/<>/src/client/WFConsulClient.h" 2 2935449: # 1 "/<>/_include/workflow/ConsulDataTypes.h" 1 2935449: # 22 "/<>/_include/workflow/ConsulDataTypes.h" 2935449: # 1 "/usr/arm-linux-gnueabi/include/assert.h" 1 3 2935449: # 23 "/<>/_include/workflow/ConsulDataTypes.h" 2 2935449: 2935449: 2935449: 2935449: 2935449: 2935449: namespace protocol 2935449: { 2935449: 2935449: class ConsulConfig 2935449: { 2935449: public: 2935449: 2935449: void set_token(const std::string& token) { this->ptr->token = token; } 2935449: std::string get_token() const { return this->ptr->token; } 2935449: 2935449: 2935449: 2935449: void set_datacenter(const std::string& data_center) 2935449: { 2935449: this->ptr->dc = data_center; 2935449: } 2935449: std::string get_datacenter() const { return this->ptr->dc; } 2935449: 2935449: void set_near_node(const std::string& near_node) 2935449: { 2935449: this->ptr->near = near_node; 2935449: } 2935449: std::string get_near_node() const { return this->ptr->near; } 2935449: 2935449: void set_filter_expr(const std::string& filter_expr) 2935449: { 2935449: this->ptr->filter = filter_expr; 2935449: } 2935449: std::string get_filter_expr() const { return this->ptr->filter; } 2935449: 2935449: 2935449: void set_wait_ttl(int wait_ttl) { this->ptr->wait_ttl = wait_ttl; } 2935449: int get_wait_ttl() const { return this->ptr->wait_ttl; } 2935449: 2935449: 2935449: void set_blocking_query(bool enable_flag) 2935449: { 2935449: this->ptr->blocking_query = enable_flag; 2935449: } 2935449: bool blocking_query() const { return this->ptr->blocking_query; } 2935449: 2935449: 2935449: void set_passing(bool passing) { this->ptr->passing = passing; } 2935449: bool get_passing() const { return this->ptr->passing; } 2935449: 2935449: 2935449: 2935449: 2935449: void set_replace_checks(bool replace_checks) 2935449: { 2935449: this->ptr->replace_checks = replace_checks; 2935449: } 2935449: bool get_replace_checks() const 2935449: { 2935449: return this->ptr->replace_checks; 2935449: } 2935449: 2935449: void set_check_name(const std::string& check_name) 2935449: { 2935449: this->ptr->check_cfg.check_name = check_name; 2935449: } 2935449: std::string get_check_name() const { return this->ptr->check_cfg.check_name; } 2935449: 2935449: void set_check_http_url(const std::string& http_url) 2935449: { 2935449: this->ptr->check_cfg.http_url = http_url; 2935449: } 2935449: std::string get_check_http_url() const 2935449: { 2935449: return this->ptr->check_cfg.http_url; 2935449: } 2935449: 2935449: void set_check_http_method(const std::string& method) 2935449: { 2935449: this->ptr->check_cfg.http_method = method; 2935449: } 2935449: std::string get_check_http_method() const 2935449: { 2935449: return this->ptr->check_cfg.http_method; 2935449: } 2935449: 2935449: void add_http_header(const std::string& key, 2935449: const std::vector& values) 2935449: { 2935449: this->ptr->check_cfg.headers.emplace(key, values); 2935449: } 2935449: const std::map> *get_http_headers() const 2935449: { 2935449: return &this->ptr->check_cfg.headers; 2935449: } 2935449: 2935449: void set_http_body(const std::string& body) 2935449: { 2935449: this->ptr->check_cfg.http_body = body; 2935449: } 2935449: std::string get_http_body() const { return this->ptr->check_cfg.http_body; } 2935449: 2935449: void set_check_interval(int interval) 2935449: { 2935449: this->ptr->check_cfg.interval = interval; 2935449: } 2935449: int get_check_interval() const { return this->ptr->check_cfg.interval; } 2935449: 2935449: void set_check_timeout(int timeout) 2935449: { 2935449: this->ptr->check_cfg.timeout = timeout; 2935449: } 2935449: int get_check_timeout() const { return this->ptr->check_cfg.timeout; } 2935449: 2935449: void set_check_notes(const std::string& notes) 2935449: { 2935449: this->ptr->check_cfg.notes = notes; 2935449: } 2935449: std::string get_check_notes() const { return this->ptr->check_cfg.notes; } 2935449: 2935449: void set_check_tcp(const std::string& tcp_address) 2935449: { 2935449: this->ptr->check_cfg.tcp_address = tcp_address; 2935449: } 2935449: std::string get_check_tcp() const { return this->ptr->check_cfg.tcp_address; } 2935449: 2935449: void set_initial_status(const std::string& initial_status) 2935449: { 2935449: this->ptr->check_cfg.initial_status = initial_status; 2935449: } 2935449: std::string get_initial_status() const 2935449: { 2935449: return this->ptr->check_cfg.initial_status; 2935449: } 2935449: 2935449: void set_auto_deregister_time(int milliseconds) 2935449: { 2935449: this->ptr->check_cfg.auto_deregister_time = milliseconds; 2935449: } 2935449: int get_auto_deregister_time() const 2935449: { 2935449: return this->ptr->check_cfg.auto_deregister_time; 2935449: } 2935449: 2935449: 2935449: void set_success_times(int times) 2935449: { 2935449: this->ptr->check_cfg.success_times = times; 2935449: } 2935449: int get_success_times() const { return this->ptr->check_cfg.success_times; } 2935449: 2935449: 2935449: void set_failure_times(int times) { this->ptr->check_cfg.failure_times = times; } 2935449: int get_failure_times() const { return this->ptr->check_cfg.failure_times; } 2935449: 2935449: void set_health_check(bool enable_flag) 2935449: { 2935449: this->ptr->check_cfg.health_check = enable_flag; 2935449: } 2935449: bool get_health_check() const 2935449: { 2935449: return this->ptr->check_cfg.health_check; 2935449: } 2935449: 2935449: public: 2935449: ConsulConfig() 2935449: { 2935449: this->ptr = new Config; 2935449: this->ptr->blocking_query = false; 2935449: this->ptr->passing = false; 2935449: this->ptr->replace_checks = false; 2935449: this->ptr->wait_ttl = 300 * 1000; 2935449: this->ptr->check_cfg.interval = 5000; 2935449: this->ptr->check_cfg.timeout = 10000; 2935449: this->ptr->check_cfg.http_method = "GET"; 2935449: this->ptr->check_cfg.initial_status = "critical"; 2935449: this->ptr->check_cfg.auto_deregister_time = 10 * 60 * 1000; 2935449: this->ptr->check_cfg.success_times = 0; 2935449: this->ptr->check_cfg.failure_times = 0; 2935449: this->ptr->check_cfg.health_check = false; 2935449: 2935449: this->ref = new std::atomic(1); 2935449: } 2935449: 2935449: virtual ~ConsulConfig() 2935449: { 2935449: if (--*this->ref == 0) 2935449: { 2935449: delete this->ptr; 2935449: delete this->ref; 2935449: } 2935449: } 2935449: 2935449: ConsulConfig(ConsulConfig&& move) 2935449: { 2935449: this->ptr = move.ptr; 2935449: this->ref = move.ref; 2935449: move.ptr = new Config; 2935449: move.ref = new std::atomic(1); 2935449: } 2935449: 2935449: ConsulConfig(const ConsulConfig& copy) 2935449: { 2935449: this->ptr = copy.ptr; 2935449: this->ref = copy.ref; 2935449: ++(*this->ref); 2935449: } 2935449: 2935449: ConsulConfig& operator= (ConsulConfig&& move) 2935449: { 2935449: if (this != &move) 2935449: { 2935449: this->~ConsulConfig(); 2935449: this->ptr = move.ptr; 2935449: this->ref = move.ref; 2935449: move.ptr = new Config; 2935449: move.ref = new std::atomic(1); 2935449: } 2935449: 2935449: return *this; 2935449: } 2935449: 2935449: ConsulConfig& operator= (const ConsulConfig& copy) 2935449: { 2935449: if (this != ©) 2935449: { 2935449: this->~ConsulConfig(); 2935449: this->ptr = copy.ptr; 2935449: this->ref = copy.ref; 2935449: ++(*this->ref); 2935449: } 2935449: 2935449: return *this; 2935449: } 2935449: 2935449: private: 2935449: 2935449: struct HealthCheckConfig 2935449: { 2935449: std::string check_name; 2935449: std::string notes; 2935449: std::string http_url; 2935449: std::string http_method; 2935449: std::string http_body; 2935449: std::string tcp_address; 2935449: std::string initial_status; 2935449: std::map> headers; 2935449: int auto_deregister_time; 2935449: int interval; 2935449: int timeout; 2935449: int success_times; 2935449: int failure_times; 2935449: bool health_check; 2935449: }; 2935449: 2935449: struct Config 2935449: { 2935449: 2935449: std::string token; 2935449: 2935449: 2935449: std::string dc; 2935449: std::string near; 2935449: std::string filter; 2935449: int wait_ttl; 2935449: bool blocking_query; 2935449: bool passing; 2935449: 2935449: 2935449: bool replace_checks; 2935449: HealthCheckConfig check_cfg; 2935449: }; 2935449: 2935449: private: 2935449: struct Config *ptr; 2935449: std::atomic *ref; 2935449: }; 2935449: 2935449: 2935449: using ConsulAddress = std::pair; 2935449: 2935449: struct ConsulService 2935449: { 2935449: std::string service_name; 2935449: std::string service_namespace; 2935449: std::string service_id; 2935449: std::vector tags; 2935449: ConsulAddress service_address; 2935449: ConsulAddress lan; 2935449: ConsulAddress lan_ipv4; 2935449: ConsulAddress lan_ipv6; 2935449: ConsulAddress virtual_address; 2935449: ConsulAddress wan; 2935449: ConsulAddress wan_ipv4; 2935449: ConsulAddress wan_ipv6; 2935449: std::map meta; 2935449: bool tag_override; 2935449: }; 2935449: 2935449: struct ConsulServiceInstance 2935449: { 2935449: 2935449: std::string node_id; 2935449: std::string node_name; 2935449: std::string node_address; 2935449: std::string dc; 2935449: std::map node_meta; 2935449: long long create_index; 2935449: long long modify_index; 2935449: 2935449: 2935449: struct ConsulService service; 2935449: 2935449: 2935449: std::string check_name; 2935449: std::string check_id; 2935449: std::string check_notes; 2935449: std::string check_output; 2935449: std::string check_status; 2935449: std::string check_type; 2935449: }; 2935449: 2935449: struct ConsulServiceTags 2935449: { 2935449: std::string service_name; 2935449: std::vector tags; 2935449: }; 2935449: 2935449: } 2935449: # 30 "/<>/src/client/WFConsulClient.h" 2 2935449: 2935449: class WFConsulTask; 2935449: using consul_callback_t = std::function; 2935449: 2935449: enum 2935449: { 2935449: CONSUL_API_TYPE_UNKNOWN = 0, 2935449: CONSUL_API_TYPE_DISCOVER, 2935449: CONSUL_API_TYPE_LIST_SERVICE, 2935449: CONSUL_API_TYPE_REGISTER, 2935449: CONSUL_API_TYPE_DEREGISTER, 2935449: }; 2935449: 2935449: class WFConsulTask : public WFGenericTask 2935449: { 2935449: public: 2935449: bool get_discover_result( 2935449: std::vector& result); 2935449: 2935449: bool get_list_service_result( 2935449: std::vector& result); 2935449: 2935449: public: 2935449: void set_service(const struct protocol::ConsulService *service); 2935449: 2935449: void set_api_type(int api_type) 2935449: { 2935449: this->api_type = api_type; 2935449: } 2935449: 2935449: int get_api_type() const 2935449: { 2935449: return this->api_type; 2935449: } 2935449: 2935449: void set_callback(consul_callback_t cb) 2935449: { 2935449: this->callback = std::move(cb); 2935449: } 2935449: 2935449: void set_consul_index(long long consul_index) 2935449: { 2935449: this->consul_index = consul_index; 2935449: } 2935449: long long get_consul_index() const { return this->consul_index; } 2935449: 2935449: const protocol::HttpResponse *get_http_resp() const 2935449: { 2935449: return &this->http_resp; 2935449: } 2935449: 2935449: protected: 2935449: void set_config(protocol::ConsulConfig conf) 2935449: { 2935449: this->config = std::move(conf); 2935449: } 2935449: 2935449: void set_ssl_ctx(SSL_CTX *ssl_ctx) 2935449: { 2935449: this->ssl_ctx = ssl_ctx; 2935449: } 2935449: 2935449: protected: 2935449: virtual void dispatch(); 2935449: virtual SubTask *done(); 2935449: 2935449: WFHttpTask *create_discover_task(); 2935449: WFHttpTask *create_list_service_task(); 2935449: WFHttpTask *create_register_task(); 2935449: WFHttpTask *create_deregister_task(); 2935449: 2935449: std::string generate_discover_request(); 2935449: long long get_consul_index(protocol::HttpResponse *resp); 2935449: 2935449: static bool check_task_result(WFHttpTask *task, WFConsulTask *consul_task); 2935449: static void discover_callback(WFHttpTask *task); 2935449: static void list_service_callback(WFHttpTask *task); 2935449: static void register_callback(WFHttpTask *task); 2935449: 2935449: protected: 2935449: protocol::ConsulConfig config; 2935449: SSL_CTX *ssl_ctx; 2935449: struct protocol::ConsulService service; 2935449: std::string proxy_url; 2935449: int retry_max; 2935449: int api_type; 2935449: bool finish; 2935449: long long consul_index; 2935449: protocol::HttpResponse http_resp; 2935449: consul_callback_t callback; 2935449: 2935449: protected: 2935449: WFConsulTask(const std::string& proxy_url, 2935449: const std::string& service_namespace, 2935449: const std::string& service_name, 2935449: const std::string& service_id, 2935449: int retry_max, consul_callback_t&& cb); 2935449: virtual ~WFConsulTask() { } 2935449: friend class WFConsulClient; 2935449: }; 2935449: 2935449: class WFConsulClient 2935449: { 2935449: public: 2935449: 2935449: int init(const std::string& proxy_url) 2935449: { 2935449: return this->init(proxy_url, 2935449: # 137 "/<>/src/client/WFConsulClient.h" 3 4 2935449: __null 2935449: # 137 "/<>/src/client/WFConsulClient.h" 2935449: ); 2935449: } 2935449: 2935449: int init(const std::string& proxy_url, protocol::ConsulConfig config) 2935449: { 2935449: return this->init(proxy_url, std::move(config), 2935449: # 142 "/<>/src/client/WFConsulClient.h" 3 4 2935449: __null 2935449: # 142 "/<>/src/client/WFConsulClient.h" 2935449: ); 2935449: } 2935449: 2935449: 2935449: int init(const std::string& proxy_url, SSL_CTX *ctx_ctx) 2935449: { 2935449: return this->init(proxy_url, protocol::ConsulConfig(), ssl_ctx); 2935449: } 2935449: 2935449: int init(const std::string& proxy_url, protocol::ConsulConfig config, 2935449: SSL_CTX *ctx); 2935449: 2935449: void deinit() { } 2935449: 2935449: WFConsulTask *create_discover_task(const std::string& service_namespace, 2935449: const std::string& service_name, 2935449: int retry_max, 2935449: consul_callback_t cb); 2935449: 2935449: WFConsulTask *create_list_service_task(const std::string& service_namespace, 2935449: int retry_max, 2935449: consul_callback_t cb); 2935449: 2935449: WFConsulTask *create_register_task(const std::string& service_namespace, 2935449: const std::string& service_name, 2935449: const std::string& service_id, 2935449: int retry_max, 2935449: consul_callback_t cb); 2935449: 2935449: WFConsulTask *create_deregister_task(const std::string& service_namespace, 2935449: const std::string& service_id, 2935449: int retry_max, 2935449: consul_callback_t cb); 2935449: 2935449: protected: 2935449: std::string proxy_url; 2935449: protocol::ConsulConfig config; 2935449: SSL_CTX *ssl_ctx; 2935449: 2935449: public: 2935449: virtual ~WFConsulClient() { } 2935449: }; 2935449: # 31 "/<>/src/client/WFConsulClient.cc" 2 2935449: 2935449: using namespace protocol; 2935449: 2935449: WFConsulTask::WFConsulTask(const std::string& proxy_url, 2935449: const std::string& service_namespace, 2935449: const std::string& service_name, 2935449: const std::string& service_id, 2935449: int retry_max, 2935449: consul_callback_t&& cb) : 2935449: proxy_url(proxy_url), 2935449: callback(std::move(cb)) 2935449: { 2935449: this->service.service_name = service_name; 2935449: this->service.service_namespace = service_namespace; 2935449: this->service.service_id = service_id; 2935449: this->api_type = CONSUL_API_TYPE_UNKNOWN; 2935449: this->retry_max = retry_max; 2935449: this->finish = false; 2935449: this->consul_index = 0; 2935449: this->ssl_ctx = 2935449: # 50 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 50 "/<>/src/client/WFConsulClient.cc" 2935449: ; 2935449: } 2935449: 2935449: void WFConsulTask::set_service(const struct protocol::ConsulService *service) 2935449: { 2935449: this->service.tags = service->tags; 2935449: this->service.meta = service->meta; 2935449: this->service.tag_override = service->tag_override; 2935449: this->service.service_address = service->service_address; 2935449: this->service.lan = service->lan; 2935449: this->service.lan_ipv4 = service->lan_ipv4; 2935449: this->service.lan_ipv6 = service->lan_ipv6; 2935449: this->service.virtual_address = service->virtual_address; 2935449: this->service.wan = service->wan; 2935449: this->service.wan_ipv4 = service->wan_ipv4; 2935449: this->service.wan_ipv6 = service->wan_ipv6; 2935449: } 2935449: 2935449: static bool parse_discover_result(const json_value_t *root, 2935449: std::vector& result); 2935449: static bool parse_list_service_result(const json_value_t *root, 2935449: std::vector& result); 2935449: 2935449: bool WFConsulTask::get_discover_result( 2935449: std::vector& result) 2935449: { 2935449: json_value_t *root; 2935449: int errno_bak; 2935449: bool ret; 2935449: 2935449: if (this->api_type != CONSUL_API_TYPE_DISCOVER) 2935449: { 2935449: 2935449: # 82 "/<>/src/client/WFConsulClient.cc" 3 2935449: (*__errno_location ()) 2935449: # 82 "/<>/src/client/WFConsulClient.cc" 2935449: = 2935449: # 82 "/<>/src/client/WFConsulClient.cc" 3 2935449: 1 2935449: # 82 "/<>/src/client/WFConsulClient.cc" 2935449: ; 2935449: return false; 2935449: } 2935449: 2935449: errno_bak = 2935449: # 86 "/<>/src/client/WFConsulClient.cc" 3 2935449: (*__errno_location ()) 2935449: # 86 "/<>/src/client/WFConsulClient.cc" 2935449: ; 2935449: 2935449: # 87 "/<>/src/client/WFConsulClient.cc" 3 2935449: (*__errno_location ()) 2935449: # 87 "/<>/src/client/WFConsulClient.cc" 2935449: = 2935449: # 87 "/<>/src/client/WFConsulClient.cc" 3 2935449: 74 2935449: # 87 "/<>/src/client/WFConsulClient.cc" 2935449: ; 2935449: std::string body = HttpUtil::decode_chunked_body(&this->http_resp); 2935449: root = json_value_parse(body.c_str()); 2935449: if (!root) 2935449: return false; 2935449: 2935449: ret = parse_discover_result(root, result); 2935449: json_value_destroy(root); 2935449: if (ret) 2935449: 2935449: # 96 "/<>/src/client/WFConsulClient.cc" 3 2935449: (*__errno_location ()) 2935449: # 96 "/<>/src/client/WFConsulClient.cc" 2935449: = errno_bak; 2935449: 2935449: return ret; 2935449: } 2935449: 2935449: bool WFConsulTask::get_list_service_result( 2935449: std::vector& result) 2935449: { 2935449: json_value_t *root; 2935449: int errno_bak; 2935449: bool ret; 2935449: 2935449: if (this->api_type != CONSUL_API_TYPE_LIST_SERVICE) 2935449: { 2935449: 2935449: # 110 "/<>/src/client/WFConsulClient.cc" 3 2935449: (*__errno_location ()) 2935449: # 110 "/<>/src/client/WFConsulClient.cc" 2935449: = 2935449: # 110 "/<>/src/client/WFConsulClient.cc" 3 2935449: 1 2935449: # 110 "/<>/src/client/WFConsulClient.cc" 2935449: ; 2935449: return false; 2935449: } 2935449: 2935449: errno_bak = 2935449: # 114 "/<>/src/client/WFConsulClient.cc" 3 2935449: (*__errno_location ()) 2935449: # 114 "/<>/src/client/WFConsulClient.cc" 2935449: ; 2935449: 2935449: # 115 "/<>/src/client/WFConsulClient.cc" 3 2935449: (*__errno_location ()) 2935449: # 115 "/<>/src/client/WFConsulClient.cc" 2935449: = 2935449: # 115 "/<>/src/client/WFConsulClient.cc" 3 2935449: 74 2935449: # 115 "/<>/src/client/WFConsulClient.cc" 2935449: ; 2935449: std::string body = HttpUtil::decode_chunked_body(&this->http_resp); 2935449: root = json_value_parse(body.c_str()); 2935449: if (!root) 2935449: return false; 2935449: 2935449: ret = parse_list_service_result(root, result); 2935449: json_value_destroy(root); 2935449: if (ret) 2935449: 2935449: # 124 "/<>/src/client/WFConsulClient.cc" 3 2935449: (*__errno_location ()) 2935449: # 124 "/<>/src/client/WFConsulClient.cc" 2935449: = errno_bak; 2935449: 2935449: return ret; 2935449: } 2935449: 2935449: void WFConsulTask::dispatch() 2935449: { 2935449: WFHttpTask *task; 2935449: 2935449: if (this->finish) 2935449: { 2935449: this->subtask_done(); 2935449: return; 2935449: } 2935449: 2935449: switch(this->api_type) 2935449: { 2935449: case CONSUL_API_TYPE_DISCOVER: 2935449: task = create_discover_task(); 2935449: break; 2935449: 2935449: case CONSUL_API_TYPE_LIST_SERVICE: 2935449: task = create_list_service_task(); 2935449: break; 2935449: 2935449: case CONSUL_API_TYPE_DEREGISTER: 2935449: task = create_deregister_task(); 2935449: break; 2935449: 2935449: case CONSUL_API_TYPE_REGISTER: 2935449: task = create_register_task(); 2935449: if (task) 2935449: break; 2935449: 2935449: if (1) 2935449: { 2935449: this->state = WFT_STATE_SYS_ERROR; 2935449: this->error = 2935449: # 161 "/<>/src/client/WFConsulClient.cc" 3 2935449: (*__errno_location ()) 2935449: # 161 "/<>/src/client/WFConsulClient.cc" 2935449: ; 2935449: } 2935449: else 2935449: { 2935449: default: 2935449: this->state = WFT_STATE_TASK_ERROR; 2935449: this->error = WFT_ERR_CONSUL_API_UNKNOWN; 2935449: } 2935449: 2935449: this->finish = true; 2935449: this->subtask_done(); 2935449: return; 2935449: } 2935449: 2935449: auto *t = (WFComplexClientTask *)task; 2935449: t->set_ssl_ctx(this->ssl_ctx); 2935449: 2935449: series_of(this)->push_front(this); 2935449: series_of(this)->push_front(task); 2935449: this->subtask_done(); 2935449: } 2935449: 2935449: SubTask *WFConsulTask::done() 2935449: { 2935449: SeriesWork *series = series_of(this); 2935449: 2935449: if (finish) 2935449: { 2935449: if (this->callback) 2935449: this->callback(this); 2935449: 2935449: delete this; 2935449: } 2935449: 2935449: return series->pop(); 2935449: } 2935449: 2935449: static std::string convert_time_to_str(int milliseconds) 2935449: { 2935449: std::string str_time; 2935449: int seconds = milliseconds / 1000; 2935449: 2935449: if (seconds >= 180) 2935449: str_time = std::to_string(seconds / 60) + "m"; 2935449: else 2935449: str_time = std::to_string(seconds) + "s"; 2935449: 2935449: return str_time; 2935449: } 2935449: 2935449: std::string WFConsulTask::generate_discover_request() 2935449: { 2935449: std::string url = this->proxy_url; 2935449: 2935449: url += "/v1/health/service/" + this->service.service_name; 2935449: url += "?dc=" + this->config.get_datacenter(); 2935449: url += "&ns=" + this->service.service_namespace; 2935449: std::string passing = this->config.get_passing() ? "true" : "false"; 2935449: url += "&passing=" + passing; 2935449: url += "&token=" + this->config.get_token(); 2935449: url += "&filter=" + this->config.get_filter_expr(); 2935449: 2935449: 2935449: if (this->config.blocking_query()) 2935449: { 2935449: url += "&index=" + std::to_string(this->get_consul_index()); 2935449: url += "&wait=" + convert_time_to_str(this->config.get_wait_ttl()); 2935449: } 2935449: 2935449: return url; 2935449: } 2935449: 2935449: WFHttpTask *WFConsulTask::create_discover_task() 2935449: { 2935449: std::string url = generate_discover_request(); 2935449: WFHttpTask *task = WFTaskFactory::create_http_task(url, 0, this->retry_max, 2935449: discover_callback); 2935449: HttpRequest *req = task->get_req(); 2935449: 2935449: req->add_header_pair("Content-Type", "application/json"); 2935449: task->user_data = this; 2935449: return task; 2935449: } 2935449: 2935449: WFHttpTask *WFConsulTask::create_list_service_task() 2935449: { 2935449: std::string url = this->proxy_url; 2935449: 2935449: url += "/v1/catalog/services?token=" + this->config.get_token(); 2935449: url += "&dc=" + this->config.get_datacenter(); 2935449: url += "&ns=" + this->service.service_namespace; 2935449: 2935449: WFHttpTask *task = WFTaskFactory::create_http_task(url, 0, this->retry_max, 2935449: list_service_callback); 2935449: HttpRequest *req = task->get_req(); 2935449: 2935449: req->add_header_pair("Content-Type", "application/json"); 2935449: task->user_data = this; 2935449: return task; 2935449: } 2935449: 2935449: static void print_json_value(const json_value_t *val, int depth, 2935449: std::string& json_str); 2935449: 2935449: static bool create_register_request(const json_value_t *root, 2935449: const struct ConsulService *service, 2935449: const ConsulConfig& config); 2935449: 2935449: WFHttpTask *WFConsulTask::create_register_task() 2935449: { 2935449: std::string payload; 2935449: 2935449: std::string url = this->proxy_url; 2935449: url += "/v1/agent/service/register?replace-existing-checks="; 2935449: url += this->config.get_replace_checks() ? "true" : "false"; 2935449: 2935449: WFHttpTask *task = WFTaskFactory::create_http_task(url, 0, this->retry_max, 2935449: register_callback); 2935449: HttpRequest *req = task->get_req(); 2935449: 2935449: req->set_method("PUT"); 2935449: req->add_header_pair("Content-Type", "application/json"); 2935449: 2935449: if (!this->config.get_token().empty()) 2935449: req->add_header_pair("X-Consul-Token", this->config.get_token()); 2935449: 2935449: json_value_t *root = json_value_create(3); 2935449: if (root) 2935449: { 2935449: if (create_register_request(root, &this->service, this->config)) 2935449: print_json_value(root, 0, payload); 2935449: 2935449: json_value_destroy(root); 2935449: if (!payload.empty() && req->append_output_body(payload)) 2935449: { 2935449: task->user_data = this; 2935449: return task; 2935449: } 2935449: } 2935449: 2935449: task->dismiss(); 2935449: return 2935449: # 302 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 302 "/<>/src/client/WFConsulClient.cc" 2935449: ; 2935449: } 2935449: 2935449: WFHttpTask *WFConsulTask::create_deregister_task() 2935449: { 2935449: std::string url = this->proxy_url; 2935449: 2935449: url += "/v1/agent/service/deregister/" + this->service.service_id; 2935449: url += "?ns=" + this->service.service_namespace; 2935449: 2935449: WFHttpTask *task = WFTaskFactory::create_http_task(url, 0, this->retry_max, 2935449: register_callback); 2935449: HttpRequest *req = task->get_req(); 2935449: 2935449: req->set_method("PUT"); 2935449: req->add_header_pair("Content-Type", "application/json"); 2935449: 2935449: std::string token = this->config.get_token(); 2935449: if (!token.empty()) 2935449: req->add_header_pair("X-Consul-Token", token); 2935449: 2935449: task->user_data = this; 2935449: return task; 2935449: } 2935449: 2935449: bool WFConsulTask::check_task_result(WFHttpTask *task, WFConsulTask *consul_task) 2935449: { 2935449: if (task->get_state() != WFT_STATE_SUCCESS) 2935449: { 2935449: consul_task->state = task->get_state(); 2935449: consul_task->error = task->get_error(); 2935449: return false; 2935449: } 2935449: 2935449: protocol::HttpResponse *resp = task->get_resp(); 2935449: if (strcmp(resp->get_status_code(), "200") != 0) 2935449: { 2935449: consul_task->state = WFT_STATE_TASK_ERROR; 2935449: consul_task->error = WFT_ERR_CONSUL_CHECK_RESPONSE_FAILED; 2935449: return false; 2935449: } 2935449: 2935449: return true; 2935449: } 2935449: 2935449: long long WFConsulTask::get_consul_index(HttpResponse *resp) 2935449: { 2935449: long long consul_index = 0; 2935449: 2935449: 2935449: protocol::HttpHeaderCursor cursor(resp); 2935449: std::string consul_index_str; 2935449: if (cursor.find("X-Consul-Index", consul_index_str)) 2935449: { 2935449: consul_index = strtoll(consul_index_str.c_str(), 2935449: # 356 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 356 "/<>/src/client/WFConsulClient.cc" 2935449: , 10); 2935449: if (consul_index < 0) 2935449: consul_index = 0; 2935449: } 2935449: 2935449: return consul_index; 2935449: } 2935449: 2935449: void WFConsulTask::discover_callback(WFHttpTask *task) 2935449: { 2935449: WFConsulTask *t = (WFConsulTask*)task->user_data; 2935449: 2935449: if (WFConsulTask::check_task_result(task, t)) 2935449: { 2935449: protocol::HttpResponse *resp = task->get_resp(); 2935449: long long consul_index = t->get_consul_index(resp); 2935449: long long last_consul_index = t->get_consul_index(); 2935449: t->set_consul_index(consul_index < last_consul_index ? 0 : consul_index); 2935449: t->state = task->get_state(); 2935449: } 2935449: 2935449: t->http_resp = std::move(*task->get_resp()); 2935449: t->finish = true; 2935449: } 2935449: 2935449: void WFConsulTask::list_service_callback(WFHttpTask *task) 2935449: { 2935449: WFConsulTask *t = (WFConsulTask*)task->user_data; 2935449: 2935449: if (WFConsulTask::check_task_result(task, t)) 2935449: t->state = task->get_state(); 2935449: 2935449: t->http_resp = std::move(*task->get_resp()); 2935449: t->finish = true; 2935449: } 2935449: 2935449: void WFConsulTask::register_callback(WFHttpTask *task) 2935449: { 2935449: WFConsulTask *t = (WFConsulTask *)task->user_data; 2935449: 2935449: if (WFConsulTask::check_task_result(task, t)) 2935449: t->state = task->get_state(); 2935449: 2935449: t->http_resp = std::move(*task->get_resp()); 2935449: t->finish = true; 2935449: } 2935449: 2935449: int WFConsulClient::init(const std::string& proxy_url, ConsulConfig config, 2935449: SSL_CTX *ssl_ctx) 2935449: { 2935449: ParsedURI uri; 2935449: 2935449: if (URIParser::parse(proxy_url, uri) >= 0) 2935449: { 2935449: this->proxy_url = uri.scheme; 2935449: this->proxy_url += "://"; 2935449: this->proxy_url += uri.host; 2935449: if (uri.port) 2935449: { 2935449: this->proxy_url += ":"; 2935449: this->proxy_url += uri.port; 2935449: } 2935449: 2935449: this->config = std::move(config); 2935449: this->ssl_ctx = ssl_ctx; 2935449: return 0; 2935449: } 2935449: else if (uri.state == 2) 2935449: 2935449: # 424 "/<>/src/client/WFConsulClient.cc" 3 2935449: (*__errno_location ()) 2935449: # 424 "/<>/src/client/WFConsulClient.cc" 2935449: = 2935449: # 424 "/<>/src/client/WFConsulClient.cc" 3 2935449: 22 2935449: # 424 "/<>/src/client/WFConsulClient.cc" 2935449: ; 2935449: 2935449: return -1; 2935449: } 2935449: 2935449: WFConsulTask *WFConsulClient::create_discover_task( 2935449: const std::string& service_namespace, 2935449: const std::string& service_name, 2935449: int retry_max, 2935449: consul_callback_t cb) 2935449: { 2935449: WFConsulTask *task = new WFConsulTask(this->proxy_url, service_namespace, 2935449: service_name, "", retry_max, 2935449: std::move(cb)); 2935449: task->set_api_type(CONSUL_API_TYPE_DISCOVER); 2935449: task->set_config(this->config); 2935449: task->set_ssl_ctx(this->ssl_ctx); 2935449: return task; 2935449: } 2935449: 2935449: WFConsulTask *WFConsulClient::create_list_service_task( 2935449: const std::string& service_namespace, 2935449: int retry_max, 2935449: consul_callback_t cb) 2935449: { 2935449: WFConsulTask *task = new WFConsulTask(this->proxy_url, service_namespace, 2935449: "", "", retry_max, 2935449: std::move(cb)); 2935449: task->set_api_type(CONSUL_API_TYPE_LIST_SERVICE); 2935449: task->set_config(this->config); 2935449: task->set_ssl_ctx(this->ssl_ctx); 2935449: return task; 2935449: } 2935449: 2935449: WFConsulTask *WFConsulClient::create_register_task( 2935449: const std::string& service_namespace, 2935449: const std::string& service_name, 2935449: const std::string& service_id, 2935449: int retry_max, 2935449: consul_callback_t cb) 2935449: { 2935449: WFConsulTask *task = new WFConsulTask(this->proxy_url, service_namespace, 2935449: service_name, service_id, retry_max, 2935449: std::move(cb)); 2935449: task->set_api_type(CONSUL_API_TYPE_REGISTER); 2935449: task->set_config(this->config); 2935449: task->set_ssl_ctx(this->ssl_ctx); 2935449: return task; 2935449: } 2935449: 2935449: WFConsulTask *WFConsulClient::create_deregister_task( 2935449: const std::string& service_namespace, 2935449: const std::string& service_id, 2935449: int retry_max, 2935449: consul_callback_t cb) 2935449: { 2935449: WFConsulTask *task = new WFConsulTask(this->proxy_url, service_namespace, 2935449: "", service_id, retry_max, 2935449: std::move(cb)); 2935449: task->set_api_type(CONSUL_API_TYPE_DEREGISTER); 2935449: task->set_config(this->config); 2935449: task->set_ssl_ctx(this->ssl_ctx); 2935449: return task; 2935449: } 2935449: 2935449: static bool create_tagged_address(const ConsulAddress& consul_address, 2935449: const std::string& name, 2935449: json_object_t *tagged_obj) 2935449: { 2935449: if (consul_address.first.empty()) 2935449: return true; 2935449: 2935449: const json_value_t *val = json_object_append(tagged_obj, name.c_str(), 2935449: 3); 2935449: if (!val) 2935449: return false; 2935449: 2935449: json_object_t *obj = json_value_object(val); 2935449: 2935449: if (!json_object_append(obj, "Address", 1, 2935449: consul_address.first.c_str())) 2935449: return false; 2935449: 2935449: if (!json_object_append(obj, "Port", 2, 2935449: (double)consul_address.second)) 2935449: return false; 2935449: 2935449: return true; 2935449: } 2935449: 2935449: static bool create_health_check(const ConsulConfig& config, json_object_t *obj) 2935449: { 2935449: const json_value_t *val; 2935449: std::string str; 2935449: 2935449: if (!config.get_health_check()) 2935449: return true; 2935449: 2935449: val = json_object_append(obj, "Check", 3); 2935449: if (!val) 2935449: return false; 2935449: 2935449: obj = json_value_object(val); 2935449: 2935449: str = config.get_check_name(); 2935449: if (!json_object_append(obj, "Name", 1, str.c_str())) 2935449: return false; 2935449: 2935449: str = config.get_check_notes(); 2935449: if (!json_object_append(obj, "Notes", 1, str.c_str())) 2935449: return false; 2935449: 2935449: str = config.get_check_http_url(); 2935449: if (!str.empty()) 2935449: { 2935449: if (!json_object_append(obj, "HTTP", 1, str.c_str())) 2935449: return false; 2935449: 2935449: str = config.get_check_http_method(); 2935449: if (!json_object_append(obj, "Method", 1, str.c_str())) 2935449: return false; 2935449: 2935449: str = config.get_http_body(); 2935449: if (!json_object_append(obj, "Body", 1, str.c_str())) 2935449: return false; 2935449: 2935449: val = json_object_append(obj, "Header", 3); 2935449: if (!val) 2935449: return false; 2935449: 2935449: json_object_t *header_obj = json_value_object(val); 2935449: 2935449: for (const auto& header : *config.get_http_headers()) 2935449: { 2935449: val = json_object_append(header_obj, header.first.c_str(), 2935449: 4); 2935449: if (!val) 2935449: return false; 2935449: 2935449: json_array_t *arr = json_value_array(val); 2935449: 2935449: for (const auto& value : header.second) 2935449: { 2935449: if (!json_array_append(arr, 1, value.c_str())) 2935449: return false; 2935449: } 2935449: } 2935449: } 2935449: 2935449: str = config.get_check_tcp(); 2935449: if (!str.empty()) 2935449: { 2935449: if (!json_object_append(obj, "TCP", 1, str.c_str())) 2935449: return false; 2935449: } 2935449: 2935449: str = config.get_initial_status(); 2935449: if (!json_object_append(obj, "Status", 1, str.c_str())) 2935449: return false; 2935449: 2935449: str = convert_time_to_str(config.get_auto_deregister_time()); 2935449: if (!json_object_append(obj, "DeregisterCriticalServiceAfter", 2935449: 1, str.c_str())) 2935449: return false; 2935449: 2935449: str = convert_time_to_str(config.get_check_interval()); 2935449: if (!json_object_append(obj, "Interval", 1, str.c_str())) 2935449: return false; 2935449: 2935449: str = convert_time_to_str(config.get_check_timeout()); 2935449: if (!json_object_append(obj, "Timeout", 1, str.c_str())) 2935449: return false; 2935449: 2935449: if (!json_object_append(obj, "SuccessBeforePassing", 2, 2935449: (double)config.get_success_times())) 2935449: return false; 2935449: 2935449: if (!json_object_append(obj, "FailuresBeforeCritical", 2, 2935449: (double)config.get_failure_times())) 2935449: return false; 2935449: 2935449: return true; 2935449: } 2935449: 2935449: static bool create_register_request(const json_value_t *root, 2935449: const struct ConsulService *service, 2935449: const ConsulConfig& config) 2935449: { 2935449: const json_value_t *val; 2935449: json_object_t *obj; 2935449: 2935449: obj = json_value_object(root); 2935449: if (!obj) 2935449: return false; 2935449: 2935449: if (!json_object_append(obj, "ID", 1, 2935449: service->service_id.c_str())) 2935449: return false; 2935449: 2935449: if (!json_object_append(obj, "Name", 1, 2935449: service->service_name.c_str())) 2935449: return false; 2935449: 2935449: if (!service->service_namespace.empty()) 2935449: { 2935449: if (!json_object_append(obj, "ns", 1, 2935449: service->service_namespace.c_str())) 2935449: return false; 2935449: } 2935449: 2935449: val = json_object_append(obj, "Tags", 4); 2935449: if (!val) 2935449: return false; 2935449: 2935449: json_array_t *arr = json_value_array(val); 2935449: 2935449: for (const auto& tag : service->tags) 2935449: { 2935449: if (!json_array_append(arr, 1, tag.c_str())) 2935449: return false; 2935449: } 2935449: 2935449: if (!json_object_append(obj, "Address", 1, 2935449: service->service_address.first.c_str())) 2935449: return false; 2935449: 2935449: if (!json_object_append(obj, "Port", 2, 2935449: (double)service->service_address.second)) 2935449: return false; 2935449: 2935449: val = json_object_append(obj, "Meta", 3); 2935449: if (!val) 2935449: return false; 2935449: 2935449: json_object_t *meta_obj = json_value_object(val); 2935449: 2935449: for (const auto& meta_kv : service->meta) 2935449: { 2935449: if (!json_object_append(meta_obj, meta_kv.first.c_str(), 2935449: 1, meta_kv.second.c_str())) 2935449: return false; 2935449: } 2935449: 2935449: int type = service->tag_override ? 5 : 6; 2935449: if (!json_object_append(obj, "EnableTagOverride", type)) 2935449: return false; 2935449: 2935449: val = json_object_append(obj, "TaggedAddresses", 3); 2935449: if (!val) 2935449: return false; 2935449: 2935449: json_object_t *tagged_obj = json_value_object(val); 2935449: if (!tagged_obj) 2935449: return false; 2935449: 2935449: if (!create_tagged_address(service->lan, "lan", tagged_obj)) 2935449: return false; 2935449: 2935449: if (!create_tagged_address(service->lan_ipv4, "lan_ipv4", tagged_obj)) 2935449: return false; 2935449: 2935449: if (!create_tagged_address(service->lan_ipv6, "lan_ipv6", tagged_obj)) 2935449: return false; 2935449: 2935449: if (!create_tagged_address(service->virtual_address, "virtual", tagged_obj)) 2935449: return false; 2935449: 2935449: if (!create_tagged_address(service->wan, "wan", tagged_obj)) 2935449: return false; 2935449: 2935449: if (!create_tagged_address(service->wan_ipv4, "wan_ipv4", tagged_obj)) 2935449: return false; 2935449: 2935449: if (!create_tagged_address(service->wan_ipv6, "wan_ipv6", tagged_obj)) 2935449: return false; 2935449: 2935449: 2935449: if (!create_health_check(config, obj)) 2935449: return false; 2935449: 2935449: return true; 2935449: } 2935449: 2935449: static bool parse_list_service_result(const json_value_t *root, 2935449: std::vector& result) 2935449: { 2935449: const json_object_t *obj; 2935449: const json_value_t *val; 2935449: const json_array_t *arr; 2935449: const char *key; 2935449: const char *str; 2935449: 2935449: obj = json_value_object(root); 2935449: if (!obj) 2935449: return false; 2935449: 2935449: for (key = 2935449: # 720 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 720 "/<>/src/client/WFConsulClient.cc" 2935449: , val = 2935449: # 720 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 720 "/<>/src/client/WFConsulClient.cc" 2935449: ; key = json_object_next_name(key, obj), val = json_object_next_value(val, obj), val; ) 2935449: { 2935449: struct ConsulServiceTags instance; 2935449: 2935449: instance.service_name = key; 2935449: arr = json_value_array(val); 2935449: if (!arr) 2935449: return false; 2935449: 2935449: const json_value_t *tag_val; 2935449: for (tag_val = 2935449: # 730 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 730 "/<>/src/client/WFConsulClient.cc" 2935449: ; tag_val = json_array_next_value(tag_val, arr), tag_val; ) 2935449: { 2935449: str = json_value_string(tag_val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: instance.tags.emplace_back(str); 2935449: } 2935449: 2935449: result.emplace_back(std::move(instance)); 2935449: } 2935449: 2935449: return true; 2935449: } 2935449: 2935449: static bool parse_discover_node(const json_object_t *obj, 2935449: struct ConsulServiceInstance *instance) 2935449: { 2935449: const json_value_t *val; 2935449: const char *str; 2935449: 2935449: val = json_object_find("Node", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: obj = json_value_object(val); 2935449: if (!obj) 2935449: return false; 2935449: 2935449: val = json_object_find("ID", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: instance->node_id = str; 2935449: val = json_object_find("Node", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: instance->node_name = str; 2935449: val = json_object_find("Address", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: instance->node_address = str; 2935449: val = json_object_find("Datacenter", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: instance->dc = str; 2935449: 2935449: val = json_object_find("Meta", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: const json_object_t *meta_obj = json_value_object(val); 2935449: if (!meta_obj) 2935449: return false; 2935449: 2935449: const char *meta_k; 2935449: const json_value_t *meta_v; 2935449: 2935449: for (meta_k = 2935449: # 807 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 807 "/<>/src/client/WFConsulClient.cc" 2935449: , meta_v = 2935449: # 807 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 807 "/<>/src/client/WFConsulClient.cc" 2935449: ; meta_k = json_object_next_name(meta_k, meta_obj), meta_v = json_object_next_value(meta_v, meta_obj), meta_v; ) 2935449: { 2935449: str = json_value_string(meta_v); 2935449: if (!str) 2935449: return false; 2935449: 2935449: instance->node_meta[meta_k] = str; 2935449: } 2935449: 2935449: val = json_object_find("CreateIndex", obj); 2935449: if (val && json_value_type(val) == 2) 2935449: instance->create_index = json_value_number(val); 2935449: 2935449: val = json_object_find("ModifyIndex", obj); 2935449: if (val && json_value_type(val) == 2) 2935449: instance->modify_index = json_value_number(val); 2935449: 2935449: return true; 2935449: } 2935449: 2935449: static bool parse_tagged_address(const char *name, 2935449: const json_value_t *tagged_val, 2935449: ConsulAddress& tagged_address) 2935449: { 2935449: const json_value_t *val; 2935449: const json_object_t *obj; 2935449: const char *str; 2935449: 2935449: obj = json_value_object(tagged_val); 2935449: if (!obj) 2935449: return false; 2935449: 2935449: val = json_object_find(name, obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: obj = json_value_object(val); 2935449: if (!obj) 2935449: return false; 2935449: 2935449: val = json_object_find("Address", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: tagged_address.first = str; 2935449: val = json_object_find("Port", obj); 2935449: if (!val || json_value_type(val) != 2) 2935449: return false; 2935449: 2935449: tagged_address.second = json_value_number(val); 2935449: return true; 2935449: } 2935449: 2935449: static bool parse_service(const json_object_t *obj, 2935449: struct ConsulService *service) 2935449: { 2935449: const json_value_t *val; 2935449: const char *str; 2935449: 2935449: val = json_object_find("Service", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: obj = json_value_object(val); 2935449: if (!obj) 2935449: return false; 2935449: 2935449: val = json_object_find("ID", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: service->service_id = str; 2935449: val = json_object_find("Service", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: service->service_name = str; 2935449: val = json_object_find("Namespace", obj); 2935449: if (val) 2935449: { 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: service->service_namespace = str; 2935449: } 2935449: 2935449: val = json_object_find("Address", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: service->service_address.first = str; 2935449: 2935449: val = json_object_find("Port", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: service->service_address.second = json_value_number(val); 2935449: val = json_object_find("TaggedAddresses", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: parse_tagged_address("lan", val, service->lan); 2935449: parse_tagged_address("lan_ipv4", val, service->lan_ipv4); 2935449: parse_tagged_address("lan_ipv6", val, service->lan_ipv6); 2935449: parse_tagged_address("virtual", val, service->virtual_address); 2935449: parse_tagged_address("wan", val, service->wan); 2935449: parse_tagged_address("wan_ipv4", val, service->wan_ipv4); 2935449: parse_tagged_address("wan_ipv6", val, service->wan_ipv6); 2935449: 2935449: val = json_object_find("Tags", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: const json_array_t *tags_arr = json_value_array(val); 2935449: if (tags_arr) 2935449: { 2935449: const json_value_t *tags_value; 2935449: for (tags_value = 2935449: # 941 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 941 "/<>/src/client/WFConsulClient.cc" 2935449: ; tags_value = json_array_next_value(tags_value, tags_arr), tags_value; ) 2935449: { 2935449: str = json_value_string(tags_value); 2935449: if (!str) 2935449: return false; 2935449: 2935449: service->tags.emplace_back(str); 2935449: } 2935449: } 2935449: 2935449: val = json_object_find("Meta", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: const json_object_t *meta_obj = json_value_object(val); 2935449: if (!meta_obj) 2935449: return false; 2935449: 2935449: const char *meta_k; 2935449: const json_value_t *meta_v; 2935449: for (meta_k = 2935449: # 961 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 961 "/<>/src/client/WFConsulClient.cc" 2935449: , meta_v = 2935449: # 961 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 961 "/<>/src/client/WFConsulClient.cc" 2935449: ; meta_k = json_object_next_name(meta_k, meta_obj), meta_v = json_object_next_value(meta_v, meta_obj), meta_v; ) 2935449: { 2935449: str = json_value_string(meta_v); 2935449: if (!str) 2935449: return false; 2935449: 2935449: service->meta[meta_k] = str; 2935449: } 2935449: 2935449: val = json_object_find("EnableTagOverride", obj); 2935449: if (val) 2935449: service->tag_override = (json_value_type(val) == 5); 2935449: 2935449: return true; 2935449: } 2935449: 2935449: static bool parse_health_check(const json_object_t *obj, 2935449: struct ConsulServiceInstance *instance) 2935449: { 2935449: const json_value_t *val; 2935449: const char *str; 2935449: 2935449: val = json_object_find("Checks", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: const json_array_t *check_arr = json_value_array(val); 2935449: if (!check_arr) 2935449: return false; 2935449: 2935449: const json_value_t *arr_val; 2935449: for (arr_val = 2935449: # 992 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 992 "/<>/src/client/WFConsulClient.cc" 2935449: ; arr_val = json_array_next_value(arr_val, check_arr), arr_val; ) 2935449: { 2935449: obj = json_value_object(arr_val); 2935449: if (!obj) 2935449: return false; 2935449: 2935449: val = json_object_find("ServiceName", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: std::string check_service_name = str; 2935449: val = json_object_find("ServiceID", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: std::string check_service_id = str; 2935449: if (check_service_id.empty() || check_service_name.empty()) 2935449: continue; 2935449: 2935449: val = json_object_find("CheckID", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: instance->check_id = str; 2935449: 2935449: val = json_object_find("Name", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: instance->check_name = str; 2935449: val = json_object_find("Status", obj); 2935449: if (!val) 2935449: return false; 2935449: 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: instance->check_status = str; 2935449: val = json_object_find("Notes", obj); 2935449: if (val) 2935449: { 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: instance->check_notes = str; 2935449: } 2935449: 2935449: val = json_object_find("Output", obj); 2935449: if (val) 2935449: { 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: instance->check_output = str; 2935449: } 2935449: 2935449: val = json_object_find("Type", obj); 2935449: if (val) 2935449: { 2935449: str = json_value_string(val); 2935449: if (!str) 2935449: return false; 2935449: 2935449: instance->check_type = str; 2935449: } 2935449: 2935449: break; 2935449: } 2935449: 2935449: return true; 2935449: } 2935449: 2935449: static bool parse_discover_result(const json_value_t *root, 2935449: std::vector& result) 2935449: { 2935449: const json_array_t *arr = json_value_array(root); 2935449: const json_value_t *val; 2935449: const json_object_t *obj; 2935449: 2935449: if (!arr) 2935449: return false; 2935449: 2935449: for (val = 2935449: # 1093 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 1093 "/<>/src/client/WFConsulClient.cc" 2935449: ; val = json_array_next_value(val, arr), val; ) 2935449: { 2935449: struct ConsulServiceInstance instance; 2935449: 2935449: obj = json_value_object(val); 2935449: if (!obj) 2935449: return false; 2935449: 2935449: if (!parse_discover_node(obj, &instance)) 2935449: return false; 2935449: 2935449: if (!parse_service(obj, &instance.service)) 2935449: return false; 2935449: 2935449: parse_health_check(obj, &instance); 2935449: result.emplace_back(std::move(instance)); 2935449: } 2935449: 2935449: return true; 2935449: } 2935449: 2935449: static void print_json_string(const char *str, std::string& json_str) 2935449: { 2935449: json_str += "\""; 2935449: while (*str) 2935449: { 2935449: switch (*str) 2935449: { 2935449: case '\r': 2935449: json_str += "\\r"; 2935449: break; 2935449: case '\n': 2935449: json_str += "\\n"; 2935449: break; 2935449: case '\f': 2935449: json_str += "\\f"; 2935449: break; 2935449: case '\b': 2935449: json_str += "\\b"; 2935449: break; 2935449: case '\"': 2935449: json_str += "\\\""; 2935449: break; 2935449: case '\t': 2935449: json_str += "\\t"; 2935449: break; 2935449: case '\\': 2935449: json_str += "\\\\"; 2935449: break; 2935449: default: 2935449: if ((unsigned char)*str < 0x20) 2935449: { 2935449: char buf[8]; 2935449: sprintf(buf, "\\u00%02x", *str); 2935449: json_str += buf; 2935449: } 2935449: else 2935449: json_str += *str; 2935449: break; 2935449: } 2935449: str++; 2935449: } 2935449: json_str += "\""; 2935449: } 2935449: 2935449: static void print_json_number(double number, std::string& json_str) 2935449: { 2935449: long long integer = number; 2935449: 2935449: if (integer == number) 2935449: json_str += std::to_string(integer); 2935449: else 2935449: json_str += std::to_string(number); 2935449: } 2935449: 2935449: static void print_json_object(const json_object_t *obj, int depth, 2935449: std::string& json_str) 2935449: { 2935449: const char *name; 2935449: const json_value_t *val; 2935449: int n = 0; 2935449: int i; 2935449: 2935449: json_str += "{\n"; 2935449: for (name = 2935449: # 1177 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 1177 "/<>/src/client/WFConsulClient.cc" 2935449: , val = 2935449: # 1177 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 1177 "/<>/src/client/WFConsulClient.cc" 2935449: ; name = json_object_next_name(name, obj), val = json_object_next_value(val, obj), val; ) 2935449: { 2935449: if (n != 0) 2935449: json_str += ",\n"; 2935449: 2935449: n++; 2935449: for (i = 0; i < depth + 1; i++) 2935449: json_str += " "; 2935449: 2935449: print_json_string(name, json_str); 2935449: json_str += ": "; 2935449: print_json_value(val, depth + 1, json_str); 2935449: } 2935449: 2935449: json_str += "\n"; 2935449: for (i = 0; i < depth; i++) 2935449: json_str += " "; 2935449: 2935449: json_str += "}"; 2935449: } 2935449: 2935449: static void print_json_array(const json_array_t *arr, int depth, 2935449: std::string& json_str) 2935449: { 2935449: const json_value_t *val; 2935449: int n = 0; 2935449: int i; 2935449: 2935449: json_str += "[\n"; 2935449: for (val = 2935449: # 1206 "/<>/src/client/WFConsulClient.cc" 3 4 2935449: __null 2935449: # 1206 "/<>/src/client/WFConsulClient.cc" 2935449: ; val = json_array_next_value(val, arr), val; ) 2935449: { 2935449: if (n != 0) 2935449: json_str += ",\n"; 2935449: 2935449: n++; 2935449: for (i = 0; i < depth + 1; i++) 2935449: json_str += " "; 2935449: 2935449: print_json_value(val, depth + 1, json_str); 2935449: } 2935449: 2935449: json_str += "\n"; 2935449: for (i = 0; i < depth; i++) 2935449: json_str += " "; 2935449: 2935449: json_str += "]"; 2935449: } 2935449: 2935449: static void print_json_value(const json_value_t *val, int depth, 2935449: std::string& json_str) 2935449: { 2935449: switch (json_value_type(val)) 2935449: { 2935449: case 1: 2935449: print_json_string(json_value_string(val), json_str); 2935449: break; 2935449: case 2: 2935449: print_json_number(json_value_number(val), json_str); 2935449: break; 2935449: case 3: 2935449: print_json_object(json_value_object(val), depth, json_str); 2935449: break; 2935449: case 4: 2935449: print_json_array(json_value_array(val), depth, json_str); 2935449: break; 2935449: case 5: 2935449: json_str += "true"; 2935449: break; 2935449: case 6: 2935449: json_str += "false"; 2935449: break; 2935449: case 7: 2935449: json_str += "null"; 2935449: break; 2935449: } 2935449: } === END GCC DUMP === make[3]: *** [src/client/CMakeFiles/client.dir/build.make:138: src/client/CMakeFiles/client.dir/WFConsulClient.cc.o] Error 1 make[3]: Leaving directory '/<>/obj-arm-linux-gnueabi' make[2]: *** [CMakeFiles/Makefile2:632: src/client/CMakeFiles/client.dir/all] Error 2 make[2]: Leaving directory '/<>/obj-arm-linux-gnueabi' make[1]: *** [Makefile:139: all] Error 2 make[1]: Leaving directory '/<>/obj-arm-linux-gnueabi' dh_auto_build: error: cd obj-arm-linux-gnueabi && make -j1 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2 make: *** [debian/rules:8: binary-arch] Error 25 dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2 -------------------------------------------------------------------------------- Build finished at 2025-09-17T20:27:42Z +------------------------------------------------------------------------------+ | Finished Timed Build Commands | +------------------------------------------------------------------------------+ rm -Rf /<>/ ----------------------------------------------- I: Finished running 'rm -Rf /<>/'. Finished processing commands. -------------------------------------------------------------------------------- Finished -------- +------------------------------------------------------------------------------+ | Cleanup | +------------------------------------------------------------------------------+ Purging /<> Not cleaning session: cloned chroot in use E: Build failure (dpkg-buildpackage died) +------------------------------------------------------------------------------+ | Summary | +------------------------------------------------------------------------------+ Build Architecture: amd64 Build Profiles: cross nocheck Build Type: any Build-Space: n/a Build-Time: 12 Distribution: unstable Fail-Stage: build Foreign Architectures: armel Host Architecture: armel Install-Time: 14 Job: workflow_0.11.10-2 Machine Architecture: amd64 Package: workflow Package-Time: 43 Source-Version: 0.11.10-2 Space: n/a Status: attempted Version: 0.11.10-2 -------------------------------------------------------------------------------- Finished at 2025-09-17T20:27:42Z Build needed 00:00:43, no disk space